Skip to content

Releases: opencrvs/opencrvs-farajaland

OpenCRVS Country Configuration - v1.2.0

23 Jan 17:46

Choose a tag to compare

An example OpenCRVS country configuration. To be used in conjunction with opencrvs-core release v1.2.0

Read the release notes!
Draft: v1.1 to v1.2.* migration notes

Breaking changes - country configuration

The country confguration repository opencrvs-farajaland has been entirely refactored. Please contact us at [email protected] if you need any help rebasing changes in this repository.

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

  • 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 below.

The following content keys have been added that require translation

"buttons.create": "Create",
"buttons.copy": "Copy",
"buttons.copied": "Copied",
"buttons.refresh": "Refresh",
"buttons.exactDateUnknown": "Exact date unknown",
"config.application.birthTabTitleExport": "Births",
"config.application.deathTabTitleExport": "Deaths",
"config.application.export": "Export",
"config.advanced.search": "Advanced Search",
"config.advanced.search.instruction": "Select the options to build an advanced search. A minimum of two search parameters is required.",
"config.application.vitalStatistics": "Month-{month}-Farajaland-{event, select, birth{birth} death{death} other{birth}}-event-statistics.csv {fileSize}",
"config.application.vsexport": "Vital statistics",
"config.application.emptystate": "The previous month's vital statistics data (based on vital event registrations occurring within that month) will become available for you to export as of the 1st of every month. Large CSV files cannot be opened in Excel and should therefore be opened in a statistical program such as {posit}.",
"config.form.tooltip.conditionalForRegistration": "Select if this field is conditional to complete registration",
"config.form.settings.dateRangePickerForFormField": "Date range picker input",
"config.form.tools.feildId": "Field ID",
"config.form.tools.fieldId": "Field ID",
"config.form.tooltip.fieldId": "Use these keys to search for specific field items",
"config.integrations": "Integrations",
"config.form.settings.checkboxGroup": "Checkbox group",
"constants.noResultsOutbox": "No records require processing",
"constants.record": "Record",
"constants.integrations": "Integrations",
"constants.assignRecord": "Assign record",
"constants.skipToMainContent": "Skip to main content",
"correction.reason.reasonForChange": "Reason for correction",
"custom.field.form.conditionalFieldHeader": "Conditional parameters",
"custom.field.form.conditionalField": "Conditional field",
"custom.field.form.conditionalFieldDesc": "Select the field and the conditions on which this field should show",
"custom.field.form.conditionalRegex": "Value RegEx",
"custom.field.form.duplicateField": "Label already exists in this form section. Please create a unique label",
"form.field.showLabel": "Show",
"form.field.hideLabel": "Hide",
"home.header.placeHolderNationalId": "Search for a national ID.",
"home.header.advancedSearch": "Advanced Search",
"home.header.nationalId": "National ID",
"integrations.uniqueKeyDescription": "These unique keys will be required by the client integrating...",
"integrations.createClient": "Create client",
"integrations.eventNotificationDescription": "An event notification client (eg. hospital) can send a partial notification or a full declaration of a birth or death in the HL7 FHIR standard to OpenCRVS for processing. For more information, visit:",
"integrations.webhookDescription": "A Webhook client can subscribe to be notified upon a birth or death registration following W3C WebSub standards. For more information, visit:",
"integrations.recordSearchDescription": "A Record search client can perform an advanced search on OpenCRVS data. For more information, visit:",
"integrations.nationalidAlertDescription": "A National ID client (eg. MOSIP) can react to birth or death webhooks to create or invalidate NID numbers. If using MOSIP, ensure the name of the integration is: \"MOSIP\". For more information, visit:",
"integrations.pageIntroduction": "For each new client that needs to integrate with OpenCRVS you can create unique client IDs. A number of integration use cases are currently supported, based on both API and webhook technologies.",
"integrations.supportingDescription": "Supporting description to help user make a decision and navigate the content",
"integrations.revealKeys": "Reveal Keys",
"integrations.disable": "Disable",
"integrations.enable": "Enable",
"integrations.delete": "Delete",
"integrations.copy": "Copy",
"integrations.name": "Name",
"integrations.nationalIDName": "Name (If using MOSIP, enter: \"MOSIP\")",
"integrations.client.type": "Type",
"integrations.label": "Label",
"integrations.webhookPermissionsDescription": "Select the data you wish to be contained within the webhook payload",
"integrations.webhook.PII": "Include PII data",
"integrations.birth": "Birth",
"integrations.death": "Death",
"integrations.type.eventNotification": "Event notification",
"integrations.type.nationalID": "National ID",
"integrations.childDetails": "Child's details",
"integrations.motherDetails": "Mother's details",
"integrations.documentDetails": "Document details",
"integrations.deathEventDetails": "Death event details",
"integrations.fatherDetails": "Father's details",
"integrations.informantDetails": "Informant's details",
"integrations.registrationDetailsnNoPII": "Registration Details (No PII)",
"integrations.childDetailsNoPII": "Childs Details (No PII)",
"integrations.motherDetailsNoPII": "Mothers Details (No PII)",
"integrations.fatherDetailsNoPII": "Fathers Details (No PII)",
"integrations.informantDetailsNoPII": "Informant Details (No PII)",
"integrations.type.recordSearch": "Record search",
"integrations.type.webhook": "Webhook",
"integrations.otherAlertDescription": "...Please visit",
"integrations.clientId": "Client ID",
"integrations.clientSecret": "Client Secret",
"integrations.shaSecret": "SHA Secret",
"integrations.active": "Active",
"integrations.inactive": "Inactive",
"integrations.loading": "Loading",
"integrations.error": "Something went wrong",
"integrations.activate.client": "Activate Client?",
"integrations.activate.status": "Client activated",
"integrations.deactivate.status": "Client deactivated",
"integrations.deactivate.client": "Deactivate Client?",
"integrations.activatetext": "This will activate the client",
"integrations.deactivatetext": "This will deactivate the client",
"navigation.integrations": "Integrations",
"integrations.pageTitle": "Integrations",
"navigation.integration": "Integrations",
"integrations.type.healthSystem": "Health integration",
"integrations.newIntegrationDescription": "Add a unique name and select the type of client you would like to create",
"integrations.onlyOneNationalId": "Only one National ID integration is allowed.",
"integrations.activate": "Activate",
"integrations.deactivate": "Deactivate",
"integrations.updatePermissionsMsg": "Permissions update successfully",
"integrations.deceasedDetails": "Deceased's Details",
"integrations.deleteSystemText": "This will delete the system",
"integrations.deleteSystemMsg": "System has been deleted successfully",
"form.field.label.locationLevel3": "Location Level 3",
"form.field.label.locationLevel4": "Location Level 4",
"form.field.label.locationLevel5": "Location Level 5",
"misc.notif.onlineUserStatus": "You are back online",
"navigation.outbox": "Outbox",
"navigation.reports": "Vital statistics",
"recordAudit.regAction.assigned": "Assigned",
"recordAudit.regAction.downloaded": "Retrieved",
"recordAudit.regAction.reinstated": "Reinstated to {regStatus, select, validated{ready for review} in_progress{in progress} declared{ready for review} rejected{requires updates} other{}}",
"recordAudit.regAction.requestedCorrection": "Corrected record",
"recordAudit.regAction.unassigned": "Unassigned",
"recordAudit.regAction.viewed": "Viewed",
"recordAudit.regStatus.archived": "Archived",
"recordAudit.regStatus.declared": "Declaration started",
"recordAudit.regStatus.declared.sentNotification": "Sent notification for review",
"recordAudit.regStatus.waitingValidation": "Waiting for validation",
"recordAudit.regStatus.registered": "Registered",
"recordAudit.regStatus.certified": "Certified",
"recordAudit.regStatus.rejected": "Rejected",
"recordAudit.regStatus.updatedDeclaration": "Updated",
"regHome.outbox.statusCertifying": "Certifying...",
"regHome.outbox.statusRejecting": "Sending f...
Read more

OpenCRVS Country Configuration - v1.2.0-beta

22 Dec 14:37
c13dff7

Choose a tag to compare

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.

An example OpenCRVS country configuration. To be used in conjunction with opencrvs-core release v1.2.0-beta

Read the release notes!
Draft: v1.1 to v1.2.* migration notes - still undergoing testing

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 like this, to make them easier to understand and to revert/run Core migrations when creating backups and restoring from backups:

yarn db:clear:all --path_to_core=<path-to-core>

yarn db:populate \
--password_for_users=test \
--environment=development \
--alpha3_country_code=ZMB \
--path_to_admin_structure_csv=<path-to-farjaland>/src/features/administrative/source/farajaland.csv \
--path_to_crvs_offices_csv=<path-to-farjaland>/src/features/facilities/source/crvs-facilities.csv \
--path_to_health_facilities_csv=<path-to-farjaland>/src/features/facilities/source/health-facilities.csv \
--path_to_employees_csv=<path-to-farjaland>/src/features/employees/source/test-employees.csv \
--path_to_statistics_csv=<path-to-farjaland>/src/features/administrative/source/farajaland-statistics.csv

yarn db:backup:create --path_to_core=<path-to-core>

Many content keys have been created for translation requirements for the new features. These will be documented in these notes for the stable release.

What's Changed

Read more

OpenCRVS Country Configuration - v1.1.2

04 Nov 13:24

Choose a tag to compare

An example OpenCRVS country configuration. To be used in conjunction with opencrvs-core release v1.1.2

Just a release version number bump

What's Changed

Full Changelog: v1.1.1...v1.1.2

OpenCRVS Country Configuration - v1.1.1

18 Oct 12:29

Choose a tag to compare

An example OpenCRVS country configuration. To be used in conjunction with opencrvs-core release v1.1.1

Non breaking hotfixes

  • removed the deprecated --update-metadata flag from the deploy.yml by @euanmillar in #359

Full Changelog: v1.1.0...v1.1.1

OpenCRVS Country Configuration - v1.1.0-stable

23 Sep 13:44

Choose a tag to compare

An example OpenCRVS country configuration. To be used in conjunction with opencrvs-core release v1.1.0

Read the release notes!
Read the v1.0.1 to v1.1.0 migration notes!

Breaking changes - country configuration

v1.1.0 includes the following configuration improvements which are breaking changes. You must rebase 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 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.

  • 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"

OpenCRVS Country Configuration - v1.0.1

28 Jun 13:17
46a3be5

Choose a tag to compare

OpenCRVS Country Configuration - v1.0.0

14 Jun 11:38

Choose a tag to compare

OpenCRVS Country Configuration - Alpha 3.1

07 Feb 11:52

Choose a tag to compare