View Full Audit Trail for Each Report Submission
Each report history entry must expose an audit trail panel listing timestamped events: report generation initiated, validation completed (with any warnings), submission confirmed, files uploaded to storage, any re-export events, and who performed each action. Events must include the acting user's name and role. The audit trail must be read-only and immutable — coordinators can view it but not edit it. Access is restricted by RLS to coordinators within the same organization scope.
User Story
Acceptance Criteria
- Given the coordinator opens the audit trail panel for a report, when the panel loads, then all events are shown in chronological order with timestamp, event type, and acting user name
- Given a validation warning was present at submission time, when the coordinator views the audit trail, then the warning is recorded as an event with the warning message and the coordinator who accepted it
- Given a re-export was performed by a different coordinator, when the original coordinator views the audit trail, then the re-export event shows the other coordinator's name
- Given a coordinator from a different organization attempts to access the audit trail, when they make the request, then RLS prevents access and they see no data
- Given the audit trail is displayed, when the coordinator attempts to edit or delete any entry, then no edit controls are available and all entries are read-only
Business Value
Norwegian grant recipients are legally required to maintain documentation of how public funds were reported. An immutable, role-scoped audit trail gives organizations the evidence they need during Bufdir audits, reduces liability for coordinators, and builds trust with Bufdir by demonstrating systematic governance of the reporting process.
Components
- Report History Screen ui
- Report History Service service
- Report History Repository data
- Report History RLS Policy Configuration infrastructure
- Export Audit Log Service service
- Export Audit Log Repository data
- Admin Row-Level Security Guard service