Teknisk dokumentation

Teknisk dokumentation - Notifieraren

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

Webb-appen

Webb-appen ligger i ett repo med kodnamnet Nidhogg. Observera att repots README bara beskriver den tekniska uppsättningen - att applikationen är Notifieraren framgår inte av repot. Själva applikationen ligger i katalogen client/.

github.com/Sundsvallskommun/web-app-nidhogg

  • Applikation - Next.js/React (TypeScript) byggd med Sundsvalls kommuns designsystem (komponentbiblioteket @sk-web-gui) och Tailwind CSS. Gränssnittet innehåller vyer för att skapa utskick, hantera egna mottagargrupper och administration, med flerspråksstöd via next-intl. Inloggning och behörighetskontroll sker i appens middleware med JWT.
  • Egen databas - Till skillnad från flera andra tjänster på kommuna.se har lösningen en egen fristående databas (MySQL, via Prisma). Där lagras medarbetare med mobilnummer och organisationstillhörighet (speglade från AD-exporten), egna mottagargrupper samt skickade meddelanden med leveransstatus per mottagare. Det är en förutsättning för att lösningen ska fungera även när kommunens interna system ligger nere.
  • Drift - Hela lösningen paketeras med Docker och driftas i molnet, fristående från kommunens interna miljö. Tester körs med Cypress.

Lösningsarkitektur

Översikt över hur webb-appen, databasen och de underliggande tjänsterna hänger ihop. Pilarna visar anrop och dataflöden. Bilden är härledd från webb-appens kod och konfiguration samt respektive tjänsts beskrivning.

Lösningsarkitektur för Notifieraren: webb-appen med egen MySQL-databas anropar tjänsterna Notifier och WebappUsers. Notifier skickar utskick via SmsSender till SMS-gatewayerna Telia och LinkMobility, samt via TeamsSender till Microsoft Teams. Medarbetardata hämtas via en daglig export från kommunens AD. Hela lösningen driftas i molnet, fristående från kommunens interna system.
Lösningsarkitektur — från webb-app via utskickstjänster till SMS-gateway, med egen databas för molndrift.

Tjänster som lösningen integrerar med

Webb-appen anropar två underliggande tjänster: Notifier, som hanterar själva utskicken, och WebappUsers, som hanterar användarkonton och inloggning. Notifier skickar i sin tur meddelandena vidare via utskickstjänsterna SmsSender och TeamsSender. Samtliga finns som öppna repon på Sundsvalls kommuns GitHub och är byggda i Java/Spring Boot.

Tjänst Typ Beskrivning Källkod
Notifier Kärntjänst Navet för utskicken - tar emot notifieringar och skickar dem till medarbetare, enskilt eller via grupper, genom underliggande utskickstjänster. api-service-notifier
WebappUsers Kärntjänst Hanterar webb-appens användarkonton och utfärdar JWT vid inloggning. api-service-webapp-users
SmsSender Stödtjänst Skickar SMS via externa SMS-gatewayer. Stödjer Telia och LinkMobility, som kan aktiveras och prioriteras via konfiguration - eget avtal med leverantören krävs. api-service-sms-sender
TeamsSender Stödtjänst Skickar meddelanden via Microsoft Teams. api-service-teams-sender

Kommun-specifika delar utan publikt repo

Följande delar är beroende av den egna kommunens miljö och har därför inget publikt repo. För att få dessa på plats krävs en utvecklingsinsats anpassad efter kommunens källsystem.

Del Beskrivning
AD-export Daglig export av medarbetare, mobilnummer och organisationstillhörighet från kommunens katalogtjänst (AD) till lösningens databas. Håller mottagardata aktuell utan manuell hantering.

← Tillbaka till Notifieraren