Aller au contenu principal

Administration plateforme

Base URL : /api/v1/admin/system

Endpoints réservés aux administrateurs plateforme (N2) : gestion des organisations, utilisateurs plateforme, rôles système, permissions, audit global, anomalies cross-organisation, statistiques et analytics.


Health check​

GET /healthz​

Sonde de santé (sans authentification).

{ "status": "ok", "service": "caffette-api", "version": "1.2.0" }

version est injecté à la compilation (CARGO_PKG_VERSION).


Organisations​

Permissions : organization.manage

MéthodeCheminDescription
GET/admin/system/organizationsListe des organisations
POST/admin/system/organizationsCréer une organisation
GET/admin/system/organizations/{id}Détail
PUT/admin/system/organizations/{id}Mettre à jour
POST/admin/system/organizations/{id}/suspendSuspendre
POST/admin/system/organizations/{id}/activateActiver

Voir le détail complet dans Organisations (Admin).


Utilisateurs plateforme​

Permissions : platform.user.manage

MéthodeCheminDescription
GET/admin/system/usersListe
POST/admin/system/usersCréer
GET/admin/system/users/{id}Détail
PUT/admin/system/users/{id}Mettre à jour
DELETE/admin/system/users/{id}Supprimer
GET/admin/system/users/{id}/rolesLister les rôles
POST/admin/system/users/{id}/rolesAssigner un rôle
DELETE/admin/system/users/{id}/roles/{role_id}Retirer un rôle

Voir le détail complet dans Utilisateurs (Admin).


Rôles système​

Permissions : organization.manage

MéthodeCheminDescription
GET/admin/system/rolesListe
POST/admin/system/rolesCréer
GET/admin/system/roles/{id}Détail
PUT/admin/system/roles/{id}Mettre à jour
DELETE/admin/system/roles/{id}Supprimer
GET/admin/system/roles/{id}/permissionsLister les permissions
POST/admin/system/roles/{id}/permissionsAjouter une permission
DELETE/admin/system/roles/{id}/permissions/{permission_name}Retirer une permission

Voir le détail complet dans Rôles (Admin).


Catalogue des permissions​

GET /admin/system/permissions​

Liste toutes les permissions disponibles dans le système.

Permissions : organization.manage

Réponse (200) : tableau de chaînes.

["card.read", "card.create", "organization.manage", "stats.exhaustive.read"]

Audit log global​

Permissions : stats.exhaustive.read

GET /admin/system/audit-log​

Journal d'audit cross-organisation (table public.audit_log_global).

ParamTypeDéfautDescription
limitinteger100Max 1000
offsetinteger0

Réponse (200) : { "items": [AuditEntry], "total": n } — chaque entrée correspond à une ligne brute de audit_log_global, triée par occurred_at descendant.


Anomalies cross-organisation​

Permissions : stats.exhaustive.read

GET /admin/system/anomalies​

Liste les anomalies de toutes les organisations.

ParamTypeDéfautDescription
kindstring—Type d'anomalie
statusstring—open, acknowledged, resolved, false_positive
severitystring—low, medium, high, critical
fromdatetime—Date de début (RFC 3339)
todatetime—Date de fin (RFC 3339)
limitinteger100Max 1000
offsetinteger0

Réponse (200) : { "items": [Anomaly], "total": n }

remarque

Cette version système utilise stats.exhaustive.read, tandis que la version organisation (/admin/org/anomalies) utilise anomaly.manage.


Statistiques système​

Permissions : stats.exhaustive.read

Base URL : /api/v1/admin/system/stats

EndpointDescription
GET /admin/system/stats/summaryRésumé agrégé de toutes les organisations
GET /admin/system/stats/dailyStats quotidiennes par organisation
GET /admin/system/stats/revenue-trendsTendances de revenus (30 jours)
GET /admin/system/stats/top-organizationsClassement des organisations
GET /admin/system/stats/financial-overviewVue financière globale

Analytics système​

Permissions : stats.exhaustive.read

Base URL : /api/v1/admin/system/analytics

EndpointDescription
GET /admin/system/analytics/overviewVue d'ensemble
GET /admin/system/analytics/top-productsTop produits cross-org
GET /admin/system/analytics/sites-revenueRevenus par site cross-org
GET /admin/system/analytics/transaction-breakdownRépartition des transactions
GET /admin/system/analytics/growthCroissance globale
GET /admin/system/analytics/inactive-cardsCartes inactives

Voir aussi​