Dette prosjektet håndterer meldinger mottatt på ebXML-standarden.
Prosjektet består av fire hovedmoduler for behandling av ebXML-meldinger.
- EbMS Provider
- EbMS Payload behandling
- CPA Repo
I tillegg er det en modul for asynkron trafikk som lytter på epost, og router meldinger til ebMS-Provider for behandling.
- SMTP-Listener
Selve motoren i ebMS-håndteringen. Det er her ebMS-spesifikasjonen er implementert. Validerer ebXML-konvolutten, pakker ut fagmeldingen og sender den til ebMS-payload. REST-endepunkt: https://ebms-provider-fss.intern.dev.nav.no/ebms/sync (post)
Behandling av fagmeldingene som er pakket inn i ebXML. Mottar meldinger fra ebMS-provider, og validerer at innholdet er en korrekt fagmelding og er klar for videreformidling til fagsystem. REST-endepunkt: https://ebms-payload-fss.intern.dev.nav.no/payload (post)
Holder på alle godkjente CPAer. Mottar ebXML-header informasjon fra ebMS-provider, og validerer innholdet mot relevant CPA. REST-baseUrl: https://cpa-repo-fss.intern.dev.nav.no
Alle modulene kjører som selvstendig applikasjoner, og er bygd opp av følgende teknologier
- Kotlin
- Ktor
- Gradle
Avhengigheter og relasjoner til andre repoer i teamet
- https://github.com/navikt/emottak-utils
- https://github.com/navikt/emottak-payload-xsd
- https://github.com/navikt/ebxml-protokoll
- https://github.com/navikt/ebms-sync-router
For å bygge prosjektet brukes gradle.
./gradlew build
Noen av testene bruker testcontainers for å bygge opp et mer komplett kjøretidsmiljø. Disse er avhengig av et fungerende Docker-miljø. For eksempel Docker, Colima på mac, eller Rancher Desktop (win/mac/linux).
Hvis du har en mac som bruker de nyere "M"-chipene (eks. M3) vil du møte på problemer når du spinner opp testcontainers i dette prosjektet. Dette gjelder containerne for Oracle DB (gvenzl/oracle-xe:21-slim-faststart) når man bruker docker desktop. For å unngå dette må man heller bruke Colima. Under er steg for hvordan:
- Installér Colima.
- Sett DOCKER_HOST env-variabel til Colima (mulig dette må reverseres når man bygger andre prosjekter).
export DOCKER_HOST="unix://${HOME}/.colima/default/docker.sock"
- Start Colima med x86_64.
colima start
- Bygg prosjekt/kjør tester.
For å kunne dra inn de riktige dependenciene, må man opprette en github PAT.
Denne trenger rettigheten read:packages og må autoriseres for tilgang til organisasjonen navikt.

Denne PATen må settes som en environment variable, for eksempel globalt i ditt foretrukne shell eller IDE.
export GITHUB_TOKEN=ghp_abcdefghijklmnopqrstuvwxyzABCD012345
Målet for prosjektet er å være i tråd med spesifikasjon fra e-helse.
Les dokumentasjon fra e-helse for deres tolkning av ebXML-standarden.
- ebXML Rammeverk
- Basert på ebXML
- Implementasjon og bruk av ebXML som rammeverk for meldingsutveksling
- Validering av ebXML-meldinger
- Profil for CPP/CPA
Oasis står bak ebXML-standarden, og spesifikasjonen er dokumentert i detalj på følgende sider:
Vi er hovedsakelig tilgjengelige på slack i følgende kanal:
Alle spørsmål relatert til dette prosjektet er velkomne. Alternativt setter vi også pris på pull requests og issues direkte her på Github.