Référence API #
RiskPilot expose une API REST Symfony sous /api. La SPA React utilise cette même API. Les exemples ci-dessous décrivent les familles de routes réellement présentes ; consultez le code du contrôleur pour le contrat exhaustif de votre version.
Authentification #
| Méthode | Route | Usage |
|---|---|---|
| POST | /api/auth/login | connexion, MFA si requis |
| POST | /api/auth/refresh | rotation du refresh token |
| POST | /api/auth/logout | révocation de la session |
| POST | /api/auth/forgot-password | demande de récupération |
| POST | /api/auth/reset-password | nouveau mot de passe |
| GET/PUT | /api/me | lire ou modifier le profil |
| GET/DELETE | /api/me/sessions | consulter ou révoquer |
Les routes privées utilisent Authorization: Bearer <JWT>. Le refresh token reste dans un cookie HttpOnly et ne doit pas être copié dans le stockage JavaScript.
Inventaire et risques #
/api/scopes/api/assets/api/threats/api/vulnerabilities/api/security-controls/api/risks/api/risk-matrix/api/risk-governance/policies/api/risk-governance/{acceptances,campaigns,recommendations,portfolio}
Les créations et modifications d’inventaire/risques exigent généralement ROLE_RISK_MANAGER. Chaque identifiant relié est recherché dans le tenant.
Actions et notifications #
/api/actions gère la liste et le cycle de vie. /api/actions/{id}/comments gère les commentaires. /api/notifications et /api/notifications/{id}/read exposent les notifications. Le calendrier privé utilise /api/me/calendar et /api/calendar/{token}.ics.
Conformité et assurance #
/api/frameworkset exigences ;/api/compliance-assessmentset résultats ;/api/statements-of-applicability;/api/control-tests;/api/requirement-mappings;/api/audit-management.
Une SoA approuvée ne peut pas être modifiée ; l’endpoint de révision crée une nouvelle version.
Autres registres #
/api/third-parties, /api/resilience, /api/regulatory-records, /api/executive-governance et /api/isms-documents couvrent respectivement tiers, incidents/continuité, réglementation, pilotage et documents.
Les portails publics fournisseur et document utilisent des jetons opaques dédiés ; ils ne donnent pas accès aux API privées du tenant.
Exports et santé #
/api/exports/risks.csv, /api/exports/actions.csv et /api/exports/compliance/{id}.csv produisent des CSV tenant-scoped. /api/health sert aux contrôles de disponibilité. /api/metrics est une route technique à protéger selon l’architecture d’exposition.
Intégrations versionnées #
/api/v1/integrations gère configurations, clés et webhooks. /api/v1/service/status vérifie une clé de service et retourne seulement son organisation et ses portées.
Erreurs et sécurité #
400: entrée ou règle métier invalide ;401: authentification absente ou expirée ;403: rôle insuffisant ;404: ressource absente ou masquée car hors tenant ;409: conflit d’état lorsque le workflow l’exige.
Ne concluez pas qu’un identifiant existe dans un autre tenant à partir d’un 404. Les clients doivent gérer expiration du JWT, rotation et révocation sans rejouer aveuglément une mutation.
Indicateurs versionnés #
GET|POST /api/v1/indicators: lister et créer les définitions KPI/KRI ;GET /api/v1/indicators/{id}/values?limit=100: lire l’historique antéchronologique ;POST /api/v1/indicators/{id}/values: enregistrer une mesure et sa clé d’idempotence ;POST /api/v1/indicators/{id}/values/batch: importer jusqu’à 1 000 mesures avec erreurs ligne par ligne ;GET /api/v1/indicators/{id}/values/export: exporter la série en CSV chronologique.
Les endpoints appliquent l’organisation de l’utilisateur connecté. Ne réutilisez jamais une clé d’idempotence pour une autre mesure du même indicateur.
Espaces gouvernés, rapports et IA #
Les nouvelles familles d’API sont détaillées dans les guides Pilotage opérationnel, Décision, Expérimentations, Analyses, Rapports annuels et Copilote IA. Toutes utilisent le JWT courant, déterminent l’organisation côté serveur et ignorent toute tentative de choisir un autre tenant dans le payload.
Les erreurs suivent l’objet {"code":"CODE_STABLE","message":"Explication"} lorsque le contrôleur fournit un message. Les codes importants comprennent VALIDATION_ERROR (422), NOT_FOUND (404), INVALID_TRANSITION ou INVALID_APPROVAL (422), IMMUTABLE_RECORD (409), UNSUPPORTED_FORMAT (400), IMPORT_CONFLICT (409) et AI_CONNECTION_FAILED (502).
EBIOS RM et matrice RBAC #
Consultez Ateliers EBIOS RM pour les routes /api/v1/ebios et Rôles et permissions pour /api/settings/rbac. Les contrôleurs EBIOS évaluent les permissions fines ebios.read, ebios.update et ebios.validate, puis vérifient méthode, tenant, ordre et séparation rédacteur-validateur. L’API RBAC exige admin.roles, retourne le catalogue effectif et remplace la matrice complète de l’organisation.
Conversations IA gouvernées #
Le guide Copilote IA détaille /api/copilot et /api/compliance-results/{id}/copilot. Ces routes authentifiées exigent consentement, limitent question et historique, partagent un quota de 20 appels par utilisateur et par heure et n’effectuent aucune écriture automatique. Prévisualisez toujours le contexte de conformité avant l’envoi.