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 team@opencrvs.org 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.fileSizeError": "File size must be less than 2MB",
"form.field.label.firstName": "First name(s)",
"form.field.label.firstNameEN": "First name(s)",
"form.field.label.informantRelation.contactPoint": "Contact Point",
"form.field.label.email": "Email",
"form.field.label.registrationName": "Registration Name",
"form.field.label.informantTitle": "Informant's details",
"form.field.label.someoneElseCollector": "Print and issue to someone else",
"form.field.label.ageOfMother": "Age of mother",
"form.field.label.ageOfFather": "Age of father",
"form.field.label.ageOfInformant": "Age of informant",
"form.field.label.ageOfDeceased": "Age of deceased",
"form.preview.group.label.english.name": "Full name",
"form.preview.group.label.father.english.name": "Full name",
"form.preview.group.label.informant.english.name": "Full name",
"form.preview.group.label.mother.english.name": "Full name",
"form.preview.group.label.spouse.english.name": "Full name",
"form.section.deceased.relationship": "Relationship to deceased",
"form.section.information.name": "Information",
"form.section.information.birth.bullet1": "I am going to help you make a declaration of birth.",
"form.section.information.birth.bullet2": "As the legal Informant it is important that all the information provided by you is accurate.",
"form.section.information.birth.bullet3": "Once the declaration is processed you will receive you will receive an SMS to tell you when to visit the office to collect the certificate - Take your ID with you.",
"form.section.information.birth.bullet4": "Make sure you collect the certificate. A birth certificate is critical for this child, especially to make their life easy later on. It will help to access health services, school examinations and government benefits.",
"form.section.information.death.bullet1": "I am going to help you make a declaration of death.",
"form.section.information.death.bullet2": "As the legal Informant it is important that all the information provided by you is accurate.",
"form.section.information.death.bullet3": "Once the declaration is processed you will receive you will receive an SMS to tell you when to visit the office to collect the certificate - Take your ID with you.",
"form.section.information.death.bullet4": "Make sure you collect the certificate. A death certificate is critical to support with inheritance claims and to resolve the affairs of the deceased e.g. closing bank accounts and setting loans.",
"home.header.typeRN": "Registration no.",
"integrations.integratingSystemTypeMosip": "MOSIP",
"integrations.integratingSystemTypeOsia": "OSIA (Coming soon)",
"integrations.integratingSystemTypeOther": "Other",
"integrations.integratingSystemType": "System",
"integrations.integratingSystemTypeAlertMosip": "When \"MOSIP\" National ID type is enabled, all forms require MOSIP E-Signet authentication. The MOSIP Token Seeder and OpenCRVS webhook compatible MOSIP Mediator must be installed. For more information, visit:",
"integrations.integratingSystemTypeAlertOsia": "When \"OSIA\" National ID is enabled, birth use case compatible endpoints will be enabled. For more information, visit:",
"integrations.integratingSystemTypeAlertOther": "When \"Other\" National ID is enabled, the default OpenCRVS National ID webhook mediator must be installed. 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, and respond to OpenCRVS to provide a temporary ID to children, and link vital events to each other. For more information, visit:",
"integrations.clientSecret": "Client secret",
"integrations.shaSecret": "SHA secret",
"integrations.activate.client": "Activate client?",
"integrations.deactivate.client": "Deactivate client?",
"navigation.communications": "Communications",
"navigation.userroles": "User roles",
"navigation.informantNotification": "Informant notifications",
"integrations.deceasedDetails": "Deceased's details",
"form.field.label.informantRelation.groomAndBride": "Groom & Bride",
"form.field.label.informantRelation.groom": "Groom",
"form.field.label.informantRelation.bride": "Bride",
"form.section.groom.name": "Groom",
"form.section.groom.title": "Groom's details",
"form.section.bride.name": "Bride",
"form.section.bride.title": "Bride's details",
"form.section.groom.headOfGroomFamily": "Head of groom's family",
"form.section.bride.headOfBrideFamily": "Head of bride's family",
"form.field.label.ageOfGroom": "Age of groom",
"form.field.label.ageOfBride": "Age of bride",
"form.section.marriageEvent.date": "Date of marriage",
"form.field.label.placeOfMarriage": "Place of marriage",
"form.field.label.typeOfMarriage": "Type of marriage",
"form.field.label.polygamy": "Polygamous",
"form.field.label.monogamy": "Monogamous",
"form.section.witnessOne.title": "Witness 1 details",
"form.section.witnessTwo.title": "Witness 2 details",
"form.section.witness.name": "Witness",
"form.field.label.relationshipToSpouses": "Relationship to spouses",
"form.preview.group.label.witness.one.english.name": "Witness One English name",
"form.preview.group.label.witness.two.english.name": "Witness Two English name",
"form.section.marriageEvent.name": "Marriage event details",
"form.section.marriageEvent.title": "Marriage details",
"form.field.label.marriedLastName": "Married last name (if different)",
"form.field.label.proofOfMarriageNotice": "Notice of intention to marriage",
"form.field.label.lastNameAtBirth": "Last name at birth (if different from above)",
"form.field.label.docTypeMarriageNotice": "Notice of marriage",
"form.field.label.proofOfGroomsID": "Proof of groom's identity",
"form.field.label.proofOfBridesID": "Proof of bride's identity",
"misc.notif.duplicateRecord": "{trackingId} is a potential duplicate. Record is ready for review.",
"misc.notif.offlineError": "Offline. Try again when reconnected",
"misc.confirmPinTitle": "Confirm PIN",
"misc.nidCallback.authenticatingNid": "Authenticating National ID",
"misc.nidCallback.failedToAuthenticateNid": "Failed to authenticate National ID",
"navigation.readyToIssue": "Ready to issue",
"navigation.organisation": "Organisation",
"navigation.analytic": "Analytics",
"navigation.performanceStatistics": "Statistics",
"navigation.leaderboards": "Leaderboards",
"navigation.dashboard": "Dashboard",
"navigation.report": "Report",
"performance.fieldAgents.columnHeader.role": "Role",
"performance.reports.header.applicationSources": "Sources of registrations",
"performance.reports.subHeader.applicationSources": "The number and percentage of declarations started by each system role that has been registered",
"phone.label.changeEmail": "What is your new email?",
"email.label.confirmation": "A verification code has been sent to {email}",
"print.certificate.button.confirmPrint": "Yes, print certificate",
"print.certificate.collector.whoToCollect": "Certify record",
"print.certificate.review.description": "Please confirm that the informant has reviewed that the information on the certificate is correct and that it is ready to print.",
"print.certificate.review.printModalTitle": "Print certificate?",
"print.certificate.review.printAndIssueModalTitle": "Print and issue certificate?",
"print.certificate.review.modal.body.print": "A PDF of the certificate will open in a new tab for you to print. This record will then be moved to your ready to issue work-queue",
"print.certificate.review.modal.body.printAndIssue": "A PDF of the certificate will open in a new tab for you to print and issue",
"print.certificate.review.title": "Ready to certify?",
"print.certificate.section.title": "Certify record",
"print.certificate.noPayment": "No payment required",
"recordAudit.rn": "Registration No.",
"recordAudit.dateOfMarriage": "Date of marriage",
"recordAudit.declaration.markAsDuplicate": "Marked as a duplicate",
"recordAudit.registrationNo": "Registration No",
"recordAudit.noDateOfMarriage": "No date of marriage",
"recordAudit.noPlaceOfMarriage": "No place of marriage",
"recordAudit.placeOfMarriage": "Place of marriage",
"recordAudit.regAction.markedAsDuplicate": "Marked as a duplicate",
"recordAudit.regStatus.issued": "Issued",
"recordAudit.regStatus.markedAsNotDuplicate": "Marked not a duplicate",
"recordAudit.regAction.flaggedAsPotentialDuplicate": "Flagged as potential duplicate",
"recordAudit.contact": "Contact",
"recordAudit.noContact": "No contact details provided",
"regHome.issued": "Issued",
"regHome.outbox.statusIssuing": "Issuing...",
"regHome.outbox.statusWaitingToIssue": "Waiting to issue",
"register.eventInfo.marriage.listItem0": "I am here to complete the marriage registration declaration for you. ",
"register.eventInfo.marriage.listItem1": "Once I complete the declaration, it will be sent to the registration office for review.",
"register.eventInfo.marriage.listItem2": "Wait for an SMS to tell you when to visit the office to collect the certificate - Take your ID with you.",
"register.eventInfo.event.title": "Introduce the {eventType, select, birth{birth} death{death} other{marriage}} registration process to the informant",
"register.eventInfo.birth.title": "Introduce the birth registration process to the informant",
"register.eventInfo.death.title": "Introduce the death registration process to the informant",
"register.eventInfo.marriage.title": "Introduce the marriage registration process to the informant",
"register.form.modal.desc.saveDeclarationConfirm": "All inputted data will be kept secure for future editing. Are you ready to save any changes to this declaration form?",
"register.form.modal.title.saveDeclarationConfirm": "Save & exit?",
"register.form.modal.desc.deleteDeclarationConfirm": "Are you certain you want to delete this draft declaration form? Please note, this action cant be undone.",
"register.form.modal.title.exitWithoutSavingModalForCorrection": "Exit correct record?",
"register.form.modal.desc.exitWithoutSavingModalForCorrection": "Are you sure you want to exit? Any corrections you have made will not be saved.",
"register.form.modal.title.exitWithoutSavingDeclarationConfirm": "Exit without saving changes?",
"register.form.modal.desc.exitWithoutSavingDeclarationConfirm": "You have unsaved changes on your declaration form. Are you sure you want to exit without saving?",
"register.selectInformant.marriageInformantTitle": "Informant's details",
"register.selectInformant.newMarriageRegistration": "New marriage declaration",
"review.actions.description.confirmComplete": "The informant will receive an {deliveryMethod} with a registration number that they can use to collect the certificate.",
"review.actions.description.confirmInComplete": "The informant will receive an {deliveryMethod} with a tracking ID that they can use to provide the additional mandatory information required for registration.",
"review.header.subject.subjectWithoutName": "{eventType, select, birth {Birth} death {Death} other {Marriage}} Declaration",
"review.header.subject.subjectWitName": "{eventType, select, birth {Birth} death {Death} other {Marriage} } declaration for {name}",
"review.inputs.supportingDocuments": "Supporting documents",
"review.rejection.form.instruction": "Please describe the updates required to this record for follow up action.",
"review.rejection.form.reasons.markDuplicate": "Mark as a duplicate",
"advancedSearchResult.pill.registationStatus": "Registration status",
"advancedSearchResult.pill.eventDate": "Event date",
"advancedSearchResult.pill.regNumber": "Registration number",
"advancedSearchResult.pill.trackingId": "Tracking ID",
"advancedSearchResult.pill.regDate": "Registration date",
"advancedSearchResult.pill.eventLocation": "Event location",
"advancedSearchResult.pill.childFirstName": "Child firstname",
"advancedSearchResult.pill.childLastName": "Child lastname",
"advancedSearchResult.pill.motherFirstName": "Mother firstname",
"advancedSearchResult.pill.motherLastName": "Mother lastname",
"advancedSearchResult.pill.fatherFirstName": "Father firstname",
"advancedSearchResult.pill.fatherLastName": "Father lastname",
"advancedSearchResult.pill.deceasedFirstName": "Deceased firstname",
"advancedSearchResult.pill.deceasedLastName": "Deceased lastname",
"advancedSearchResult.pill.informantFirstName": "Informant firstname",
"advancedSearchResult.pill.informantLastName": "Informant lastname",
"advancedSearchResult.pill.gender": "Sex",
"advancedSearchResult.pill.childDoB": "Child d.o.b",
"advancedSearchResult.pill.fatherDoB": "Father d.o.b",
"advancedSearchResult.pill.motherDoB": "Mother d.o.b",
"advancedSearchResult.pill.deceasedDoB": "Deceased d.o.b",
"advancedSearchResult.pill.informantDoB": "Informant d.o.b",
"advancedSearchResult.table.searchResult": "Search results",
"settings.user.label.nameEN": "Full name",
"system.user.unlock.pinLabel": "Enter your pin",
"wq.noRecords.readyToIssue": "No records ready to issue",
"sysAdHome.sendUsernameReminderInvite": "Send username reminder",
"sysAdHome.sendUsernameReminderInviteSuccess": "Username reminder sent to {name}",
"sysAdHome.sendUsernameReminderInviteError": "Username reminder could not be sent",
"sysAdHome.sendUsernameReminderInviteModalTitle": "Send username reminder?",
"sysAdHome.sendUsernameReminderInviteModalMessage": "The user will receive a username reminder via an {deliveryMethod} sent to {recipient}",
"sysAdHome.resendInvite": "Resend invite",
"sysAdHome.resendInviteError": "Invite could not be sent",
"sysAdHome.resendInviteSuccess": "Invite sent",
"sysAdHome.resentPasswordSuccess": "Temporary password sent to {username}",
"sysAdHome.resentPasswordError": "Temporary password could not be sent",
"sysAdHome.user.resetPasswordModal.message": "The user will receive a temporary password via {deliveryMethod} sent to {recipient}. They will then be prompted to create a new password on successful login",
"system.user.settings.emailAddressUpdated": "Email address updated",
"system.user.duplicateEmailError": "{email} is already used by another user. Please use a different email",
"user.profile.audit.description.issued": "Issued",
"user.profile.auditList.emailAddressChanged": "Email Address changed",
"user.profile.auditList.markedAsDuplicate": "Marked as duplicate",
"user.profile.auditList.markedAsNotDuplicate": "Marked as not duplicate",
"userSetup.type.system": "System",
"validate.complete.declaration.action.description": "The informant will receive an with a registration number that they can use to collect the certificate.",
"review.inputs.informantsSignature": "Signature of informant",
"review.signature.description": "I, the undersigned, hereby declare that the particulars in this form are true and correct to the best of my knowledge.",
"review.signature.input.description": "By signing this document with an electronic signature, I agree that such signature will be valid as handwritten signatures to the extent allowed by the laws of Farajaland.",
"review.inputs.brideSignature": "Signature of Bride",
"review.inputs.groomSignature": "Signature of Groom",
"review.inputs.witnessOneSignature": "Signature of Witness 1",
"review.inputs.witnessTwoSignature": "Signature of Witness 2",
"review.inputs.terms": "We, the undersigned declare under penalty of perjury under the laws of Farajaland that the forgoing information is true and correct to the best of our knowledge and belief. We further declare that no legal objections to the marriage is known and hereby apply for a certificate of marriage",
"review.signature.clear": "Clear",
"review.signature.open": "Sign",
"review.signature.delete": "Delete",
"validations.englishOnlyNameFormat": "Input contains invalid characters. Please use only letters (a-z, A-Z), numbers (0-9), hyphens (-), apostrophes(') and underscores (_)",
"validations.illegalMarriageAge": "Illegal age of marriage",
"performance.registrationsListTable.totalRegistrationsColumn": "Total Registrations"
What's Changed
- Informant signature: Updated messages and french translations by @favour234 in #417
- ocrvs-4005 - add date unknow and informant signature translation by @modupeadeonojobi in #419
- Added new messages for informant sms notification by @sadmananik in #445
- ocrvs-4445 User Roles Config Messages by @sadmananik in #461
- Login background v2 by @sifulovi in #458
- Feature/informant signature by @euanmillar in #446
- Generate gateway types by @sadmananik in #466
- Duplicate records by @sadmananik in #468
- Release v1.2.0 by @euanmillar in #473
- Feature v1.3.0 by @euanmillar in #447
- ocrvs-4446: Add translation for userRoleManagementModal's instruction label by @rabiulislamanik in #470
- ocrvs-4469 Duplicate declaration comparison messages by @sadmananik in #474
- ocrvs-4568 : In Performance, wrong calculation is showing in Source of application> Field agent, Health system(integration) and registration agent #4568 by @septlowe in #471
- ocrvs-4616 System role message by @sadmananik in #477
- OCRVS-4286: Update on rejection modal by @yeasinhossain-dsi in #457
- ocrvs-4471 update markAsDuplicate modal button messages by @Nil20 in #475
- Fix translations for signature upload description, and add a missing key "organisation" by @rabiulislamanik in #484
- Bump http-cache-semantics from 4.1.0 to 4.1.1 by @dependabot in #482
- Bump ua-parser-js from 0.7.32 to 0.7.33 by @dependabot in #476
- Bump json5 from 1.0.1 to 1.0.2 by @dependabot in #459
- mark the record as not a duplicate by @kayumuzzaman in #478
- ocrvs-4446: Add lang message by @sifulovi in #481
- Feature: Configurable Roles by @Zangetsu101 in #463
- Ocrvs 4361 - printInAdvance messages by @Nil20 in #485
- ocrvs-4355 Certificate Issue Messages by @sadmananik in #480
- Bump undici from 5.11.0 to 5.19.1 by @dependabot in #487
- Get new public key on unauthorized error by @Zangetsu101 in #489
- Return publicKey in shape { key: publicKey } by @Zangetsu101 in #491
- ocrvs 4361 - printInAdvance messages (#485) by @Zangetsu101 in #492
- Ocrvs 4357 by @Nil20 in #494
- Add Role label for login setup page by @sifulovi in #496
- added marriage configuration messages by @kayumuzzaman in #486
- Feature: Issue certificate by @Zangetsu101 in #498
- ocrvs-4512: Setting the role of a user randomly from fetched systemRoles by @Nil20 in #467
- ocrvs-4641 Added marriage event declaration form massages by @sadmananik in #490
- update printInAdvanve message by @Nil20 in #503
- ocrvs-4642: For marriage event signature by @sifulovi in #500
- Revert "ocrvs-4642: For marriage event signature" by @Zangetsu101 in #507
- Add some intl for marriage event signature by @sifulovi in #508
- add qr code verify messages by @Nil20 in #510
- Added print and issue messages for marriage declaration by @sadmananik in #505
- Fix e2e by @tahmidrahman-dsi in #506
- Marriage certificate configuration messages by @kayumuzzaman in #504
- Feature - Potential duplicates by registrars by @sadmananik in #469
- OCRVS-4638: System client name taken from random health facility name data generator by @yeasinhossain-dsi in #479
- Feature: marriage event by @Zangetsu101 in #514
- Remove migrate-mongo as it's not needed after #4682 by @Zangetsu101 in #488
- Issued declaration using data generator by @sadmananik in #516
- ocrvs-4556 by @sifulovi in #519
- Bump @sideway/formula from 3.0.0 to 3.0.1 by @dependabot in #518
- issue message add for performance by @Nil20 in #521
- Change mock values to prevent duplicates by @Zangetsu101 in #522
- ocrvs-4901 by @sifulovi in #524
- [Feature] Add analytics dashboards for admins and performance manager by @rikukissa in #501
- Update msisdn package by @nsamadavid in #517
- Deprecate country-data from Farajaland by @euanmillar in #515
- fix missing package country-data by @jpye-finch in #528
- navigation messages add by @Nil20 in #530
- Calling vsExport from data generator by @sadmananik in #520
- ocrvs-4472 by @sifulovi in #526
- Change search result translations to sentence case by @Zangetsu101 in #533
- message add for bride and groom by @Nil20 in #536
- Enforce encryption by @euanmillar in #537
- Fixed the spelling of 'Two' for 2nd witness while declaring marriage records by @jamil314 in #538
- partOf locations fix for offices by @Nil20 in #539
- Go back from dashboard page for natl sysadmins by @Zangetsu101 in #541
- Hotfix v1.2.1 by @euanmillar in #548
- supporting doc typo fix by @Nil20 in #549
- marriage lastName title fix by @Nil20 in #550
- change error message for name validation by @kayumuzzaman in #527
- Dependencies & node upgrade by @Zangetsu101 in #552
- Allow validating CSV files without all higher levels of administration by @naftis in #544
- Retrive statistic script year range from csv file header by @sadmananik in #543
- [OCRVS-5224] Make sure no spaces or dashes added by google's phone number library are stored in the database by @rikukissa in #555
- Select the first element to blur by @Zangetsu101 in #556
- Throw custom errors from Farajaland by @euanmillar in #553
- ocrvs-4979 by @sifulovi in #529
- MINIO_BUCKET Base by @sadmananik in #531
- Removed unused form field label for witness1 and witness2 by @jamil314 in #560
- Added route to serve farajaland map geojson by @sadmananik in #559
- Set QA_ENV=true in metrics and comment out VS Export command by @euanmillar in #564
- correction required message add by @Nil20 in #566
- Add USER_NOTIFICATION_DELIVERY_METHOD in docker-compose files and add translations for email error toast by @rabiulislamanik in #562
- Added messages to show when marriage date or place is unavailable by @jamil314 in #567
- Optimise populate script by directly writing data to hearth-dev by @rikukissa in #513
- ocrvs-5175 by @sadmananik in #565
- feat: National ID verification by @naftis in #493
- fix marriage copy by @jpye-finch in #561
- Changing the scripts with named parameters by @yeasinhossain-dsi in #483
- Add translations for email change view and email change modals. by @rabiulislamanik in #570
- Add translations for email related changes in username reminder and password reset flow by @rabiulislamanik in #572
- Decouple the notification service from the NOTIFICATION_DELIVERY_METHOD by @sadmananik in #576
- move deployment infrastructure from Core to Farajaland by @naftis in #569
- ocrvs-5413 reset performance & dashboard on form config change by @Zangetsu101 in #578
- ocrvs 5376 Added 2022 & 2023 statistic data by @sadmananik in #571
- added Itambo district office and updated backup zips by @jamil314 in #568
- Use environment specific domain secret in host by @Zangetsu101 in #579
- Deprecation of Form Config, load forms from Farajaland again by @euanmillar in #582
- Added missing french translations by @jamil314 in #581
- fix data-generator querying fields with old schema by @naftis in #573
- Use sendgrid to send email by @sadmananik in #577
- fix(notification): don't try to send SMS on develop by @naftis in #542
- Feature: Email 2FA etc by @euanmillar in #558
- Move COUNTRY_LOGO_URL to docker-compose.deploy.yml by @Zangetsu101 in #586
- Address config to country config by @euanmillar in #587
- Use login url in on-boarding email template in place of complete setup by @sadmananik in #590
- Remove country_config_path and Farajaland playbook.yml by @euanmillar in #593
- Correct formatting for LOGIN_URL by @euanmillar in #594
- backup restore update by @Nil20 in #591
- Select options to country config by @euanmillar in #596
- allow fetching validations and conditionals from country config by @naftis in #589
- Remove all port exposing configuration from docker compose by @euanmillar in #601
- moved form messages in country config by @jamil314 in #602
- SSH security by @naftis in #574
- add country name in gateway environment in the docker-compose.countryconfig.*.yml files by @rabiulislamanik in #595
- Update address mappings by @euanmillar in #605
- refactor: form ui and layout by @naftis in #597
- Ocrvs 5544 - refactor form to use formList by @Nil20 in #603
- Build TS validators and conditionals to JS & deprecate Contentful by @naftis in #604
- Upgrade Traefik to v2.9 to upgrade default minimum TLS to 1.2 by @naftis in #607
- Add a route for serving roles metadata by @Zangetsu101 in #598
- seeding certificates by @jamil314 in #608
- Create ocrvs elastic index during deploy by @sadmananik in #584
- Bump semver from 5.7.1 to 5.7.2 by @dependabot in #611
- divider type add for form by @Nil20 in #612
- Ocrvs 5546 by @sadmananik in #613
- ocrvs-5538 Create route for serving locations metadata by @Zangetsu101 in #606
- ocrvs 5514-death form refactor by @Nil20 in #609
- Set "no" to clear data in prod by @Zangetsu101 in #615
- Fixed death informant section by @sadmananik in #616
- Fixed marriage declaration form by @sadmananik in #618
- Ocrvs 5508 - subsection form update by @Nil20 in #617
- seeding application config by @jamil314 in #610
- added missing keys by @jamil314 in #622
- Fixed informant phone mutation and mapping by @sadmananik in #627
- contact messages add by @Nil20 in #623
- serving users by @jamil314 in #621
- Added email template and Send informant email by @sadmananik in #625
- Bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in #620
- removing "No of previous birth" field from father"s details in birth … by @jamil314 in #629
- ocrvs-5694 - informant type conditional fix for doc uploader by @Nil20 in #626
- [OCRVS-5586] Performance tests for a large amount of records in "Ready for review" by @rikukissa in #614
- add translations for exiting/deleting modals of reviewpage, form and view record by @rabiulislamanik in #637
- informant section for marriage fix by @Nil20 in #636
- ocrvs 5687 - nid unique issue fix by @Nil20 in #633
- (e2e): fix readFileSync failing in Cypress by @naftis in #643
- nid validators fix in form by @Nil20 in #642
- Fix copy issues by @kayumuzzaman in #638
- fixed when configured to email the verbiage before send for review button should refer to email by @jamil314 in #640
- change fa code expire time in email and sms by @kayumuzzaman in #639
- Fixed french translation missing in Send for approval or reject title in review page by @jamil314 in #635
- (e2e): Fix birth cypress test by @kayumuzzaman in #644
- Ocrvs 5572 fix by @sadmananik in #647
- (e2e): fix user cypress test by @kayumuzzaman in #646
- Feature: Load forms from country config by @naftis in #580
- Feature: data seeding by @Zangetsu101 in #649
- added french translation in print (and issue) certificate by @jamil314 in #624
- Bump mongoose from 5.13.15 to 5.13.20 by @dependabot in #619
- spouse signature issue fix by @Nil20 in #650
- Fixed informant email notification by @sadmananik in #652
- declaration details message add by @Nil20 in #651
- Directory refactor by @euanmillar in #653
- ocrvs 5733 - seperator field update by @Nil20 in #654
- Fix workflows and validators/conditionals URLs by @euanmillar in #665
- Return child identifiers from the validate route by @Zangetsu101 in #575
- brn drn messages update by @Nil20 in #661
- fix name of application config by @kayumuzzaman in #662
- ocrvs-5562 deploy & seeding process improvements by @Zangetsu101 in #660
- Deprecate docker secrets to github action deploy scripts by @kayumuzzaman in #588
- update patient identifier with codeableConcept type by @kayumuzzaman in #583
- Create test email address for Farajaland users by @euanmillar in #668
- add validation for informant birth date by @kayumuzzaman in #658
- Modifed marital status field visibility for death by @kayumuzzaman in #659
- correction record exit modal message add by @Nil20 in #666
- production deploy workflow fixes by @Zangetsu101 in #670
- refactor birth forms dividers by @Nil20 in #663
- divider fix for father and mother sections by @Nil20 in #672
- (data-generator): generate various attachment types instead of only one by @naftis in #634
- certificate template update by @Nil20 in #664
- Add email secrets to demo compose by @Zangetsu101 in #676
- Ocrvs 5598 - exact dob fix by @Nil20 in #675
- Fix postman json for health notification by @kayumuzzaman in #673
- Restart openhim after running migrations by @Zangetsu101 in #674
- Address mapping refactor by @euanmillar in #671
- ocrvs-5562 form validations by @Zangetsu101 in #667
- email field type fix by @Nil20 in #677
- Rename seed vars, deprecate old secrets by @euanmillar in #680
- witness section fix by @Nil20 in #679
- correction id verifier message add by @Nil20 in #678
- creating user in offline toast message add by @Nil20 in #682
- Fixed query mapping bug by @euanmillar in #683
- Extract openhim-core container name by @Zangetsu101 in #687
- Expect resource_already_exists exception by @Zangetsu101 in #689
- Use '=' as separator to handle URLs by @Zangetsu101 in #688
- Fix typo and move clear command by @euanmillar in #693
- Update MarriageCertificate.svg by @jpye-finch in #698
- Update DeathCertificate.svg by @jpye-finch in #697
- Update BirthCertificate.svg by @jpye-finch in #696
- Upgrade minio and add access logs by @euanmillar in #695
- Always use example.com domain for all generated email addresses by @rikukissa in #703
- primary address fields dependency fix by @Nil20 in #701
- address fields dependency fix by @Nil20 in #699
- exchange JWT tokens via OAuth 2.0 by @naftis in #700
- data generator death dec data fix by @Nil20 in #694
- Address util hotfix by @tahmidrahman-dsi in #692
- Change backup script param from VERSION to LABEL as per the restore script by @euanmillar in #681
- Renovate/configure by @euanmillar in #718
- birth reg section fix by @Nil20 in #720
- Upgrade mongoose to v6.11.3 by @tahmidrahman-dsi in #721
- Revert "Upgrade mongoose to v6.11.3" by @tahmidrahman-dsi in #723
- Upgrade mongoose to 6.11.3 by @tahmidrahman-dsi in #724
- updates to email templates to fix ui bugs by @jpye-finch in #709
- Fix kibana error logs by @Zangetsu101 in #690
- validate country config messages by @Nil20 in #691
- make national id a required field by @naftis in #722
- typo fix for correction by @Nil20 in #726
- Death reg: Allow parents and spouses details to be submitted by @euanmillar in #728
- Add a port forwarding script for exposing deployed containers to local ports by @rikukissa in #729
- Add scripts for creating and restoring development snapshots by @rikukissa in #727
- Update release and licence by @euanmillar in #730
- Create script to publish images to Dockerhub by @euanmillar in #731
- Fix release workflow from running on a merge by @euanmillar in #732
- Modify release action to build based on input by @euanmillar in #733
- Test approver flow by @euanmillar in #734
- Fix approval flow for release action by @euanmillar in #736
New Contributors
- @septlowe made their first contribution in #471
- @Nil20 made their first contribution in #475
- @nsamadavid made their first contribution in #517
- @jamil314 made their first contribution in #538
Full Changelog: v1.2.1...v1.3.0