Eventlog
Gemensam händelselogg där kommunens applikationer registrerar och läser händelser kopplade till en resurs, till exempel historiken för ett ärende.
Om API:et
Eventlog är kommunens gemensamma logg för verksamhetshändelser. Applikationer skapar händelser under en logKey – normalt id:t för den resurs händelsen gäller, exempelvis ett ärende – och kan sedan hämta hela händelsehistoriken för resursen via samma nyckel.
Varje händelse har typ, meddelande, ägare, ursprung och tidsstämpel samt fria metadata i nyckel/värde-form, vilket gör loggen användbar för allt från ärendehistorik till felsökning och spårbarhet mellan system.
Händelser kan sökas fram med fritt komponerade filteruttryck (spring-filter-syntax) i kombination med paginering och sortering, både inom en logKey och över hela kommunens händelsebestånd.
Det här gör API:et
- Skapa händelser – Registrerar en händelse under en logKey med typ, meddelande, ägare, ursprung, exekverande användare och fria metadata.
- Händelsehistorik per resurs – Hämtar alla händelser för en logKey, till exempel hela historiken för ett ärende.
- Sökning över alla händelser – Söker händelser i hela kommunens logg med filteruttryck, paginering och sortering, samt uppslag av enskild händelse via id.
- Flexibla filter – Filtrering med spring-filter-uttryck över händelsernas attribut och metadata.
API-dokumentation
API:ets samtliga resurser, parametrar och datamodeller finns beskrivna i en OpenAPI-specifikation som är hämtad ur källkodsförrådet. Den kan utforskas interaktivt i Swagger UI eller laddas ner som YAML. Programvaruförteckningen (SBOM) listar tjänstens samtliga tredjepartskomponenter med version och licens.
Teknisk dokumentation
Nedan beskrivs hur tjänsten är uppbyggd, vilka andra tjänster den anropar och vad som krävs för att driftsätta den. Informationen är härledd ur källkoden och dess konfiguration på GitHub.
Arkitektur
API:et är en mikrotjänst (Java 25, Spring Boot via kommunens gemensamma tjänsteplattform dept44 (8.0.8), byggd med Maven). Konsumenter når tjänsten via kommunens gemensamma API-plattform (WSO2) på api.sundsvall.se – tjänsten anropas aldrig direkt. Lagring: MariaDB med Flyway-migrationer; händelser och deras metadata lagras per kommun med index på logKey och metadata-nycklar.
Teknikstack
- Språk: Java 25
- Ramverk: Spring Boot via kommunens gemensamma tjänsteplattform dept44 (8.0.8), byggd med Maven
- Databas: MariaDB med Flyway-migrationer; händelser och deras metadata lagras per kommun med index på logKey och metadata-nycklar
- Övrigt: spring-filter (turkraft) för dynamiska sökfilter, JPA/Hibernate
Beroenden till andra mikrotjänster
Inga anrop till andra mikrotjänster hittades i källkodens konfiguration.
Programvaruförteckning
Tjänsten bygger på 233 tredjepartskomponenter fördelade på 13 olika licenser. Till skillnad från tabellen ovan, som listar andra mikrotjänster, avses här de programbibliotek som ingår i bygget. Se programvaruförteckningen för hela listan.
Konfiguration och driftsättning
- MariaDB-anslutning via spring.datasource; databasschemat versionshanteras med Flyway
- Flyway är avstängt i standardkonfigurationen och aktiveras per miljö
- Anrop görs per kommun – municipalityId ingår i alla API-vägar
Noterbart ur källkoden
- Tjänsten är helt fristående – integrationspaketet innehåller enbart databasåtkomst, inga anrop till andra mikrotjänster.
- Metadata lagras som nyckel/värde-par i en egen tabell (event_metadata) med index på nyckeln, vilket gör metadatafiltrering effektiv.
- Vid sökning utan logKey söks hela kommunens händelsebestånd; logKey-filtret läggs bara på när nyckeln anges – verifierat i tjänstelagrets filterbygge.
Källkod
Källkoden är öppen och finns hos Sundsvalls kommun på GitHub. I källkodsförrådet finns även instruktioner för att klona, konfigurera och starta tjänsten i egen miljö.