Skip to content

navikt/mulighetsrommet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mulighetsrommet 🎯

Introduksjon

Mulighetsrommet er en applikasjonsportfølje som skal hjelpe brukere og veiledere til å få en helhetlig oversikt over alle arbeidsmarkedstiltak NAV kan tilby.

Oppsett

Dette prosjektet er strukturert som et monorepo, der både backend- og frontend-kode er organisert i samme kodebase. Enn så lenge benytter vi følgende tooling for å kjøre tasks for henholdsvis backend og frontend:

Token for pnpm install av private pakker

Noen pakker under @navikt hentes fra Github sitt NPM-repository. For at dette skal fungere må du først autentisere mot Github:

pnpm login --registry https://npm.pkg.github.com

Brukernavn er Github-brukernavnet ditt. Passordet er et Personal Access Token med read:packages-scope. Tokenet må autentiseres med SSO mot navikt-organisasjonen.

Github token er utdatert.

  1. Gå til Personal Access Token på Github
  2. Trykk Tokens (classic)
  3. Trykk Generate new token --> Generate new token (classic)
  4. Skriv noe som NAV IT under Note
  5. Velg hvor lenge du vil at det skal vare under Expiration
  6. Under Select scope velg repo og read:packages
  7. Trykk Generate token
  8. Kopier ghp_x... tokenet og putt det i .npmrc filen på maskinen din
  9. Trykk Configure SSO
  10. Trykk Authorizenavikt
  11. Ferdig!

Tooling via asdf

Om ønskelig så kan asdf benyttes til å installere verktøyene som trengs for å kjøre dette prosjektet lokalt. Dette prosjektet inkluderer en asdf .tool-versions-fil som spesifiserer versjoner for runtime-avhengigheter som matcher det vi kjører på Github Actions (CI) og på NAIS.

For å benytte asdf så må du installere programmet og deretter plugins for hver toolchain eller verktøy du ønsker å administrere med asdf (du kan utelate plugins etter eget ønske hvis du ønsker å administrere dette manuelt i stedet):

asdf plugin-add java
asdf plugin-add gradle https://github.com/rfrancis/asdf-gradle.git
asdf plugin-add nodejs
asdf plugin-add kubectl https://github.com/asdf-community/asdf-kubectl.git

Når plugins er installert så kan du kjøre kommandoen asdf install i rot av prosjektet, samt for hver gang .tools-versions har endret seg.


Docker

For å gjøre utvikling på lokal maskin enklere benytter vi Docker og Docker Compose til å kjøre databaser og mocks av tredjeparts tjenester. Sørg for å ha Docker installert, se instruksjoner for Mac eller Ubuntu.

Når installasjon er fullført kan du bl.a. benytte følgende kommandoer til å administrere containere definert i docker-compose.yaml:

# Starter alle containere som trengs for lokal utvikling
docker compose --profile dev up -d

# Stopper alle containere
docker compose -p mulighetsrommet down

# Stopper alle containere og sletter samtidig tilhørende volumer
docker compose -p mulighetsrommet down -v

Git hooks

For å gjøre noen rutineoppgaver enklere er det mulig å installere følgende git hooks på eget initiativ (ikke en komplett liste, blir oppdatert etter hvert som behovet oppstår):

  • Installasjon av pre-commit hook for å kjøre ktlintFormat på endrede filer: Kjør kommando ./gradlew addKtlintFormatGitPreCommitHook
  • Installasjon av pre-commit hook for å kjøre ktlintCheck på endrede filer: Kjør kommando ./gradlew addKtlintCheckGitPreCommitHook

Utvikling

Kodeformatering og linting i frontend

Vi bruker prettier for kodeformatering og eslint for linting. Du kan kjøre pnpm run fix-lint for å formatere koden i forhold til Prettier-konfigurasjon, og samtidig fikse lintefeil.

Mocks via Wiremock

Vi har en rekke mocks for tredjeparts tjenester som blir administrert via Wiremock i docker-compose.yaml og som blir benyttet når du kjører tjenestene i dette prosjektet på lokal maskin. Se konfigurasjonen der for hvor mockene er definert hvis du ønsker å utvide med flere responser.

Følgende endepunkter kan være kjekke for benytte under testing:

  • Get all mocks: curl -XGET http://localhost:8090/__admin/mappings
  • Reload mocks: curl -I -XPOST http://localhost:8090/__admin/mappings/reset

Overvåking av løsninger

Det finnes noen tilgjengelige dashboards, men nytten med disse kan variere:

Moduler

mulighetsrommet-veileder-flate

Kildekode https://github.com/navikt/mulighetsrommet/tree/main/frontend/mulighetsrommet-veileder-flate
README https://github.com/navikt/mulighetsrommet/blob/main/frontend/mulighetsrommet-veileder-flate/README.md
Url (dev-miljø) https://veilarbpersonflate.intern.dev.nav.no/12118323058

@mr/api-client

Klient til frontend for å snakke med backend. Auto-generert med OpenAPI via openapi.yaml i mulighetsrommet-api.

Kildekode https://github.com/navikt/mulighetsrommet/tree/main/frontend/api-client
README https://github.com/navikt/mulighetsrommet/blob/main/frontend/api-client/README.md
openapi.yaml https://github.com/navikt/mulighetsrommet/tree/main/mulighetsrommet-api/src/main/resources/web/openapi.yaml

mulighetsrommet-veileder-cms

Sanity Studio til forvaltning av informasjon for veiledere.

Kildekode https://github.com/navikt/mulighetsrommet/tree/main/frontend/mulighetsrommet-cms
README https://github.com/navikt/mulighetsrommet/blob/main/frontend/mulighetsrommet-cms/README.md
Url (test-datasett) https://mulighetsrommet-sanity-studio.intern.nav.no/test/desk
Url (prod-datasett) https://mulighetsrommet-sanity-studio.intern.nav.no/production/desk

mulighetsrommet-api

Kildekode https://github.com/navikt/mulighetsrommet/tree/main/mulighetsrommet-api
README https://github.com/navikt/mulighetsrommet/blob/main/mulighetsrommet-api/README.md
Url (dev-miljø) https://mulighetsrommet-api.intern.dev.nav.no/
API (internt) https://mulighetsrommet-api.intern.dev.nav.no/swagger-ui/internal
API (eksternt) https://mulighetsrommet-api.intern.dev.nav.no/swagger-ui/external

mulighetsrommet-kafka-manager

Applikasjon som gir oversikt over kafka-topics relevante for dette prosjektet.

README https://github.com/navikt/kafka-manager
Kildekode https://github.com/navikt/mulighetsrommet/tree/main/iac/kafka-manager
Url (dev-miljø) https://mulighetsrommet-kafka-manager.intern.dev.nav.no
Url (prod-miljø https://mulighetsrommet-kafka-manager.intern.nav.no

mr-admin-flate

Administrasjonsflate for tiltak- og fagansvarlige i NAV som jobber med tiltakstyper og tiltaksgjennomføringer.

README https://github.com/navikt/mulighetsrommet/blob/main/frontend/mr-admin-flate/README.md
Url (demo) https://tiltaksadministrasjon.ekstern.dev.nav.no
Url (dev-miljø) https://tiltaksadministrasjon.intern.dev.nav.no
Url (prod-miljø) https://tiltaksadministrasjon.intern.nav.no

arrangør-flate

Flate på nav.no for arrangører som skal be om refusjon

README https://github.com/navikt/mulighetsrommet/blob/main/frontend/arrangor-flate/README.md
Url (dev-miljø) https://arrangor-refusjon.intern.dev.nav.no/
Url (prod-miljø) <TBD - Ikke prodsatt per 06.09.2024>

Overvåking av automatiske jobber

Vi har satt opp to Slack-bots som kan gi beskjed til oss på Slack i kanalen #team-valp-monitoring dersom det oppstår feil under kjøring av de automatiske jobbene.

Botene finner man her:

Rutiner i teamet

Synkronisere kontaktpersoner til admin-flate

For å legge til eller fjerne kontaktpersoner i admin-flate så går du til https://portal.azure.com/#view/Microsoft_AAD_IAM/GroupDetailsMenuBlade/~/Members/groupId/0fdd133a-f47f-4b95-9a5e-f3a5ec87a472/menuId/ og logger inn med din nav-bruker.

Velg så Members -> Add members -> Søk opp personen med navn -> Huk av og velg Select. Synkronisering av kontaktpersoner kjører en gang i timen, så du må potensielt vente en time før kontaktpersonen blir tilgjengelig i admin-flate.

TIPS: Du kan gå til MAAM og velge mr-api (i toppmenyen) og så kjøre task'en sync-navansatte. Da skal kontaktpersoner blir synkronisert i løpet av ett minutt.


MERK: Hvis du mangler tilgang til AD så kan du selv be om tilgang ved å følge beskrivelse her: https://github.com/navikt/azure-ad-self-service/blob/main/DirectoryRead/README.md

Datadeling på Datamarkedsplassen

Vi har to datasett tilgjengelig på datamarkedsplassen. Det er data om tiltakstypene vi skal migrere og data om tiltaksgjennomføringer. Datasettene finner du her: https://data.intern.nav.no/dataproduct/5755b188-6670-41a2-8bbc-74fba810bd9e/Data%20om%20arbeidsmarkedstiltak%20fra%20Team%20Valp

Henvendelser

Spørsmål knyttet til koden eller prosjektet kan stilles via issues her på GitHub.

For NAV-ansatte

Interne henvendelser kan sendes via Slack i kanalen #team-valp