Backend for innsending av dokumenter. Brukes av FyllUt
og SendInn. Før søknaden blir sendt inn mellomlagres den sammen med
metadataen i innsending-api,og når søknaden sendes inn blir metadataen for søknaden sendt
til Søknads mottaker. soknadsarkiverer
henter søknadsfilene via REST endepunkt fra innsending-api.
Se Arktitektur Wiki for mer informasjon om hvordan oppsettet
fungerer.
Sett Spring profilen til local og kjør InnsendingApiApplication. En embedded Postgres
database (opentable) spinnes opp som en docker
container og kjører Flyway migrasjonene.
En effektiv måte å jobbe lokalt på er å kjøre opp Postgres og Google Storage lokalt med Docker Compose
(docker compose up -d db cloud-storage), og så kjøre innsending-api i Intellij med Spring profilen
satt til docker og miljøvariabel DATABASE_PORT=5450.
Selve applikasjonen innsending-api kan også kjøres lokalt med Docker Compose:
docker compose up --build
Vær oppmerksom på at dette er ganske tidkrevende ved første kjøring siden den laster ned alle dependencies. Ved kodeoppdatering eller bytting av branch vil det være nødvendig å kjøre den på nytt, men dependencies vil være cachet.
For mocking brukes blant annet mockK, mockwebserver og mock-oauth2-server
Opplastede filer fra brukere blir sjekket for virus med ClamAV via et nais-endepunkt. For å teste virussjekken kan standard EICAR test-filer brukes.
Applikasjonen kan deployes på et gitt tidspunkt ved å legge til /schedule {TIDSPUNKT_SOM_ISO_8601_UTC} i PR-teksten.
En action kjøres hver time for å lete etter slike tekster og deployer applikasjonen hvis tidspunktet er forbi.
(eksempel: /schedule 2023-10-18T01:57 vil bli deployet 18. oktober 2023 kl 04:00 norsk tid). Merk at tidspunktet er
spesifisert i UTC.
Dette kan være nyttig for å deploye applikasjonen utenfor arbeidstid.
Som Intellij settings velg:
- Editor -> Code Style -> Kotlin -> Set from... -> Kotlin Style Guide
- Tools -> Actions on Save
- Reformat code
- Optimize imports
- Rearrange code
- Run code cleanup
 
Aksesslogger finnes i Kibana under Applikasjonslogger.
Det er også satt opp secure logs under Securelogs for å kunne sikkert logge fødselsnummer og andre sensitiv data.
Dette repoet bruker GitHub Copilot til å generere kode.
Spørsmål knyttet til koden eller prosjektet kan stilles som issues her på GitHub.
Interne henvendelser kan sendes via Slack i kanalen #team-fyllut-sendinn