Gli endpoint HTTP di Frontdoor, i requisiti di autenticazione e il formato degli errori, più l'API bulk delle app per l'automazione.
Frontdoor espone un'API JSON sotto /api.
Convenzioni
- Ogni risposta di errore è in JSON, con un
error leggibile e un code stabile in snake_case.
- Le richieste che modificano dati con il cookie di sessione devono arrivare da Frontdoor stesso o da un'origine elencata in
CORS_ALLOWED_ORIGINS.
Livelli di autenticazione
| Livello |
Significato |
| No |
Endpoint pubblico |
| Sessione |
Il cookie frontdoor_token, o lo stesso token come Authorization: Bearer |
| Admin lettura |
Sessione di un owner, admin o admin_readonly |
| Admin modifica |
Sessione di un owner o admin |
| Owner |
Sessione di un owner |
| Chiave API |
L'header X-API-Key con il valore di ADMIN_API_KEY |
API bulk delle app
Gli endpoint bulk sono pensati per le pipeline di CI e di automazione che gestiscono il catalogo delle app.
| Metodo |
Endpoint |
Descrizione |
| GET |
/api/apps/bulk |
Esporta tutte le app con i metadati completi, attive e inattive |
| POST |
/api/apps/bulk |
Crea o aggiorna più app con una sola chiamata, abbinate per slug |
Entrambi richiedono l'header X-API-Key e rispondono 503 quando ADMIN_API_KEY non è configurata.
curl -s https://frontdoor.contoso.com/api/apps/bulk \
-H 'X-API-Key: your-api-key'
Stato e accesso
| Metodo |
Endpoint |
Autenticazione |
Descrizione |
| GET |
/api/health |
No |
Controllo dello stato |
| GET |
/api/auth/microsoft |
No |
Avvia l'accesso Microsoft (PKCE; ?redirect=<app slug> facoltativo) |
| GET |
/api/auth/microsoft/callback |
No |
Callback dell'accesso Microsoft |
| GET |
/api/auth/me |
Sessione |
Utente corrente e preferenze (impersonation è null, oppure { sessionId, actor, expiresAt, reason } mentre si agisce come un utente) |
| PUT |
/api/auth/me/preferences |
Sessione |
Aggiorna le proprie preferenze (vista Home, lingua, fuso orario, tema, ordine delle app, preferiti, tour) |
| POST |
/api/auth/home-activity |
Sessione |
Registra l'attività nella Home (con limitazione di frequenza) |
| POST |
/api/auth/logout |
No |
Esce (cancella il cookie) |
| GET |
/api/auth/dev-status |
No |
Indica se il Login Dev è disponibile |
| POST |
/api/auth/dev-login |
No |
Login Dev (solo in sviluppo, mai in produzione) |
| POST |
/api/auth/verify-sso-token |
Token e audience nel corpo |
Introspezione del token SSO per le app satellite (vedi Autenticazione delle app satellite) |
Impersonation
| Metodo |
Endpoint |
Autenticazione |
Descrizione |
| POST |
/api/impersonation |
Admin lettura |
Inizia ad agire come un utente (corpo { userId, reason }; restituisce 201 { sessionId, expiresAt }) |
| POST |
/api/impersonation/stop |
Sessione |
Termina l'impersonation (restituisce { ok: true }) |
Branding e manutenzione
| Metodo |
Endpoint |
Autenticazione |
Descrizione |
| GET |
/api/branding |
No |
Branding e valori predefiniti del tenant |
| PUT |
/api/branding |
Owner |
Aggiorna il branding e i valori predefiniti del tenant |
| GET |
/api/branding/logo |
No |
Logo aziendale |
| GET |
/api/branding/cache |
Owner |
Dimensione della cache avatar, della cache icone e del database |
| POST |
/api/branding/avatars/refresh |
Owner |
Svuota la cache degli avatar |
| POST |
/api/branding/app-icons/cleanup |
Owner |
Rimuove i file delle icone non usati |
| POST |
/api/branding/database/compact |
Owner |
Compatta il database (VACUUM) |
App
| Metodo |
Endpoint |
Autenticazione |
Descrizione |
| GET |
/api/apps |
Sessione |
App visibili all'utente corrente |
| GET |
/api/apps/all |
Admin lettura |
Tutte le app, comprese quelle inattive |
| GET |
/api/apps/:id/icon |
No |
Icona dell'app |
| GET |
/api/apps/:slug/sso-redirect |
Sessione |
Apre un'app (redirect o SSO POST, accesso registrato) |
| GET |
/api/apps/:slug/entra-redirect |
Sessione |
Apre un'app Entra tramite MyApps (accesso registrato) |
| POST |
/api/apps/:slug/track-access |
Sessione |
Registra l'accesso a un'app aperta direttamente |
| POST |
/api/apps |
Admin modifica |
Crea un'app |
| POST |
/api/apps/:id/clone |
Admin modifica |
Prepara una copia di un'app (non viene salvato nulla) |
| PUT |
/api/apps/:id |
Admin modifica |
Aggiorna un'app (vengono scritti solo i campi modificati) |
| POST |
/api/apps/:id/groups |
Admin modifica |
Imposta i gruppi che possono aprire un'app |
| DELETE |
/api/apps/:id |
Admin modifica |
Elimina un'app |
| POST |
/api/apps/restore-defaults |
Admin modifica |
Ripristina le app demo |
| GET |
/api/apps/bulk |
Chiave API |
Esportazione bulk delle app (metadati completi) |
| POST |
/api/apps/bulk |
Chiave API |
Upsert bulk delle app per slug |
Utenti
| Metodo |
Endpoint |
Autenticazione |
Descrizione |
| GET |
/api/users |
Admin lettura |
Elenca gli utenti |
| GET |
/api/users/:id |
Admin lettura |
Dettaglio dell'utente (gruppi, app visibili) |
| GET |
/api/users/:id/avatar |
Sessione |
Avatar dell'utente |
| PUT |
/api/users/:id/preferences |
Admin modifica |
Aggiorna o reimposta le preferenze di un utente |
| PUT |
/api/users/:id/role |
Admin modifica |
Cambia il ruolo |
| PUT |
/api/users/:id/active |
Admin modifica |
Attiva o disattiva |
| DELETE |
/api/users/:id |
Admin modifica |
Elimina un utente |
Gruppi
| Metodo |
Endpoint |
Autenticazione |
Descrizione |
| GET |
/api/groups |
Admin lettura |
Elenca i gruppi |
| GET |
/api/groups/:id |
Admin lettura |
Dettaglio del gruppo (membri, app, collegamenti) |
| POST |
/api/groups |
Admin modifica |
Crea un gruppo |
| PUT |
/api/groups/:id |
Admin modifica |
Aggiorna un gruppo |
| DELETE |
/api/groups/:id |
Admin modifica |
Elimina un gruppo |
| POST |
/api/groups/bulk-delete |
Admin modifica |
Elimina più gruppi |
| POST |
/api/groups/:id/members |
Admin modifica |
Aggiunge membri |
| DELETE |
/api/groups/:id/members/:userId |
Admin modifica |
Rimuove un membro |
| POST |
/api/groups/:id/apps |
Admin modifica |
Dà a un gruppo l'accesso alle app |
| DELETE |
/api/groups/:id/apps/:appId |
Admin modifica |
Rimuove un'app da un gruppo |
| POST |
/api/groups/:id/apps/transfer |
Admin modifica |
Copia o sposta tutte le app in un altro gruppo |
| POST |
/api/groups/:id/groups |
Admin modifica |
Collega gruppi figli |
| DELETE |
/api/groups/:id/groups/:childGroupId |
Admin modifica |
Scollega un gruppo figlio |
| POST |
/api/groups/:id/entra-groups |
Admin modifica |
Collega gruppi Entra |
| DELETE |
/api/groups/:id/entra-groups/:entraGroupId |
Admin modifica |
Scollega un gruppo Entra |
| GET |
/api/groups/entra/candidates |
Admin lettura |
Gruppi Entra rilevati e disponibili per l'importazione |
| POST |
/api/groups/entra/import |
Admin modifica |
Importa i gruppi Entra rilevati |
| POST |
/api/groups/entra/force-sync |
Admin modifica |
Sincronizza le appartenenze Entra di tutti gli utenti collegati |
| Metodo |
Endpoint |
Autenticazione |
Descrizione |
| GET |
/api/media-assets |
Admin lettura |
Libreria media (icone e loghi) |
| GET |
/api/media-assets/large-icons |
Admin lettura |
Icone delle app più grandi di 200 KB, con dimensioni in pixel e indicazione se si possono ottimizzare |
| GET |
/api/media-assets/:id |
Admin lettura |
Dettaglio di un asset media |
| GET |
/api/media-assets/:id/file |
Admin lettura |
File di un asset media (solo immagini) |
| DELETE |
/api/media-assets/:id |
Admin modifica |
Elimina un asset media non usato |
Log e audit
| Metodo |
Endpoint |
Autenticazione |
Descrizione |
| GET |
/api/logs |
Owner |
Log degli accessi (paginati) |
| GET |
/api/logs/top-apps |
Owner |
App aperte più spesso |
| POST |
/api/logs/clear-access |
Owner |
Svuota subito il log degli accessi |
| GET |
/api/logs/audit |
Owner |
Log di audit (paginato; exclude_target_types=auth nasconde gli accessi). Alias: /api/logs/rbac-audit |
Backup
| Metodo |
Endpoint |
Autenticazione |
Descrizione |
| GET |
/api/backups/export |
Owner |
Scarica un backup |
| POST |
/api/backups/export-jobs |
Owner |
Avvia un backup in background |
| GET |
/api/backups/export-jobs/:jobId/events |
Owner |
Avanzamento del backup (server-sent events) |
| GET |
/api/backups/export-jobs/:jobId/file |
Owner |
Scarica il backup completato |
| GET |
/api/backups/database |
Owner |
Copia grezza del database (.db) |
| POST |
/api/backups/verify |
Owner |
Verifica un backup senza modificare nulla (upload binario) |
| POST |
/api/backups/restore |
Owner |
Ripristina un backup (upload binario) |
Plugin
Gli endpoint dei plugin (/api/plugins/*) rispondono 404 finché la piattaforma dei plugin è bloccata. Vedi Plugin.