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.

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.

Portalens API-anrop

Integrerat enligt Auth & Portal-spec

OIDC
  • GET /api/platform/overviewPortal-snapshot med launcher, readiness, roadmap och widgetlager.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/platform/roadmapRoadmapstatus och milstolpar filtrerade på tenant och roller.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/platform/readinessRelease readiness-checklistor enligt portalens DoD.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/platform/widgetsWidgetlager med health, notifieringar, roadmapnästa steg och auditspårning.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/platform/dashboardDashboard-layouts per användare (widgetbaserade dashboards).

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/identity/headersValiderar X-Tenant-Id/X-Organization-Id mot token-claims.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/identity/profileHämtar aktuell användarprofil och organisationsclaim.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/identity/permissionsReturnerar roller och scopes som gatewayn applicerar.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/identity/sessionValiderar token_use, exp och nbf enligt Auth.md §4 och §10.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/platform/modulesGer modulregister för tenanten enligt portal-specen.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/platform/healthVisar modulhälsa och SLO-status per licensierad tenant.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/platform/migration-planMonorepo-planens faser, vågor och readiness-anker per tenant.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/platform/favoritesFavoritmoduler filtrerade på tenant och användare.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/platform/licensesLicensöversikt med bundles, användare och modulroller.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/notificationsGlobala notifieringar och modulära inbox-summeringar.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/notifications/read-stateHämtar användarens lässtatus per tenant.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • POST /api/notifications/read-stateMarkerar notifieringar som lästa/olästa enligt Auth/Portal.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/search?q=onboardingUniversell sökning över moduler med summering per modul och typ.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • POST /api/assistantAI-assistent som summerar auth, roadmap, readiness och SLO samt returnerar historik.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • GET /api/audit/accessReturnerar accesslogg med tenant/organisation för DoD.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

  • POST /api/audit/accessLoggar launcher-öppningar med token + X-Tenant-Id.

    Authorization

    saknas

    X-Tenant-Id

    saknas

    X-Organization-Id

    svenska-stenhus

    Accept

    application/json

Alla anrop använder tokens från @stenpro/auth och följer kraven i Auth.md.

SSO-flöde

Portal → Modul redirect

OIDC redirect
  1. 1. Portal loggar in via SIS och får tokens.
  2. 2. Modulöversikten filtreras på licens och roller.
  3. 3. Klick på modul → redirect till /open/<modul> med token.
  4. 4. Modulen validerar token mot SIS och läser X-Tenant-Id.

Denna stub gör redirect-simulering men delar inte tokens mellan moduler.

Auth-checklista

DoD-kontroller från Auth.md

Token & headers

Logga in via SIS för att verifiera auth mot portalens API.

Observability & SLO

Modulhälsa per tenant

SLO

P95- och felrate-statistik följer roadmapens DoD (p95 < 300 ms, felrate < 0.1 %). Panelen filtrerar på licensierad tenant och giltig token så att launcher, widgetlager och observability hänger ihop.

Logga in och välj en licensierad tenant för att se SLO-status per modul.

Roadmap: Shell & widgets

SSO-preview och widgetlager

Portal roadmap

Sektionen binder ihop SSO-flödet och det widgetbaserade dashboardlagret som beskrivs i StenPro-Portal roadmapen. SSO-pr eviewen visar hur portalen postar bearer-token + tenant/organisation till modulens /sso/re direct. Widgetlistan demonstrerar hur notifieringar, favoriter och auditloggade starter paketeras som personliga kort.

SSO redirect-preview

Välj en licensierad modul för att se hur redirecten byggs.

OIDC + headers

Logga in och välj tenant för att generera en redirect enligt Auth.md §6.

Widgetbaserad startsida

Följer roadmapens dashboard-lager med personliga kort.

Dashboard
  • Mina uppgifter

    0 att göra

    Renderar notifieringar med severity “action” och följer tenant/licenser enligt roadmapens notifieringscenter.

  • Snabbstart

    0 favoriter

    Launcher-favoriter som även styr snabbnavigeringen i widget-laget.

  • Tenant & organisation

    Saknas

    Widgeten speglar Auth.md §6 och markerar portalen som blockerad tills båda headers finns.

  • Senaste moduler

    0 senaste

    Auditloggade starter som används för “Recent” i roadmapens dashboard-upplevelse.

  • SLO-status

    0/1 inom SLO

    Portalens SLO-panel speglar roadmapens p95- och felrategränser per modul och licensierad tenant.

Underlaget kommer direkt från favoritlistan, notifieringsfeeden och auditloggen vilket uppfyller roadmapens krav p å rollstyrda widgets.

Verifierad auth

API-svar enligt Auth.md

Gateway-krav

Panelen hämtar profil, behörigheter och modulstatus direkt från portalens API-routes. Varje request kräver bearer-token, X-Tenant-Id och X-Organization-Id innan svar returneras enligt StenPro-Portal.md och Auth.md.

Logga in via SIS för att verifiera auth mot portalens API.

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.