From 086d599b75f93ae188b02ba1d47e925f285920e4 Mon Sep 17 00:00:00 2001 From: SamuelPull Date: Mon, 11 Nov 2024 11:38:06 +0100 Subject: [PATCH] bump to v2.17.0 (#2092) --- CHANGELOG.md | 42 ++++++++++++++++++- api/environment-variables.md | 4 +- api/package-lock.json | 4 +- api/package.json | 2 +- blockchain/package-lock.json | 4 +- blockchain/package.json | 2 +- .../api-environment-variables.md | 4 +- ...el-export-service-environment-variables.md | 2 +- e2e-test/package-lock.json | 4 +- e2e-test/package.json | 2 +- email-notification-service/package-lock.json | 4 +- email-notification-service/package.json | 2 +- excel-export-service/environment-variables.md | 2 +- excel-export-service/package-lock.json | 4 +- excel-export-service/package.json | 2 +- frontend-collector/package-lock.json | 4 +- frontend-collector/package.json | 2 +- frontend/package-lock.json | 4 +- frontend/package.json | 2 +- provisioning/package-lock.json | 4 +- provisioning/package.json | 2 +- storage-service/package-lock.json | 4 +- storage-service/package.json | 2 +- 23 files changed, 74 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ee25d337..d602fc6eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,45 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. +## [2.17.0] - 2024-11-11 + + + +### Added + +- UI: New design for Login Page [#2040](https://github.com/openkfw/TruBudget/issues/2040) +- notifications: Added a notification when creating a workflow action [#2035](https://github.com/openkfw/TruBudget/issues/2035) +- email-notification-service: Create transport without authentication [#2021](https://github.com/openkfw/TruBudget/issues/2021) +- Add Remove button for each document/external link in DocumentUpload modal [#2018](https://github.com/openkfw/TruBudget/issues/2018) +- Joi validation of environment variables for all services [#2005](https://github.com/openkfw/TruBudget/issues/2005) +- Workflow item level have an option to specify the funding source [#1901](https://github.com/openkfw/TruBudget/issues/1901) + + + +### Changed + +- Change wording when changing permissions [#1889](https://github.com/openkfw/TruBudget/issues/1889) +- In the ‘Total Budget’ overview the term ‘Amount’ should be changed to ‘Financing Amount’. [#1875](https://github.com/openkfw/TruBudget/issues/1875) +- Rename the ‘Total Budget’ overview to ‘Participating Stakeholder’. [#1874](https://github.com/openkfw/TruBudget/issues/1874) + + + + + + +### Fixed + +- Reset password email not working with RS256 [#2082](https://github.com/openkfw/TruBudget/issues/2082) +- blockchain<->email-service not working properly with RS256 [#2080](https://github.com/openkfw/TruBudget/issues/2080) +- blockchain: Email notification protocol bug [#2077](https://github.com/openkfw/TruBudget/issues/2077) +- Fix warning for nested div in console [#2042](https://github.com/openkfw/TruBudget/issues/2042) +- ui: Creating new user often failing with "password cannot be empty" [#2034](https://github.com/openkfw/TruBudget/issues/2034) +- ui: Cannot submit project edit when deleting tags [#2026](https://github.com/openkfw/TruBudget/issues/2026) +- Some workflowitems cannot be closed due to error [#1894](https://github.com/openkfw/TruBudget/issues/1894) +- Fix warning in subproject modal [#2032](https://github.com/openkfw/TruBudget/issues/2032) +- Copy Paste functionality seems to work only on page 1 of projects [#1944](https://github.com/openkfw/TruBudget/issues/1944) +- Documentation: Link to eMail service incorrect [#1943](https://github.com/openkfw/TruBudget/issues/1943) + ## [2.16.0] - 2024-10-04 @@ -1269,7 +1308,8 @@ If you install TruBudget freshly, this is not an issue for you. If you update to - Updated translation keys and language-specific formatting. - Fixed bug where the subproject permissions dialog would break the details view of another project. -[unreleased]: https://github.com/openkfw/TruBudget/compare/v2.16.0...main +[unreleased]: https://github.com/openkfw/TruBudget/compare/v2.17.0...main +[2.17.0]: https://github.com/openkfw/TruBudget/compare/v2.16.0...v2.17.0 [2.16.0]: https://github.com/openkfw/TruBudget/compare/v2.15.0...v2.16.0 [2.15.0]: https://github.com/openkfw/TruBudget/compare/v2.14.0...v2.15.0 [2.14.0]: https://github.com/openkfw/TruBudget/compare/v2.13.0...v2.14.0 diff --git a/api/environment-variables.md b/api/environment-variables.md index 3c9d9c1ec..5083d3d91 100644 --- a/api/environment-variables.md +++ b/api/environment-variables.md @@ -8,7 +8,7 @@ | **ORGANIZATION** | no | MyOrga | In the blockchain network, each node is represented by its organization name. This environment variable sets this organization name. It is used to create the organization stream on the blockchain and is also displayed in the frontend's top right corner. Minimal value: 1. Maximal value: 100. | | **PORT** | no | 8091 | The port used to expose the API for your installation. Example: If you run TruBudget locally and set API_PORT to `8080`, you can reach the API via `localhost:8080/api`. Value is a port with minimal value 0 and maximal value 65535 | | **ORGANIZATION_VAULT_SECRET** | yes | - | This is the key to en-/decrypt user data of an organization. If you want to add a new node for your organization, you want users to be able to log in on either node. **Caution:** If you want to run TruBudget in production, make sure NOT to use the default value from the `.env.example` file! Minimal value: 5. | -| **ROOT_SECRET** | no | 2864736ce36fc3e2892a77ba607710c4dc679fdc007aca60eedeaf22fc1ca50d | The root secret is the password for the root user. If you start with an empty blockchain, the root user is needed to add other users, approve new nodes,.. If you don't set a value via the environment variable, the API generates one randomly and prints it to the console **Caution:** If you want to run TruBudget in production, make sure to set a secure root secret. Minimal value: 8. | +| **ROOT_SECRET** | no | 8d0ab15d21b6d2c48d834bad4785a52126573906c84e6120506fce35f5ce4708 | The root secret is the password for the root user. If you start with an empty blockchain, the root user is needed to add other users, approve new nodes,.. If you don't set a value via the environment variable, the API generates one randomly and prints it to the console **Caution:** If you want to run TruBudget in production, make sure to set a secure root secret. Minimal value: 8. | | **MULTICHAIN_RPC_HOST** | no | localhost | The IP address of the blockchain (not multichain daemon,but they are usally the same) you want to connect to. | | **MULTICHAIN_RPC_PORT** | no | 8000 | The Port of the blockchain where the server is available for incoming http connections (e.g. readiness, versions, backup and restore) | | **MULTICHAIN_PROTOCOL** | no | http | The protocol used to expose the multichain daemon of your Trubudget blockchain installation(bc). The protocol used to connect to the multichain daemon(api). This will be used internally for the communication between the API and the multichain daemon. | @@ -18,7 +18,7 @@ | **BLOCKCHAIN_PROTOCOL** | no | http | The Protocol of the blockchain where the server is available for incoming http connections. | | **SWAGGER_BASEPATH** `deprecated` | no | - | deprecated This variable was used to choose which environment (prod or test) is used for testing the requests. The variable is deprecated now, as the Swagger documentation can be used for the prod and test environment separately. Example values: "/". | | **JWT_ALGORITHM** | no | HS256 | Algorithm used for signing and verifying JWTs. | -| **JWT_SECRET** | yes (if JWT_ALGORITHM=RS256) | 1effc3db96157d1f4fa4 | A string that is used to sign JWT which are created by the authenticate endpoint of the api. If JWT_ALGORITHM is set to `RS256`, this is required and holds BASE64 encoded PEM encoded private key for RSA. | +| **JWT_SECRET** | yes (if JWT_ALGORITHM=RS256) | 9640f5d6c8af1bc72275 | A string that is used to sign JWT which are created by the authenticate endpoint of the api. If JWT_ALGORITHM is set to `RS256`, this is required and holds BASE64 encoded PEM encoded private key for RSA. | | **JWT_PUBLIC_KEY** | yes (if JWT_ALGORITHM=RS256) | - | If JWT_ALGORITHM is set to `RS256`, this is required and holds BASE64 encoded PEM encoded public key for RSA. | | **DOCUMENT_FEATURE_ENABLED** | no | - | If true, all uploaded documents are stored using trubudget's storage-service. If false, the document feature of TruBudget is disabled, and trying to upload a document will result in an error. | | **DOCUMENT_EXTERNAL_LINKS_ENABLED** | no | - | If true, it is possible to use external documents links also without TruBudget's storage-service. If false, the external documents links feature of TruBudget is still possible to use in case DOCUMENT_FEATURE_ENABLED equals "true". | diff --git a/api/package-lock.json b/api/package-lock.json index 58686934f..b89fb35d1 100644 --- a/api/package-lock.json +++ b/api/package-lock.json @@ -1,12 +1,12 @@ { "name": "trubudget-api", - "version": "2.16.0", + "version": "2.17.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trubudget-api", - "version": "2.16.0", + "version": "2.17.0", "license": "GPL-3.0-or-later", "dependencies": { "@azure/monitor-opentelemetry": "^1.1.1", diff --git a/api/package.json b/api/package.json index 79ec5dca7..e437e889a 100644 --- a/api/package.json +++ b/api/package.json @@ -1,6 +1,6 @@ { "name": "trubudget-api", - "version": "2.16.0", + "version": "2.17.0", "private": true, "repository": { "type": "git", diff --git a/blockchain/package-lock.json b/blockchain/package-lock.json index 9b0706f2c..3793d8807 100644 --- a/blockchain/package-lock.json +++ b/blockchain/package-lock.json @@ -1,12 +1,12 @@ { "name": "trubudget-blockchain", - "version": "2.16.0", + "version": "2.17.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trubudget-blockchain", - "version": "2.16.0", + "version": "2.17.0", "license": "GPL-3.0-or-later", "dependencies": { "@kubernetes/client-node": "1.0.0-rc6", diff --git a/blockchain/package.json b/blockchain/package.json index 00c906228..0adf74174 100644 --- a/blockchain/package.json +++ b/blockchain/package.json @@ -1,6 +1,6 @@ { "name": "trubudget-blockchain", - "version": "2.16.0", + "version": "2.17.0", "private": true, "repository": { "type": "git", diff --git a/docs/environment-variables/api-environment-variables.md b/docs/environment-variables/api-environment-variables.md index 3c9d9c1ec..5083d3d91 100644 --- a/docs/environment-variables/api-environment-variables.md +++ b/docs/environment-variables/api-environment-variables.md @@ -8,7 +8,7 @@ | **ORGANIZATION** | no | MyOrga | In the blockchain network, each node is represented by its organization name. This environment variable sets this organization name. It is used to create the organization stream on the blockchain and is also displayed in the frontend's top right corner. Minimal value: 1. Maximal value: 100. | | **PORT** | no | 8091 | The port used to expose the API for your installation. Example: If you run TruBudget locally and set API_PORT to `8080`, you can reach the API via `localhost:8080/api`. Value is a port with minimal value 0 and maximal value 65535 | | **ORGANIZATION_VAULT_SECRET** | yes | - | This is the key to en-/decrypt user data of an organization. If you want to add a new node for your organization, you want users to be able to log in on either node. **Caution:** If you want to run TruBudget in production, make sure NOT to use the default value from the `.env.example` file! Minimal value: 5. | -| **ROOT_SECRET** | no | 2864736ce36fc3e2892a77ba607710c4dc679fdc007aca60eedeaf22fc1ca50d | The root secret is the password for the root user. If you start with an empty blockchain, the root user is needed to add other users, approve new nodes,.. If you don't set a value via the environment variable, the API generates one randomly and prints it to the console **Caution:** If you want to run TruBudget in production, make sure to set a secure root secret. Minimal value: 8. | +| **ROOT_SECRET** | no | 8d0ab15d21b6d2c48d834bad4785a52126573906c84e6120506fce35f5ce4708 | The root secret is the password for the root user. If you start with an empty blockchain, the root user is needed to add other users, approve new nodes,.. If you don't set a value via the environment variable, the API generates one randomly and prints it to the console **Caution:** If you want to run TruBudget in production, make sure to set a secure root secret. Minimal value: 8. | | **MULTICHAIN_RPC_HOST** | no | localhost | The IP address of the blockchain (not multichain daemon,but they are usally the same) you want to connect to. | | **MULTICHAIN_RPC_PORT** | no | 8000 | The Port of the blockchain where the server is available for incoming http connections (e.g. readiness, versions, backup and restore) | | **MULTICHAIN_PROTOCOL** | no | http | The protocol used to expose the multichain daemon of your Trubudget blockchain installation(bc). The protocol used to connect to the multichain daemon(api). This will be used internally for the communication between the API and the multichain daemon. | @@ -18,7 +18,7 @@ | **BLOCKCHAIN_PROTOCOL** | no | http | The Protocol of the blockchain where the server is available for incoming http connections. | | **SWAGGER_BASEPATH** `deprecated` | no | - | deprecated This variable was used to choose which environment (prod or test) is used for testing the requests. The variable is deprecated now, as the Swagger documentation can be used for the prod and test environment separately. Example values: "/". | | **JWT_ALGORITHM** | no | HS256 | Algorithm used for signing and verifying JWTs. | -| **JWT_SECRET** | yes (if JWT_ALGORITHM=RS256) | 1effc3db96157d1f4fa4 | A string that is used to sign JWT which are created by the authenticate endpoint of the api. If JWT_ALGORITHM is set to `RS256`, this is required and holds BASE64 encoded PEM encoded private key for RSA. | +| **JWT_SECRET** | yes (if JWT_ALGORITHM=RS256) | 9640f5d6c8af1bc72275 | A string that is used to sign JWT which are created by the authenticate endpoint of the api. If JWT_ALGORITHM is set to `RS256`, this is required and holds BASE64 encoded PEM encoded private key for RSA. | | **JWT_PUBLIC_KEY** | yes (if JWT_ALGORITHM=RS256) | - | If JWT_ALGORITHM is set to `RS256`, this is required and holds BASE64 encoded PEM encoded public key for RSA. | | **DOCUMENT_FEATURE_ENABLED** | no | - | If true, all uploaded documents are stored using trubudget's storage-service. If false, the document feature of TruBudget is disabled, and trying to upload a document will result in an error. | | **DOCUMENT_EXTERNAL_LINKS_ENABLED** | no | - | If true, it is possible to use external documents links also without TruBudget's storage-service. If false, the external documents links feature of TruBudget is still possible to use in case DOCUMENT_FEATURE_ENABLED equals "true". | diff --git a/docs/environment-variables/excel-export-service-environment-variables.md b/docs/environment-variables/excel-export-service-environment-variables.md index b2caba9c1..9ff03b974 100644 --- a/docs/environment-variables/excel-export-service-environment-variables.md +++ b/docs/environment-variables/excel-export-service-environment-variables.md @@ -9,7 +9,7 @@ | **API_PROTOCOL** | no | http | Protocol of the API service. | | **PORT** | no | 8888 | The port used to expose the excel-export service. Value is a port with minimal value 0 and maximal value 65535 | | **ACCESS_CONTROL_ALLOW_ORIGIN** | no | * | Since the export service uses CORS, the domain by which it can be called needs to be set. Setting this value to `` means that it can be called from any domain. Read more about this topic [here](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). | -| **RATE_LIMIT** | no | - | Defines the limit each IP to 'RATE_LIMIT' requests per windowMs (1 minute) | +| **RATE_LIMIT** | no | - | Defines the limit each IP to RATE_LIMIT requests per windowMs (1 minute) | | **NODE_ENV** | no | production | - | | **LOG_LEVEL** | no | info | Defines the log output. | | **CI_COMMIT_SHA** | no | - | Defines the CI_COMMIT_SHA property returned by the version endpoint. | diff --git a/e2e-test/package-lock.json b/e2e-test/package-lock.json index ad724e1b5..d3b9ce63f 100644 --- a/e2e-test/package-lock.json +++ b/e2e-test/package-lock.json @@ -1,12 +1,12 @@ { "name": "trubudget-e2e-test", - "version": "2.16.0", + "version": "2.17.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trubudget-e2e-test", - "version": "2.16.0", + "version": "2.17.0", "license": "GPL-3.0-or-later", "dependencies": { "async-each": "^1.0.6", diff --git a/e2e-test/package.json b/e2e-test/package.json index 0b419a7c6..c34021365 100644 --- a/e2e-test/package.json +++ b/e2e-test/package.json @@ -1,6 +1,6 @@ { "name": "trubudget-e2e-test", - "version": "2.16.0", + "version": "2.17.0", "private": true, "repository": { "type": "git", diff --git a/email-notification-service/package-lock.json b/email-notification-service/package-lock.json index ecae6f7d4..ee6d79b00 100644 --- a/email-notification-service/package-lock.json +++ b/email-notification-service/package-lock.json @@ -1,12 +1,12 @@ { "name": "email-notification", - "version": "2.16.0", + "version": "2.17.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "email-notification", - "version": "2.16.0", + "version": "2.17.0", "license": "GPL-3.0-or-later", "dependencies": { "@hapi/joi": "^17.1.1", diff --git a/email-notification-service/package.json b/email-notification-service/package.json index 2b0fab736..fc5888ca1 100644 --- a/email-notification-service/package.json +++ b/email-notification-service/package.json @@ -1,7 +1,7 @@ { "name": "email-notification", "description": "Sends notification-emails to provided SMTP server to identities saved in a database of choice.", - "version": "2.16.0", + "version": "2.17.0", "private": true, "repository": { "type": "git", diff --git a/excel-export-service/environment-variables.md b/excel-export-service/environment-variables.md index b2caba9c1..9ff03b974 100644 --- a/excel-export-service/environment-variables.md +++ b/excel-export-service/environment-variables.md @@ -9,7 +9,7 @@ | **API_PROTOCOL** | no | http | Protocol of the API service. | | **PORT** | no | 8888 | The port used to expose the excel-export service. Value is a port with minimal value 0 and maximal value 65535 | | **ACCESS_CONTROL_ALLOW_ORIGIN** | no | * | Since the export service uses CORS, the domain by which it can be called needs to be set. Setting this value to `` means that it can be called from any domain. Read more about this topic [here](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). | -| **RATE_LIMIT** | no | - | Defines the limit each IP to 'RATE_LIMIT' requests per windowMs (1 minute) | +| **RATE_LIMIT** | no | - | Defines the limit each IP to RATE_LIMIT requests per windowMs (1 minute) | | **NODE_ENV** | no | production | - | | **LOG_LEVEL** | no | info | Defines the log output. | | **CI_COMMIT_SHA** | no | - | Defines the CI_COMMIT_SHA property returned by the version endpoint. | diff --git a/excel-export-service/package-lock.json b/excel-export-service/package-lock.json index 185642f62..add6af66e 100644 --- a/excel-export-service/package-lock.json +++ b/excel-export-service/package-lock.json @@ -1,12 +1,12 @@ { "name": "excel-export", - "version": "2.16.0", + "version": "2.17.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "excel-export", - "version": "2.16.0", + "version": "2.17.0", "license": "GPL-3.0-or-later", "dependencies": { "axios": "^1.7.4", diff --git a/excel-export-service/package.json b/excel-export-service/package.json index 496801250..7635cdbed 100644 --- a/excel-export-service/package.json +++ b/excel-export-service/package.json @@ -1,6 +1,6 @@ { "name": "excel-export", - "version": "2.16.0", + "version": "2.17.0", "private": true, "description": "Export TruBudget data to Excel", "main": "src/index.js", diff --git a/frontend-collector/package-lock.json b/frontend-collector/package-lock.json index 4a5502916..09b8da421 100644 --- a/frontend-collector/package-lock.json +++ b/frontend-collector/package-lock.json @@ -1,12 +1,12 @@ { "name": "trubudget-frontend-collector", - "version": "2.16.0", + "version": "2.17.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trubudget-frontend-collector", - "version": "2.16.0", + "version": "2.17.0", "license": "GPL-3.0-or-later", "dependencies": { "@fastify/cors": "^8.4.1", diff --git a/frontend-collector/package.json b/frontend-collector/package.json index ed4eb1c19..8f3ebc221 100644 --- a/frontend-collector/package.json +++ b/frontend-collector/package.json @@ -1,6 +1,6 @@ { "name": "trubudget-frontend-collector", - "version": "2.16.0", + "version": "2.17.0", "description": "Collector for TruBudget frontend logs", "main": "serve.js", "repository": { diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 6913641e3..da7a408a1 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "trubudget-frontend", - "version": "2.16.0", + "version": "2.17.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trubudget-frontend", - "version": "2.16.0", + "version": "2.17.0", "license": "GPL-3.0-or-later", "dependencies": { "@babel/runtime": "^7.21.5", diff --git a/frontend/package.json b/frontend/package.json index ba3d83af4..4d7117af3 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "trubudget-frontend", - "version": "2.16.0", + "version": "2.17.0", "private": true, "repository": { "type": "git", diff --git a/provisioning/package-lock.json b/provisioning/package-lock.json index 268f49fb9..95eadfe2a 100644 --- a/provisioning/package-lock.json +++ b/provisioning/package-lock.json @@ -1,12 +1,12 @@ { "name": "trubudget-provisioning", - "version": "2.16.0", + "version": "2.17.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trubudget-provisioning", - "version": "2.16.0", + "version": "2.17.0", "license": "GPL-3.0-or-later", "dependencies": { "axios": "^1.7.4", diff --git a/provisioning/package.json b/provisioning/package.json index f1c81c1b7..bf1f2b928 100644 --- a/provisioning/package.json +++ b/provisioning/package.json @@ -1,6 +1,6 @@ { "name": "trubudget-provisioning", - "version": "2.16.0", + "version": "2.17.0", "private": true, "repository": { "type": "git", diff --git a/storage-service/package-lock.json b/storage-service/package-lock.json index c429eac23..c62ef4604 100644 --- a/storage-service/package-lock.json +++ b/storage-service/package-lock.json @@ -1,12 +1,12 @@ { "name": "storage-service", - "version": "2.16.0", + "version": "2.17.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "storage-service", - "version": "2.16.0", + "version": "2.17.0", "license": "GPL-3.0-or-later", "dependencies": { "@azure/identity": "^4.0.1", diff --git a/storage-service/package.json b/storage-service/package.json index 1b437b80c..2aee900c6 100644 --- a/storage-service/package.json +++ b/storage-service/package.json @@ -1,6 +1,6 @@ { "name": "storage-service", - "version": "2.16.0", + "version": "2.17.0", "private": true, "description": "Handles the TruBudget object storage", "main": "src/index.js",