Security Dashboard
Feature Detail
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.
-
docs/source/likeperson.md · line 380Security & Audit (admin-security) | Security Dashboard | Security Dashboard Page [ui] | Security Metrics Service [service]
-
docs/source/likeperson.md · line 193Tenant 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
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 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)Organization Administrator
Quick UAT
- Logg inn i Admin-portalen som Organisasjonsadministrator og Ă„pne Sikkerhet â Sikkerhetsdashboard fra sidemenyen.
- Bekreft at dashbordet viser tellere for InnloggingsforsĂžk, Mislykkede innlogginger, Aktive sesjoner og Anomalier for siste 24 timer, scopet til egen organisasjon.
- Endre tidsperiode-filteret fra '24 timer' til 'Siste 7 dager' og vent til grafene oppdateres.
- Trykk pÄ kortet 'Mislykkede innlogginger' for Ä Äpne hendelseslisten med detaljer (tidspunkt, bruker, IP).
- Bekreft at ingen rader fra andre organisasjoner vises i listen, og at totalsummen samsvarer med tellertallet pÄ dashbordet.
Quick UAT â Accessibility
-
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.
-
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.
-
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.'
-
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.
-
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.
Components (4)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.