Skip to content

OpenCRVS - v1.5.0

Compare
Choose a tag to compare
@euanmillar euanmillar released this 14 Jul 10:49
· 1 commit to release-v1.5.0 since this release
c756e1c

OpenCRVS v1.5.0 is a stable release of OpenCRVS.

Read the release notes!
v1.4.* to v1.5.* migration notes

OpenCRVS v1.5.0 is to be used in conjunction with a forked country configuration release v1.5.0 ...

This release will be maintained until the release of v1.7.0 by the core development team.

In OpenCRVS v1.5.0 we have refactored the "workflow" micro-service and deprecated the backend dependency on OpenHIM. This has vastly improved the performance of the platform.

Breaking changes

  • Removed dependency on OpenHIM.

    The performance of OpenHIM added an unexpected burden of 200 m/s to every interaction. Cumulatively, this was negatively affecting user experience and therefore we decided to deprecate it.

    Interested implementers are free to re-introduce OpenHIM should they wish to use it as an interoperability layer without affecting the performance of OpenCRVS now that our architecture no longer depends on it.

    The OpenHIM database is kept for backwards compatibility reasons and will be removed in v1.6. OpenHIM is an Open Source middleware component designed for managing FHIR interoperability between disparate systems as part of the OpenHIE architectural specification. We had been using this component in a much more fundamental way to monitor microservice comms in a similar fashion to Amazon SQS.

  • Upgrade node version to 18

    This version enforces environment to have Node 18 installed (supported until April 2025) and removes support for Node 16

    • Use nvm to upgrade your local development environment to use node version 18.19.x.
    • Specified operating systems in js modules as darwin, linux
    • Dev scripts and Vite run with an environment variable NODE_OPTIONS=--dns-result-order=ipv4first to resolve ipv4 addresses for localhost to support systems that resolves ipv6 addresses by default in Node versions >=17
  • Update the certificate preview mechanism In effort of minimizing JavaScript-bundle size, we have streamlined the way how review certificate -page renders certificates. In case the images in your certificates are previewing blurry, you need to update your SVG-certificates to print QR-codes and other images directly with <image width="36" height="36" xlink:href="{{qrCode}}" x="500" y="770"></image> instead of the more complicated <rect fill="url(#pattern)"></rect> -paradigm. This doesn't affect printed certificates as they are still created as previously.

  • Generate default address according to logged-in user's location We have dropped support for the 'agentDefault' prop which was used as initial value for SELECT_WITH_DYNAMIC_OPTIONS fields. If you have not made any changes to address generation, then this should not affect you. If you have, you can refer to this PR to see how agentDefault has been deprecated in an example country: opencrvs/opencrvs-farajaland#978

  • Remove system admin UI items: Application, Certificates, User roles, Informant notifications We have now moved to configuring these items away from the UI in favour of directly editing these from country configuration repository in code - specifically in application-config-default.ts.

  • Set Metabase default credentials. These must be configured via countryconfig repository environment variables and secrets otherwise the dashboard service won't start

  • Check your Metabase map file. For Metabase configuration, we renamed farajaland-map.geojson to map.geojson to not tie implementations into example country naming conventions.

  • Feature flags In order to make application config settings more readable, we re-organised src/api/application/application-config-default.ts with a clear feature flag block like so. These are then used across the front and back end of the application to control configurable functionality. New feature flags DEATH_REGISTRATION allow you to optionally run off death registration if your country doesnt want to run its first pilot including death and PRINT_DECLARATION (see New Features) have been added.
    FEATURES: { DEATH_REGISTRATION: true, MARRIAGE_REGISTRATION: false, ... }

  • Improve rendering of addresses in review page where addresses match When entering father's address details, some countries make use of a checkbox which says "Address is the same as the mothers. " which, when selected, makes the mother's address and fathers address the same. The checkbox has a programatic value of "Yes" or "No". As a result on the review page, the value "Yes" was displayed which didn't make grammatical sense as a response. We decided to use a custom label: "Same as mother's", which is what was asked on the form. This requires some code changes in the src/form/addresses/index.ts file to pull in the hideInPreview prop which will hide the value "Yes" on the review page and replace with a content managed label. Associated bug #5086

Infrastructure breaking changes

More improvements have been made to the infrastructure provisioning and Github environment creation scripts and documentation. The complexity is somewhat reduced.

  • We removed the example Wireguard VPN set up as it was confusing. Our intention was to ensure that all implementers were aware that OpenCRVS should be installed behind a VPN and used Wireguard as an example. But the configuration requirements for Wireguard confused implementers who are not using it. Therefore we decided to remove Wireguard as an example.
  • We now have a "backup" Github environment and the backup server is automatically provisioned. We moved the inventory file location to an explicit directory and removed parameters to scripts that can be automated. To migrate, move all inventory files (qa.yml, production.yml, staging.yml from infrastructure/server-setup to infrastructure/server-setup/inventory and configure infrastructure/server-setup/inventory/backup.yml. Run environment creator for your backup server yarn environment:init --environment=backup
  • You can configure the file path on the backup server where backups are stored. We can also allow using staging to both periodically restore a production backup and also give it the capability if required to backup it's own data to a different location using backup_server_remote_target_directory and backup_server_remote_source_directory Ansible variables. This use case is mostly meant for OpenCRVS team internal use.
  • We now automate SSH key exchange between application and backup server. For staging servers, automatically fetch production backup encryption key if periodic restore is enabled using ansible_ssh_private_key_file Ansible variables. Therefore documentation is simplified for a new server set-up.
  • In infrastructure Github workflows: SSH_PORT is new and required allowing you the ability to use a non-standard SSH port. This Github Action environment variable must be added.
  • In infrastructure Github workflows: SSH_HOST should be moved from being a Github Action environment secret to a Github Action environment variable before it is deprecated in 1.7.0
  • No longer an assumption made that production server Docker replicas and Mongo replica-sets are necessary. In our Docker Compose files, we had originally assumed that a production deployment would always be deployed on a cluster to enable load balancing. We applied a Mongo replica set by default on production and set replicas: 2 on each microservice. However after experience in multiple countries running small scale pilots, a production deployment usually starts off as 1 server node and then scales into a cluster over time in order to save costs and resources. Therefore these replicas are a waste of resources. So you will notice that this has been deleted. You can always manually add your desired replicas back into you Docker Compose configuration if you want. In Docker Compose files, search for REPLICAS and update accordingly as well as attending to the linked examples.

Follow the descriptions in the migration notes to re-provision all servers safely.

New features

  • Introduced rate limiting to routes that could potentially be bruteforced or extracted PII from.
  • The login and client application loading experience has improved. A loading bar appears before the javaScript bundle has loaded and this transitions when fetching records.
  • Development time logs are now much tidier and errors easier to point out. Production logging will still remain as is.
  • Masked emails and phone numbers from notification logs.
  • Support for landscape certificate templates.
  • Allow defining maxLength attribute for number type fields.
  • A new certificate handlebar for registration fees has been added registrationFees
  • A new certificate handlebar for logged-in user details has been added loggedInUser
  • Add support for image compression configuration. Two new properties to this form field are available: DOCUMENT_UPLOADER_WITH_OPTION
    • compressImagesToSizeMB : An optional prop of number type to define a compressed size. Compression is ignored when the input file is already smaller or equal of the given value or a falsy given value.
    • maxSizeMB: An optional validation prop to prevent input of a file bigger than a defined value.
  • If a country doesnt wish to use Sentry for logging errors, the SENTRY_DSN variable is now optional and the LogRocket option has been deprecated due to lack of demand.
  • Given that upon an upgrade between versions of OpenCRVS, that users cache is cleared, it is important to inform staff to submit any draft applications before the upgrade date. We introduced an "Email all users" feature so that National System Admins can send all staff messages. This feature can be used for any other all staff comms that are deemed required.

  • Included an endpoint for serving individual certificates in development mode. This improves the developer experience when configuring certificates.
  • Removed logrocket refrences.
  • Enable gzip compression in client & login
  • Use docker compose v2 in github workflows
  • Added SMTP environment variables into the qa compose file to enable QA of SMTP servers.
  • In the certificate, the 'Place of Certification' now accurately reflects the correct location.
  • Groom's and Bride's name, printIssue translation variables updated #124
  • Add query mapper for International Postal Code field
  • Add support for image compression configuration
  • Provide env variables for metabase admin credentials
  • Improved formatting of informant name for inProgress declaration emails
  • There is now an option to print the review page of an event declaration form. The PRINT_DECLARATION feature flag in application config settings can enable this on or off.

New content keys requiring translation

advancedSearch.form.recordStatusCorrectionRequested,Option for form field: status of record,Correction requested
config.emailAllUsers.modal.supportingCopy,Label for send email all users confirmation supporting copy,User will receive emails over the next 24 hours
config.emailAllUsers.modal.title,Label for send email all users confirmation title,Send email to all users?
config.emailAllUsers.subtitle,Subtitle for email all users,This email will be sent to all users you are active. Emails will be sent over the next 24 hours. Only one email can be sent per day
config.emailAllUsers.title,Title for email all users,Email all users
config.userRoles.language,Language name,"{language, select, en {English} fr {French} other {{language}}}"
constants.emailBody,Label for email body input,Message
constants.emailSubject,Label for email subject input,Subject
correction.correctionForApprovalDialog.actions.cancel,The cancel button for the dialog when record correction sent by registration agent for approval,Cancel
correction.correctionForApprovalDialog.actions.send,The send button for the dialog when record correction sent by registration agent for approval,Confirm
correction.correctionForApprovalDialog.description,The description for the dialog when record correction sent by registration agent for approval,The Registrar will be notified of this correction request and a record of this request will be recorded
correction.correctionForApprovalDialog.title,The title for the dialog when record correction sent by registration agent for approval,Send record correction for approval ?
correction.correctRecordDialog.description,The description for the dialog when record correction sent by a registrar,The informant will be notified of this correction and a record of this decision will be recorded
correction.correctRecordDialog.title,The title for the dialog when record correction sent by a registrar,Correct record ?
correction.summary.office,Office where certificate correction summary was submitted,Office
correction.summary.requestedOn,Date when certificate correction summary was submitted,Requested on
correction.summary.submitter,Submitter of certificate correction summary,Submitter
form.customField.label.numberOfDependants,,No. of dependants
form.customField.label.reasonForLateRegistrationBirth,,Reason for delayed registration
form.customField.label.reasonForLateRegistrationDeath,,Reason for late registration
form.field.helpertext.nid,Helper text for nid input field,The National ID can only be numeric and must be 10 digits long
form.field.label.addressLine1RuralOption,,Village
form.field.label.addressLine1UrbanOption,,Residential Area
form.field.label.addressLine2UrbanOption,,Street
form.field.label.app.certifyRecordTo.bride,,Print and issue to bride
form.field.label.app.certifyRecordTo.groom,,Print and issue to groom
form.field.label.attendantAtBirthLayperson,,Layperson
form.field.label.cityUrbanOption,Label for City,Town
form.field.label.empty,empty string,
form.field.label.informantsRelationWithChild,,Relationship to child
form.field.label.maritalStatusSeparated,,Separated
form.field.label.relationOtherFamilyMember,Label for other family member relation,Other family member
form.field.label.totalFees,Label for input Reason for Change,
form.field.nidVerificationOngoing,Label for indicating offline status for the user. NID verification is not currently available offline.,National ID authentication is currently not available offline.
form.section.deceased.relationship,,Relationship to deceased
form.section.witnessOne.name,Form section name for Witness one,Witness 1
form.section.witnessTwo.name,Form section name for Witness two,Witness 2
home.header.placeHolderId,,Search for an ID
misc.notif.emailAllUsersError,Label for Email all users error toast,Only one email can be sent per day
misc.notif.emailAllUsersSuccess,Label for Email all users success toast,Email sent to all users
navigation.emailAllUsers,Email all users label in navigation,Email all users
number.twelve,Minimum length password,12
phone.digit,,10
phone.start,Should starts with,0(4|5)
recordAudit.regAction.markedAsNotDuplicate,Marked not a duplicate status message for record audit,Marked not a duplicate
recordAudit.regAction.verified,Verified action,Certificate verified
recordAudit.regStatus.correctionRequested,Label for when someone requested correction,Correction requested
regHome.outbox.failed,Label for declaration status failed,Failed to send
regHome.outbox.retry,Label for Retry button in Outbox shown for records that failed to send,Retry
register.form.modal.desc.saveCorrectionConfirm,Description for save correction confirmation modal,The declarant will be notified of this correction and a record of this decision will be recorded
register.form.modal.desc.saveCorrectionReject,Description for reject correction modal,The declarant will be notified of this decision and a record of this decision will be recorded
register.form.modal.title.saveCorrectionConfirm,Title for save correction confirmation modal,Approve correction?
register.form.modal.title.saveCorrectionReject,Title for reject correction modal,Reject correction?
register.selectInformant.birthInformantTitle,Who is applying for birth registration,Informant type
system.user.settings.language,Language name,"{language, select, en {English} fr {Français} other {{language}}}"
user.profile.auditList.approvedCorrectionAuditAction,Description for record correction being approved,Approved correction request
user.profile.auditList.rejectedCorrectedAuditAction,Description for record correction being rejected,Rejected correction request
user.profile.auditList.requestedCorrectionAuditAction,Description for record correction being requested,Requested correction
validations.invalidDate,The error message that appears when a date field is invalid,Invalid date field
verifyCertificate.certifiedAt,Label for date of certification,Date of certification

Bug fixes

  • Handle back button click after issuing a declaration #6424
  • Fix certificate verification QR code for a death declaration #6230
  • Fix certificate verification QR code crashing when gender is unknown #6422
  • Fix certificate verification page missing registration center and the name of registrar #6614
  • Amend certificate verification showing the certifying date instead of records creation date #7098
  • Fix records not getting issued [#6216] (#6216)
  • Fix record correction e2e failing due to stale data getting saved on redux
  • Convert eventDates to LocalDate before formatting #6719
  • In advance search, any status tag is showing archived after search #6678
  • Fix first name issues when creating a user #6631
  • Show correct record option in certificate preview page when trying to print by RA #6224
  • Fix certificate templates not getting populated for health facility event locations & ADMIN_LEVEL > 2
  • Fix download failure for incomplete (without date of death) death declarations #6807
  • Fix search result declaration record audit unassign issue #5781
  • In review page, Eliminating the 'No supporting documents' and 'upload' prompts when documents are already uploaded #6231
  • In record audit page, after 'Correction request approved' the “record corrected” action is removed from history #6228
  • Fix Registrar of any location should be able to review a correction request #6247
  • remove upload button when no supporting docs are configured #5944
  • Fix issues of invisible inputs when navigating from can't login link in login page #6163
  • Fix the "Continue" button being disabled when changes in correction form is made #6780
  • Remove leading slash from resendAuthenticationCode in login to fix resend email button #6987 #7037
  • Fix 'Place of Certification' is showing wrong in certificate [#7060] (#7060)
  • Fix dashboard cron jobs not working #7016
  • Fix Check for valid date to handle incomplete marriage declarations #7017
  • Fix session expiration when user tries to change phone number #7003
  • Fix French translation missing for relationship to informant when trying to correct record, print and issue record [#6341] (#6341)
  • Fix client modal glitches on integrations page #7002
  • Fix print record page for an unsaved declaration #6893
  • Fix Reset pagination to default page (1) when location changes in UserList #6481
  • Fix Disabling 'Mark as duplicate' button when duplicate reason is empty too #7083
  • Fix certificate overflowing in preview certificate view #7157
  • Fix records going completely missing when an unexpected error happens in the backend #7021
  • Fix correction done from a certificate preview page #7065
  • Fix "Print and issue to groom|bride" is added to a different variable #7046
  • Fix search query is not being saved in the advanced search results #7110
  • Fix removed duplicateTrackingId check in createDuplicateTask method #7024
  • Fix address property handling and corrected country data transformation logic #6989
  • Fix search indexing BRN's in place of identifiers. Adds spouseIdentifier to search with #7189
  • Rename farajaland-map.geojson in dashboards to map.geojson to not tie opencrvs-core into a specific country implementation name #7251
  • Fix unassign action not appearing in audit history #7035
  • Update advanced search list properly when assignments change #7307
  • Update Content-Security-Policy to allow loading fonts from country configuration #7296
  • Fix frontend crashing on 'Registration by Status' under performance due to missing translations #7129
  • Fix email of practitioner to be saved in hearth. A migration is added to correct the email of practitoiner in existing db. 7315

What's Changed

  • [OCRVS-3601] Correction approval from for Registration agents by @rikukissa in #5774
  • [OCRVS-5493] Upgrade gateway types to Common FHIR types by @rikukissa in #5877
  • Fix React warnings in declaration form by @rikukissa in #6044
  • fix(deps): update dependency zod to v3.22.3 [security] by @renovate in #6017
  • Make lint-and-test test packages in parallel by @rikukissa in #6023
  • Add WSL support to local opencrvs setup by @tertek in #6019
  • chore(deps): update dependency @types/traverse to v0.6.33 by @renovate in #6030
  • chore(deps): update dependency @types/redux-mock-store to v1.0.4 by @renovate in #6029
  • fix(deps): update dependency mongodb to v4.17.0 [security] by @renovate in #6026
  • [OCRVS-5493 – 2] Move full FHIR bundle search to Search service by @rikukissa in #5879
  • exclude tests from @opencrvs/commons build by @naftis in #6062
  • chore(deps): update dependency @types/hapi__inert to v5.2.8 by @renovate in #6060
  • chore(deps): update dependency @types/google-libphonenumber to v7.4.28 by @renovate in #6059
  • fix(deps): update dependency mongodb to v4.17.0 [security] by @renovate in #6057
  • Turn declarationMap on for commons and components package by @tahmidrahman-dsi in #6069
  • Make field details, form values and declaration values available for option conditional by @rikukissa in #6064
  • chore(deps): update dependency @types/boom to v7.3.4 by @renovate in #6089
  • chore(deps): update dependency @types/bcryptjs to v2.4.5 by @renovate in #6088
  • mobile title fix for forgot password components by @Nil20 in #6087
  • Bump undici from 5.19.1 to 5.26.4 by @dependabot in #6091
  • Print record view by @tahmidrahman-dsi in #5700
  • Update package.json for docker compose Version 2 by @adrienramiliharivelo in #6098
  • Update setup.sh remove of google-chrome by @adrienramiliharivelo in #6100
  • Update setup.sh to check the docker compose version 2 existence by @adrienramiliharivelo in #6099
  • ocrvs-5800: version the rest apis in gateway by @Zangetsu101 in #6068
  • get questionnaire response for searching record by id by @Nil20 in #6102
  • Add missing license headers and CI check by @rikukissa in #6107
  • Bump crypto-js from 4.1.1 to 4.2.0 by @dependabot in #6117
  • message fix for send for approval modal by @Nil20 in #6120
  • feat: add partOf extension to addresses by @naftis in #6105
  • fix: don't resolve Patient.address.extension by @naftis in #6125
  • chore(deps): update dependency @types/code to v4.0.7 by @renovate in #6131
  • chore(deps): update dependency @types/command-line-args to v5.2.2 by @renovate in #6132
  • chore(deps): update dependency @types/enzyme to v3.10.16 by @renovate in #6160
  • feat: rate limiting for gateway by @naftis in #6145
  • chore: disable rate limiting by @naftis in #6184
  • Release v1.3.1 by @euanmillar in #6183
  • Fix input field Number when correcting a declaration (#6180) by @rikukissa in #6186
  • fix: disable rate limit by @naftis in #6188
  • feat: return part-of from gateway addresses by @naftis in #6206
  • Print declaration : remove blank space after header (CTRL + P) and open in new tab by @wilrona in #6207
  • Fix missing correction request inputs by @rikukissa in #6194
  • [OCRVS-5493 – 3] Move FHIR builders to common package by @rikukissa in #6020
  • chore(deps): update dependency @types/code to v4.0.8 by @renovate in #6223
  • track all changed values for correction by @Nil20 in #6229
  • chore(deps): update dependency @types/bunyan to v1.8.11 by @renovate in #6222
  • chore(deps): update dependency @types/boom to v7.3.5 by @renovate in #6201
  • Ocrvs 5493-4 Create separate event endpoints in workflow by @tahmidrahman-dsi in #6075
  • feat: enable rate limiting by bypassing data seeder by @naftis in #6218
  • chore(deps): update dependency @types/bcryptjs to v2.4.6 by @renovate in #6200
  • Use node 16.2 for tests on CI by @rikukissa in #6237
  • Create record notification by @Zangetsu101 in #6238
  • chore(deps): update dependency @types/enzyme to v3.10.17 by @renovate in #6273
  • Bootstrap workflow tests by @Zangetsu101 in #6275
  • validate-and-update-endpoint-workflow by @Nil20 in #6156
  • Ocrvs 6210 Remove state level performance data fetch calls by @tahmidrahman-dsi in #6342
  • fix detect event for issuing an event by @Nil20 in #6233
  • [OCRVS 6250] Feature flags by @tahmidrahman-dsi in #6353
  • chore: remove logrocket references by @naftis in #6370
  • Automatically build release images from release branches by @rikukissa in #6378
  • Remove unecessary retry when unassigned by @tahmidrahman-dsi in #6369
  • chore(deps): update dependency @types/enzyme to v3.10.18 by @renovate in #6380
  • chore(deps): update dependency @types/google-libphonenumber to v7.4.30 by @renovate in #6381
  • Ocrvs 5791 download by @Nil20 in #6360
  • chore(deps): update dependency @types/node-fetch to v2.6.10 by @renovate in #6397
  • chore(deps): update dependency @types/js-yaml to v3.12.10 by @renovate in #6393
  • chore(deps): update dependency @types/lodash to v4.14.202 by @renovate in #6396
  • chore(deps): update dependency @types/hapi__vision to v5.5.7 by @renovate in #6392
  • chore(deps): update dependency @types/hapi__inert to v5.2.10 by @renovate in #6391
  • Ocrvs 5791 register by @Nil20 in #6199
  • chore(deps): update dependency @types/qrcode to v1.5.5 by @renovate in #6408
  • [State transitions] Ocrvs 5791 unassign by @Nil20 in #6428
  • [State transitions] ocrvs register query fix by @Nil20 in #6407
  • chore(deps): update dependency @types/redux-logger to v3.0.12 by @renovate in #6432
  • chore(deps): update dependency @types/redux-mock-store to v1.0.6 by @renovate in #6433
  • [State transitions] Ocrvs 5791 archive by @Nil20 in #6387
  • [State transitions] Certify record by @Zangetsu101 in #6401
  • [state-transition] Download history and attachment update fix by @Nil20 in #6443
  • [State transitions] Reject endpoint by @Nil20 in #6420
  • chore(deps): update dependency @types/node-fetch to v2.6.11 by @renovate in #6450
  • chore(deps): update dependency @types/sanitize-html to v2.9.5 by @renovate in #6451
  • Removed latest defaults from the core docker-compose by @Eezi in #6449
  • Merge master (1.3.2) to develop by @rikukissa in #6448
  • [State transitions] reinstate endpoint by @Nil20 in #6398
  • qr code query resolver fix by @Nil20 in #6239
  • [State transitions] Duplicate endpoint by @Nil20 in #6427
  • [State transitions] Issue record by @Zangetsu101 in #6402
  • chore(deps): update dependency @types/uuid to v3.4.13 by @renovate in #6471
  • chore(deps): update dependency @types/redux-logger to v3.0.13 by @renovate in #6470
  • [state-transition] Cross office registration by @Zangetsu101 in #6442
  • [state-transitions] Refactor event names by @Zangetsu101 in #6445
  • [state-transitions] Align getRecordById's response with hearth by @Zangetsu101 in #6446
  • Add and configure Trivy for security scans by @n1koo in #6487
  • Ignore license check on CHANGELOG file by @Zangetsu101 in #6507
  • [state-transitions] amend search by @Nil20 in #6467
  • chore(deps): update dependency google-libphonenumber to v3.2.34 by @renovate in #6506
  • [state-transitions] view record by @Nil20 in #6459
  • [state-transitions] verify record by @Nil20 in #6463
  • chore(deps): update dependency typescript to v4.9.5 by @renovate in #6526
  • chore(deps): update dependency traverse to v0.6.8 by @renovate in #6525
  • chore(deps): update dependency jest to v26.6.3 by @renovate in #6523
  • [State Transitions] add log time and note by @Nil20 in #6479
  • [state-transitions] Move duplicates updates in hearth from search to workflow by @tahmidrahman-dsi in #6486
  • [state-transitions] handle completing an incomplete declaration by @Zangetsu101 in #6456
  • Merge master into develop by @Zangetsu101 in #6557
  • Create --improvement.md by @jpye-finch in #6561
  • Update ---feature.md by @jpye-finch in #6560
  • Update dependency @types/lodash to v4.14.202 by @renovate in #6544
  • Update influxdb Docker tag to v1.8.10 by @renovate in #6543
  • Update dependency vite to v3.2.8 by @renovate in #6541
  • Update docker.elastic.co/elasticsearch/elasticsearch Docker tag to v7.17.18 by @renovate in #6542
  • [State transitions] not duplicate by @Nil20 in #6431
  • Update dependency @types/fetch-mock to v7.3.8 by @renovate in #6567
  • Update dependency @types/hapi__vision to v5.5.8 by @renovate in #6570
  • Upgrade node to 18 by @tahmidrahman-dsi in #6439
  • Merge duplicate CHANGELOG files by @Zangetsu101 in #6574
  • Merge develop to state transitions by @Zangetsu101 in #6573
  • More class converts by @Eezi in #6566
  • Ocrvs 6424 by @Nil20 in #6489
  • Component converts by @Eezi in #6579
  • [State Transitions] Fix task creation taking previous status and encounter into account by @Nil20 in #6554
  • Converted Checkbox and ErrorBoundary components to the fucntion compo… by @Eezi in #6562
  • Class converts to function by @Eezi in #6585
  • feat: allow returning more than 5 search results & sorting/limiting as external API by @naftis in #6249
  • [State transitions] Remove detect event by @Nil20 in #6563
  • Merge develop to state transitions by @Zangetsu101 in #6599
  • fix(deps): update dependency @types/lodash-es to v4.17.12 by @renovate in #6592
  • fix(deps): update dependency @types/react-signature-canvas to v1.0.5 by @renovate in #6595
  • Feature: State Transitions by @Zangetsu101 in #6232
  • fix(deps): update dependency @types/node to v16.18.88 by @renovate in #6593
  • Merge v1.4.1 into develop by @Zangetsu101 in #6604
  • Exclude location ref from RelatedPerson address by @Zangetsu101 in #6606
  • fix(security): ignore metabase vulnerability errors until v0.49 by @naftis in #6608
  • Fix other informant address by @Nil20 in #6615
  • chore(deps): update dependency msw to v1.3.3 by @renovate in #6628
  • chore(deps): update dependency express to v4.18.3 by @renovate in #6627
  • Refactor task create by @Nil20 in #6611
  • Fix 6216 by @Nil20 in #6624
  • Component: ListReview by @jpye-finch in #5219
  • fix(qr-code): page crash on verify certificate and add missing registrar information by @naftis in #6616
  • refactor: renovate config by @naftis in #6640
  • Class converts by @Eezi in #6591
  • feat: add a spinner to login & client after 2 seconds by @naftis in #6637
  • fix(deps): update dependency @types/uuid-validate to ^0.0.3 by @renovate in #6652
  • chore(deps): update dependency @types/recharts to ^1.8.26 by @renovate in #6645
  • fix(deps): update dependency @types/uuid-validate to ^0.0.3 by @renovate in #6653
  • update renovate.json by @naftis in #6655
  • chore(deps): pin dependencies by @renovate in #6643
  • fix(deps): update dependency io-ts to v2.2.21 by @renovate in #6656
  • fix(deps): update dependency fp-ts to v2.16.4 by @renovate in #6654
  • fix(deps): update dependency @types/node to v16.18.91 by @renovate in #6650
  • chore(deps): update metabase/metabase docker tag to v0.46.6.4 by @renovate in #6649
  • chore(deps): remove dependency whatwg-fetch by @renovate in #6648
  • chore(deps): update dependency node to v18.19.1 by @renovate in #6647
  • chore(deps): pin dependency remark-gfm to 3.0.1 by @renovate in #6644
  • chore(deps): update dependency mongodb to v4.17.2 by @renovate in #6665
  • fix(deps): update dependency mongodb to v4.17.2 by @renovate in #6666
  • fix(deps): update dependency uuid to v9.0.1 by @renovate in #6669
  • chore(deps): update actions/checkout action to v2.7.0 by @renovate in #6670
  • chore(deps): update alpine docker tag to v3.19 by @renovate in #6671
  • chore(deps): update dependency @types/lodash to v4.17.0 by @renovate in #6672
  • chore(deps): update dependency eslint-plugin-import to v2.29.1 by @renovate in #6673
  • fix(deps): update dependency mongoose to v6.12.7 by @renovate in #6667
  • chore(deps): update dependency eslint-plugin-jsx-a11y to v6.8.0 by @renovate in #6674
  • chore: enable webhooks after state transition work by @naftis in #6632
  • Fix bug introduced in #6591 by @Zangetsu101 in #6677
  • chore(deps): update dependency prettier to v2.8.8 by @renovate in #6689
  • Update only the timeLogged value when unmounting by @Zangetsu101 in #6676
  • chore(deps): update dependency @types/lodash to v4.17.0 by @renovate in #6684
  • chore(deps): update dependency prettier to v2.8.8 by @renovate in #6694
  • chore: remove common vfs to reduce bundle size by @naftis in #6690
  • chore(deps): update dependency mongodb to v4.17.2 by @renovate in #6680
  • chore(deps): update dependency vite to v3.2.10 by @renovate in #6681
  • chore(deps): update dependency express to v4.19.2 by @renovate in #6685
  • fix(deps): update dependency fp-ts to v2.16.5 by @renovate in #6682
  • fix: review padding on mobile by @jpye-finch in #6707
  • Fix unable to validate/ register incomplete death declaration and small fixes for incomplete declarations by @Nil20 in #6696
  • Fix duplicate comparison page by @Nil20 in #6706
  • Send notification when reg agent creates a declaration by @Nil20 in #6659
  • chore(deps): update dependency ts-jest to v26.5.6 by @renovate in #6703
  • chore(deps): update dependency redis-mock to ^0.56.0 by @renovate in #6702
  • Merge release-v1.4.1 into develop by @euanmillar in #6662
  • chore(deps): update dependency @types/lodash to v4.17.0 by @renovate in #6713
  • Merge release v1.4.1 by @euanmillar in #6715
  • Fix issuing a record and record audit history modal data by @Nil20 in #6718
  • Upgrade node support to versions 18.x.x by @tahmidrahman-dsi in #6716
  • Update github workflow files according to latest github runner tools updates by @tahmidrahman-dsi in #6717
  • fix(deps): update dependency @types/node to v16.18.94 by @renovate in #6712
  • chore(deps): update dependency @types/lodash to v4.17.0 by @renovate in #6724
  • chore(deps): update node.js to c698ffe by @renovate in #6700
  • chore(deps): update docker.elastic.co/elasticsearch/elasticsearch docker tag to v7.17.19 by @renovate in #6693
  • fix(deps): update dependency @types/node to v16.18.95 by @renovate in #6737
  • chore(deps): update react monorepo by @renovate in #6736
  • fix(search): update status mapping constant by @Nil20 in #6741
  • fix: format event dates as localDates by @Zangetsu101 in #6739
  • chore(deps): update dependency vite-plugin-svgr to ^0.6.0 by @renovate in #6725
  • chore(deps): update node.js to 6d9d526 by @renovate in #6727
  • chore(deps): update dependency graphql-schema-typescript to v1.6.1 by @renovate in #6686
  • chore(deps): update dependency husky to v1.3.1 by @renovate in #6687
  • update renovate to only include minor+major+security by @naftis in #6743
  • fix(deps): update dependency sanitize-html to v2.12.1 [security] by @renovate in #6746
  • fix(deps): update dependency jose to v4.15.5 [security] by @renovate in #6745
  • chore(deps): update dependency @types/sanitize-html to v2.11.0 by @renovate in #6749
  • chore(deps): update formatjs monorepo by @renovate in #6729
  • chore(deps): update dependency rimraf to v5 by @renovate in #6748
  • fix(deps): update dependency @types/lodash to v4.17.0 by @renovate in #6753
  • Update sequence diagrams by @Nil20 in #6603
  • Fix event location property in search by @Nil20 in #6708
  • [OCRVS-6534] Setup.sh improvements by @rikukissa in #6757
  • [OCRVS-6410] Mass email users by @tahmidrahman-dsi in #6600
  • fix(deps): update dependency core-js to v3.36.1 by @renovate in #6762
  • chore(deps): update dependency @types/lodash to v4.17.0 by @renovate in #6760
  • fix(deps): update dependency @types/pdfmake to ^0.2.0 by @renovate in #6761
  • fix(deps): update dependency country-code-lookup to ^0.1.0 by @renovate in #6763
  • fix(deps): update dependency eslint-plugin-react to v7.34.1 by @renovate in #6774
  • fix(deps): update dependency elastic-apm-node to v3.51.0 by @renovate in #6773
  • fix(deps): update dependency dotenv to v16.4.5 by @renovate in #6772
  • chore(deps): update dependency node to v18.20.2 by @renovate in #6771
  • [OCRVS-6534] Fix port listening detection in dev.sh by @rikukissa in #6766
  • comp: Adds full width options to Button by @jpye-finch in #6767
  • feat: use the .nvmrc version in setup.sh by @naftis in #6775
  • fix(deps): update dependency joi to v17.12.3 by @renovate in #6776
  • chore(deps): update dependency remark-gfm to v4 by @renovate in #6777
  • Converted the scrollToTop component to the function by @Eezi in #6726
  • fix(deps): update dependency jsdom-worker to ^0.3.0 by @renovate in #6779
  • deps: remove openhim by @Zangetsu101 in #6756
  • fix: format event dates as localDates (v1.3.4) by @Zangetsu101 in #6755
  • fix ui so cta content block is seperate from record by @jpye-finch in #6710
  • fix(deps): update dependency http-proxy-middleware to ^0.21.0 by @renovate in #6794
  • fix(deps): update dependency hapi-auth-jwt2 to v10.5.1 by @renovate in #6787
  • fix(deps): update dependency polished to v4.3.1 by @renovate in #6795
  • fix(deps): update dependency core-js to v3.37.0 by @renovate in #6797
  • fix(deps): update dependency graphql-import to ^0.7.0 by @renovate in #6786
  • fix(deps): update dependency recharts to v2.12.5 by @renovate in #6796
  • fix(deps): update dependency redux-sentry-middleware to ^0.2.0 by @renovate in #6798
  • ocrvs-6678 fix advanced search result any status tag by @anamulhaquemollah in #6733
  • fix(deps): update dependency winston to v3.13.0 by @renovate in #6805
  • fix(deps): update dependency tsconfig-paths to v3.15.0 by @renovate in #6804
  • chore(deps): update actions/setup-node action to v4 by @renovate in #6824
  • chore(deps): update actions/checkout action to v4 by @renovate in #6823
  • Fix gateway hapi-sentry implementation by @tahmidrahman-dsi in #6833
  • fix(gateway): update user information payload by @Nil20 in #6759
  • Fix: ocrvs-6224 Show correct record option in certificate preview page when trying to print by RA by @anamulhaquemollah in #6834
  • deps: remove manual resolution of xml2js by @Zangetsu101 in #6840
  • fix(deps): update dependency zod to v3.23.0 by @renovate in #6844
  • chore(deps): update dependency @types/glob to v8 by @renovate in #6838
  • chore(deps): update dependency @types/glob to v8 by @renovate in #6845
  • chore: fix e2e tests on Mac & update dependency vite to v5 by @renovate in #6747
  • fix(deps): update dependency joi to v17.13.0 by @renovate in #6851
  • [HOTFIX] Implementation changes due schema changes by @tahmidrahman-dsi in #6856
  • fix: remove renovate pinned docker deps by @naftis in #6858
  • revert: remove Dockerfile pinned sha digests by @naftis in #6861
  • fix(deps): update workbox monorepo to v7.1.0 by @renovate in #6853
  • feat!: render certificates only using SVG by @naftis in #6642
  • refactor: move ESLint --fix run on staged files instead of every time in pre-commit by @naftis in #6867
  • chore(deps): update dependency cross-env to v7 by @renovate in #6863
  • chore(deps): update dependency concurrently to v8 by @renovate in #6862
  • chore(deps): update dependency eslint-config-prettier to v9 by @renovate in #6877
  • [OCRVS-6179] Fix correction bug by @tahmidrahman-dsi in #6872
  • feat: render certificate using svg's dimensions by @Zangetsu101 in #6868
  • [ocrvs-6221] Fix bug causing a task without a 'reason' field ending up to search & metrics by @rikukissa in #6866
  • fix: validate date string before converting to LocalDate by @Zangetsu101 in #6880
  • chore(deps): update react monorepo by @renovate in #6876
  • fix(deps): update sentry-javascript monorepo to v7.112.2 by @renovate in #6806
  • refactor: class converts to function by @Eezi in #6878
  • [OCRVS-5781] Fix search result declaration record audit unassign issue by @tahmidrahman-dsi in #6800
  • fix: no supporting documents label showing even when documents are uploaded by @anamulhaquemollah in #6875
  • feat: allow defining maxLength attribute for number type fields by @anamulhaquemollah in #6865
  • chore(deps): update dependency eslint-plugin-flowtype to v8 by @renovate in #6887
  • chore(deps): update dependency vite-plugin-pwa to ^0.20.0 by @renovate in #6895
  • Revert "chore(deps): update dependency eslint-plugin-flowtype to v8" by @naftis in #6897
  • fix: handle ADMIN_LEVEL > 2 by @Zangetsu101 in #6809
  • Upgrade all actions to Ubuntu 22.04 and lock the version by @n1koo in #6917
  • chore(deps): update dependency fetch-mock to v9 by @renovate in #6922
  • Converted the SimpleDocumentUploader to function by @Eezi in #6923
  • chore(deps): update dependency eslint-plugin-styled-components-a11y to v2 by @renovate in #6921
  • fix(deps): update workbox monorepo to v7.1.0 by @renovate in #6900
  • fix: remove trailing slash from FHIR_URL by @Zangetsu101 in #6932
  • fix: #6926 - Metabase local environment start script by @ak-shanith in #6927
  • chore(deps): update actions/github-script action to v7 by @renovate in #6920
  • fix(deps): update sentry-javascript monorepo to v7.113.0 by @renovate in #6898
  • fix: ocrvs-6621 Verify certificate only supports 2 location levels by @anamulhaquemollah in #6828
  • fix(deps): update workbox monorepo to v7.1.0 by @renovate in #6936
  • fix(deps): update dependency workbox-core to v7.1.0 by @renovate in #6957
  • fix: update declaration misplacing values by @Nil20 in #6885
  • feat: add route in workflow to forward declaration of health systems by @Nil20 in #6842
  • fix: add webhooks url env variable for workflow by @Zangetsu101 in #6943
  • Fix updated values by @Nil20 in #6960
  • feat: save timeloggedMS for rejecting correction by @Nil20 in #6933
  • Handle informant change by @Nil20 in #7039
  • Fix print record by @Nil20 in #7042
  • Fix retrieving declaration by @Nil20 in #7040
  • chore: handle configuration option restructure by @Nil20 in #7041
  • Cherry pick 7016, 7068 by @tahmidrahman-dsi in #7104
  • fix: update correction request task by @Nil20 in #7106
  • fix: show correction rejection reason in history by @Nil20 in #7105
  • Cherry pick to v1.5.0 by @Zangetsu101 in #7108
  • Fix "Print and issue to groom|bride" is added to a different variable… by @tareq89 in #7112
  • chore(v1.5.0): handle ws security error by @naftis in #7192
  • chore(v1.5.0): deprecate admin UI menu items by @github-actions in #7191
  • fix(v1.5.0): certificate overflowing on the preview screen by @github-actions in #7193
  • feat(v1.5.0): added progressbar when loading #6641 by @github-actions in #7199
  • 🍒 Merge changes from PR #7146 to release-v1.5.0 by @github-actions in #7195
  • fix(v1.5.0): missing heading in mobile view for duplicate by @github-actions in #7217
  • fix(v1.5.0): amend date of certification for verifying certificate by @github-actions in #7218
  • fix(v1.5.0): made completenessRate a number before sorting by @jamil314 in #7221
  • feat(v1.5.0): log and mask the notification details by @github-actions in #7237
  • Cherrypick bugfix by tareq for 1.5 by @tareq89 in #7216
  • feat(v1.5.0): added option to advance search dropdown by @github-actions in #7203
  • 🍒 Merge changes from PR #7058 to release-v1.5.0 by @github-actions in #7242
  • fix(v1.5.0): rename geojson endpoint to not tie implementations to example country name by @github-actions in #7257
  • fix(v1.5.0): sort not working in performance on , , by @github-actions in #7260
  • fix(v1.5.0): delete certificate properties of payload for correction by @github-actions in #7222
  • fix: amend download button on click functionality by @Nil20 in #7265
  • Ocrvs 7110 release by @Nil20 in #7271
  • fix(v1.5.0): increase rate limit on team searches #7277 by @github-actions in #7278
  • fix(v1.5.0): storybook #7282 by @github-actions in #7283
  • fix(v1.5.0): 7205: Heading missing in mobile view by @github-actions in #7268
  • fix(v1.5.0): date of certification not being visible on death #7290 by @github-actions in #7292
  • 🍒 Merge changes from PR #7129 to release-v1.5.0 by @github-actions in #7293
  • ocrvs-7035 for 1.5 by @Nil20 in #7280
  • 🍒 Merge changes from PR #7142 to release-v1.5.0 by @github-actions in #7294
  • 🍒 Merge changes from PR #7227 to release-v1.5.0 by @github-actions in #7299
  • 🍒 Merge changes from PR #7226 to release-v1.5.0 by @github-actions in #7297
  • fix: handle unauthorized error in gateway for no users found (#7025) by @Zangetsu101 in #7304
  • fix(v1.5.0): advanced search refetch queries not matching the searched ones #7296 by @github-actions in #7310
  • fix(v1.5.0): allow fonts from country config #7307 by @github-actions in #7309
  • fix(v1.5.0): Comment section not showing up by @github-actions in #7312
  • fix(v1.5.0): remove extra param from adv search form state by @github-actions in #7316
  • fix(v1.5.0): disable search button for incomplete date field by @github-actions in #7317
  • fix(v1.5.0): delete reinstated declaration from store by @github-actions in #7319
  • fix(v1.5.0): pass auth token with certs req by @github-actions in #7321
  • fix(v1.5.0): update assignment check for retrieve action by @github-actions in #7325
  • fix(v1.5.0): redis hostname by @github-actions in #7327
  • chore(v1.5.0): changelog by @github-actions in #7330
  • 🍒 Merge changes from PR #7328 to release-v1.5.0 by @github-actions in #7331
  • fix(v1.5.0): email of practitioner by @github-actions in #7333
  • 🍒 Merge changes from PR #7023 to release-v1.5.0 by @github-actions in #7332
  • fix(v1.5.0): fetch Documents after resolving Encounters by @github-actions in #7339
  • fix(v1.5.0): show comment section when there is no comment in record audit modal by @github-actions in #7341
  • fix(v1.5.0): sync review button logic in adv search result by @github-actions in #7342
  • feat(v1.5.0): send notification for rejection event by @github-actions in #7346

New Contributors

Full Changelog: v1.4.1...v1.5.0