Releases: opencrvs/opencrvs-core
OpenCRVS - v1.2.1
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
-
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
-
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
-
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
-
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
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
OpenCRVS - v1.2.0
OpenCRVS v1.2.0 is a stable release of OpenCRVS.
Read the release notes!
Draft: v1.1.0 to v1.2.* migration notes
OpenCRVS v1.2.0 is to be used in conjunction with a forked country configuration release v1.2.0
Upgrading from v1.1.0 to v1.2.0 requires the upgrade Migration Notes to be followed precisely.
This release will be maintained for 6 months by the core development team.
The v1.2.0 release includes major architectural upgrades and exciting new features!
__
Major Features
The following explains in more detail each major feature that has been included in this release.
Vital Statistics Export
Composing the "VS" in OpenCRVS, Vital statistics constitute the collection of statistics on vital events pertaining to the population, including relevant characteristics of the events themselves and also of the persons concerned. They are critical for a wide range of government operations, e.g. population register, national identification system, and other administrative registers, and for commercial enterprises (e.g. life insurance and marketing of products).
Our VS Export feature outputs a sharable, yearly report of registration data without Personally Identifiable Information (PII) for consumption by statisticians in programs such as RStudio (Posit).
User Audit
In OpenCRVS v1.0, we introduced Record Audit, displaying the history of every action that has taken place on a registration. In this release, we expand OpenCRVS' audit capability to allow a system administrator to view every action performed by a single staff member in an easy-to-consume display.
Outbox
Processing the submission of applications off-line or in poor connectivity has been visually redesigned into a new browsable Outbox feature. This makes it super easy to tell which applications have not yet synced nationally.
Advanced Search
Utilising the full power of our ElasticSearch engine, registrars can now perform advanced searches; for example, registrars can search all registrations made in a configurable range of districts or states, between date ranges for a given name or gender and much more! View any record, at any time, without needing to perform an action then bookmark your searches. This feature is fully audited and additionally exposed in an API integration!
Configurable Administrative Levels
With OpenCRVS, governments can create administrative offices virtually anywhere, from a deeply nested rural parish or county or in an urban city ward. No matter how many administrative divisions are relevant for your country, you can now import as many as you like using Humdata standards, and the OpenCRVS address structure will automatically compensate.
Integrations
It is now possible for a system administrator to configure OpenCRVS API integrations for external systems, and refresh credentials, within the OpenCRVS user interface. There is no longer any need to set up system clients using Docker commands. It is easy to set up API access to Advanced Search, FHIR standard Health notifications, Webhooks or National ID systems, including MOSIP. We have worked hard with the MOSIP team to ensure that birth and death events seamlessly orchestrate with MOSIP’s National ID generation and expiration functionality. We have included Postman collections in the country configuration repository and will be updating our documentation thoroughly between now and the stable release.
Introducing Minio in OpenCRVS: An AWS S3 compatible OpenSource and locally hosted Object Store
To make best use of server resources and keep OpenCRVS hosting costs down, application attachments are now saved in Minio, a dedicated object storage system with its own admin interface. Minio provisions automatically for you on your locally hosted OpenCRVS infrastructure. Application attachments now have their own unique URL so they can be cached, and can be externally managed away from the rest of the OpenCRVS document data. Minio is compatible with Amazon S3 giving you the flexibility to adapt and use cloud object storage if you wish.
FHIR Location API
The country configuration package has been heavily refactored to remove unnecessary endpoints such as Locations, because you can now use our FHIR API to do this! You can add/amend/archive administrative hierarchy, offices and facilities using a Gateway endpoint. Check out Swagger documentation on the Gateway.
Form configuration improvements
You can now configure a select field in form config by uploading a CSV file, or by selecting existing datasets like states, districts, facilities etc. You can also create a field which conditionally hides or shows based on the value of another field. Any field can be reordered and all field values can be printed on the certificate if you wish.
Supplied migration scripts to resolve breaking changes in core
- An automatic migration allows the system administrator to create a custom select based on imported Health Facilities in Form Configuration
- An automatic migration migrates any existing system clients created before v1.2.* to still function after the major changes to the Interoperability UI.
- An automatic migration correctly marks which user started an application which was later rejected to address a bug in our Performance section.
- An automatic migration moves all supporting document attachments from being stored as base64 in Mongo DB to our new Minio Object Storage system, available to login at https://minio-console.
- An automatic migration prepares legacy data to appear in our new "Registration Rates" feature in our Performance section.
- An automatic migration fixes a bug where supporting document attachments went missing in the UI if a record was corrected. This restores any affected documents.
- An automatic migration configures OpenHIM to delete any Channel log older than 30 days to save diskspace.
Breaking changes - core
- Ansible playbooks have been updated to support VS Export and the nw Object Store - Mino
- Dockker Compose files have been updated to support the new version of Traefik
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.
- We removed unnecessary endpoints now that the FHIR Locations REST API is accessible in Core.
- Now that administrative structure is managed using Humdata standards, the csv import scripts and file
Structure has changed. Previous database backups will still work with OpenCRVS. - We have removed some legacy endpoints and changed the directory structure to make the repository easier to understand.
- We have entirely changed the configuration import process to add functionality relevant to Humdata standardisation
- We have added scripts to validate all CSV files to make it much easer to configure OpenCRVS
- Our Farajaland backup users have had their usernames changed like this "kennedy.mweene" is now "k.mweene" etc. This is because when any user is edited in the UI, their username changes to this pattern. Our test users were set up incorrectly before.
- All database population and backup scripts now take named parameters.
- Many content keys have been created for translation requirements for the new features. These are documented in the release notes for the country configuration repository.
Major dependency upgrades
- Traffic has been upgraded to v2.8.
- Create React App has been replaced with Vite meaning much faster builds and smaller docker images!
What's Changed
- Ocrvs 3747 - Organise components in Storybook, rename display names and deprecate unused ones by @naftis in #3750
- OCRVS-2796: Team link will redirect to assigned office by default by @yeasinhossain-dsi in #3780
- Added confirm alert modal to delete declaration by @favour234 in #3785
- OCRVS 3800 / Fix
<PageHeader>
being 1px too tall by @naftis in #3801 - OCRVS-3820 / Fix incompatible TS types by pinning @types/react version by @naftis in #3822
- Auto-generate shades in colour palette & document Colors and Typography in Storybook by @naftis in #3779
- Move deprecated components to their own section by @naftis in #3825
- OCRVS-3777 / Re-think Layout components and create
<Frame>
by @naftis in #3786 - [1.2.0] Vite Upgrade by @sadmananik in #3703
- OCRVS-3811 - Pagination by @naftis in #3842
- Deploy more logstash and apm-server replicas by @rikukissa in #3784
- OCRVS-3809 /
<Workqueue>
by @naftis in #3823 - OCRVS-3760 -
<Text>
by @naftis in https://gith...
OpenCRVS - v1.2.0-beta
Introduction
OpenCRVS - v1.2.0-beta is a pre-release version and therefore not yet available for migrating from 1.1. The beta is released for public feedback, while it undergoes user acceptance testing. The beta is not to be used in production.
We are now commencing our stable release quality assurance process. A stable version is planned for full public release on January 31st 2023.
Read the release notes!
Draft: v1.1.0 to v1.2.* migration notes - still undergoing testing
Release management as a Digital Public Good - what we have learnt so far
OpenCRVS v1.2.0-beta is to be used in conjunction with a forked country configuration release v1.2.0-beta
This release will be maintained for 6 months by the core development team.
The v1.2.0-beta release includes major architectural upgrades and exciting new features!
__
Major Features
The following explains in more detail each major feature that has been included in this release.
Vital Statistics Export
Composing the "VS" in OpenCRVS, Vital statistics constitute the collection of statistics on vital events pertaining to the population, including relevant characteristics of the events themselves and also of the persons concerned. They are critical for a wide range of government operations, e.g. population register, national identification system, and other administrative registers, and for commercial enterprises (e.g. life insurance and marketing of products).
Our VS Export feature outputs a sharable, yearly report of registration data without Personally Identifiable Information (PII) for consumption by statisticians in programs such as RStudio (Posit).
User Audit
In OpenCRVS v1.0, we introduced Record Audit, displaying the history of every action that has taken place on a registration. In this release, we expand OpenCRVS' audit capability to allow a system administrator to view every action performed by a single staff member in an easy-to-consume display.
Outbox
Processing the submission of applications off-line or in poor connectivity has been visually redesigned into a new browsable Outbox feature. This makes it super easy to tell which applications have not yet synced nationally.
Advanced Search
Utilising the full power of our ElasticSearch engine, registrars can now perform advanced searches; for example, registrars can search all registrations made in a configurable range of districts or states, between date ranges for a given name or gender and much more! View any record, at any time, without needing to perform an action then bookmark your searches. This feature is fully audited and additionally exposed in an API integration!
Configurable Administrative Levels
With OpenCRVS, governments can create administrative offices virtually anywhere, from a deeply nested rural parish or county or in an urban city ward. No matter how many administrative divisions are relevant for your country, you can now import as many as you like using Humdata standards, and the OpenCRVS address structure will automatically compensate.
Integrations
It is now possible for a system administrator to configure OpenCRVS API integrations for external systems, and refresh credentials, within the OpenCRVS user interface. There is no longer any need to set up system clients using Docker commands. It is easy to set up API access to Advanced Search, FHIR standard Health notifications, Webhooks or National ID systems, including MOSIP. We have worked hard with the MOSIP team to ensure that birth and death events seamlessly orchestrate with MOSIP’s National ID generation and expiration functionality. We have included Postman collections in the country configuration repository and will be updating our documentation thoroughly between now and the stable release.
Introducing Minio in OpenCRVS: An AWS S3 compatible OpenSource and locally hosted Object Store
To make best use of server resources and keep OpenCRVS hosting costs down, application attachments are now saved in Minio, a dedicated object storage system with its own admin interface. Minio provisions automatically for you on your locally hosted OpenCRVS infrastructure. Application attachments now have their own unique URL so they can be cached, and can be externally managed away from the rest of the OpenCRVS document data. Minio is compatible with Amazon S3 giving you the flexibility to adapt and use cloud object storage if you wish.
FHIR Location API
The country configuration package has been heavily refactored to remove unnecessary endpoints such as Locations, because you can now use our FHIR API to do this! You can add/amend/archive administrative hierarchy, offices and facilities using a Gateway endpoint. Check out Swagger documentation on the Gateway.
Form configuration improvements
You can now configure a select field in form config by uploading a CSV file, or by selecting existing datasets like states, districts, facilities etc. You can also create a field which conditionally hides or shows based on the value of another field. Any field can be reordered and all field values can be printed on the certificate if you wish.
Breaking changes - core
v1.2.0-beta includes many migrations to support the new features. These migrations run automatically so you do not need to worry.
Breaking changes - country configuration
The country configuration package has been heavily refactored because:
-
We removed unnecessary endpoints now that Locations API is accessible in Core.
-
Now that administrative structure is managed using Humdata standards, the csv import scripts and file
Structure has changed. Previous database backups will still work with OpenCRVS.
Our Farajaland backup users have had their usernames changed like this "kennedy.mweene" is now "k.mweene" etc. This is because when any user is edited in the UI, their username changes to this pattern. Our test users were set up incorrectly before.
All database population and backup scripts now take named parameters.
Many content keys have been created for translation requirements for the new features. These will be documented in these notes for the stable release.
Dependency upgrades
Traffic has been upgraded to v2.8.
Create React App has been replaced with Vite meaning much faster builds and smaller docker images!
What's Changed
- Ocrvs 3747 - Organise components in Storybook, rename display names and deprecate unused ones by @naftis in #3750
- OCRVS-2796: Team link will redirect to assigned office by default by @yeasinhossain-dsi in #3780
- Added confirm alert modal to delete declaration by @favour234 in #3785
- OCRVS 3800 / Fix
<PageHeader>
being 1px too tall by @naftis in #3801 - OCRVS-3820 / Fix incompatible TS types by pinning @types/react version by @naftis in #3822
- Auto-generate shades in colour palette & document Colors and Typography in Storybook by @naftis in #3779
- Move deprecated components to their own section by @naftis in #3825
- OCRVS-3777 / Re-think Layout components and create
<Frame>
by @naftis in #3786 - [1.2.0] Vite Upgrade by @sadmananik in #3703
- OCRVS-3811 - Pagination by @naftis in #3842
- Deploy more logstash and apm-server replicas by @rikukissa in #3784
- OCRVS-3809 /
<Workqueue>
by @naftis in #3823 - OCRVS-3760 -
<Text>
by @naftis in #3867 - ocrvs-3851: Fetch patient details from FHIR and set the BRN/DRN identifiers properly. Fix #3851 by @rabiulislamanik in #3872
- Deploy to migrate by @euanmillar in #3890
- Bump apollo-server-core from 3.6.1 to 3.10.1 by @dependabot in #3802
- Bump undici from 5.8.0 to 5.9.1 by @dependabot in #3803
- Bump moment-timezone from 0.5.34 to 0.5.37 by @dependabot in #3871
- ocrvs-3332 Removed some unnecessary review modal descriptions by @sadmananik in #3835
- Update Node versions OpenCRVS supports by @naftis in #3857
- Bump async from 2.6.3 to 2.6.4 by @dependabot in #3896
- OCRVS-3746 / Flat directory structure by @naftis in #3895
- ocrvs-3839 Added new clear and restore backup workflow action by @sadmananik in #3876
- Deprecate tslint by @tahmidrahman-dsi in #3783
- Ocrvs 3209 Completeness rates fixes by @tahmidrahman-dsi in https://github...
OpenCRVS - v1.1.2
Introduction
Read the release notes!
Read the v1.0.1 to v1.1.* migration notes!
OpenCRVS v1.1.2 is a minor release which includes a hot-fix to the previous OpenCRVS v1.1.1 release.
It is to be used in conjunction with a forked country configuration release v1.1.2
Non breaking hotfix
- ocrvs-4210 Ansible amend to ensure that data folders do not get cleared when the script is run during a migration @euanmillar in #4210
Full Changelog: v1.1.1...v1.1.2
OpenCRVS - v1.1.1
Introduction
Read the release notes!
Read the v1.0.1 to v1.1.* migration notes!
OpenCRVS v1.1.1 is a minor release which includes hot-fixes to the previous OpenCRVS v1.1.0-stable release.
It is to be used in conjunction with a forked country configuration release v1.1.1
Non breaking hotfixes
- ocrvs-3707 Disabled add attachments when father and mother has no details by @Zangetsu101 in #4017
- ocrvs-3859-fix Download certificate pdf in mobile device while printing by @sadmananik in #4013
- ocrvs-3985 Fixed default configurable field required issue by @sadmananik in #4030
Full Changelog: v1.1.0...v1.1.1
OpenCRVS - v1.1.0-stable
Introduction
Read the release notes!
Read the v1.0.1 to v1.1.* migration notes!
Release management as a Digital Public Good - what we have learnt so far
OpenCRVS v1.1.0-stable is a minor release marking the commencement of a standardised release process for OpenCRVS. It is to be used in conjunction with a forked country configuration release v1.1.0
This release will be maintained for 6 months by the core development team.
The v1.1.0 release includes collective hot-fixes to stabilise the previous v1.0.1 minor patch release.
Upgrading from v1.0.1 to v1.1.0 requires the upgrade Migration Notes to be followed precisely.
We strongly recommend that all implementers currently running v1.0.1 perform the upgrade to v1.1.0 as soon as possible.
__
Major Features
The following explains in more detail each major feature that has been included in this release.
Migration microservice
In this release a new "migration" microservice has been introduced to core to support a simpler upgrade procedure for system administrators. This microservice utilises the package migrate-mongo and performs automatic breaking change core migrations. This means that a system implementer will never need to separately install and run database migrations.
UI updates for new users
Previously the create and edit user flow and the onboarding flow were not utilising the new Content UI components from the storybook. These flows have been refactored.
Dependency upgrades
In this release, no major components have been upgraded.
Breaking changes - core
v1.1.0 includes the following improvements which are breaking changes. Core migrations are performed automatically when you upgrade and run this release as explained in the migration notes.
- Bugfix OCRVS-3561: When registering a birth, a document "Legal Guardian Proof" was entered into the database mistakenly as "Informant's Birth Certificate". An automatic migration finds any such entries and correctly labels the document.
- Bugfix related to OCRVS-2641: When improving our demo data generator script to more accurately reflect "real" Field Agent performance, we noticed that the timestamp saved to InfluxDB marking when the Field Agent commenced the application was incorrectly set to the timestamp associated with the last edit on the application. An automatic migration finds any such entries and correctly sets the timestamp.
- An automatic migration adds a new channel /confirm/registration to OpenHIM so that the payload between country configuration BRN generation and core workflow service can be monitored in OpenHIM. Additionally log retention for all OpenHIM channels is hardocded to 30 days. This saves approximately 20GB of storage space on a production server every year.
Breaking changes - country configuration
v1.1.0 includes the following configuration improvements which are breaking changes. You must merge all changes from the Farajaland master branch into your country configuration fork to retrieve all these updates as explained in the migration notes.
-
The country configuration now loads the JWT public key from core from a new endpoint in the auth microservice
"/.well-known"
. This improves our security processes as we can now rotate the public key without taking the stack down. An additional benefit of this change is this also allows development teams to start the country configuration server with justyarn dev
, rather than previously the v1.0.1 requirement to runyarn dev <-- path to the core directory -->
. -
We fixed a bug in our provided Github Action deploy.yml.
-
Docker Compose yml files have all been updated to support bugfixes in core.
-
The following translation keys have been added:
"config.application.updatingeMessage": "Updating..."
"constants.requestReason": "Reason for request"
"form.field.label.updatingUser": "Updating user"
"form.field.label.creatingNewUser": "Creating new user"
"form.section.user.preview.title": "Confirm details"
"record.certificate.collectedInAdvance": "Printed in advance by"
-
The core emergency-backup-metadata.sh and emergency-restore-metadata.sh scripts contained bugs which have been resolved and these scripts are now located in the country configuration server.
-
The Ansible playbooks in core, now extend an additional
playbook.yml
in the country configuration.
This allows application secrets that LUKS encrypt the manager node databases' /data folder to be configured as you wish.
The prop encrypt_passphrase has been renamed to disk_encryption_key to more accurately reflect the use case of this value.
The disk_encryption_key is saved into a file at the location root/disk-encryption-key.txt
The script decrypt.sh
is run on a system reboot, as we noticed that on reboot the data folder would not mount until it is decrypted.
Mongo DB and Elasticsearch passwords are saved into an example text file opencrvs.secrets inside the encrypted /data folder.
We do not advise that the opencrvs.secrets & disk-encryption-key.txt files are used in production. You should reconfigure the playbook and the reading of these secrets from the decrypt, backup and restore scripts, to instead provide them via an API from a Hardware Security Module (HSM).
Secret storage is outside the scope of OpenCRVS in this release. In the December OpenCRVS release v.1.2.0 we intend to show an example of how an HSM could be configured. In the meantime, MOSIP's documentation on the requirements of a Hardware Security Module is useful reading.
Miscellaneous bugfixes and refactor
A host of bugfixes were discovered and prioritsed by our QA team to stabilise OpenCRVS v1.0.1 .In future, non-breaking change bugfixes will be released as v1.1.<PATCH> hotfix releases.
What's Changed
- Release v1.0.1 by @euanmillar in #3584
- removes ?? from templete by @jpye-finch in #3609
- Ocrvs 3580 Fix assigned user not showing in record audit by @tahmidrahman-dsi in #3615
- Used refetchQueries instead of manual refetch by @Zangetsu101 in #3614
- ocrvs-3570: Add allowedDocTypes to affivavit upload form by @rabiulislamanik in #3631
- ocrvs-3570: Add test for affidavit file validity by @rabiulislamanik in #3633
- Ocrvs 3328 Style & icon fixes by @tahmidrahman-dsi in #3632
- Bump parse-url from 6.0.0 to 6.0.2 by @dependabot in #3630
- ocrvs-3564: Change imageLoadingError state when file is being uploaded by @rabiulislamanik in #3634
- ocrvs-2331-fix Added TRADITIONAL_BIRTH_ATTENDANT as attendantType for birth declaration by @sadmananik in #3648
- ocrvs-3567: Add allowedDocType in preview page's document uploader by @rabiulislamanik in #3649
- ocrvs-3570: Pass allowedDocTypes props to death registration collector form section by @rabiulislamanik in #3654
- Ocrvs 3616 Refactor settings by @tahmidrahman-dsi in #3647
- Implement an endpoint for fetching the public key from the auth api by @KaliGreen in #3659
- ocrvs-3565: Change uploadingState to false after a fileUpload error occurs by @rabiulislamanik in #3660
- ocrvs-3542: Set spinners size to 24 on performance page by @rabiulislamanik in #3665
- ocrvs-3572 Prevented loading workqueue data from record audit by @Zangetsu101 in #3612
- Ocrvs 2921 Refactor change phone number components by @tahmidrahman-dsi in #3661
- ocrvs-3454 Persisted the country logo in localStorage by @Zangetsu101 in #3646
- Bump file-type from 16.5.3 to 16.5.4 by @dependabot in #3677
- Bump undici from 5.5.1 to 5.8.0 by @dependabot in #3672
- Bump terser from 4.8.0 to 4.8.1 by @dependabot in #3664
- Add a channel for verifying birth / death declarations from country config package by @KaliGreen in #3678
- Update new user flow by @yeasinhossain-dsi in #3670
- Convert app config from class to functional component by @sadmananik in https://github.com/opencrvs/opencrvs-cor...
OpenCRVS - v1.0.1
Introduction
OpenCRVS v1.0.1 is a minor patch release and considered an official public release of OpenCRVS. It contains the Conflicts feature and essential bugfixes for the major v1.0.0 OpenCRVS Core release. It is to be used in conjunction with a forked country configuration release v1.0.1
This release contains major new features and improvements, a number of dependency upgrades and many bug-fixes. This release includes:
- Correct a record
- Record audit
- Registration form configuration user interface
- Application configuration user interface
- Certificate configuration user interface
- Birth and death form default configuration refresh
- Performance improvements
- New user roles (National Registrar, National System Administrator, Performance Manager)
- UI design refresh of the navigation, workqueues and many pages
- Archive / Reinstate
- Conflicts
- 3rd party penetration test fixes
- Dependency upgrades
- Miscellaneous bugfixes and refactor
All following major releases of OpenCRVS will document any breaking changes and a migration guide for system administrators.
Major Features
The following explains in more detail each major feature that has been included in this release.
Correct a record
It is now possible for all corrections made to an onging declaration by a Registration Agent and Registrar to be tracked and audited. Additionally, it is now possible for a Registrar to be able to make a correction to an already registered birth or death certificate. The correct record process supports uploading supporting legal documentation and configuration of any fees associated.
Record audit
All actions that are performed on a declaration or a registration are tracked, audited and displayed to the user when downloading details of the declaration or registration. This download process is also tracked and audited. This feature allows the user to easily monitor changes to the status of the declaration, any corrections that have been made to it and audit any access requested to personally identifiable information of a citizen by any civil registration staff member.
Registration form configuration user interface
Previously, birth and death form configuration was managed via a complicated JSON file in the country configuration repository. There is now an easy to use, form configuration user interface for National System Administrators to draft, edit, preview, test and publish the declaration forms. The old JSON approach has been deprecated.
Application configuration user interface
Previously, application settings such as fees, registration target deadlines, country logo and phone number validation regular expressions etc were managed manually via text config files in the country configuration repository. There is now an easy to use, application configuration user interface for National System Administrators to configure these values on-the-fly. The old config file approach has been deprecated.
Certificate configuration user interface
Previously, certificate configuration was managed via a complicated JSON file in the country configuration repository. There is now an easy to use, certificate configuration user interface for National System Administrators that allows them to upload an SVG design with handlebars for registration data. The certificates can be previewed and printed in this interface. The old JSON approach has been deprecated.
Birth and death form default configuration refresh
The default and standardised, OpenCRVS recommended birth and death form configuration comes pre-packaged into OpenCRVS. The question flow has been further optimised after feedback from our OpenSource community of civil registrars.
Performance improvements
The Performance user interface has been completed refreshed. It now includes detailed analytics on completeness rates, sources of applications, declaration status, field agent performance, breakdown of nationwide to specific office analytics and comparison between number of registrars and population numbers.
New user roles (National Registrar, National System Administrator, Performance Manager)
The National Registrar role has been created. This is a registrar's super admin and can view any declaration or registration nationwide and monitor the performance of any office. The National System Administrator role has the ability to configure the form, certificate and application settings as well as create/edit/deactive any user nationwide. The Performance Manager role has no access to any PII in any declaration or registration. They can access nationwide performance analytics only. This is an ideal 3rd party role for a statistician.
UI design refresh of the navigation, workqueues and many pages
System administrators who have tried out previous versions of OpenCRVS will notice a complete design refresh of the navigation, workqueues and many sections. The new look and feel is cleaner, easier to configure for your national needs and makes better use of screen real estate.
Archive / Reinstate
As long as the declaration has been submitted for review, it is now possible to archive an existing declaration, thus removing it from any workqueue. As every submitted declaration has a unique tracking ID, it can be retrieved in nationwide searches by a Registrar user and reinstated.
Conflicts
When a Registration Agent or a Registrar downloads a declaration in order to perform an action, they are "Assigned" the record. Other users will notice if they search for the same record that it is already assigned. Registration Agents must ask a Registrar to check and "Unassign" the record. This prevents users from making conflicting changes to the same record. A Registrar has the authority to "Unassign" the record from an individual who has it "Assigned" to them to overrule this process.
3rd party penetration test fixes
This version of OpenCRVS has undergone another round of 3rd party, security penetration testing by the consultancy GoFore - NORAD's preferred security testing provider. Any issue that was discovered during the penetration test have been resolved.
Dependency upgrades
In this release we have forked and upgraded Hearth, Jembi's FHIR database server originally located here. We resolved all dependencies that had any open security warning.
Miscellaneous bugfixes and refactor
A host of bugfixes were discovered and prioritised by our QA team. Our test cases will soon be published in our documentation.
What's Changed
- Ocrvs 1905: Validation showing when remove the location from user edit page by @euanmillar in #2413
- Allow setting declarations 'created at' value from outside (#2537) by @rikukissa in #2546
- make age calculation functions use composition date, not current timestamp (#2605) by @rikukissa in #2606
- Hotfix for LOCAL_IP by @euanmillar in #2754
- Fix LOCAL_IP definition not working when there were 2 network interfaces connected by @rikukissa in #2798
- Ocrvs 2981 by @sadmananik in #3032
- Ocrvs 2981 BE Done by @sadmananik in #3063
- Ocrvs 2899 Assign frontend by @tahmidrahman-dsi in #3044
- ocrvs-3456 Fixed mobile form config message typo by @sadmananik in #3472
- Fixed console log error while filling up health institution from regi… by @soumita-dsi in #3465
- ocrvs-3053: radio button aligned to top by @emon-swe-sust in #3468
- ocrvs-3341: Removed a field from user review page if it is hidden in form by @soumita-dsi in #3438
- Release v1.0.0 by @euanmillar in #3482
- ocrvs-3418-fix Fixed back button issue on team page by @sadmananik in #3458
- ocrvs-2912-fix Added govt logo on setup and reset password success page by @sadmananik in #3459
- FIX: Addresses do not appear in review page by @yeasinhossain-dsi in #3461
- ocrvs-3462: pagination added on workflowStatus on performance by @emon-swe-sust in #3475
- ocrvs-2977-fix Some languages related change by @sadmananik in #3479
- ocrvs-3416: Disabled national registrar creation and update without signature by @soumita-dsi in #3455
- ocrvs-3420 Changed secondary address preview group label by @Zangetsu101 in #3457
- Auto hide Notification by @atiqzaman-dsi in #3451
- Conflicts BE & FE by @tahmidrahman-dsi in #3144
- Ocrvs 2707: content page added on team page by @emon-swe-sust in #3444
- ocrvs-3478 Tab name changed according to application name by @sadmananik in https://github.com/opencrvs/opencrvs-co...
OpenCRVS - v1.0.0
Introduction
OpenCRVS v1.0.0 is a major release of OpenCRVS Core. It is to be used in conjunction with a forked country configuration release v1.0.0
This release contains major new features and improvements, a number of dependency upgrades and many bug-fixes. This release includes:
- Correct a record
- Record audit
- Registration form configuration user interface
- Application configuration user interface
- Certificate configuration user interface
- Birth and death form default configuration refresh
- Performance improvements
- New user roles (National Registrar, National System Administrator, Performance Manager)
- UI design refresh of the navigation, workqueues and many pages
- Archive / Reinstate
- 3rd party penetration test fixes
- Dependency upgrades
- Miscellaneous bugfixes and refactor
All following major releases of OpenCRVS will document any breaking changes and a migration guide for system administrators.
Major Features
The following explains in more detail each major feature that has been included in this release.
Correct a record
It is now possible for all corrections made to an onging declaration by a Registration Agent and Registrar to be tracked and audited. Additionally, it is now possible for a Registrar to be able to make a correction to an already registered birth or death certificate. The correct record process supports uploading supporting legal documentation and configuration of any fees associated.
Record audit
All actions that are performed on a declaration or a registration are tracked, audited and displayed to the user when downloading details of the declaration or registration. This download process is also tracked and audited. This feature allows the user to easily monitor changes to the status of the declaration, any corrections that have been made to it and audit any access requested to personally identifiable information of a citizen by any civil registration staff member.
Registration form configuration user interface
Previously, birth and death form configuration was managed via a complicated JSON file in the country configuration repository. There is now an easy to use, form configuration user interface for National System Administrators to draft, edit, preview, test and publish the declaration forms. The old JSON approach has been deprecated.
Application configuration user interface
Previously, application settings such as fees, registration target deadlines, country logo and phone number validation regular expressions etc were managed manually via text config files in the country configuration repository. There is now an easy to use, application configuration user interface for National System Administrators to configure these values on-the-fly. The old config file approach has been deprecated.
Certificate configuration user interface
Previously, certificate configuration was managed via a complicated JSON file in the country configuration repository. There is now an easy to use, certificate configuration user interface for National System Administrators that allows them to upload an SVG design with handlebars for registration data. The certificates can be previewed and printed in this interface. The old JSON approach has been deprecated.
Birth and death form default configuration refresh
The default and standardised, OpenCRVS recommended birth and death form configuration comes pre-packaged into OpenCRVS. The question flow has been further optimised after feedback from our OpenSource community of civil registrars.
Performance improvements
The Performance user interface has been completed refreshed. It now includes detailed analytics on completeness rates, sources of applications, declaration status, field agent performance, breakdown of nationwide to specific office analytics and comparison between number of registrars and population numbers.
New user roles (National Registrar, National System Administrator, Performance Manager)
The National Registrar role has been created. This is a registrar's super admin and can view any declaration or registration nationwide and monitor the performance of any office. The National System Administrator role has the ability to configure the form, certificate and application settings as well as create/edit/deactive any user nationwide. The Performance Manager role has no access to any PII in any declaration or registration. They can access nationwide performance analytics only. This is an ideal 3rd party role for a statistician.
UI design refresh of the navigation, workqueues and many pages
System administrators who have tried out previous versions of OpenCRVS will notice a complete design refresh of the navigation, workqueues and many sections. The new look and feel is cleaner, easier to configure for your national needs and makes better use of screen real estate.
Archive / Reinstate
As long as the declaration has been submitted for review, it is now possible to archive an existing declaration, thus removing it from any workqueue. As every submitted declaration has a unique tracking ID, it can be retrieved in nationwide searches by a Registrar user and reinstated.
3rd party penetration test fixes
This version of OpenCRVS has undergone another round of 3rd party, security penetration testing by the consultancy GoFore - NORAD's preferred security testing provider. Any issue that was discovered during the penetration test have been resolved.
Dependency upgrades
In this release we have forked and upgraded Hearth, Jembi's FHIR database server originally located here. We resolved all dependencies that had any open security warning.
Miscellaneous bugfixes and refactor
A host of bugfixes were discovered and prioritsed by our QA team. Our test cases will soon be published in our documentation to be released at the end of June 2022. The development team have been bugfixing continuously and this release can be considered demo ready. We advise all system administrators to wait untill the end of June 2022 for the first minor patch release: v1.0.1 before proceeding with any implementations.
What's Changed
- Update README for 1.0.0-alpha.3.0 release by @euanmillar in #2075
- Change language code used for extract translations by @euanmillar in #2080
- Bump dns-packet from 1.3.1 to 1.3.4 by @dependabot in #2096
- Bump codemirror from 5.47.0 to 5.61.0 by @dependabot in #2095
- Bump hosted-git-info from 2.7.1 to 2.8.9 by @dependabot in #2094
- Bump lodash from 4.17.19 to 4.17.21 by @dependabot in #2093
- Bump bson from 1.1.1 to 1.1.6 by @dependabot in #2092
- Bump url-parse from 1.4.7 to 1.5.1 by @dependabot in #2091
- Bump handlebars from 4.7.6 to 4.7.7 by @dependabot in #2090
- Bump ua-parser-js from 0.7.20 to 0.7.28 by @dependabot in #2089
- Bump redis from 2.8.0 to 3.1.1 by @dependabot in #2088
- Bump y18n from 3.2.1 to 3.2.2 by @dependabot in #2087
- Bump react-dev-utils from 5.0.3 to 11.0.4 by @dependabot in #2085
- Bump elliptic from 6.5.3 to 6.5.4 by @dependabot in #2084
- Bump urijs from 1.19.1 to 1.19.6 by @dependabot in #2083
- Bump socket.io from 2.2.0 to 2.4.1 by @dependabot in #2081
- Bump axios from 0.18.1 to 0.21.1 by @dependabot in #2079
- Bump ini from 1.3.5 to 1.3.8 by @dependabot in #2074
- Ocrvs 2073 UI and copy updates by @tahmidrahman-dsi in #2077
- Ocrvs 1993 Rejection reason changes by @tahmidrahman-dsi in #2076
- Updating temporary phone number format for Island of Niue by @mushrafulhoque-dsi in #2110
- minor spelling mistakes fixed by @youshamahmood96 in #2124
- [ocrvs-2111] Introducing a new flag on client-config for hiding event info screen by @mushrafulhoque-dsi in #2125
- ocrvs-2107 by @kayumuzzaman in #2133
- Necessary fhir-builders and type-resolvers for deceased's dependents and medical practitioners by @mushrafulhoque-dsi in #2135
- Fix for birth in-progress application issue by @mushrafulhoque-dsi in #2140
- Ocrvs 2127 by @youshamahmood96 in #2132
- ocrvs-2152 by @kayumuzzaman in #2162
- Ocrvs 2150 by @youshamahmood96 in #2164
- Ocrvs 2151 by @mushrafulhoque-dsi in #2...
OpenCRVS - Alpha 3.2
This release contains a hotfix to the bash setup.sh
command that was affecting Mac users ...
The Mac command for exporting the local IP address was not robust, and OpenHIM required this address in order to start.
The issue was related to if users had both an IP address on a WiFi connection and another IP address on a wired Ethernet connection.
This hotfix resolves this issue and secondly, we used the opportunity to make some documentation corrections.
We added clearer documentation around the OpenCRVS Core yarn dev
command, explaining that OpenCRVS Core is a collection of Node microservices running in parallel, which must be fully started up, before a developer attempts to start the separate country configuration microservice.