Skip to content

Releases: opencrvs/opencrvs-core

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

OpenCRVS - v1.2.0

23 Jan 17:40
Compare
Choose a tag to compare

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...
Read more

OpenCRVS - v1.2.0-beta

22 Dec 15:14
11b1f89
Compare
Choose a tag to compare
Pre-release

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:

  1. We removed unnecessary endpoints now that Locations API is accessible in Core.

  2. 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

Read more

OpenCRVS - v1.1.2

04 Nov 13:29
Compare
Choose a tag to compare

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

18 Oct 12:23
Compare
Choose a tag to compare

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

23 Sep 13:59
Compare
Choose a tag to compare

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 just yarn dev, rather than previously the v1.0.1 requirement to run yarn 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

Read more

OpenCRVS - v1.0.1

28 Jun 09:27
Compare
Choose a tag to compare

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

Zenhub release report

Read more

OpenCRVS - v1.0.0

14 Jun 11:35
b897e68
Compare
Choose a tag to compare
OpenCRVS - v1.0.0 Pre-release
Pre-release

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

Zenhub release report

Read more

OpenCRVS - Alpha 3.2

23 Mar 08:41
68d19a1
Compare
Choose a tag to compare
OpenCRVS - Alpha 3.2 Pre-release
Pre-release

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.

OpenCRVS - Alpha 3.1

07 Feb 11:40
Compare
Choose a tag to compare
OpenCRVS - Alpha 3.1 Pre-release
Pre-release

Introduction

OpenCRVS Alpha 3.1 is a minor Alpha release for OpenCRVS.

This release contains a number of dependency upgrades, bug-fixes, some major new features and many minor improvements. This release includes:

  • An automated, local demo and development environment installation script
  • The default Zambia country configuration package has been replaced by a fictional country: Farajaland
  • Documentation improvements in advance of the public Beta v1.0 planned for mid 2022
  • Ability to add / edit a user's profile image
  • Ability for a user to change language in the login application
  • Ability to search all health facilities offline
  • Ability to search performance statistics for a single office as opposed to a jurisdiction such as a district.
  • A new styleguide component library
  • Miscellaneous bugfixes
  • UI design improvements
  • Dependency upgrades

The next major OpenCRVS release will be an official Beta planned for mid-2022. The Beta may be deemed a full OpenCRVS 1.0, after which point we will begin documenting breaking changes in all future releases.

Major Features

The following explains in more detail each major feature that has been included in this release.

An automated, local demo and development environment installation script

Previously, setting up a local, demo development environment of OpenCRVS was hard. It involved a number for commands to be run in sequence and without ports and dependencies being installed correctly, OpenCRVS would fail to start without informing the system administrator of the source of the problem.

This has been improved with a single command bash ./setup.sh. Running this command checks that all the dependencies have been in stalled correctly, checks that ports are available, builds all docker images, checks out the Farajaland default country configuration, starts OpenCRVS and populates the OpenCRVS databases with default country configuration.

With this single command OpenCRVS can be easily demo-ed and developed upon by new system administrators.

The default Zambia country configuration package has been replaced by a fictional country: Farajaland

Previously, the country configuration for an OpenCRVS 2019 pilot in Zambia was released as an example country configuration for OpenCRVS. IN order to become more generic in future releases and demo easier configuration tools planned for 2022, we have renamed and performed some upgrades. The default country configuration is now a fictional African country. "Farajaland". "Faraja" means "Blessings" in Swahili.

Documentation improvements in advance of the public Beta v1.0 planned for mid 2022

To accompany the past 2 points, the documentation in OpenCRVS Core and OpenCRVS Farajaland repositories has been updated and tested. Expect this documentation to become drastically simplified with regards to country configuration in the next release.

Ability to add / edit a user's profile image

It is now possible in the settings page, for a user to upload an avatar image. This image is used to make it easier for staff to quickly understand their team's actions. It also gives the user the added ability to personalise their OpenCRVS experience.

Ability for a user to change language in the login application

Previously, changing the default language of OpenCRVS was only possible in the main Client application. The default language for the Login application was configured in an environment variable and could not be changed by the user. Now, provided the country configuration contains more than one available language, it is possible for the user to use a select in the Login app to change their desired language independently.

Ability to search all health facilities offline

Previously, due to some technical debt, users could only search for health facilities offline from a list containing health facilities in their own jurisdiction. This proved restrictive as it stopped birth and death declarations from being submitted in an offline state, if the birth or death happened outside the jurisdiction. Now, the country's entire health facility list is available for searching offline.

Ability to search performance statistics for a single office as opposed to a jurisdiction such as a district

Previously, searching performance reports and statistics was restricted to jurisdictional searches down to district level. This is because some operational statistics are calculated using the populations, gender split and crude birth/death rates for a jurisdiction. These calculations now will not appear if searching for performance report on an office, meaning that operational reports can be accessed at the office level. It may be possible that in some countries a single jurisdiction can contain multiple civil registration offices.

A new styleguide component library

We have launched a new component library website using Storybook. Storybook is an open source tool for building UI components and pages in isolation. It streamlines UI development, testing, and documentation.

Miscellaneous bugfixes

Many bugs and performance issues have been resolved. Please refer to the Zenhub release report link at the bottom of this report to see specifics.

UI design improvements

Many minor UI design improvements have been made. Please refer to the Zenhub release report link at the bottom of this report to see specifics.

Dependency upgrades

  • HapiJS has been upgraded
  • Create React App, Jest and Typescript has been upgraded
  • Dependency security vulnerabilities in many node_modules have been resolved

What's Changed

Zenhub release report

Read more