Gå til indholdet

Modeller

Alle API-responser bruger camelCase JSON og UTC timestamps (ISO 8601, fx 2026-05-26T10:15:00Z). GUID'er returneres som strenge.

Model-oversigt

Model Beskrivelse Endpoints
UserProfile Bruger + organisationskontekst GET /v1/user
Authorization Management-autorisation GET /v1/user/authorizations
Group Flad gruppe GET /v1/user/group
GroupTreeNode Rekursivt gruppe-træ GET /v1/user/group/parents

Felt-konventioner

Type Format Eksempel
string UTF-8 tekst "Anna"
integer 64-bit heltal for groupId 12345
guid UUID-streng "550e8400-e29b-41d4-a716-446655440000"
boolean true / false "isAuthorization": false
datetime ISO 8601 UTC "2026-05-26T10:15:00Z"
nullable null i JSON "organisationGroupOverride": null

UserProfile

Brugerprofil og effektiv organisationskontekst. Returneres af GET /v1/user.

Felter

Felt Type Nullable Beskrivelse
email string nej Brugerens e-mail (primær identitet)
firstname string nej Fornavn
lastname string nej Efternavn
organisationId string (GUID) nej Organisations-GUID for effektiv kontekst
organisationName string nej Visningsnavn for effektiv organisation
organisationGroup integer nej Effektiv gruppe-ID — brug i alle gruppe-queries
organisationGroupOverride integer ja Override for external bruger (allerede afspejlet i organisationGroup)
authorizationId integer ja Aktiv autorisations-ID når isAuthorization er true
isAuthorization boolean nej true når brugeren arbejder i autorisations-kontekst
hasAvailableAuthorizations boolean nej Brugeren har mindst én management-autorisation
roles string nej Komma-separeret rolle-liste
sessionId string nej Session-id til spor/diagnose
application string nej Keycloak-klient (azp) der identificerer kaldende app
userType string nej local eller external
timestamp datetime nej Tidspunkt for profil-generering (UTC)

JSON-eksempel

{
  "email": "bruger@eksempel.dk",
  "firstname": "Anna",
  "lastname": "Hansen",
  "organisationId": "550e8400-e29b-41d4-a716-446655440000",
  "organisationName": "Eksempel Kommune",
  "organisationGroup": 12345,
  "organisationGroupOverride": null,
  "authorizationId": null,
  "isAuthorization": false,
  "hasAvailableAuthorizations": true,
  "roles": "meeting-user,management-admin",
  "sessionId": "abc123-session-id",
  "application": "din-keycloak-klient-id",
  "userType": "external",
  "timestamp": "2026-05-26T10:15:00Z"
}

Brug

  • Single source of truth for organisationskontekst — brug ikke JWT-claims direkte til organisationGroup / organisationName.
  • Ved autorisationsskift opdateres organisationGroup, organisationName, isAuthorization og authorizationId automatisk.

Se også GET /v1/user, Best practices og Authorization.

Authorization

En management-autorisation der giver brugeren adgang til at arbejde i en anden organisations gruppe. Returneres som element i array fra GET /v1/user/authorizations.

Felter

Felt Type Nullable Beskrivelse
id integer nej Autorisations-ID — bruges som X-VDX-AuthorizationId
groupId integer nej Gruppe brugeren får adgang til
groupName string nej Visningsnavn for gruppen
role string nej Rolle i autorisations-kontekst (fx management-admin)
lastUse datetime ja Seneste brug af autorisationen (UTC)

JSON-eksempel

{
  "id": 42,
  "groupId": 67890,
  "groupName": "Region Nord",
  "role": "management-admin",
  "lastUse": "2026-05-20T14:30:00Z"
}

Brug

  1. Hent listen via GET /v1/user/authorizations.
  2. Vis groupName og role i UI.
  3. Ved valg: send id som X-VDX-AuthorizationId på efterfølgende kald.

Listen filtreres ikke af aktiv autorisations-header — den viser altid alle autorisationer brugeren ejer.

Se også GET /v1/user/authorizations, Autorisationsskift og UserProfile.

Group

Flad gruppe-repræsentation for den effektive organisationskontekst. Returneres af GET /v1/user/group.

Felter

Felt Type Nullable Beskrivelse
organisationId string (GUID) nej Organisations-GUID knyttet til gruppen
name string nej Gruppens visningsnavn
groupId integer nej Gruppe-ID

JSON-eksempel

{
  "organisationId": "550e8400-e29b-41d4-a716-446655440000",
  "name": "Region Nord",
  "groupId": 67890
}

Brug

  • Returnerer gruppen for effektiv kontekst — respekterer X-VDX-AuthorizationId hvis sat.
  • Sammenlign med organisationGroup i UserProfile — værdierne bør matche i samme kontekst.

Se også GET /v1/user/group og GroupTreeNode.

GroupTreeNode

Nested træ-struktur fra rodgruppe ned til den effektive gruppe. Returneres af GET /v1/user/group/parents.

Felter

Felt Type Nullable Beskrivelse
organisationId string (GUID) nej Organisations-GUID for denne node
name string nej Gruppens visningsnavn
groupId integer nej Gruppe-ID for denne node
children array of GroupTreeNode nej Undergrupper (kan være tom array [])

JSON-eksempel

{
  "organisationId": "00000000-0000-0000-0000-000000000001",
  "name": "VDX Root",
  "groupId": 1,
  "children": [
    {
      "organisationId": "550e8400-e29b-41d4-a716-446655440000",
      "name": "Eksempel Kommune",
      "groupId": 12345,
      "children": []
    }
  ]
}

Brug

  • Træet bygges fra rod ned til brugerens effektive gruppe.
  • Respekterer X-VDX-AuthorizationId — ved autorisationsskift ender træet ved autorisationsgruppen.

Se også GET /v1/user/group/parents og Group.

Se også