This view contains identified evidence gaps.
Actor journeys
In this document
Who is trying to achieve what, and which actions and handoffs lead to the outcome?
This view recovers one bounded journey: a notification owner tries to share a notification with external users. The owner role is inferred from the sharing controller’s notification-owner filter; the filter’s effective enforcement is not established by the supplied analysis. E0017
The evidenced order is email entry, eligibility checks and staging of selected users, then confirmation and issuance of an AddSharedUser request. The model ends at Sharing request issued, not at verified access for the recipient. The controller analysis establishes this orchestration, while separate handler analysis reports applying shared-user operations and saving changes without establishing the complete authorization or duplicate-handling policy. E0017 E0460
Read starts as actor initiation, next as the reported order within this controller flow, and achieves as reaching the bounded outcome. Action ownership distinguishes the inferred human participant from the named controller performing checks. These are published source analyses, not live verification of successful execution. E0017 E0460
Diagram
Preparing diagram…
View Mermaid diagram source
flowchart LR
n0ca5ccbb30d141e3466e["Notification owner #40;inferred#41;"]
n9ad2e2079ea468e0db8c["Submit sharing email"]
n511ac0e3c8a9bd2dda09["Check and stage shared users"]
n034449907f9f0c068028["Confirm sharing"]
n1b9236f47804cb85965c["Sharing request issued"]
n0ca5ccbb30d141e3466e -.->|"Owner initiates sharing #40;inferred#41;"| n9ad2e2079ea468e0db8c
n9ad2e2079ea468e0db8c -->|"Email enters eligibility checks"| n511ac0e3c8a9bd2dda09
n511ac0e3c8a9bd2dda09 -->|"Staged selection proceeds to confirmation"| n034449907f9f0c068028
n034449907f9f0c068028 -->|"Confirmation issues sharing request"| n1b9236f47804cb85965c
Elements
Notification owner
Kind: actor Basis: inferred Description: The intended initiating user is inferred from the notification-owner filter attached to the sharing controller. The supplied evidence does not establish which authenticated users that filter actually permits. E0017 Evidence: E0017 Goal: Share a notification with selected external users; this goal is inferred from the sharing flow and its external-user eligibility checks. E0017
Submit sharing email
Kind: action Basis: reported Description: The sharing flow accepts an email address for a prospective shared user and performs email validation before progressing through user-selection checks. E0017 Evidence: E0017 Owner: Notification owner, inferred from the controller’s owner filter; exact runtime initiating role remains unverified. E0017
Check and stage shared users
Kind: action Basis: reported Description: The controller rejects self-sharing, resolves the supplied email to a user, requires an external user, and rejects already-shared users. Selected users are staged in TempData for the confirmation flow. Checks against persisted shared users and the in-memory selection are separate; final duplicate handling is delegated beyond the controller. E0017 Evidence: E0017 Owner: ShareNotificationController. E0017
Confirm sharing
Kind: action
Basis: reported
Description: The confirmation flow reads the staged shared-user list and its POST sends an AddSharedUser request. The visible POST does not establish model validation or protection against an absent TempData list. E0017
Evidence: E0017
Owner: Notification owner for confirmation, inferred; ShareNotificationController for reading staged users and sending the request. E0017
Sharing request issued
Kind: outcome
Basis: reported
Description: The bounded controller outcome is issuance of the AddSharedUser request for selected users. This is not proof that recipients can subsequently access the notification. Separate analysis reports that AddSharedUserHandler applies the shared-user operation for each supplied user, saves once, and returns true, but runtime binding and complete access-control behavior remain unestablished. E0017 E0460
Evidence: E0017 E0460
Relationships
Owner initiates sharing
From: Notification owner To: Submit sharing email Relation: starts Basis: inferred Description: Initiation by a notification owner is inferred from the owner-filtered sharing controller and its email-entry flow, rather than from an established actor-to-permission matrix. E0017 Evidence: E0017
Email enters eligibility checks
From: Submit sharing email To: Check and stage shared users Relation: next Basis: reported Description: After accepting and validating the email, the controller proceeds through self-sharing, user resolution, external-user eligibility and already-shared checks before staging the selection. E0017 Evidence: E0017
Staged selection proceeds to confirmation
From: Check and stage shared users To: Confirm sharing Relation: next Basis: reported Description: Selected users are placed in TempData, which the confirmation flow subsequently reads. This relationship depends on the staged list remaining available; the supplied analysis identifies missing or expired TempData as an unresolved failure boundary. E0017 Evidence: E0017
Confirmation issues sharing request
From: Confirm sharing
To: Sharing request issued
Relation: achieves
Basis: reported
Description: The confirmation POST sends AddSharedUser using the selected users. The evidenced outcome is the request call, not independently verified persistence, recipient notification or effective access. E0017
Evidence: E0017
Gaps
- Human ownership and authorization: The notification-owner and activity-authorization hooks are visible, but their implementations and effective permissions are not supplied. Follow-up should establish who may initiate and confirm sharing and how notification ownership is checked at execution time. E0017
- Controller-to-handler handoff: The controller sends
AddSharedUser, and the corresponding named handler is reported to apply sharing operations and save. Registration and runtime invocation are not established, so no connected handler-execution relationship is asserted here. Follow-up requires dispatch registrations and an integration test spanning confirmation and persistence. E0017 E0460 - Workflow-state failure: Confirmation depends on TempData and may encounter null-dependent behavior when its list is missing or expired. State lifetime, repeated requests and concurrent journeys remain unresolved; these need controller and TempData-provider tests. E0017
- Error meaning: User resolution catches all exceptions and reports an invalid-email error. The visible flow therefore does not distinguish an unknown user from an outage or programming failure. Follow-up should establish the intended error contract and logging behavior. E0017
- Final access and recipient handoff: Persistence is reported in the handler, but complete mutation authorization, duplicate behavior and recipient-visible access are not established. No recipient acknowledgment or notification step is evidenced for this journey, and controller-level audit calls are not visible for confirmation; unseen handlers may provide additional behavior. E0017 E0460
Recovery limitations
- Ownership, mechanism or boundary controls remain explicitly unverified.
- The view includes explicitly marked inference.
Sources
- E0017 — SHA256
d085853b1955cb12eb4ab9e6d7193b1ecca10fb74c074a1b98277f70d3bc8e36 - E0460 — SHA256
ff23c6146b961faa18e1bdb243029d89bf8a5afd875509bc97c6cfc077e3cb7e
Contains public sector information licensed under the Open Government Licence v3.0. Original public repository. This independent Harten analysis was not commissioned, approved or endorsed by DEFRA or the Environment Agency.
Analysed source-archive hash is recorded; its exact upstream Git commit has not been established. The generated material does not establish complete requirements, operational security or functional equivalence.