Teknisk dokumentation

Teknisk dokumentation - Mina Sidor

Här samlar vi länkar till de öppna källkodsrepon på GitHub som tillsammans bygger upp helhetslösningen, samt de API:er som lösningen integrerar med.

Webb-appen

Webb-appen ligger i ett repo som innehåller både frontend och backend. Observera att repot innehåller Mina Sidor för både privatpersoner och företagare - det framgår inte av repots README (som bara nämner "Företagscenter - Mina sidor"), men det är en och samma applikation med två lägen (/privat respektive /foretag).

github.com/Sundsvallskommun/web-app-business-center

  • Frontend - Next.js/React (TypeScript) byggd med Sundsvalls kommuns designsystem (komponentbiblioteket @sk-web-gui). Sidorna är organiserade i sektioner för översikt, ärenden, beslut och dokument, fakturor och profil, plus en vy för att välja vilket företag man vill företräda. Stöd för flera språk finns via i18next.
  • Backend - Node.js/Express (TypeScript) som fungerar som BFF (backend-for-frontend). Backend hanterar sessioner, sköter inloggning med SAML 2.0 mot en identitetsleverantör (t ex för BankID) och vidarebefordrar anrop till API:erna via API-gatewayen (WSO2) med klientnyckel och hemlighet. Prisma används för lokal datalagring.

Vilka API:er och versioner som används finns samlat i backend/src/config/api-config.ts i repot - den listan är den auktoritativa källan, och applikationsanvändaren i WSO2 måste prenumerera på de API:er som listas där. Via konfiguration styrs också bland annat kommun-id, vilka tillståndstyper som visas och om beslutsfunktionen ska vara aktiv, vilket gör att lösningen kan anpassas per kommun.

Lösningsarkitektur

Översikt över hur frontend, backend, API-gatewayen och API:erna hänger ihop. Pilarna visar anrop. Bilden är härledd från webb-appens kod, API-listan i api-config.ts och respektive API:s beskrivning.

Lösningsarkitektur för Mina Sidor: frontend anropar backend, som efter SAML-inloggning anropar API:erna CaseData, SupportManagement, CaseStatus, PartyAssets, Invoices, Messaging, ContactSettings, WebMessageCollector och JsonSchema via API-gatewayen, samt master-data-API:erna Citizen, LegalEntity, Employee och MyRepresentatives. Bakom API:erna finns externa system som Open ePlatform, Bolagsverket och ekonomisystem.
Lösningsarkitektur — från frontend via backend och API-gateway till API:er, master-data och externa system.

API:er som lösningen integrerar med

Backend anropar ett antal API:er via API-gatewayen. De flesta finns som öppna repon på Sundsvalls kommuns GitHub. Tabellen nedan beskriver vad varje API gör och länkar till källkoden. Vissa API:er används främst i privatläget (t ex Citizen), andra främst i företagsläget (t ex LegalEntity och MyRepresentatives), men merparten används i båda lägena.

Alla integrationer är inte alltid nödvändiga - vilka som behövs beror på vilka funktioner som ska erbjudas. Till exempel behövs Invoices bara om fakturor ska visas, och WebMessageCollector är bara aktuell om Open ePlatform används som e-tjänsteplattform.

API Beskrivning Källkod
CaseData Registrerar och hanterar myndighetsärenden - grunden för ärendelistan och ärendedetaljerna. api-service-case-data
SupportManagement Registrerar och hanterar supportärenden, t ex felanmälningar, med statusar och kommunikation. api-service-support-management
CaseStatus Levererar aktuell statusinformation om ärenden från underliggande system. api-service-case-status
PartyAssets Håller tillgångar knutna till en person eller organisation, t ex tillstånd som parkeringstillstånd och färdtjänsttillstånd - används för beslut och dokument. api-service-party-assets
Invoices Levererar fakturainformation från kommunens ekonomisystem. api-service-invoices
Messaging Skickar meddelanden via e-post, SMS och fysiska brev, t ex notifieringar och återkoppling. api-service-messaging
ContactSettings Lagrar kontaktinställningar - hur en person eller organisation vill bli kontaktad av kommunen. api-service-contactsettings
WebMessageCollector Samlar in meddelanden från Open ePlatform (e-tjänster). api-service-web-message-collector
JsonSchema Tillhandahåller JSON-Schema och validering av data. api-service-json-schema
SimulatorServer Testverktyg - simulatorserver för att testa olika svar (status, fördröjning och svarsinnehåll). api-service-simulator-server

API:er utan publikt repo

Följande API:er hanterar kommun-specifik master-data eller integrationer mot nationella tjänster och har därför inget publikt repo. För att få dessa på plats krävs en utvecklingsinsats anpassad efter den egna kommunens källsystem.

API Beskrivning
Citizen Medborgarinformation - uppslag och grunddata om privatpersoner.
LegalEntity Information om organisationer och juridiska personer.
Employee Medarbetarinformation, hämtas från Metadatakatalogen.
MyRepresentatives Kontrollerar fullmakter - vilka företag en inloggad person får företräda, via Bolagsverkets tjänst Mina ombud. Grunden för företagsläget.

← Tillbaka till Mina Sidor