Skip to content

Koble til backend

Lumi API godtar widget-svar direkte fra nettleseren via en API-nøkkel — du trenger ingen backend-ruting eller token exchange.

1. Opprett API-nøkler

Bruk CLI-verktøyet for å generere din første sk_-nøkkel (admin):

sh
java -jar lumi-api.jar generate-key --type sk --team mitt-team --app admin

Deretter bruker du sk_-nøkkelen til å opprette en pk_-nøkkel (public) via API-et:

sh
curl -X POST https://lumi.din-bedrift.no/api/v1/admin/api-keys \
  -H "Authorization: Bearer lumi_sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"keyType": "pk", "appName": "min-web-app", "allowedOrigins": ["https://app.din-bedrift.no"]}'

Responsen inneholder den fullstendige pk_-nøkkelen. Lagre den — den vises kun en gang.

2. Konfigurer transport i widgeten

tsx
const transport: LumiSurveyTransport = {
  async submit(submission) {
    await fetch("https://lumi.din-bedrift.no/api/v1/submission", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        "X-Api-Key": "lumi_pk_live_...",
      },
      body: JSON.stringify(submission.transportPayload),
    });
  },
};

3. Miljøvariabler for Lumi API

Sett disse miljøvariablene for Lumi API (Docker Compose / Helm):

VariabelBeskrivelseEksempel
DB_HOSTDatabase-hostdb
DB_PORTDatabase-port5432
DB_DATABASEDatabasenavnlumi
DB_USERNAMEDatabase-brukerlumi
DB_PASSWORDDatabase-passord*****
DB_JDBC_URLFull JDBC URL (valgfritt, overstyrer host/port/database)jdbc:postgresql://db:5432/lumi
AUTH_PROVIDERAuth-modus for dashboardoidc eller local

Se Miljøer for fullstendig oversikt over deployment-oppsett.

Sjekkliste

  • [ ] Lumi API kjører (Docker Compose / Helm)
  • [ ] sk_-nøkkel generert via CLI
  • [ ] pk_-nøkkel opprettet via admin-API
  • [ ] X-Api-Key-header satt i transport.submit
  • [ ] Verifiser innsending i dashboardet

Storage-strategi

Widgeten kan huske at brukeren har lukket surveyen, slik at den ikke dukker opp igjen på en gitt periode (cooldown). Velg strategi basert på flate:

FlateStrategiMerknad
GenerelllocalStorageStandard for de fleste apper
Ingen persisteringnoneSurveyen vises hver gang
tsx
<LumiSurveyDock behavior={{ storageStrategy: "localStorage" }} />

Se Lagring for detaljer om cooldown, dismissal-logikk og alle tilgjengelige strategier.

Videre lesing

Lumi Analytics — bygget på navikt/lumi (MIT-lisens)