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

Feature/Add description of Identity deletion and effects of peer deletion on Relationships #274

Merged
merged 60 commits into from
Dec 12, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
d5ce195
refactor: rename Identity deletion scenario
britsta Oct 22, 2024
315ea6f
refactor: apply Title Case to categories
britsta Oct 22, 2024
34b5b6f
refactor: combine Identity and Relationship scenarios
britsta Oct 22, 2024
80cb9d2
feat: update metadata of Identity deletion scenario
britsta Oct 22, 2024
2d93232
feat: include Identity deletion scenario in navigation bar
britsta Oct 22, 2024
049468c
chore: apply Title Case to categories of navigation bar as well
britsta Oct 22, 2024
40fd1df
fix: redundant SC115 scenario
britsta Oct 22, 2024
b5b5085
chore: ensure redirection of prerelease version of Identity deletion …
britsta Oct 22, 2024
55a8b3f
chore: remove prerelease marker
britsta Oct 22, 2024
2966895
feat: first restructuring and expansion of the prerelease version
britsta Oct 22, 2024
e5e87ac
feat: mention get methods of IdentityDeletionProcesses
britsta Oct 22, 2024
ab30a4c
feat: insert links to scenario and use case in data model overview
britsta Oct 23, 2024
abbe826
fix: formatting of non-existent parameters of use case
britsta Oct 23, 2024
31f2a7a
feat: link to scenario within getters of IdentityDeletionProcess use …
britsta Oct 23, 2024
e1d08ed
feat: add details to initiate IdentityDeletionProcess use case
britsta Oct 23, 2024
52d3532
feat: add details to approve IdentityDeletionProcess scenario
britsta Oct 23, 2024
6680cca
feat: add details to reject IdentityDeletionProcess use case
britsta Oct 23, 2024
0190ba6
feat: add details to cancel IdentityDeletionProcess use case
britsta Oct 23, 2024
0d21577
refactor: grammatical sentence structure
britsta Oct 23, 2024
bc42e29
chore: include warning that use cases are not yet exposed to Integrators
britsta Oct 23, 2024
85f2655
feat: add PeerDeletionInfo to Data Model Overview
britsta Oct 23, 2024
1e71997
chore: add remarks column to PeerDeletionInfo even it is empty
britsta Oct 23, 2024
8586c81
feat: add events regarding peer deletion
britsta Oct 23, 2024
eaf6dc2
feat: add IdentityDeletionProcessStatusChangedEvent
britsta Oct 24, 2024
0e4b363
feat: add IdentityDeletionProcess error codes
britsta Oct 24, 2024
8de0951
feat: emphazise active IdentityDeletionProcesses
britsta Oct 24, 2024
492e484
fix: mention a currently non-existent support channel
britsta Oct 24, 2024
e7383a1
feat: add details to grace and approval period of IdentityDeletionPro…
britsta Oct 24, 2024
d5ae342
refactor: eliminate errors, events and getters section
britsta Oct 25, 2024
b6affd0
feat: rewrite Options for Identity Deletion section
britsta Oct 25, 2024
8e7dbd8
chore: change wording regarding use cases
britsta Oct 25, 2024
a83490c
feat: add details to side effects of Identity deletion on Relationshi…
britsta Oct 25, 2024
f150120
feat: move error codes to corresponding overview page
britsta Oct 28, 2024
44b3f94
feat: rephrase self-initiated Identity deletion section
britsta Oct 29, 2024
df43759
chore: delete TODO comments as open questions have been resolved
britsta Oct 29, 2024
e41c2be
feat: rephrase Backbone Admin UI Identity deletion section
britsta Oct 29, 2024
ee82ca5
fix: connection between Backbone Admin UI and Connector
britsta Oct 29, 2024
c9e2a70
Merge branch 'main' into feature/add-identity-deletion-scenario
mergify[bot] Oct 29, 2024
9d573be
Merge branch 'main' into feature/add-identity-deletion-scenario
mergify[bot] Oct 29, 2024
4b41a08
feat: rename peer deletion error codes
britsta Oct 29, 2024
aaf3790
Merge branch 'main' into feature/add-identity-deletion-scenario
mergify[bot] Oct 31, 2024
5378a2d
Merge branch 'main' into feature/add-identity-deletion-scenario
britsta Nov 6, 2024
1e4d16b
Merge branch 'main' into feature/add-identity-deletion-scenario
mergify[bot] Nov 7, 2024
52478bb
Merge branch 'main' into feature/add-identity-deletion-scenario
mergify[bot] Nov 11, 2024
c231ca2
Merge branch 'main' into feature/add-identity-deletion-scenario
mergify[bot] Nov 14, 2024
29d8309
Merge branch 'main' into feature/add-identity-deletion-scenario
mergify[bot] Nov 15, 2024
9cf235c
Merge branch 'main' into feature/add-identity-deletion-scenario
mergify[bot] Nov 22, 2024
115280a
fix: transport error instead of runtime error
britsta Dec 3, 2024
ff5635a
refactor: remove redundant link
britsta Dec 3, 2024
a2a0433
feat: add DecompositionDueToIdentityDeletion to documentation
britsta Dec 4, 2024
d9d82cb
Merge branch 'main' into feature/add-identity-deletion-scenario
britsta Dec 5, 2024
d37455a
fix: prettier error due to merge
britsta Dec 5, 2024
57876f4
fix: Backbone Admin UI sounds like acting entity
britsta Dec 5, 2024
3a5f55d
refactor: simplify sentence
britsta Dec 5, 2024
8b03dd7
feat: incorporate review comments
britsta Dec 6, 2024
383856e
feat: incorporate review comments
britsta Dec 9, 2024
0f66d39
feat: incorporate review comments
britsta Dec 10, 2024
fe99872
refactor: remove Backbone Admin UI option for Identity deletion for t…
britsta Dec 10, 2024
9d635c3
feat: use specific error for deleted owner of RelationshipTemplate
britsta Dec 12, 2024
1d726b6
feat: incorporate review comments
britsta Dec 12, 2024
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
3 changes: 3 additions & 0 deletions _docs_integrate/data-model-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,9 @@ A File further has its content, of course. But since this is not a JSON property

## IdentityDeletionProcess

Please note that the feature of triggering the deletion of an Identity via the Backbone Admin UI is currently disabled. For this reason, an IdentityDeletionProcess cannot currently have `"WaitingForApproval"` as `status`. In addition, the use cases for [approving]({% link _docs_use-cases/use-case-transport-approve-identitydeletionprocess.md %}) and [rejecting]({% link _docs_use-cases/use-case-transport-reject-identitydeletionprocess.md %}) IdentityDeletionProcesses are no longer needed for the time being.
britsta marked this conversation as resolved.
Show resolved Hide resolved
{: .notice--warning}

If you want to [delete your Identity]({% link _docs_integrate/delete-identities.md %}), the actual deletion of all data associated with that [Identity](#identity) will only take place after a certain grace period has ended.
Up until then, the data about the deletion process is stored in an object called IdentityDeletionProcess.
It is possible to [cancel an IdentityDeletionProcess]({% link _docs_use-cases/use-case-transport-cancel-identitydeletionprocess.md %}) that hasn't reached the end of its grace period, yet.
Expand Down
31 changes: 8 additions & 23 deletions _docs_integrate/delete-identities.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,11 @@ Please note that an Identity can never trigger the process of deletion of anothe

From a technical perspective, the process of Identity deletion is described by a data object of type [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess). It can be uniquely identified by its `id`.
An IdentityDeletionProcess can have `"WaitingForApproval"`, `"Rejected"`, `"Approved"` or `"Cancelled"` as its `status`.
If it has `"WaitingForApproval"` or `"Approved"` as `status`, it is also referred to as an **active IdentityDeletionProcess**.

Please note that the feature of triggering the deletion of an Identity via the Backbone Admin UI is currently disabled. For this reason, an [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess) cannot currently have `"WaitingForApproval"` as `status`. In addition, the use cases for [approving]({% link _docs_use-cases/use-case-transport-approve-identitydeletionprocess.md %}) and [rejecting]({% link _docs_use-cases/use-case-transport-reject-identitydeletionprocess.md %}) IdentityDeletionProcesses are no longer needed for the time being.
{: .notice--warning}

If an IdentityDeletionProcess has `"WaitingForApproval"` or `"Approved"` as `status`, it is also referred to as an **active IdentityDeletionProcess**.
There can be at most one active IdentityDeletionProcess per Identity.
There are three [use cases]({% link _docs_integrate/use-cases.md %}) for getting one or more already existing [IdentityDeletionProcesses]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess):

Expand All @@ -48,40 +52,21 @@ There are three [use cases]({% link _docs_integrate/use-cases.md %}) for getting

In principle, there are several options for deleting an Identity from the Backbone.
For example, depending on the Backbone environment, it is conceivable to set up automatic Identity deletion after a long period of Identity inactivity.
More essential are the two options for actively deciding to delete an Identity from the Backbone:

- Initiation of the process of Identity deletion by the Identity itself.
- The Backbone administrator triggers the process of Identity deletion and the Identity subsequently approves the triggered deletion of its Identity.

Whenever a new [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess) has been created due to a [self-initiated Identity deletion](#self-initiated-identity-deletion) or an [Identity deletion triggered via the Backbone Admin UI](#identity-deletion-triggered-via-the-backbone-admin-ui) or the `status` of an existing IdentityDeletionProcess has changed, the [Connector event]({% link _docs_integrate/connector-events.md %}) `transport.identityDeletionProcessStatusChanged` is raised. In addition, an external `IdentityDeletionProcessStarted` event can be received when an Identity deletion is triggered via the Backbone Admin UI.
More essential is the option of [actively initiate the process of Identity deletion from the Backbone by the Identity itself](#self-initiated-identity-deletion).
britsta marked this conversation as resolved.
Show resolved Hide resolved
Whenever a new [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess) has been created or the `status` of an existing IdentityDeletionProcess has changed, the [Connector event]({% link _docs_integrate/connector-events.md %}) `transport.identityDeletionProcessStatusChanged` is raised.

### Self-Initiated Identity Deletion

An Identity can actively trigger its own process of deletion by executing the [Initiate IdentityDeletionProcess]({% link _docs_use-cases/use-case-transport-initiate-identitydeletionprocess.md %}) use case.
Successful execution leads to the creation of an [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess) with `"Approved"` as `status`.
In contrast to the [Identity deletion triggered via the Backbone Admin UI](#identity-deletion-triggered-via-the-backbone-admin-ui), no further approval of the Identity is therefore required.
No further approval of the Identity is required.
Instead, the Identity is immediately in deletion and will be irreversibly deleted from the Backbone once the end of the associated grace period of the IdentityDeletionProcess specified within its `gracePeriodEndsAt` property has been reached.
Within the grace period, the [Cancel IdentityDeletionProcess]({% link _docs_use-cases/use-case-transport-cancel-identitydeletionprocess.md %}) use case can be applied by the Identity if it no longer wants to be deleted.
In this case, the `status` of the IdentityDeletionProcess changes to `"Cancelled"`.
Trying to cancel an IdentityDeletionProcess that does not have `"Approved"` as `status` causes an error with `error.runtime.identityDeletionProcess.noApprovedIdentityDeletionProcess` as [error code]({% link _docs_integrate/error-codes.md %}) to be thrown.
Furthermore, please note that the use of the [Initiate IdentityDeletionProcess]({% link _docs_use-cases/use-case-transport-initiate-identitydeletionprocess.md %}) use case is not permitted if there is already an active IdentityDeletionProcess.
The corresponding [error code]({% link _docs_integrate/error-codes.md %}) is given by `error.runtime.identityDeletionProcess.activeIdentityDeletionProcessAlreadyExists`.

### Identity Deletion Triggered via the Backbone Admin UI

As required by the General Data Protection Regulation, abbreviated GDPR, it is possible for an Identity to actively trigger its process of deletion by using support tickets or writing e-mails to the Operator of the Backbone.
In order to be able to offer an Identity this option in addition to the possibility of [self-initiated Identity deletion](#self-initiated-identity-deletion), it must be possible for the Backbone Operator to trigger the Identity deletion via the Backbone Admin UI.
Successful triggering leads to the creation of an [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess) with `"WaitingForApproval"` as `status` for the Identity.
As the Backbone Operator must ensure that the creator of the support ticket or the writer of the e-mail is actually the Identity whose deletion was requested, the Identity must additionally [approve the IdentityDeletionProcess]({% link _docs_use-cases/use-case-transport-approve-identitydeletionprocess.md %}) afterwards.
However, the Identity can also [reject the IdentityDeletionProcess]({% link _docs_use-cases/use-case-transport-reject-identitydeletionprocess.md %}) if it has changed its mind about its deletion after the process of Identity deletion was triggered via the Backbone Admin UI.
Approving or rejecting an IdentityDeletionProcess with `"WaitingForApproval"` as `status` is only possible until the date specified within the `approvalPeriodEndsAt` property has not been exceeded.
If it is neither approved nor rejected by then, it automatically changes its `status` to `"Cancelled"` and the Identity will not be deleted.
Moreover, please note that the use cases for approving or rejecting an IdentityDeletionProcess cannot be executed by the Identity if there is no IdentityDeletionProcess with `"WaitingForApproval"` as `status`.
An error with [code]({% link _docs_integrate/error-codes.md %}) `error.runtime.identityDeletionProcess.noWaitingForApprovalIdentityDeletionProcess` is otherwise thrown.
After the IdentityDeletionProcess has changed its `status` from `"WaitingForApproval"` to `"Approved"` as a result of the approval, it embodies that the Identity will be deleted after the grace period ends.
As with the [self-initiated Identity deletion](#self-initiated-identity-deletion), the [Cancel IdentityDeletionProcess]({% link _docs_use-cases/use-case-transport-cancel-identitydeletionprocess.md %}) use case can be executed by the Identity within the grace period if it no longer wants to be deleted.
If it is not cancelled by then, the Identity will be irreversibly deleted from the Backbone.

## Effects of Identity Deletion on Relationships

The initiation of the deletion of an Identity as well as the actual deletion logically have an impact on the peers who have [established a Relationship]({% link _docs_integrate/establish-relationships.md %}) with it.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,10 @@ required_by:

{% include properties_list.html %}

The process of [Identity deletion]({% link _docs_integrate/delete-identities.md %}) can either be self-initiated or triggered via the Backbone Admin UI.
In the case of [Identity deletion triggered via the Backbone Admin UI]({% link _docs_integrate/delete-identities.md %}#identity-deletion-triggered-via-the-backbone-admin-ui), an [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess) with `"WaitingForApproval"` as `status` is created for your [Identity]({% link _docs_integrate/data-model-overview.md %}#identity) via the Backbone Admin UI.
Please note that the feature of triggering the deletion of an Identity via the Backbone Admin UI is currently disabled. For this reason, an [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess) cannot currently have `"WaitingForApproval"` as `status`. In addition, this use case for approving and the use case for [rejecting IdentityDeletionProcesses]({% link _docs_use-cases/use-case-transport-reject-identitydeletionprocess.md %}) are no longer needed for the time being.
{: .notice--warning}

In the case of [Identity deletion]({% link _docs_integrate/delete-identities.md %}) triggered via the Backbone Admin UI, an [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess) with `"WaitingForApproval"` as `status` is created for your [Identity]({% link _docs_integrate/data-model-overview.md %}#identity) via the Backbone Admin UI.
This use case can be utilized to approve this IdentityDeletionProcess.
Alternatively, the [IdentityDeletionProcess can be rejected]({% link _docs_use-cases/use-case-transport-reject-identitydeletionprocess.md %}).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ required_by:

{% include properties_list.html %}

The process of [Identity deletion]({% link _docs_integrate/delete-identities.md %}) can either be self-initiated or triggered via the Backbone Admin UI and subsequently [approved]({% link _docs_use-cases/use-case-transport-approve-identitydeletionprocess.md %}) by the [Identity]({% link _docs_integrate/data-model-overview.md %}#identity).
In both cases, the created [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess) with `"Approved"` as `status` can be cancelled if the Identity no longer wants to be deleted.
The process of [Identity deletion]({% link _docs_integrate/delete-identities.md %}) leads to the creation of an [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess) with `"Approved"` as `status`.
It can be cancelled if the Identity no longer wants to be deleted.
This is only possible as long as the end of the associated grace period of the IdentityDeletionProcess specified within its `gracePeriodEndsAt` property has not yet been reached.
This use case allows you to cancel an approved IdentityDeletionProcess for your Identity within the grace period.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ required_by:

{% include properties_list.html %}

The process of [Identity deletion]({% link _docs_integrate/delete-identities.md %}) can either be self-initiated or triggered via the Backbone Admin UI.
In the case of [self-initiated Identity deletion]({% link _docs_integrate/delete-identities.md %}#self-initiated-identity-deletion), this use case can be utilized to initiate an [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess) for your [Identity]({% link _docs_integrate/data-model-overview.md %}#identity).
britsta marked this conversation as resolved.
Show resolved Hide resolved
The generated IdentityDeletionProcess immediately has `"Approved"` as its `status` and describes that the Identity will be deleted after the grace period ends unless the [IdentityDeletionProcess is cancelled]({% link _docs_use-cases/use-case-transport-cancel-identitydeletionprocess.md %}) by the Identity by then.

Expand All @@ -52,4 +51,4 @@ The generated IdentityDeletionProcess immediately has `"Approved"` as its `statu

## On Failure

- No IdentityDeletionProcess can be initiated if there is already an active IdentityDeletionProcess, i.e. an IdentityDeletionProcess with `"Approved"` or `"WaitingForApproval"` as `status`, for this Identity. Please note that an IdentityDeletionProcess with `"WaitingForApproval"` as `status` is never created by the self-initiated Identity deletion, but only by the process of [Identity deletion triggered via the Backbone Admin UI]({% link _docs_integrate/delete-identities.md %}#identity-deletion-triggered-via-the-backbone-admin-ui).
- No IdentityDeletionProcess can be initiated if there is already an active IdentityDeletionProcess, i.e. an IdentityDeletionProcess with `"Approved"` or `"WaitingForApproval"` as `status`, for this Identity. Please note that an IdentityDeletionProcess with `"WaitingForApproval"` as `status` is never created by the self-initiated Identity deletion, but only by the process of Identity deletion triggered via the Backbone Admin UI. However, the latter feature is currently disabled.
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,10 @@ required_by:

{% include properties_list.html %}

The process of [Identity deletion]({% link _docs_integrate/delete-identities.md %}) can either be self-initiated or triggered via the Backbone Admin UI.
In the case of [Identity deletion triggered via the Backbone Admin UI]({% link _docs_integrate/delete-identities.md %}#identity-deletion-triggered-via-the-backbone-admin-ui), an [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess) with `"WaitingForApproval"` as `status` for your [Identity]({% link _docs_integrate/data-model-overview.md %}#identity) is created via the Backbone Admin UI.
Please note that the feature of triggering the deletion of an Identity via the Backbone Admin UI is currently disabled. For this reason, an [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess) cannot currently have `"WaitingForApproval"` as `status`. In addition, this use case for rejecting and the use case for [approving IdentityDeletionProcesses]({% link _docs_use-cases/use-case-transport-approve-identitydeletionprocess.md %}) are no longer needed for the time being.
{: .notice--warning}

In the case of [Identity deletion]({% link _docs_integrate/delete-identities.md %}) triggered via the Backbone Admin UI, an [IdentityDeletionProcess]({% link _docs_integrate/data-model-overview.md %}#identitydeletionprocess) with `"WaitingForApproval"` as `status` for your [Identity]({% link _docs_integrate/data-model-overview.md %}#identity) is created via the Backbone Admin UI.
This use case allows you to reject this IdentityDeletionProcess.
Alternatively, the [IdentityDeletionProcess can be approved]({% link _docs_use-cases/use-case-transport-approve-identitydeletionprocess.md %}).

Expand Down
Loading