Contrats API principaux de l'architecture / Main API contracts of the architecture
Référence : architecture produit, partie B, section 6.3. Chaque contrat nommé par la référence est servi par une
route réelle du Control Plane (/v1/..., docs/api/openapi-v1.json) ou du Platform Manager (/api/v1/...,
navin-manager/docs/api/manager-openapi.json). Le test
services/control-plane/tests/test_architecture_contracts_map.py lit les deux tableaux ci-dessous et vérifie que
chaque route existe dans la spécification OpenAPI correspondante.
Reference: product architecture, part B, section 6.3. Every contract named by the reference is served by a real route
of the Control Plane (/v1/..., docs/api/openapi-v1.json) or of the Platform Manager (/api/v1/...,
navin-manager/docs/api/manager-openapi.json). The test
services/control-plane/tests/test_architecture_contracts_map.py reads both tables below and checks that every route
exists in the matching OpenAPI specification.
Français
| Contrat de la référence | Route réelle | Suivi de l'opération longue |
|---|---|---|
| POST /platform/installations | POST /api/v1/clusters/{cluster_id}/services | operation_id renvoyé, suivi par GET /api/v1/operations/{operation_id} |
| GET /components | GET /api/v1/clusters/{cluster_id}/services | lecture |
| POST /components/{id}/operations | POST /api/v1/clusters/{cluster_id}/services/{service}/actions | operation_id renvoyé, abandon et reprise par POST /api/v1/operations/{operation_id}/abort et /retry |
| PUT /components/{id}/configuration | PUT /api/v1/clusters/{cluster_id}/services/{service}/config | version de configuration, application par POST .../config/apply (operation_id) |
| POST /agents | POST /v1/agents | synchrone |
| POST /executions | POST /v1/agents/{agent_id}/runs | run_id renvoyé, en-tête Idempotency-Key contre les doublons, suivi par GET /v1/runs/{run_id} |
| POST /delegations | POST /v1/delegations | synchrone |
| POST /authorization/check | POST /v1/authz/check | synchrone |
| POST /policies/validate | POST /v1/policies/simulate | synchrone (simulation sur une révision candidate) |
| POST /prompts | POST /v1/prompts | synchrone |
| POST /skills | POST /v1/skills | synchrone |
| POST /mcp-servers | POST /v1/mcp/servers | synchrone |
| POST /plugins/installations | POST /v1/marketplace/installations | identifiant d'installation, suivi par GET /v1/marketplace/installations/{installation_id}/events |
| POST /models | POST /v1/models | synchrone |
| POST /evaluations/runs | POST /v1/evaluations/runs | identifiant de run, suivi par GET /v1/evaluations/runs/{run_id} |
| GET /audit/events | GET /v1/audit/events | lecture |
| POST /incidents | POST /v1/incidents | synchrone |
| POST /security/containments | POST /v1/soc/orders | identifiant d'ordre, approbation par POST /v1/soc/orders/{order_id}/approve |
| POST /security/recoveries | POST /v1/soc/recoveries | identifiant de reprise, approbation à quatre yeux puis réautorisation |
| POST /license/activate | POST /v1/license/activations | synchrone, hors ligne possible |
English
| Reference contract | Real route | Tracking of the long operation |
|---|---|---|
| POST /platform/installations | POST /api/v1/clusters/{cluster_id}/services | operation_id returned, followed with GET /api/v1/operations/{operation_id} |
| GET /components | GET /api/v1/clusters/{cluster_id}/services | read |
| POST /components/{id}/operations | POST /api/v1/clusters/{cluster_id}/services/{service}/actions | operation_id returned, abort and retry with POST /api/v1/operations/{operation_id}/abort and /retry |
| PUT /components/{id}/configuration | PUT /api/v1/clusters/{cluster_id}/services/{service}/config | configuration version, applied with POST .../config/apply (operation_id) |
| POST /agents | POST /v1/agents | synchronous |
| POST /executions | POST /v1/agents/{agent_id}/runs | run_id returned, Idempotency-Key header against duplicates, followed with GET /v1/runs/{run_id} |
| POST /delegations | POST /v1/delegations | synchronous |
| POST /authorization/check | POST /v1/authz/check | synchronous |
| POST /policies/validate | POST /v1/policies/simulate | synchronous (simulation on a candidate revision) |
| POST /prompts | POST /v1/prompts | synchronous |
| POST /skills | POST /v1/skills | synchronous |
| POST /mcp-servers | POST /v1/mcp/servers | synchronous |
| POST /plugins/installations | POST /v1/marketplace/installations | installation id, followed with GET /v1/marketplace/installations/{installation_id}/events |
| POST /models | POST /v1/models | synchronous |
| POST /evaluations/runs | POST /v1/evaluations/runs | run id, followed with GET /v1/evaluations/runs/{run_id} |
| GET /audit/events | GET /v1/audit/events | read |
| POST /incidents | POST /v1/incidents | synchronous |
| POST /security/containments | POST /v1/soc/orders | order id, approved with POST /v1/soc/orders/{order_id}/approve |
| POST /security/recoveries | POST /v1/soc/recoveries | recovery id, four eyes approval then reauthorization |
| POST /license/activate | POST /v1/license/activations | synchronous, offline possible |
Écart restant / Remaining gap
Le Platform Manager renvoie un operation_id unique pour toutes ses opérations longues. Le Control Plane renvoie
l'identifiant de la ressource suivie (run, installation, run d'évaluation, ordre, reprise) et n'accepte
Idempotency-Key que sur la création de runs et d'approbations : un operation_id commun et la déduplication sur
chaque création longue restent à faire.
The Platform Manager returns one operation_id for every long operation. The Control Plane returns the id of the
tracked resource (run, installation, evaluation run, order, recovery) and accepts Idempotency-Key only on run and
approval creation: a common operation_id and deduplication on every long creation remain to be done.