Release notes
Introduction
OpenCRVS release notes document changes, improvements, and fixes delivered in each version. These notes help implementation teams understand what has changed, plan migrations, and take advantage of new features.
Each release includes breaking changes, new features, improvements, and bug fixes. Review the notes carefully before upgrading to ensure compatibility with your country configuration.
Releases
v2.1 (Upcoming Q3 2026)
Key highlights
Support for custom form fields on action dialogs (#11951)
Support for
notifiedInandnotifiedByproperties on scopes (#11875)Add legal statuses: "Registered (Inactive)" and "Revoked", and related core actions (#11952)
Add audit log retrieval endpoint (#11909)
...and miscellaneous bug fixes and improvements
v2.0
Release date: 25th of June 2026
Core changelog: https://github.com/opencrvs/opencrvs-core/blob/develop/CHANGELOG.md#200-release-candidate
Countryconfig changelog: https://github.com/opencrvs/opencrvs-countryconfig/blob/develop/CHANGELOG.md#200
opencrvs-demoland source:
Test report: https://docs.google.com/spreadsheets/d/1r2CFnnhpKcwO5z-tgcFlPirrmGfH8dZxCTXSSHXBs38/edit?usp=sharing
Key highlights
Redesigned administrative hierarchy and jurisdiction. A country is now modelled as a hierarchy of administrative areas (e.g. province → district → village) that contain physical locations (CRVS offices, health facilities). Read more: Administrative structure and Administrative hierarchy
Verifiable credentials for life events. OpenCRVS can now issue digitally signed credentials through an external issuer. Two forms are available: a digital SD-JWT credential (OpenID4VC) delivered to the citizen's wallet, and a verifiable QR code on printed birth certificates. Signing is handled by an issuer you operate and manage independently. Read more: Verifiable Credentials and Verifiable Credentials
Biographic updates via MOSIP. The integration now supports sending birth corrections to MOSIP via a new `updateBiographics` endpoint, enabling a child's biographic data to be created or updated in the identity system during amendment flows. Read more: MOSIP Registration Integration
Custom actions. Beyond the core actions, each event can now define its own custom actions. Read more: Custom actions
Redesigned record editing. The editing of a previously notified or declared record has been reworked to a completely new "Edit" action flow.
Technical architecture rework. The technical architecture has been simplified, drastically reducing the amount of required services ran on k8s or docker-swarm.
Improvements
Configurable record flags. Actions can add or remove flags on a record, so workqueues and status indicators are driven by configuration rather than core code.
Kubernetes deployment. OpenCRVS can now be deployed to any Kubernetes cluster using the Helm charts shipped in
opencrvs-core. Docker Swarm remains supported until v2.1.Improved offline/online recovery. The app now recovers automatically if the network changes or drops while it is still initialising.
Performance improvements. Performance improvements to e.g. workqueue load times.
Breaking changes
Webhook integration client removed. The Webhook integration client and its
webhooksservice have been removed and are not migrated automatically. Country configurations that previously relied on webhook subscriptions must instead react to events via Action triggers in the country configuration code. Any webhook-style fan-out to external systems must be implemented inside those handlers.Event Notification API endpoint renamed.
POST /api/events/events/notificationshas been renamed toPOST /api/events/events/{eventId}/notify. Existing integration clients must update their request paths. A new single-request convenience endpointPOST /api/events/events/notifyis also available for system clients that need to create and notify in one call.Auth service is no longer exposed on its own subdomain. The public
auth.{hostname}Traefik route has been removed — the auth service is now reachable only through the gateway proxy atgateway.{hostname}/auth/*. Remove theauth.*DNS record and TLS certificate from your deployment. The gateway's/auth/authenticate-super-userroute is now rate limited on a constant key (it previously keyed on ausernamefield that super user auth does not send).Configuration model rewritten. Events, forms, workflows, and actions are now defined in TypeScript with the
@opencrvs/toolkitpackage (defineConfig).These required changes can be automatically applied to an existing country config using
yarn opencrvs upgrade, see Step 2 — Update code and test locally
Other configuration changes.
InherentFlags.PENDING_CERTIFICATIONhas been removed (implement it as a custom flag instead); workqueue configuration usesaction: { … }rather thanactions: [ … ]and no longer accepts'DEFAULT'; andFieldType.PARAGRAPHno longer takes afontVariant— use the newFieldType.HEADINGwhere a heading style is needed.These required changes can be automatically applied to an existing country config using
yarn opencrvs upgrade, see Step 2 — Update code and test locally
Bug fixes
A broad set of fixes and improvements across the record workflows, record search, notifications, and deployment accompanies.
Last updated