Exigences de la plateforme
Version anglaise : en/REQUIREMENTS.md
Source : KIT_AGENT_PLATEFORME_IA_ENTERPRISE/MATRICE_EXIGENCES_PLATEFORME.csv, 355 exigences (269 P0, 86 P1) réparties en 22 domaines. Le libellé et le critère d'acceptation sont ceux du kit, sans reformulation. Le prompt maître cite 264 exigences : la matrice livrée en contient 355 depuis l'addendum (section 20), c'est ce fichier qui fait foi.
Lire la traçabilité générée
- TRACEABILITY.csv : une ligne par exigence, enrichie (chemins de code, routes, migrations, écrans, tests, docs, preuves, blocage). Produit par
python tools/traceability/trace.py buildà partir de la matrice, detraceability.yamlet des résultats deevidence/results.json. - STATUS.md : comptes par domaine et par lot ; TEST_EVIDENCE.md : commandes exécutées et résultats ; BLOCKERS.md : blocages, propriétaire et critère de sortie ; RELEASE_READINESS.md : verdict de livraison.
- Les statuts changent à chaque exécution : ce document ne les recopie pas.
Glossaire des statuts (tools/traceability/trace.py)
| Statut | Signification |
|---|---|
| NOT_STARTED | aucune trace dans le dépôt pour l'exigence |
| IN_PROGRESS | du code ou des tests existent, mais une preuve manque ou un travail résiduel est déclaré |
| FAILED | un jeu de preuves cité a échoué (code de sortie non nul, échec ou erreur) |
| BLOCKED | un blocage externe est déclaré (accès client, infrastructure, approbation) avec son critère de sortie |
| PASSED | chaque jeu de preuves cité a tourné vert (au moins un contrôle, aucun échec, aucune erreur, aucun test sauté), les sources n'ont pas changé depuis, aucun travail résiduel ni blocage |
Groupes de dépendances entre lots
Les lots sont décrits dans ROADMAP.md. Correspondance domaine vers lot :
| Domaine | Lot | Exigences |
|---|---|---|
| FOUNDATION | L0 | 14 |
| MANAGER | L1 | 23 |
| IAM_GOV | L2 | 18 |
| AGENT_RUNTIME | L3 | 17 |
| LLM_FINOPS | L3 | 16 |
| DATA_RAG | L4 | 24 |
| MULTIMODAL | L4 | 12 |
| OBSERVABILITY | L5 | 14 |
| SECURITY_SOC | L6 | 25 |
| AUDIT_EVIDENCE | L6 | 17 |
| DEV_MARKETPLACE | L7, L8 | 22 |
| FRONTEND | L1 à L8 | 18 |
| LICENSING_RELEASE | L9 | 16 |
| DOCUMENTATION | L10 | 12 |
| RELEASE_ACCEPTANCE | L10 | 16 |
| HOST_BOOTSTRAP | L1 | 18 |
| CLUSTER_MANAGEMENT | L1 | 12 |
| HIGH_AVAILABILITY | L10 | 18 |
| BACKUP_RECOVERY | L10 | 19 |
| DISASTER_RECOVERY | L10 | 11 |
| INFRA_UI | L1 | 8 |
| INFRA_SDK | L7 | 5 |
Exigences par domaine
FOUNDATION
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| FOUN-001 | P0 | Inventaire repos branches et changements existants | Rapport audit liens code et écarts |
| FOUN-002 | P0 | Architecture en plans et ADR versionnés | Architecture et ADR revus |
| FOUN-003 | P0 | Matrice bidirectionnelle exigences code API SQL UI tests docs | Chaque ID est lié à preuves |
| FOUN-004 | P0 | Plan DAG et lots livrables | Ordonnancement dépendances validé |
| FOUN-005 | P0 | Monorepo conventions Python TS Go | Build reproductible et lint |
| FOUN-006 | P0 | OpenAPI et JSON Schema versionnés | Contrats publiés et tests de compatibilité |
| FOUN-007 | P0 | PostgreSQL central accepté | Connexions migrations backup testés |
| FOUN-008 | P0 | Redis central accepté | Connexions cache HA et configuration testées |
| FOUN-009 | P0 | CI pipelines lint types unit integration e2e | Pipelines réellement exécutés |
| FOUN-010 | P0 | Gestion des secrets par références | Aucun secret en dur ou dans logs |
| FOUN-011 | P0 | SBOM et SPDX par artefact | Rapport de licence vérifié |
| FOUN-012 | P0 | Exceptions de licence PostgreSQL Redis client models | Exceptions enregistrées et validées |
| FOUN-013 | P0 | Matrice versions composants et dependances | Versions figées et testées |
| FOUN-014 | P0 | Build de distribution signé et reproductible | Artefacts hashes et signatures vérifiés |
MANAGER
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| MANA-001 | P0 | Découverte clusters BYO ou managés | Inventaire vrai et mode découverte testé |
| MANA-002 | P0 | Inventaire nodes CPU RAM stockage GPU | Données réelles affichées |
| MANA-003 | P0 | Preflight DNS TLS ports capacité versions | Installation bloquée si contrôle critique échoue |
| MANA-004 | P0 | Profils development enterprise banking airgapped hybrid | Chaque profil installable ou marqué bloque |
| MANA-005 | P0 | Catalogue managed components | Manifests par service validés |
| MANA-006 | P0 | Graphe de dépendances et ordre des opérations | Test ordre et cycles |
| MANA-007 | P0 | Reconciler desired observed states | Convergence vérifiée |
| MANA-008 | P0 | Différencier health operation security states | UI et API cohérentes |
| MANA-009 | P0 | Install/config/start/stop/restart | Vérifier action et état observé |
| MANA-010 | P0 | Rolling restart drain maintenance et PDB | Service critique protégé |
| MANA-011 | P0 | Scale KEDA HPA quotas ressources | Scale out et scale in testés |
| MANA-012 | P0 | Upgrade migration compatibilité canary | Upgrade depuis version antérieure testé |
| MANA-013 | P0 | Rollback ou restore explicite | Retour sûr ou impossibilité signalée |
| MANA-014 | P0 | Health liveness readiness functional probes | Smoke test fonctionnel |
| MANA-015 | P0 | Drift detection configuration | Changement hors manager détecté |
| MANA-016 | P0 | Config versions typed schema et secret refs | Validation ref et rollback |
| MANA-017 | P0 | Node agent Go avec allowlist | Commande arbitraire interdite |
| MANA-018 | P0 | Platform Operator Kubernetes | Reconcilier des CRD ou ressources déploiement |
| MANA-019 | P0 | Backups coordonnés et tests restore | Restauration exécutée |
| MANA-020 | P0 | Diagnostics support bundle expurgé | Pack sans PII ou secret |
| MANA-021 | P0 | Installation offline et images miroir | Aucun accès Internet durant recette |
| MANA-022 | P0 | Bascule sur infrastructure client existante | BYO sans commande destructrice |
| MANA-023 | P0 | Rapport recette installation signé | PASS FAIL BLOCKED avec preuves |
IAM_GOV
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| IAM_-001 | P0 | Keycloak OIDC SAML SSO MFA | Login et logout et MFA vérifiés |
| IAM_-002 | P0 | Identités de service SPIFFE SPIRE mTLS | mTLS et workload IDs vérifiés |
| IAM_-003 | P0 | OpenFGA relations ressources | Allow/deny par document et action |
| IAM_-004 | P0 | OPA Rego ABAC contextuel | Décision obligation et deny testés |
| IAM_-005 | P0 | Policy bundles version et publication | Version réellement chargée par service |
| IAM_-006 | P0 | Deny by default et fail-closed | Panne OPA/FGA action sensible bloquée |
| IAM_-007 | P0 | Context Authority signe contextes | Signature expiry issuer audience validés |
| IAM_-008 | P0 | Delegation scopes audience expiry depth | Sous-agent droits plus restrictifs |
| IAM_-009 | P0 | Identité on_behalf_of utilisateur de bout en bout | Action audite user et workload |
| IAM_-010 | P0 | Sessions révoquées en cours de run | Nouvelle action sensible bloquée |
| IAM_-011 | P0 | Identités pour agents planifiés | Mandat explicite sans usurpation |
| IAM_-012 | P0 | Séparation roles admins developers auditors | Permissions backend testées |
| IAM_-013 | P0 | Break glass exceptionnel | Durée audit et approbation validés |
| IAM_-014 | P0 | Approval four-eyes et séparation tâches | Approbateur différent demandeur |
| IAM_-015 | P0 | Permissions données RLS et droits sources | Lecture hors ressource refusée |
| IAM_-016 | P0 | Policy simulator et audit des changements | Tests diff/revisions et UI |
| IAM_-017 | P0 | Modeles de rôles RBAC ABAC ReBAC | Permission effective jamais plus large |
| IAM_-018 | P0 | KMS HSM integration via client | Gestion de clé négociée ou blocage documenté |
AGENT_RUNTIME
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| AGEN-001 | P0 | Runtime Navin Loop Runner SubagentManager | Agent multi-step produit résultat testable |
| AGEN-002 | P0 | Planning acting verification recovery | Recette erreurs et correction |
| AGEN-003 | P0 | Checkpoints et reprise sans re-exécution non sûre | Resume idempotent validé |
| AGEN-004 | P0 | Heartbeat deadline cancellation | Suspension et timeout testés |
| AGEN-005 | P0 | Temporal workflows durables | Reprise après interruption process |
| AGEN-006 | P0 | NATS JetStream events durables | Redelivery et déduplication testés |
| AGEN-007 | P0 | gVisor sandbox code outil | Action hors sandbox interdite |
| AGEN-008 | P0 | Agent registry versions owners risk states | Cycle draft approuve actif suspendu |
| AGEN-009 | P0 | Application registry avec deploy et statuts | Applications visibles et gouvernées |
| AGEN-010 | P0 | Agents tiers via SDK et gateways | Agent externe ne contourne pas règles |
| AGEN-011 | P0 | MCP gateway authz par invocation | Appel non autorisé bloqué |
| AGEN-012 | P0 | MCP catalogue discovery outils schemas | Outils versions et scopes exposés |
| AGEN-013 | P0 | API gateway APISIX auth rate limit | Politique ingress et egress testée |
| AGEN-014 | P0 | Sécurisation sous-agent identités et ressources | Droites limités et audit |
| AGEN-015 | P0 | Validation args outils effets side-effects | Validation avant mutation |
| AGEN-016 | P0 | Webhook events signés et idempotents | Replay et signature testés |
| AGEN-017 | P0 | Protected execution des skills/plugins | Permission demandée non accordée implicitement |
LLM_FINOPS
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| LLM_-001 | P1 | LiteLLM OSS proxy central | Appel local via gateway |
| LLM_-002 | P1 | Provider local cloud config et secrets | Clé non visible et route testée |
| LLM_-003 | P1 | vLLM inference locale | Modele de recette répond |
| LLM_-004 | P1 | Registry modeles versions licenses weights | Provenance et approbation |
| LLM_-005 | P1 | Model modalities texte vision image audio video | Matrice support non fictive |
| LLM_-006 | P1 | Reasoning effort context output params | Valeur réelle fournisseur conservée |
| LLM_-007 | P1 | Fallback restrict par sensibilité région | Pas de fallback interdit |
| LLM_-008 | P1 | Budget per user agent tenant project | Blocage sur plafond configuré |
| LLM_-009 | P1 | Quota rpm tpm concurrence | Rate limiter test charge |
| LLM_-010 | P1 | Pricing dated input output cache reasoning | Usage agrégé et tarif versionné |
| LLM_-011 | P1 | FinOps audio image vidéo GPU stockage | Coûts avec provenance ou unavailable |
| LLM_-012 | P1 | Cost reservation reconciliation | Estimation puis reçu |
| LLM_-013 | P1 | A/B model evaluations et baselines | Comparaison sauvegardée |
| LLM_-014 | P1 | Choix providers GCP Azure AWS Anthropic OpenAI etc | Adaptateurs vérifiés si credentials |
| LLM_-015 | P1 | Local-only / airgapped models | Aucun egress dans mode isolé |
| LLM_-016 | P1 | Model rollout et rollback | Publication approuvée et historique |
DATA_RAG
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| DATA-001 | P0 | Storage abstraction S3 AWS | Upload download credential et metadata testés |
| DATA-002 | P0 | Storage abstraction Azure Blob | Tests adaptateur ou BLOCKED dépendance client |
| DATA-003 | P0 | Storage abstraction GCS | Tests adaptateur ou BLOCKED dépendance client |
| DATA-004 | P0 | Storage abstraction IBM COS | Tests adaptateur ou BLOCKED dépendance client |
| DATA-005 | P0 | Storage abstraction Seaweed S3 | Tests adaptateur ou BLOCKED dépendance client |
| DATA-006 | P0 | Capabilities discovery versioning retention WORM | Vraie détection et refus absence |
| DATA-007 | P0 | Presigned URLs et contrôles accès | Expiration et scopes testés |
| DATA-008 | P0 | Qdrant filtre tenant et ACL | Pas de cross-tenant leakage |
| DATA-009 | P0 | Haystack ingest retrieve rerank | Résultat et provenance testés |
| DATA-010 | P0 | Docling extraction PDF/Word/table | Document de recette parsé |
| DATA-011 | P0 | PaddleOCR scan images | OCR document de recette |
| DATA-012 | P0 | OpenLineage provenance transformations | Lien source document réponse |
| DATA-013 | P0 | Chunk-level ACL et document-level ACL | Fragments interdits absents du contexte |
| DATA-014 | P0 | Source permission pre-retrieval | RAG ne contourne pas source |
| DATA-015 | P0 | RAG poisoning detection quarantine | Document suspect isolé |
| DATA-016 | P0 | Retention/erasure data lifecycle | Règle retention et effet mesuré |
| DATA-017 | P0 | RAG citations et version source | Réponse cite sources autorisées |
| DATA-018 | P0 | PII detection Presidio | Exemples bancaires détectés |
| DATA-019 | P0 | Masking before LLM logs outputs | Aucune PII brute dans traces test |
| DATA-020 | P0 | Tokenization reversible vault separé | Detokenization soumise droits |
| DATA-021 | P0 | Tink encryption envelope et rotation clés | Ciphertext et rotation testés |
| DATA-022 | P0 | Residency et data egress restrictions | Destination interdite bloquée |
| DATA-023 | P0 | SQL RLS isolation end-to-end | Tests access A != B |
| DATA-024 | P0 | Cache sensible encrypted et segregation | Isolation des tenants vérifiée |
MULTIMODAL
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| MULT-001 | P1 | LiveKit room et streaming temps réel | Session voix fonctionnelle |
| MULT-002 | P1 | WebRTC reconnect low-latency | Reconnexion et mesure latence |
| MULT-003 | P1 | faster whisper STT | Audio de test transcrit |
| MULT-004 | P1 | pyannote diarisation | Changements locuteurs détectés |
| MULT-005 | P1 | Silero VAD | Segments de parole détectés |
| MULT-006 | P1 | Kokoro TTS | Synthèse testée avec poids approuvés |
| MULT-007 | P1 | VLM image/doc et vidéo frames | Test vision et sortie |
| MULT-008 | P1 | Audio recording consent retention | Refus sans consentement |
| MULT-009 | P1 | Transcription PII protection | Transcript filtré |
| MULT-010 | P1 | Interrupt/turn cancellation | Tour interrompu proprement |
| MULT-011 | P1 | Licences codecs drivers models weights | SBOM et modèles qualifiés |
| MULT-012 | P1 | Identity user livekit participant actor | Audit par participant et agent |
OBSERVABILITY
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| OBSE-001 | P0 | OpenTelemetry instrumentation W3C trace | Trace corrélée de bout en bout |
| OBSE-002 | P0 | OTel collector filtering export | PII expurgées avant export |
| OBSE-003 | P0 | Opik traces prompt evaluations | Execution LLM et outils visibles |
| OBSE-004 | P0 | Jaeger distributed traces | Trace interservices visible |
| OBSE-005 | P0 | Prometheus metrics p50 p95 p99 | Dashboards métriques vérifiés |
| OBSE-006 | P0 | Perses dashboards unified | Sources de métriques valides |
| OBSE-007 | P0 | Alertmanager routing silences grouping | Notification test réellement reçue |
| OBSE-008 | P0 | OpenSearch logs indexing search | Recherche et tenant filtering |
| OBSE-009 | P0 | OpenSearch security analytics detections | Règles déclenchent findings |
| OBSE-010 | P0 | OpenLineage lineage exploration | Source vers réponse traçable |
| OBSE-011 | P0 | Opik et OTel pas seul audit probant | Events critiques persistés ailleurs |
| OBSE-012 | P0 | SLO et error budget tracking | SLO réel par service |
| OBSE-013 | P0 | FinOps metrics tenant model agent | Coûts de test attribués |
| OBSE-014 | P0 | Performance CPU GPU RAM concurrency | Données mesures véritables |
SECURITY_SOC
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| SECU-001 | P0 | Falco runtime detection | Alerte test documentée |
| SECU-002 | P0 | Tetragon runtime enforcement | Politique et effet mesurés |
| SECU-003 | P0 | Detection ingestor normalize events | Alertes de sources corrélées |
| SECU-004 | P0 | Event correlator user agent tenant | Incident multi-source lié |
| SECU-005 | P0 | AI risk engine policy decision | Sévérité et raison tracées |
| SECU-006 | P0 | Detection prompt injection | Appel outil interdit malgré injection |
| SECU-007 | P0 | Detection data exfiltration | Egress bloqué et incident |
| SECU-008 | P0 | Detection secrets leak | Secret faux bloqué avant export |
| SECU-009 | P0 | Detection runaway agent cost loops | Circuit breaker applique |
| SECU-010 | P0 | Detection MCP compromised plugin | Plugin unsigned refusé |
| SECU-011 | P0 | Detection privilege escalation | Escalade refusée |
| SECU-012 | P0 | Detection RAG poisoning | Document suspect isolé |
| SECU-013 | P0 | Detection no-audit or unauthorized policy change | Incident généré |
| SECU-014 | P0 | SOC incidents assign lifecycle | Status et timeline auditables |
| SECU-015 | P0 | SOAR playbooks approved typed actions | Aucune commande shell libre |
| SECU-016 | P0 | Kill Switch run agent subagents | Cancel et refus nouvelles actions |
| SECU-017 | P0 | Kill Switch application tool MCP provider | Blocage permanent redémarrage |
| SECU-018 | P0 | Kill Switch network Cilium | Réseau isolé et vérifié |
| SECU-019 | P0 | Kill Switch credentials user and tenant | Révocation appliquée et testée |
| SECU-020 | P0 | Containment desired observed receipts | Ne passe VERIFIED que preuve réelle |
| SECU-021 | P0 | Separation alerting vs enforcement vs audit | Panne d'un plan n'affaiblit pas contrôle |
| SECU-022 | P0 | Recover workflow four-eyes and reauthorization | Reprise sous autorisation |
| SECU-023 | P0 | Transaction safety in incident | Aucun paiement doublé |
| SECU-024 | P0 | False positive proportionality guard | Critères d'automatisation prédéfinis |
| SECU-025 | P0 | SOC consoles and access control | Rôles SOC et audit accès |
AUDIT_EVIDENCE
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| AUDI-001 | P0 | Immutable audit event schema | Contrat et validations |
| AUDI-002 | P0 | Audit capture who what when how why result | Preuve action complete |
| AUDI-003 | P0 | Trace and run ID correlation | Reconstitution timeline multiagent |
| AUDI-004 | P0 | Audit policy FGA OPA decisions | Version reason obligations et IDs |
| AUDI-005 | P0 | Audit approvals delegation rights lineage | Preuves corrélées |
| AUDI-006 | P0 | Audit data classification DLP and egress | Protection indiquée et vérifiée |
| AUDI-007 | P0 | Audit tool model prompt skill plugin versions | Configuration exec reproductible |
| AUDI-008 | P0 | Audit gateway durable queue no sampling | Pannes et redelivery testés |
| AUDI-009 | P0 | Transactional outbox idempotency dedup | Aucun event perdu au test |
| AUDI-010 | P0 | Sealing canonicalization hashing signature | Verification signature réussie |
| AUDI-011 | P0 | Client storage WORM Object Lock capability | Immutabilité qualifiée ou refus |
| AUDI-012 | P0 | Audit encryption access separation | Administrateur technique ne voit pas payload |
| AUDI-013 | P0 | Retention and legal hold workflows | Expiration contrôlée et preuves |
| AUDI-014 | P0 | Audit read/export accesses themselves audited | Trace consult et export |
| AUDI-015 | P0 | Evidence verification integrity monitoring | Altération détectée |
| AUDI-016 | P0 | Clock sync event_time ingested sealed | Horodatages distincts vérifiés |
| AUDI-017 | P0 | Incident evidence preservation and chain | Audit chaîne possession |
DEV_MARKETPLACE
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| DEV_-001 | P1 | SDK Python TypeScript Go | Clients publiables et tests conformance |
| DEV_-002 | P1 | SDK contracts shared JSON Schema | Compatibles interlangage |
| DEV_-003 | P1 | CLI login and scaffold agent | Projet créé utilisable |
| DEV_-004 | P1 | CLI create plugin skill prompt mcp connector | Artefacts valides générés |
| DEV_-005 | P1 | CLI validate test security authz | Tests réellement exécutés |
| DEV_-006 | P1 | CLI publish sign deploy doctor runs | Commandes fonctionnelles |
| DEV_-007 | P1 | Developer code-first studio Monaco | Editeur projets utilisable |
| DEV_-008 | P1 | Prompt registry drafts versions evaluations | Prompt version et changement audité |
| DEV_-009 | P1 | Skill registry SKILL.md and signatures | Skill version et permission vérifiés |
| DEV_-010 | P1 | MCP Studio server tool schemas auth | MCP serveur test lancé |
| DEV_-011 | P1 | Connector Studio OAuth API key SQL | Conf et secrets correctement gérés |
| DEV_-012 | P1 | Rule and Policy Studio simulate publish | Rego test et version active |
| DEV_-013 | P1 | OCI artifact plugin packaging | Digest signature et SBOM |
| DEV_-014 | P1 | Manifest compatibility scopes dependencies | Installation refuse demande non approuvée |
| DEV_-015 | P1 | Marketplace per tenant environment | Installation isolée |
| DEV_-016 | P1 | Plugin install upgrade rollback uninstall | Lifecycle fonctionnel |
| DEV_-017 | P1 | Packs RH end-to-end with fake data | Agent RH et outils résultats testés |
| DEV_-018 | P1 | Packs Finance end-to-end with fake data | Agent Finance et outils résultats testés |
| DEV_-019 | P1 | Banking risk legal IT security sales etc templates | Templates construits et lintés |
| DEV_-020 | P1 | Plugin docs tests evaluation dashboards alerts | Fichiers livrés et validés |
| DEV_-021 | P1 | Dev rules AGENTS.md security and quality | Règles distribuées et contrôles réels |
| DEV_-022 | P1 | Approval and production publication gates | Publication échoue si gate absent |
FRONTEND
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| FRON-001 | P1 | Unified Next.js React TypeScript portal | Build et E2E responsive |
| FRON-002 | P1 | SSO navigation role and tenant | Menus et backend authz |
| FRON-003 | P1 | Overview real health incidents costs | Pas de chiffres fictifs |
| FRON-004 | P1 | Platform service lifecycle page | Actions connectées et audited |
| FRON-005 | P1 | Cluster nodes and GPU explorer | Inventaire réel et topologie |
| FRON-006 | P1 | Config version diff schema forms | Validation et historique |
| FRON-007 | P1 | IAM users groups service identities | Interactions backend |
| FRON-008 | P1 | Agents apps runs subagent explorer | Timeline et état réels |
| FRON-009 | P1 | Model providers gateway catalog and FinOps | CRUD et permissions |
| FRON-010 | P1 | Developer studio prompts skills MCP plugins | Edition tests et publication |
| FRON-011 | P1 | Marketplace catalog and install wizards | Install signé en staging |
| FRON-012 | P1 | Data RAG ACL ingest lineage UI | Source et ACL visibles |
| FRON-013 | P1 | Policy simulation masking encryption pages | Checks effectifs |
| FRON-014 | P1 | SOC incidents Kill Switch recovery UI | Verifications et approbations |
| FRON-015 | P1 | Observability traces logs metrics dashboards | Corrélation interservices |
| FRON-016 | P1 | Audit evidence and export pages | Droits audit et WORM status |
| FRON-017 | P1 | License support documentation and backup pages | Fonctions réelles |
| FRON-018 | P1 | Accessibility responsive filters pagination | E2E et navigation clavier |
LICENSING_RELEASE
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| LICE-001 | P0 | License annual 12 months | Signature et dates valides |
| LICE-002 | P0 | License triennial 36 months | Signature et dates valides |
| LICE-003 | P0 | No limit users agents apps cases plugins | Assertions entitlements |
| LICE-004 | P0 | No prices anywhere | Scan UI/docs/assets |
| LICE-005 | P0 | Offline license issuance verification | Vérification sans réseau |
| LICE-006 | P0 | Install-group scope and DR portability | Migration test |
| LICE-007 | P0 | Expiry grace no safety kill | La sécurité et audit restent actifs |
| LICE-008 | P0 | Release version pinning components | Lock manifest complet |
| LICE-009 | P0 | Airgap bundle images packages models SQL | Install sans Internet |
| LICE-010 | P0 | Cosign signatures Syft SBOM Trivy | Checks exécutés |
| LICE-011 | P0 | Registry Harbor and CI Tekton | Build publish et pull local |
| LICE-012 | P0 | Git Gitea and GitOps ArgoCD | Pipeline et déploiement reproductibles |
| LICE-013 | P0 | Kyverno Cilium KEDA HPA Helm | Contrôles en cluster |
| LICE-014 | P0 | Backup Velero and restoration | Restoration test |
| LICE-015 | P0 | Client installation handbook and release notes | Documents correspondent version |
| LICE-016 | P0 | Support bundle safe and diagnostics | Pas de données sensibles |
DOCUMENTATION
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| DOCU-001 | P1 | Product and architecture docs | Vue plans flux et décisions |
| DOCU-002 | P1 | Install admin manager and runbook docs | Commandes vérifiées |
| DOCU-003 | P1 | IAM policies delegation RLS security docs | Exemples testés |
| DOCU-004 | P1 | SDK Python TS Go and schema docs | Snippets exécutés |
| DOCU-005 | P1 | Plugin MCP skill prompt connector guide | Pack de démo construit selon guide |
| DOCU-006 | P1 | RAG multimodal voice data privacy docs | Conformité dépendances clarifiée |
| DOCU-007 | P1 | Observability SOC audit evidence docs | Incident simulation reproductible |
| DOCU-008 | P1 | License annual triennial offline support docs | Absence prix et limites |
| DOCU-009 | P1 | Airgap upgrades backup disaster recovery docs | Tests et limites documentés |
| DOCU-010 | P1 | API OpenAPI and CLI reference | Générés versions |
| DOCU-011 | P1 | Troubleshooting and compat matrix | Procédures vérifiées |
| DOCU-012 | P1 | Conformance and customer acceptance report | PASS FAIL BLOCKED avec preuves |
RELEASE_ACCEPTANCE
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| RELE-001 | P0 | Fresh cluster install automated | Recette sans intervention cachée |
| RELE-002 | P0 | BYO Kubernetes Postgres Redis storage | Services clients non modifiés sans accord |
| RELE-003 | P0 | No Internet airgap install | Packet egress test ou equivalent |
| RELE-004 | P0 | Failure of OPA OpenFGA audit gateway | Fail closed ciblé prouvé |
| RELE-005 | P0 | Policy revocation while agent running | Action suivante refusée |
| RELE-006 | P0 | Non-privileged user cannot see another tenant | Tests de sécurité réels |
| RELE-007 | P0 | Bank financial operation retry idempotent | Pas de doublon |
| RELE-008 | P0 | Secrets encrypted and PII out of logs | Tests redaction |
| RELE-009 | P0 | Agent kill restart cannot resume unauthorized | Suspension persistante prouvée |
| RELE-010 | P0 | Signed plugin unsafe permission denied | Marketplace refuse |
| RELE-011 | P0 | Voice consent and participant identity | E2E audio avec traces |
| RELE-012 | P0 | License expires without production cut | Comportement démontré |
| RELE-013 | P0 | Backup restore evidence retention tested | Restauration et preuves |
| RELE-014 | P0 | Performance HA scale and RTO RPO measured | Résultats chiffrés selon cible client |
| RELE-015 | P0 | Developer first agent works day one | Template + SDK + docs aboutissent |
| RELE-016 | P0 | Docs and support handover complete | Recette de bout en bout signée |
HOST_BOOTSTRAP
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| HOST-001 | P0 | Inventaire hôtes VM bare metal et capacités CPU RAM GPU OS réseau | Hôtes/labels et ressources inventoriés, valeurs réconciliées par heartbeat |
| HOST-002 | P0 | Préflight SSH OS DNS NTP disque ports et réseau | Rapport reproductible de contrôles bloquants et avertissements |
| HOST-003 | P0 | SSH par clé Ed25519 ou certificats approuvés | Connexion bootstrap validée, méthodes non autorisées refusées |
| HOST-004 | P1 | Support RSA conditionnel selon politique client | Tests RSA moderne et politique de refus de clés faibles |
| HOST-005 | P0 | Strict SSH host key/certificate verification | Hôte inconnu ou clé hôte modifiée refusés |
| HOST-006 | P0 | SSH via bastion proxy jump et réseaux segmentés | E2E bootstrap via bastion sans accès SSH public direct |
| HOST-007 | P0 | Compte bootstrap dédié et sudo allowlist sans root permanent | Tests sudo allowlist et refus commandes non autorisées |
| HOST-008 | P0 | Références des clés et secrets uniquement dans PostgreSQL | Scanner DB/logs confirme absence de clés privées |
| HOST-009 | P0 | Binaire Node Agent signé digest vérifié et service systemd durci | Installation signature valide et rejet artefact altéré |
| HOST-010 | P0 | Bootstrap idempotent, rollback et suppression accès temporaires | Relance bootstrap sans effets doubles; clés temporaires révoquées |
| HOST-011 | P0 | Enrôlement par jeton unique court lié à un hôte | Réutilisation et expiration de jeton bloquées |
| HOST-012 | P0 | Identité SPIFFE et canal mTLS pour Node Agent | Identité vérifiée, rotation cert et refus certificat révoqué |
| HOST-013 | P0 | Agent Node Go inventaire heartbeat métriques et diagnostics | Heartbeats, health et inventaire visibles via API et UI |
| HOST-014 | P0 | Commandes agents signées allowlistées expirantes anti-rejeu | Refus signature invalide, nonce rejoué, action hors périmètre |
| HOST-015 | P0 | Commandes agents context identité et audit reçus réels | Chaque commande porte actor/tenant/trace/receipt vérifiable |
| HOST-016 | P0 | Mise en quarantaine désenrôlement et récupération machine | Revoke bloque commandes et renouvellement et émet audit |
| HOST-017 | P1 | Mise à jour sécurisée du Node Agent avec rollback | Test upgrade signé et rollback sans perte inventaire |
| HOST-018 | P0 | Break glass SSH approuvé et audité | Double validation, TTL et preuve intervention |
CLUSTER_MANAGEMENT
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| CLUS-001 | P0 | Six modes single host node group K8s existing K8s managed multi cluster external | Import et opérations prouvés pour chacun ou mode marqué unsupported |
| CLUS-002 | P0 | Distinction platform managed et client managed | Actions destructives automatiquement refusées sur client managed |
| CLUS-003 | P0 | Import Kubernetes via API sans SSH et permissions minimales | Import E2E avec RBAC minimal prouvé |
| CLUS-004 | P0 | Cluster Agent Go répliqué et identité par cluster | Perte replica sans perte de contrôle, tokens isolés |
| CLUS-005 | P0 | Cluster Agent connexion sortante mTLS et autonomie contrôlée offline | Perte Manager central n’autorise pas de nouvelles opérations sensibles |
| CLUS-006 | P0 | Platform Operator CRDs schémas et reconciliation | Tests reconcile install update drift delete contrôlé |
| CLUS-007 | P0 | Node pools CPU GPU labels et placement contraint | Workloads placés sur nœuds compatibles |
| CLUS-008 | P0 | ManagedComponent manifest des modes opérations dépendances et sécurité | Validation schema et intégration API/Operator |
| CLUS-009 | P0 | DAG dépendances services ordre et maintenance | Start/stop respectent dépendances et cas critiques |
| CLUS-010 | P0 | Séparation service start/stop et security suspension | Kill switch reste actif après redémarrage de service |
| CLUS-011 | P1 | Capacity planning CPU RAM GPU et quotas par pool | Saturation déclenche alerte et bloque planning irréalisable |
| CLUS-012 | P0 | Gestion de plusieurs clusters et perte de connexion WAN | Consoles affichent état non connu sans inventer état healthy |
HIGH_AVAILABILITY
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| HAVA-001 | P0 | Profils standalone ha critical ha et choix de fault domains | Profils et limites déclarés clairement en UI et manifest |
| HAVA-002 | P0 | Frontend backend Manager gateway répliqués en HA | Panne replica avec maintien SLA cible |
| HAVA-003 | P0 | HA Identity Policy Context Authority et Security Controllers | Panne replica sans contournement OPA/OpenFGA et révocations |
| HAVA-004 | P0 | HA Audit Evidence SOC Kill Switch et Licensing | Panne contrôle central n’efface ni suspend events ni audit |
| HAVA-005 | P0 | Topology spread affinity PDB et drains planifiés | Replica spread across host/zone et maintenance compatible PDB |
| HAVA-006 | P0 | Leader election et anti-double opération exclusive | Deux reconcilers ne déclenchent pas deux upgrades/failovers concurrents |
| HAVA-007 | P0 | HA PostgreSQL sous K8s via CloudNativePG | Primary replica bascule testée avec mesures RPO RTO |
| HAVA-008 | P0 | HA PostgreSQL VM via Patroni ou client-managed | Gestion unique, fencing et rejoin testés sur profil concerné |
| HAVA-009 | P0 | HA Redis Sentinel ou Cluster et reconnexion clients | Panne primary, reconnexion et perte éventuelle documentée |
| HAVA-010 | P0 | HA NATS JetStream quorum et redelivery idempotent | Panne membre et reprise sans double action métier |
| HAVA-011 | P0 | HA Temporal persistence et jobs durables | Reprise workflow et side effects réconciliés |
| HAVA-012 | P0 | HA des dépendances Keycloak LiteLLM Opik OpenFGA Qdrant OpenSearch | Tests réels mode HA et dépendances pour versions pinées |
| HAVA-013 | P1 | HA OTel Collector Prometheus Alertmanager | Collecte et alerting vérifiés en panne replica |
| HAVA-014 | P0 | HA LiveKit avec limites de reconnexion rooms | Perte room-node donne incident et reconnexion testée |
| HAVA-015 | P1 | HA vLLM et capacity GPU failover | Routage replica sain et capacité restante vérifiés |
| HAVA-016 | P0 | Fail closed sécurité en panne control plane | Actions critiques interdites si audit/authz invalide |
| HAVA-017 | P0 | Observabilité HA distinction configured versus validated | UI montre épreuves, fault domains, quorum et mesures |
| HAVA-018 | P1 | Autoscaling horizontal KEDA HPA et politique de quotas | Tests montée charge et retour stable |
BACKUP_RECOVERY
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| BACK-001 | P0 | Backup Manager central plans restauration permissions et historique | UI API SQL job et audit E2E prouvés |
| BACK-002 | P0 | Storage adapter S3 Azure GCS IBM Seaweed BYO | Adapters testés par capacité et fournisseur disponible |
| BACK-003 | P0 | Qualification capabilities versioning ObjectLock legal hold native | Fail closed si exigence WORM non supportée |
| BACK-004 | P0 | Velero backup Kubernetes manifests CRDs volumes compatibles | Restore vers environnement isolé avec tests de ressources |
| BACK-005 | P0 | PostgreSQL backup cohérent CNPG ou pgBackRest selon mode | Restore base et validation cohérence |
| BACK-006 | P0 | PostgreSQL WAL continu et Point in Time Recovery | PITR à point de test et contrôle de données |
| BACK-007 | P0 | Snapshots etcd et procédure restore control plane | Reconstruction cluster prouvée en environnement de test |
| BACK-008 | P0 | Backup OpenSearch via snapshots natifs | Index restauré et requêtes de contrôle réussies |
| BACK-009 | P0 | Backup Qdrant via snapshots natifs | Collection vecteurs restaurée et ACL conservées |
| BACK-010 | P0 | Backup Opik et backends MySQL Redis ClickHouse object storage selon distro | Restauration traces et métadonnées validée version pinée |
| BACK-011 | P0 | Backup Temporal NATS JetStream et checkpoints agents | Workflows et streams restaurables selon objectifs |
| BACK-012 | P0 | Backup OCI Harbor manifests prompts skills plugins policies modèles | Digests signatures et chargement des artefacts vérifiés |
| BACK-013 | P0 | Backup secrets certificats CA et processus key recovery | Restauration contrôlée sans exposition de clés |
| BACK-014 | P0 | Cohérence transverse DB objets registres versions | Rapport références orphelines et réconciliation |
| BACK-015 | P0 | Chiffrement backup rétention et séparation de privilèges | Tests secrets non exposés, restauration autorisée, retention |
| BACK-016 | P0 | Backup WORM preuves d audit immuables sur backend qualifié | Test mutation/suppression refusées pendant rétention |
| BACK-017 | P0 | Tests réguliers automatiques restore isolé et intégrité | Rapport signé de restauration et alarmes en cas échec |
| BACK-018 | P0 | Backup policies monitoring retards erreurs et alertes | Alertes opérationnelles et audit des erreurs |
| BACK-019 | P0 | Restore approval dry-run plan et rollback de configuration | Opération impossible sans autorisation et plan compatible |
DISASTER_RECOVERY
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| DR-001 | P0 | DR sites primary secondary multi cluster et rôles | Sites et liens de réplication visibles et validés |
| DR-002 | P0 | Modes active passive warm cold et active active stateless | Profils testés avec limites et dépendances documentées |
| DR-003 | P0 | Fencing ancien primary et prevention split brain | Test promotion avec primaire isolé sans écriture double |
| DR-004 | P0 | Plan recovery séquencé données identités gateways modèles | DAG de reprise testé, état et preuves conservés |
| DR-005 | P0 | Reconstruire Manager depuis bundle offline backups et manifests | Exercice recovery Manager sans serveur editeur |
| DR-006 | P0 | DNS load balancer routes reconfiguration failover | Traffic bascule suivant état et vérifications de santé |
| DR-007 | P0 | RPO RTO objectifs client et valeurs observées | Exercice mesuré et rapport vs SLA validé |
| DR-008 | P0 | DR tests planifiés avec approbation et preuves | Plan exercise et runbook répliquables |
| DR-009 | P0 | Licence 12 36 mois reste valide pendant DR et mode offline | Recovery sans coupure licence ou contact éditeur |
| DR-010 | P0 | Audit identités suspensions et permissions préservés pendant DR | Après DR état de sécurité inchangé et vérifié |
| DR-011 | P0 | Réconciliation post failover empêche doubles paiements | Tests idempotence E2E et reçus externes |
INFRA_UI
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| INFUI-001 | P0 | UI hosts preflight SSH bootstrap et enrôlement | E2E UI API SQL avec erreurs et étapes visibles |
| INFUI-002 | P0 | UI node agents heartbeats certificats et révocation | Changements état et audit visibles de bout en bout |
| INFUI-003 | P0 | UI clusters pools placement et dépendances | Topology réelle et plan placement contrôlable |
| INFUI-004 | P0 | UI HA replicas quorum failover et fault domains | État configuré et validé distingué |
| INFUI-005 | P0 | UI backups policies jobs historiques et tests | Plan sauvegarde exécuté et preuves consultables |
| INFUI-006 | P0 | UI Restore dry run approve execute verify | Restore impossible sans approval et test authentifié |
| INFUI-007 | P0 | UI PRA sites objectifs exercices et résultats | Failover planifié + exercise rapport réel consultable |
| INFUI-008 | P0 | UI client-managed actions non autorisées cachées et refusées backend | Test RBAC et forbidden opérations direct API |
INFRA_SDK
| ID | Priorité | Exigence | Critère d'acceptation |
|---|---|---|---|
| INFSDK-001 | P0 | SDK Python TS Go hosts bootstrap enrollment diagnostics | Contract et conformance tests sur 3 SDK |
| INFSDK-002 | P0 | SDK Python TS Go clusters et services operations | Response operation_id et audit corrélé |
| INFSDK-003 | P0 | SDK Python TS Go HA backups restore DR | Approbations et versions supportées prouvées |
| INFSDK-004 | P0 | Contexte user identity on behalf of service delegation pour operations | Aucun appel système sans attribution identité et chaîne |
| INFSDK-005 | P0 | CLI host cluster services ha backup restore dr | CLI tests avec API réelle et aide docs offline |