From cc8aee4fa2bf0e4856982e073a9487c87ba27b7f Mon Sep 17 00:00:00 2001 From: Christian Rehm Date: Mon, 29 Jan 2024 15:26:55 +0100 Subject: [PATCH] chore(concept): #521 include review suggestions --- .../#521-revoked-notification-handling.md | 53 ++++++------------ .../Notification-Status-Flow.png | Bin 0 -> 76227 bytes 2 files changed, 18 insertions(+), 35 deletions(-) create mode 100644 docs/concept/#521-revoked-notification-handling/Notification-Status-Flow.png diff --git a/docs/concept/#521-revoked-notification-handling/#521-revoked-notification-handling.md b/docs/concept/#521-revoked-notification-handling/#521-revoked-notification-handling.md index 0a68526f5f..6c27ac4c3f 100644 --- a/docs/concept/#521-revoked-notification-handling/#521-revoked-notification-handling.md +++ b/docs/concept/#521-revoked-notification-handling/#521-revoked-notification-handling.md @@ -5,38 +5,31 @@ | Author | ds-crehm | | Creation date | 24.01.2024 | | Ticket Id | #521 https://github.com/eclipse-tractusx/traceability-foss/issues/521 | -| State | WIP | +| State | DRAFT | # Table of Contents 1. [Overview](#overview) 2. [Summary](#summary) -3. [Problem Statement](#problem-statement) -4. [Requirements](#requirements) -5. [NFR](#nfr) -6. [Out of scope](#out-of-scope) -7. [Assumptions](#assumptions) -8. [Concept](#concept) -9. [Glossary](#glossary) -10. [References](#references) -11. [Additional Details](#additional-details) +3. [Requirements](#requirements) +4. [Assumptions](#assumptions) +5. [Concept](#concept) +6. [References](#references) # Overview After a notification is created and approved, relevant policies must be verified before it can be sent. There are three possibilities: -1. The policy is valid (validUntil >= current DateTime) and the notification is permitted to be sent. -2. The policy is valid (validUntil >= current DateTime) but the notification is **not** permitted to be sent. -3. The policy is **not** valid (validUntil < current DateTime) and the notification is **not** permitted to be sent (policy details are not relevant in this case). +1. All constraints are fulfilled. The notification may be sent. +2. The policy is expired (validUntil DateTime < current DateTime). The notification is not permitted to be sent. +3. One or more policy-based constraints are not fulfilled. The notification is not permitted to be sent. -Policies are stored in the IRS. The IRS provides an API to fetch and verify policies. +Policies are stored in the IRS' policy store. The IRS provides a policy store API to create, fetch and verify policies. # Summary -When the notification is not sent because of a permission issue or an invalid policy, the user must be notified properly. +If the notification may not be sent after the policy verification, the user must be notified properly. The status of the notification must be updated accordingly. -# Problem Statement - # Requirements - During policy check, throw separate Exceptions based on the type of failure. @@ -44,14 +37,10 @@ The status of the notification must be updated accordingly. - If policy is valid but notification not permitted -> UsagePolicyPermissionException - New quality investigation & alert status: "Failed" - Notification set to this status, when it could not be sent due to the policy exceptions -- Pop-up informing the user of the exception +- Error text message informing the user of the exception - Detailed status information stored in the message history of the notification - User must be able to resend the notification -# NFR - -# Out of scope - # Assumptions - The message history can show the current notification status persistently and accurately (https://github.com/eclipse-tractusx/traceability-foss/issues/423) @@ -66,9 +55,12 @@ Instead of only having one UsagePolicyException, there must be two different exc - UsagePolicyPermissionException (thrown when permission validation fails; contains information from the IRS policy checker response) - UsagePolicyExpiredException (thrown when policy validUntil DateTime < current DateTime) -When either of these is thrown, the notification will be set to the new status "Failed". -A message is stored in the message history, containing information about the exception. +When either of these is thrown, the notification will be set to the new status "Failed" and a message is stored in the message history, containing information about the exception. + +New notification status flow: +![Notification-Status-Flow.png](Notification-Status-Flow.png) +Creating and sending notifications: ```mermaid sequenceDiagram participant TraceX @@ -103,7 +95,7 @@ sequenceDiagram ### Frontend After creating and approving the notification and one of the exceptions is thrown: -1. A pop-up must be shown to the user +1. An error text message must be shown to the user 2. The notification status must be changed to "Failed" 3. A new message must be created and shown in the message history including the error description @@ -112,15 +104,6 @@ UsagePolicyPermissionException: UsagePolicyExpiredException: ![UsagePolicyExpiredException-Mockup.png](UsagePolicyExpiredException-Mockup.png) -# Glossary - -| Abbreviation | Name | Description | -|--------------|------|---------------| -| | | | -| | | | - # References -# Additional Details - -Given the dynamic nature of ongoing development, there might be variations between the conceptualization and the current implementation. For the latest status, refer to the documentation. +- Current notification status flow: https://eclipse-tractusx.github.io/traceability-foss/docs/user/user-manual.html diff --git a/docs/concept/#521-revoked-notification-handling/Notification-Status-Flow.png b/docs/concept/#521-revoked-notification-handling/Notification-Status-Flow.png new file mode 100644 index 0000000000000000000000000000000000000000..78a94475ffe57c7ee5a5559e85197957c8484b0b GIT binary patch literal 76227 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‍3@9VGe;by-uX>zzXt*Fmrl`IsIzNU` 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 FngEr{MZy38 literal 0 HcmV?d00001