medium complexity extracted Security & Audit Confidence: 100%
2
Components
2
Shared
0
User Stories
Yes
Analyzed

Description

The Security Dashboard provides organization administrators with a consolidated, real-time view of the security posture of their tenant within the Admin Web Portal. It surfaces key security metrics such as active sessions, recent authentication events, failed login attempts, support-access grants to Global Admins, and anomalies that may indicate misuse or compromise. The dashboard aggregates data from the audit log, session store, and authentication module, presenting it through visual indicators and drill-down panels. It enables Org Admins to spot suspicious activity quickly and take corrective action such as revoking sessions or reviewing audit entries without needing to query raw logs.

Sources & reasoning

Source taxonomy at line 380 lists Security Dashboard under admin-security with Page + Metrics Service components. Line 193 establishes the tenant-isolation and time-bounded support-access guarantees the dashboard must surface. Not called out as MVP, so target_release defaults to Core Product per resolution rule 3.

  • Security & Audit (admin-security) | Security Dashboard | Security Dashboard Page [ui] | Security Metrics Service [service]
  • Tenant separation is strict: each org's data is isolated. Orgs can grant a Global Admin time-bounded support access via a flag in Organization Settings

Analysis

Business Value

A dedicated security dashboard strengthens trust with tenant organizations by demonstrating that Meander takes data protection seriously and provides transparency into how their data is accessed. For organizations handling sensitive personal data - health information, encrypted assignments, next-of-kin records - visible security oversight is a procurement requirement, not a nice-to-have. The dashboard also reduces the operational burden on Norse Digital Products by empowering Org Admins to self-serve security investigations rather than escalating to support. This shortens incident response time, supports GDPR accountability obligations, and gives organizations confidence to grant time-bounded support access knowing they can monitor what happens during that window.

Implementation Notes

Implementation aggregates data from the audit_logs table, user_sessions, and authentication events into a read-optimized metrics service exposed via the REST API. The Security Metrics Service computes counters and trends server-side to keep the dashboard responsive, while the Security Dashboard Page renders charts and KPI cards using the existing admin portal design system. Tenant scoping is strictly enforced - each Org Admin sees only their organization's data, and Global Admins see cross-org aggregates only when explicitly granted support access. The dashboard must respect the multi-tenant isolation guarantees stated in the source doc and integrate with the Authentication Module for session data without coupling to its internals.

Quality Assurance

Organization Administrator (primary) · Global Administrator (same flow, time-bounded grant)
1
Scenarios
5
UAT Steps
16
A11y Annotations
3
Role Boundaries
Organization Administrator

Organization Administrator

Quick UAT

  1. Logg inn i Admin-portalen som Organisasjonsadministrator og Ă„pne Sikkerhet → Sikkerhetsdashboard fra sidemenyen.
  2. Bekreft at dashbordet viser tellere for InnloggingsforsĂžk, Mislykkede innlogginger, Aktive sesjoner og Anomalier for siste 24 timer, scopet til egen organisasjon.
  3. Endre tidsperiode-filteret fra '24 timer' til 'Siste 7 dager' og vent til grafene oppdateres.
  4. Trykk pÄ kortet 'Mislykkede innlogginger' for Ä Äpne hendelseslisten med detaljer (tidspunkt, bruker, IP).
  5. Bekreft at ingen rader fra andre organisasjoner vises i listen, og at totalsummen samsvarer med tellertallet pÄ dashbordet.

Quick UAT — Accessibility

  1. Logg inn i Admin-portalen som Organisasjonsadministrator og Ă„pne Sikkerhet → Sikkerhetsdashboard fra sidemenyen.
    • Screen reader Sideoverskrift 'Sikkerhetsdashboard' annonseres; tab-rekkefĂžlge: sidemeny → sideoverskrift → tidsperiode-filter → KPI-kort.
    • Keyboard / focus Sidemeny nĂ„s med Tab; Enter aktiverer 'Sikkerhetsdashboard'-lenken.
    • Focus visibility Synlig fokusring pĂ„ aktiv menypunkt og sideoverskrift.
  2. Bekreft at dashbordet viser tellere for InnloggingsforsĂžk, Mislykkede innlogginger, Aktive sesjoner og Anomalier for siste 24 timer, scopet til egen organisasjon.
    • Screen reader Hvert KPI-kort annonseres som 'InnloggingsforsĂžk, 142, siste 24 timer' - verdi og etikett lest sammen, ikke kun farge.
    • Zoom Kortlayout brytes om til Ă©n kolonne ved 200 % zoom uten horisontal scroll.
    • Contrast KPI-status (grĂžnn/gul/rĂžd) suppleres med ikon og tekst - ikke kun farge; tekstkontrast ≄ 4.5:1.
  3. Endre tidsperiode-filteret fra '24 timer' til 'Siste 7 dager' og vent til grafene oppdateres.
    • Keyboard / focus Dropdown Ă„pnes med Enter/Space; piltaster navigerer alternativer; Esc lukker uten endring.
    • Focus visibility Fokus forblir pĂ„ filter-kontroll etter valg.
    • Touch target Filter-kontroll ≄ 24×24 CSS px.
    • Live region 'Sikkerhetsdata oppdatert for siste 7 dager.'
  4. Trykk pÄ kortet 'Mislykkede innlogginger' for Ä Äpne hendelseslisten med detaljer (tidspunkt, bruker, IP).
    • Screen reader Kortet annonseres som knapp med rolle 'button' og etikett 'Vis mislykkede innlogginger-detaljer'.
    • Keyboard / focus Kort nĂ„s via Tab; Enter Ă„pner detaljvisning; Esc/Tilbake returnerer til dashbord.
    • Touch target Klikkbart kortomrĂ„de ≄ 24×24 CSS px.
  5. Bekreft at ingen rader fra andre organisasjoner vises i listen, og at totalsummen samsvarer med tellertallet pÄ dashbordet.
    • Screen reader Tabell annonseres med antall rader; kolonneoverskrifter (Tidspunkt, Bruker, IP) leses ved navigering.
    • Keyboard / focus Piltaster navigerer mellom radene i tabellen; Home/End hopper til fĂžrste/siste rad.
    • Contrast Tabellstriper og statusindikatorer har ≄ 3:1 mot bakgrunn; status uttrykt med tekst i tillegg til farge.

Role Boundaries

3 role(s) must NOT access this feature
  • Peer Mentor (Likeperson)

    Logger ikke inn i Admin-portalen. Deep-link til /admin/security/dashboard returnerer 403 / omdirigerer til mobil-only meldingsside.

  • Coordinator (Koordinator)

    Logger ikke inn i Admin-portalen. Sikkerhetsdashboard er ikke synlig i navigasjonen; deep-link returnerer 403.

  • Prospective Buyer

    Har ingen konto i Admin-portalen. /admin-ruter krever pÄlogging og returnerer login-redirect; etter pÄlogging gir manglende rolle 403.

Expected End State

Organisasjonsadministrator (og en eventuell Global Admin med aktiv tidsbegrenset stÞttetilgang) ser et oppdatert sikkerhetsdashbord scopet strengt til egen organisasjon, med tellere og hendelseslister som samsvarer pÄ tvers av visninger, og enhver Global Admin-visning er registrert i organisasjonens revisjonsspor.

User Stories

No user stories have been generated for this feature yet.