Portal

En mjukare portalupplevelse

Moderniserad UI med tydliga statussignaler, glasartade kort och snabbåtkomst till SSO-flöden. Fokuserar på att göra tenantval, favoriter och readiness lättare att förstå.

Gästläge – logga inTenant: 3 scopes saknas

Snabbåtgärder

Starta via SIS

Readiness0%

0 åtgärder • 0/1 moduler inom SLO

Användare

Gäst

Gäst

Inte inloggad

Tenant

X-Tenant-Id

Organisation: svenska-stenhus

Tokenstatus

OIDC

Ingen token

Audience: stenpro-platform

Scopes: saknas

Licensierade moduler

0/8

Launcher visar moduler där tenant + licens + roll matchar.

Favoriter

0

Snabbstartar moduler och styr widget-lagrets genvägar.

Roadmap

0% klart

Milstolpar markerade som klara i roadmapen för vald tenant.

SLO-status

0/1 inom SLO

Moduler som klarar p95- och felrate-kraven i DoD.

Tenant & organisation

Multi-tenant login enligt Auth.md

Tenant switch

Portalen skickar alltid med X-Tenant-Id ochX-Organization-Id i enlighet med Auth.md. Här kan du simulera en ny tenant eller organisation och se hur launcher-åtkomsten uppdateras.

Aktiv kontext

Tenant: (ingen källa)

Organisation: svenska-stenhus (NEXT_PUBLIC_AUTH_ORGANIZATION_ID)

Ange både tenant och organisation för att aktivera favoriter, sök och API-panelen enligt Auth.md.

Aktiva värden skickas vidare till modulerna och används i API-anropen nedan tillsammans med bearer-token.

Enligt Auth.md §6 krävs både tenant och organisation innan portalens API svarar; knappen aktiveras först när båda fälten är ifyllda.

Auth & SSO

Checklistan från Auth.md

Identity

Konsoliderar svaren från /api/identity/checklist så att portalen kan bevaka Auth.md:s krav (headers, scopes, token_use, TTL) direkt i shell-appen. Använd panelen när du QA:ar SSO-flödet eller felsöker varför roadmap-kort blockeras av policy.

Logga in för att hämta checklistan från portalens API.

Roadmap-synk

Auth- och portalchecks

DoD-status

Sektionen speglar checklistan i apps/portal/docs/ROADMAP.md ochdocs/archive/roadmaps/Auth.md. Använd den för att verifiera att portalstuben uppfyller roadmapens krav på tenant-context, scopes och SSO innan moduler kopplas på.

Tenant & organisation

Saknas

Sätt både tenant och organisation för att följa Auth.md §6.

Obligatoriska scopes

Saknas

Lägg till openid, profile, email för att följa Auth.md §10.

Sök-scope

Blockerad

Lägg till portal.search i token innan universalsök aktiveras.

SSO-token

Saknas

Logga in för att få en bearer-token enligt portalens SSO-flöde.

Portalblåkopian

Kärnblock enligt monorepo-dokumentationen

apps/portal/docs/ROADMAP.md

Jämför portalen mot kraven i roadmapen och monorepo-dokumentationen (modulkatalog, snabbnavigation, notifieringar, profil/tenant, universell sök och widgetlager). Status beräknas lokalt från samma signaler som release readiness så att blåkopian är transparent för teamet.

Översikt

0% klar

Portalblåkopian följer apps/portal/docs/ROADMAP.md och mäter modul-katalog, snabbnavigation, notifieringar, profil, sök och widgetlager.

0 klara · 1 att följa upp ·5 blockerade

Modulkatalog & licenser

Blockerad

Alla licensierade moduler synliga med tenant/rollfilter.

Katalogen ska spegla licenser/roller enligt portalens roadmap (apps/portal/docs/ROADMAP.md) med alla licensierade moduler synliga.

Snabbnavigation & favoriter

Blockerad

Minst en favorit eller nyligen öppnad modul per tenant.

Favoriter och recent-moduler behövs för O365-lik snabbväxling enligt portalens roadmap (apps/portal/docs/ROADMAP.md).

Notifieringar & uppgifter

Blockerad

Notifieringar per modul/roll med åtgärdsfokus.

Widgetlagret drivs av notifieringar med severity "action" enligt portalens roadmap (apps/portal/docs/ROADMAP.md).

Profil, tenant & organisation

Blockerad

Aktiva X-Tenant-Id/X-Organization-Id och rollvisning.

Profilpanelen ska visa tenant/organisation och roller enligt portalens roadmap (apps/portal/docs/ROADMAP.md) och kräver aktiva headers.

Universell sök

Komplettera

Aktiverat portal.search-scope i token.

Portal.search-scope krävs för modulär mikrosök över dokument/processer/personer enligt portalens roadmap (apps/portal/docs/ROADMAP.md).

Widgetlager & coverage

Blockerad

Minst 80% widget readiness och inga nedtagna moduler.

Dashboarden kräver 80% hälsa, 70% notifieringar och 60% roadmaptäckning innan paketering.

Roadmap-läge

Leveransstatus mot Portal-specen

Blueprint

Panelen binder ihop apps/portal/docs/ROADMAP.md ochdocs/roadmap/archived/Portal-Auth-Blueprint.md genom att visa vilka delar av shell-appen som redan matchar roadmapens DoD (SSO, launcher, sök/notiser och observability).

Auth + headers

Återstår

Komplettera tenant/scopes

Matchar Auth.md §6 och §10: inloggad session med X-Tenant-Id/X-Organization-Id och obligatoriska scopes.

Launcher-täckning

Återstår

0/8 licensierade moduler

Visar hur många moduler som uppfyller licens- och rollkraven i StenPro-Portal roadmapen för vald tenant.

Sök & notifieringar

Återstår

Scope saknas · 0 åtgärder

Universell sök kräver portal.search-scope och widgetlagret fylls av rollstyrda notifieringar per tenant.

Observability

Återstår

0/1 inom SLO

P95/felrate rapporteras per modul och tenant enligt roadmapens SLO (p95 < 300 ms, felrate < 0.1 %).

Release readiness

DoD-checkar inför portalrelease

Roadmap/DoD

Speglar portalens releasekrav i apps/portal/docs/ROADMAP.md ochdocs/roadmap/archived/Portal-Auth-Blueprint.md. Varje kort motsvarar en checkpoint (SSO, scopes, launcher, widgetlager, observability, roadmap och audit) som måste vara grön innan portalen betraktas som releasklar.

SSO + tenantkontext

Blockerad

Saknar inloggning eller X-headers

Enligt Auth.md ska portalen alltid skicka X-Tenant-Id och X-Organization-Id tillsammans med en giltig token.

Scopes & sökpolicy

Blockerad

Komplettera scopes för DoD

Portalens DoD kräver obligatoriska scopes och det dedikerade portal.search-scopet innan API:er och universalsök öppnas.

Launcher-täckning

Blockerad

0/8 licensierade moduler

Alla licensierade moduler för tenant ska vara åtkomliga med rätt roller enligt roadmapens modulregister.

Widgetlager & notifieringar

Följ upp

Saknar data för widgetlagret

Roadmapens dashboardlager bygger på notifieringar med severity “action”, favoritmoduler samt aktiverad hälsa och roadmap på varje widget. Täcka minst 80% hälsa/readiness, 70% notifieringar och 60% milstolpar innan GA.

Observability & SLO

Blockerad

Saknar hälsodata

P95 < 300 ms och felrate < 0.1 % per modul ska följas upp i portalen enligt roadmapens SLO-krav.

Roadmap/DoD

Blockerad

0% av milstolparna klara

Roadmapens milstolpar måste nå GA-kvalitet innan portalen kan markeras som releasklar.

Auditlogg & deep links

Blockerad

Ingen auditdata än

Varje modulöppning ska loggas med tenant/organisation så att portalens revisionsspår är komplett före release.

Behörighetskontroller

Blockerade moduler

Portal DoD

Portalen visar även moduler som är blockerade av Auth/Portal-reglerna för att tydliggöra varför SSO inte tillåter start. Listan speglar licenser, roller och kravet på X-Tenant-Id.

  • HR

    hr

    Gäst

    Gästsession – logga in för att få giltig token och claims.

    Behörighet: hr.admin, hr.userLicensierade tenants: demo-tenant, enterprise
  • Docs

    docs

    Gäst

    Gästsession – logga in för att få giltig token och claims.

    Behörighet: docs.read, docs.writeLicensierade tenants: demo-tenant, enterprise
  • Axion

    axion

    Gäst

    Gästsession – logga in för att få giltig token och claims.

    Behörighet: axion.viewer, axion.editorLicensierade tenants: enterprise
  • Nexus

    nexus

    Gäst

    Gästsession – logga in för att få giltig token och claims.

    Behörighet: nexus.finance, nexus.bokforingLicensierade tenants: enterprise
  • Fastighet

    fastighet

    Gäst

    Gästsession – logga in för att få giltig token och claims.

    Behörighet: fastighet.read, fastighet.writeLicensierade tenants: demo-tenant
  • ProCure

    procure

    Gäst

    Gästsession – logga in för att få giltig token och claims.

    Behörighet: procure.manager, procure.approverLicensierade tenants: demo-tenant, enterprise
  • Project

    project

    Gäst

    Gästsession – logga in för att få giltig token och claims.

    Behörighet: project.owner, project.memberLicensierade tenants: demo-tenant
  • Sustain

    sustain

    Gäst

    Gästsession – logga in för att få giltig token och claims.

    Behörighet: sustain.editor, sustain.viewerLicensierade tenants: enterprise

Behörighetsutslag

Synlighet styrd av tenant & roller

Access control

Portalens modulöversikt filtrerar katalogen baserat på licens per kund (tenant) och de roller som ligger i JWT:n från SIS. Endast moduler som uppfyller båda kraven visas i launchern.

HRkräver inloggning
Docskräver inloggning
Axionkräver inloggning
Nexuskräver inloggning
Fastighetkräver inloggning
ProCurekräver inloggning
Projectkräver inloggning
Sustainkräver inloggning

Accesslogg

Audit trail för launcher

DoD

Varje modulöppning loggas med tenant, organisation och användare utan känsliga fält. Detta uppfyller audit-kravet i StenPro-Portal.md DoD och speglar Auth.md:s krav på spårbarhet och isolering mellan organisationer inom samma tenant.

Inga loggade händelser för aktuell session. Öppna en modul för att se auditposter.

Tenant scope

Bolag

MVP

Välj aktivt bolag för X-Company-Id. Listan hämtas från Platform API.

Logga in för att se bolag.

Tokenclaims

Roller och scopes från SIS

OIDC claims

Roller

Inga roller i token

Scopes

Inga scopes

Claims följer Auth.md: tokens innehåller tenant_id, organization_id, roller och scopes som gatewayn och modulerna validerar.

API-skydd

Issuer, audience och scopes

Gatewaykrav

Portalens API-routes använder resolveIdentityFromRequest för att avvisa anrop utan matchande audience,issuer, X-Tenant-Id,X-Organization-Id eller scopes, i linje med Auth.md §10 och DoD-kraven om multi-tenant-säkerhet.

Issuer

https://id.stenpro.se/realms/stenpro

Tokens med annan issuer returnerar 401.

Audience

stenpro-platform

API:et kräver samma audience som gatewayn.

Scopes

saknas

Scopes i JWT är obligatoriska innan svar returneras.

Säkerhetsregler

StenPro Identity Platform

Policy
❌ Inga separata login-flöden i moduler. All auth sker centralt via SIS.
✔ Alla API:er kräver Bearer-token och X-Tenant-Id header.
✔ Tokens valideras centralt. Refresh hanteras av @stenpro/auth.