Min-side oversikt over innsendte søknader (Under arbeid)
- Kafka tilgang: Opprett en pull-request mot topic
aapen-soknadskvittering-v1
i min-side-soknadskvittering-topic-iac. - Koble på topicene.
- Send event!
Beskrivelse og flyt
Topic min-side-soknadskvittering-topic-iac er ment for hendelser i søknader som har skjedd i Navs fagsystem.
Hendelsene samles av appen tms-soknadskvittering, slik at det kan
presenteres for bruker en sentral plass.
I skrivende stund støtter systemet følgende eventer:
soknadInnsendt
: Innledende event med informasjon som er umiddelbart tilgjengelig (Tittel, arkivtema, skjemanummer etc).soknadOppdatert
: Event med forsinket informasjon, som for eksempel lenke til pdf av søknaden.soknadFerdigstilt
: Event som melder at søknaden på ett eller annet vis er ferdigbehandlet.vedleggEtterspurt
: Event som inntreffer dersom bruker må ettersende ytterligere informasjon.vedleggMottatt
: Nav har mottatt vedlegg av bruker eller tredjepart.vedleggOppdatert
: Informasjon om vedlegg er oppdatert, for eksempel lenke til pdf.
Kafka, schemas og buildere
Min side varsler bruker ikke lenger Avro for schema-validering og serialisering. Produsenter sender eventer direkte på json-format.
Vi tilbyr et sett med buildere for kotlin-prosjekter. Builderne sørger for at format er riktig og gjør forhåndsvalidering av innhold. Det er anbefalt å bruke søknadsId som kafka-nøkkel for alle eventer, for å opprettholde kronologi per enkelt søknad.
Builderne finnes i følgende bibliotek: no.nav.tms.soknadskvittering:kotlin-builder:0.2.0
Vi publiserer disse artifaktene til githubs package-repository. Husk å legge til én av disse repositories i ditt prosjekt:
https://maven.pkg.github.com/navikt/tms-soknadskvittering
(krever autentisering)https://github-package-registry-mirror.gc.nav.no/cached/maven-release
(NAIS sin mirror. Krever ingen autentisering)
Bruk av buildere og KafkaProducer
Buildere produserer kafka-event på json-format som kan legges rett på kafka. Merk at KafkaProducer må være konfigurert med StringSerializer.
Eksempel:
val producer: KafkaProducer<String, String>
val topic = "min-side.aapen-soknadskvittering-v1"
fun createAndSend(soknadsId: String) {
val event = SoknadEventBuilder.innsendt {
this.soknadsId = soknadsId
//...
}
producer.send(ProducerRecord(topic, soknadsId, event))
}
Beskrivelse av søknad-eventer
Søknad innsendt
Skal sendes når Nav mottar en søknad fra bruker
felt | påkrevd | beskrivelse | restriksjoner |
---|---|---|---|
soknadsId | ja | Id til søknaden | Må være UUID eller ULID |
ident | ja | Fodselsnummer (evt. d-nummer eller tilsvarende) til bruker søknaden tilhører | Må ha 11 siffer |
tittel | ja | Tittel på søknaden | Maks 80 tegn |
temakode | ja | Søknadens arkivtemakode | Maks 3 tegn |
skjemanummer | ja | Søknadens skjemanummer | Maks 40 tegn |
tidspunktMottatt | ja | Tidspunktet Nav først mottok søknad fra bruker | |
fristEttersending | ja | Dato med frist for ettersending av vedlegg | |
linkSoknad | nei | Link til kopi av søknaden der dette er tilgjengelig | Må være gyldig lenke og maks 200 tegn |
linkEttersending | nei | Link til generell ettersendingsløsning der dette er tilgjengelig | Må være gyldig lenke og maks 200 tegn |
journalpostId | nei | Evt journalpostId fra SAF | Maks 20 tegn |
mottatteVedlegg | nei | Liste over vedlegg som ble mottatt sammen med søknaden | VedleggsId må være unikt på tvers av mottatte og etterspurte vedlegg |
etterspurteVedlegg | nei | Liste over vedlegg som mangler i det bruker sendte inn søknaden |
JournalpostId brukes til å lenke til tilhørende journalpost i dokumentarkivet, dersom en mer presis lenke ikke er oppgitt.
Praktisk eksempel med kotlin builder. Her er journalpostId og lenker til søknad og vedlegg er ikke enda klart. Bruker har også meldt at legen sender inn ytterligere informasjon.
SoknadEventBuilder.innsendt {
soknadsId = "<uuid>"
ident = "01234567890"
tittel = "Tittel på en søknad"
temakode = "UKJ"
skjemanummer = "Skjemanummer-123"
fristEttersending = LocalDate.now().plusDays(14)
linkEttersending = "https://ettersending.nav.no"
mottattVedlegg {
vedleggsId = "vedlegg-1"
tittel = "Vedlegg som bruker sendte inn sammen med søknad"
}
etterspurteVedlegg {
vedleggsId = "vedlegg-2"
brukerErAvsender = false
tittel = "Vedlegg som tredjepart sender inn"
beskrivelse = "Bruker har meldt at legen sender dette vedlegget til Nav"
}
tidspunktMottatt = ZonedDateTime.now()
}
Søknad oppdatert
Tillater endringer av bestemte felt etter søknad er innsendt. Dersom et felt er null
blir ingen endring gjort. Dvs at en kan endre felt fra null
, men ikke til null
.
felt | påkrevd | beskrivelse | restriksjoner |
---|---|---|---|
soknadsId | ja | Id til søknaden | Må være UUID eller ULID |
fristEttersending | nei | Dato med frist for ettersending av vedlegg | |
linkSoknad | nei | Link til kopi av søknaden der dette er tilgjengelig | Må være gyldig lenke og maks 200 tegn |
journalpostId | nei | Evt journalpostId fra SAF | Maks 20 tegn |
Praktisk eksempel med kotlin builder. Her blir søknad oppdatert etter pdf er ferdig generert.
SoknadEventBuilder.oppdatert {
soknadsId = "<uuid>"
linkSoknad = "https://soknader.nav.no/soknad.pdf"
}
Søknad ferdigstilt
Melder fra at søknad er ferdigstilt og ikke lenger vises til bruker
felt | påkrevd | beskrivelse | restriksjoner |
---|---|---|---|
soknadsId | ja | Id til søknaden | Må være UUID eller ULID |
fristEttersending | nei | Dato med frist for ettersending av vedlegg | |
linkSoknad | nei | Link til kopi av søknaden der dette er tilgjengelig | Må være gyldig lenke og maks 200 tegn |
journalpostId | nei | Evt journalpostId fra SAF | Maks 20 tegn |
Praktisk eksempel med kotlin builder.
SoknadEventBuilder.ferdigstilt {
soknadsId = "<uuid>"
}
Beskrivelse av vedlegg-eventer
Vedlegg etterspurt bruker
Sendes når Nav krever ytterligere vedlegg for en søknad av bruker
felt | påkrevd | beskrivelse | restriksjoner |
---|---|---|---|
soknadsId | ja | Id til søknaden | Må være UUID eller ULID |
vedleggsId | ja | Id til vedlegg | Må være unik innen én søknad. Kan ikke etterspørre samme vedlegg flere ganger |
brukerErAvsender | ja | Om bruker eller tredjepart skal sende vedlegg | |
tittel | ja | Tittel på etterspurt vedlegg | Maks 255 tegn |
linkEttersending | ja | Spisset link til der bruker skal ettersende vedlegg (der dette er forskjellig fra generell lenke) | Gyldig lenke og maks 200 tegn |
tidspunktEtterspurt | ja | Dato med frist for ettersending av vedlegg |
Praktisk eksempel med kotlin builder.
SoknadEventBuilder.vedleggEtterspurtBruker {
soknadsId = "<uuid>"
vedleggsId = "vedlegg-3"
tittel = "Annet vedlegg som bruker må sende inn"
linkEttersending = "https://link.til.ettersending"
tidspunktEtterspurt = ZonedDateTime.now()
}
Vedlegg etterspurt tredjepart
Sendes når Nav krever ytterligere vedlegg for en søknad av en tredjepart
felt | påkrevd | beskrivelse | restriksjoner |
---|---|---|---|
soknadsId | ja | Id til søknaden | Må være UUID eller ULID |
vedleggsId | ja | Id til vedlegg | Må være unik innen én søknad. Kan ikke etterspørre samme vedlegg flere ganger |
brukerErAvsender | ja | Om bruker eller tredjepart skal sende vedlegg | |
tittel | ja | Tittel på etterspurt vedlegg | Maks 255 tegn |
beskrivelse | nei | Mer utfyllende informasjon om vedlegg tredjepart skal sende inn | Maks 500 tegn |
tidspunktEtterspurt | ja | Dato med frist for ettersending av vedlegg |
Praktisk eksempel med kotlin builder.
SoknadEventBuilder.vedleggEtterspurtTredjepart {
soknadsId = "<uuid>"
vedleggsId = "vedlegg-4"
tittel = "Brukers arbeidsted må sende inn mer informasjon"
tidspunktEtterspurt = ZonedDateTime.now()
}
Vedlegg mottatt
Sendes når Nav mottar vedlegg. Dersom det finnes et etterspurt vedlegg med samme id, blir dette markert som mottatt.
felt | påkrevd | beskrivelse | restriksjoner |
---|---|---|---|
soknadsId | ja | Id til søknaden | Må være UUID eller ULID |
vedleggsId | ja | Id til vedlegg | Må være unik innen én søknad. Kan ikke motta samme vedlegg flere ganger |
tittel | ja | Tittel på mottatt vedlegg | Maks 255 tegn |
linkVedlegg | nei | Link til kopi av vedlegg | Gyldig lenke og maks 200 tegn |
journalpostId | nei | Evt journalpostId fra SAF | Maks 20 tegn |
brukerErAvsender | ja | Om bruker eller tredjepart er kilden til vedlegg | |
tidspunktMottatt | ja | Tidspunkt Nav mottok vedlegg |
Dersom en mer presis lenke ikke er oppgitt, brukes JournalpostId til å lenke til tilhørede journalpost i dokumentarkivet,
Praktiske eksempel med kotlin builder der bruker har sendt inn et vedlegg.
SoknadEventBuilder.vedleggMottatt {
soknadsId = "<uuid>"
vedleggsId = "vedlegg-3"
tittel = "Vedlegg"
linkVedlegg = "https://soknad.nav.no/vedlegg/vedlegg.pdf"
tidspunktMottatt = ZonedDateTime.now()
}
Vedlegg oppdatert
Tillater endringer av bestemte felt etter vedlegg er mottatt. Dersom et felt er null
blir ingen endring gjort. Dvs at en kan endre felt fra null
, men ikke til null
.
I skrivende stund kan en kun oppdatere lenke til vedlegg.
felt | påkrevd | beskrivelse | restriksjoner |
---|---|---|---|
soknadsId | ja | Id til søknaden | Må være UUID eller ULID |
vedleggsId | ja | Id til vedlegg | Må matche et mottatt vedlegg. |
linkVedlegg | nei | Link til kopi av vedlegg | Må være gyldig lenke og maks 200 tegn |
journalpostId | nei | Evt journalpostId fra SAF | Maks 20 tegn |
Dersom en mer presis lenke ikke er oppgitt, brukes JournalpostId til å lenke til tilhørede journalpost i dokumentarkivet,
Praktisk eksempel med kotlin builder. Her blir vedlegg oppdatert etter pdf er ferdig generert.
SoknadEventBuilder.vedleggOppdatert {
soknadsId = "<uuid>"
linkSoknad = "https://soknader.nav.no/soknad.pdf"
}
Søknad ferdigstilt
Melder fra at søknad er ferdigstilt og ikke lenger vises til bruker
felt | påkrevd | beskrivelse | restriksjoner |
---|---|---|---|
soknadsId | ja | Id til søknaden | Må være UUID eller ULID |
fristEttersending | nei | Dato med frist for ettersending av vedlegg | |
linkSoknad | nei | Link til kopi av søknaden der dette er tilgjengelig | Må være gyldig lenke og maks 200 tegn |
journalpostId | nei | Evt journalpostId fra SAF | Maks 20 tegn |
Praktisk eksempel med kotlin builder.
SoknadEventBuilder.ferdigstilt {
soknadsId = "<uuid>"
}
Produsent og buildere
Builderene vil forøke forsøke å utlede hvilket system som produserer eventer basert på miljøvariablene [NAIS_CLUSTER_NAME
, NAIS_NAMESPACE
, NAIS_APP_NAME
].
For apper som kjører på nais vil disse være satt automatisk. Hvis en ønsker å kjøre tester med automatisk henting av produsent,
kan en manuelt legge til disse variablene ved hjelp av BuilderEnvironment.extend(<map med variabler>)
.