Skip to main content
View as Markdown

Tableau de bord d'administration

Sovrium fournit un tableau de bord d'administration d'application intégré : une famille de points de terminaison d'API en lecture seule qui donnent aux opérateurs et aux auditeurs une surface unique et cohérente sur la santé et l'inventaire de l'application en cours d'exécution. Chaque point de terminaison est protégé par RBAC, émet un événement de journal d'audit canonique et renvoie 404 (jamais 403) en cas d'accès non autorisé pour déjouer l'énumération.

Le tableau de bord est une surface de lecture. Les opérations de mutation — création d'utilisateurs, changement de rôles, publication de schéma — vivent dans leurs propres points de terminaison (Gestion des utilisateurs) ; le tableau de bord reflète l'état, il ne le modifie pas. Trois publics partagent exactement les mêmes formes de réponse : administrateurs (décisions de détail), opérateurs (rapports d'incident, passations d'astreinte) et auditeurs (documentation de revue SOC2 / GDPR).

Deux formes de réponse

Chaque point de terminaison du tableau de bord adopte l'une des deux formes, de sorte que le contrat se généralise proprement à travers les domaines.

Forme Modèle de point de terminaison Corps
Vue d'ensemble GET /api/admin/{domain}/overview Compteurs agrégés tenant compte de la période (totals), une série temporelle par paliers (series) et des métriques de santé dérivées. Non paginé.
Liste GET /api/admin/{domain} Éléments paginés par curseur, chacun portant un bloc _admin de niveau opérateur avec metadata (comptes, horodatages de dernière activité).

Les points de terminaison de vue d'ensemble acceptent un préréglage de période partagé (24h | 7d | 30d) via resolvePeriodWindow() ; les points de terminaison de liste acceptent la pagination par curseur, la recherche en texte libre et ?include_deleted=true.

Surface des points de terminaison

Domaine Point(s) de terminaison Renvoie
Config GET /api/admin/config/version Version en cours d'exécution, commit de build, runtime de base de données actif, version de Bun, heure de démarrage du processus.
Automatisations GET /api/admin/automations/overview, GET /api/admin/automations/runs Totaux d'exécutions, nombre d'échecs, success_rate, séries par paliers ; liste d'exécutions paginée.
Utilisateurs GET /api/admin/users/overview Total des utilisateurs, récemment actifs, nouvelles inscriptions pour la période, distribution des rôles, séries d'inscriptions/de sessions.
Tables GET /api/admin/tables/overview rowCount, softDeletedCount, lastWriteAt, writesInPeriod par table, totaux, séries d'écritures.
Buckets GET /api/admin/buckets, GET /api/admin/buckets/overview Liste de buckets paginée par curseur avec filtre par fournisseur ; vue d'ensemble du quota/de l'utilisation.
Formulaires GET /api/admin/forms, GET /api/admin/forms/:formName Formulaires configurés avec nombre de soumissions et horodatages de dernière soumission ; détail par formulaire.
# Version reflection — the smallest read endpoint, the cross-cutting shake-down test
curl -H 'Cookie: <admin session>' http://localhost:3000/api/admin/config/version

# Period-scoped overview
curl -H 'Cookie: <admin session>' 'http://localhost:3000/api/admin/tables/overview?period=7d'

# Cursor-paginated list with search
curl -H 'Cookie: <admin session>' 'http://localhost:3000/api/admin/forms?search=contact&limit=20'

Garanties transversales

Chaque point de terminaison du tableau de bord hérite des mêmes primitives de sécurité et d'observabilité :

Garantie Comportement
RBAC Un middleware à trois niveaux protège chaque route en fonction du rôle de l'appelant.
Anti-énumération L'accès non autorisé renvoie 404, jamais 403 — l'espace des id est indevinable et l'existence de la route est inobservable. Voir Durcissement de la sécurité.
Journal d'audit Chaque appel émet un événement canonique (par ex. form.detail.queried) exactement une fois. Voir Surveillance de l'activité.
OpenAPI Les routes sont déclarées via l'assistant partagé adminRoute, de sorte que la surface est documentée et vérifiée en types.
Contrat de compatibilité ascendante ?include_deleted=true s'analyse sans 400 afin que les auditeurs obtiennent une interface stable au fur et à mesure que la visibilité des lignes supprimées arrive.

Points de terminaison frères (pas le tableau de bord)

Certaines lectures pertinentes pour l'opérateur vivent en dehors de la famille du tableau de bord /api/admin/{domain} parce qu'elles le précèdent ou appartiennent à un autre sous-système :

  • Enregistrements par utilisateur (id, e-mail, nom) → GET /api/auth/admin/list-users. Voir Gestion des utilisateurs.
  • Analytique de trafic agrégéeGET /api/analytics/overview et frères. Voir Analytique.
  • Flux d'activité à l'échelle du systèmeGET /api/activity. Voir Surveillance de l'activité.

Pages connexes