Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add contract agreement retirement feature decision #1604

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions DEPENDENCIES
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Original file line number Diff line number Diff line change
@@ -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.
Loading