diff --git a/DEPENDENCIES b/DEPENDENCIES index 7bf43b926..3e27637d7 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -652,42 +652,42 @@ maven/mavencentral/org.yaml/snakeyaml/2.3, Apache-2.0 AND (Apache-2.0 OR BSD-3-C maven/mavencentral/software.amazon.awssdk/annotations/2.26.27, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/annotations/2.28.12, , restricted, clearlydefined maven/mavencentral/software.amazon.awssdk/apache-client/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/apache-client/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/apache-client/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/arns/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/arns/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/arns/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/auth/2.26.27, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/auth/2.28.12, , restricted, clearlydefined maven/mavencentral/software.amazon.awssdk/aws-core/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/aws-core/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/aws-core/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/aws-query-protocol/2.26.27, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/aws-query-protocol/2.28.12, , restricted, clearlydefined maven/mavencentral/software.amazon.awssdk/aws-xml-protocol/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/aws-xml-protocol/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/aws-xml-protocol/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/checksums-spi/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/checksums-spi/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/checksums-spi/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/checksums/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/checksums/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/checksums/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/crt-core/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/crt-core/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/crt-core/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/endpoints-spi/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/endpoints-spi/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/endpoints-spi/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/http-auth-aws-eventstream/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/http-auth-aws-eventstream/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/http-auth-aws-eventstream/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/http-auth-aws/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/http-auth-aws/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/http-auth-aws/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/http-auth-spi/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/http-auth-spi/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/http-auth-spi/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/http-auth/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/http-auth/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/http-auth/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/http-client-spi/2.26.27, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/http-client-spi/2.28.12, , restricted, clearlydefined maven/mavencentral/software.amazon.awssdk/iam/2.26.27, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/identity-spi/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/identity-spi/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/identity-spi/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/json-utils/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/json-utils/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/json-utils/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/metrics-spi/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/metrics-spi/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/metrics-spi/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/netty-nio-client/2.26.27, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/netty-nio-client/2.28.12, , restricted, clearlydefined maven/mavencentral/software.amazon.awssdk/profiles/2.26.27, Apache-2.0, approved, clearlydefined @@ -697,17 +697,17 @@ maven/mavencentral/software.amazon.awssdk/protocol-core/2.28.12, , restricted, c maven/mavencentral/software.amazon.awssdk/regions/2.26.27, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/regions/2.28.12, , restricted, clearlydefined maven/mavencentral/software.amazon.awssdk/retries-spi/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/retries-spi/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/retries-spi/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/retries/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/retries/2.28.12, , restricted, clearlydefined -maven/mavencentral/software.amazon.awssdk/s3-transfer-manager/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/retries/2.28.12, Apache-2.0, approved, clearlydefined +maven/mavencentral/software.amazon.awssdk/s3-transfer-manager/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/s3/2.26.27, Apache-2.0, approved, clearlydefined -maven/mavencentral/software.amazon.awssdk/s3/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/s3/2.28.12, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/sdk-core/2.26.27, Apache-2.0, approved, #15695 maven/mavencentral/software.amazon.awssdk/sdk-core/2.28.12, , restricted, clearlydefined maven/mavencentral/software.amazon.awssdk/sts/2.26.27, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/third-party-jackson-core/2.26.27, Apache-2.0, approved, #15693 -maven/mavencentral/software.amazon.awssdk/third-party-jackson-core/2.28.12, , restricted, clearlydefined +maven/mavencentral/software.amazon.awssdk/third-party-jackson-core/2.28.12, Apache-2.0 AND BSD-2-Clause, restricted, clearlydefined maven/mavencentral/software.amazon.awssdk/utils/2.26.27, Apache-2.0, approved, clearlydefined maven/mavencentral/software.amazon.awssdk/utils/2.28.12, , restricted, clearlydefined maven/mavencentral/software.amazon.eventstream/eventstream/1.0.1, Apache-2.0, approved, clearlydefined diff --git a/docs/development/decision-records/2024-10-04-Retire-agreements/README.md b/docs/development/decision-records/2024-10-04-Retire-agreements/README.md new file mode 100644 index 000000000..98ed73222 --- /dev/null +++ b/docs/development/decision-records/2024-10-04-Retire-agreements/README.md @@ -0,0 +1,35 @@ +# Tractus-X Contract Agreement Retirement + +## Decision + +Implement a mechanism that allows a dataset provider to _prematurely_ retire an active contract agreement, terminating all +related transfer processes and stopping new data transfer requests. + +## Rational + +The need to prematurely retire an active contract agreement exists if, for example, +the contract agreement is a digital representation of a physical agreement which might have changed via legal +mechanisms, hence resulting in a new contract. The digital representation is no longer valid and shouldn't allow any data transfers. + +Contract agreements are immutable entities by design and should only expire once the contractual terms agreed upon between participants no longer holds. +Considering such restriction, the implemented solution should provide a mechanism that allows for contract agreement retirement +without changing the existing contract agreement feature. + +## Approach + +An `AgreementRetirementStore` will be introduced to persist `AgreementRetirementEntry` entities that represent contract agreement +retirements. + +A policy function will be introduced that checks if the attached contract agreement exists in the `AgreementRetirementStore`. +If true, the evaluation is considered failed. This policy function shall be registered both in the `policy-monitor` and `transfer` scopes. +In both cases, a failed policy evaluation leads to transfer process termination. + +An API will also be introduced to enable dataset providers to manage `AgreementRetirementEntry` entities in the `AgreementRetirementStore`. + +### AgreementRetirementEntry entity + +A new entity will be created to represent an agreement retirement. This entity contains the following attributes: + +- `agreementId` -> The id of the retired contract agreement. +- `reason` -> The reason why the contract agreement was retired. +- `agreementRetirementDate` -> A date (as timestamp) when the contract agreement was retired. \ No newline at end of file