Aller au contenu

API HTTP

Liste des routes HTTP exposées par le serveur Fastify d’arka-deck, groupées par domaine fonctionnel.

Source de vérité : adapters/inbound/web/server/src/routes/.


  • CORS : localhost + plages RFC1918 en mode LAN
  • CSP : script-src 'self', connect-src localhost + LAN
  • Rate limit : 900 writes/min (exemptions GET/loopback)
  • Token : header X-Arka-Token obligatoire en mode LAN
  • HSTS : désactivé (HTTP local, pas TLS)
  • Request ID : UUID par requête, loggé

MéthodePathDescription
GET/api/healthHealth check (statut + version)
GET/api/system/*Métadonnées système (boot, token)
GET/api/i18n/:langTraductions UI
GET/api/preferencesPréférences utilisateur
PUT/api/preferencesMettre à jour les préférences

MéthodePathDescription
GET/api/workspacesListe
GET/api/workspaces/:idDétail
POST/api/workspacesCréer
PUT/api/workspaces/:idModifier
DELETE/api/workspaces/:idSupprimer (refuse si non-vide)
GET/api/workspaces/:id/projectsProjets du workspace
GET/api/projectsListe tous projets
GET/api/projects/:idDétail
GET/api/projects/find-by-cwd?path=...Détection auto par marker
POST/api/projectsCréer (vérifie allowlist + workspace)
PUT/api/projects/:idModifier (path immuable)
DELETE/api/projects/:idForget (204)
DELETE/api/projects/:id?purge=truePurge complet
POST/api/projects/:id/touchMettre à jour lastUsedAt

MéthodePathDescription
GET/api/catalogue/profilesListe des profils HYOS
GET/api/catalogue/profiles/:idDétail d’un profil
DELETE/api/catalogue/cacheVider le cache catalogue

MéthodePathDescription
POST/api/chat/sessionsDémarrer une session
POST/api/chat/sessions/:id/send-messageEnvoyer un tour (SSE stream)
GET/api/chat/sessions/:id/streamStream SSE de la session
GET/api/chat/sessionsLister les sessions d’un projet
GET/api/chat/sessions/:idDétail session

MéthodePathDescription
GET/api/memory/:projectIdVue d’ensemble mémoire projet
POST/api/memory/:projectId/entryCapturer une entrée
GET/api/memory/:projectId/entriesLister les entrées

MéthodePathDescription
GET/api/arkadoc/:projectIdListe documents
GET/api/arkadoc/:projectId/:docIdDétail document
PATCH/api/arkadoc/:projectId/:docId/statusModifier statut
GET/api/arkadoc/:projectId/:docId/renderRendu Markdown

MéthodePathDescription
GET/api/projects/:id/documentation/documentsListe filtrée des livrables ArkaDoc du projet
GET/api/projects/:id/documentation/documents/:docId/indexIndex de consultation d’un document
GET/api/projects/:id/documentation/documents/:docId/outlinePlan lisible du document
GET/api/projects/:id/documentation/documents/:docId/neighborsRelations entrantes/sortantes du document
GET/api/projects/:id/documentation/documents/:docId/fullLecture complète du document
GET/api/projects/:id/documentation/documents/:docId/blocks/:blockIdLecture d’un bloc précis

Ces routes lisent les documents ArkaDoc réels du projet. Elles servent l’UI Documentation et les tools MCP agents qui naviguent par index/blocs avant d’ouvrir un document complet.


MéthodePathDescription
GET/api/projects/:id/agent-action-cardsCartes pour le projet/la session, filtrables par run
POST/api/projects/:id/agent-action-cards/:cardId/selectSélectionner une carte avant tour ou commande d’orchestration
GET/api/cortex-actions/treeArbre des blocs catalogue
GET/api/cortex-actions/search?q=Rechercher des blocs catalogue
GET/api/cortex-actions/:type/:id/contentLire le contenu d’un bloc catalogue
POST/api/cortex-actions/:projectId/selectEnregistrer une sélection scopée projet pour le prochain tour
POST/api/cortex-actions/:projectId/exec-logEnregistrer un log d’exécution scopé projet
GET/api/cortex-actions/:projectId/optionsLire les options Cortex Actions du projet
PUT/api/cortex-actions/:projectId/optionsModifier les options Cortex Actions du projet
GET/api/cortex-actions/:projectId/favoritesLire les favoris projet
POST/api/cortex-actions/:projectId/favoritesAjouter un favori projet
DELETE/api/cortex-actions/:projectId/favorites/:type/:idRetirer un favori projet
POST/api/cortex-actions/:projectId/favorites/suggestLancer le worker de suggestion scopé projet

Les cards d’approbation de dispatch sont générées depuis les documents ArkaDoc task ready et excluent les assignations uniquement QA. Les ids de cards existants sont réutilisés au rafraîchissement pour éviter les doublons.


MéthodePathDescription
GET/api/squads/:projectIdListe squads du projet
POST/api/squadsCréer une squad
POST/api/squads/:id/materialize-leaderRecruter le Pack Leader
GET/api/orchestration/:projectId/missionsListe missions
POST/api/orchestration/missionsDémarrer mission
GET/api/orchestration/missions/:idÉtat mission

MéthodePathDescription
GET/api/mission-guardian/:projectId/stateÉtat phases + gates
POST/api/mission-guardian/:projectId/decisionEnregistrer décision
GET/api/mission-guardian/:projectId/evidencePreuves capturées

Mission Guardian est l’autorité de gate. Mission Control est exposé aux agents via les surfaces runtime context/MCP.


MéthodePathDescription
GET/api/providers/manifestsManifests statiques (catalogue)
GET/api/providers/instancesListe instances configurées
POST/api/providers/instancesCréer une instance
PUT/api/providers/instances/:idModifier
DELETE/api/providers/instances/:idSupprimer
POST/api/providers/instances/:id/testTester (check + live)
GET/api/cortex-lite/projects/:id/stateÉtat Cortex Lite projet
POST/api/cortex-lite/projects/:id/syncSynchroniser
GET/api/cortex-runtime/statusReadiness endpoint runtime
POST/api/cortex-runtime/syncSynchroniser atoms/prompts runtime
GET/api/projects/:id/runtime/snapshotSnapshot runtime projet pour agents
GET/api/projects/:id/runtime/docsRésumés ArkaDoc runtime
GET/api/projects/:id/runtime/docs/:docIdDétail ArkaDoc runtime
POST/api/projects/:id/runtime/docs/searchRecherche ArkaDoc runtime
GET/api/projects/:id/runtime/tasksRésumés tasks runtime
GET/api/projects/:id/runtime/memoryMémoire runtime par scope

Pour le dispatch de task, les résumés runtime exposent l’id ArkaDoc comme dispatch_task_id. Un task_id métier du payload peut être affiché comme business_task_id, mais les commandes de dispatch doivent utiliser l’id ArkaDoc.


MéthodePathDescription
GET/api/connectors/manifestsConnecteurs disponibles
GET/api/connectors/installations/:projectIdInstallations du projet
POST/api/connectors/installationsActiver un connecteur
DELETE/api/connectors/installations/:idDésactiver
POST/api/connectors/oauth/startDémarrer flow OAuth
GET/api/connectors/oauth/callbackCallback OAuth
POST/api/connectors/executionsExécuter une action
GET/api/connectors/audit-log/:projectIdAudit trail

MéthodePathDescription
GET/api/projects/:id/mcp-connectorsListe des MCP attachés au projet
POST/api/projects/:id/mcp-connectorsCréer un MCP projet custom HTTP/SSE
POST/api/projects/:id/mcp-connectors/from-installation/:installationIdAttacher le MCP exposé par une installation connecteur
GET/api/projects/:id/mcp-connectors/:connectorIdDétail d’un MCP projet
PATCH/api/projects/:id/mcp-connectors/:connectorIdModifier nom, endpoint ou politique tools
POST/api/projects/:id/mcp-connectors/:connectorId/testTester la disponibilité du serveur MCP
POST/api/projects/:id/mcp-connectors/:connectorId/enableActiver l’exposition aux agents du projet
POST/api/projects/:id/mcp-connectors/:connectorId/disableDésactiver l’exposition aux agents du projet
DELETE/api/projects/:id/mcp-connectors/:connectorIdRetirer le MCP du projet

Les MCP projet sont scopés à un projet et exposés au runtime provider sous un nom connector_*. Les endpoints distants doivent utiliser HTTPS ; le HTTP est accepté uniquement en loopback. Les secrets ne sont pas copiés dans la configuration MCP projet.


MéthodePathDescription
POST/api/workers/:name/invokeInvoquer un worker (1-shot)
GET/api/workers/:name/logsLogs d’invocation

MéthodePathDescription
GET/api/fs/read?path=...Lire un fichier
POST/api/fs/writeÉcrire (allowlist)