Dette er en Slack-bot som spør et par enkle spørsmål til medlemmene i kanalen en gang uken.
Når helsesjekken stenges, så vil man få sammensatte tall på hvordan teamet har det. Selve svarene er anonyme.
Så bra! Gå til ditt team sin private team kanal (ikke den store, åpne kanalen som alle har tilgang til), også legger du til botten som en integrasjon.
Søk opp integrasjonen, den heter "Helsesjekk":
Det siste du må gjøre er å skrive /helsesjekk i kanalen, da får du tilgang til å gi teamet ditt et navn, samt fortelle botten når du vil at helsesjekken skal postes!
Ta kontakt på #helsesjekk-bot på NAV-IT slacken!
Botten er hostet som en intern app på NAV sin IT-plattform. Selve bot-brukeren er en intern slack-app.
Dersom du ønsker å bruke botten, kan du ta sette opp din egen bot-bruker på din Slack ved å bruke slack-manifest.yml som utgangspunkt.
Når det kommer til selve botten, så kan du gjøre følgende:
- Fork dette Github-repoet
- Fjern filene:
- nais.yml og nais-dev.yaml
- Konfigurer opp en egen CI/CD-løsning for å deploye botten i deploy.yaml
- Konfigurer opp env.ts med miljøvariablene din platform trenger
- Tweak authentication.ts og ms-graph.ts til å fungere med deres env løsning.
- For eksempel libben som er brukt her, @navikt/next-auth-wonderwall har en sterk kobling til NAV sin applikasjonsplatform, og er ikke noe dere kan gjenbruke.
Det er sikkert andre ting som må justeres på også.
Noen av bottens avhengigheter er hostet her på Github. Github tillatter ikke anonyme pulls av pakker fra Github Package Registry.
For å kunne installere avhengighetene må du opprette en Personal Access Token (PAT), som beskrevet her:
Denne PAT-en skal kun ha tilgangen package:read
. Sett denne PAT-en som miljøvariabel på maskinen din.
export NPM_AUTH_TOKEN=<tokenet du nettopp genererte>
i enten .bashrc
eller .zshrc
(avhengig av ditt shell).
Du skal nå kunne kjøre yarn
for å installere avhengighetene uten 401-feil.
- Først så trenger du ditt helt eget slack workspace du har admin tilgang til.
- Deretter kan du opprette en ny bot i Slack, bruk slack-manifest.yml i dette repoet til å kickstarte alle permissions du trenger.
- Opprett en
.env
-fil på rot i repoet, og legg til følgende:NAIS_DATABASE_HELSESJEKK_BOT_HELSESJEKK_BOT_URL="postgresql://postgres:postgres@localhost:5432/postgres" SLACK_SIGNING_SECRET=<secret> SLACK_BOT_TOKEN=<secret> SLACK_APP_TOKEN=<secret>
- Start opp en lokal postgres-database:
yarn dev:db
- Kjør prisma-migreringene mot databasen:
yarn prisma:migrate-dev
- Endelig kan vi starte development-serveren:
yarn dev
- Gjør en curl request mot
/api/internal/is_ready
for å starte slack-integrasjonen.curl -X GET http://localhost:3000/api/internal/is_ready
Utviklingsflyten vil være å interaktere med slack botten gjennom ditt private slack workspace. F.eks. ved å legge botten til som en integrasjon på en testkanal, kjøre /helsesjekk i den kanalen, og fylle ut helsesjekken.
Det er noen verktøy i ./src/commands/commands-handler.ts som kan være nyttige for å teste ut funksjonalitet. F.eks. kan du kjøre /helsesjekk test
for triggre ting som eller ser cron-basert.
Dette er litt enklere å jobbe med.
- Opprett en
.env
-fil på rot i repoet, og legg til følgende:NAIS_DATABASE_HELSESJEKK_BOT_HELSESJEKK_BOT_URL="postgresql://postgres:postgres@localhost:5432/postgres"
- Start opp en lokal postgres-database:
yarn dev:db
- Kjør prisma-migreringene mot databasen:
yarn prisma:migrate-dev
- Seed databasen:
yarn prisma:seed
- Kjør opp nextjs dev server:
yarn dev
Besøk localhost:3000 for å se dashboardet.
Ikke nøl med å ta kontakt på #helsesjekk-bot på NAV-IT slacken om du trenger hjelp!