Skip to content

Releases: opencrvs/opencrvs-core

OpenCRVS - v1.3.5

02 May 07:44
29436e1
Compare
Choose a tag to compare

Introduction

Read the release notes!
Read the v1.3.* to v1.3.* migration notes!

OpenCRVS v1.3.5 is a patch release which includes a hotfix to the previous OpenCRVS v1.3.4 release.
It is to be used in conjunction with a forked country configuration release v1.3.5

Bug fixes

  • Fix download failure for incomplete (without date of death) death declarations #6807

Full Changelog: v1.3.4...v1.3.5

OpenCRVS - v1.3.4

17 Apr 09:40
Compare
Choose a tag to compare

Introduction

Read the release notes!
Read the v1.3.* to v1.3.* migration notes!

OpenCRVS v1.3.4 is a patch release which includes a hotfix to the previous OpenCRVS v1.3.0 release.
It is to be used in conjunction with a forked country configuration release v1.3.4

Bug fixes

  • Fix date display for countries with a negative timezone offset #6719

  • Include middlename when generating fullnames

    • Refactored out the scattered logic for generating fullnames and converged them into a single function
    • Make lastname optional for a registered declaration
  • Fix download failure when arrayToFieldTransormer is used in template mapping

  • Fix multiple records not being downloaded simultaneously #6492

  • Fix showing unassigned toast for reinstated declarations #6492

  • Fix system crash when opening the started action modal #6551

Other changes

  • Recognize occupation as an optional field in informant section

Full Changelog: v1.3.3...v1.3.4

OpenCRVS - v1.4.1

22 Mar 15:26
1577398
Compare
Choose a tag to compare

Introduction

Read the release notes!
Read the v1.4.0 to v1.4.* migration notes!

OpenCRVS v1.4.1 is a patch release which includes a hotfix to the previous OpenCRVS v1.4.0 release.
It is to be used in conjunction with a forked country configuration release v1.4.1

What's changed?

  • Fix Metabase versions in Dashboards service. Previously the version used for local development wasn't the one built into the docker image, which caused the locally generated initialisation file to fail in deployed environments.
  • Fix a seeding script bug, where it failed when done too quickly #6553
  • Update minimum password length validation #6559
  • Include middlename when generating fullnames
    • Refactored out the scattered logic for generating fullnames and converged them into a single function
    • Make lastname optional for a registered declaration
  • Recognize occupation as an optional field in informant section
  • Fix download failure when arrayToFieldTransormer is used in template mapping
  • Fix multiple records not being downloaded simultaneously #6492
  • Fix showing unassigned toast for reinstated declarations #6492
  • Fix system crash when opening the started action modal #6551
  • Make language names used in language select dropdowns configurable in country resource package copy
  • Fix login to field agent when an incomplete record is previously retrieved by them #6584

Full Changelog: v1.3.3...v1.4.1

OpenCRVS - v1.3.3

23 Feb 19:15
7d3124e
Compare
Choose a tag to compare

Introduction

Read the release notes!
Read the v1.3.0 to v1.3.* migration notes!

OpenCRVS v1.3.3 is a patch release which includes a hotfix to the previous OpenCRVS v1.3.2 release.
It is to be used in conjunction with a forked country configuration release v1.3.3

Breaking Changes

Manually migrating the certificates to explicitly use the "location" handlebar helper would be required when upgrading

New features

Location certificate handlebars have been update so that they now use ids with a helper to access other properties of the FHIR Location object such as "alias", allowing locations in different languages to be possible on a certificate:

{{location districtPlaceofbirthId 'name'}}

Bug-fixes

A bug has been fixed in seeding of locations which occurred when 10000s+ of locations were seeded.
Metabase has been upgraded to resolve this zero-day security problem: https://www.assetnote.io/resources/research/advisory-metabase-pre-auth-rce-cve-2023-38646

What's Changed

Full Changelog: v1.3.2...v1.3.3

OpenCRVS - v1.4.0

09 Feb 12:18
Compare
Choose a tag to compare

In this release, we made no changes to OpenCRVS Core. All changes in this release apply only to the OpenCRVS country configuration repository.

Please note for 1.5.0 release

In the next OpenCRVS release v1.5.0, there will be two significant changes both in the country resource package and the infrastructure configuration inside of it:

  • The infrastructure directory and related pipelines will be moved to a new repository.
  • Both the new infrastructure repository and the OpenCRVS country resource package repositories will start following their own release cycles, mostly independent from the core's release cycle. From this release forward, both packages are released as "OpenCRVS minor compatible" releases, meaning that the OpenCRVS countryconfig 1.3.0- is compatible with OpenCRVS 1.3.0, 1.3.1, 1.3.2, etc. This allows for the release of new hotfix versions of the core without having to publish a new version of the infrastructure or countryconfig.

See Releases for release notes of older releases.

OpenCRVS - v1.3.2

19 Jan 13:50
Compare
Choose a tag to compare

Introduction

Read the release notes!
Read the v1.3.0 to v1.3.* migration notes!

OpenCRVS v1.3.2 is a patch release which includes a hotfix to the previous OpenCRVS v1.3.1 release.
It is to be used in conjunction with a forked country configuration release v1.3.2

Breaking Changes

New features

  • Country config can now expose an endpoint for custom tracking ids POST /tracking-id. The endpoint receives a FHIR Bundle as a payload and returns a tracking id string. #6093

Bug fixes

  • In large countries, background fetching of statistical data caused the client's initial load to slow down considerably. Preloading now only fetches data for Performance views index page #6210
  • Deceased's birth year now calculated from their birthday and not the current year #6196
  • Users cannot submit a record for review if one of the inputted fields has an invalid date format. Incomplete declarations can still be submitted. This is to prevent invalid values from being sent to the backend.
  • Prevent users from going back to "Print certificate" views after they have unassigned themselves from the record.
  • Validate user's language string after they login. Use default language if it's an unsupported language.

What's Changed

Full Changelog: v1.3.1...v1.3.2

OpenCRVS - v1.3.1

09 Nov 16:10
0e8cfcc
Compare
Choose a tag to compare

Introduction

Read the release notes!
Read the v1.3.0 to v1.3.* migration notes!

OpenCRVS v1.3.1 is a minor release which includes a hot-fix to the previous OpenCRVS v1.3.0 release.
It is to be used in conjunction with a forked country configuration release v1.3.1

Non breaking hotfixes

  1. In some countries, informant phone numbers are not captured in the form as the chosen method of beneficiary comms is Email. Therefore the search component in the UI should not offer the option to search by phone number. Now the search UI will dynamically check if either informant email or informant phone number is included in the forms and show "Email" as a searchable parameter in search in place of "Phone" where necessary

  2. The FHIR Location API now contains query validation. This is an important security improvement.

  3. It is now possible to add signatures for Registration Agents which can appear on the certificates.

  4. A collection of bugfixes and minor improvements have also been introduced as outlined in the changelog below

  5. Certificate handlebars now enable custom formatting via offering the possibility to create custom helper functions. An endpoint exists in the country config repository to load in handlebar helper functions. These must be common JS functions with no library dependencies. A basic example is given. Thanks to this discussion: #5927

  6. Dashboard configuration is now possible in Metabase without the requirement to fork Core. A new endpoint exists in the country config repository to load in a customisable query to populate the performance database and additionally, the Metabase .sql file can be customised to allow any UI change required.

  7. Crude birth rates were mistakenly halved in order to calculate male/female gender disaggregation in performance metrics. Crude birth rate is a ratio that is the same for both sexes. A database migration automatically recalculates and updates all crude birth rates to the correct value.

Breaking hotfixes

  1. A new environment variable must be added to Github Actions during deployment: CONTENT_SECURITY_POLICY_WILDCARD. This is supplied to the clients and nginx config like this: *. and ensures that the format of your domain can be configurable. Previously it was hardcoded in nginx to assume that hostname is the domain name concatenating beyond a dot separated subdomain. Resolved in: #6123. In addition, these environment secrets in Github Actions are now environment variables: DOMAIN, REPLICAS

What's Changed

Full Changelog: v1.3.0...v1.3.1

OpenCRVS - v1.3.0

02 Oct 22:39
590f656
Compare
Choose a tag to compare

OpenCRVS v1.3.0 is a stable release of OpenCRVS.

Read the release notes!
v1.2.0 to v1.3.* migration notes

OpenCRVS v1.3.0 is to be used in conjunction with a forked country configuration release v1.3.0 ...

... or with our demonstration country configuration "Farajaland" release v1.3.0

Upgrading from v1.2.0 to v1.3.0 requires the upgrade Migration Notes to be followed precisely.

This release will be maintained for 6 months by the core development team.

Major Features

v1.3.0 represents a major release of new functional features and technical improvements. The following explains in more detail each major feature that has been included in this release.

Marriage registration - BETA

A new vital event can now be registered. Marriages!

Customise you marriage form to start registered marriages (Farajaland default captures bride and grooms details, place of event details, informant details, witness details and signatures for up two witnesses aswell as the bride and grooms).

As with birth and death. We offer an API search for marriage events and the ability to create a custom marriage certificate.

BETA release
Outstanding marriage related functionality to be built includes:
- Searching for marriage events in the UI
- Marriage performance analytics
- Configurable marriage fees
- Marriage corrections
- Notification of intent to marry form.

Due to this, we are releasing marriage registration in "beta", therefore not for production use.

Track issuance

Printing certificates off in advance of issuance? Now you can track when they have been issued to the informant.

It is important to track when a legal document such as a brith certificate has been issued to the informant. So if registration offices are bulk printing certificates in advance of collection by the informant. The issuance of these certificates can be tracked and audited. Providing a proof that paper certificates get into the hands of beneficiaries.

A new workqueue. Ready to issue logs all records with a certificate printed off in advance. This feature can bee configured on/off.

Verify a certificate via QR code

Unsure of a paper certificate authenticity? Now you can compare against civil event record, recorded in your Civil Registration database

A unique QR code on the certificate when scanned by an authorised user can view partial record data. This allows them to compare the data recorded on the certificate against the data in the system to validate it's authenticity.

The QR code contains a unique identifier, the "recordId", which via the Record Search API can also be programatically validated by trusted external systems, returning vital event records associated.

Informant signature

Capture a digital signature of the informant to get their consent to submit an event declaration

After a declaration has been completed an informant can review the declaration an then an added their signature. As a digital signature directly into the application or an image of a wet signature can be uploaded.

You can configure the informant signature capture on and off for birth and death events. By default marriage events require the participant and witness signatures.

Email notifications

Choose between SMS or email to send registration status updates to the informant and users

Informants can now receive email notifications when their declaration has been reviewed, sent for approval and registered.

Users can now receive system notification such as two factor authentication codes via email.

The email template is completely customisable so you can choose the messaging and the look and feel.

Data visualisation dashboards

View performance data with interactive data visualisations!

In addition to our performance reports that give you the headline indicator of registration rates, completeness rates etc. You can now choose to view and analyse performance with data visualisations. Powered by the OpenSource Business Intelligence engine Metabase.

De-duplication improved

Easily compare side by side a potential duplicate against existing flagged records

The entire de-duplication user experience has been improved, to be able the user to quickly review potential duplicate records side by side along with supporting documentation.

In real-time a declaration sent for review can be flagged as a potential duplicate (powered by Elastics). So that it can easily assessed as a duplicate or not.

MOSIP Integration v2 - E-Signet

Validating identity by continuing our close collaboration with MOSIP

Our close collaboration with MOSIP continues in this release with integration from our vital event forms directly into the E-Signet digital identity authentication and consent mechanism.

Using MOSIP E-Signet integration, parents and informants can have their IDs validated, and consent to share demographic information to pre-populate the registration form. By combining OpenCRVS and MOSIP

Plus!

More application settings are now configurable

  • Configurable user roles - can be entirely customised even though they are based on common existing permissions.
  • Choose what informant notifications you want to send
  • Choose a background image or colour for your login splash page

Form configuration refactor

Deprecation of the form configuration UI

Responding to country requests to make form configuration more flexible we decided to revert back to a code only approach thus deprecating our form configuration UI.

To read more about why we made this decision, refer to our documentation step 3.2.7 Configure declaration forms

API validation

We have improved the API validation for all of our interoperability endpoints and provided extra parameters to improve the power and flexibility of our APIs.

Dependency upgrades

Many dependencies have been upgraded, improving performance, resilience and resolving dependabot security alerts. Our Node version has been upgraded.

Refactoring the country configuration package

Our country configuration package has been entirely refactored. Highlights include:

  • Clear directory structure
  • Configurable infrastructure and deploy scripts for use on any infrastructure without the requirement to fork opencrvs-core
  • Documentation in the code
  • More robust API endpoints
  • Flexible form configuration via TypeScript - abstraction of complex utilities
  • Rapid database seeding process
  • Removal of core team internal tools such as cypress tests and data-generator

Performance improvements

Many bugs have been resolved and these are individually listed in the Github release notes. Significant improvements have been made to download speed when assigning a record.

Breaking changes


Migration scripts will automatically upgrade your OpenCRVS v1.2 data to be supported in v1.3. Breaking changes that are not supported by automated migrations, or that require manual steps are listed below.

  • Your countryconfig repository needs to be migrated to the new directory structure.
  • Form configuration UI deprecation requires 1.2 users to export their form via JSON and convert to TypeScript using the functions that we provide.
  • We have upgraded the password hashing mechanism therefore all users will be required to change their password on first login after the ugrade completes.

Breaking changes - country configuration


The country confguration repository opencrvs-farajaland has been entirely refactored. Please contact us at team@opencrvs.org if you need any help rebasing changes in this repository.

What's Changed

Read more

OpenCRVS - v1.2.1

10 May 15:41
e97a3ba
Compare
Choose a tag to compare

Introduction

Read the release notes!
Read the v1.1.0 to v1.2.* migration notes!

OpenCRVS v1.2.1 is a minor release which includes a hot-fix to the previous OpenCRVS v1.2.0 release.
It is to be used in conjunction with a forked country configuration release v1.2.1

Non breaking hotfixes

  1. In some countries, mobile phone numbers do not start with a zero ("0") after the country code has been removed. Previously OpenCRVS had hardcoded a zero to append to all mobile numbers. Now we use this library to convert to and from MSISDN to local number format. Fix local - international - local phone number transformations by @euanmillar in #5143

  2. There were 2 bugs in our Ansible script which are resolved by this hotfix. a) The only way to change the disksize of the encrypted partition would be to amend the opencrvs-core playbook. You can now pass a parameter "encrypted_disk_size" which can be set to something like "200g" to ensure that the encrypted disk partition is optimised for your server. Choose approximately 80% of your available diskspace. b) The encrypted disk partition takes some time to create, especially if it is large. Previously Ansible did not wait for completion before proceeding to the next step. This caused an issue where the de-crypt on restart script in this repo decrypt.sh was not applied to the server. Additionally the option to decide to not encrypt the disk has been removed. You must now encrypt the disk and the Ansible variable "encrypt_data=True|False" is deprecated. To pick up this fix, run the Ansible commands again. Force disk encryption and add encrypted_disk_size param for Ansible by @euanmillar in #5144

  3. Fix to informants address submission. Address lines in informant were nullified, causing GraphQL submission to fail. Informant address has nullable fields causing GraphQL error by @euanmillar in #5138

  4. Improvement to add informant type as a certificate handlebar. Add informant type handlebar and localise handlebars by @euanmillar in #5140

Full Changelog: v1.2.0...v1.2.1

Elasticsearch 7.10.2 patch

08 Mar 17:59
Compare
Choose a tag to compare

Patch Elasticsearch 7.10.2 is a core code patch for all implementers who may wish to adopt a commercial posture not supported by Elasticsearch custom / non-OSI approved, opensource licence change.

OpenCRVS usage of Elasticsearch does not enable the capability for anyone to provide paid-for, managed cloud search services. We believe that the latest versions of Elasticsearch have no material effect on Civil Registration use cases and OpenCRVS' use of Elasticsearch.

This patch demonstrates that OpenCRVS works with an Apache 2.0 Elasticsearch license to conform to OSI standard OpenSource licenses.

Changes in this patch:

Elasticsearch & Kibana have been fixed at version 7.10.2.

THIS PATCH IS TO BE APPLIED ON NEW INSTALLATIONS ONLY!
THIS PATCH DOES NOT SUPPORT APPLE MAC M1 CHIPS.

We use a later version of Elasticsearch in order to provide a better Apple Mac development experience.

Background:

The following explains the reason for this patch as interpreted by the OpenCRVS development team.
As far as we understand it, Elasticsearch appear to be in some disagreement with Amazon because Amazon started providing a paid for, managed cloud search "Opensearch Service" (using a fork of Elasticsearch 7.10.2 - as was permitted by Elasticsearch's 7.10.2 Apache 2 license). Amazon renamed this fork Opensearch and released it on an OpenSource basis with a compliant Apache 2.0 license.

Elasticsearch then amended their OpenSource licence in order to stop 3rd parties from selling "managed" search services using Elasticsearch. Our interpretation is that this seems to have been done because Elastic provide their own paid-for "managed" services.

As Elasticsearch now use a custom OpenSource license, any Elasticsearch release later than v7.10 has not been OSI approved. Implementers may be concerned about this should they wish to adopt a managed search commercial posture, an un-common use case. In order to satisfy yourself that this software can be used commercially without any concerns over licensing, this patch can be applied.

To apply the patch, you will need to build and host your own opencrvs-core Docker images which you can build after cherry-picking this commit.

External reading:

We point all users to Elasticsearch and Amazon own content that discusses this issue:

Amazon: https://aws.amazon.com/what-is/opensearch/
Elastic: https://www.elastic.co/what-is/opensearch / https://www.elastic.co/pricing/faq/licensing

What's Changed

Commit: dc5f8f7: This patch downgrades Elasticsearch to version 7.10.2

Full Changelog: v1.2.0...patch-elasticsearch-7.10.2