Dataflytrapport

Denne rapporten viser den faktiske dataflyten i Hubra: hvilke data som forlater systemet, til hvilken leverandør og hvilket endepunkt, hvorfor det skjer, hvilke felter som maskeres eller pseudonymiseres, og hva som aldri sendes ut. Rapporten beskriver teknisk oppførsel. Leverandørenes juridiske status er merket REQUIRES_VERIFICATION der den ikke kan verifiseres av kode.

Utgående KI-trafikk

Lovable – Lovable AI Gateway

POST https://ai.gateway.lovable.dev/v1/chat/completions

Formål:
Formidler KI-forespørsler videre til modell-leverandør
Datakategorier:
Fritekst ansatt eksplisitt sender til en KI-funksjon; Opplastet dokument/bilde ved dokumentlesing
Felter som sendes:
Minimert tekstgrunnlag (systemprompt + brukertekst); Modellnavn og funksjonsnavn
Felter som maskeres:
Fødselsnummer; Telefonnummer; E-postadresse; Adresse; Kontonummer
Felter som pseudonymiseres:
Beboer- og ansattnavn (erstattes før sending, gjenopprettes lokalt)
Utløses av:
Eksplisitt KI-handling fra ansatt. Ingen bakgrunnssending.
Sensitive data tillatt:
Nei – blokkert av KI-gaten
Behandlingsregion:
REQUIRES_VERIFICATION
Lagringssted:
REQUIRES_VERIFICATION
Lagringstid:
REQUIRES_VERIFICATION
Bruk til modelltrening:
REQUIRES_VERIFICATION
Databehandleravtale:
REQUIRES_VERIFICATION
Underdatabehandlere:
REQUIRES_VERIFICATION
Overføring ut av EØS:
REQUIRES_VERIFICATION
Overføringsgrunnlag:
REQUIRES_VERIFICATION
Kryptering:
TLS i transitt (teknisk verifisert)
Sletting:
REQUIRES_VERIFICATION
Dokumentasjonsstatus:
REQUIRES_VERIFICATION
Sist verifisert:
— av —
Kodereferanse:
src/lib/ai.server.ts via src/lib/ai-policy.ts og src/lib/ai-sanitize.ts

Google – Gemini (språkmodell, nås via Lovable AI Gateway)

Nås indirekte via https://ai.gateway.lovable.dev/v1/chat/completions

Formål:
Oppsummering, strukturering, språkvask og forslag til utkast
Datakategorier:
Minimert og maskert tekstgrunnlag videreformidlet av gateway
Felter som sendes:
Samme minimerte tekst som sendes til gateway
Felter som maskeres:
Fødselsnummer; Telefonnummer; E-postadresse; Adresse; Kontonummer
Felter som pseudonymiseres:
Beboer- og ansattnavn
Utløses av:
Videreformidling av ansattes KI-handling
Sensitive data tillatt:
Nei – blokkert av KI-gaten
Behandlingsregion:
REQUIRES_VERIFICATION
Lagringssted:
REQUIRES_VERIFICATION
Lagringstid:
REQUIRES_VERIFICATION
Bruk til modelltrening:
REQUIRES_VERIFICATION
Databehandleravtale:
REQUIRES_VERIFICATION
Underdatabehandlere:
REQUIRES_VERIFICATION
Overføring ut av EØS:
REQUIRES_VERIFICATION
Overføringsgrunnlag:
REQUIRES_VERIFICATION
Kryptering:
TLS i transitt (teknisk verifisert)
Sletting:
REQUIRES_VERIFICATION
Dokumentasjonsstatus:
REQUIRES_VERIFICATION
Sist verifisert:
— av —
Kodereferanse:
src/lib/ai.server.ts (modellvalg)

ElevenLabs – Text-to-Speech

POST https://api.elevenlabs.io/v1/text-to-speech/{voice_id}

Formål:
Opplesning av tekst ansatt har valgt (kjøremodus, morgenbrief, dokumentlesing)
Datakategorier:
Tekst valgt for opplesning; Stemme-ID og språkkode «no»
Felter som sendes:
Minimert tekst; voice_id; language_code
Felter som maskeres:
Fødselsnummer; Telefonnummer; E-postadresse; Adresse
Felter som pseudonymiseres:
—
Utløses av:
Ansatt starter opplesning
Sensitive data tillatt:
Nei – blokkert av KI-gaten
Behandlingsregion:
REQUIRES_VERIFICATION
Lagringssted:
REQUIRES_VERIFICATION
Lagringstid:
REQUIRES_VERIFICATION
Bruk til modelltrening:
REQUIRES_VERIFICATION
Databehandleravtale:
REQUIRES_VERIFICATION
Underdatabehandlere:
REQUIRES_VERIFICATION
Overføring ut av EØS:
REQUIRES_VERIFICATION
Overføringsgrunnlag:
REQUIRES_VERIFICATION
Kryptering:
TLS i transitt (teknisk verifisert)
Sletting:
REQUIRES_VERIFICATION
Dokumentasjonsstatus:
REQUIRES_VERIFICATION
Sist verifisert:
— av —
Kodereferanse:
src/lib/tts.functions.ts

ElevenLabs – Speech-to-Text

POST https://api.elevenlabs.io/v1/speech-to-text

Formål:
Diktering av registreringer og avviksutkast
Datakategorier:
Lydopptak ansatt selv har startet
Felter som sendes:
Lydfil; modellnavn
Felter som maskeres:
Ingen maskering er teknisk mulig i lyd før transkribering
Felter som pseudonymiseres:
—
Utløses av:
Ansatt starter diktering. Passiv lytting sender ikke lyd.
Sensitive data tillatt:
Nei – blokkert av KI-gaten
Behandlingsregion:
REQUIRES_VERIFICATION
Lagringssted:
REQUIRES_VERIFICATION
Lagringstid:
REQUIRES_VERIFICATION
Bruk til modelltrening:
REQUIRES_VERIFICATION
Databehandleravtale:
REQUIRES_VERIFICATION
Underdatabehandlere:
REQUIRES_VERIFICATION
Overføring ut av EØS:
REQUIRES_VERIFICATION
Overføringsgrunnlag:
REQUIRES_VERIFICATION
Kryptering:
TLS i transitt (teknisk verifisert)
Sletting:
Hubra lagrer ikke lyden etter transkribering. Leverandørside: REQUIRES_VERIFICATION
Dokumentasjonsstatus:
REQUIRES_VERIFICATION
Sist verifisert:
— av —
Kodereferanse:
src/lib/stt.functions.ts

Driftsplattform og innlogging

Lovable Cloud – Administrert database, autentisering og fillagring (Supabase-basert)

HTTPS mot prosjektets database-, auth- og lagrings-API

Formål:
Hubras egen driftsplattform: database, innlogging, roller og filer
Datakategorier:
Kontaktopplysninger om ansatte; Beboeropplysninger, inkl. helseopplysninger; Faglig dokumentasjon og avvik; Meldinger og vedlegg; Revisjonslogg og KI-metadata
Felter som sendes:
All applikasjonsdata som lagres i Hubra
Felter som maskeres:
Fødselsnummer lagres kun maskert
Felter som pseudonymiseres:
—
Utløses av:
All normal bruk av Hubra
Sensitive data tillatt:
Nei – blokkert av KI-gaten
Behandlingsregion:
REQUIRES_VERIFICATION
Lagringssted:
REQUIRES_VERIFICATION
Lagringstid:
Konfigurerbar per virksomhet (retention_policy); backup styres av plattformen
Bruk til modelltrening:
REQUIRES_VERIFICATION
Databehandleravtale:
REQUIRES_VERIFICATION
Underdatabehandlere:
REQUIRES_VERIFICATION
Overføring ut av EØS:
REQUIRES_VERIFICATION
Overføringsgrunnlag:
REQUIRES_VERIFICATION
Kryptering:
TLS i transitt (teknisk verifisert). Lagringskryptering: REQUIRES_VERIFICATION
Sletting:
Sletting i aktiv database er implementert og loggført. Sletting i backup: REQUIRES_VERIFICATION
Dokumentasjonsstatus:
REQUIRES_VERIFICATION
Sist verifisert:
— av —
Kodereferanse:
src/integrations/supabase/*

Criipto / Idura – BankID (OIDC-broker)

OIDC authorize/token/jwks mot brokerens domene

Formål:
Sterk autentisering ved innlogging med BankID
Datakategorier:
Innloggingsforespørsel (state, nonce, redirect); Identitetstoken med navn og nasjonalt ID-nummer
Felter som sendes:
client_id; state (signert); nonce; redirect_uri; autorisasjonskode
Felter som maskeres:
Fødselsnummer lagres kun maskert i Hubra
Felter som pseudonymiseres:
—
Utløses av:
Ansatt velger BankID-innlogging
Sensitive data tillatt:
Nei – blokkert av KI-gaten
Behandlingsregion:
REQUIRES_VERIFICATION
Lagringssted:
REQUIRES_VERIFICATION
Lagringstid:
REQUIRES_VERIFICATION
Bruk til modelltrening:
Ikke relevant (ikke KI-tjeneste)
Databehandleravtale:
REQUIRES_VERIFICATION
Underdatabehandlere:
REQUIRES_VERIFICATION
Overføring ut av EØS:
REQUIRES_VERIFICATION
Overføringsgrunnlag:
REQUIRES_VERIFICATION
Kryptering:
TLS i transitt. Token valideres mot issuer, audience, nonce og JWKS (teknisk verifisert).
Sletting:
REQUIRES_VERIFICATION
Dokumentasjonsstatus:
REQUIRES_VERIFICATION
Sist verifisert:
— av —
Kodereferanse:
src/lib/bankid.server.ts, src/routes/api.public.bankid.callback.ts

Brukerstyrt navigasjon ut av Hubra

Jitsi Meet – Videomøte (ekstern lenke)

https://meet.jit.si/{rom}

Formål:
Videomøte mellom ansatte
Datakategorier:
Romnavn; Deltakerens eget navn, lyd og bilde i møtet
Felter som sendes:
Romnavn i URL
Felter som maskeres:
Ingen beboerdata sendes med lenken
Felter som pseudonymiseres:
—
Utløses av:
Ansatt bekrefter i dialog at data forlater Hubra
Sensitive data tillatt:
Nei – blokkert av KI-gaten
Behandlingsregion:
REQUIRES_VERIFICATION
Lagringssted:
REQUIRES_VERIFICATION
Lagringstid:
REQUIRES_VERIFICATION
Bruk til modelltrening:
Ikke relevant
Databehandleravtale:
REQUIRES_VERIFICATION
Underdatabehandlere:
REQUIRES_VERIFICATION
Overføring ut av EØS:
REQUIRES_VERIFICATION
Overføringsgrunnlag:
REQUIRES_VERIFICATION
Kryptering:
TLS i transitt (teknisk verifisert)
Sletting:
REQUIRES_VERIFICATION
Dokumentasjonsstatus:
REQUIRES_VERIFICATION
Sist verifisert:
— av —
Kodereferanse:
src/lib/meetings.ts, src/lib/ekstern.ts

Apple / Google (enhetens kartapp) – Kart og navigasjon

https://maps.apple.com/?daddr=… eller https://www.google.com/maps/dir/?api=1&destination=…

Formål:
Navigasjon til adresse i kjøremodus
Datakategorier:
Destinasjonsadresse
Felter som sendes:
Adresse i URL
Felter som maskeres:
Aldri navn, diagnose eller annen beboerinformasjon
Felter som pseudonymiseres:
—
Utløses av:
Ansatt bekrefter navigasjon i dialog
Sensitive data tillatt:
Nei – blokkert av KI-gaten
Behandlingsregion:
REQUIRES_VERIFICATION
Lagringssted:
REQUIRES_VERIFICATION
Lagringstid:
REQUIRES_VERIFICATION
Bruk til modelltrening:
Ikke relevant
Databehandleravtale:
REQUIRES_VERIFICATION
Underdatabehandlere:
REQUIRES_VERIFICATION
Overføring ut av EØS:
REQUIRES_VERIFICATION
Overføringsgrunnlag:
REQUIRES_VERIFICATION
Kryptering:
TLS i transitt (teknisk verifisert)
Sletting:
REQUIRES_VERIFICATION
Dokumentasjonsstatus:
REQUIRES_VERIFICATION
Sist verifisert:
— av —
Kodereferanse:
src/lib/reisemaal.ts, src/lib/ekstern.ts

Dataflytkjede (steg for steg)

  • 1. Ansatt utfører en eksplisitt handling i Hubra (skriver, dikterer eller ber om oppsummering). Ingenting sendes i bakgrunnen.
  • 2. Hubra bygger grunnlaget på serveren fra data den innloggede har tilgang til i sin organisasjon.
  • 3. Hubra minimerer: fødselsnummer, telefonnummer, e-post og kontonummer maskeres, navn erstattes av pseudonymer, og instruksjonsforsøk nøytraliseres.
  • 4. Dokumentasjonsgaten kontrollerer datakategori og leverandørstatus. Uten verifisert dokumentasjon stanses kallet med PROVIDER_NOT_APPROVED.
  • 5. Minimert innhold sendes over TLS til ekstern leverandør (KI-modell eller tale-tjeneste).
  • 6. Svaret mottas på serveren, pseudonymer gjenopprettes lokalt, og resultatet vises som utkast (AI_DRAFT).
  • 7. Ansatt kontrollerer og godkjenner. Først da lagres innholdet i Hubra, med godkjenner og tidsstempel.
  • 8. KI-loggen lagrer kun metadata om kallet, ikke innholdet.

Rå lyd til tale-til-tekst – RAW_AUDIO_SENT_TO_STT = REQUIRES_VERIFICATION

  • RAW_AUDIO_SENT_TO_STT = REQUIRES_VERIFICATION.
  • Rå lyd sendes til tale-til-tekst uten maskering. Lyd kan ikke maskeres eller pseudonymiseres før transkripsjon, fordi hele lydstrømmen må behandles av leverandøren. Lyden kan derfor inneholde navn, helseopplysninger og andre personopplysninger som ansatte sier under diktering.
  • Hubra påstår ikke at rå lyd er anonymisert eller pseudonymisert.
  • Lydopptak lagres ikke i Hubra etter at transkripsjonen er mottatt.
  • Transkribert tekst minimeres og pseudonymiseres før eventuelle videre KI-kall.
  • Behandlingsregion, lagringstid, modelltrening, underdatabehandlere og overføringsgrunnlag for lyd må dokumenteres av leverandøren og verifiseres eksternt.
  • Diktering er blokkert for sensitive opplysninger til dokumentasjonsgaten er verifisert (PROVIDER_NOT_APPROVED).

Data som aldri forlater Hubra

  • Passord og passord-hasher
  • Hemmelige API-nøkler, service-nøkler og øktnøkler (finnes kun server-side)
  • BankID/Criipto klienthemmelighet og signeringsnøkler
  • Fødselsnummer og nasjonale ID-numre (maskeres før KI-kall; lagres kun maskert)
  • Kontonummer og betalingsdetaljer (sendes ikke til KI)
  • Fulle KI-prompter når de ikke er nødvendige (kun metadata lagres i KI-loggen)
  • Fulle KI-svar når de ikke er nødvendige (kun metadata lagres i KI-loggen)
  • Rå revisjonslogger og interne sikkerhetsdata (sendes aldri ut av plattformen)
  • Personopplysninger uten uttrykkelig handling fra ansatt (ingen bakgrunnssending)
  • Sporings-, analyse- og annonsedata (ingen slike integrasjoner finnes)

Kontrollpunkter i koden

  • All ekstern KI-trafikk går gjennom én server-side gate. Frontend kan ikke kalle Gemini eller ElevenLabs direkte.
  • Gaten kontrollerer datakategori, maskering, pseudonymisering og leverandørstatus før hvert kall. Mangler dokumentasjon, returneres PROVIDER_NOT_APPROVED og ingen data sendes.
  • Alle KI-, tale-, eksport-, slette- og adminkall er ratebegrenset. Nøkkelen utledes fra den autentiserte sesjonen på serveren og kan ikke settes av klienten.
  • KI-loggen lagrer kun metadata: funksjon, modell, lengder, maskeringsstatus og godkjenningsspor.
  • Sikkerhetsheadere (CSP i report-only, HSTS, nosniff, Referrer-Policy, rammevern, Permissions-Policy) begrenser hvilke eksterne mål nettleseren kan kontakte.
  • Alle utgående kall skjer over TLS.

Sporbarhet og status

Innlogging, mislykket innlogging, utlogging, rolleendringer, kontoopprettelse, sletting, eksport, tildelinger og KI-godkjenninger registreres i revisjonsloggen. Samlet statusbilde med hva som fortsatt krever ekstern verifisering finnes på produksjonsstatus.

Sist oppdatert: 30. august 2026. Denne siden vedlikeholdes av Hubra og kan tilpasses den enkelte virksomhets rutiner.