Skip to main content

Platform requirements

French version: ../REQUIREMENTS.md

Source: KIT_AGENT_PLATEFORME_IA_ENTERPRISE/MATRICE_EXIGENCES_PLATEFORME.csv, 355 requirements (269 P0, 86 P1) in 22 domains. The wording and acceptance criterion are the kit's own, kept in French as delivered. The master prompt mentions 264 requirements: the delivered matrix holds 355 since the addendum (section 20), and that file is authoritative.

Reading the generated traceability​

  • TRACEABILITY.csv: one row per requirement, enriched (code paths, routes, migrations, screens, tests, docs, evidence, blocker). Built by python tools/traceability/trace.py build from the matrix, traceability.yaml and evidence/results.json.
  • STATUS.md: counts per domain and lot; TEST_EVIDENCE.md: commands run and results; BLOCKERS.md: blockers, owner and exit criterion; RELEASE_READINESS.md: release verdict.
  • Statuses change on every run: this document does not copy them.

Status glossary (tools/traceability/trace.py)​

StatusMeaning
NOT_STARTEDno trace in the repository
IN_PROGRESScode or tests exist, but evidence is missing or residual work is declared
FAILEDa cited evidence set failed (non zero exit, failure or error)
BLOCKEDan external blocker is declared (client access, infrastructure, approval) with its exit criterion
PASSEDevery cited evidence set ran green (at least one check, no failure, no error, no skipped test), sources unchanged since, no residual work nor blocker

Dependency groups between lots​

Lots are described in ROADMAP.md. Domain to lot mapping:

DomainLotRequirements
FOUNDATIONL014
MANAGERL123
IAM_GOVL218
AGENT_RUNTIMEL317
LLM_FINOPSL316
DATA_RAGL424
MULTIMODALL412
OBSERVABILITYL514
SECURITY_SOCL625
AUDIT_EVIDENCEL617
DEV_MARKETPLACEL7, L822
FRONTENDL1 to L818
LICENSING_RELEASEL916
DOCUMENTATIONL1012
RELEASE_ACCEPTANCEL1016
HOST_BOOTSTRAPL118
CLUSTER_MANAGEMENTL112
HIGH_AVAILABILITYL1018
BACKUP_RECOVERYL1019
DISASTER_RECOVERYL1011
INFRA_UIL18
INFRA_SDKL75

Requirements by domain​

FOUNDATION​

IDPriorityRequirementAcceptance criterion
FOUN-001P0Inventaire repos branches et changements existantsRapport audit liens code et écarts
FOUN-002P0Architecture en plans et ADR versionnésArchitecture et ADR revus
FOUN-003P0Matrice bidirectionnelle exigences code API SQL UI tests docsChaque ID est lié à preuves
FOUN-004P0Plan DAG et lots livrablesOrdonnancement dépendances validé
FOUN-005P0Monorepo conventions Python TS GoBuild reproductible et lint
FOUN-006P0OpenAPI et JSON Schema versionnésContrats publiés et tests de compatibilité
FOUN-007P0PostgreSQL central acceptéConnexions migrations backup testés
FOUN-008P0Redis central acceptéConnexions cache HA et configuration testées
FOUN-009P0CI pipelines lint types unit integration e2ePipelines réellement exécutés
FOUN-010P0Gestion des secrets par référencesAucun secret en dur ou dans logs
FOUN-011P0SBOM et SPDX par artefactRapport de licence vérifié
FOUN-012P0Exceptions de licence PostgreSQL Redis client modelsExceptions enregistrées et validées
FOUN-013P0Matrice versions composants et dependancesVersions figées et testées
FOUN-014P0Build de distribution signé et reproductibleArtefacts hashes et signatures vérifiés

MANAGER​

IDPriorityRequirementAcceptance criterion
MANA-001P0Découverte clusters BYO ou managésInventaire vrai et mode découverte testé
MANA-002P0Inventaire nodes CPU RAM stockage GPUDonnées réelles affichées
MANA-003P0Preflight DNS TLS ports capacité versionsInstallation bloquée si contrôle critique échoue
MANA-004P0Profils development enterprise banking airgapped hybridChaque profil installable ou marqué bloque
MANA-005P0Catalogue managed componentsManifests par service validés
MANA-006P0Graphe de dépendances et ordre des opérationsTest ordre et cycles
MANA-007P0Reconciler desired observed statesConvergence vérifiée
MANA-008P0Différencier health operation security statesUI et API cohérentes
MANA-009P0Install/config/start/stop/restartVérifier action et état observé
MANA-010P0Rolling restart drain maintenance et PDBService critique protégé
MANA-011P0Scale KEDA HPA quotas ressourcesScale out et scale in testés
MANA-012P0Upgrade migration compatibilité canaryUpgrade depuis version antérieure testé
MANA-013P0Rollback ou restore expliciteRetour sûr ou impossibilité signalée
MANA-014P0Health liveness readiness functional probesSmoke test fonctionnel
MANA-015P0Drift detection configurationChangement hors manager détecté
MANA-016P0Config versions typed schema et secret refsValidation ref et rollback
MANA-017P0Node agent Go avec allowlistCommande arbitraire interdite
MANA-018P0Platform Operator KubernetesReconcilier des CRD ou ressources déploiement
MANA-019P0Backups coordonnés et tests restoreRestauration exécutée
MANA-020P0Diagnostics support bundle expurgéPack sans PII ou secret
MANA-021P0Installation offline et images miroirAucun accès Internet durant recette
MANA-022P0Bascule sur infrastructure client existanteBYO sans commande destructrice
MANA-023P0Rapport recette installation signéPASS FAIL BLOCKED avec preuves

IAM_GOV​

IDPriorityRequirementAcceptance criterion
IAM_-001P0Keycloak OIDC SAML SSO MFALogin et logout et MFA vérifiés
IAM_-002P0Identités de service SPIFFE SPIRE mTLSmTLS et workload IDs vérifiés
IAM_-003P0OpenFGA relations ressourcesAllow/deny par document et action
IAM_-004P0OPA Rego ABAC contextuelDécision obligation et deny testés
IAM_-005P0Policy bundles version et publicationVersion réellement chargée par service
IAM_-006P0Deny by default et fail-closedPanne OPA/FGA action sensible bloquée
IAM_-007P0Context Authority signe contextesSignature expiry issuer audience validés
IAM_-008P0Delegation scopes audience expiry depthSous-agent droits plus restrictifs
IAM_-009P0Identité on_behalf_of utilisateur de bout en boutAction audite user et workload
IAM_-010P0Sessions révoquées en cours de runNouvelle action sensible bloquée
IAM_-011P0Identités pour agents planifiésMandat explicite sans usurpation
IAM_-012P0Séparation roles admins developers auditorsPermissions backend testées
IAM_-013P0Break glass exceptionnelDurée audit et approbation validés
IAM_-014P0Approval four-eyes et séparation tâchesApprobateur différent demandeur
IAM_-015P0Permissions données RLS et droits sourcesLecture hors ressource refusée
IAM_-016P0Policy simulator et audit des changementsTests diff/revisions et UI
IAM_-017P0Modeles de rôles RBAC ABAC ReBACPermission effective jamais plus large
IAM_-018P0KMS HSM integration via clientGestion de clé négociée ou blocage documenté

AGENT_RUNTIME​

IDPriorityRequirementAcceptance criterion
AGEN-001P0Runtime Navin Loop Runner SubagentManagerAgent multi-step produit résultat testable
AGEN-002P0Planning acting verification recoveryRecette erreurs et correction
AGEN-003P0Checkpoints et reprise sans re-exécution non sûreResume idempotent validé
AGEN-004P0Heartbeat deadline cancellationSuspension et timeout testés
AGEN-005P0Temporal workflows durablesReprise après interruption process
AGEN-006P0NATS JetStream events durablesRedelivery et déduplication testés
AGEN-007P0gVisor sandbox code outilAction hors sandbox interdite
AGEN-008P0Agent registry versions owners risk statesCycle draft approuve actif suspendu
AGEN-009P0Application registry avec deploy et statutsApplications visibles et gouvernées
AGEN-010P0Agents tiers via SDK et gatewaysAgent externe ne contourne pas règles
AGEN-011P0MCP gateway authz par invocationAppel non autorisé bloqué
AGEN-012P0MCP catalogue discovery outils schemasOutils versions et scopes exposés
AGEN-013P0API gateway APISIX auth rate limitPolitique ingress et egress testée
AGEN-014P0Sécurisation sous-agent identités et ressourcesDroites limités et audit
AGEN-015P0Validation args outils effets side-effectsValidation avant mutation
AGEN-016P0Webhook events signés et idempotentsReplay et signature testés
AGEN-017P0Protected execution des skills/pluginsPermission demandée non accordée implicitement

LLM_FINOPS​

IDPriorityRequirementAcceptance criterion
LLM_-001P1LiteLLM OSS proxy centralAppel local via gateway
LLM_-002P1Provider local cloud config et secretsClé non visible et route testée
LLM_-003P1vLLM inference localeModele de recette répond
LLM_-004P1Registry modeles versions licenses weightsProvenance et approbation
LLM_-005P1Model modalities texte vision image audio videoMatrice support non fictive
LLM_-006P1Reasoning effort context output paramsValeur réelle fournisseur conservée
LLM_-007P1Fallback restrict par sensibilité régionPas de fallback interdit
LLM_-008P1Budget per user agent tenant projectBlocage sur plafond configuré
LLM_-009P1Quota rpm tpm concurrenceRate limiter test charge
LLM_-010P1Pricing dated input output cache reasoningUsage agrégé et tarif versionné
LLM_-011P1FinOps audio image vidéo GPU stockageCoûts avec provenance ou unavailable
LLM_-012P1Cost reservation reconciliationEstimation puis reçu
LLM_-013P1A/B model evaluations et baselinesComparaison sauvegardée
LLM_-014P1Choix providers GCP Azure AWS Anthropic OpenAI etcAdaptateurs vérifiés si credentials
LLM_-015P1Local-only / airgapped modelsAucun egress dans mode isolé
LLM_-016P1Model rollout et rollbackPublication approuvée et historique

DATA_RAG​

IDPriorityRequirementAcceptance criterion
DATA-001P0Storage abstraction S3 AWSUpload download credential et metadata testés
DATA-002P0Storage abstraction Azure BlobTests adaptateur ou BLOCKED dépendance client
DATA-003P0Storage abstraction GCSTests adaptateur ou BLOCKED dépendance client
DATA-004P0Storage abstraction IBM COSTests adaptateur ou BLOCKED dépendance client
DATA-005P0Storage abstraction Seaweed S3Tests adaptateur ou BLOCKED dépendance client
DATA-006P0Capabilities discovery versioning retention WORMVraie détection et refus absence
DATA-007P0Presigned URLs et contrôles accèsExpiration et scopes testés
DATA-008P0Qdrant filtre tenant et ACLPas de cross-tenant leakage
DATA-009P0Haystack ingest retrieve rerankRésultat et provenance testés
DATA-010P0Docling extraction PDF/Word/tableDocument de recette parsé
DATA-011P0PaddleOCR scan imagesOCR document de recette
DATA-012P0OpenLineage provenance transformationsLien source document réponse
DATA-013P0Chunk-level ACL et document-level ACLFragments interdits absents du contexte
DATA-014P0Source permission pre-retrievalRAG ne contourne pas source
DATA-015P0RAG poisoning detection quarantineDocument suspect isolé
DATA-016P0Retention/erasure data lifecycleRègle retention et effet mesuré
DATA-017P0RAG citations et version sourceRéponse cite sources autorisées
DATA-018P0PII detection PresidioExemples bancaires détectés
DATA-019P0Masking before LLM logs outputsAucune PII brute dans traces test
DATA-020P0Tokenization reversible vault separéDetokenization soumise droits
DATA-021P0Tink encryption envelope et rotation clésCiphertext et rotation testés
DATA-022P0Residency et data egress restrictionsDestination interdite bloquée
DATA-023P0SQL RLS isolation end-to-endTests access A != B
DATA-024P0Cache sensible encrypted et segregationIsolation des tenants vérifiée

MULTIMODAL​

IDPriorityRequirementAcceptance criterion
MULT-001P1LiveKit room et streaming temps réelSession voix fonctionnelle
MULT-002P1WebRTC reconnect low-latencyReconnexion et mesure latence
MULT-003P1faster whisper STTAudio de test transcrit
MULT-004P1pyannote diarisationChangements locuteurs détectés
MULT-005P1Silero VADSegments de parole détectés
MULT-006P1Kokoro TTSSynthèse testée avec poids approuvés
MULT-007P1VLM image/doc et vidéo framesTest vision et sortie
MULT-008P1Audio recording consent retentionRefus sans consentement
MULT-009P1Transcription PII protectionTranscript filtré
MULT-010P1Interrupt/turn cancellationTour interrompu proprement
MULT-011P1Licences codecs drivers models weightsSBOM et modèles qualifiés
MULT-012P1Identity user livekit participant actorAudit par participant et agent

OBSERVABILITY​

IDPriorityRequirementAcceptance criterion
OBSE-001P0OpenTelemetry instrumentation W3C traceTrace corrélée de bout en bout
OBSE-002P0OTel collector filtering exportPII expurgées avant export
OBSE-003P0Opik traces prompt evaluationsExecution LLM et outils visibles
OBSE-004P0Jaeger distributed tracesTrace interservices visible
OBSE-005P0Prometheus metrics p50 p95 p99Dashboards métriques vérifiés
OBSE-006P0Perses dashboards unifiedSources de métriques valides
OBSE-007P0Alertmanager routing silences groupingNotification test réellement reçue
OBSE-008P0OpenSearch logs indexing searchRecherche et tenant filtering
OBSE-009P0OpenSearch security analytics detectionsRègles déclenchent findings
OBSE-010P0OpenLineage lineage explorationSource vers réponse traçable
OBSE-011P0Opik et OTel pas seul audit probantEvents critiques persistés ailleurs
OBSE-012P0SLO et error budget trackingSLO réel par service
OBSE-013P0FinOps metrics tenant model agentCoûts de test attribués
OBSE-014P0Performance CPU GPU RAM concurrencyDonnées mesures véritables

SECURITY_SOC​

IDPriorityRequirementAcceptance criterion
SECU-001P0Falco runtime detectionAlerte test documentée
SECU-002P0Tetragon runtime enforcementPolitique et effet mesurés
SECU-003P0Detection ingestor normalize eventsAlertes de sources corrélées
SECU-004P0Event correlator user agent tenantIncident multi-source lié
SECU-005P0AI risk engine policy decisionSévérité et raison tracées
SECU-006P0Detection prompt injectionAppel outil interdit malgré injection
SECU-007P0Detection data exfiltrationEgress bloqué et incident
SECU-008P0Detection secrets leakSecret faux bloqué avant export
SECU-009P0Detection runaway agent cost loopsCircuit breaker applique
SECU-010P0Detection MCP compromised pluginPlugin unsigned refusé
SECU-011P0Detection privilege escalationEscalade refusée
SECU-012P0Detection RAG poisoningDocument suspect isolé
SECU-013P0Detection no-audit or unauthorized policy changeIncident généré
SECU-014P0SOC incidents assign lifecycleStatus et timeline auditables
SECU-015P0SOAR playbooks approved typed actionsAucune commande shell libre
SECU-016P0Kill Switch run agent subagentsCancel et refus nouvelles actions
SECU-017P0Kill Switch application tool MCP providerBlocage permanent redémarrage
SECU-018P0Kill Switch network CiliumRéseau isolé et vérifié
SECU-019P0Kill Switch credentials user and tenantRévocation appliquée et testée
SECU-020P0Containment desired observed receiptsNe passe VERIFIED que preuve réelle
SECU-021P0Separation alerting vs enforcement vs auditPanne d'un plan n'affaiblit pas contrôle
SECU-022P0Recover workflow four-eyes and reauthorizationReprise sous autorisation
SECU-023P0Transaction safety in incidentAucun paiement doublé
SECU-024P0False positive proportionality guardCritères d'automatisation prédéfinis
SECU-025P0SOC consoles and access controlRôles SOC et audit accès

AUDIT_EVIDENCE​

IDPriorityRequirementAcceptance criterion
AUDI-001P0Immutable audit event schemaContrat et validations
AUDI-002P0Audit capture who what when how why resultPreuve action complete
AUDI-003P0Trace and run ID correlationReconstitution timeline multiagent
AUDI-004P0Audit policy FGA OPA decisionsVersion reason obligations et IDs
AUDI-005P0Audit approvals delegation rights lineagePreuves corrélées
AUDI-006P0Audit data classification DLP and egressProtection indiquée et vérifiée
AUDI-007P0Audit tool model prompt skill plugin versionsConfiguration exec reproductible
AUDI-008P0Audit gateway durable queue no samplingPannes et redelivery testés
AUDI-009P0Transactional outbox idempotency dedupAucun event perdu au test
AUDI-010P0Sealing canonicalization hashing signatureVerification signature réussie
AUDI-011P0Client storage WORM Object Lock capabilityImmutabilité qualifiée ou refus
AUDI-012P0Audit encryption access separationAdministrateur technique ne voit pas payload
AUDI-013P0Retention and legal hold workflowsExpiration contrôlée et preuves
AUDI-014P0Audit read/export accesses themselves auditedTrace consult et export
AUDI-015P0Evidence verification integrity monitoringAltération détectée
AUDI-016P0Clock sync event_time ingested sealedHorodatages distincts vérifiés
AUDI-017P0Incident evidence preservation and chainAudit chaîne possession

DEV_MARKETPLACE​

IDPriorityRequirementAcceptance criterion
DEV_-001P1SDK Python TypeScript GoClients publiables et tests conformance
DEV_-002P1SDK contracts shared JSON SchemaCompatibles interlangage
DEV_-003P1CLI login and scaffold agentProjet créé utilisable
DEV_-004P1CLI create plugin skill prompt mcp connectorArtefacts valides générés
DEV_-005P1CLI validate test security authzTests réellement exécutés
DEV_-006P1CLI publish sign deploy doctor runsCommandes fonctionnelles
DEV_-007P1Developer code-first studio MonacoEditeur projets utilisable
DEV_-008P1Prompt registry drafts versions evaluationsPrompt version et changement audité
DEV_-009P1Skill registry SKILL.md and signaturesSkill version et permission vérifiés
DEV_-010P1MCP Studio server tool schemas authMCP serveur test lancé
DEV_-011P1Connector Studio OAuth API key SQLConf et secrets correctement gérés
DEV_-012P1Rule and Policy Studio simulate publishRego test et version active
DEV_-013P1OCI artifact plugin packagingDigest signature et SBOM
DEV_-014P1Manifest compatibility scopes dependenciesInstallation refuse demande non approuvée
DEV_-015P1Marketplace per tenant environmentInstallation isolée
DEV_-016P1Plugin install upgrade rollback uninstallLifecycle fonctionnel
DEV_-017P1Packs RH end-to-end with fake dataAgent RH et outils résultats testés
DEV_-018P1Packs Finance end-to-end with fake dataAgent Finance et outils résultats testés
DEV_-019P1Banking risk legal IT security sales etc templatesTemplates construits et lintés
DEV_-020P1Plugin docs tests evaluation dashboards alertsFichiers livrés et validés
DEV_-021P1Dev rules AGENTS.md security and qualityRègles distribuées et contrôles réels
DEV_-022P1Approval and production publication gatesPublication échoue si gate absent

FRONTEND​

IDPriorityRequirementAcceptance criterion
FRON-001P1Unified Next.js React TypeScript portalBuild et E2E responsive
FRON-002P1SSO navigation role and tenantMenus et backend authz
FRON-003P1Overview real health incidents costsPas de chiffres fictifs
FRON-004P1Platform service lifecycle pageActions connectées et audited
FRON-005P1Cluster nodes and GPU explorerInventaire réel et topologie
FRON-006P1Config version diff schema formsValidation et historique
FRON-007P1IAM users groups service identitiesInteractions backend
FRON-008P1Agents apps runs subagent explorerTimeline et état réels
FRON-009P1Model providers gateway catalog and FinOpsCRUD et permissions
FRON-010P1Developer studio prompts skills MCP pluginsEdition tests et publication
FRON-011P1Marketplace catalog and install wizardsInstall signé en staging
FRON-012P1Data RAG ACL ingest lineage UISource et ACL visibles
FRON-013P1Policy simulation masking encryption pagesChecks effectifs
FRON-014P1SOC incidents Kill Switch recovery UIVerifications et approbations
FRON-015P1Observability traces logs metrics dashboardsCorrélation interservices
FRON-016P1Audit evidence and export pagesDroits audit et WORM status
FRON-017P1License support documentation and backup pagesFonctions réelles
FRON-018P1Accessibility responsive filters paginationE2E et navigation clavier

LICENSING_RELEASE​

IDPriorityRequirementAcceptance criterion
LICE-001P0License annual 12 monthsSignature et dates valides
LICE-002P0License triennial 36 monthsSignature et dates valides
LICE-003P0No limit users agents apps cases pluginsAssertions entitlements
LICE-004P0No prices anywhereScan UI/docs/assets
LICE-005P0Offline license issuance verificationVérification sans réseau
LICE-006P0Install-group scope and DR portabilityMigration test
LICE-007P0Expiry grace no safety killLa sécurité et audit restent actifs
LICE-008P0Release version pinning componentsLock manifest complet
LICE-009P0Airgap bundle images packages models SQLInstall sans Internet
LICE-010P0Cosign signatures Syft SBOM TrivyChecks exécutés
LICE-011P0Registry Harbor and CI TektonBuild publish et pull local
LICE-012P0Git Gitea and GitOps ArgoCDPipeline et déploiement reproductibles
LICE-013P0Kyverno Cilium KEDA HPA HelmContrôles en cluster
LICE-014P0Backup Velero and restorationRestoration test
LICE-015P0Client installation handbook and release notesDocuments correspondent version
LICE-016P0Support bundle safe and diagnosticsPas de données sensibles

DOCUMENTATION​

IDPriorityRequirementAcceptance criterion
DOCU-001P1Product and architecture docsVue plans flux et décisions
DOCU-002P1Install admin manager and runbook docsCommandes vérifiées
DOCU-003P1IAM policies delegation RLS security docsExemples testés
DOCU-004P1SDK Python TS Go and schema docsSnippets exécutés
DOCU-005P1Plugin MCP skill prompt connector guidePack de démo construit selon guide
DOCU-006P1RAG multimodal voice data privacy docsConformité dépendances clarifiée
DOCU-007P1Observability SOC audit evidence docsIncident simulation reproductible
DOCU-008P1License annual triennial offline support docsAbsence prix et limites
DOCU-009P1Airgap upgrades backup disaster recovery docsTests et limites documentés
DOCU-010P1API OpenAPI and CLI referenceGénérés versions
DOCU-011P1Troubleshooting and compat matrixProcédures vérifiées
DOCU-012P1Conformance and customer acceptance reportPASS FAIL BLOCKED avec preuves

RELEASE_ACCEPTANCE​

IDPriorityRequirementAcceptance criterion
RELE-001P0Fresh cluster install automatedRecette sans intervention cachée
RELE-002P0BYO Kubernetes Postgres Redis storageServices clients non modifiés sans accord
RELE-003P0No Internet airgap installPacket egress test ou equivalent
RELE-004P0Failure of OPA OpenFGA audit gatewayFail closed ciblé prouvé
RELE-005P0Policy revocation while agent runningAction suivante refusée
RELE-006P0Non-privileged user cannot see another tenantTests de sécurité réels
RELE-007P0Bank financial operation retry idempotentPas de doublon
RELE-008P0Secrets encrypted and PII out of logsTests redaction
RELE-009P0Agent kill restart cannot resume unauthorizedSuspension persistante prouvée
RELE-010P0Signed plugin unsafe permission deniedMarketplace refuse
RELE-011P0Voice consent and participant identityE2E audio avec traces
RELE-012P0License expires without production cutComportement démontré
RELE-013P0Backup restore evidence retention testedRestauration et preuves
RELE-014P0Performance HA scale and RTO RPO measuredRésultats chiffrés selon cible client
RELE-015P0Developer first agent works day oneTemplate + SDK + docs aboutissent
RELE-016P0Docs and support handover completeRecette de bout en bout signée

HOST_BOOTSTRAP​

IDPriorityRequirementAcceptance criterion
HOST-001P0Inventaire hôtes VM bare metal et capacités CPU RAM GPU OS réseauHôtes/labels et ressources inventoriés, valeurs réconciliées par heartbeat
HOST-002P0Préflight SSH OS DNS NTP disque ports et réseauRapport reproductible de contrôles bloquants et avertissements
HOST-003P0SSH par clé Ed25519 ou certificats approuvésConnexion bootstrap validée, méthodes non autorisées refusées
HOST-004P1Support RSA conditionnel selon politique clientTests RSA moderne et politique de refus de clés faibles
HOST-005P0Strict SSH host key/certificate verificationHôte inconnu ou clé hôte modifiée refusés
HOST-006P0SSH via bastion proxy jump et réseaux segmentésE2E bootstrap via bastion sans accès SSH public direct
HOST-007P0Compte bootstrap dédié et sudo allowlist sans root permanentTests sudo allowlist et refus commandes non autorisées
HOST-008P0Références des clés et secrets uniquement dans PostgreSQLScanner DB/logs confirme absence de clés privées
HOST-009P0Binaire Node Agent signé digest vérifié et service systemd durciInstallation signature valide et rejet artefact altéré
HOST-010P0Bootstrap idempotent, rollback et suppression accès temporairesRelance bootstrap sans effets doubles; clés temporaires révoquées
HOST-011P0Enrôlement par jeton unique court lié à un hôteRéutilisation et expiration de jeton bloquées
HOST-012P0Identité SPIFFE et canal mTLS pour Node AgentIdentité vérifiée, rotation cert et refus certificat révoqué
HOST-013P0Agent Node Go inventaire heartbeat métriques et diagnosticsHeartbeats, health et inventaire visibles via API et UI
HOST-014P0Commandes agents signées allowlistées expirantes anti-rejeuRefus signature invalide, nonce rejoué, action hors périmètre
HOST-015P0Commandes agents context identité et audit reçus réelsChaque commande porte actor/tenant/trace/receipt vérifiable
HOST-016P0Mise en quarantaine désenrôlement et récupération machineRevoke bloque commandes et renouvellement et émet audit
HOST-017P1Mise à jour sécurisée du Node Agent avec rollbackTest upgrade signé et rollback sans perte inventaire
HOST-018P0Break glass SSH approuvé et auditéDouble validation, TTL et preuve intervention

CLUSTER_MANAGEMENT​

IDPriorityRequirementAcceptance criterion
CLUS-001P0Six modes single host node group K8s existing K8s managed multi cluster externalImport et opérations prouvés pour chacun ou mode marqué unsupported
CLUS-002P0Distinction platform managed et client managedActions destructives automatiquement refusées sur client managed
CLUS-003P0Import Kubernetes via API sans SSH et permissions minimalesImport E2E avec RBAC minimal prouvé
CLUS-004P0Cluster Agent Go répliqué et identité par clusterPerte replica sans perte de contrôle, tokens isolés
CLUS-005P0Cluster Agent connexion sortante mTLS et autonomie contrôlée offlinePerte Manager central n’autorise pas de nouvelles opérations sensibles
CLUS-006P0Platform Operator CRDs schémas et reconciliationTests reconcile install update drift delete contrôlé
CLUS-007P0Node pools CPU GPU labels et placement contraintWorkloads placés sur nœuds compatibles
CLUS-008P0ManagedComponent manifest des modes opérations dépendances et sécuritéValidation schema et intégration API/Operator
CLUS-009P0DAG dépendances services ordre et maintenanceStart/stop respectent dépendances et cas critiques
CLUS-010P0Séparation service start/stop et security suspensionKill switch reste actif après redémarrage de service
CLUS-011P1Capacity planning CPU RAM GPU et quotas par poolSaturation déclenche alerte et bloque planning irréalisable
CLUS-012P0Gestion de plusieurs clusters et perte de connexion WANConsoles affichent état non connu sans inventer état healthy

HIGH_AVAILABILITY​

IDPriorityRequirementAcceptance criterion
HAVA-001P0Profils standalone ha critical ha et choix de fault domainsProfils et limites déclarés clairement en UI et manifest
HAVA-002P0Frontend backend Manager gateway répliqués en HAPanne replica avec maintien SLA cible
HAVA-003P0HA Identity Policy Context Authority et Security ControllersPanne replica sans contournement OPA/OpenFGA et révocations
HAVA-004P0HA Audit Evidence SOC Kill Switch et LicensingPanne contrôle central n’efface ni suspend events ni audit
HAVA-005P0Topology spread affinity PDB et drains planifiésReplica spread across host/zone et maintenance compatible PDB
HAVA-006P0Leader election et anti-double opération exclusiveDeux reconcilers ne déclenchent pas deux upgrades/failovers concurrents
HAVA-007P0HA PostgreSQL sous K8s via CloudNativePGPrimary replica bascule testée avec mesures RPO RTO
HAVA-008P0HA PostgreSQL VM via Patroni ou client-managedGestion unique, fencing et rejoin testés sur profil concerné
HAVA-009P0HA Redis Sentinel ou Cluster et reconnexion clientsPanne primary, reconnexion et perte éventuelle documentée
HAVA-010P0HA NATS JetStream quorum et redelivery idempotentPanne membre et reprise sans double action métier
HAVA-011P0HA Temporal persistence et jobs durablesReprise workflow et side effects réconciliés
HAVA-012P0HA des dépendances Keycloak LiteLLM Opik OpenFGA Qdrant OpenSearchTests réels mode HA et dépendances pour versions pinées
HAVA-013P1HA OTel Collector Prometheus AlertmanagerCollecte et alerting vérifiés en panne replica
HAVA-014P0HA LiveKit avec limites de reconnexion roomsPerte room-node donne incident et reconnexion testée
HAVA-015P1HA vLLM et capacity GPU failoverRoutage replica sain et capacité restante vérifiés
HAVA-016P0Fail closed sécurité en panne control planeActions critiques interdites si audit/authz invalide
HAVA-017P0Observabilité HA distinction configured versus validatedUI montre épreuves, fault domains, quorum et mesures
HAVA-018P1Autoscaling horizontal KEDA HPA et politique de quotasTests montée charge et retour stable

BACKUP_RECOVERY​

IDPriorityRequirementAcceptance criterion
BACK-001P0Backup Manager central plans restauration permissions et historiqueUI API SQL job et audit E2E prouvés
BACK-002P0Storage adapter S3 Azure GCS IBM Seaweed BYOAdapters testés par capacité et fournisseur disponible
BACK-003P0Qualification capabilities versioning ObjectLock legal hold nativeFail closed si exigence WORM non supportée
BACK-004P0Velero backup Kubernetes manifests CRDs volumes compatiblesRestore vers environnement isolé avec tests de ressources
BACK-005P0PostgreSQL backup cohérent CNPG ou pgBackRest selon modeRestore base et validation cohérence
BACK-006P0PostgreSQL WAL continu et Point in Time RecoveryPITR à point de test et contrôle de données
BACK-007P0Snapshots etcd et procédure restore control planeReconstruction cluster prouvée en environnement de test
BACK-008P0Backup OpenSearch via snapshots natifsIndex restauré et requêtes de contrôle réussies
BACK-009P0Backup Qdrant via snapshots natifsCollection vecteurs restaurée et ACL conservées
BACK-010P0Backup Opik et backends MySQL Redis ClickHouse object storage selon distroRestauration traces et métadonnées validée version pinée
BACK-011P0Backup Temporal NATS JetStream et checkpoints agentsWorkflows et streams restaurables selon objectifs
BACK-012P0Backup OCI Harbor manifests prompts skills plugins policies modèlesDigests signatures et chargement des artefacts vérifiés
BACK-013P0Backup secrets certificats CA et processus key recoveryRestauration contrôlée sans exposition de clés
BACK-014P0Cohérence transverse DB objets registres versionsRapport références orphelines et réconciliation
BACK-015P0Chiffrement backup rétention et séparation de privilègesTests secrets non exposés, restauration autorisée, retention
BACK-016P0Backup WORM preuves d audit immuables sur backend qualifiéTest mutation/suppression refusées pendant rétention
BACK-017P0Tests réguliers automatiques restore isolé et intégritéRapport signé de restauration et alarmes en cas échec
BACK-018P0Backup policies monitoring retards erreurs et alertesAlertes opérationnelles et audit des erreurs
BACK-019P0Restore approval dry-run plan et rollback de configurationOpération impossible sans autorisation et plan compatible

DISASTER_RECOVERY​

IDPriorityRequirementAcceptance criterion
DR-001P0DR sites primary secondary multi cluster et rôlesSites et liens de réplication visibles et validés
DR-002P0Modes active passive warm cold et active active statelessProfils testés avec limites et dépendances documentées
DR-003P0Fencing ancien primary et prevention split brainTest promotion avec primaire isolé sans écriture double
DR-004P0Plan recovery séquencé données identités gateways modèlesDAG de reprise testé, état et preuves conservés
DR-005P0Reconstruire Manager depuis bundle offline backups et manifestsExercice recovery Manager sans serveur editeur
DR-006P0DNS load balancer routes reconfiguration failoverTraffic bascule suivant état et vérifications de santé
DR-007P0RPO RTO objectifs client et valeurs observéesExercice mesuré et rapport vs SLA validé
DR-008P0DR tests planifiés avec approbation et preuvesPlan exercise et runbook répliquables
DR-009P0Licence 12 36 mois reste valide pendant DR et mode offlineRecovery sans coupure licence ou contact éditeur
DR-010P0Audit identités suspensions et permissions préservés pendant DRAprès DR état de sécurité inchangé et vérifié
DR-011P0Réconciliation post failover empêche doubles paiementsTests idempotence E2E et reçus externes

INFRA_UI​

IDPriorityRequirementAcceptance criterion
INFUI-001P0UI hosts preflight SSH bootstrap et enrôlementE2E UI API SQL avec erreurs et étapes visibles
INFUI-002P0UI node agents heartbeats certificats et révocationChangements état et audit visibles de bout en bout
INFUI-003P0UI clusters pools placement et dépendancesTopology réelle et plan placement contrôlable
INFUI-004P0UI HA replicas quorum failover et fault domainsÉtat configuré et validé distingué
INFUI-005P0UI backups policies jobs historiques et testsPlan sauvegarde exécuté et preuves consultables
INFUI-006P0UI Restore dry run approve execute verifyRestore impossible sans approval et test authentifié
INFUI-007P0UI PRA sites objectifs exercices et résultatsFailover planifié + exercise rapport réel consultable
INFUI-008P0UI client-managed actions non autorisées cachées et refusées backendTest RBAC et forbidden opérations direct API

INFRA_SDK​

IDPriorityRequirementAcceptance criterion
INFSDK-001P0SDK Python TS Go hosts bootstrap enrollment diagnosticsContract et conformance tests sur 3 SDK
INFSDK-002P0SDK Python TS Go clusters et services operationsResponse operation_id et audit corrélé
INFSDK-003P0SDK Python TS Go HA backups restore DRApprobations et versions supportées prouvées
INFSDK-004P0Contexte user identity on behalf of service delegation pour operationsAucun appel système sans attribution identité et chaîne
INFSDK-005P0CLI host cluster services ha backup restore drCLI tests avec API réelle et aide docs offline