Skip to content

Releases: opencrvs/opencrvs-core

OpenCRVS - v1.6.1

10 Dec 17:41
Compare
Choose a tag to compare

Introduction

Read the release notes!

OpenCRVS 1.6.1 is a hotfix release that introduces minor improvements and bug fixes based on the identified needs of countries using OpenCRVS. It is to be used in conjunction with a forked country configuration release v1.6.1

Bug fixes

  • Maximum upload file size limit is now based on the size of the uploaded files after compression and not before. #7840
  • Stops local sys admins creating national level users. #7698

New features

  • Add an optional configurable field in section canContinue which takes an expression. Falsy value of this expression will disable the continue button in forms. This can be used to work with fetch field which has a loading state and prevent the user to get past the section while the request is still in progress.

OpenCRVS - v1.6.0

22 Nov 13:13
Compare
Choose a tag to compare

Introduction

Read the release notes!

OpenCRVS v1.6.0 is a minor release which includes bug fixes, improvements and new functionality.
It is to be used in conjunction with a forked country configuration release v1.6.0

Improvements

  • Fetch child identifier in view record

New features

  • Certificate handlebar for registration fees registrationFees #6817

  • Logged in user details handlebar loggedInUser #6529

  • Supporting document fields can now be made required

  • If there is only one option in the document uploader select, then it stays hidden and only the upload button is showed with the only option being selected by default

  • Allow configuring the default search criteria for record search #6924

  • Add checks to validate client and server are always on the same version. This prevents browsers with a cached or outdated client versions from making potentially invalid requests to the backend #6695

  • Add http request creation ability to the form with a set of new form components (HTTP,BUTTON,REDIRECT) #7489

  • ElasticSearch reindexing

    Allows reindexing ElasticSearch via a new search-service endpoint reindex. We're replacing the original ocrvs index with timestamped ones. This is done automatically when upgrading and migrating, but this is an important architectural change that should be noted. More details in #7033.

  • Introduce a new certificate handlebar "preview" which can be used to conditionally render some svg element when previewing the certificate e.g. background image similar to security paper

Improvements

  • Internally we were storing the family name field as a required property which was limiting what how you could capture the name of a person in the forms. Now we are storing it as an optional property which would make more flexible.
  • Remove the leftover features from the application config pages, such as certificates and informant notification. #7156
  • PDF page size The generated PDF used to be defaulted to A4 size. Now it respects the SVG dimensions if specified
  • Support html content wrapped in foreignObject used in svg template in certificate PDF output

Bug fixes

  • Custom form field validators from country config will work offline. #7478
  • Registrar had to retry from outbox every time they corrected a record. #7583
  • Local environment setup command (bash setup.sh) could fail in machines that didn't have a unrelated compose binary. Fixed to check for Docker Compose. #7609
  • Fix date validation not working correctly in Firefox #7615
  • Fix layout issue that was causing the edit button on the AdvancedSearch's date range picker to not show on mobile view. #7417
  • Fix hardcoded placeholder copy of input when saving a query in advanced search
  • Handle label params used in form inputs when rendering in action details modal
  • Fix health facilities missing from dropdown after correcting a record address #7528
  • "Choose a new password" form now allows the user to submit the form using the "Enter/Return" key #5502
  • Dropdown options now flow to multiple rows in forms #7653
  • Only render units/postfix when field has a value #7055
  • Only show items with values in review #5192
  • Fix prefix text overlap issue in form text inputs
  • Staged files getting reset on precommit hook failure We were running lint-staged separately on each package using lerna which potentially created a race condition causing staged changes to get lost on failure. Now we are running lint-staged directly without depending on lerna. This is purely a DX improvement without affecting any functionality of the system
  • Fix informantType missing in template object which prevented rendering informant relationship data in the certificates #5952
  • Fix users hitting rate limit when multiple users authenticated the same time with different usernames #7728

Breaking changes

  • Remove informant notification configuration from the UI and read notification configuration settings from record-notification endpoint in countryconfig
  • Remove DEL /elasticIndex endpoint due reindexing changes.
  • Gateways searchEvents API updated operationHistories only returns operationType & operatedOn due to the other fields being unused in OpenCRVS
  • Config changes to review/preview and signatures Core used to provide review/preview section by default which are now removed and need to be provided from countryconfig. The signature field definitions (e.g. informant signature, bride signature etc.) were hard coded in core which also have now been removed. The signatures can now be added through the review/preview sections defined in countryconfig just like any other field. You can use the following section definition as the default which is without any additional fields. We highly recommend checking out our reference country repository which has the signature fields in its review/preview sections
  • hasChildLocation query has been removed from gateway. We have created the query isLeafLevelLocation instead which is more descriptive on its intended use.
{
  id: 'preview',
  viewType: 'preview',
  name: {
    defaultMessage: 'Preview',
    description: 'Form section name for Preview',
    id: 'register.form.section.preview.name'
  },
  title: {
    defaultMessage: 'Preview',
    description: 'Form section title for Preview',
    id: 'register.form.section.preview.title'
  },
  groups: [
    {
      id: 'preview-view-group',
      fields: []
    }
  ]
}

New features

  • Conditional filtering for document select options The select options for the DOCUMENT_UPLOADER_WITH_OPTION field can now be conditionally filtered similar to the SELECT_WITH_OPTIONS field using the optionCondition field

Bug fixes

  • Fix wrong status shown in the Comparison View page of the duplicate record #7439

OpenCRVS - v1.5.1

17 Sep 06:56
Compare
Choose a tag to compare

Introduction

Read the release notes!

OpenCRVS v1.5.1 is a patch release which includes a hotfix to the previous OpenCRVS v1.5.0 release.
It is to be used in conjunction with a forked country configuration release v1.5.1

Improvements

  • When viewing a record, child national id or any other identifiers are fetched from backend if available. This enables any external identifiers (e.g. national id) added during the registration of a record to be shown when viewing it
  • Home screen application’s name and icons are to be configured from country configuration package as manifest.json and app icon files are moved from core to country config (check opencrvs-countryconfig/src/client-static folder)

Bug fixes

  • On slow connections or in rare corner cases, it was possible that the same record got saved to the database twice. This was caused by a bug in how the unique technical identifier we generate were stored as FHIR. The backend now ensures every record is submitted only once. #7477
  • Fixed an issue where address line fields (e.g., address line 1, address line 2, etc.) were not being updated correctly when a user attempted to update a record's event location, such as place of birth or place of death. #7531
  • Handle label params used in form inputs when rendering in review section view
  • Fix probable migration issues for countries migrating from 1.2 #7464
  • When a declaration(birth/death) is created the event location information was not being parsed to ElasticSearch which caused the Advanced search feature to not work when searching for records by event location.7494
  • When any user's role was updated, incorrect role was shown for that user's actions in the history section of a declaration's record audit page. #7495
  • Registration agent was unable to download declarations that were previously corrected by registrar. #7582
  • When a user updates a marriage declaration editing the signature of the bride, groom, witness one or witness two, handle the changed value of the signature properly. #7462
  • The internal function we used to check if all the location references listed in the encounter are included in the bundle had incorrect logic which resulted in location details missing in ElasticSearch which broke Advanced search. 7494

What's Changed

  • fix: bring back certificate & notification config by @Zangetsu101 in #7380
  • 🍒 fix: handling dynamic message labelparams in review section by @tahmidrahman-dsi in #7403
  • 🍒 fix(vulnerability): resolve fast-xml-parser to 4.4.1 by @tahmidrahman-dsi in #7428
  • 🍒 fix: handle label params of field label to some similar other places like review section by @tahmidrahman-dsi in #7426
  • 🍒 Merge changes from PR #7469 to release-v1.5.1 by @github-actions in #7484
  • Fix/missing security dependencies by @makelicious in #7519
  • 🍒 Merge changes from PR #7491 to release-v1.5.1 by @ocrvs-bot in #7524
  • fix(v1.5.1): fix:preventthesamerecordwiththesamedraft-idfrombeingsubmittedtwice[OCRVS-7477] by @ocrvs-bot in #7550
  • (For 1.5.1) Fix migration issues for countries migrating from 1.2 by @Nil20 in #7535
  • 🍒 Merge changes from PR #7513 to release-v1.5.1 by @ocrvs-bot in #7556
  • Get client manifest and icons from country-config by @tareq89 in #7578
  • fix(v1.5.1): add the missing location details to a newly created declaration which was causing advanced search to break by @ocrvs-bot in #7566
  • fix(v1.5.1): correct user role not showing if role is updated by @ocrvs-bot in #7573
  • fix(v1.5.1): update address builder for event location #7555 by @Nil20 in #7576
  • fix(v1.5.1): create separate task when correcting record by @ocrvs-bot in #7595
  • fix(v1.5.1): amend updating signatures in client and workflow by @ocrvs-bot in #7597
  • fix: track updating signature from users by @Nil20 in #7605
  • fix(v1.5.1): Refactor bundleIncludesLocationResources() function logic to properly check if location resources are included in a bundle by @Zangetsu101 in #7613

Full Changelog: v1.5.0...v1.5.1

OpenCRVS - v1.5.0

14 Jul 10:49
c756e1c
Compare
Choose a tag to compare

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

OpenCRVS - v1.3.5

02 May 07:44
29436e1
Compare
Choose a tag to compare

Introduction

Read the release notes!
Read the v1.3.* to v1.3.* migration notes!

OpenCRVS v1.3.5 is a patch release which includes a hotfix to the previous OpenCRVS v1.3.4 release.
It is to be used in conjunction with a forked country configuration release v1.3.5

Bug fixes

  • Fix download failure for incomplete (without date of death) death declarations #6807

Full Changelog: v1.3.4...v1.3.5

OpenCRVS - v1.3.4

17 Apr 09:40
Compare
Choose a tag to compare

Introduction

Read the release notes!
Read the v1.3.* to v1.3.* migration notes!

OpenCRVS v1.3.4 is a patch release which includes a hotfix to the previous OpenCRVS v1.3.0 release.
It is to be used in conjunction with a forked country configuration release v1.3.4

Bug fixes

  • Fix date display for countries with a negative timezone offset #6719

  • Include middlename when generating fullnames

    • Refactored out the scattered logic for generating fullnames and converged them into a single function
    • Make lastname optional for a registered declaration
  • Fix download failure when arrayToFieldTransormer is used in template mapping

  • Fix multiple records not being downloaded simultaneously #6492

  • Fix showing unassigned toast for reinstated declarations #6492

  • Fix system crash when opening the started action modal #6551

Other changes

  • Recognize occupation as an optional field in informant section

Full Changelog: v1.3.3...v1.3.4

OpenCRVS - v1.4.1

22 Mar 15:26
1577398
Compare
Choose a tag to compare

Introduction

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

OpenCRVS v1.4.1 is a patch release which includes a hotfix to the previous OpenCRVS v1.4.0 release.
It is to be used in conjunction with a forked country configuration release v1.4.1

What's changed?

  • Fix Metabase versions in Dashboards service. Previously the version used for local development wasn't the one built into the docker image, which caused the locally generated initialisation file to fail in deployed environments.
  • Fix a seeding script bug, where it failed when done too quickly #6553
  • Update minimum password length validation #6559
  • Include middlename when generating fullnames
    • Refactored out the scattered logic for generating fullnames and converged them into a single function
    • Make lastname optional for a registered declaration
  • Recognize occupation as an optional field in informant section
  • Fix download failure when arrayToFieldTransormer is used in template mapping
  • Fix multiple records not being downloaded simultaneously #6492
  • Fix showing unassigned toast for reinstated declarations #6492
  • Fix system crash when opening the started action modal #6551
  • Make language names used in language select dropdowns configurable in country resource package copy
  • Fix login to field agent when an incomplete record is previously retrieved by them #6584

Full Changelog: v1.3.3...v1.4.1

OpenCRVS - v1.3.3

23 Feb 19:15
7d3124e
Compare
Choose a tag to compare

Introduction

Read the release notes!
Read the v1.3.0 to v1.3.* migration notes!

OpenCRVS v1.3.3 is a patch release which includes a hotfix to the previous OpenCRVS v1.3.2 release.
It is to be used in conjunction with a forked country configuration release v1.3.3

Breaking Changes

Manually migrating the certificates to explicitly use the "location" handlebar helper would be required when upgrading

New features

Location certificate handlebars have been update so that they now use ids with a helper to access other properties of the FHIR Location object such as "alias", allowing locations in different languages to be possible on a certificate:

{{location districtPlaceofbirthId 'name'}}

Bug-fixes

A bug has been fixed in seeding of locations which occurred when 10000s+ of locations were seeded.
Metabase has been upgraded to resolve this zero-day security problem: https://www.assetnote.io/resources/research/advisory-metabase-pre-auth-rce-cve-2023-38646

What's Changed

Full Changelog: v1.3.2...v1.3.3

OpenCRVS - v1.4.0

09 Feb 12:18
Compare
Choose a tag to compare

In this release, we made no changes to OpenCRVS Core. All changes in this release apply only to the OpenCRVS country configuration repository.

Please note for 1.5.0 release

In the next OpenCRVS release v1.5.0, there will be two significant changes both in the country resource package and the infrastructure configuration inside of it:

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

OpenCRVS - v1.3.2

19 Jan 13:50
Compare
Choose a tag to compare

Introduction

Read the release notes!
Read the v1.3.0 to v1.3.* migration notes!

OpenCRVS v1.3.2 is a patch release which includes a hotfix to the previous OpenCRVS v1.3.1 release.
It is to be used in conjunction with a forked country configuration release v1.3.2

Breaking Changes

New features

  • Country config can now expose an endpoint for custom tracking ids POST /tracking-id. The endpoint receives a FHIR Bundle as a payload and returns a tracking id string. #6093

Bug fixes

  • In large countries, background fetching of statistical data caused the client's initial load to slow down considerably. Preloading now only fetches data for Performance views index page #6210
  • Deceased's birth year now calculated from their birthday and not the current year #6196
  • Users cannot submit a record for review if one of the inputted fields has an invalid date format. Incomplete declarations can still be submitted. This is to prevent invalid values from being sent to the backend.
  • Prevent users from going back to "Print certificate" views after they have unassigned themselves from the record.
  • Validate user's language string after they login. Use default language if it's an unsupported language.

What's Changed

Full Changelog: v1.3.1...v1.3.2