StenPro Platform
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å.
Snabbåtgärder
Starta via SIS
0 åtgärder • 0/1 moduler inom SLO
Användare
GästGäst
Inte inloggad
Tenant
X-Tenant-IdOrganisation: svenska-stenhus
Tokenstatus
OIDCIngen 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.
Portal coach
AI-assistent kopplad till roadmap & DoD
Analyserar din aktuella session (auth, roadmap, SLO och release readiness) utan externa API-anrop. Assistenten följer Clean Architecture-principen genom att använda samma domänfunktioner som launcher, widgetlager och diagnostics.
Kör en analys för att få prioriterade åtgärder baserat på Auth.md, roadmapen och release readiness.
Admin
Kontrollpanel för portaladmins
Samlar modulaccess, blueprint och sharelink-tillsyn enligt roadmapen så admins snabbt ser vad som blockerar tenantens rollout.
Logga in och välj tenant för att se adminstatus.
Portal-snapshot
Sammanfattning per tenant
Konsoliderar launcher, favoriter, notifieringar, SLO, roadmap och release readiness via/api/platform/overview. Panelen återanvänder samma domänlogik som widgetlagret och readiness-checken för att visa läget för vald tenant utan att duplicera regler.
Logga in via SIS för att läsa portalläget.
Tenant & organisation
Multi-tenant login enligt Auth.md
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
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
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
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
BlockeradAlla 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
BlockeradMinst 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
BlockeradNotifieringar per modul/roll med åtgärdsfokus.
Widgetlagret drivs av notifieringar med severity "action" enligt portalens roadmap (apps/portal/docs/ROADMAP.md).
Profil, tenant & organisation
BlockeradAktiva 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
KompletteraAktiverat 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
BlockeradMinst 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
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årKomplettera tenant/scopes
Matchar Auth.md §6 och §10: inloggad session med X-Tenant-Id/X-Organization-Id och obligatoriska scopes.
Launcher-täckning
Återstår0/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årScope saknas · 0 åtgärder
Universell sök kräver portal.search-scope och widgetlagret fylls av rollstyrda notifieringar per tenant.
Observability
Återstår0/1 inom SLO
P95/felrate rapporteras per modul och tenant enligt roadmapens SLO (p95 < 300 ms, felrate < 0.1 %).
Widgetlager
Roadmap-drivna widgets per modul
Visualiserar widgetlagret i roadmapens nästa fas genom att kombinera notifieringar, hälsodata och nästa milstolpe per modul. Syftet är att QA och produktägare ska se vad som återstår innan widgetarna kan paketeras i portalens dashboard enligt StenPro-Portal.md.
Logga in och välj tenant/organisation för att visa widgetar som följer licenser och roller enligt Auth.md.
Roadmapstatus
Progress mot portalens roadmap
Summerar roadmapen för licensierade moduler och gör det enkelt att följa hur fasning (GA/Preview/MVP) och DoD-milstolpar utvecklas per tenant. Underlaget kommer direkt från /api/platform/roadmapså att portal och roadmap håller sig synkade.
Total progress
0% av milstolparna
0 roadmap-poster följer portalens DoD (auth, launcher, widgetlager, observability).
Fas per modul
StageGA
GA0 moduler
Fullt releasade moduler med SSO och DoD enligt portalens roadmap.
Preview
Preview0 moduler
Preview-moduler bakom feature flag som följer Auth/Portal-blåkopian.
MVP
MVP0 moduler
MVP-läge för shell/launcher – kräver widgetlagret innan GA.
Planerad
Planerad0 moduler
Planerade moduler som fortfarande saknar roadmap-DoD.
Milstolpar
DoDKlart
Klar0 st
Levererade roadmap-milstolpar.
Pågår
Pågår0 st
Aktiva leveranser per modul/tenant.
Planerat
Planerad0 st
Planerade backlogpunkter som blockerar GA.
Monorepo migration
Planstatus per tenant & modul
Panelen återanvänder /api/platform/migration-plan och knyter faser, vågor och readiness-ankare till portalens modulregister. Licens, roller och tenant-/organisation-headers styr vilka moduler som räknas mot Monorepo-planens DoR/DoD.
Logga in för att läsa migrationsplanen för vald tenant.
Release readiness
DoD-checkar inför portalrelease
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
BlockeradSaknar 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
BlockeradKomplettera 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
Blockerad0/8 licensierade moduler
Alla licensierade moduler för tenant ska vara åtkomliga med rätt roller enligt roadmapens modulregister.
Widgetlager & notifieringar
Följ uppSaknar 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
BlockeradSaknar hälsodata
P95 < 300 ms och felrate < 0.1 % per modul ska följas upp i portalen enligt roadmapens SLO-krav.
Roadmap/DoD
Blockerad0% av milstolparna klara
Roadmapens milstolpar måste nå GA-kvalitet innan portalen kan markeras som releasklar.
Auditlogg & deep links
BlockeradIngen auditdata än
Varje modulöppning ska loggas med tenant/organisation så att portalens revisionsspår är komplett före release.
Roadmap per modul
Milstolpar och fas
Hämtar roadmapstatus från /api/platform/roadmap och filtrerar på licenserade moduler för vald tenant. Panelen visar fas (GA/preview/MVP) och nyckelmilstolpar så att portalen kan följas upp mot roadmapen direkt i shell-appen.
Per modul
Fas, milstolpar och backlog
Visar roadmapdata från API:et för licensierade moduler. Varje kort lyfter fas (GA/preview/MVP), levererade och pågående milstolpar samt hur stor backlog/gap som återstår innan nästa fas kan nås.
Inga roadmap-poster tillgängliga för licensierade moduler.
Kvartersplan
Milstolpar per kvartal
Lyfter roadmapens kommande leveranser per kvartal så roadmap-reviewer kan se vilka moduler och milstolpar som planeras för nästa faser i Monorepo-planen.
Inga kommande roadmap-milstolpar har satts för något kvartal ännu.
Roadmap-gap
Blockers mot GA/preview
Identifierar moduler som saknar färdiga milstolpar enligt roadmapen så att portalen kan följa upp DoD och nästa steg för respektive tenant.
Inga öppna milstolpar att flagga – roadmapen är helt grön för denna tenant.
Roadmap-backlog
Leveranser som blockerar fasning
Binder ihop roadmapen och portalens DoD genom att lista återstående milstolpar per modul. Panelen hjälper teamen att se vad som krävs innan modulen kan flyttas till nästa fas i apps/portal/docs/ROADMAP.md.
Roadmapen är grön – inga öppna backlogpunkter för denna tenant.
Nästa leveranser
Roadmap-punkter som återstår
Filtrerar fram planerade och pågående milstolpar för licensierade moduler så utveckling och QA kan prioritera nästa steg direkt i portalen.
Inga kommande milstolpar hittades för vald tenant.
Kvartalsplan
Roadmap per kvartal
Samlar kommande milstolpar per kvartal så att programledningen ser hur roadmapen ligger mot Auth/Portal-blåkopian och kan fördela kapacitet per tenant.
Inga tidsatta milstolpar hittades för kommande kvartal.
Inga roadmap-poster tillgängliga för vald session.
Snabbnavigering
App Launcher enligt O365
Favoriter och senast öppnade moduler använder SSO-flödet och filtreras på licens samt roller i JWT:n. Listorna byggs per tenant och uppdateras med auditloggen så att senaste launcher-klick syns direkt.
Favoriter
Inga favoriter för vald tenant.
Recent
Inga nyligen öppnade moduler.
Adminväxling
Inga adminroller hittades för vald session.
Modulöversikt
Launcher
Behörighetskontroller
Blockerade moduler
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.
- Gäst
HR
hr
Gästsession – logga in för att få giltig token och claims.
Behörighet: hr.admin, hr.userLicensierade tenants: demo-tenant, enterprise - Gäst
Docs
docs
Gästsession – logga in för att få giltig token och claims.
Behörighet: docs.read, docs.writeLicensierade tenants: demo-tenant, enterprise - Gäst
Axion
axion
Gästsession – logga in för att få giltig token och claims.
Behörighet: axion.viewer, axion.editorLicensierade tenants: enterprise - Gäst
Nexus
nexus
Gästsession – logga in för att få giltig token och claims.
Behörighet: nexus.finance, nexus.bokforingLicensierade tenants: enterprise - Gäst
Fastighet
fastighet
Gästsession – logga in för att få giltig token och claims.
Behörighet: fastighet.read, fastighet.writeLicensierade tenants: demo-tenant - Gäst
ProCure
procure
Gästsession – logga in för att få giltig token och claims.
Behörighet: procure.manager, procure.approverLicensierade tenants: demo-tenant, enterprise - Gäst
Project
project
Gästsession – logga in för att få giltig token och claims.
Behörighet: project.owner, project.memberLicensierade tenants: demo-tenant - Gäst
Sustain
sustain
Gästsession – logga in för att få giltig token och claims.
Behörighet: sustain.editor, sustain.viewerLicensierade tenants: enterprise
Universell sök
Sök över alla moduler
Sökningen kör /api/search med bearer-token ochX-Tenant-Id/X-Organization-Idenligt Auth.md. Resultaten filtreras på licens och roller i samma steg som launchern och kräver scopetportal.search innan data returneras. Roadmap-fas och nästa målpunkter exponeras per träff och summeras per modul och typ så att roadmapspåret syns även i sökupplevelsen.
Behörighetsutslag
Synlighet styrd av tenant & roller
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.
Profil & inställningar
Min profil, roller och preferenser
Profilpanelen hämtar identitet och behörigheter från portalens API och loggas för spårbarhet enligt Auth.md.
Logga in för att se din profil.
Logga in för att visa profilen.
Notifieringar
Notifieringscenter med modul-inboxar
Portalen hämtar notifieringar över alla moduler via `/notifications` och filtrerar dem på tenant, licenser och roller enligt Auth.md. Klick för att öppna modulen med SSO.
Inga notifieringar tillgängliga för vald tenant eller roll. Säkerställ inloggning och behörighet i SIS.
Portalens API-anrop
Integrerat enligt Auth & Portal-spec
- 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
- 1. Portal loggar in via SIS och får tokens.
- 2. Modulöversikten filtreras på licens och roller.
- 3. Klick på modul → redirect till
/open/<modul>med token. - 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
Observability & SLO
Modulhälsa per tenant
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
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.
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.
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
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 och välj tenant för att hämta verifierade API-svar från portalens backend.
Accesslogg
Audit trail för launcher
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
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
Roller
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
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
X-Tenant-Id header.@stenpro/auth.