Releases: opencrvs/opencrvs-farajaland
OpenCRVS Farajaland Configuration - v1.3.5
This release is a reference implementation compatible with OpenCRVS version 1.3.5. Fundamentally this is equivalent to v1.3.4 and it's being released mainly for keeping the version in sync with OpenCRVS core.
OpenCRVS Farajaland Configuration - v1.3.4
What's Changed
This release is a reference implementation compatible with OpenCRVS version 1.3.4.
Bugfixes
- Fix "Reason for delayed registration" not showing with single digit date or month in child's birthday (issue).
- Add missing French translations (issue).
Full Changelog: v1.3.3...v1.3.4
OpenCRVS Farajaland Configuration - v1.4.1
This release is a reference implementation compatible with OpenCRVS version 1.4.1.
What's changed?
-
Improved logging for emails being sent
-
Updated default Metabase init file so that it's compatible with the current Metabase version
-
Deployment: Verifies Kibana is ready before setting up alert configuration
-
Deployment: Removes
depends_on
configuration from docker compose files -
Deployment: Removes some deprecated deployment code around Elastalert config file formatting
-
Provisioning: Creates backup user on backup servers automatically
-
Provisioning: Update ansible Github action task version
-
Copy: All application copy is now located in src/translations as CSV files. This is so that copy would be easily editable in software like Excel and Google Sheets. After this change,
AVAILABLE_LANGUAGES_SELECT
doesn't need to be defined anymore by country config.
OpenCRVS Farajaland Configuration - v1.3.3
This release is a reference implementation compatible with OpenCRVS version 1.3.x.
What's Changed
- ocrvs-6363 use the new id handlebars with the "location" helper by @Zangetsu101 in #815
- Change the verbiage from sms to email in Send for approval section and in introduction page by @naftis in #868
- update password copy to suggest a 12 character long passphrase by @naftis in #867
- Farajaland certificates updated by @euanmillar in #891
- Make occupation field usable for deceased by @Zangetsu101 in #888
- Farajaland form updates by @tahmidrahman-dsi in #805
- Reason for delayed registration custom form field by @euanmillar in #894
- [OCRVS-6520] Fix Farajaland marriage form issue by @tahmidrahman-dsi in #906
- add handlebar of age of deceased in death certificate by @Nil20 in #895
- ocrvs-6517 Hide fields when informantType not selected by @Zangetsu101 in #899
- ocrvs-6204 fix date of birth unknown checkbox conditional & update CHANGELOG by @Zangetsu101 in #898
- Fix search copy by @tahmidrahman-dsi in #907
- Fix death certificate birthdate field by @Nil20 in #908
- Update handlebars by @Zangetsu101 in #905
- Allow pip to update externally-managed packages by @Zangetsu101 in #882
Full Changelog: v1.3.2...v1.3.3
OpenCRVS Farajaland Configuration - v1.4.0
An example OpenCRVS country configuration. To be used in conjunction with opencrvs-core release v1.4.0
Read the release notes!
Read the v1.3.* to v1.4.* migration notes!
What's Changed
- Added examples for configuring HTTP-01, DNS-01, and manual HTTPS certificates. By default, development and QA environments use HTTP-01, while others use DNS-01.
- All secrets & variables defined in Github Secrets are now passed automatically to the deployment script.
- The VPN_HOST_ADDRESS variable is now required for staging and production installations to ensure deployments are not publicly accessible.
- Replica limits have been removed; any number can now be deployed.
- Each environment now has a dedicated docker-compose--deploy.yml. Use
environment:init
to create a new environment and generate a corresponding file for customizable configurations. - 🔒 OpenHIM console is no longer exposed via HTTP.
- Ansible playbooks are refactored into smaller task files.
New features
- We now recommend creating a new Ubuntu user
provision
with passwordless sudo rights for all automated operations on the server, instead of using the root user. New users for different operations will be created in future releases. - All human users on all servers now have their own Linux users with mandatory 2-factor authentication.
- OpenCRVS Farajaland now has an interactive script
environment:init
for creating new Github environments and defining secrets. This script should also be run for existing environments to ensure all variables and secrets are defined, especially important when pulling the latest changes from the Farajaland repository to your own country resource package. - The environment creator script also manages the known hosts file automatically.
- 🚰 New pipeline for automatic provisioning of Ubuntu servers (all environments).
- 🚰 New pipeline for resetting data from an environment (non-production environments).
- 🚰 New pipeline for resetting SSH 2FA for all environments.
- 🚰 Development deploy pipeline now includes a "debug" option for SSHing into the action runner (non-production environments).
- A new "staging" environment has been introduced, acting as a production environment clone that resets its data nightly to match the production environment.
- The deployment script can now verify if there are undefined environment variables referred to in your compose files. All secrets and variables defined in Github Environments are automatically passed down to the deployment script.
- 🔒 Backup archives are now secured with a passphrase.
- HTTPS setup now offers three options: HTTP challenge, DNS challenge, and using a pre-issued certificate file.
- There's now a generic purpose POST /email endpoint only available from the internal network. Elastalert2 is configured to use this endpoint instead of directly using SMTP details or the Sendgrid API key.
- 🔒 QA environment now hosts a Wireguard server and admin panel (wg-easy). After deploying, you can access the admin panel at vpn..
- Allow configuring additional SSH parameters globally using
SSH_ARGS
Github variable.
Breaking changes
- Known hosts are now defined in the
infrastructure/known-hosts
file. You can clear the file and usebash infrastructure/environments/update-known-hosts.sh <domain>
to add your own domains. - Ansible inventory files are now in .yml format. Please convert your old
production.ini
and similar files to this new format. - The
authorized_keys
file has been removed, and keys should now be defined in the inventory yaml files. - The
DOCKER_PASSWORD
secret has been replaced withDOCKER_TOKEN
.
Note
In the next OpenCRVS release v1.5.0, there will be two significant changes:
- The
infrastructure
directory and related pipelines will be moved to a new repository. - Both the new infrastructure repository and the OpenCRVS country resource package repositories will start following their own release cycles, mostly independent from the core's release cycle. From this release forward, both packages are released as "OpenCRVS minor compatible" releases, meaning that the OpenCRVS countryconfig 1.3.0- is compatible with OpenCRVS 1.3.0, 1.3.1, 1.3.2, etc. This allows for the release of new hotfix versions of the core without having to publish a new version of the infrastructure or countryconfig.
See Releases for release notes of older releases.
v1.4.0 (2024-02-20)
Other changes
- Release v1.3.1 by @euanmillar in #786
- Update auth to go through gateway by @naftis in #781
- chore(deps): update dependency minimist to v1.2.8 by @renovate in #780
- ocrvs-5493 Correction flow translations by @Zangetsu101 in #794
- Sort staged translation files by @Zangetsu101 in #795
- Ocrvs 6217 by @Nil20 in #801
- Add CI pipeline for testing PRs before merging by @rikukissa in #802
- chore(deps): update dependency @types/google-libphonenumber to v7.4.30 by @renovate in #800
- chore(deps): update dependency @types/bcryptjs to v2.4.6 by @renovate in #799
- return composition id confirm registration endpoint in core by @Nil20 in #797
- chore(deps): update docker.elastic.co/kibana/kibana docker tag to v7.17.15 by @renovate in #804
- chore(deps): update docker.elastic.co/beats/metricbeat docker tag to v7.17.15 by @renovate in #803
- chore(deps): update dependency @graphql-codegen/add to v3.2.3 by @renovate in #774
- chore(deps): update dependency jsonwebtoken to v9.0.2 by @renovate in #779
- [OCRVS 6250] Add feature flags in application default config by @tahmidrahman-dsi in #806
- Upgrade Cypress by @rikukissa in #793
- chore: remove logrocket references by @naftis in #811
- fix(deps): update dependency @types/csv2json to v1.4.5 by @renovate in #821
- fix(deps): update dependency @types/code to v4.0.8 by @renovate in #820
- chore(deps): update logstash docker tag to v7.17.16 by @renovate in #819
- chore(deps): update dependency minimist to v1.2.8 by @renovate in #816
- chore(deps): update docker.elastic.co/kibana/kibana docker tag to v7.17.16 by @renovate in #818
- chore(deps): update docker.elastic.co/beats/metricbeat docker tag to v7.17.16 by @renovate in #817
- fix(deps): update dependency @types/geojson to v7946.0.13 by @renovate in #837
- fix(deps): update dependency @types/lodash to v4.14.202 by @renovate in #844
- fix(deps): update dependency @types/mime-types to v2.1.4 by @renovate in #845
- fix(deps): update dependency @types/uuid to v3.4.13 by @renovate in #855
- fix(deps): update dependency google-libphonenumber to v3.2.34 by @renovate in #856
- Merge master to develop by @rikukissa in #858
- Define HTTPS certificate resolver differently for different environments by @rikukissa in #869
- Fix repository secrets by @euanmillar in #873
- Remove non-configurable variables like backup user and backup dir by @rikukissa in #874
- Update known hosts automatically by @rikukissa in #879
- InfluxDB backups fix by @rikukissa in #878
- Add ashikul's public key in staging and qa by @Nil20 in #886
- Fix syslog errors coming from missing metricbeat capabilities by @rikukissa in #889
- Fix APM logs not showing by @rikukissa in #887
- Release v1.4.0 by @rikukissa in #842
- Merge master (1.4.0) to develop (1.5.0) by @rikukissa in #892
- Update dependency @octokit/core to v4.2.4 by @renovate in #901
- Update dependency @types/geojson to v7946.0.14 by @renovate in https://github.com/opencrvs/opencrvs-fara...
OpenCRVS Farajaland Configuration - v1.3.2
This release is a reference implementation compatible with OpenCRVS version 1.3.x.
What's Changed
- Hotfix release v1.3.1 by @euanmillar in #741
- remove duplicate id check of informant for bride groom by @Nil20 in #796
- Update deceased age label & conditionals by @Zangetsu101 in #792
- review section message update for incomplete declaration by @Nil20 in #791
- Remove unsupported font from marriage certificate by @Zangetsu101 in #852
- Release 1.3.2 by @euanmillar in #788
Full Changelog: v1.3.1...v1.3.2
OpenCRVS Farajaland Configuration - v1.3.1
What's Changed
- Hotfix v1.2.1 - Mali POC by @euanmillar in #545
- Release v1.3.0 by @euanmillar in #738
- Release v1.3.1 by @euanmillar in #740
- Hotfix: Fix backing up ElasticSearch data by @rikukissa in #743
- [OCRVS-3601] Correction approval from Registration agents by @rikukissa in #684
- email message add for search by @Nil20 in #685
- Ensure jq is installed on all production servers by @rikukissa in #759
- id verifier message add for age by @Nil20 in #762
- ocrvs-6063 Include type parameter in name query by @Zangetsu101 in #761
- Ocrvs 5794 - configuration of signatures for users by @Nil20 in #754
- Ocrvs 5994- certificate collector options fix by @Nil20 in #757
- Fix broken e2e tests by @tahmidrahman-dsi in #747
- Ocrvs 6032 by @tahmidrahman-dsi in #756
- Requirements for Niue by @euanmillar in #745
- OCRVS 6085: Configurable handlebars by @euanmillar in #763
- Bump @babel/traverse from 7.19.6 to 7.23.2 by @dependabot in #760
- Bump undici from 5.19.1 to 5.26.3 by @dependabot in #758
- grammar fix - marriage by @jpye-finch in #753
- grammar fix - death by @jpye-finch in #752
- grammar fix - birth by @jpye-finch in #751
- Fix spelling mistake marriage by @jpye-finch in #750
- Fix spelling mistake death by @jpye-finch in #749
- Fix spelling mistake birth by @jpye-finch in #748
- Update dependency zod to v3.22.3 [SECURITY] by @renovate in #746
- Update dependency graphql to v16.8.1 [SECURITY] by @renovate in #717
- Declaration review form by @tahmidrahman-dsi in #657
- Update dependency google-libphonenumber to v3.2.33 by @renovate in #715
- Update dependency @types/uuid to v3.4.12 by @renovate in #714
- Update dependency @types/lodash to v4.14.200 by @renovate in #712
- Update dependency @types/geojson to v7946.0.12 by @renovate in #711
- Update dependency @types/hapi__inert to v5.2.9 by @renovate in #710
- Update dependency @types/google-libphonenumber to v7.4.29 by @renovate in #708
- Update dependency @types/csv2json to v1.4.4 by @renovate in #706
- Update dependency @types/bcryptjs to v2.4.5 by @renovate in #705
- Update dependency @types/fhir to ^0.0.38 by @renovate in #707
- Add registration location to email as a variable by @euanmillar in #764
- Ocrvs 6093 by @tahmidrahman-dsi in #768
- fix message for collector form by @Nil20 in #769
- Ocrvs 6093 Updates by @tahmidrahman-dsi in #770
- Add a placeholder file for custom handlebar helpers by @rikukissa in #772
- feat: inform client which administrative level is leaf level by @naftis in #765
- messages fix for send for approval button by @Nil20 in #771
- Configurable whitelist by @euanmillar in #773
- Copy amend on review page by @euanmillar in #778
- Endpoint for certificate fonts & configuration by @Zangetsu101 in #782
- Some minor infra hotfixes by @euanmillar in #784
- Add customisation route and deploy approach for metabase by @euanmillar in #777
Full Changelog: v1.3.0...v1.3.1
OpenCRVS Farajaland Configuration - v1.3.0
An example OpenCRVS country configuration. To be used in conjunction with opencrvs-core release v1.3.0
Read the release notes!
v1.2 to v1.3.* migration notes
Breaking changes - country configuration
The country confguration repository has been entirely refactored. Please contact us at [email protected] if you need any help rebasing changes in this repository.
Refer to the documentation
- Form configuration now takes place entirely by using code in this repository.
- All databases are now seeded using the configuration and APIs here and the old backup zips have been deprecated.
- Directory structure has been refactored entirely
- All server configuration can now be amended in this repository without forking opencrvs-core
- Many content keys have been created for translation requirements for the new features. These are documented below.
"buttons.editRecord": "No, make correction",
"buttons.issue": "Issue",
"buttons.saving": "Saving...",
"buttons.sendForUpdates": "Send for updates",
"certificate.receipt.amountDue": "Fee",
"certificate.receipt.deathService.before": "Death registration before {target} days of date of death",
"certificate.receipt.marriageService.after": "Marriage registration after {target} days of date of marriage",
"certificate.receipt.marriageService.before": "Marriage registration before {target} days of date of marriage",
"certificate.receipt.service": "Service",
"changeEmail.validation.msg": "Must be a valid email address",
"config.application.marriageTabTitle": "Marriage",
"config.application.marriageLegallySpecifiedDialogTitle": "Legally specified time period for marriage registration",
"config.application.marriageDelayedFeeChangeNotification": "Marriage delayed fee updated",
"config.application.marriageOnTimeFeeChangeNotification": "Marriage on time fee updated",
"config.application.marriageRegTargetChangeNotification": "Marriage registration target days updated",
"config.informantNotification.title": "Informant notifications",
"config.informantNotification.subtitle": "Select the notifications to send to the informant to keep them informed of the progress to their declaration. Your system is configured to send {communicationType}.",
"config.informantNotification.inProgressSMS": "Notification sent to Office",
"config.informantNotification.declarationSMS": "Declaration sent for review",
"config.informantNotification.registrationSMS": "Declaration registered",
"config.informantNotification.rejectionSMS": "Declaration rejected",
"config.informantNotification.success": "Informant notifications updated",
"config.userRoles.title": "User roles",
"config.userRoles.subtitle": "Map user roles to each system role so that specific permissions and privileges are correctly assigned. To learn more about the different system roles see ... {link}",
"config.userRoles.systemRoles": "SYSTEM ROLES",
"config.userRoles.systemRoleSuccessMsg": "System role updated successfully",
"config.userRoles.role": "ROLE",
"config.userRoles.roleUpdateInstruction": "Add the roles to be assigned the system role of {systemRole}",
"config.application.vsExportDownloadFailed": "Sorry! Something went wrong",
"config.certificate.template": "Template",
"config.certificate.allowPrinting": "Allow printing in advanced of issuance",
"config.certificate.options": "Options",
"config.certificate.printDescription": "Records printed off in advance of collections will be added to the ready to issue work-queue",
"config.certificate.allowPrintingNotification": "Allow printing in advance of issuance updated",
"config.certTemplate": "Certificate Template",
"config.marriageDefaultTempDesc": "Default marriage certificate template",
"config.marriageTemplate": "Marriage certificate",
"config.listTitle": "Certification",
"config.application.backgroundImageError": "Unable to change image. Please try again.",
"config.application.loginBackgroundLabel": "Login Background",
"config.application.loginImageText": "Upload an image and set how you would like it to display in the background",
"config.application.imageTabTitle": "Image",
"config.application.colourTabTitle": "Colour",
"config.application.colourTabText": "Hex code",
"config.application.backgroundImageChangeNotification": "Background image updated",
"config.application.backgroundImageFileLimitError": "Background image file must be less than 2mb",
"constants.marriage": "Marriage",
"constants.marriages": "Marriages",
"constants.duplicateOf": "Duplicate of",
"constants.matchedTo": "Matched to",
"constants.registeredAt": "Registered at",
"constants.registeredBy": "Registered by",
"constants.emailAddress": "Email Address",
"constants.user.role": "Role",
"constants.user.systemRole": "System Role",
"constants.registrationNumber": "Reg no.",
"constants.issueCertificate": "Issue Certificate",
"constants.collectorDetails": "Collector Details",
"constants.issueToMother": "Issue to informant (Mother)",
"constants.issueToFather": "Issue to informant (Father)",
"constants.issueToGroom": "Issue to informant (Groom)",
"constants.issueToBride": "Issue to informant (Bride)",
"constants.issueToSomeoneElse": "Issue to someone else",
"constants.issueToInformant": "Issue to informant",
"constants.issueConfirmationMessage": "Please confirm that the certificate has been issued to the informant or collector.",
"constants.idCheckWithoutVerify": "Continue without proof of ID?",
"constants.systemrole": "System Role",
"constants.draft": "Draft",
"verifyCertificate.loading": "Verifying certificate",
"verifyCertificate.timeOut": "You been timed out",
"verifyCertificate.successTitle": "Valid QR code",
"verifyCertificate.successMessage": "Compare the partial details of the record below against those against those recorded on the certificate",
"verifyCertificate.errorTitle": "Invalid QR code",
"verifyCertificate.errorMessage": "The certificate is a potential forgery please...",
"verifyCertificate.successUrl": "URL Verification",
"verifyCertificate.fullname": "Full name",
"verifyCertificate.dateOfBirth": "Date of birth",
"verifyCertificate.dateOfDeath": "Date of death",
"verifyCertificate.sex": "Sex",
"verifyCertificate.placeOfBirth": "Place of birth",
"verifyCertificate.placeOfDeath": "Place of death",
"verifyCertificate.registrationCenter": "Registration Center",
"verifyCertificate.registar": "Name of registar",
"verifyCertificate.createdAt": "Date of certification",
"verifyCertificate.brn": "BRN",
"verifyCertificate.drn": "DRN",
"verifyCertificate.toastMessage": "After verifying the certificate, please close the browser window",
"verifyCertificate.sexFemale": "Female",
"verifyCertificate.sexMale": "Male",
"correction.corrector.bride": "Bride",
"correction.corrector.groom": "Groom",
"correction.summary.required": "Required for correction",
"correction.summary.idCheckForCorrection": "Correct without proof of ID?",
"dashboard.noContent": "No content to show. Make sure the following variables are configured in the <strong>client-config.js</strong> provided by your country config package:<br /><ul><li><strong>LEADERBOARDS_DASHBOARD_URL</strong></li><li><strong>REGISTRATIONS_DASHBOARD_URL</strong></li><li><strong>STATISTICS_DASHBOARD_URL</strong></li></ul>",
"dashboard.dashboardTitle": "Dashboard",
"dashboard.leaderboardTitle": "Leaderboards",
"dashboard.statisticTitle": "Statistics",
"custom.field.form.unit": "Unit",
"custom.field.form.unitOptionG": "Gram (G)",
"custom.field.form.unitOptionKg": "Kilogram (Kg)",
"custom.field.form.unitOptionCm": "Centimeter (Cm)",
"custom.field.form.unitOptionM": "Meter (M)",
"custom.field.form.unitOptionEmpty": "None",
"custom.field.form.inputWidth": "Input width",
"config.form.settings.time": "Time input",
"config.form.tools.input.customSelectWithDynamicOptions": "Custom select with dynamic options",
"duplicates.warning": "Potential duplicate of record {trackingId}",
"duplicates.review.header": "Potential {event} duplicate review",
"duplicates.content.title": "Is {name} ({trackingId}) a duplicate?",
"duplicates.content.subtitle": "This record was flagged as a potential duplicate of: {trackingIds}. Please review these by clicking on each tracking ID in the tab section to view a side-by-side comparison below, and confirm if this record is a duplicate",
"duplicates.button.notDuplicate": "Not a duplicate",
"duplicates.button.markAsDuplicate": "Mark as duplicate",
"duplicates.content.notDuplicateConfirmationTitle": "Are you sure {name} ({trackingId}) is not duplicate?",
"duplicates.content.markAsDuplicate": "Mark {trackingId} as duplicate?",
"duplicates.content.duplicateDropdownMessage": "Duplicate of",
"duplicates.content.markAsDuplicateReason": "Please describe your reason",
"duplicates.compare.title": "Review {actualTrackingId} against {duplicateTrackingId}",
"duplicates.compare.supportingDocuments": "Supporting documents",
"duplicates.content.header": "Declaration details",
"form.field.nidNotVerified": "Authenticate",
"form.field.nidVerified": "Authenticated",
"form.field.nidOffline": "National ID authentication is currently not available offline.",
"form.field.nidNotVerifiedReviewSection": "Unauthenticated",
"form.field.label.addressLine1RuralOption": "Village",
"form.field.label.addressLine1UrbanOption": "Residential Area",
"form.field.label.app.certifyRecordTo.mother": "Print and issue to informant (Mother)",
"form.field.label.app.certifyRecordTo.father": "Print and issue to informant (Father)",
"form.field.label.exactDateOfBirthUnknown": "Exact date of birth unknown",
"form.field.label.fileSizeErr...
OpenCRVS Country Configuration - v1.2.1
An example OpenCRVS country configuration. To be used in conjunction with opencrvs-core 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
- There were 2 bugs in our Ansible script which are resolved by this hotfix.
-
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. 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. Choose approximately 80% of your available diskspace.
-
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. T o pick up this fix, run the Ansible commands again.
What's Changed
- Release v1.2.0 by @euanmillar in #472
- Allow phone numbers that locally do no start with zero by @euanmillar in #546
- Force disk encryption by @euanmillar in #547
Full Changelog: v1.2.0...v1.2.1
OpenCRVS Country Configuration - v1.2.0
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...