From 23d1c5ed92076d24339c9a815753e03776993d76 Mon Sep 17 00:00:00 2001 From: Riku Rouvila Date: Wed, 21 Aug 2024 15:11:09 +0300 Subject: [PATCH 01/19] explicitly specify from which branch the release tag should be created from --- .github/workflows/publish-release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 3ffcabf0c..25fbb111d 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -7,6 +7,7 @@ on: description: Branch to build from default: master required: true + release_version: description: Release tag. It will be prepended by your repository name required: true @@ -45,6 +46,7 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} tag_prefix: ${{ github.event.repository.name }}- custom_tag: ${{ env.TAG }} + release_branches: ${{ github.event.inputs.branch_name }} - name: Login to DockerHub uses: docker/login-action@v3 From d5b03bf0d363c1c2fae19dd90ec7ddf08f4a376a Mon Sep 17 00:00:00 2001 From: Riku Rouvila Date: Wed, 21 Aug 2024 15:26:22 +0300 Subject: [PATCH 02/19] use release version instead of package.json version --- .github/workflows/publish-release.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 25fbb111d..4b12bc56c 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -9,7 +9,7 @@ on: required: true release_version: - description: Release tag. It will be prepended by your repository name + description: Release tag. It will be prepended by your repository name (e.g. 1.5.3 or 20240501) required: true jobs: @@ -23,12 +23,8 @@ jobs: - name: Install jq run: sudo apt-get install jq -y - - name: Read version from package.json - id: get_version - run: echo "::set-output name=version::$(jq -r '.version' package.json)" - - name: Set TAG environment variable - run: echo "TAG=v${{ steps.get_version.outputs.version }}" >> $GITHUB_ENV + run: echo "TAG=v${{ github.event.inputs.release_version }}" >> $GITHUB_ENV - uses: trstringer/manual-approval@v1 with: From 0db8684285f7de7b37d9354f3342d5837eb458d5 Mon Sep 17 00:00:00 2001 From: Riku Rouvila Date: Wed, 21 Aug 2024 16:26:15 +0300 Subject: [PATCH 03/19] add descriptive merge messages --- .github/workflows/publish-release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 4b12bc56c..e472ac4ab 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -72,6 +72,7 @@ jobs: type: now from_branch: ${{ github.event.inputs.branch_name }} target_branch: master + message: Merge ${{ github.event.inputs.branch_name }} to master github_token: ${{ secrets.GITHUB_TOKEN }} - name: Merge master -> develop @@ -80,4 +81,5 @@ jobs: type: now from_branch: master target_branch: develop + message: Merge master back to develop github_token: ${{ secrets.GITHUB_TOKEN }} From 54f6922cf7e67b6ae64ac0f51c2ab8a55735fc44 Mon Sep 17 00:00:00 2001 From: Riku Rouvila Date: Wed, 21 Aug 2024 16:26:54 +0300 Subject: [PATCH 04/19] remove the v-prefix from versions --- .github/workflows/publish-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index e472ac4ab..d03dd8251 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -9,7 +9,7 @@ on: required: true release_version: - description: Release tag. It will be prepended by your repository name (e.g. 1.5.3 or 20240501) + description: Release tag. It will be prepended by your repository name (e.g. v1.5.3 or 20240501) required: true jobs: @@ -24,7 +24,7 @@ jobs: run: sudo apt-get install jq -y - name: Set TAG environment variable - run: echo "TAG=v${{ github.event.inputs.release_version }}" >> $GITHUB_ENV + run: echo "TAG=${{ github.event.inputs.release_version }}" >> $GITHUB_ENV - uses: trstringer/manual-approval@v1 with: From 68d6c4d388952cd86a52e524d77cf4c72f159aef Mon Sep 17 00:00:00 2001 From: Riku Rouvila Date: Wed, 21 Aug 2024 16:57:37 +0300 Subject: [PATCH 05/19] update CHANGELOG --- CHANGELOG.md | 74 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 54 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef8a0c7f0..188d86582 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,41 +11,75 @@ ### Bug fixes - Kibana disk space alerts now work regardless of your disk device names. Alerts listen devices mounted both to `/` and `/data` (encrypted data partition) +- "Publish release" pipeline now correctly uses the "Branch to build from" value as the branch to be tagged. Previously it tried tagging "master". "Release tag" is also now used as the release version as is instead of it being read from `package.json`. -## 1.5.0 +## 1.5.0 (https://github.com/opencrvs/opencrvs-countryconfig/compare/v1.4.1...v1.5.0) ### Breaking changes -- #### Update the certificate preview mechanism +- **Removed dependency on OpenHIM.** - 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 `` instead of the more complicated `` -paradigm. This doesn't affect printed certificates as they are still created as previously. + 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. -- #### Application config items `DATE_OF_BIRTH_UNKNOWN` and `INFORMANT_SIGNATURE_REQUIRED` moved under `FEATURES` + 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. - See https://github.com/opencrvs/opencrvs-farajaland/pull/1005 for details + The OpenHIM database is kept for backwards compatibility reasons and will be removed in v1.6. [OpenHIM](https://openhim.org/) 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. -### Infrastructure +- **Upgrade node version to 18** -- Allow using staging to both period restore of production backup and also for backing up its 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. + This version enforces environment to have Node 18 installed (supported until April 2025) and removes support for Node 16 -- Automate SSH key exchange between application and backup server. For staging servers, automatically fetch production backup encryption key if periodic restore is enabled + - 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 -- Improved support for non-22 SSH port +- **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 `` instead of the more complicated `` -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: [https://github.com/opencrvs/opencrvs-farajaland/pull/978](https://github.com/opencrvs/opencrvs-farajaland/pull/978) +- **Remove system admin UI items: Application, User roles** 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](https://github.com/opencrvs/opencrvs-core/issues/5086) -- Treat backup host identically to other hosts. To migrate: +### Infrastructure breaking changes - 1. Move all inventory files (qa.yml, production.yml...) from `infrastructure/server-setup` to `infrastructure/server-setup/inventory` - 2. Run environment creator for your backup server `yarn environment:init --environment=backup` +More improvements have been made to the infrastructure provisioning and Github environment creation scripts and documentation. The complexity is somewhat reduced. -### Other changes +- **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](https://github.com/opencrvs/opencrvs-countryconfig/blob/48cf278bab9d17e07b60b427294a26c8f35bcc1b/infrastructure/docker-compose.production-deploy.yml#L170C3-L201C19) by default on production and set [replicas: 2](https://github.com/opencrvs/opencrvs-countryconfig/blob/48cf278bab9d17e07b60b427294a26c8f35bcc1b/infrastructure/docker-compose.production-deploy.yml#L124) 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. -- Upgrade Node.js to 18 -- Remove dependency OpenHIM. The OpenHIM database is kept for backwards compatibility reasons and will be removed in v1.6 -- Change auth URLs to access them via gateway -- Add hearth URL to search service -- Include an endpoint for serving individual certificates in development mode -- Include compositionId in confirm registration payload -- Remove logrocket refrences +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 - Make SENTRY_DSN variable optional - Use docker compose v2 in github workflows From 5b19a8f5234a3e97cb80b837aafdbe9e993b7a7d Mon Sep 17 00:00:00 2001 From: Riku Rouvila Date: Wed, 21 Aug 2024 17:35:46 +0300 Subject: [PATCH 06/19] revert 1.5.0 CHANGELOG changes --- CHANGELOG.md | 73 ++++++++++++++-------------------------------------- 1 file changed, 20 insertions(+), 53 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 188d86582..33d932f07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,73 +13,40 @@ - Kibana disk space alerts now work regardless of your disk device names. Alerts listen devices mounted both to `/` and `/data` (encrypted data partition) - "Publish release" pipeline now correctly uses the "Branch to build from" value as the branch to be tagged. Previously it tried tagging "master". "Release tag" is also now used as the release version as is instead of it being read from `package.json`. -## 1.5.0 (https://github.com/opencrvs/opencrvs-countryconfig/compare/v1.4.1...v1.5.0) +## 1.5.0 ### Breaking changes -- **Removed dependency on OpenHIM.** +- #### Update the certificate preview mechanism - 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. + 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 `` instead of the more complicated `` -paradigm. This doesn't affect printed certificates as they are still created as previously. - 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. +- #### Application config items `DATE_OF_BIRTH_UNKNOWN` and `INFORMANT_SIGNATURE_REQUIRED` moved under `FEATURES` - The OpenHIM database is kept for backwards compatibility reasons and will be removed in v1.6. [OpenHIM](https://openhim.org/) 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. + See https://github.com/opencrvs/opencrvs-farajaland/pull/1005 for details -- **Upgrade node version to 18** +### Infrastructure - This version enforces environment to have Node 18 installed (supported until April 2025) and removes support for Node 16 +- Allow using staging to both period restore of production backup and also for backing up its 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. - - 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 +- Automate SSH key exchange between application and backup server. For staging servers, automatically fetch production backup encryption key if periodic restore is enabled -- **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 `` instead of the more complicated `` -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: [https://github.com/opencrvs/opencrvs-farajaland/pull/978](https://github.com/opencrvs/opencrvs-farajaland/pull/978) -- **Remove system admin UI items: Application, User roles** 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](https://github.com/opencrvs/opencrvs-core/issues/5086) +- Improved support for non-22 SSH port -### Infrastructure breaking changes +- Treat backup host identically to other hosts. To migrate: -More improvements have been made to the infrastructure provisioning and Github environment creation scripts and documentation. The complexity is somewhat reduced. + 1. Move all inventory files (qa.yml, production.yml...) from `infrastructure/server-setup` to `infrastructure/server-setup/inventory` + 2. Run environment creator for your backup server `yarn environment:init --environment=backup` -- **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](https://github.com/opencrvs/opencrvs-countryconfig/blob/48cf278bab9d17e07b60b427294a26c8f35bcc1b/infrastructure/docker-compose.production-deploy.yml#L170C3-L201C19) by default on production and set [replicas: 2](https://github.com/opencrvs/opencrvs-countryconfig/blob/48cf278bab9d17e07b60b427294a26c8f35bcc1b/infrastructure/docker-compose.production-deploy.yml#L124) 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. +### Other changes -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. +- Upgrade Node.js to 18 +- Remove dependency OpenHIM. The OpenHIM database is kept for backwards compatibility reasons and will be removed in v1.6 +- Change auth URLs to access them via gateway +- Add hearth URL to search service +- Include an endpoint for serving individual certificates in development mode +- Include compositionId in confirm registration payload +- Remove logrocket refrences - Enable gzip compression in client & login - Make SENTRY_DSN variable optional - Use docker compose v2 in github workflows From 78b1edf4742a96c0eac059a59672dd5b01c4d4c4 Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 26 Aug 2024 07:55:25 +0000 Subject: [PATCH 07/19] Placeholder commit for PR #244 From 72fa314b14407ecb15d35613c66a0f0a66c8ec1e Mon Sep 17 00:00:00 2001 From: Siyasanga Date: Tue, 6 Aug 2024 15:12:35 +0200 Subject: [PATCH 08/19] Remove extra divider on Birth form's mother section * Also update the precedingFieldId of the defaultAddressConfiguration (#7404)[https://github.com/opencrvs/opencrvs-core/issues/7404] --- src/form/addresses/index.ts | 3 ++- src/form/birth/index.ts | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/form/addresses/index.ts b/src/form/addresses/index.ts index 97bee6497..9cf67a073 100644 --- a/src/form/addresses/index.ts +++ b/src/form/addresses/index.ts @@ -93,7 +93,8 @@ export const defaultAddressConfiguration: IAddressConfiguration[] = [ }, { // MOTHER ADDRESS FIELDS - precedingFieldId: 'birth.mother.mother-view-group.mother-nid-seperator', + precedingFieldId: + 'birth.mother.mother-view-group.motherBirthRegistrationNumber', configurations: [ { config: AddressSubsections.PRIMARY_ADDRESS_SUBSECTION, diff --git a/src/form/birth/index.ts b/src/form/birth/index.ts index 8fd20b3ae..adb5c009a 100644 --- a/src/form/birth/index.ts +++ b/src/form/birth/index.ts @@ -353,8 +353,6 @@ export const birthForm: ISerializedForm = { hideIfNidIntegrationEnabled.concat(detailsExist), true ), - // preceding field of address fields - divider('mother-nid-seperator', detailsExist), // ADDRESS FIELDS WILL RENDER HERE divider('mother-address-seperator', detailsExist), getMaritalStatus(certificateHandlebars.motherMaritalStatus, [ From c29fc9cf4e3f821c654b0b01771a759cfcc8408f Mon Sep 17 00:00:00 2001 From: Siyasanga Date: Wed, 7 Aug 2024 10:30:46 +0200 Subject: [PATCH 09/19] Remove extra divider on Birth form's father section * Also update the precedingFieldId of the defaultAddressConfiguration (#7404)[https://github.com/opencrvs/opencrvs-core/issues/7404] --- src/form/addresses/index.ts | 3 ++- src/form/birth/index.ts | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/form/addresses/index.ts b/src/form/addresses/index.ts index 9cf67a073..36fb0bcdf 100644 --- a/src/form/addresses/index.ts +++ b/src/form/addresses/index.ts @@ -118,7 +118,8 @@ export const defaultAddressConfiguration: IAddressConfiguration[] = [ }, { // FATHER ADDRESS FIELDS - precedingFieldId: 'birth.father.father-view-group.father-nid-seperator', + precedingFieldId: + 'birth.father.father-view-group.fatherBirthRegistrationNumber', configurations: [ { config: AddressSubsections.PRIMARY_ADDRESS_SUBSECTION, diff --git a/src/form/birth/index.ts b/src/form/birth/index.ts index adb5c009a..2123080cc 100644 --- a/src/form/birth/index.ts +++ b/src/form/birth/index.ts @@ -440,8 +440,6 @@ export const birthForm: ISerializedForm = { hideIfNidIntegrationEnabled.concat(detailsExist), true ), - // preceding field of address fields - divider('father-nid-seperator', detailsExist), // ADDRESS FIELDS WILL RENDER HERE divider('father-address-seperator', detailsExist), getMaritalStatus(certificateHandlebars.fatherMaritalStatus, [ From 4a0feb6e9de7365db78946ed6fbf59799fdd346b Mon Sep 17 00:00:00 2001 From: Siyasanga Date: Wed, 7 Aug 2024 10:46:32 +0200 Subject: [PATCH 10/19] Remove extra divider on Death form's Spouse section * Also update the precedingFieldId of the defaultAddressConfiguration (#7404)[https://github.com/opencrvs/opencrvs-core/issues/7404] --- src/form/addresses/index.ts | 3 ++- src/form/death/index.ts | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/form/addresses/index.ts b/src/form/addresses/index.ts index 36fb0bcdf..b569e6bc1 100644 --- a/src/form/addresses/index.ts +++ b/src/form/addresses/index.ts @@ -268,7 +268,8 @@ export const defaultAddressConfiguration: IAddressConfiguration[] = [ },*/ { // SPOUSE ADDRESS FIELDS - precedingFieldId: 'death.spouse.spouse-view-group.spouse-nid-seperator', + precedingFieldId: + 'death.spouse.spouse-view-group.spouseBirthRegistrationNumber', configurations: [ { config: AddressSubsections.PRIMARY_ADDRESS_SUBSECTION, diff --git a/src/form/death/index.ts b/src/form/death/index.ts index 66181d0b2..9883423cf 100644 --- a/src/form/death/index.ts +++ b/src/form/death/index.ts @@ -364,8 +364,6 @@ export const deathForm = { ), getIDType('death', 'spouse', detailsExist, true), ...getIDNumberFields('spouse', detailsExist, true), - // preceding field of address fields - divider('spouse-nid-seperator', detailsExist), // ADDRESS FIELDS WILL RENDER HERE divider('spouse-address-separator') ], From 2c8215d82153b3c69b82751c9d5d8027f5f3401b Mon Sep 17 00:00:00 2001 From: Siyasanga Date: Wed, 7 Aug 2024 11:02:47 +0200 Subject: [PATCH 11/19] Rm extra divider on Marriage form's placeOfMarriageTitle * Also update the precedingFieldId of the defaultAddressConfiguration (#7404)[https://github.com/opencrvs/opencrvs-core/issues/7404] --- src/form/addresses/index.ts | 2 +- src/form/marriage/index.ts | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/form/addresses/index.ts b/src/form/addresses/index.ts index b569e6bc1..a28396f9d 100644 --- a/src/form/addresses/index.ts +++ b/src/form/addresses/index.ts @@ -304,7 +304,7 @@ export const defaultAddressConfiguration: IAddressConfiguration[] = [ { // PLACE OF MARRIAGE ADDRESS FIELDS precedingFieldId: - 'marriage.marriageEvent.marriage-event-details.place-of-marriage-seperator', + 'marriage.marriageEvent.marriage-event-details.placeOfMarriageTitle', configurations: [{ config: EventLocationAddressCases.PLACE_OF_MARRIAGE }] }, { diff --git a/src/form/marriage/index.ts b/src/form/marriage/index.ts index 3b77628e5..1892e2dff 100644 --- a/src/form/marriage/index.ts +++ b/src/form/marriage/index.ts @@ -264,8 +264,7 @@ export const marriageForm: ISerializedForm = { fields: [ getMarriageDate, // Required field getTypeOfMarriage, - placeOfMarriageSubsection, - divider('place-of-marriage-seperator') + placeOfMarriageSubsection // PLACE OF MARRIAGE FIELDS WILL RENDER HERE ] } From 89abe56029d057cb8a703ad2f54485c9038c34b6 Mon Sep 17 00:00:00 2001 From: Siyasanga Date: Mon, 19 Aug 2024 13:55:02 +0200 Subject: [PATCH 12/19] Record the removing of dividers in CHANGELOG.md We missed adding an entry into the CHANGELOG.md to document the changes we made and why we had to make changes https://github.com/opencrvs/opencrvs-core/issues/7404 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8966cafe5..ed63b9209 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - Remove `inputFieldWidth` from Number type form field - You can now configure the home screen application’s name and icons in your country configuration package as manifest.json and app icon files are moved from core to country config (check `src/client-static` folder) - Updated `allowedFileFormats` in signature fields to use MIME types (`image/png`, `image/jpg`, `image/jpeg`, `image/svg`) instead of simple file extensions. If you are already using the `allowedFileFormats` field in your implementation, please ensure to update the format accordingly. +- Remove unnecessary UI dividers that add in various sections of the declaration forms(e.g the Death, Birth and Marriage forms) [#244](https://github.com/opencrvs/opencrvs-countryconfig/pull/244) ### Bug fixes From a7f67066e2ec157b18452e2ef6c1bf6bc3b6dedf Mon Sep 17 00:00:00 2001 From: "Md. Ashikul Alam" Date: Wed, 18 Sep 2024 15:13:05 +0600 Subject: [PATCH 13/19] chore: add route to serve record notification --- src/api/application/application-config.ts | 24 +++++++++++++++++++++++ src/api/record-notification/handler.ts | 9 +++++++++ src/index.ts | 11 +++++++++++ 3 files changed, 44 insertions(+) create mode 100644 src/api/record-notification/handler.ts diff --git a/src/api/application/application-config.ts b/src/api/application/application-config.ts index d775b9135..62a957e05 100644 --- a/src/api/application/application-config.ts +++ b/src/api/application/application-config.ts @@ -56,3 +56,27 @@ export const applicationConfig = { } export const COUNTRY_WIDE_CRUDE_DEATH_RATE = 10 + +export const notificationForRecord = { + birth: { + 'sent-notification': true, + 'sent-notification-for-review': true, + 'sent-for-approval': true, + registered: true, + 'sent-for-updates': true + }, + death: { + 'sent-notification': true, + 'sent-notification-for-review': true, + 'sent-for-approval': true, + registered: true, + 'sent-for-updates': true + }, + marriage: { + 'sent-notification': null, + 'sent-notification-for-review': null, + 'sent-for-approval': null, + registered: null, + 'sent-for-updates': null + } +} diff --git a/src/api/record-notification/handler.ts b/src/api/record-notification/handler.ts new file mode 100644 index 000000000..a10916e07 --- /dev/null +++ b/src/api/record-notification/handler.ts @@ -0,0 +1,9 @@ +import * as Hapi from '@hapi/hapi' +import { notificationForRecord } from '../application/application-config' + +export function recordNotificationHandler( + request: Hapi.Request, + h: Hapi.ResponseToolkit +) { + return h.response(notificationForRecord) +} diff --git a/src/index.ts b/src/index.ts index 90b416f45..c8ddb8f32 100644 --- a/src/index.ts +++ b/src/index.ts @@ -61,6 +61,7 @@ import { trackingIDHandler } from './api/tracking-id/handler' import { dashboardQueriesHandler } from './api/dashboards/handler' import { fontsHandler } from './api/fonts/handler' import { certificateConfigurationHandler } from './api/certificate-configuration/handler' +import { recordNotificationHandler } from './api/record-notification/handler' export interface ITokenPayload { sub: string @@ -534,6 +535,16 @@ export async function createServer() { } }) + server.route({ + method: 'GET', + path: '/record-notification', + handler: recordNotificationHandler, + options: { + tags: ['api'], + description: 'Checks for enabled notification for record' + } + }) + server.ext({ type: 'onRequest', method(request: Hapi.Request & { sentryScope?: any }, h) { From c134a3a560f5d1d24aa12b07bc13cdfb18ad0e0d Mon Sep 17 00:00:00 2001 From: "Md. Ashikul Alam" Date: Wed, 18 Sep 2024 17:44:19 +0600 Subject: [PATCH 14/19] chore: improve record notification types --- src/api/application/application-config.ts | 27 ++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/api/application/application-config.ts b/src/api/application/application-config.ts index 62a957e05..e7a8fcfad 100644 --- a/src/api/application/application-config.ts +++ b/src/api/application/application-config.ts @@ -57,26 +57,33 @@ export const applicationConfig = { export const COUNTRY_WIDE_CRUDE_DEATH_RATE = 10 -export const notificationForRecord = { - birth: { +type EventNotificationFlags = { + 'sent-notification': boolean + 'sent-notification-for-review': boolean + 'sent-for-approval': boolean + registered: boolean + 'sent-for-updates': boolean +} + +type NotificationFlags = { + BIRTH?: EventNotificationFlags + DEATH?: EventNotificationFlags + MARRIAGE?: EventNotificationFlags +} + +export const notificationForRecord: NotificationFlags = { + BIRTH: { 'sent-notification': true, 'sent-notification-for-review': true, 'sent-for-approval': true, registered: true, 'sent-for-updates': true }, - death: { + DEATH: { 'sent-notification': true, 'sent-notification-for-review': true, 'sent-for-approval': true, registered: true, 'sent-for-updates': true - }, - marriage: { - 'sent-notification': null, - 'sent-notification-for-review': null, - 'sent-for-approval': null, - registered: null, - 'sent-for-updates': null } } From 86d507d31610327d943b063f292e3ee6cdad7559 Mon Sep 17 00:00:00 2001 From: "Md. Ashikul Alam" Date: Wed, 18 Sep 2024 17:58:06 +0600 Subject: [PATCH 15/19] docs: update changelog for addtion of notification flag --- CHANGELOG.md | 10 ++++++++++ src/api/application/application-config.ts | 10 +++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8966cafe5..693d2f0ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ ### Breaking changes +- Addition of the check of informant notification being enabled in the `application-config.ts` file. Maintain the type of `NotificationFlags` for proper setup of the notification. For an event, the notification flags can be the following - + +``` + 'sent-notification', + 'sent-notification-for-review', + 'sent-for-approval', + 'registered', + 'sent-for-updates' +``` + - Remove `splitView` option from DOCUMENT_UPLOADER_WITH_OPTION field - New required sections preview & review added. Signature field definitions are now part of these two sections same as normal form fields. - Remove `inputFieldWidth` from Number type form field diff --git a/src/api/application/application-config.ts b/src/api/application/application-config.ts index e7a8fcfad..9ac529c54 100644 --- a/src/api/application/application-config.ts +++ b/src/api/application/application-config.ts @@ -58,11 +58,11 @@ export const applicationConfig = { export const COUNTRY_WIDE_CRUDE_DEATH_RATE = 10 type EventNotificationFlags = { - 'sent-notification': boolean - 'sent-notification-for-review': boolean - 'sent-for-approval': boolean - registered: boolean - 'sent-for-updates': boolean + 'sent-notification'?: boolean + 'sent-notification-for-review'?: boolean + 'sent-for-approval'?: boolean + registered?: boolean + 'sent-for-updates'?: boolean } type NotificationFlags = { From b27279ea0caff7af7a2dba9196c3cd0c13efe5e2 Mon Sep 17 00:00:00 2001 From: "Md. Ashikul Alam" Date: Wed, 18 Sep 2024 18:40:01 +0600 Subject: [PATCH 16/19] docs: amend changelog for notification flag --- CHANGELOG.md | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 693d2f0ff..7332ce1ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,15 +4,24 @@ ### Breaking changes -- Addition of the check of informant notification being enabled in the `application-config.ts` file. Maintain the type of `NotificationFlags` for proper setup of the notification. For an event, the notification flags can be the following - - -``` - 'sent-notification', - 'sent-notification-for-review', - 'sent-for-approval', - 'registered', - 'sent-for-updates' -``` +### Added Notification Flags and API Endpoint + +- **Notification Flags**: The configuration of various notifications is now controlled from `countryconfig` instead of being handled in the UI, as notification settings are not something that should be changed on the fly. To simplify this process, we have moved the settings to the `application-config.ts` file. From now on, the notifications can be managed in the `notificationForRecord` object defined in the mentioned file. Any changes will take effect after a new deployment. + + **_Country implementors must define the `notificationForRecord` object in the `application-config.ts` file to enable the notifications they want. Not doing so will keep notifications disabled by default._** + +- **Feature**: Added notification flags for `BIRTH`, `DEATH`, and `MARRIAGE` events, including: + + - `sent-notification` + - `sent-notification-for-review` + - `sent-for-approval` + - `registered` + - `sent-for-updates` + +- **API**: Added `/record-notification` endpoint to check enabled notifications for records. + + - The API returns the `notificationForRecord` object for `BIRTH` and `DEATH` events, listing their respective flags. + - Route configuration includes description and tags for API documentation. - Remove `splitView` option from DOCUMENT_UPLOADER_WITH_OPTION field - New required sections preview & review added. Signature field definitions are now part of these two sections same as normal form fields. From f3b1665814e9a1f1b90a3d2846cbd2c8a48e0dd6 Mon Sep 17 00:00:00 2001 From: Tameem Bin Haider Date: Thu, 19 Sep 2024 11:16:54 +0600 Subject: [PATCH 17/19] docs: rearrange notification flags CHANGELOG entry --- CHANGELOG.md | 68 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 52 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7332ce1ec..166ca83ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,24 +4,35 @@ ### Breaking changes -### Added Notification Flags and API Endpoint - -- **Notification Flags**: The configuration of various notifications is now controlled from `countryconfig` instead of being handled in the UI, as notification settings are not something that should be changed on the fly. To simplify this process, we have moved the settings to the `application-config.ts` file. From now on, the notifications can be managed in the `notificationForRecord` object defined in the mentioned file. Any changes will take effect after a new deployment. +- **Notification Flags** The configuration of various notifications is now controlled from `countryconfig` instead of being handled in the UI, as notification settings are not something that should be changed on the fly. To simplify this process, we have moved the settings to the `application-config.ts` file. From now on, the notifications can be managed in the `notificationForRecord` object defined in the mentioned file. Any changes will take effect after a new deployment. **_Country implementors must define the `notificationForRecord` object in the `application-config.ts` file to enable the notifications they want. Not doing so will keep notifications disabled by default._** -- **Feature**: Added notification flags for `BIRTH`, `DEATH`, and `MARRIAGE` events, including: - - - `sent-notification` - - `sent-notification-for-review` - - `sent-for-approval` - - `registered` - - `sent-for-updates` - -- **API**: Added `/record-notification` endpoint to check enabled notifications for records. - - - The API returns the `notificationForRecord` object for `BIRTH` and `DEATH` events, listing their respective flags. - - Route configuration includes description and tags for API documentation. +- **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 it's review/preview sections + +``` +{ + 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: [] + } + ] +} +``` - Remove `splitView` option from DOCUMENT_UPLOADER_WITH_OPTION field - New required sections preview & review added. Signature field definitions are now part of these two sections same as normal form fields. @@ -39,7 +50,32 @@ - The select options in DOCUMENT_UPLOADER_WITH_OPTION field can now be hidden using the new `optionCondition` property. It works similarly to the same property available in SELECT_WITH_OPTIONS field -## 1.5.0 +* **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](https://github.com/opencrvs/opencrvs-core/pull/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 + +- **Notification flags**: Added notification flags for `BIRTH`, `DEATH`, and `MARRIAGE` events, including: + + - `sent-notification` + - `sent-notification-for-review` + - `sent-for-approval` + - `registered` + - `sent-for-updates` + +- **`/record-notification` API**: Endpoint to check enabled notifications for records. The API returns the `notificationForRecord` object for `BIRTH` and `DEATH` events, listing their respective flags. Route configuration includes description and tags for API documentation. + +### New content keys requiring translation + +``` +INSERT CSV ROWS IN ENGLISH ONLY +``` + +## Bug fixes + +- Github pipeline dedicated for reading secrets and variables from other environments now checks if GH_TOKEN is still valid before attempting other operations +- Remove unnecessary UI dividers that add in various sections of the declaration forms(e.g the Death, Birth and Marriage forms) [#244](https://github.com/opencrvs/opencrvs-countryconfig/pull/244) + +## 1.5.0 (https://github.com/opencrvs/opencrvs-countryconfig/compare/v1.4.1...v1.5.0) ### Breaking changes From de05cbc4305503f7abbca70627cd920fac8060d1 Mon Sep 17 00:00:00 2001 From: Tameem Bin Haider Date: Tue, 6 Aug 2024 12:31:49 +0600 Subject: [PATCH 18/19] fix: add output for reset job (#159) * fix: add output for reset job * fix: add id to the reset data step --- .github/workflows/clear-environment.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/clear-environment.yml b/.github/workflows/clear-environment.yml index 25f360477..fea82bf7a 100644 --- a/.github/workflows/clear-environment.yml +++ b/.github/workflows/clear-environment.yml @@ -22,6 +22,8 @@ jobs: name: 'Reset data' environment: ${{ github.event.inputs.environment }} runs-on: ubuntu-22.04 + outputs: + outcome: ${{ steps.reset-data.outcome }} timeout-minutes: 60 steps: - name: Clone country config resource package @@ -45,6 +47,7 @@ jobs: known_hosts: ${{ env.KNOWN_HOSTS }} - name: Reset data + id: reset-data env: HOST: ${{ vars.DOMAIN }} ENV: ${{ vars.ENVIRONMENT_TYPE }} From f5e8689b15307707f9da151ea09057d6b744fd9d Mon Sep 17 00:00:00 2001 From: Tameem Bin Haider Date: Thu, 19 Sep 2024 14:57:17 +0600 Subject: [PATCH 19/19] docs: update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b05f92dc6..3d85f7eff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ - Kibana disk space alerts now work regardless of your disk device names. Alerts listen devices mounted both to `/` and `/data` (encrypted data partition) - "Publish release" pipeline now correctly uses the "Branch to build from" value as the branch to be tagged. Previously it tried tagging "master". "Release tag" is also now used as the release version as is instead of it being read from `package.json`. - Environment creator script now requires countries to provide a Github token with no expiry date. This is to reduce effort in keeping the token up to date. +- Added the missing outputs for the clear environment workflow which was causing the seed data workflow to not run even if the reset option was checked when deploying ### New features