Endpoints¶
Alle endpoints er v1 under base path /devicereg. De fleste kræver Keycloak JWT; Device Login har to public endpoints.
Base URLs¶
| Miljø | Base URL |
|---|---|
| Stage | https://videoapi.vconf-stage.dk/devicereg |
| Produktion | https://videoapi.vconf.dk/devicereg |
Eksempel: GET https://videoapi.vconf-stage.dk/devicereg/v1/devices
Fælles headers¶
| Header | Påkrævet | Beskrivelse |
|---|---|---|
Authorization |
Ved OAuth2-endpoints | Bearer <access_token> fra Keycloak |
Content-Type |
Ved POST/PUT | application/json |
Device Admin¶
Administration af enheder, meeting/message-kø og creation tokens. Kræver typisk meeting-admin.
Endpoint-oversigt¶
| Metode | Route | Formål | Rolle |
|---|---|---|---|
| GET | /v1/devices |
List enheder | meeting-admin, meeting-user, meeting-planner |
| GET | /v1/device/{id} |
Hent enhed | meeting-admin |
| POST | /v1/device |
Opret enhed | meeting-admin |
| PUT | /v1/device/{id} |
Opdater enhed | meeting-admin |
| DELETE | /v1/device/{id} |
Slet enhed | meeting-admin |
| GET | /v1/device/{id}/password |
Generer nyt password | meeting-admin |
| POST | /v1/meetings |
Push meeting til enhed | meeting-admin |
| DELETE | /v1/meetings/{id} |
Ryd meeting-kø | meeting-admin |
| POST | /v1/messages |
Push besked til enhed | meeting-admin |
| DELETE | /v1/messages/{id} |
Ryd besked-kø | meeting-admin |
| POST | /v1/device-creation-token |
Opret creation token | meeting-admin |
| GET | /v1/device-creation-token/{organisation_code} |
Hent creation token | meeting-admin |
GET /v1/devices¶
Hent alle enheder fra brugerens organisationskontekst.
| Parameter | Type | Beskrivelse |
|---|---|---|
organisation_code |
query (valgfri) | Filtrer på organisationskode — default er brugerens organisation |
include_suborganisations |
query (boolean, valgfri) | Inkluder enheder fra underorganisationer |
Response (200): Array af deviceResponse
Fejl: 401, 403, 502
GET /v1/device/{id}¶
Hent enhed med angivet UUID. Kun enheder i egen organisation eller underorganisationer.
| Parameter | Type | Beskrivelse |
|---|---|---|
id |
uuid (path) | Enheds-UUID |
Response (200): deviceResponse
Fejl: 401, 403, 404, 502
POST /v1/device¶
Opret ny enhed i egen organisation eller underorganisation.
Request body: deviceRequest
Response (200): createDeviceResponse — inkluderer keycloak_password
Fejl: 400, 401, 403, 409, 500, 502
PUT /v1/device/{id}¶
Opdater eksisterende enhed.
| Parameter | Type | Beskrivelse |
|---|---|---|
id |
uuid (path) | Enheds-UUID |
Request body: deviceRequest
Response (200): deviceResponse
Fejl: 400, 401, 403, 404, 409, 500, 502
DELETE /v1/device/{id}¶
Slet enhed. Kun enheder i egen organisation eller underorganisationer.
| Parameter | Type | Beskrivelse |
|---|---|---|
id |
uuid (path) | Enheds-UUID |
Response (204): No content
Fejl: 401, 403, 404, 500, 502
GET /v1/device/{id}/password¶
Generer nyt Keycloak-password for enhed.
| Parameter | Type | Beskrivelse |
|---|---|---|
id |
uuid (path) | Enheds-UUID |
Response (200): passwordOutput
Fejl: 401, 403, 404, 502
POST /v1/meetings¶
Tilføj meeting til en enheds meeting-kø.
Request body: createMeeting
Response (204): No content
Fejl: 400, 401, 403, 404
DELETE /v1/meetings/{id}¶
Ryd meeting-kø for enhed.
| Parameter | Type | Beskrivelse |
|---|---|---|
id |
uuid (path) | Enheds-UUID |
Response (204): No content
Fejl: 401, 403, 404
POST /v1/messages¶
Tilføj besked til en enheds message-kø.
Request body: createMessage
Response (204): No content
Fejl: 400, 401, 403, 404
DELETE /v1/messages/{id}¶
Ryd message-kø for enhed.
| Parameter | Type | Beskrivelse |
|---|---|---|
id |
uuid (path) | Enheds-UUID |
Response (204): No content
Fejl: 401, 403, 404
POST /v1/device-creation-token¶
Opret token til auto-oprettelse af enheder i en organisation.
Request body: deviceCreationTokenRequest
Response (200): deviceCreationToken
Fejl: 400, 401, 403, 409, 500
GET /v1/device-creation-token/{organisation_code}¶
Hent eksisterende creation token for organisation.
| Parameter | Type | Beskrivelse |
|---|---|---|
organisation_code |
string (path) | Organisationskode |
Response (200): deviceCreationToken
Fejl: 400, 401, 403, 404
Device Comm¶
Enhedskommunikation — enheden poller for ventende møder og beskeder. Kræver device-token med meeting-user eller meeting-planner.
Endpoint-oversigt¶
| Metode | Route | Formål | Rolle |
|---|---|---|---|
| GET | /v1/heartbeat |
Tjek om enhed eksisterer | Device token |
| GET | /v1/meeting |
Hent ældste ubehandlede meeting | meeting-user, meeting-planner |
| GET | /v1/message |
Hent ældste ubehandlede besked | meeting-user, meeting-planner |
GET /v1/heartbeat¶
Verificer at enheden fra JWT-token eksisterer og er reachable.
Response (200): Ok (tom body)
Fejl: 401, 403, 404, 502
GET /v1/meeting¶
Hent ældste ubehandlede meeting for enheden identificeret i JWT.
Response (200): meetingResponse
Fejl: 401, 403, 404
GET /v1/message¶
Hent ældste ubehandlede besked for enheden identificeret i JWT.
Response (200): messageResponse
Fejl: 401, 403, 404
Device Login¶
Login og auto-oprettelse af enheder.
Endpoint-oversigt¶
| Metode | Route | Formål | Auth |
|---|---|---|---|
| GET | /v1/one-click/{id} |
Generer one-click login-link | OAuth2, meeting-admin |
| GET | /v1/login/{id} |
Hent access token via login-id | Public |
| POST | /v1/device-login |
Opret enhed og hent token | Public |
GET /v1/one-click/{id}¶
Generer login-link til enhed.
| Parameter | Type | Beskrivelse |
|---|---|---|
id |
uuid (path) | Enheds-UUID |
client-id |
query (påkrævet) | Keycloak client-id til token-hentning |
Response (200): oneClickResponse
Fejl: 401, 403, 404, 409, 500
GET /v1/login/{id}¶
Hent access token for enhed via one-click login-id. Public endpoint — ingen Bearer token.
| Parameter | Type | Beskrivelse |
|---|---|---|
id |
string (path) | Unikt login-id fra one-click link |
Response (200): accessToken
Fejl: 404, 500, 502
POST /v1/device-login¶
Opret simpel enhed og hent access token via creation token. Public endpoint — ingen Bearer token.
Request body: deviceCreationTokenLoginRequest
Response (200): accessToken
Fejl: 400, 403, 404, 409, 500, 502
Fejlkoder¶
| HTTP | Betydning |
|---|---|
| 400 | Manglende/ugyldigt input, valideringsfejl |
| 401 | Ugyldig/udløbet token, manglende brugerkontekst |
| 403 | Enhed tilhører ikke brugerens organisation |
| 404 | Enhed/møde/besked/token ikke fundet |
| 409 | Konflikt (duplikat short_id, navn eller creation token) |
| 500 | Intern serverfejl (database) |
| 502 | Bad Gateway (Keycloak-fejl) |
Fejlrespons: detailedError med detailed_error_code (10–27).
Anbefalet klient-adfærd¶
| Status | Handling |
|---|---|
400 |
Vis valideringsfejl — tjek påkrævede felter |
401 |
Forny token via Keycloak |
403 |
Tjek organisationsgrænser |
404 |
Tjek enheds-UUID og om enheden er oprettet |
409 |
Prøv igen (duplikat short_id/login-id) eller brug andet navn |
502 |
Log og kontakt support — Keycloak-synkroniseringsfejl |
Se også¶
Ændringshistorik¶
| Dato | Ændring |
|---|---|
| 2026-06-27 | Første endpoint-reference for VDX Device Registration Service |