Aller au contenu principal

Conformité à l'architecture produit

Généré par tools/traceability/conformance.py à partir de docs/implementation/conformance/*.yaml et des exécutions enregistrées dans docs/implementation/evidence/results/. Ne pas modifier à la main. Un élément PASSED cite des preuves vertes sur des sources inchangées, sans travail restant ni blocage.

Synthèse​

StatutÉléments
PASSED696
BLOCKED35
FAILED0
IN_PROGRESS198
NOT_STARTED11
Éléments940

Par section​

SectionLotÉlémentsPASSEDIN_PROGRESSBLOCKEDFAILED
A0 Les cinq éléments de valeur du produitmain50500
A1 Décisions structurantes, stockage objet du client et licences des briquesC0227171000
A2 Architecture fonctionnelle globale et protections sans consoleC04, C0185210
A3.1 Architecture du ManagerC01136700
A3.2 Fonctions d'exploitation obligatoires et sémantique de l'arrêtC012319400
A3.3 Fiche d'administration de chaque outilC0143100
A3.4 États de lifecycle, états administratifs et cinq champs d'étatC0186200
A3.5 Composants à installer, phases et graphe de dépendancesC021430110
A3.6 Première installation guidée, rapport de recette signé, bundle hors ligne et récupération du ManagerC02117400
A4.1 Arborescence de navigation du portailC09136700
A4.2 Écrans fonctionnels du portailC092821700
A4.3 Profils et droits appliqués côté serveurC031111000
A4.4 Architecture frontendC11106400
A5.1 Services backend à développerC043332100
A5.2 Découpage technique des déploiementsC04107300
A6.1 Schémas et tables PostgreSQLC052418600
A6.2 Relations importantes du modèle de donnéesC05119200
B3.1 Fonctions du ManagerC011915400
B3.2 Page d'accueil du Manager et onglets uniformesC0132100
B3.3 Arrêt technique et suspension de sécuritéC0183500
B3.4 Manifeste standard de chaque composantC011001000
B3.5 Services backend du Manager et infrastructure apportée par le clientC011413100
B4.1 Profils de déploiementC0266000
B4.2 Workflow d'installationC02116320
B4.3 Ce que le client trouve après l'installationC021420120
B5.1 Arborescence fonctionnelle du portailC091721500
B5.2 Écrans prioritairesC091501500
B5.3 Composants frontend transversaux et actions destructivesC111210200
B5.4 Rôles du portailC031111000
B6.1 Modules du Control PlaneC042524100
B6.2 Services d'exécution et de sécurité indépendantsC041312100
B6.3 Contrats API principaux et operation_idC042120100
B7.1 Découpage SQL par domaineC051817100
B7.2 Champs communs des tables métierC05138500
B7.3 Isolation par RLS et rôles SQLC0554100
B7.4 Modèle SQL du MarketplaceC0754100
B8.1 Contenu d'un plugin métierC171911800
B8.2 Structure standard du dossier d'un pluginC0733000
B8.3 Manifeste d'un pluginC07115600
B8.4 Marketplace de bout en boutC07128400
B8.5 Format de distribution des pluginsC1696210
B8.6 Packs métiers livrés avec la plateformeC081313000
B9.1 Structure des packages SDKC0633000
B9.2 Contrats SDK obligatoiresC061414000
B9.3 Méthodes SDK exposéesC061717000
B9.4 SDK impossible à contournerC04109010
B10.1 CLI officielleC121818000
B10.2 Règles obligatoires pour les développeursC122222000
B10.3 Gates de publicationC161411300
B10.4 Gestion des changementsC1631200
B11.1 Documentation produitC10137600
B11.2 Documentation développeurC131616000
B11.3 Documentation vivanteC1332100
B12.1 Couverture de la licenceC101616000
B12.2 Périmètre commercialC1032100
B12.3 Architecture du service de licenceC1044000
B12.4 Contrat de licence technique signéC1032100
B12.5 Fonctionnement hors ligne de la licenceC1032100
B12.6 Comportement à l'expirationC1086110
B13.1 Tables critiques du Platform ManagerC011211100
B13.2 Index d'audit et preuves indépendantesC1452210
B13.3 Registre d'état de sécurité et Kill SwitchC10119200
B13.4 Tables de licence et de supportC1032100
B13.5 Transactional Outbox et actions externesC0476100
B14 Isolation multi-tenant par coucheC031615010
B14.1 Protection des secrets et des donnéesC141413010
B14.2 Séparation des responsabilitésC0333000
B15.1 Scalabilité par domaineC10158520
B15.2 Matrice de disponibilité, RTO et RPOC1075200
B15.3 Upgrade et rollbackC021010000
B16.1 Installation du plugin Finance chez une banqueC08117400
B16.2 Utilisation du plugin Finance de bout en boutC08115600
B17 Plan de développement par lotsC101212000
B17.1 Monorepo produitC021313000
B17.2 Tests de recette obligatoires avant livraisonC102319310
B18 Différenciation, exigences non négociables et version de distributionC021841400
B19 L'agent porte l'identité de l'utilisateurC031919000

Partie A, A0. Les cinq éléments de valeur du produit​

ÉlémentStatutPreuveReste ou blocage
ARCH-A0-01 Platform Manager : installer, configurer, démarrer, arrêter, mettre à jour, superviser et réparer les composantsIN_PROGRESStest_e2e_infrastructure_journey.py::test_machine_to_verified_restore test_services_operate.py::test_actions_rolling_restart_and_permissions test_services_operate.py::test_component_instances_change_peers (E-HB-E2E, E-RB-NM)Sections A3.1, A3.2, A3.3, A3.4, A3.5, A3.6, B3.1, B3.2, B3.3, B3.4, B3.5, B4.1, B4.2, B4.3, B13.1, B15.3 : 68 éléments sur 180 non PASSED (IN_PROGRESS 43, BLOCKED 25, FAILED 0)
ARCH-A0-02 AI Control Plane : gérer identités, droits, politiques, modèles, données, agents et applications depuis une console centraliséeIN_PROGRESStest_iam_role_matrix.py::test_role_matrix test_iam_role_matrix.py::test_developer_cannot_approve_own_change_and_auditor_cannot_decide test_identity_context_delegation.py +1 (E-IR-IDENTITY, E-DF-PORTAL)Sections A4.1, A4.2, A4.3, A4.4, A5.1, A6.1, A6.2, B5.1, B5.2, B5.3, B5.4, B6.1, B7.1, B7.2, B7.3, B14, B14.2, B19 : 68 éléments sur 284 non PASSED (IN_PROGRESS 67, BLOCKED 1, FAILED 0)
ARCH-A0-03 AI Runtime & Security Plane : exécuter les agents avec un contrôle obligatoire de chaque actionIN_PROGRESStest_runtime_without_console.py::test_decisions_stay_enforced_with_console_and_admin_routes_down test_gateway_pep_untrusted.py::test_pep_model_gateway_denied test_gateway_pep_untrusted.py::test_pep_mcp_denied +1 (E-RB-CP, E-CP-SOC)Sections A2, A5.2, B6.2, B6.3, B9.4, B13.5 : 10 éléments sur 69 non PASSED (IN_PROGRESS 8, BLOCKED 2, FAILED 0)
ARCH-A0-04 Developer Platform & Marketplace : SDK, modèles de projets, packs métier, skills, prompts, règles, plugins, MCP et connecteurs prêts à l'emploiIN_PROGRESStest_developer_day_one.py::test_developer_day_one test_business_packs.py::test_pack_signed_published_installed_sensitive_actions_blocked test_business_packs.py::test_pack_is_complete_and_holds_no_credential (E-DF-DAY-ONE, E-BP-PACKS-MARKETPLACE)Sections B7.4, B8.1, B8.2, B8.3, B8.4, B8.5, B8.6, B9.1, B9.2, B9.3, B10.1, B10.2, B10.3, B10.4, B11.2, B11.3, B16.1, B16.2 : 38 éléments sur 204 non PASSED (IN_PROGRESS 37, BLOCKED 1, FAILED 0)
ARCH-A0-05 Enterprise Operations : observabilité, SOC IA, conformité, sauvegarde, restauration, support et licences commercialesIN_PROGRESStest_trace_end_to_end.py test_soc_ai_sdr.py::test_recovery_needs_four_eyes_then_reauthorization test_evidence_gateway.py +4 (E-G06-OBS, E-CP-SOC, E-CP-EVIDENCE, E-CP-LICENSING, E-HB-E2E, E-FL-SUPPORT)Sections B11.1, B12.1, B12.2, B12.3, B12.4, B12.5, B12.6, B13.2, B13.3, B13.4, B14.1, B15.1, B15.2, B17, B17.2 : 31 éléments sur 140 non PASSED (IN_PROGRESS 25, BLOCKED 6, FAILED 0)

Partie A, A1. Décisions structurantes, stockage objet du client et licences des briques​

ÉlémentStatutPreuveReste ou blocage
ARCH-A1-01 Type de produit : distribution entreprise installée chez le clientPASSEDtest_architecture_decisions.py::test_governance_llm_observability_components_are_catalogued (E-ID-ARCH)
ARCH-A1-02 Déploiement sur site, cloud privé, public ou hybridePASSEDtest_lifecycle_profiles.py::test_profile_catalog_and_creation (E-ID-ARCH, E-ID-LIFECYCLE)
ARCH-A1-03 Fonctionnement déconnecté possiblePASSEDtest_bundle.py::test_manifest_of_verified_artifacts (E-ID-ARCH, E-ID-PACKAGING)
ARCH-A1-04 Frontend Next.js, React, TypeScriptPASSEDtest_architecture_decisions.py::test_frontend_is_nextjs_react_typescript (E-ID-ARCH)
ARCH-A1-05 Backend métier FastAPI, PythonPASSEDtest_architecture_decisions.py::test_backend_is_fastapi_python (E-ID-ARCH)
ARCH-A1-06 Contrôleurs d'infrastructure en GoPASSEDtest_architecture_decisions.py::test_infrastructure_controllers_are_go (E-ID-ARCH)
ARCH-A1-07 Base principale PostgreSQLPASSEDtest_architecture_decisions.py::test_storage_is_client_provided_and_db_is_postgresql (E-ID-ARCH)
ARCH-A1-08 Cache et coordination temporaire RedisPASSEDtest_architecture_decisions.py::test_redis_pins_are_bsd_or_traced_exception (E-ID-ARCH)
ARCH-A1-09 Stockage objet du client, jamais imposéPASSEDtest_architecture_decisions.py::test_storage_is_client_provided_and_db_is_postgresql (E-ID-ARCH)
ARCH-A1-10 Orchestration Kubernetes, clusters existants supportésPASSEDtest_architecture_decisions.py::test_governance_llm_observability_components_are_catalogued (E-ID-ARCH)
ARCH-A1-11 Installation et exploitation par le Platform ManagerPASSEDtest_services_install.py::test_provider_and_consumer_install_end_to_end (E-ID-ARCH, E-ID-LIFECYCLE)
ARCH-A1-12 Gouvernance Keycloak, OpenFGA, OPAPASSEDtest_architecture_decisions.py::test_governance_llm_observability_components_are_catalogued (E-ID-ARCH)
ARCH-A1-13 LLM : LiteLLM et vLLMPASSEDtest_architecture_decisions.py::test_governance_llm_observability_components_are_catalogued (E-ID-ARCH)
ARCH-A1-14 Agents : runtime Navin et agents externes compatiblesPASSEDtest_architecture_decisions.py::test_governance_llm_observability_components_are_catalogued (E-ID-ARCH)
ARCH-A1-15 Observabilité Opik, OpenTelemetry, OpenSearch, PrometheusPASSEDtest_architecture_decisions.py::test_governance_llm_observability_components_are_catalogued (E-ID-ARCH)
ARCH-A1-16 Sécurité : DLP, audit, politiques, détection, SOC, Kill SwitchIN_PROGRESSPreuve portée par un autre lot (C05, C07, C10) ; à citer quand son jeu de preuves est vert
ARCH-A1-17 SDK Python, TypeScript, Go et API REST/OpenAPIPASSEDtest_architecture_decisions.py::test_sdks_cover_python_typescript_go (E-ID-ARCH)
ARCH-A1-18 Extensions : packs métier signés, versionnés, administrablesIN_PROGRESSPreuve portée par un autre lot (C05, C07, C10) ; à citer quand son jeu de preuves est vert
ARCH-A1-19 Licence : abonnement annuel ou triennalIN_PROGRESSPreuve portée par un autre lot (C05, C07, C10) ; à citer quand son jeu de preuves est vert
ARCH-A1-20 Utilisateurs illimitésIN_PROGRESSPreuve portée par un autre lot (C05, C07, C10) ; à citer quand son jeu de preuves est vert
ARCH-A1-21 Agents et cas d'usage illimitésIN_PROGRESSPreuve portée par un autre lot (C05, C07, C10) ; à citer quand son jeu de preuves est vert
ARCH-A1-22 Pas de facturation à l'usage de la licenceIN_PROGRESSPreuve portée par un autre lot (C05, C07, C10) ; à citer quand son jeu de preuves est vert
ARCH-A1-23 Pas de prix publicIN_PROGRESSPreuve portée par un autre lot (C05, C07, C10) ; à citer quand son jeu de preuves est vert
ARCH-A1-24 Connexion S3, Azure Blob, GCS, IBM COS, SeaweedFS, S3 compatibleIN_PROGRESSPreuve portée par un autre lot (C05, C07, C10) ; à citer quand son jeu de preuves est vert
ARCH-A1-25 Capacités déclarées par fournisseur de stockageIN_PROGRESSPreuve portée par un autre lot (C05, C07, C10) ; à citer quand son jeu de preuves est vert
ARCH-A1-26 Règle MIT ou Apache-2.0 et exceptions tracéesPASSEDtest_architecture_decisions.py::test_redis_pins_are_bsd_or_traced_exception (E-ID-ARCH)
ARCH-A1-27 PostgreSQL et Redis avec licences exactes (SBOM, notices, document juridique)IN_PROGRESStest_architecture_decisions.py::test_redis_pins_are_bsd_or_traced_exception (E-ID-ARCH)Le SBOM de release/sbom ne liste que le client Python redis, pas le serveur Redis 7.0.15 ; le catalogue hôte du Manager garde Redis 8.0.2 tri licence (LEX-002 en attente d'approbation client) ; notice juridique FR et EN à compléter

Partie A, A2. Architecture fonctionnelle globale et protections sans console​

ÉlémentStatutPreuveReste ou blocage
ARCH-A2-01 Espaces du portail : Admin, Sécurité, Développeur, Opérations, Audit, Marketplace, LicencesIN_PROGRESStest_licensing.py::test_status_is_readable_by_any_user_without_sensitive_fields test_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-RB-CP)La preuve écran par écran des sept espaces appartient au lot C09 (portail) ; ce lot prouve seulement les API qui les servent.
ARCH-A2-02 Modules du control plane : Platform Manager, Identité et gouvernance, Gestion IA, Plateforme développeur, Sécurité et SOC, Licence entreprisePASSEDtest_platform_core.py::test_operations_api_detail_logs_abort_retry_and_scope test_data_quality_governance.py::test_governance_registry test_llm_registry.py::test_model_registry_and_status +3 (E-RB-CP, E-RB-NM)
ARCH-A2-03 Plan d'exécution et d'application : runtime Navin, LiteLLM/vLLM, Secure MCP Gateway, passerelle DLP et politiquesPASSEDtest_agents_execution.py::test_kill_switch_blocks_new_runs test_llm_registry.py::test_litellm_sync_proxy test_platform_security_manifests.py::test_vllm_reachable_only_from_litellm_and_control_plane +2 (E-RB-CP)
ARCH-A2-04 Données et infrastructure client : PostgreSQL, Redis, RAG, Qdrant, stockage client, services internes, API métierPASSEDtest_core_rls.py::test_unscoped_app_role_sees_nothing test_core_redis.py::test_sources_of_truth_never_read_from_redis test_rag_governance.py::test_chunk_acl_forbidden_fragments_never_reach_the_context +2 (E-RB-CP)
ARCH-A2-05 Observabilité et opérations de sécurité : Opik, OpenTelemetry, SIEM OpenSearch, Prometheus, Falco, Tetragon, audit WORMIN_PROGRESStest_soc_ai_sdr.py::test_signed_webhooks_falco_tetragon_opensearch test_evidence_gateway.py::test_gateway_redelivers_after_target_outage_without_loss_or_duplicate test_data_quality_governance.py::test_telemetry_ingest_overview_trace +1 (E-RB-CP)Opik, collecteur OpenTelemetry et Prometheus réels sont prouvés par le lot C10 (observabilité) ; ce lot ne cite que l'ingestion et la collecte d'audit.
ARCH-A2-06 Infrastructure plateforme : Kubernetes, Cilium, Argo CD, Helm, KEDA, Kyverno, Harbor, sauvegarde et PRABLOCKEDtest_platform_security_manifests.py::test_every_workload_has_a_network_policy test_platform_security_manifests.py::test_static_cluster_policies test_media_worker.py::test_helm_worker_kinds_are_media_worker_operations +1 (E-RB-CP)Rendu Helm et politiques validés hors ligne ; le déploiement réel sur Kubernetes avec Cilium, Argo CD, KEDA, Kyverno et Harbor demande un cluster [B-CLUSTER].
ARCH-A2-07 Les protections sensibles restent appliquées par les passerelles et le runtime, en fail closed, quand la console et les routes d'administration sont indisponiblesPASSEDtest_runtime_without_console.py::test_decisions_stay_enforced_with_console_and_admin_routes_down test_soc_ai_sdr.py::test_alerting_and_policy_engine_outage_never_weaken_enforcement (E-RB-CP)
ARCH-A2-08 Espace Platform Manager du portail via le Control Plane (ADR-0128)PASSEDtest_platform_manager_bridge.py::test_operation_forwarded_on_behalf_and_audited test_platform_manager_bridge.py::test_space_requires_platform_admin (E-PO-BRIDGE)

Partie A, A3.1. Architecture du Manager​

ÉlémentStatutPreuveReste ou blocage
ARCH-A3.1-01 Catalogue des composantsPASSEDtest_catalog.py::test_catalog_loads_and_is_open_source_only (E-PO-SERVER)
ARCH-A3.1-02 Contrôleur d'état désiré et correction de dérivePASSEDtest_lifecycle_drift_backups.py::test_change_outside_the_manager_is_detected_and_reconciled (E-PO-SERVER)
ARCH-A3.1-03 Node Agent : inventaire, santé, commandes autorisées, heartbeatsIN_PROGRESStest_platform_core.py::test_registration_evaluates_preflight_at_once_and_reregisters test_agent_signature.py::test_agent_and_server_signatures_are_identical (E-PO-SERVER)Les tests Go de navin-manager/agent-go (TestArbitraryCommandRefused, etc.) ne sont pas lancés ici : go est absent de cette machine.
ARCH-A3.1-04 Opérateur Kubernetes : cycle de vie des composantsIN_PROGRESStest_kubernetes_operator.py::test_install_converges_and_operates (E-PO-K8S)Les tests Go envtest de navin-manager/operator ne sont pas lancés : go absent.
ARCH-A3.1-05 Workflow Engine : opérations longues, reprise, validation, rollback (moteur interne au lieu de Temporal)IN_PROGRESStest_foundation.py::test_engine_failure_retry_abort_and_timeout test_availability_api.py::test_dag_order_and_kill_switch_survives_restart (E-PO-SERVER)Aucune ADR vérifiée ici ne justifie le moteur interne à la place de Temporal.
ARCH-A3.1-06 Deployment Engine (Helm + Argo CD)IN_PROGRESStest_services_install.py::test_opa_binary_install (E-PO-SERVER)Déploiement binaire et opérateur prouvés ; Helm et Argo CD non vérifiés par un test.
ARCH-A3.1-07 Config Manager : paramètres, versions, validations (PostgreSQL au lieu de Git)PASSEDtest_services_config.py::test_versions_diff_restore_and_secrets (E-PO-SERVER)
ARCH-A3.1-08 Inventory Service PostgreSQLPASSEDtest_foundation.py::test_migrations_are_idempotent test_hosts_api.py::test_list_detail_patch (E-PO-SERVER)
ARCH-A3.1-09 Secret Integration : références sécuriséesIN_PROGRESStest_platform_core.py::test_settings_store_keeps_secrets_sealed (E-PO-SERVER)Pas de test contre OpenBao ou le coffre du client.
ARCH-A3.1-10 Monitoring Prometheus + OTelIN_PROGRESStest_hosts_api.py::test_metrics_series_bucketing (E-PO-SERVER)Intégration Prometheus et OTel non prouvée par un test de bout en bout.
ARCH-A3.1-11 Remote Diagnostics : diagnostics, bundles de supportPASSEDtest_lifecycle_bundle_acceptance.py::test_support_bundle_has_no_secret_and_no_personal_data (E-PO-SERVER)
ARCH-A3.1-12 Upgrade ManagerPASSEDtest_lifecycle_upgrades.py::test_upgrade_compatibility_refusals (E-PO-SERVER)
ARCH-A3.1-13 License AgentNOT_STARTEDLot C10 ; aucun test dans ce lot.

Partie A, A3.2. Fonctions d'exploitation obligatoires et sémantique de l'arrêt​

ÉlémentStatutPreuveReste ou blocage
ARCH-A3.2-01 InstallPASSEDtest_services_install.py::test_provider_and_consumer_install_end_to_end (E-PO-SERVER)
ARCH-A3.2-02 Configure et validerPASSEDtest_services_install.py::test_validation_errors (E-PO-SERVER)
ARCH-A3.2-03 Start dans le bon ordrePASSEDtest_availability_api.py::test_dag_order_and_kill_switch_survives_restart (E-PO-SERVER)
ARCH-A3.2-04 Stop contrôléIN_PROGRESStest_services_operate.py::test_actions_rolling_restart_and_permissions (E-PO-SERVER)Drainage des requêtes d'un proxy non prouvé.
ARCH-A3.2-05 Restart d'une instance ou d'un composantPASSEDtest_services_operate.py::test_actions_rolling_restart_and_permissions (E-PO-SERVER)
ARCH-A3.2-06 Upgrade avec contrôle préalablePASSEDtest_lifecycle_upgrades.py::test_stateless_upgrade_with_canary_then_rollback (E-PO-SERVER)
ARCH-A3.2-07 RollbackPASSEDtest_lifecycle_upgrades.py::test_stateful_upgrade_backup_migration_refused_rollback_and_restore (E-PO-SERVER)
ARCH-A3.2-08 Scale replicas et ressourcesIN_PROGRESStest_kubernetes_operator.py::test_install_converges_and_operates (E-PO-K8S)Scénario 3 à 6 workers non prouvé.
ARCH-A3.2-09 HealthPASSEDtest_lifecycle_checks.py::test_liveness_readiness_and_smoke_are_distinct (E-PO-SERVER)
ARCH-A3.2-10 Repair d'une configuration invalidePASSEDtest_services_config.py::test_versions_diff_restore_and_secrets (E-PO-SERVER)
ARCH-A3.2-11 BackupPASSEDtest_lifecycle_drift_backups.py::test_coordinated_backup_then_restore_executed_and_verified (E-PO-SERVER)
ARCH-A3.2-12 Restore sur un autre clusterPASSEDtest_backup_recovery.py::test_dr_plan_targets_empty_by_default_and_exercise_measured (E-PO-SERVER)
ARCH-A3.2-13 Rotation des certificats et identifiantsNOT_STARTEDAucun test cité dans ce lot.
ARCH-A3.2-14 Logs autorisésPASSEDtest_services_operate.py::test_commands_and_logs (E-PO-SERVER)
ARCH-A3.2-15 MétriquesPASSEDtest_hosts_api.py::test_metrics_series_bucketing (E-PO-SERVER)
ARCH-A3.2-16 Dépendances et leur étatPASSEDtest_services_operate.py::test_uninstall_and_service_in_use test_services_install.py::test_connection_bindings_and_unmanaged_provider (E-PO-SERVER)
ARCH-A3.2-17 DérivePASSEDtest_lifecycle_drift_backups.py::test_change_outside_the_manager_is_detected_and_reconciled (E-PO-SERVER)
ARCH-A3.2-18 Fenêtres de maintenancePASSEDtest_kubernetes_operator.py::test_maintenance_protects_the_component (E-PO-K8S)
ARCH-A3.2-19 Diagnostics fonctionnelsPASSEDtest_lifecycle_checks.py::test_liveness_readiness_and_smoke_are_distinct (E-PO-SERVER)
ARCH-A3.2-20 Lifecycle : activer, désactiver, décommissionnerPASSEDtest_hosts_api.py::test_decommission_and_delete (E-PO-SERVER)
ARCH-A3.2-21 Security LockIN_PROGRESStest_availability_api.py::test_dag_order_and_kill_switch_survives_restart (E-PO-SERVER)Verrou complet pendant un incident non prouvé.
ARCH-A3.2-22 Refus des arrêts dangereux sans procédure approuvéePASSEDtest_availability_api.py::test_client_managed_destructive_refused (E-PO-SERVER)
ARCH-A3.2-23 Changement des règles d'arrêt relayé par le portailPASSEDtest_platform_manager_bridge.py::test_manager_refusal_relayed_in_both_languages (E-PO-BRIDGE)

Partie A, A3.3. Fiche d'administration de chaque outil​

ÉlémentStatutPreuveReste ou blocage
ARCH-A3.3-01 Fiche d'administration par outilPASSEDtest_docs.py::test_service_pages_match_the_catalog (E-PO-SERVER)
ARCH-A3.3-02 Actions Configure, Restart, Upgrade, Logs, Metrics, DiagnosticsPASSEDtest_services_operate.py::test_commands_and_logs (E-PO-SERVER)
ARCH-A3.3-03 Onglets uniformes de la ficheNOT_STARTEDPas de test console des dix onglets.
ARCH-A3.3-04 Même modèle d'exploitation pour tout le cataloguePASSEDtest_catalog.py::test_every_template_renders (E-PO-SERVER)

Partie A, A3.4. États de lifecycle, états administratifs et cinq champs d'état​

ÉlémentStatutPreuveReste ou blocage
ARCH-A3.4-01 États de cycle de vie avec transitions contrôléesPASSEDtest_kubernetes_unit.py::test_states_stay_distinct (E-PO-K8S)
ARCH-A3.4-02 États administratifs ENABLED, DISABLED, MAINTENANCE, QUARANTINED, SUSPENDEDIN_PROGRESStest_platform_manager_bridge.py::test_services_five_state_fields_and_admin_state (E-PO-BRIDGE)Seuls enabled et maintenance existent ; DISABLED, QUARANTINED et SUSPENDED sont absents.
ARCH-A3.4-03 Champ desired_statePASSEDtest_platform_manager_bridge.py::test_services_five_state_fields_and_admin_state (E-PO-BRIDGE)
ARCH-A3.4-04 Champ observed_statePASSEDtest_platform_manager_bridge.py::test_services_five_state_fields_and_admin_state (E-PO-BRIDGE)
ARCH-A3.4-05 Champ health_statusPASSEDtest_platform_manager_bridge.py::test_services_five_state_fields_and_admin_state (E-PO-BRIDGE)
ARCH-A3.4-06 Champ operation_statusPASSEDtest_platform_manager_bridge.py::test_services_five_state_fields_and_admin_state test_platform_manager_bridge.py::test_operation_forwarded_on_behalf_and_audited (E-PO-BRIDGE)
ARCH-A3.4-07 Champ security_stateIN_PROGRESStest_platform_manager_bridge.py::test_services_five_state_fields_and_admin_state (E-PO-BRIDGE)security_state résume TLS et secrets, pas une autorisation d'exécution.
ARCH-A3.4-08 Écart désiré/observé visible dans l'APIPASSEDtest_platform_manager_bridge.py::test_services_five_state_fields_and_admin_state (E-PO-BRIDGE)

Partie A, A3.5. Composants à installer, phases et graphe de dépendances​

ÉlémentStatutPreuveReste ou blocage
ARCH-A3.5-01 Phase 0 bootstrap Manager, licence, environnementBLOCKEDtest_lifecycle_checks.py::test_liveness_readiness_and_smoke_are_distinct (E-ID-LIFECYCLE)Nécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-A3.5-02 Phase 1 réseau, certificats, DNS, stockagePASSEDtest_lifecycle_checks.py::test_tls_probes_real_handshakes test_lifecycle_checks.py::test_dns_forward_and_reverse_with_the_real_resolver (E-ID-LIFECYCLE)
ARCH-A3.5-03 Phase 2 PostgreSQL, Redis, stockage clientBLOCKEDtest_lifecycle_checks.py::test_liveness_readiness_and_smoke_are_distinct (E-ID-LIFECYCLE)Nécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-A3.5-04 Phase 3 Keycloak, SPIRE, secretsBLOCKEDtest_lifecycle_checks.py::test_liveness_readiness_and_smoke_are_distinct (E-ID-LIFECYCLE)Nécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-A3.5-05 Phase 4 OpenFGA, OPA, passerelle de politiquesBLOCKEDtest_lifecycle_checks.py::test_liveness_readiness_and_smoke_are_distinct (E-ID-LIFECYCLE)Nécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-A3.5-06 Phase 5 APISIX, passerelle d'audit, contrôle des donnéesBLOCKEDtest_lifecycle_checks.py::test_liveness_readiness_and_smoke_are_distinct (E-ID-LIFECYCLE)Nécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-A3.5-07 Phase 6 LiteLLM, vLLMBLOCKEDtest_lifecycle_checks.py::test_liveness_readiness_and_smoke_are_distinct (E-ID-LIFECYCLE)Nécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-A3.5-08 Phase 7 runtime Navin, NATS, Temporal, passerelle MCPBLOCKEDtest_lifecycle_checks.py::test_liveness_readiness_and_smoke_are_distinct (E-ID-LIFECYCLE)Nécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-A3.5-09 Phase 8 Qdrant, Haystack, Docling, RAGBLOCKEDtest_lifecycle_checks.py::test_liveness_readiness_and_smoke_are_distinct (E-ID-LIFECYCLE)Nécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-A3.5-10 Phase 9 OTel, Opik, Prometheus, OpenSearchBLOCKEDtest_lifecycle_checks.py::test_liveness_readiness_and_smoke_are_distinct (E-ID-LIFECYCLE)Nécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-A3.5-11 Phase 10 SOC, Kill Switch, preuvesBLOCKEDtest_lifecycle_checks.py::test_liveness_readiness_and_smoke_are_distinct (E-ID-LIFECYCLE)Nécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-A3.5-12 Phase 11 portail développeur, SDK, packsBLOCKEDtest_lifecycle_checks.py::test_liveness_readiness_and_smoke_are_distinct (E-ID-LIFECYCLE)Nécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-A3.5-13 Phase 12 diagnostics et recette finalePASSEDtest_lifecycle_bundle_acceptance.py::test_signed_acceptance_report_with_evidence (E-ID-LIFECYCLE)
ARCH-A3.5-14 Graphe de dépendances calculé par le ManagerPASSEDtest_services_install.py::test_provider_and_consumer_install_end_to_end (E-ID-LIFECYCLE)

Partie A, A3.6. Première installation guidée, rapport de recette signé, bundle hors ligne et récupération du Manager​

ÉlémentStatutPreuveReste ou blocage
ARCH-A3.6-01 Étape guidée : Préparer l'infrastructurePASSEDtest_lifecycle_checks.py::test_preflight_blocks_installation_on_critical_failures (E-ID-LIFECYCLE)
ARCH-A3.6-02 Étape guidée : Charger la licenceIN_PROGRESSÉtape présente dans l'assistant, sans test de comportement dédié dans ce lot
ARCH-A3.6-03 Étape guidée : Connecter les ressources clientPASSEDtest_services_install.py::test_connection_bindings_and_unmanaged_provider (E-ID-LIFECYCLE)
ARCH-A3.6-04 Étape guidée : Choisir le profilPASSEDtest_lifecycle_profiles.py::test_profile_catalog_and_creation (E-ID-LIFECYCLE)
ARCH-A3.6-05 Étape guidée : Installer avec progression, journaux, reprisePASSEDtest_services_install.py::test_provider_and_consumer_install_end_to_end (E-ID-LIFECYCLE)
ARCH-A3.6-06 Étape guidée : Configurer les politiquesIN_PROGRESSÉtape présente dans l'assistant, sans test de comportement dédié dans ce lot
ARCH-A3.6-07 Étape guidée : Lancer la recettePASSEDtest_lifecycle_bundle_acceptance.py::test_signed_acceptance_report_with_evidence (E-ID-LIFECYCLE)
ARCH-A3.6-08 Étape guidée : Activer l'environnementIN_PROGRESSÉtape présente dans l'assistant, sans test de comportement dédié dans ce lot
ARCH-A3.6-09 Rapport de recette signé PASS, FAIL, WAIVED justifiéPASSEDtest_lifecycle_bundle_acceptance.py::test_signed_acceptance_report_with_evidence (E-ID-LIFECYCLE)
ARCH-A3.6-10 Bundle hors ligne complet, rien téléchargé à l'installationPASSEDtest_bundle.py::test_manifest_of_verified_artifacts test_bundle.py::test_checksum_mismatch_refused test_bundle.py::test_verify_detects_modified_bundle (E-ID-PACKAGING)
ARCH-A3.6-11 Utilitaire de maintenance hors interface webIN_PROGRESSCLI présente ; test de récupération du Manager arrêté à écrire

Partie A, A4.1. Arborescence de navigation du portail​

ÉlémentStatutPreuveReste ou blocage
ARCH-A4.1-01 Vue d'ensemblePASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)
ARCH-A4.1-02 Platform ManagerIN_PROGRESSplatform-manager.test.ts::Platform Manager space over the Control Plane bridge nav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Espace livré sur les routes /v1/platform-manager (C01) avec tests de configuration, corps d'opération et filtrage par rôle ; non rejoué contre un vrai Platform Manager depuis le portail, liens profonds sans route exposant l'URL de base.
ARCH-A4.1-03 Gestion IAPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-ai.test.ts::modelsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.1-04 Agents et applicationsPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-ai.test.ts::agentsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.1-05 Developer StudioIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-A4.1-06 MarketplacePASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-developer.test.ts::marketplacePackagesCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.1-07 Données et RAGPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-operations.test.ts::knowledgeCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.1-08 Sécurité et IAMIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-A4.1-09 SOC et réponseIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-A4.1-10 ObservabilitéIN_PROGRESSobservability.test.ts::Observability SLO screen nav-access.test.ts::navigation filtered by role from GET /v1/me screens-overview.test.ts::sloCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)Écran SLO et budgets d'erreur livré sur GET /v1/telemetry/slo ; les traces Opik et les tableaux Grafana restent accessibles hors portail, sans lien profond dédié.
ARCH-A4.1-11 Audit et conformitéIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-A4.1-12 Paramètres entreprisePASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-overview.test.ts::tenantsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.1-13 Liens profonds vers Opik, Keycloak, LiteLLM, OpenSearchIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.

Partie A, A4.2. Écrans fonctionnels du portail​

ÉlémentStatutPreuveReste ou blocage
ARCH-A4.2-01 DashboardIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-A4.2-02 Cluster ExplorerIN_PROGRESSplatform-manager.test.ts::Platform Manager space over the Control Plane bridge nav-access.test.ts::navigation filtered by role from GET /v1/me screens-overview.test.ts::clustersCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)Espace livré sur les routes /v1/platform-manager (C01) avec tests de configuration, corps d'opération et filtrage par rôle ; non rejoué contre un vrai Platform Manager depuis le portail, liens profonds sans route exposant l'URL de base.
ARCH-A4.2-03 Service ManagerIN_PROGRESSplatform-manager.test.ts::Platform Manager space over the Control Plane bridge nav-access.test.ts::navigation filtered by role from GET /v1/me screens-overview.test.ts::servicesCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)Espace livré sur les routes /v1/platform-manager (C01) avec tests de configuration, corps d'opération et filtrage par rôle ; non rejoué contre un vrai Platform Manager depuis le portail, liens profonds sans route exposant l'URL de base.
ARCH-A4.2-04 Configuration CenterIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Espace Platform Manager du portail absent : attend les routes du domaine platform_manager (lot C01).
ARCH-A4.2-05 Model RegistryPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-ai.test.ts::modelVersionsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-06 Model PlaygroundIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-A4.2-07 Agent RegistryPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-ai.test.ts::agentsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-08 Agent Execution ExplorerPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-ai.test.ts::sessionsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-09 Developer ProjectsPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-overview.test.ts::projectsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-10 MarketplacePASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-developer.test.ts::marketplaceInstallationsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-11 Plugin StudioIN_PROGRESSapi-conformance.test.ts::screen configs (ResourceView / Tester) nav-access.test.ts::navigation filtered by role from GET /v1/me screens-developer.test.ts::pluginsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)Le catalogue de plugins (installation, désinstallation, statut) existe ; l'édition et la construction d'un plugin dans le portail ne sont pas fournies.
ARCH-A4.2-12 Skill LibraryPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-operations.test.ts::skillsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-13 Prompt RegistryPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-developer.test.ts::promptsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-14 MCP CenterPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-operations.test.ts::mcpCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-15 Connector CenterPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-operations.test.ts::connectorsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-16 RAG StudioPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-operations.test.ts::knowledgeCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-17 IAM CenterPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-overview.test.ts::membersCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-18 Policy StudioPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-security.test.ts::policiesCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-19 Privacy CenterPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-security.test.ts::dlpRulesCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-20 Approval CenterPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-ai.test.ts::approvalsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-21 SOC DashboardPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-security.test.ts::socOrdersCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-22 Kill Switch CenterPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-security.test.ts::killSwitchesCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-23 Trace ExplorerPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-security.test.ts::correlationsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-24 Audit ExplorerPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-security.test.ts::auditEventsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-25 Evidence CenterPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-security.test.ts::sealsCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-26 FinOpsPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-overview.test.ts::usageCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-A4.2-27 Backup & DRIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran Backup & DR non construit : aucune route de sauvegarde, restauration ou PRA sous /v1/platform-manager n'existe dans docs/api/control-plane-v1.requests.json (politiques, jobs, plans de restauration avec approbations, plans PRA avec dernier test, RTO et RPO observés).
ARCH-A4.2-28 License CenterPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-overview.test.ts::licenseHistoryCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)

Partie A, A4.3. Profils et droits appliqués côté serveur​

ÉlémentStatutPreuveReste ou blocage
ARCH-A4.3-01 Profil Administrateur plateformePASSEDtest_iam_role_matrix.py::test_role_matrix (E-IR-IDENTITY)
ARCH-A4.3-02 Profil Administrateur sécuritéPASSEDtest_iam_role_matrix.py::test_role_matrix (E-IR-IDENTITY)
ARCH-A4.3-03 Profil Analyste SOCPASSEDtest_iam_role_matrix.py::test_reference_roles_matrix (E-IR-IDENTITY)
ARCH-A4.3-04 Profil Responsable gouvernance IAPASSEDtest_iam_role_matrix.py::test_reference_roles_matrix (E-IR-IDENTITY)
ARCH-A4.3-05 Profil Data StewardPASSEDtest_iam_role_matrix.py::test_reference_roles_matrix (E-IR-IDENTITY)
ARCH-A4.3-06 Profil DéveloppeurPASSEDtest_iam_role_matrix.py::test_role_matrix (E-IR-IDENTITY)
ARCH-A4.3-07 Profil Propriétaire d'applicationPASSEDtest_iam_role_matrix.py::test_application_owner_edits_own_agent_only test_iam_role_matrix.py::test_reference_roles_matrix (E-IR-IDENTITY)
ARCH-A4.3-08 Profil AuditeurPASSEDtest_iam_role_matrix.py::test_role_matrix (E-IR-IDENTITY)
ARCH-A4.3-09 Profil Finance/FinOpsPASSEDtest_iam_role_matrix.py::test_role_matrix (E-IR-IDENTITY)
ARCH-A4.3-10 Profil Utilisateur métierPASSEDtest_iam_role_matrix.py::test_role_matrix (E-IR-IDENTITY)
ARCH-A4.3-11 Droits appliqués par OpenFGA et OPA côté serveurPASSEDtest_iam_openfga_real.py::test_document_relations_allow_and_deny_per_action test_iam_opa_bundles_real.py::test_signed_bundle_revisions_loaded_and_enforced test_iam_role_matrix.py::test_role_matrix (E-IR-IDENTITY)

Partie A, A4.4. Architecture frontend​

ÉlémentStatutPreuveReste ou blocage
ARCH-A4.4-01 Next.js + React + TypeScriptPASSEDi18n.test.ts::en and fr have exactly the same keys (E-DF-PORTAL)
ARCH-A4.4-02 Design system (Tailwind + radix + jetons webui au lieu de MUI, décision du client)PASSEDi18n.test.ts::no em dash or en dash anywhere (E-DF-PORTAL)
ARCH-A4.4-03 Client API généré depuis la spécification OpenAPIIN_PROGRESSopenapi-client.test.ts::the generated operation table is up to date with docs/api/openapi-v1.json openapi-client.test.ts::has one entry per operation of the specification api-conformance.test.ts::the table below covers every client call found in the portal source (E-DF-PORTAL)Seuls les nouveaux appels passent par callOperation ; les enveloppes de domaine existantes de resources.ts restent écrites à la main (vérifiées contre la spécification).
ARCH-A4.4-04 Temps réel par SSE ou WebSocket (opérations, traces, incidents, métriques)IN_PROGRESSsse.test.ts::follows the documented route with Last-Event-ID resumption and stops at end sse.test.ts::the run detail screen follows live runs realtime.test.ts::reconnects on unexpected closes only, a bounded number of times (E-DF-PORTAL)Exécutions suivies en SSE, voix en WebSocket ; incidents, traces et métriques restent en rafraîchissement périodique faute de route de flux documentée.
ARCH-A4.4-05 Éditeur Monaco (Rego, YAML, prompts, JSON, manifestes), empaqueté localementPASSEDstudio.test.ts::registers the contracts/v1 schemas in the editor, with the policy request wrapper (E-DF-PORTAL)
ARCH-A4.4-06 Formulaires React Hook Form + ZodPASSEDzod-csp.test.ts::parses objects without calling the Function constructor form-ids.test.ts::scopes every field id to its form instance (E-DF-PORTAL)
ARCH-A4.4-07 Graphes React Flow (topologies, dépendances, traces visuelles)IN_PROGRESScomponents.test.ts::layers GET /v1/lineage/graph and keeps the nodes of a cycle (E-DF-PORTAL)DependencyGraph en couches sans React Flow (ADR-0148) ; React Flow non ajouté, pas de vue de topologie interactive.
ARCH-A4.4-08 Graphiques Apache EChartsIN_PROGRESSmappers.test.ts (E-DF-PORTAL)Recharts (MIT) utilisé à la place d'ECharts (ADR-0148) ; à valider par le client.
ARCH-A4.4-09 Authentification OIDC avec KeycloakPASSEDsession.test.ts::keeps no secret in localStorage after login and logout (E-DF-PORTAL)
ARCH-A4.4-10 React Flow limité aux vues de topologie et d'exécution ; Developer Studio code firstPASSEDstudio.test.ts::conform to the documented API surface (E-DF-PORTAL)

Partie A, A5.1. Services backend à développer​

ÉlémentStatutPreuveReste ou blocage
ARCH-A5.1-01 platform-manager-apiPASSEDtest_platform_core.py::test_operations_api_detail_logs_abort_retry_and_scope (E-RB-NM)
ARCH-A5.1-02 platform-reconciler : dérive détectée et réconciliéePASSEDtest_lifecycle_drift_backups.py::test_change_outside_the_manager_is_detected_and_reconciled (E-RB-NM)
ARCH-A5.1-03 node-agent : enregistrement, préflight et signaturePASSEDtest_platform_core.py::test_registration_evaluates_preflight_at_once_and_reregisters test_foundation.py::test_agent_signature_is_required (E-RB-NM)
ARCH-A5.1-04 component-catalogPASSEDtest_catalog.py::test_catalog_loads_and_is_open_source_only test_platform_components.py::test_manifest_is_valid_against_the_schema (E-RB-CP, E-RB-NM)
ARCH-A5.1-05 configuration-service : versions, diff, restaurationPASSEDtest_services_config.py::test_versions_diff_restore_and_secrets (E-RB-NM)
ARCH-A5.1-06 deployment-service : installation fournisseur et consommateurPASSEDtest_services_install.py::test_provider_and_consumer_install_end_to_end (E-RB-NM)
ARCH-A5.1-07 health-controller : liveness, readiness, smoke distinctsPASSEDtest_lifecycle_checks.py::test_liveness_readiness_and_smoke_are_distinct (E-RB-NM)
ARCH-A5.1-08 identity-integration : OIDC, SPIFFE, clés APIPASSEDtest_core_auth.py::test_oidc test_core_auth.py::test_spiffe (E-RB-CP)
ARCH-A5.1-09 authorization-service : ReBAC et vérificationPASSEDtest_core_secrets_authz.py::test_authz_tuples_and_check test_authz_rebac.py::test_agent_and_project_relations (E-RB-CP)
ARCH-A5.1-10 delegation-service : délégation toujours plus étroite, révocation en cascadePASSEDtest_identity_context_delegation.py::test_restricted_delegation_is_always_narrower_and_revocation_cascades (E-RB-CP)
ARCH-A5.1-11 governance-registryPASSEDtest_data_quality_governance.py::test_governance_registry (E-RB-CP)
ARCH-A5.1-12 model-control-service : publication approuvée, canari, rollbackPASSEDtest_llm_model_lifecycle.py::test_publication_needs_an_approval_then_canary_and_rollback_keep_history (E-RB-CP)
ARCH-A5.1-13 agent-control-service : suspension, reprise approuvée, killPASSEDtest_agents_execution.py::test_kill_switch_blocks_new_runs (E-RB-CP)
ARCH-A5.1-14 runtime-gateway : PEP sur l'appel modèlePASSEDtest_gateway_pep_untrusted.py::test_pep_model_gateway_denied (E-RB-CP)
ARCH-A5.1-15 mcp-security-gatewayPASSEDtest_gateway_pep_untrusted.py::test_pep_mcp_denied test_capabilities_gateways.py::test_mcp_gateway (E-RB-CP)
ARCH-A5.1-16 connector-service : webhooks signés, rejeu, déduplicationPASSEDtest_capabilities_gateways.py::test_webhook_signature_replay_and_dedupe test_gateway_pep_untrusted.py::test_pep_connector_channel_a2a_denied (E-RB-CP)
ARCH-A5.1-17 developer-platform-service : premier jour du développeurPASSEDtest_core_contracts.py::test_apply_denied_by_policy (E-RB-CP)
ARCH-A5.1-18 pack-registry-service : paquet non signé ou altéré refuséPASSEDtest_marketplace.py::test_unsigned_tampered_or_untrusted_pack_is_refused (E-RB-CP)
ARCH-A5.1-19 data-access-gateway : PEP connaissance et mémoirePASSEDtest_gateway_pep_untrusted.py::test_pep_knowledge_and_memory_denied (E-RB-CP)
ARCH-A5.1-20 privacy-service : détokenisation autorisée et auditéePASSEDtest_data_privacy.py::test_detokenize_requires_permission_and_is_audited (E-RB-CP)
ARCH-A5.1-21 storage-adapter-service : politique décidée avant l'actionPASSEDtest_storage_profiles_api.py::test_policy_decides_before_the_storage_action (E-RB-CP)
ARCH-A5.1-22 rag-governance-service : ACL des fragmentsPASSEDtest_rag_governance.py::test_chunk_acl_forbidden_fragments_never_reach_the_context (E-RB-CP)
ARCH-A5.1-23 usage-budget-service : réservations concurrentesPASSEDtest_finops_quotas.py::test_concurrent_reservations_one_rejected (E-RB-CP)
ARCH-A5.1-24 evaluation-service : quality gates et red teamIN_PROGRESStest_data_evaluation.py::test_evaluation_gate_pass_and_fail test_data_evaluation.py::test_red_team_runs (E-RB-CP)Les moteurs réels Ragas, Promptfoo et garak ne sont pas exécutés par ce lot ; seules les quality gates et le red team intégrés sont prouvés.
ARCH-A5.1-25 approval-service : approbation par une autre personnePASSEDtest_approvals_promotion.py::test_promotion_waits_for_an_approval_from_someone_else (E-RB-CP)
ARCH-A5.1-26 audit-gateway : redélivrance sans perte ni doublonPASSEDtest_evidence_gateway.py::test_gateway_redelivers_after_target_outage_without_loss_or_duplicate (E-RB-CP)
ARCH-A5.1-27 evidence-service : scellement vérifiable en ligne et hors lignePASSEDtest_evidence_gateway.py::test_seal_signature_verifies_online_and_offline (E-RB-CP)
ARCH-A5.1-28 detection-service : normalisation et corrélationPASSEDtest_soc_ai_sdr.py::test_ingestor_normalizes_and_correlator_links_user_agent_tenant (E-RB-CP)
ARCH-A5.1-29 incident-servicePASSEDtest_soc_ai_sdr.py::test_incident_lifecycle_assignment_and_auditable_timeline (E-RB-CP)
ARCH-A5.1-30 kill-switch-controllerPASSEDtest_soc_ai_sdr.py::test_kill_switch_cancels_run_and_subagents_and_refuses_new_actions test_soc_ai_sdr.py::test_kill_switches_persist_across_restart (E-RB-CP)
ARCH-A5.1-31 response-playbook-service : réactions typées seulementPASSEDtest_soc_ai_sdr.py::test_typed_reactions_only_never_a_free_command test_soc_ai_sdr.py::test_rate_limit_and_require_approval_reactions (E-RB-CP)
ARCH-A5.1-32 license-service : activation hors lignePASSEDtest_licensing.py::test_offline_issuance_and_file_activation_without_network (E-RB-CP)
ARCH-A5.1-33 diagnostic-service : préflight et bundle de support assainiPASSEDtest_lifecycle_checks.py::test_preflight_blocks_installation_on_critical_failures test_lifecycle_bundle_acceptance.py::test_support_bundle_has_no_secret_and_no_personal_data (E-RB-NM)

Partie A, A5.2. Découpage technique des déploiements​

ÉlémentStatutPreuveReste ou blocage
ARCH-A5.2-01 control-api : déploiement du Control PlanePASSEDtest_platform_deploy_env.py::test_helm_env_names_are_settings test_platform_security_manifests.py::test_every_pod_spec_is_hardened (E-RB-CP)
ARCH-A5.2-02 platform-controller : Platform Manager hors du chart applicatifPASSEDtest_platform_core.py::test_background_server_tasks (E-RB-NM)
ARCH-A5.2-03 security-enforcement : OPA, OpenFGA, politiques réseauPASSEDtest_platform_security_manifests.py::test_default_deny_and_metadata_deny test_core_policies.py::test_opa_engine (E-RB-CP)
ARCH-A5.2-04 runtime-plane : worker, workers multimodaux KEDA, bac à sable, LiteLLM, vLLMPASSEDtest_platform_deploy_env.py::test_helm_worker_deployment test_media_worker.py::test_helm_worker_kinds_are_media_worker_operations test_platform_security_manifests.py::test_vllm_reachable_only_from_litellm_and_control_plane (E-RB-CP)
ARCH-A5.2-05 telemetry-planeIN_PROGRESStest_data_quality_governance.py::test_telemetry_ingest_overview_trace (E-RB-CP)Pas d'unité de déploiement télémétrie distincte dans le chart ; la pile d'observabilité est prouvée par le lot C10.
ARCH-A5.2-06 audit-plane : collecte d'audit durableIN_PROGRESStest_evidence_gateway.py::test_gateway_redelivers_after_target_outage_without_loss_or_duplicate (E-RB-CP)La passerelle d'audit tourne comme job du worker (audit_gateway), pas comme déploiement isolé du chart.
ARCH-A5.2-07 soc-plane : fonctionne même portail arrêtéIN_PROGRESStest_runtime_without_console.py::test_decisions_stay_enforced_with_console_and_admin_routes_down test_soc_ai_sdr.py::test_worker_runs_the_soc_scan_and_containment_verifier (E-RB-CP)Le SOC est servi par le Control Plane et le worker, indépendants du portail ; pas de déploiement SOC séparé dans le chart.
ARCH-A5.2-08 developer-plane : portail et documentationPASSEDtest_platform_security_manifests.py::test_portal_ingress_tls_headers_and_login_limit (E-RB-CP)
ARCH-A5.2-09 license-controller hors lignePASSEDtest_licensing.py::test_verifier_and_store_never_reach_the_network test_licensing.py::test_offline_issuance_and_file_activation_without_network (E-RB-CP)
ARCH-A5.2-10 Temporal pour les workflows durables, NATS JetStream pour les événements, Redis seulement cache et coordinationPASSEDtest_runtime_temporal_durable.py::test_durable_workflow_resumes_after_worker_kill test_runtime_nats_jetstream.py::test_dedup_ordering_redelivery_exactly_once test_core_redis.py::test_sources_of_truth_never_read_from_redis (E-RB-CP)

Partie A, A6.1. Schémas et tables PostgreSQL​

ÉlémentStatutPreuveReste ou blocage
ARCH-A6.1-01 Domaine cœur (tenants, organizations, business_units, environments, projects, settings)IN_PROGRESStest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)Tables absentes : organizations, business_units. Aucun code ne les utilise encore ; à créer avec le domaine qui les portera (pas de table vide).
ARCH-A6.1-02 Domaine identité et accès (users, groups, memberships, service_identities, delegations, access_grants)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-03 Domaine inventaire plateforme (clusters, nodes, components, component_versions, service_instances, dependencies)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-04 Domaine opérations plateforme (configurations, configuration_versions, operations, operation_steps, health_checks, maintenance_windows)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-05 Domaine IA (providers, models, model_routes, model_deployments, model_prices, model_approvals)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-06 Domaine agents (agents, agent_versions, agent_deployments, agent_runs, subagent_runs, checkpoints)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-07 Domaine sessions d'agents (sessions, action_requests, tool_invocations, memory_scopes, memory_entries)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-08 Domaine développement (projects, sdk_versions, project_templates, developer_environments, test_runs)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-09 Domaine registre des packs (packs, pack_versions, pack_installations, pack_assets, pack_dependencies)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-10 Domaine registre des actifs (skills, skill_versions, prompts, prompt_versions, plugins, plugin_versions)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-11 Domaine intégration (mcp_servers, mcp_tools, connectors, connector_instances, connector_credentials)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-12 Domaine données (data_sources, datasets, documents, document_acl, classifications, lineage_refs)IN_PROGRESStest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)Tables absentes : datasets. Aucun code ne les utilise encore ; à créer avec le domaine qui les portera (pas de table vide).
ARCH-A6.1-13 Domaine RAG (collections, ingestion_jobs, document_chunks, retrieval_policies, index_versions)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-14 Domaine politiques (policy_sets, policy_versions, policy_assignments, policy_tests, exceptions)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-15 Domaine signaux de sécurité (security_signals, detections, incidents, response_actions, quarantines, kill_switches)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-16 Domaine approbations de sécurité (approvals, approval_steps, risk_assessments, dlp_events)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-17 Domaine audit (events, decision_records, evidence_batches, evidence_objects, retention_policies, exports)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-18 Domaine observabilité (trace_refs, alert_rules, alert_instances, service_slos, telemetry_configs)IN_PROGRESStest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)Tables absentes : service_slos. Aucun code ne les utilise encore ; à créer avec le domaine qui les portera (pas de table vide).
ARCH-A6.1-19 Domaine FinOps (budgets, quotas, usage_records, cost_allocations, price_catalogs)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-20 Domaine stockage (profiles, buckets, storage_policies, object_refs, backup_records)PASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)
ARCH-A6.1-21 Domaine commercial (licenses, license_activations, entitlements, support_contracts, license_events)IN_PROGRESStest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)Tables absentes : support_contracts. Aucun code ne les utilise encore ; à créer avec le domaine qui les portera (pas de table vide).
ARCH-A6.1-22 Domaine système (outbox_events, inbox_events, scheduled_jobs, migrations, feature_flags)IN_PROGRESStest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)Tables absentes : inbox_events. Aucun code ne les utilise encore ; à créer avec le domaine qui les portera (pas de table vide).
ARCH-A6.1-23 Grosses traces dans Opik/Jaeger, journaux dans OpenSearch, fichiers dans le stockage objet clientIN_PROGRESStest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_data_model_mapping.py::test_column_backed_concepts_exist test_data_model_mapping.py::test_manager_and_external_locations_exist (E-DP-DATAMODEL)eai.telemetry_spans garde des spans résumés (coût, run_id) en PostgreSQL : à réduire à des références de trace si la décision d'architecture l'exige.
ARCH-A6.1-24 Outils à base propre (Keycloak, Opik, Temporal, OpenFGA) : schémas et migrations séparésPASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)

Partie A, A6.2. Relations importantes du modèle de données​

ÉlémentStatutPreuveReste ou blocage
ARCH-A6.2-01 Tenant vers organisations, projets, environnementsIN_PROGRESStest_data_model_mapping.py::test_relations_are_foreign_keys_or_reference_columns (E-DP-DATAMODEL)Organisations absentes (voir A6.1 cœur).
ARCH-A6.2-02 Cluster vers nœuds et instances de servicePASSEDtest_data_model_mapping.py::test_relations_are_foreign_keys_or_reference_columns (E-DP-DATAMODEL)
ARCH-A6.2-03 Composant vers versions, dépendances, instancesPASSEDtest_data_model_mapping.py::test_relations_are_foreign_keys_or_reference_columns (E-DP-DATAMODEL)
ARCH-A6.2-04 Agent vers versions, déploiements, exécutionsPASSEDtest_data_model_mapping.py::test_relations_are_foreign_keys_or_reference_columns (E-DP-DATAMODEL)
ARCH-A6.2-05 Exécution d'agent vers actions, sous-agents, tracesPASSEDtest_data_model_mapping.py::test_relations_are_foreign_keys_or_reference_columns (E-DP-DATAMODEL)
ARCH-A6.2-06 Projet développeur vers packs, tests, versionsPASSEDtest_data_model_mapping.py::test_relations_are_foreign_keys_or_reference_columns (E-DP-DATAMODEL)
ARCH-A6.2-07 Version de pack vers skills, prompts, MCP, connecteursPASSEDtest_data_model_mapping.py::test_relations_are_foreign_keys_or_reference_columns (E-DP-DATAMODEL)
ARCH-A6.2-08 Utilisateur vers délégations, approbations, événements d'auditPASSEDtest_data_model_mapping.py::test_relations_are_foreign_keys_or_reference_columns (E-DP-DATAMODEL)
ARCH-A6.2-09 Version de politique vers affectations, tests, décisionsPASSEDtest_data_model_mapping.py::test_relations_are_foreign_keys_or_reference_columns (E-DP-DATAMODEL)
ARCH-A6.2-10 Incident vers détection, réponse, preuvesPASSEDtest_data_model_mapping.py::test_relations_are_foreign_keys_or_reference_columns (E-DP-DATAMODEL)
ARCH-A6.2-11 Licence vers activations, droits, supportIN_PROGRESStest_data_model_mapping.py::test_relations_are_foreign_keys_or_reference_columns (E-DP-DATAMODEL)Contrats de support absents.

Partie B, B3.1. Fonctions du Manager​

ÉlémentStatutPreuveReste ou blocage
ARCH-B3.1-01 DiscoveryPASSEDtest_kubernetes_api.py::test_discovery_inventory (E-PO-K8S)
ARCH-B3.1-02 PreflightPASSEDtest_lifecycle_checks.py::test_preflight_blocks_installation_on_critical_failures (E-PO-SERVER)
ARCH-B3.1-03 Component CatalogPASSEDtest_catalog.py::test_topologies (E-PO-SERVER)
ARCH-B3.1-04 Dependency ManagerPASSEDtest_availability_api.py::test_dag_order_and_kill_switch_survives_restart (E-PO-SERVER)
ARCH-B3.1-05 Configuration ManagerPASSEDtest_services_config.py::test_config_groups_preview_and_apply (E-PO-SERVER)
ARCH-B3.1-06 Lifecycle ManagerPASSEDtest_services_operate.py::test_actions_rolling_restart_and_permissions (E-PO-SERVER)
ARCH-B3.1-07 Health ManagerPASSEDtest_services_operate.py::test_blueprint_round_trip_and_health_job (E-PO-SERVER)
ARCH-B3.1-08 Cluster ManagerPASSEDtest_services_operate.py::test_component_instances_change_peers (E-PO-SERVER)
ARCH-B3.1-09 Scaling ManagerNOT_STARTEDFonction non prouvée par un test dans ce lot.
ARCH-B3.1-10 Upgrade ManagerPASSEDtest_lifecycle_upgrades.py::test_upgrade_compatibility_refusals (E-PO-SERVER)
ARCH-B3.1-11 Backup & RecoveryPASSEDtest_backup_recovery.py::test_restore_needs_two_distinct_approvers_and_separate_privilege (E-PO-SERVER)
ARCH-B3.1-12 Certificate ManagerPASSEDtest_lifecycle_checks.py::test_tls_probes_real_handshakes (E-PO-SERVER)
ARCH-B3.1-13 Secrets IntegrationPASSEDtest_services_config.py::test_versions_diff_restore_and_secrets (E-PO-SERVER)
ARCH-B3.1-14 TroubleshootingPASSEDtest_platform_core.py::test_operations_api_detail_logs_abort_retry_and_scope (E-PO-SERVER)
ARCH-B3.1-15 Capacity PlannerNOT_STARTEDFonction non prouvée par un test dans ce lot.
ARCH-B3.1-16 Compliance CheckerNOT_STARTEDFonction non prouvée par un test dans ce lot.
ARCH-B3.1-17 License ManagerNOT_STARTEDFonction non prouvée par un test dans ce lot.
ARCH-B3.1-18 Support BundlePASSEDtest_lifecycle_bundle_acceptance.py::test_support_bundle_has_no_secret_and_no_personal_data (E-PO-SERVER)
ARCH-B3.1-19 Installation WizardPASSEDtest_lifecycle_profiles.py::test_each_profile_is_installable_or_blocked_with_reason (E-PO-SERVER)

Partie B, B3.2. Page d'accueil du Manager et onglets uniformes​

ÉlémentStatutPreuveReste ou blocage
ARCH-B3.2-01 Page d'accueil avec comptes réels par environnementPASSEDtest_platform_manager_bridge.py::test_summary_real_counts (E-PO-BRIDGE)
ARCH-B3.2-02 Services avec instances réelles x/y et étatsPASSEDtest_platform_manager_bridge.py::test_services_five_state_fields_and_admin_state (E-PO-BRIDGE)
ARCH-B3.2-03 Topologie réelle du cluster dans la console (INFUI-003)IN_PROGRESStopology.test.tsx nodes.test.tsx (E-PO-UI)Onglets uniformes (Audit, Support) non testés ; vue pools de nœuds non testée.

Partie B, B3.3. Arrêt technique et suspension de sécurité​

ÉlémentStatutPreuveReste ou blocage
ARCH-B3.3-01 Arrêt techniquePASSEDtest_services_operate.py::test_actions_rolling_restart_and_permissions (E-PO-SERVER)
ARCH-B3.3-02 Suspension de sécuritéNOT_STARTEDEffet distinct sur les applications et transactions non prouvé.
ARCH-B3.3-03 RestartPASSEDtest_services_operate.py::test_actions_rolling_restart_and_permissions (E-PO-SERVER)
ARCH-B3.3-04 Rolling restartPASSEDtest_services_operate.py::test_actions_rolling_restart_and_permissions (E-PO-SERVER)
ARCH-B3.3-05 DrainNOT_STARTEDEffet distinct sur les applications et transactions non prouvé.
ARCH-B3.3-06 Scale-to-zeroNOT_STARTEDEffet distinct sur les applications et transactions non prouvé.
ARCH-B3.3-07 Quarantaine d'un nœudIN_PROGRESSnodes.test.tsx (E-PO-UI)Effet distinct sur les applications et transactions non prouvé.
ARCH-B3.3-08 Arrêt d'urgenceIN_PROGRESStest_availability_api.py::test_dag_order_and_kill_switch_survives_restart (E-PO-SERVER)Effet distinct sur les applications et transactions non prouvé.

Partie B, B3.4. Manifeste standard de chaque composant​

ÉlémentStatutPreuveReste ou blocage
ARCH-B3.4-01 Manifeste : IdentitéIN_PROGRESStest_catalog.py::test_parameters_are_documented_and_valid (E-PO-SERVER)Le test valide le schéma du catalogue, pas chaque champ du manifeste de référence.
ARCH-B3.4-02 Manifeste : Statut de supportIN_PROGRESStest_catalog.py::test_parameters_are_documented_and_valid (E-PO-SERVER)Le test valide le schéma du catalogue, pas chaque champ du manifeste de référence.
ARCH-B3.4-03 Manifeste : DéploiementIN_PROGRESStest_catalog.py::test_parameters_are_documented_and_valid (E-PO-SERVER)Le test valide le schéma du catalogue, pas chaque champ du manifeste de référence.
ARCH-B3.4-04 Manifeste : DépendancesIN_PROGRESStest_catalog.py::test_parameters_are_documented_and_valid (E-PO-SERVER)Le test valide le schéma du catalogue, pas chaque champ du manifeste de référence.
ARCH-B3.4-05 Manifeste : Configuration (schéma, secretRefs)IN_PROGRESStest_catalog.py::test_parameters_are_documented_and_valid (E-PO-SERVER)Le test valide le schéma du catalogue, pas chaque champ du manifeste de référence.
ARCH-B3.4-06 Manifeste : OpérationsIN_PROGRESStest_catalog.py::test_parameters_are_documented_and_valid (E-PO-SERVER)Le test valide le schéma du catalogue, pas chaque champ du manifeste de référence.
ARCH-B3.4-07 Manifeste : SantéIN_PROGRESStest_catalog.py::test_parameters_are_documented_and_valid (E-PO-SERVER)Le test valide le schéma du catalogue, pas chaque champ du manifeste de référence.
ARCH-B3.4-08 Manifeste : ObservabilitéIN_PROGRESStest_catalog.py::test_parameters_are_documented_and_valid (E-PO-SERVER)Le test valide le schéma du catalogue, pas chaque champ du manifeste de référence.
ARCH-B3.4-09 Manifeste : SécuritéIN_PROGRESStest_catalog.py::test_parameters_are_documented_and_valid (E-PO-SERVER)Le test valide le schéma du catalogue, pas chaque champ du manifeste de référence.
ARCH-B3.4-10 Manifeste : Lifecycle (backup, approbation, budget)IN_PROGRESStest_catalog.py::test_parameters_are_documented_and_valid (E-PO-SERVER)Le test valide le schéma du catalogue, pas chaque champ du manifeste de référence.

Partie B, B3.5. Services backend du Manager et infrastructure apportée par le client​

ÉlémentStatutPreuveReste ou blocage
ARCH-B3.5-01 platform-apiPASSEDtest_foundation.py::test_api_requires_authentication (E-PO-SERVER)
ARCH-B3.5-02 installation-orchestratorPASSEDtest_services_install.py::test_provider_and_consumer_install_end_to_end (E-PO-SERVER)
ARCH-B3.5-03 configuration-servicePASSEDtest_services_config.py::test_config_groups_preview_and_apply (E-PO-SERVER)
ARCH-B3.5-04 dependency-resolverPASSEDtest_services_install.py::test_connection_bindings_and_unmanaged_provider (E-PO-SERVER)
ARCH-B3.5-05 health-controllerPASSEDtest_services_operate.py::test_blueprint_round_trip_and_health_job (E-PO-SERVER)
ARCH-B3.5-06 upgrade-controllerPASSEDtest_lifecycle_upgrades.py::test_stateless_upgrade_with_canary_then_rollback (E-PO-SERVER)
ARCH-B3.5-07 backup-coordinatorPASSEDtest_lifecycle_drift_backups.py::test_coordinated_backup_then_restore_executed_and_verified (E-PO-SERVER)
ARCH-B3.5-08 platform-diagnosticsPASSEDtest_lifecycle_bundle_acceptance.py::test_signed_acceptance_report_with_evidence (E-PO-SERVER)
ARCH-B3.5-09 license-serviceNOT_STARTEDLot C10.
ARCH-B3.5-10 platform-node-agentPASSEDtest_agent_signature.py::test_agent_and_server_signatures_are_identical (E-PO-SERVER)
ARCH-B3.5-11 Agent jamais shell générique : opérations signéesPASSEDtest_foundation.py::test_agent_signature_is_required (E-PO-SERVER)
ARCH-B3.5-12 BYOI Kubernetes existantPASSEDtest_kubernetes_api.py::test_manager_user_has_least_privilege (E-PO-K8S)
ARCH-B3.5-13 BYOI fournisseur non géréPASSEDtest_services_install.py::test_connection_bindings_and_unmanaged_provider (E-PO-SERVER)
ARCH-B3.5-14 Pont Control Plane platform_managerPASSEDtest_platform_manager_bridge.py::test_operation_forwarded_on_behalf_and_audited (E-PO-BRIDGE)

Partie B, B4.1. Profils de déploiement​

ÉlémentStatutPreuveReste ou blocage
ARCH-B4.1-01 Profil DéveloppementPASSEDtest_lifecycle_profiles.py::test_each_profile_is_installable_or_blocked_with_reason (E-ID-LIFECYCLE)
ARCH-B4.1-02 Profil Standard EnterprisePASSEDtest_lifecycle_profiles.py::test_each_profile_is_installable_or_blocked_with_reason test_lifecycle_profiles.py::test_standard_profile_satisfied_when_its_rules_hold (E-ID-LIFECYCLE)
ARCH-B4.1-03 Profil Banking SecurePASSEDtest_lifecycle_profiles.py::test_each_profile_is_installable_or_blocked_with_reason test_lifecycle_profiles.py::test_banking_secure_two_person_rule (E-ID-LIFECYCLE)
ARCH-B4.1-04 Profil Air-GappedPASSEDtest_lifecycle_profiles.py::test_each_profile_is_installable_or_blocked_with_reason (E-ID-LIFECYCLE)
ARCH-B4.1-05 Profil HybridePASSEDtest_lifecycle_profiles.py::test_each_profile_is_installable_or_blocked_with_reason (E-ID-LIFECYCLE)
ARCH-B4.1-06 Aucun profil n'impose de limite commercialePASSEDtest_lifecycle_profiles.py::test_profile_catalog_and_creation (E-ID-LIFECYCLE)

Partie B, B4.2. Workflow d'installation​

ÉlémentStatutPreuveReste ou blocage
ARCH-B4.2-01 Import de licenceIN_PROGRESSCouvert par un autre lot (licence C10, découverte C01) ; preuve à citer
ARCH-B4.2-02 Choix de l'environnementPASSEDtest_lifecycle_profiles.py::test_profile_catalog_and_creation (E-ID-LIFECYCLE)
ARCH-B4.2-03 Découverte de l'infrastructureIN_PROGRESSCouvert par un autre lot (licence C10, découverte C01) ; preuve à citer
ARCH-B4.2-04 Connexion des services clientPASSEDtest_services_install.py::test_connection_bindings_and_unmanaged_provider (E-ID-LIFECYCLE)
ARCH-B4.2-05 Sélection du profilPASSEDtest_lifecycle_profiles.py::test_profile_catalog_and_creation (E-ID-LIFECYCLE)
ARCH-B4.2-06 ParamètresPASSEDtest_services_install.py::test_validation_errors (E-ID-LIFECYCLE)
ARCH-B4.2-07 PrévalidationPASSEDtest_lifecycle_checks.py::test_preflight_blocks_installation_on_critical_failures test_services_install.py::test_artifact_missing_and_preflight_failure (E-ID-LIFECYCLE)
ARCH-B4.2-08 Déploiement ordonné enregistréPASSEDtest_services_install.py::test_provider_and_consumer_install_end_to_end (E-ID-LIFECYCLE)
ARCH-B4.2-09 Amorçage sécuritéBLOCKEDtest_services_install.py::test_opa_binary_install (E-ID-LIFECYCLE)Nécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-B4.2-10 Validation fonctionnelleBLOCKEDtest_lifecycle_bundle_acceptance.py::test_signed_acceptance_report_with_evidence (E-ID-LIFECYCLE)Nécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-B4.2-11 Activation opérationnelleIN_PROGRESSCouvert par un autre lot (licence C10, découverte C01) ; preuve à citer

Partie B, B4.3. Ce que le client trouve après l'installation​

ÉlémentStatutPreuveReste ou blocage
ARCH-B4.3-01 Portail accessible avec SSO et MFABLOCKEDNécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-B4.3-02 Comptes administrateurs et accès d'urgenceBLOCKEDNécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-B4.3-03 Composants enregistrés et supervisésPASSEDtest_services_install.py::test_provider_and_consumer_install_end_to_end (E-ID-LIFECYCLE)
ARCH-B4.3-04 Politiques et rôles de baseBLOCKEDNécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-B4.3-05 SDK téléchargeableBLOCKEDNécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-B4.3-06 Documentation locale hors ligneBLOCKEDNécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-B4.3-07 Exemples sans données réellesBLOCKEDNécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-B4.3-08 Packs métier visibles et installablesBLOCKEDNécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-B4.3-09 Traces et métriquesBLOCKEDNécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-B4.3-10 Alertes, détection, Kill Switch testablesBLOCKEDNécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-B4.3-11 Événements d'audit et preuves consultablesBLOCKEDNécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-B4.3-12 Point de terminaison de modèle de testBLOCKEDNécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-B4.3-13 Sauvegardes configurées et restauration documentéeBLOCKEDNécessite un cluster Kubernetes réel pour l'exécution de bout en bout ; la logique locale est prouvée par les tests cités [B-CLUSTER]
ARCH-B4.3-14 Prêt dès le premier jour sans permission magiquePASSEDtest_lifecycle_bundle_acceptance.py::test_signed_acceptance_report_with_evidence (E-ID-LIFECYCLE)

Partie B, B5.1. Arborescence fonctionnelle du portail​

ÉlémentStatutPreuveReste ou blocage
ARCH-B5.1-01 OverviewPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)
ARCH-B5.1-02 Platform ManagerIN_PROGRESSplatform-manager.test.ts::Platform Manager space over the Control Plane bridge nav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Espace livré sur les routes /v1/platform-manager (C01) avec tests de configuration, corps d'opération et filtrage par rôle ; non rejoué contre un vrai Platform Manager depuis le portail, liens profonds sans route exposant l'URL de base.
ARCH-B5.1-03 Organizations & IAMIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.1-04 AI Models & GatewayPASSEDnav-access.test.ts::navigation filtered by role from GET /v1/me screens-ai.test.ts::providersCfg routes, bodies, roles, confirmations and states (E-DF-PORTAL, E-PT-SCREENS)
ARCH-B5.1-05 Agents & ApplicationsIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.1-06 Developer StudioIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.1-07 Enterprise MarketplaceIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.1-08 Data & RAGIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.1-09 Security & GovernanceIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.1-10 SOC & Incident ResponseIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.1-11 ObservabilityIN_PROGRESSobservability.test.ts::Observability SLO screen nav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran SLO et budgets d'erreur livré sur GET /v1/telemetry/slo ; les traces Opik et les tableaux Grafana restent accessibles hors portail, sans lien profond dédié.
ARCH-B5.1-12 Quality & EvaluationIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.1-13 FinOpsIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.1-14 Audit & ComplianceIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.1-15 InfrastructureIN_PROGRESSplatform-manager.test.ts::Platform Manager space over the Control Plane bridge nav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Espace livré sur les routes /v1/platform-manager (C01) avec tests de configuration, corps d'opération et filtrage par rôle ; non rejoué contre un vrai Platform Manager depuis le portail, liens profonds sans route exposant l'URL de base.
ARCH-B5.1-16 Licensing & SupportIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.1-17 DocumentationIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.

Partie B, B5.2. Écrans prioritaires​

ÉlémentStatutPreuveReste ou blocage
ARCH-B5.2-01 Global dashboardIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.2-02 Service ManagerIN_PROGRESSplatform-manager.test.ts::Platform Manager space over the Control Plane bridge nav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Espace livré sur les routes /v1/platform-manager (C01) avec tests de configuration, corps d'opération et filtrage par rôle ; non rejoué contre un vrai Platform Manager depuis le portail, liens profonds sans route exposant l'URL de base.
ARCH-B5.2-03 Agent DetailsIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.2-04 Execution ExplorerIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.2-05 Policy ManagerIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.2-06 Prompt & Skill StudioIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.2-07 MCP StudioIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.2-08 Plugin BuilderIN_PROGRESSapi-conformance.test.ts::screen configs (ResourceView / Tester) nav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Le catalogue de plugins (installation, désinstallation, statut) existe ; l'édition et la construction d'un plugin dans le portail ne sont pas fournies.
ARCH-B5.2-09 MarketplaceIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.2-10 Model GatewayIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.2-11 Data ProtectionIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.2-12 SOC ConsoleIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.2-13 Kill Switch CenterIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.2-14 Audit ExplorerIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.
ARCH-B5.2-15 License CenterIN_PROGRESSnav-access.test.ts::navigation filtered by role from GET /v1/me (E-DF-PORTAL)Écran présent sans test vitest dédié de configuration, de corps de requête et d'états; à compléter.

Partie B, B5.3. Composants frontend transversaux et actions destructives​

ÉlémentStatutPreuveReste ou blocage
ARCH-B5.3-01 ResourceTable : recherche, filtres, tri, pagination, export selon les permissionsPASSEDcomponents.test.ts::searches, sorts numerically with missing values last and paginates (E-DF-PORTAL)
ARCH-B5.3-02 ResourceDetails : informations, état, versions, dépendances, historiquePASSEDcomponents.test.ts::splits information, state, versions, dependencies and history from the real fields (E-DF-PORTAL)
ARCH-B5.3-03 ConfigurationEditor : formulaires générés depuis JSON SchemaPASSEDcomponents.test.ts::generates the form fields from a JSON Schema of contracts/v1 (E-DF-PORTAL)
ARCH-B5.3-04 CodeEditor : Monaco pour Python, TypeScript, JSON, YAML, RegoIN_PROGRESSstudio.test.ts::registers the contracts/v1 schemas in the editor, with the policy request wrapper (E-DF-PORTAL)Langages déclarés : json, markdown, rego, plaintext, yaml ; Python et TypeScript non enregistrés dans EditorLanguage.
ARCH-B5.3-05 PermissionMatrix : rôles, ressources, opérationsPASSEDcomponents.test.ts::crosses subjects and resources with the relations of GET /v1/authz/tuples (E-DF-PORTAL)
ARCH-B5.3-06 ExecutionTimelinePASSEDcomponents.test.ts::merges steps and subagents of GET /v1/runs/{id}/steps and /subagents in time order (E-DF-PORTAL)
ARCH-B5.3-07 DependencyGraphPASSEDcomponents.test.ts::layers GET /v1/lineage/graph and keeps the nodes of a cycle (E-DF-PORTAL)
ARCH-B5.3-08 ApprovalDialog : validation humaine, séparation des tâchesPASSEDcomponents.test.ts::enforces separation of duties, the approver roles and the reject comment (E-DF-PORTAL)
ARCH-B5.3-09 SecurityFindings : vulnérabilités, risques, preuves, remédiationsPASSEDcomponents.test.ts::orders by severity and counts, keeping risk, evidence and remediation (E-DF-PORTAL)
ARCH-B5.3-10 DeploymentProgress : étapes, état, résultats, erreursPASSEDcomponents.test.ts::reports steps, state, current step and errors (E-DF-PORTAL)
ARCH-B5.3-11 IncidentTimeline : détection, décision, confinement, vérification, résolutionPASSEDcomponents.test.ts::shows detection, decision, containment, verification and resolution dated by real events only (E-DF-PORTAL)
ARCH-B5.3-12 Actions destructives : ressources, dépendances, risques et permissions affichés avant confirmationIN_PROGRESScomponents.test.ts::lists transitive dependents, risks and permissions and confirms only on the typed name (E-DF-PORTAL)DestructiveConfirm disponible ; les actions destructives existantes de ResourceView gardent la confirmation simple (non branchées sur le composant).

Partie B, B5.4. Rôles du portail​

ÉlémentStatutPreuveReste ou blocage
ARCH-B5.4-01 Rôle Administrateur plateformePASSEDtest_iam_role_matrix.py::test_role_matrix (E-IR-IDENTITY)
ARCH-B5.4-02 Rôle Administrateur sécuritéPASSEDtest_iam_role_matrix.py::test_role_matrix (E-IR-IDENTITY)
ARCH-B5.4-03 Rôle Analyste SOCPASSEDtest_iam_role_matrix.py::test_reference_roles_matrix (E-IR-IDENTITY)
ARCH-B5.4-04 Rôle Conformité/AuditeurPASSEDtest_iam_role_matrix.py::test_role_matrix (E-IR-IDENTITY)
ARCH-B5.4-05 Rôle Ingénieur plateforme IAPASSEDtest_iam_role_matrix.py::test_reference_roles_matrix (E-IR-IDENTITY)
ARCH-B5.4-06 Rôle Développeur IAPASSEDtest_iam_role_matrix.py::test_role_matrix (E-IR-IDENTITY)
ARCH-B5.4-07 Rôle Data StewardPASSEDtest_iam_role_matrix.py::test_reference_roles_matrix (E-IR-IDENTITY)
ARCH-B5.4-08 Rôle Business OwnerPASSEDtest_iam_role_matrix.py::test_business_owner_approves_use_case_and_soc_analyst_cannot test_iam_role_matrix.py::test_reference_roles_matrix (E-IR-IDENTITY)
ARCH-B5.4-09 Rôle FinOps ManagerPASSEDtest_iam_role_matrix.py::test_role_matrix (E-IR-IDENTITY)
ARCH-B5.4-10 Rôle Ingénieur supportPASSEDtest_iam_role_matrix.py::test_reference_roles_matrix (E-IR-IDENTITY)
ARCH-B5.4-11 Chaque endpoint vérifie OpenFGA et OPA indépendamment de l'interfacePASSEDtest_iam_openfga_real.py::test_require_relation_on_tool_routes_with_real_openfga test_iam_fail_closed.py::test_opa_killed_refuses_the_tool_call_and_audits_it (E-IR-IDENTITY)

Partie B, B6.1. Modules du Control Plane​

ÉlémentStatutPreuveReste ou blocage
ARCH-B6.1-01 platform-core : tenants, projets, environnementsPASSEDtest_core_tenancy.py::test_tenant_admin_flow test_core_tenancy.py::test_projects_and_environments (E-RB-CP)
ARCH-B6.1-02 platform-manager : API d'opérations du ManagerPASSEDtest_platform_core.py::test_operations_api_detail_logs_abort_retry_and_scope (E-RB-NM)
ARCH-B6.1-03 component-registry : graphe de dépendances acycliquePASSEDtest_platform_components.py::test_dependency_graph_is_acyclic_and_resolvable (E-RB-CP)
ARCH-B6.1-04 configuration-manager : réglages persistés et auditésPASSEDtest_security_api.py::test_settings_get_put_persist_and_audit (E-RB-CP)
ARCH-B6.1-05 identity-broker : OIDC et clés APIPASSEDtest_core_auth.py::test_oidc test_core_auth.py::test_api_key_lifecycle (E-RB-CP)
ARCH-B6.1-06 authorization-servicePASSEDtest_core_secrets_authz.py::test_authz_tuples_and_check (E-RB-CP)
ARCH-B6.1-07 delegation-servicePASSEDtest_identity_context_delegation.py::test_restricted_delegation_is_always_narrower_and_revocation_cascades (E-RB-CP)
ARCH-B6.1-08 context-authority : création, vérification, signature des contextes SDKPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_signing_key_is_read_from_the_openbao_reference_and_never_exposed (E-RB-CP)
ARCH-B6.1-09 agent-registryPASSEDtest_capabilities_gateways.py::test_manifest_apply_every_capability_kind (E-RB-CP)
ARCH-B6.1-10 application-registryPASSEDtest_applications_registry.py::test_application_lifecycle_and_external_agent (E-RB-CP)
ARCH-B6.1-11 model-registryPASSEDtest_llm_registry.py::test_model_registry_and_status (E-RB-CP)
ARCH-B6.1-12 model-gateway-manager : synchronisation LiteLLM sans secretPASSEDtest_llm_registry.py::test_litellm_sync_proxy test_llm_registry.py::test_litellm_config_contains_no_secret (E-RB-CP)
ARCH-B6.1-13 prompt-registryPASSEDtest_data_retention_lineage_prompts.py::test_prompt_registry_render (E-RB-CP)
ARCH-B6.1-14 skill-registryPASSEDtest_capabilities_gateways.py::test_skill_loader_refuses_tampered_unsigned_blocked (E-RB-CP)
ARCH-B6.1-15 mcp-registryPASSEDtest_approvals_promotion.py::test_skill_and_mcp_status_routes (E-RB-CP)
ARCH-B6.1-16 connector-registryPASSEDtest_capabilities_gateways.py::test_webhook_signature_replay_and_dedupe (E-RB-CP)
ARCH-B6.1-17 plugin-managerPASSEDtest_capabilities_gateways.py::test_plugin_install_lifecycle (E-RB-CP)
ARCH-B6.1-18 policy-manager : révisions, diff, simulationPASSEDtest_iam_policy_simulator.py::test_revisions_diff_and_simulation (E-RB-CP)
ARCH-B6.1-19 data-governancePASSEDtest_data_quality_governance.py::test_governance_registry test_data_privacy.py::test_classify_and_dlp_modes (E-RB-CP)
ARCH-B6.1-20 rag-manager : permission de la source vérifiée avant ingestionPASSEDtest_rag_governance.py::test_source_permission_checked_before_ingestion (E-RB-CP)
ARCH-B6.1-21 approval-managerPASSEDtest_approvals_promotion.py::test_promotion_waits_for_an_approval_from_someone_else (E-RB-CP)
ARCH-B6.1-22 finops-managerPASSEDtest_finops_quotas.py::test_reserve_commit_release_cycle (E-RB-CP)
ARCH-B6.1-23 evaluation-manager : comparaisons A/BPASSEDtest_evaluation_ab.py::test_comparison_is_saved_with_baseline_metrics_and_verdict (E-RB-CP)
ARCH-B6.1-24 licensing-managerPASSEDtest_licensing.py::test_annual_and_triennial_licences_activate_online (E-RB-CP)
ARCH-B6.1-25 documentation-service : surface API documentée et implémentéeIN_PROGRESStest_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)Pas de service de documentation en ligne dans le Control Plane ; la documentation est livrée en fichiers (docs/, OpenAPI) et vérifiée par les tests.

Partie B, B6.2. Services d'exécution et de sécurité indépendants​

ÉlémentStatutPreuveReste ou blocage
ARCH-B6.2-01 agent-execution-gateway : point d'entrée obligatoire des exécutions (agents tiers inclus)PASSEDtest_applications_registry.py::test_external_agent_model_and_mcp_gateways test_identity_context_delegation.py::test_opa_decision_is_taken_before_each_action_with_the_original_user (E-RB-CP)
ARCH-B6.2-02 navin-runtime-service : heartbeat, suspension, killPASSEDtest_agents_execution.py::test_kill_switch_blocks_new_runs (E-RB-CP)
ARCH-B6.2-03 secure-mcp-gatewayPASSEDtest_capabilities_gateways.py::test_mcp_gateway test_gateway_pep_untrusted.py::test_untrusted_mcp_result (E-RB-CP)
ARCH-B6.2-04 data-protection-gateway : masquage DLPPASSEDtest_capabilities_gateways.py::test_tool_invoke_dlp_credentials_usage test_llm_gateway.py::test_control_dlp (E-RB-CP)
ARCH-B6.2-05 audit-gateway : collecte durable indépendantePASSEDtest_evidence_gateway.py::test_gateway_redelivers_after_target_outage_without_loss_or_duplicate test_evidence_gateway.py::test_gateway_detects_outbox_sequence_gap (E-RB-CP)
ARCH-B6.2-06 evidence-servicePASSEDtest_evidence_gateway.py::test_seal_signature_verifies_online_and_offline test_evidence_gateway.py::test_monitor_detects_sql_tampering_of_a_sealed_event (E-RB-CP)
ARCH-B6.2-07 security-detection-enginePASSEDtest_soc_ai_sdr.py::test_risk_engine_rules_are_traced test_soc_ai_sdr.py::test_egress_denied_is_blocked_and_opens_an_incident (E-RB-CP)
ARCH-B6.2-08 incident-controllerPASSEDtest_soc_ai_sdr.py::test_incident_lifecycle_assignment_and_auditable_timeline (E-RB-CP)
ARCH-B6.2-09 kill-switch-controllerPASSEDtest_soc_ai_sdr.py::test_kill_switch_cancels_run_and_subagents_and_refuses_new_actions (E-RB-CP)
ARCH-B6.2-10 containment-verifier : vérifié seulement sur preuve réellePASSEDtest_soc_ai_sdr.py::test_verified_only_on_real_proof_and_drift_is_reapplied test_soc_ai_sdr.py::test_network_isolation_waits_for_a_signed_in_cluster_receipt (E-RB-CP)
ARCH-B6.2-11 storage-adapter-servicePASSEDtest_storage_profiles_api.py::test_presigned_urls_need_a_verified_capability_and_respect_expiry_and_scope (E-RB-CP)
ARCH-B6.2-12 telemetry-ingestion-servicePASSEDtest_data_quality_governance.py::test_telemetry_ingest_overview_trace (E-RB-CP)
ARCH-B6.2-13 Workers d'exécution, ingestion de télémétrie et SOC mis à l'échelle séparémentIN_PROGRESStest_platform_deploy_env.py::test_helm_worker_deployment test_media_worker.py::test_helm_worker_kinds_are_media_worker_operations (E-RB-CP)Worker et workers multimodaux (KEDA) ont leurs propres déploiements et réplicas ; l'ingestion de télémétrie et le SOC n'ont pas encore de déploiement séparé.

Partie B, B6.3. Contrats API principaux et operation_id​

ÉlémentStatutPreuveReste ou blocage
ARCH-B6.3-01 Contrat POST /platform/installations servi par POST /api/v1/clusters/{cluster_id}/servicesPASSEDtest_services_install.py::test_provider_and_consumer_install_end_to_end test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP, E-RB-NM)
ARCH-B6.3-02 Contrat GET /components servi par GET /api/v1/clusters/{cluster_id}/servicesPASSEDtest_services_operate.py::test_component_instances_change_peers test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP, E-RB-NM)
ARCH-B6.3-03 Contrat POST /components/{id}/operations servi par POST /api/v1/clusters/{cluster_id}/services/{service}/actionsPASSEDtest_services_operate.py::test_actions_rolling_restart_and_permissions test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP, E-RB-NM)
ARCH-B6.3-04 Contrat PUT /components/{id}/configuration servi par PUT /api/v1/clusters/{cluster_id}/services/{service}/configPASSEDtest_services_config.py::test_versions_diff_restore_and_secrets test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP, E-RB-NM)
ARCH-B6.3-05 Contrat POST /agents servi par POST /v1/agentsPASSEDtest_agents_execution.py::test_kill_switch_blocks_new_runs test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-06 Contrat POST /executions servi par POST /v1/agents/{agent_id}/runsPASSEDtest_agents_execution.py::test_run_lifecycle_contract_and_invalid_transition test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-07 Contrat POST /delegations servi par POST /v1/delegationsPASSEDtest_identity_context_delegation.py::test_restricted_delegation_is_always_narrower_and_revocation_cascades test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-08 Contrat POST /authorization/check servi par POST /v1/authz/checkPASSEDtest_core_secrets_authz.py::test_authz_tuples_and_check test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-09 Contrat POST /policies/validate servi par POST /v1/policies/simulatePASSEDtest_iam_policy_simulator.py::test_revisions_diff_and_simulation test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-10 Contrat POST /prompts servi par POST /v1/promptsPASSEDtest_data_retention_lineage_prompts.py::test_prompt_registry_render test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-11 Contrat POST /skills servi par POST /v1/skillsPASSEDtest_capabilities_gateways.py::test_skill_loader_refuses_tampered_unsigned_blocked test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-12 Contrat POST /mcp-servers servi par POST /v1/mcp/serversPASSEDtest_capabilities_gateways.py::test_mcp_gateway test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-13 Contrat POST /plugins/installations servi par POST /v1/marketplace/installationsPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-14 Contrat POST /models servi par POST /v1/modelsPASSEDtest_llm_registry.py::test_model_registry_and_status test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-15 Contrat POST /evaluations/runs servi par POST /v1/evaluations/runsPASSEDtest_data_evaluation.py::test_evaluation_gate_pass_and_fail test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-16 Contrat GET /audit/events servi par GET /v1/audit/eventsPASSEDtest_data_quality_governance.py::test_audit_events_verify_export_correlations test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-17 Contrat POST /incidents servi par POST /v1/incidentsPASSEDtest_data_quality_governance.py::test_incident_actions test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-18 Contrat POST /security/containments servi par POST /v1/soc/ordersPASSEDtest_soc_ai_sdr.py::test_soc_roles_access_audit_and_sealed_chain_of_custody test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-19 Contrat POST /security/recoveries servi par POST /v1/soc/recoveriesPASSEDtest_soc_ai_sdr.py::test_recovery_needs_four_eyes_then_reauthorization test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-20 Contrat POST /license/activate servi par POST /v1/license/activationsPASSEDtest_licensing.py::test_annual_and_triennial_licences_activate_online test_architecture_contracts_map.py::test_every_mapped_route_exists_in_the_committed_openapi (E-RB-CP)
ARCH-B6.3-21 Chaque opération longue renvoie un operation_id pour suivre, lire le résultat et éviter les doublonsIN_PROGRESStest_platform_core.py::test_operations_api_detail_logs_abort_retry_and_scope test_services_install.py::test_provider_and_consumer_install_end_to_end test_agents_execution.py::test_run_lifecycle_contract_and_invalid_transition (E-RB-CP, E-RB-NM)Le Manager renvoie un operation_id pour toutes ses opérations longues ; le Control Plane renvoie l'identifiant de la ressource suivie et n'accepte Idempotency-Key que sur les runs et les approbations : operation_id commun et déduplication sur chaque création longue à faire.

Partie B, B7.1. Découpage SQL par domaine​

ÉlémentStatutPreuveReste ou blocage
ARCH-B7.1-01 Schéma corePASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-02 Schéma platformPASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-03 Schéma iamPASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-04 Schéma governancePASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-05 Schéma aiPASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-06 Schéma modelsPASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-07 Schéma developerPASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-08 Schéma marketplacePASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-09 Schéma dataPASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-10 Schéma privacyPASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-11 Schéma observabilityPASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-12 Schéma auditPASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-13 Schéma securityPASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-14 Schéma finopsPASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-15 Schéma licensingPASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-16 Schéma operationsPASSEDtest_data_model_mapping.py::test_reference_schemas_cover_the_sixteen_schemas test_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-17 Contenus volumineux dans le stockage objet client, métadonnées, condensés et ACL en PostgreSQLPASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls (E-DP-DATAMODEL)
ARCH-B7.1-18 Traces OpenTelemetry non copiées dans PostgreSQLIN_PROGRESStest_data_model_mapping.py::test_column_backed_concepts_exist (E-DP-DATAMODEL)eai.telemetry_spans stocke encore des spans résumés : à remplacer par des références (trace_id) ou à justifier par ADR.

Partie B, B7.2. Champs communs des tables métier​

ÉlémentStatutPreuveReste ou blocage
ARCH-B7.2-01 Champ commun idPASSEDtest_data_model_mapping.py::test_common_fields_are_carried_where_declared (E-DP-DATAMODEL)
ARCH-B7.2-02 Champ commun tenant_idPASSEDtest_data_model_mapping.py::test_common_fields_are_carried_where_declared (E-DP-DATAMODEL)
ARCH-B7.2-03 Champ commun environment_idIN_PROGRESStest_data_model_mapping.py::test_common_fields_are_carried_where_declared (E-DP-DATAMODEL)Aucune table ne porte environment_id : l'environnement est un texte (marketplace_installations.environment, usage_events.environment). Normalisation à décider.
ARCH-B7.2-04 Champ commun created_atPASSEDtest_data_model_mapping.py::test_common_fields_are_carried_where_declared (E-DP-DATAMODEL)
ARCH-B7.2-05 Champ commun updated_atPASSEDtest_data_model_mapping.py::test_common_fields_are_carried_where_declared (E-DP-DATAMODEL)
ARCH-B7.2-06 Champ commun created_byPASSEDtest_data_model_mapping.py::test_common_fields_are_carried_where_declared (E-DP-DATAMODEL)
ARCH-B7.2-07 Champ commun updated_byIN_PROGRESStest_data_model_mapping.py::test_common_fields_are_carried_where_declared (E-DP-DATAMODEL)Porté seulement par eai.llm_model_rollouts ; non généralisé aux tables métier, sans validation JSON Schema en base pour metadata.
ARCH-B7.2-08 Champ commun versionIN_PROGRESStest_data_model_mapping.py::test_common_fields_are_carried_where_declared (E-DP-DATAMODEL)Porté seulement par eai.storage_profiles, eai.memory_items, eai.llm_models ; non généralisé aux tables métier, sans validation JSON Schema en base pour metadata.
ARCH-B7.2-09 Champ commun statusPASSEDtest_data_model_mapping.py::test_common_fields_are_carried_where_declared (E-DP-DATAMODEL)
ARCH-B7.2-10 Champ commun metadataIN_PROGRESStest_data_model_mapping.py::test_common_fields_are_carried_where_declared (E-DP-DATAMODEL)Porté seulement par eai.sessions, eai.kb_documents, eai.connector_credentials ; non généralisé aux tables métier, sans validation JSON Schema en base pour metadata.
ARCH-B7.2-11 Champ commun classificationPASSEDtest_data_model_mapping.py::test_common_fields_are_carried_where_declared (E-DP-DATAMODEL)
ARCH-B7.2-12 Champ commun correlation_idIN_PROGRESStest_data_model_mapping.py::test_common_fields_are_carried_where_declared (E-DP-DATAMODEL)Porté seulement par eai.audit_events, eai.usage_events, eai.telemetry_spans (sous le nom trace_id) ; non généralisé aux tables métier, sans validation JSON Schema en base pour metadata.
ARCH-B7.2-13 Schémas adaptés pour tables globales, d'association et immuablesPASSEDtest_data_model_mapping.py::test_every_mapped_eai_table_exists_with_columns_and_rls test_core_rls.py::test_audit_is_append_only_for_app_role (E-DP-DATAMODEL)

Partie B, B7.3. Isolation par RLS et rôles SQL​

ÉlémentStatutPreuveReste ou blocage
ARCH-B7.3-01 Tenant fixé par l'identité vérifiée via SET LOCAL dans la transactionPASSEDtest_core_rls.py::test_raw_sql_inside_tx_is_isolated test_core_rls.py::test_tenant_scope_without_principal_and_role_reset_after_tx (E-DP-DATAMODEL)
ARCH-B7.3-02 Rôle SQL non privilégiéPASSEDtest_data_model_mapping.py::test_runtime_role_cannot_bypass_rls test_core_rls.py::test_unscoped_app_role_sees_nothing (E-DP-DATAMODEL)
ARCH-B7.3-03 Connexions administrateur et runtime séparéesIN_PROGRESStest_core_rls.py::test_tenant_scope_without_principal_and_role_reset_after_tx test_core_rls_forced.py::test_migrations_run_in_the_platform_context (E-DP-DATAMODEL)Un seul identifiant de connexion (EAI_DATABASE_URL) : la séparation passe par SET LOCAL ROLE eai_app par transaction ; un second identifiant runtime sans droits de migration reste à introduire.
ARCH-B7.3-04 Propriétaire des tables et rôles BYPASSRLS maîtrisésPASSEDtest_core_rls_forced.py::test_force_binds_the_table_owner test_core_rls_forced.py::test_every_tenant_table_has_forced_row_level_security test_data_model_mapping.py::test_runtime_role_cannot_bypass_rls (E-DP-DATAMODEL)
ARCH-B7.3-05 Tests prouvant qu'une requête ne traverse pas la frontière du tenantPASSEDtest_core_rls.py::test_raw_sql_inside_tx_is_isolated test_core_rls.py::test_cannot_insert_into_other_tenant test_core_rls.py::test_api_isolation +1 (E-DP-DATAMODEL)

Partie B, B7.4. Modèle SQL du Marketplace​

ÉlémentStatutPreuveReste ou blocage
ARCH-B7.4-01 Table packages (namespace, nom, catégorie, éditeur, statut)IN_PROGRESStest_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)eai.marketplace_packages porte name, domain (catégorie), owner (éditeur) mais ni namespace ni statut de paquet distincts.
ARCH-B7.4-02 Table package_versions (manifeste, artefact, digest, signature, statut sécurité, date)PASSEDtest_marketplace.py::test_publication_succeeds_with_every_gate test_marketplace.py::test_production_publication_needs_gates_and_four_eyes (E-MK-MARKETPLACE)
ARCH-B7.4-03 Installations par tenant et environnement (configuration, statut, installed_by)PASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_other_tenant_reaches_no_marketplace_resource (E-MK-MARKETPLACE)
ARCH-B7.4-04 Relations approbations, dépendances, rôles, secrets, historique et rollbackPASSEDtest_marketplace.py::test_upgrade_rollback_and_uninstall test_marketplace.py::test_install_refuses_unapproved_or_unrequested_permissions test_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)
ARCH-B7.4-05 Migrations SQL versionnées testées automatiquementPASSEDtest_core_migrations.py::test_all_migrations_applied test_core_migrations.py::test_new_migration_applied_in_order (E-MK-MARKETPLACE)

Partie B, B8.1. Contenu d'un plugin métier​

ÉlémentStatutPreuveReste ou blocage
ARCH-B8.1-01 Plugin contenant des agents : validé, installé, activéPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.1-02 Plugin contenant des sous-agents : validé, installé, activéPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.1-03 Plugin contenant des skills : validé, installé, activéPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.1-04 Plugin contenant des prompts : validé, installé, activéPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.1-05 Plugin contenant des règles : validé, installé, activéIN_PROGRESStest_marketplace.py::test_publication_succeeds_with_every_gate test_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)Les règles sont validés à la publication (dossier obligatoire, gates tests/observabilité) mais installer.py ne les crée ni ne les active dans un registre.
ARCH-B8.1-06 Plugin contenant des politiques OPA : validé, installé, activéPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.1-07 Plugin contenant des relations OpenFGA : validé, installé, activéIN_PROGRESStest_marketplace.py::test_publication_succeeds_with_every_gate test_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)Les relations OpenFGA sont validés à la publication (dossier obligatoire, gates tests/observabilité) mais installer.py ne les crée ni ne les active dans un registre.
ARCH-B8.1-08 Plugin contenant des serveurs MCP : validé, installé, activéIN_PROGRESStest_marketplace.py::test_publication_succeeds_with_every_gate test_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)Les serveurs MCP sont validés à la publication (dossier obligatoire, gates tests/observabilité) mais installer.py ne les crée ni ne les active dans un registre.
ARCH-B8.1-09 Plugin contenant des outils MCP : validé, installé, activéPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.1-10 Plugin contenant des connecteurs : validé, installé, activéPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.1-11 Plugin contenant des workflows : validé, installé, activéIN_PROGRESStest_marketplace.py::test_publication_succeeds_with_every_gate test_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)Les workflows sont validés à la publication (dossier obligatoire, gates tests/observabilité) mais installer.py ne les crée ni ne les active dans un registre.
ARCH-B8.1-12 Plugin contenant des modèles RAG : validé, installé, activéIN_PROGRESStest_marketplace.py::test_publication_succeeds_with_every_gate test_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)Les modèles RAG sont validés à la publication (dossier obligatoire, gates tests/observabilité) mais installer.py ne les crée ni ne les active dans un registre.
ARCH-B8.1-13 Plugin contenant des évaluations : validé, installé, activéPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.1-14 Plugin contenant des tests de sécurité : validé, installé, activéPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.1-15 Plugin contenant des dashboards : validé, installé, activéIN_PROGRESStest_marketplace.py::test_publication_succeeds_with_every_gate test_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)élément du kit écarté par l'ADR-0169 (packs sans tableaux de bord)
ARCH-B8.1-16 Plugin contenant des alertes : validé, installé, activéIN_PROGRESStest_marketplace.py::test_publication_succeeds_with_every_gate test_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)Les alertes sont validés à la publication (dossier obligatoire, gates tests/observabilité) mais installer.py ne les crée ni ne les active dans un registre.
ARCH-B8.1-17 Plugin contenant des documentation : validé, installé, activéPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.1-18 Plugin contenant des tests : validé, installé, activéPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.1-19 Plugin contenant des migrations : validé, installé, activéIN_PROGRESStest_marketplace.py::test_publication_succeeds_with_every_gate test_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)Les migrations sont validés à la publication (dossier obligatoire, gates tests/observabilité) mais installer.py ne les crée ni ne les active dans un registre.

Partie B, B8.2. Structure standard du dossier d'un plugin​

ÉlémentStatutPreuveReste ou blocage
ARCH-B8.2-01 Structure officielle imposée par le validateurPASSEDtest_marketplace.py::test_publication_fails_when_a_gate_input_is_missing test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.2-02 Fichiers obligatoires plugin.yaml, README.md, LICENSE, CHANGELOG.mdPASSEDtest_marketplace.py::test_publication_fails_when_a_gate_input_is_missing (E-MK-MARKETPLACE)
ARCH-B8.2-03 Dossiers inutilisés omissiblesPASSEDtest_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)

Partie B, B8.3. Manifeste d'un plugin​

ÉlémentStatutPreuveReste ou blocage
ARCH-B8.3-01 Métadonnées (namespace, nom, version, catégorie, éditeur, displayName)IN_PROGRESStest_marketplace.py::test_publication_fails_when_a_gate_input_is_missing (E-MK-MARKETPLACE)Le schéma porte name, version, owner, domain ; namespace, category, publisher et displayName ne sont pas des champs du schéma.
ARCH-B8.3-02 Compatibilité plateforme et SDKPASSEDtest_marketplace.py::test_version_ranges test_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)
ARCH-B8.3-03 Contenus déclarésPASSEDtest_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.3-04 requestedPermissions données, outils, actionsPASSEDtest_marketplace.py::test_install_refuses_unapproved_or_unrequested_permissions test_marketplace.py::test_signed_pack_with_unsafe_permission_is_refused (E-MK-MARKETPLACE)
ARCH-B8.3-05 dataProtection (détection PII, masquage, export externe refusé par défaut)IN_PROGRESStest_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)dataProtection est accepté par le schéma mais les clés piiDetectionRequired, maskingPolicy, externalExportDefault ne sont ni imposées ni appliquées à l'installation.
ARCH-B8.3-06 approvals requiredForIN_PROGRESStest_marketplace.py::test_production_promotion_then_prod_install test_marketplace.py::test_install_refuses_unapproved_or_unrequested_permissions (E-MK-MARKETPLACE)Les approbations sont exprimées par approvals.install/sensitive/production (quorum), pas par une liste requiredFor.
ARCH-B8.3-07 security (artefact signé, sandbox, autorisation dynamique, audit)IN_PROGRESStest_marketplace.py::test_unsigned_tampered_or_untrusted_pack_is_refused test_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)Signature imposée et autorisation dynamique via /authorize ; les drapeaux sandboxRequired et auditRequired n'existent pas dans le manifeste de pack.
ARCH-B8.3-08 Schéma de configurationIN_PROGRESStest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)La configuration est libre (config) ; aucun schéma de configuration déclaré dans le manifeste n'est validé.
ARCH-B8.3-09 Drapeaux de tests (conformité SDK, autorisation, sécurité)IN_PROGRESStest_marketplace.py::test_publication_fails_when_a_gate_input_is_missing test_marketplace.py::test_publication_fails_on_failed_tests_evaluations_or_vulnerabilities (E-MK-MARKETPLACE)Tests unit, integration, authz, security exigés par la gate tests ; pas de drapeau sdkConformance.
ARCH-B8.3-10 Point d'entrée de la documentationPASSEDtest_marketplace.py::test_publication_fails_when_a_gate_input_is_missing (E-MK-MARKETPLACE)
ARCH-B8.3-11 Permissions demandées, non accordées : approbation puis seules les approuvées appliquéesPASSEDtest_marketplace.py::test_install_refuses_unapproved_or_unrequested_permissions test_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)

Partie B, B8.4. Marketplace de bout en bout​

ÉlémentStatutPreuveReste ou blocage
ARCH-B8.4-01 Publication signée et versionnéePASSEDtest_marketplace.py::test_publication_succeeds_with_every_gate test_marketplace.py::test_unsigned_tampered_or_untrusted_pack_is_refused (E-MK-MARKETPLACE)
ARCH-B8.4-02 Analyse (manifeste, SBOM, dépendances, sécurité)PASSEDtest_marketplace.py::test_publication_fails_when_a_gate_input_is_missing test_marketplace.py::test_publication_fails_on_failed_tests_evaluations_or_vulnerabilities (E-MK-MARKETPLACE)
ARCH-B8.4-03 Évaluation (tests fonctionnels et sécurité)PASSEDtest_marketplace.py::test_publication_fails_on_failed_tests_evaluations_or_vulnerabilities (E-MK-MARKETPLACE)
ARCH-B8.4-04 Approbation des capacités et permissionsPASSEDtest_marketplace.py::test_install_refuses_unapproved_or_unrequested_permissions test_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)
ARCH-B8.4-05 Installation dans un tenant et un environnement précisPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_other_tenant_reaches_no_marketplace_resource (E-MK-MARKETPLACE)
ARCH-B8.4-06 Configuration (connecteurs, secrets, sources, modèles)PASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once (E-MK-MARKETPLACE)
ARCH-B8.4-07 Vérification (tests réels de connexion et d'accès)IN_PROGRESStest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)Les smoke tests vérifient enregistrement, portées et chargement des skills ; aucun test de connexion réelle aux connecteurs.
ARCH-B8.4-08 Activation des agents, skills, outils et workflows approuvésIN_PROGRESStest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-MK-MARKETPLACE)Agents, skills et outils activés selon la permission accordée ; les workflows ne sont pas installés.
ARCH-B8.4-09 Supervision (activité, qualité, coûts, incidents)IN_PROGRESStest_marketplace.py::test_upgrade_rollback_and_uninstall (E-MK-MARKETPLACE)Historique marketplace_events et audit ; pas de vue agrégée par plugin de qualité, coûts et incidents.
ARCH-B8.4-10 Mise à jour (compatibilité, nouvelle approbation)PASSEDtest_marketplace.py::test_upgrade_rollback_and_uninstall (E-MK-MARKETPLACE)
ARCH-B8.4-11 Suspension du plugin ou de capacitésIN_PROGRESStest_marketplace.py::test_upgrade_rollback_and_uninstall (E-MK-MARKETPLACE)Aucun état suspended dans marketplace_installations ni route de suspension ; seul le désinstallation ou la révocation de l'éditeur existe.
ARCH-B8.4-12 Désinstallation conservant preuves et donnéesPASSEDtest_marketplace.py::test_upgrade_rollback_and_uninstall (E-MK-MARKETPLACE)

Partie B, B8.5. Format de distribution des plugins​

ÉlémentStatutPreuveReste ou blocage
ARCH-B8.5-01 Artefacts OCI dans Harbor avec ORASBLOCKEDtest_marketplace.py::test_production_promotion_then_prod_install (E-MK-MARKETPLACE)Harbor réel absent ; prouvé avec ORAS vers un registre zot local [B-DOCKER]
ARCH-B8.5-02 SemVerPASSEDtest_marketplace.py::test_version_ranges (E-MK-MARKETPLACE)
ARCH-B8.5-03 Signature CosignPASSEDtest_marketplace.py::test_unsigned_tampered_or_untrusted_pack_is_refused test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.5-04 SBOMPASSEDtest_marketplace.py::test_publication_fails_when_a_gate_input_is_missing test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B8.5-05 Scan TrivyPASSEDtest_marketplace.py::test_publication_fails_on_failed_tests_evaluations_or_vulnerabilities (E-MK-MARKETPLACE)
ARCH-B8.5-06 Provenance et contrôle de licenceIN_PROGRESStest_marketplace.py::test_publication_fails_when_a_gate_input_is_missing (E-MK-MARKETPLACE)Gate licence présente ; aucune attestation de provenance (SLSA) n'est exigée.
ARCH-B8.5-07 Digest immuable référencé par le marketplacePASSEDtest_marketplace.py::test_production_publication_needs_gates_and_four_eyes test_marketplace.py::test_production_promotion_then_prod_install (E-MK-MARKETPLACE)
ARCH-B8.5-08 Dépôt local pour clients air-gappedIN_PROGRESStest_marketplace.py::test_production_promotion_then_prod_install (E-MK-MARKETPLACE)Registre zot local utilisé en test ; aucune procédure documentée d'import hors ligne des packs dans le marketplace.
ARCH-B8.5-09 Signature et digest vérifiés avant chaque installationPASSEDtest_marketplace.py::test_revoked_publisher_blocks_install_and_production test_marketplace.py::test_unsigned_tampered_or_untrusted_pack_is_refused (E-MK-MARKETPLACE)

Partie B, B8.6. Packs métiers livrés avec la plateforme​

ÉlémentStatutPreuveReste ou blocage
ARCH-B8.6-01 RH : recrutement, onboarding, congés, analyse de documents RH ; SIRH, Workday, SuccessFactors, OdooPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only (E-BP-PACK-SOURCES, E-BP-PACKS-MARKETPLACE)
ARCH-B8.6-02 Finance : analyse, reporting, rapprochement, comptes fournisseurs ; ERP, SAP, Odoo, SQLPASSEDtest_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once (E-BP-PACK-SOURCES, E-BP-PACKS-MARKETPLACE)
ARCH-B8.6-03 Banque : KYC, conformité, documents clients, assistance conseiller ; core banking, CRM, GED, outils KYCPASSEDtest_business_packs.py::test_pack_is_complete_and_holds_no_credential test_business_packs.py::test_pack_signed_published_installed_sensitive_actions_blocked (E-BP-PACK-SOURCES, E-BP-PACKS-MARKETPLACE)
ARCH-B8.6-04 Risk & Compliance : contrôles, anomalies, préparation d'audit, réglementations ; GRC, SIEM, GED, référentielsPASSEDtest_business_packs.py::test_pack_is_complete_and_holds_no_credential test_business_packs.py::test_pack_signed_published_installed_sensitive_actions_blocked (E-BP-PACK-SOURCES, E-BP-PACKS-MARKETPLACE)
ARCH-B8.6-05 Juridique : recherche de contrats, analyse de clauses, dossiers ; GED, DMS, SharePointPASSEDtest_business_packs.py::test_pack_is_complete_and_holds_no_credential test_business_packs.py::test_pack_signed_published_installed_sensitive_actions_blocked (E-BP-PACK-SOURCES, E-BP-PACKS-MARKETPLACE)
ARCH-B8.6-06 IT Operations : diagnostic, incidents, documentation, assistance ; Jira, GitLab, Kubernetes, observabilitéPASSEDtest_business_packs.py::test_pack_is_complete_and_holds_no_credential test_business_packs.py::test_pack_signed_published_installed_sensitive_actions_blocked (E-BP-PACK-SOURCES, E-BP-PACKS-MARKETPLACE)
ARCH-B8.6-07 Cybersécurité : analyse d'alertes, investigation, rapports de vulnérabilités ; SIEM, API Wazuh, scanners, CMDB (intégration API, aucun composant GPL livré)PASSEDtest_business_packs.py::test_pack_is_complete_and_holds_no_credential test_business_packs.py::test_pack_signed_published_installed_sensitive_actions_blocked (E-BP-PACK-SOURCES, E-BP-PACKS-MARKETPLACE)
ARCH-B8.6-08 Commercial/CRM : prospection, qualification, relance ; Salesforce, HubSpot, DynamicsPASSEDtest_business_packs.py::test_pack_is_complete_and_holds_no_credential test_business_packs.py::test_pack_signed_published_installed_sensitive_actions_blocked (E-BP-PACK-SOURCES, E-BP-PACKS-MARKETPLACE)
ARCH-B8.6-09 Marketing : contenus, campagnes, reporting, études ; CMS, analytics, réseaux sociauxPASSEDtest_business_packs.py::test_pack_is_complete_and_holds_no_credential test_business_packs.py::test_pack_signed_published_installed_sensitive_actions_blocked (E-BP-PACK-SOURCES, E-BP-PACKS-MARKETPLACE)
ARCH-B8.6-10 Achats : analyse d'offres, fournisseurs, contrats ; ERP, procurement, GEDPASSEDtest_business_packs.py::test_pack_is_complete_and_holds_no_credential test_business_packs.py::test_pack_signed_published_installed_sensitive_actions_blocked (E-BP-PACK-SOURCES, E-BP-PACKS-MARKETPLACE)
ARCH-B8.6-11 Support Client : FAQ, RAG, assistance, qualification de tickets ; Zendesk, ServiceNow, CRMPASSEDtest_business_packs.py::test_pack_is_complete_and_holds_no_credential test_business_packs.py::test_pack_signed_published_installed_sensitive_actions_blocked (E-BP-PACK-SOURCES, E-BP-PACKS-MARKETPLACE)
ARCH-B8.6-12 Document Intelligence : OCR, extraction, classification, validation ; stockage, GED, email, APIPASSEDtest_business_packs.py::test_pack_is_complete_and_holds_no_credential test_business_packs.py::test_pack_signed_published_installed_sensitive_actions_blocked (E-BP-PACK-SOURCES, E-BP-PACKS-MARKETPLACE)
ARCH-B8.6-13 Chaque pack configurable, sans identifiant réel, connecteurs et actions sensibles désactivés tant que leur sécurité n'est pas validéePASSEDtest_business_packs.py::test_pack_is_complete_and_holds_no_credential test_business_packs.py::test_pack_signed_published_installed_sensitive_actions_blocked test_marketplace.py::test_install_refuses_unapproved_or_unrequested_permissions +1 (E-BP-PACKS-MARKETPLACE)

Partie B, B9.1. Structure des packages SDK​

ÉlémentStatutPreuveReste ou blocage
ARCH-B9.1-01 Contrats partagés utilisés par chaque SDKPASSEDtest_api_conformance.py::test_every_sdk_method_matches_the_api test_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.1-02 Modules Python et équivalents TypeScript, Go et JavaPASSEDtest_api_conformance.py::test_every_sdk_method_matches_the_api test_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.1-03 CLI, tests de conformité, exemples et documentationPASSEDtest_api_conformance.py::test_every_sdk_method_matches_the_api test_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)

Partie B, B9.2. Contrats SDK obligatoires​

ÉlémentStatutPreuveReste ou blocage
ARCH-B9.2-01 Contrat execution-contextPASSEDtest_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.2-02 Contrat action-contextPASSEDtest_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.2-03 Contrat delegation-contextPASSEDtest_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.2-04 Contrat policy-decisionPASSEDtest_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.2-05 Contrat tool-invocationPASSEDtest_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.2-06 Contrat llm-invocationPASSEDtest_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.2-07 Contrat data-access-contextPASSEDtest_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.2-08 Contrat approval-requestPASSEDtest_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.2-09 Contrat audit-eventPASSEDtest_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.2-10 Contrat security-incidentPASSEDtest_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.2-11 Contrat containment-orderPASSEDtest_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.2-12 Contrat plugin-manifestPASSEDtest_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.2-13 Contrat storage-profilePASSEDtest_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)
ARCH-B9.2-14 Contrat license-entitlementPASSEDtest_governance_clients.py::test_embedded_contracts_match_the_repository (E-DF-SDK-PY)

Partie B, B9.3. Méthodes SDK exposées​

ÉlémentStatutPreuveReste ou blocage
ARCH-B9.3-01 Interface identityPASSEDtest_api_conformance.py::test_every_sdk_method_matches_the_api test_sdk_interfaces.py::test_assume_service_cancel_record_and_storage_objects_confirm_their_result test_sdk_interfaces.py::test_assume_service_cancel_record_and_delete_propagate_every_refusal +7 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES, E-SC-B93-SERVER)
ARCH-B9.3-02 Interface delegationPASSEDtest_sdk_interfaces.py::test_delegation_subagent_tools_and_mcp interfaces.test.ts::delegation, subagent, tools, mcp, llm, rag and privacy interfaces_b93_test.go::TestB93MethodRoutes +1 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES)
ARCH-B9.3-03 Interface authzPASSEDtest_sdk_interfaces.py::test_authz_check_batch_and_explain interfaces.test.ts::checkBatch and explain report the confirmed decisions interfaces_b93_test.go::TestB93MethodRoutes +1 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES)
ARCH-B9.3-04 Interface agentPASSEDtest_api_conformance.py::test_every_sdk_method_matches_the_api conformance.test.ts interfaces_b93_test.go::TestB93MethodRoutes +1 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES)
ARCH-B9.3-05 Interface subagentPASSEDtest_sdk_interfaces.py::test_delegation_subagent_tools_and_mcp interfaces.test.ts::delegation, subagent, tools, mcp, llm, rag and privacy interfaces_b93_test.go::TestB93MethodRoutes +1 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES)
ARCH-B9.3-06 Interface toolsPASSEDtest_sdk_interfaces.py::test_delegation_subagent_tools_and_mcp interfaces.test.ts::delegation, subagent, tools, mcp, llm, rag and privacy interfaces_b93_test.go::TestB93MethodRoutes +1 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES)
ARCH-B9.3-07 Interface mcpPASSEDtest_sdk_interfaces.py::test_delegation_subagent_tools_and_mcp interfaces.test.ts::delegation, subagent, tools, mcp, llm, rag and privacy interfaces_b93_test.go::TestB93MethodRoutes +1 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES)
ARCH-B9.3-08 Interface llmPASSEDtest_sdk_interfaces.py::test_llm_rag_privacy_interfaces interfaces.test.ts::delegation, subagent, tools, mcp, llm, rag and privacy interfaces_b93_test.go::TestB93MethodRoutes +1 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES)
ARCH-B9.3-09 Interface ragPASSEDtest_sdk_interfaces.py::test_llm_rag_privacy_interfaces interfaces.test.ts::delegation, subagent, tools, mcp, llm, rag and privacy interfaces_b93_test.go::TestB93MethodRoutes +1 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES)
ARCH-B9.3-10 Interface privacyPASSEDtest_sdk_interfaces.py::test_llm_rag_privacy_interfaces interfaces.test.ts::delegation, subagent, tools, mcp, llm, rag and privacy interfaces_b93_test.go::TestB93MethodRoutes +1 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES)
ARCH-B9.3-11 Interface approvalPASSEDtest_sdk_interfaces.py::test_approval_audit_trace_finops_security test_sdk_interfaces.py::test_assume_service_cancel_record_and_storage_objects_confirm_their_result test_sdk_interfaces.py::test_assume_service_cancel_record_and_delete_propagate_every_refusal +7 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES, E-SC-B93-SERVER)
ARCH-B9.3-12 Interface auditPASSEDtest_sdk_interfaces.py::test_approval_audit_trace_finops_security test_sdk_interfaces.py::test_assume_service_cancel_record_and_storage_objects_confirm_their_result test_sdk_interfaces.py::test_assume_service_cancel_record_and_delete_propagate_every_refusal +5 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES, E-SC-B93-SERVER)
ARCH-B9.3-13 Interface tracePASSEDtest_sdk_interfaces.py::test_approval_audit_trace_finops_security interfaces.test.ts::approval, audit, trace, finops, security and storage interfaces_b93_test.go::TestB93MethodRoutes +1 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES)
ARCH-B9.3-14 Interface finopsPASSEDtest_sdk_interfaces.py::test_approval_audit_trace_finops_security interfaces.test.ts::approval, audit, trace, finops, security and storage interfaces_b93_test.go::TestB93MethodRoutes +1 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES)
ARCH-B9.3-15 Interface securityPASSEDtest_sdk_interfaces.py::test_approval_audit_trace_finops_security interfaces.test.ts::approval, audit, trace, finops, security and storage interfaces_b93_test.go::TestB93MethodRoutes +1 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES)
ARCH-B9.3-16 Interface storagePASSEDtest_sdk_interfaces.py::test_storage_put_and_get_go_through_a_presigned_grant test_sdk_interfaces.py::test_assume_service_cancel_record_and_storage_objects_confirm_their_result test_sdk_interfaces.py::test_assume_service_cancel_record_and_delete_propagate_every_refusal +7 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES, E-SC-B93-SERVER)
ARCH-B9.3-17 Règle : aucune décision OPA ou OpenFGA supposéePASSEDtest_sdk_interfaces.py::test_authz_errors_propagate_and_no_allow_is_assumed interfaces.test.ts::authz errors propagate and no allow is assumed interfaces_b93_test.go::TestB93NoAssumedAllow +1 (E-SC-PY-INTERFACES, E-SC-TS-INTERFACES, E-SC-GO-INTERFACES, E-SC-JAVA-INTERFACES)

Partie B, B9.4. SDK impossible à contourner​

ÉlémentStatutPreuveReste ou blocage
ARCH-B9.4-01 Identité et délégation validées par la passerelle (contexte signé, audience, émetteur, expiration)PASSEDtest_identity_context_delegation.py::test_tampered_wrong_audience_wrong_issuer_expired_and_foreign_tenant_are_refused (E-RB-CP)
ARCH-B9.4-02 OpenFGA et OPA revérifiés par la passerelle avant chaque actionPASSEDtest_identity_context_delegation.py::test_opa_decision_is_taken_before_each_action_with_the_original_user test_identity_context_delegation.py::test_policy_change_while_the_agent_runs_refuses_the_next_action (E-RB-CP)
ARCH-B9.4-03 Sortie LLM uniquement par LiteLLMPASSEDtest_platform_security_manifests.py::test_vllm_reachable_only_from_litellm_and_control_plane test_llm_isolation.py::test_egress_barrier_denies_external_hosts_of_an_isolated_model (E-RB-CP)
ARCH-B9.4-04 MCP uniquement par la Secure MCP GatewayPASSEDtest_gateway_pep_untrusted.py::test_pep_mcp_denied test_applications_registry.py::test_external_agent_model_and_mcp_gateways (E-RB-CP)
ARCH-B9.4-05 RAG par la passerelle de données et l'ACL du stockagePASSEDtest_rag_governance.py::test_chunk_acl_forbidden_fragments_never_reach_the_context test_rag_governance.py::test_document_acl_and_other_tenant_refused (E-RB-CP)
ARCH-B9.4-06 Masquage par la Data Protection GatewayPASSEDtest_capabilities_gateways.py::test_tool_invoke_dlp_credentials_usage test_llm_gateway.py::test_control_dlp (E-RB-CP)
ARCH-B9.4-07 Audit par l'Audit Gateway avec preuve indépendantePASSEDtest_evidence_gateway.py::test_seal_signature_verifies_online_and_offline test_evidence_gateway.py::test_forged_seal_signature_is_rejected (E-RB-CP)
ARCH-B9.4-08 Kill Switch appliqué par l'admission, le réseau et le runtimeBLOCKEDtest_soc_ai_sdr.py::test_kill_switch_cancels_run_and_subagents_and_refuses_new_actions test_soc_ai_sdr.py::test_network_isolation_waits_for_a_signed_in_cluster_receipt test_platform_security_manifests.py::test_static_cluster_policies (E-RB-CP)Runtime et reçus réseau signés prouvés ici ; l'application réelle par l'admission Kyverno et Cilium sur un cluster demande un cluster [B-CLUSTER].
ARCH-B9.4-09 Agents externes sans SDK : passerelles et connecteurs sécurisés, isolation réseau, permissions limitéesPASSEDtest_applications_registry.py::test_external_agent_model_and_mcp_gateways test_applications_registry.py::test_guard_direct (E-RB-CP)
ARCH-B9.4-10 Un agent tiers avec accès direct privilégié à la base est empêché par les rôles de base et les politiques réseauPASSEDtest_core_rls.py::test_unscoped_app_role_sees_nothing test_core_audit.py::test_app_role_cannot_rewrite test_platform_security_manifests.py::test_postgres_cluster_hardening +1 (E-RB-CP)

Partie B, B10.1. CLI officielle​

ÉlémentStatutPreuveReste ou blocage
ARCH-B10.1-01 Commande CLI login --profilePASSEDtest_cli.py::test_login_dev_and_config_profiles test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)
ARCH-B10.1-02 Commande CLI create agent --template secure-agentPASSEDtest_cli.py::test_reference_commands_of_the_architecture test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)
ARCH-B10.1-03 Commande CLI create plugin --template enterprise-pluginPASSEDtest_cli_developer.py::test_create_plugin_with_the_enterprise_plugin_template (E-DX-CLI)
ARCH-B10.1-04 Commande CLI create mcp --template secure-mcpPASSEDtest_cli.py::test_reference_commands_of_the_architecture test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)
ARCH-B10.1-05 Commande CLI create skillPASSEDtest_cli_developer.py::test_create_skill_and_prompt test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)
ARCH-B10.1-06 Commande CLI create promptPASSEDtest_cli_developer.py::test_create_skill_and_prompt test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)
ARCH-B10.1-07 Commande CLI validatePASSEDtest_cli.py::test_validate_invalid_file_exits_1 test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)
ARCH-B10.1-08 Commande CLI testPASSEDtest_cli_developer.py::test_test_without_scope_keeps_evaluation_behaviour test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)
ARCH-B10.1-09 Commande CLI test securityPASSEDtest_cli_developer.py::test_security_threshold_sets_exit_code test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)
ARCH-B10.1-10 Commande CLI test authorization (authz)PASSEDtest_cli_developer.py::test_authz_failing_policy_and_empty_project test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)
ARCH-B10.1-11 Commande CLI test sdk-conformancePASSEDtest_cli_developer.py::test_sdk_conformance test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)
ARCH-B10.1-12 Commande CLI plugin buildPASSEDtest_cli_developer.py::test_create_plugin_with_the_enterprise_plugin_template test_packs.py::test_cli_create_validate_build (E-DX-CLI)
ARCH-B10.1-13 Commande CLI plugin signPASSEDtest_packs.py::test_cli_sign_and_publish_body_with_oci test_packs.py::test_sign_and_verify_with_cosign test_cli_developer.py::test_create_plugin_with_the_enterprise_plugin_template (E-DX-CLI)
ARCH-B10.1-14 Commande CLI plugin publish --registryPASSEDtest_cli.py::test_reference_commands_of_the_architecture test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)
ARCH-B10.1-15 Commande CLI deploy --environmentPASSEDtest_cli.py::test_reference_commands_of_the_architecture test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)
ARCH-B10.1-16 Commande CLI runs listPASSEDtest_cli.py::test_runs_logs_chat_models_finops_quotas_audit test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)
ARCH-B10.1-17 Commande CLI agent inspectPASSEDtest_cli.py::test_reference_commands_of_the_architecture test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)
ARCH-B10.1-18 Commande CLI doctorPASSEDtest_cli_developer.py::test_doctor_checks test_cli_developer.py::test_cli_reference_is_up_to_date (E-DX-CLI)

Partie B, B10.2. Règles obligatoires pour les développeurs​

ÉlémentStatutPreuveReste ou blocage
ARCH-B10.2-01 Ne jamais forger, modifier ou remplacer l'identité utilisateurPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_security_auth.py::test_claims_enforced test_identity_context_delegation.py::test_run_carries_original_user_and_subagent_never_gets_wider_rights (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-02 Délégation contrôlée et limitée dans le tempsPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_identity_context_delegation.py::test_restricted_delegation_is_always_narrower_and_revocation_cascades test_identity_context_delegation.py::test_scheduled_run_needs_an_approved_mandate_bound_to_a_service_identity (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-03 Vérifier les droits à chaque accès sensiblePASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_core_secrets_authz.py::test_authz_tuples_and_check test_identity_context_delegation.py::test_revocation_during_a_run_blocks_the_next_sensitive_action (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-04 Appeler uniquement des modèles autorisés via LiteLLMPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_llm_gateway.py::test_control_model_allowlist_and_status test_gateway_pep_untrusted.py::test_pep_model_gateway_denied (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-05 Utiliser le Secure MCP GatewayPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_capabilities_gateways.py::test_mcp_gateway test_integration_usage.py::test_mcp_gateway_dlp_on_arguments_and_results (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-06 Appliquer les ACL documentaires avant retrieval et générationPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_rag_governance.py::test_chunk_acl_forbidden_fragments_never_reach_the_context test_rag_governance.py::test_document_acl_and_other_tenant_refused (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-07 Protéger les PII avant toute destination non approuvéePASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_llm_gateway.py::test_control_dlp test_quotas_dlp_realtime.py::test_adapter_file_dlp_blocks_before_call (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-08 Aucun secret dans le code, prompt, log ou dépôtPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_llm_registry.py::test_litellm_config_contains_no_secret test_evidence_config_redaction.py::test_secrets_and_pii_never_reach_logs (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-09 Aucune donnée sensible en clair dans les logs sans exception approuvéePASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_evidence_config_redaction.py::test_secrets_and_pii_never_reach_logs test_llm_gateway.py::test_control_audit_hashes_only (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-10 Audit obligatoire des décisions, actions et résultatsPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_audit_mutation_coverage.py::test_every_mutation_route_audits test_iam_fail_closed.py::test_audit_store_unavailable_blocks_sensitive_mutations (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-11 Prompts enregistrés et versionnésPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_data_retention_lineage_prompts.py::test_prompt_registry_render (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-12 Skills vérifiés en signature, permissions et versionPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_capabilities_gateways.py::test_skill_loader_refuses_tampered_unsigned_blocked (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-13 Uniquement des packages approuvésPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_marketplace.py::test_unsigned_tampered_or_untrusted_pack_is_refused test_marketplace.py::test_install_refuses_unapproved_or_unrequested_permissions (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-14 Les sous-agents ne reçoivent jamais plus de droits que reçusPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_identity_context_delegation.py::test_run_carries_original_user_and_subagent_never_gets_wider_rights test_security_privilege.py::test_narrow_key_cannot_mint_broader_scopes (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-15 Actions suspendues jusqu'à l'approbation requisePASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_platform_opa.py::test_tool_invocation_approval_obligation test_approvals_promotion.py::test_promotion_waits_for_an_approval_from_someone_else (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-16 Budgets respectésPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_integration_llm_finops.py::test_quota_exceeded_is_429_before_any_provider_call test_agents_execution.py::test_subagent_depth_count_and_budget_inheritance (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-17 Destinations réseau non autorisées interditesPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_soc_ai_sdr.py::test_egress_denied_is_blocked_and_opens_an_incident test_llm_isolation.py::test_egress_barrier_denies_external_hosts_of_an_isolated_model (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-18 Code risqué en sandboxPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_runtime_gvisor_sandbox.py::test_untrusted_code_refused_when_sandbox_unavailable test_agents_execution.py::test_sandbox_execution_spec (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-19 Ordres Kill Switch exécutés immédiatementPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_agents_execution.py::test_kill_switch_blocks_new_runs test_llm_gateway.py::test_control_kill_switch (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-20 Ne jamais masquer ni supprimer une alerte levéePASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_observability_signals.py::test_alert_receiver_creates_dedups_and_resolves test_core_rls.py::test_audit_is_append_only_for_app_role (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-21 Tests de sécurité et de conformité passés avant publicationPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_marketplace.py::test_publication_fails_when_a_gate_input_is_missing test_packs.py::test_cli_publish_refuses_an_unsigned_build (E-DX-CLI, E-DX-RULES)
ARCH-B10.2-22 Paquet de règles versionné distinguant règles documentaires et contrôles appliquésPASSEDtest_cli_developer.py::test_rules_package_maps_every_rule_to_an_existing_control_and_test test_cli_developer.py::test_rules_package_is_copied_by_every_project_template test_cli_developer.py::test_create_plugin_with_the_enterprise_plugin_template (E-DX-CLI)

Partie B, B10.3. Gates de publication​

ÉlémentStatutPreuveReste ou blocage
ARCH-B10.3-01 G1 SchémaPASSEDtest_marketplace.py::test_publication_fails_when_a_gate_input_is_missing (E-MK-MARKETPLACE)
ARCH-B10.3-02 G2 Dépendances (approuvées, licences, SBOM)PASSEDtest_marketplace.py::test_publication_fails_when_a_gate_input_is_missing test_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)
ARCH-B10.3-03 G3 Sécurité (Trivy, signatures, secrets)PASSEDtest_marketplace.py::test_publication_fails_on_failed_tests_evaluations_or_vulnerabilities test_marketplace.py::test_unsigned_tampered_or_untrusted_pack_is_refused (E-MK-MARKETPLACE)
ARCH-B10.3-04 G4 Autorisation (RBAC, ABAC, OpenFGA, tests OPA)PASSEDtest_marketplace.py::test_publication_fails_when_a_gate_input_is_missing test_marketplace.py::test_signed_pack_with_unsafe_permission_is_refused (E-MK-MARKETPLACE)
ARCH-B10.3-05 G5 Isolation des tenantsPASSEDtest_marketplace.py::test_other_tenant_reaches_no_marketplace_resource (E-MK-MARKETPLACE)
ARCH-B10.3-06 G6 Confidentialité (PII, masquage, DLP, logs, destinations)IN_PROGRESStest_marketplace.py::test_publication_succeeds_with_every_gate (E-MK-MARKETPLACE)Aucune gate dédiée PII/DLP à la publication ; dataProtection n'est pas évalué.
ARCH-B10.3-07 G7 Sûreté des outils (outils MCP, effets de bord)PASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once (E-MK-MARKETPLACE)
ARCH-B10.3-08 G8 Qualité (seuils Promptfoo et Ragas)PASSEDtest_marketplace.py::test_publication_fails_on_failed_tests_evaluations_or_vulnerabilities (E-MK-MARKETPLACE)
ARCH-B10.3-09 G9 Résilience (timeouts, retries, idempotence, annulation)IN_PROGRESStest_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once (E-MK-MARKETPLACE)Idempotence prouvée (paiement exactement une fois) ; pas de gate timeouts/retries/annulation.
ARCH-B10.3-10 G10 AuditPASSEDtest_marketplace.py::test_hr_pack_end_to_end_with_granted_permissions_only test_marketplace.py::test_install_refuses_unapproved_or_unrequested_permissions (E-MK-MARKETPLACE)
ARCH-B10.3-11 G11 Kill Switch (suspension, pas de contournement)IN_PROGRESStest_marketplace.py::test_revoked_publisher_blocks_install_and_production (E-MK-MARKETPLACE)Révocation de l'éditeur bloque install et production ; pas de gate Kill Switch dédiée par pack.
ARCH-B10.3-12 G12 Approbation (propriétaire et sécurité, production refusée sans)PASSEDtest_marketplace.py::test_production_publication_needs_gates_and_four_eyes test_marketplace.py::test_production_promotion_then_prod_install test_approvals_promotion.py::test_promotion_waits_for_an_approval_from_someone_else (E-MK-MARKETPLACE)
ARCH-B10.3-13 Politiques OPA distribuées en bundles signés sans redémarragePASSEDtest_iam_opa_bundles_real.py::test_signed_bundle_revisions_loaded_and_enforced test_iam_opa_bundles_real.py::test_bundle_signed_with_another_key_is_refused_by_opa (E-MK-MARKETPLACE)
ARCH-B10.3-14 Statut de chargement du bundle vérifiéPASSEDtest_iam_opa_bundles_real.py::test_signed_bundle_revisions_loaded_and_enforced (E-MK-MARKETPLACE)

Partie B, B10.4. Gestion des changements​

ÉlémentStatutPreuveReste ou blocage
ARCH-B10.4-01 Pipeline Draft, Test, Revue sécurité, Approbation métier, Staging, Production, MonitoringIN_PROGRESStest_approvals_promotion.py::test_failing_blocking_suite_prevents_the_promotion test_approvals_promotion.py::test_promotion_waits_for_an_approval_from_someone_else test_marketplace.py::test_production_promotion_then_prod_install (E-MK-MARKETPLACE)Promotion avec suite bloquante, approbation par un tiers et environnements dev/test/staging/prod ; pas de machine d'états unique nommant les sept étapes.
ARCH-B10.4-02 Changements de prompts, skills, connecteurs, règles, modèles traités comme changements applicatifsIN_PROGRESStest_approvals_promotion.py::test_skill_cannot_be_approved_outside_a_promotion test_approvals_promotion.py::test_failing_blocking_suite_prevents_the_promotion (E-MK-MARKETPLACE)Skills soumis à promotion ; prompts versionnés ; connecteurs, règles et modèles non couverts par la même promotion.
ARCH-B10.4-03 Changement critique : nouvelle évaluation et approbation sécurité selon l'impactPASSEDtest_approvals_promotion.py::test_failing_blocking_suite_prevents_the_promotion test_marketplace.py::test_upgrade_rollback_and_uninstall test_marketplace.py::test_install_refuses_unapproved_or_unrequested_permissions (E-MK-MARKETPLACE)

Partie B, B11.1. Documentation produit​

ÉlémentStatutPreuveReste ou blocage
ARCH-B11.1-01 Product OverviewIN_PROGRESStest_docs_kit.py::test_every_docu_requirement_has_its_french_and_english_guide (E-DO-DOCS, E-DO-AIRGAP)Le bundle hors ligne (tools/release/build.py, docs-offline) n'embarque que docs/operations et docs/release : ce guide hors de ces dossiers n'y est pas encore livré (bundle détenu par C02).
ARCH-B11.1-02 Architecture Guide (plans de contrôle, données, sécurité et flux)IN_PROGRESStest_docs_kit.py::test_every_docu_requirement_has_its_french_and_english_guide test_docs_kit.py::test_repository_paths_quoted_in_the_guides_exist (E-DO-DOCS, E-DO-AIRGAP)Le bundle hors ligne (tools/release/build.py, docs-offline) n'embarque que docs/operations et docs/release : ce guide hors de ces dossiers n'y est pas encore livré (bundle détenu par C02).
ARCH-B11.1-03 Deployment Guide (installation Kubernetes, prérequis, profils)PASSEDtest_docs_kit.py::test_every_docu_requirement_has_its_french_and_english_guide test_docs_kit.py::test_repository_paths_quoted_in_the_guides_exist test_docs_kit.py::test_routes_quoted_in_the_guides_exist_in_the_published_api +1 (E-DO-DOCS, E-DO-AIRGAP)
ARCH-B11.1-04 Administrator GuideIN_PROGRESStest_docs_kit.py::test_every_docu_requirement_has_its_french_and_english_guide (E-DO-DOCS, E-DO-AIRGAP)Pas de guide d'administration unique : le contenu est réparti entre la doc du Manager (operations.md) et docs/operations/configuration.md ; un guide d'administrateur consolidé FR et EN reste à écrire.
ARCH-B11.1-05 Security Hardening Guide (TLS, mTLS, RBAC, OPA, OpenFGA, secrets, réseau)PASSEDtest_docs_kit.py::test_every_docu_requirement_has_its_french_and_english_guide test_docs_kit.py::test_repository_paths_quoted_in_the_guides_exist test_docs_kit.py::test_routes_quoted_in_the_guides_exist_in_the_published_api +1 (E-DO-DOCS, E-DO-AIRGAP)
ARCH-B11.1-06 Operations Runbook (démarrer, arrêter, redémarrer, upgrade, diagnostic)PASSEDtest_docs_kit.py::test_every_docu_requirement_has_its_french_and_english_guide test_docs_kit.py::test_repository_paths_quoted_in_the_guides_exist test_docs_kit.py::test_routes_quoted_in_the_guides_exist_in_the_published_api +1 (E-DO-DOCS, E-DO-AIRGAP)
ARCH-B11.1-07 Backup & Recovery Guide (sauvegardes, restauration, RTO, RPO)PASSEDtest_docs_kit.py::test_every_docu_requirement_has_its_french_and_english_guide test_docs_kit.py::test_repository_paths_quoted_in_the_guides_exist test_docs_kit.py::test_routes_quoted_in_the_guides_exist_in_the_published_api +1 (E-DO-DOCS, E-DO-AIRGAP)
ARCH-B11.1-08 Monitoring GuidePASSEDtest_docs_kit.py::test_every_docu_requirement_has_its_french_and_english_guide test_docs_kit.py::test_repository_paths_quoted_in_the_guides_exist test_docs_kit.py::test_routes_quoted_in_the_guides_exist_in_the_published_api +1 (E-DO-DOCS, E-DO-AIRGAP)
ARCH-B11.1-09 Incident Response Guide (SOC, playbooks, Kill Switch, reprise)IN_PROGRESStest_docs_kit.py::test_every_docu_requirement_has_its_french_and_english_guide test_docs_kit.py::test_repository_paths_quoted_in_the_guides_exist (E-DO-DOCS, E-DO-AIRGAP)Le bundle hors ligne (tools/release/build.py, docs-offline) n'embarque que docs/operations et docs/release : ce guide hors de ces dossiers n'y est pas encore livré (bundle détenu par C02).
ARCH-B11.1-10 Compliance Mapping (matrices de contrôles et preuves)IN_PROGRESStest_kit_traceability.py (E-TRACE)Les matrices existent sous forme générée (traceability.yaml, STATUS, ARCHITECTURE_CONFORMANCE) mais aucun guide Compliance Mapping rédigé en FR et EN (contrôle vers preuve) n'est livré dans le bundle.
ARCH-B11.1-11 Troubleshooting GuideIN_PROGRESStest_docs_kit.py::test_every_docu_requirement_has_its_french_and_english_guide test_docs_kit.py::test_repository_paths_quoted_in_the_guides_exist (E-DO-DOCS, E-DO-AIRGAP)Le bundle hors ligne (tools/release/build.py, docs-offline) n'embarque que docs/operations et docs/release : ce guide hors de ces dossiers n'y est pas encore livré (bundle détenu par C02).
ARCH-B11.1-12 Licensing Guide (activation, hors ligne, expiration, renouvellement)PASSEDtest_docs_kit.py::test_every_docu_requirement_has_its_french_and_english_guide test_docs_kit.py::test_repository_paths_quoted_in_the_guides_exist test_docs_kit.py::test_routes_quoted_in_the_guides_exist_in_the_published_api +2 (E-DO-DOCS, E-DO-AIRGAP)
ARCH-B11.1-13 Release NotesPASSEDtest_release_bundle.py::test_release_notes_generated_and_deterministic test_docs_kit.py::test_no_long_dash_anywhere (E-DO-DOCS, E-DO-AIRGAP)

Partie B, B11.2. Documentation développeur​

ÉlémentStatutPreuveReste ou blocage
ARCH-B11.2-01 Getting Started (premier agent sécurisé)PASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +3 (E-DD-GUIDES)
ARCH-B11.2-02 Guide SDK PythonPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +1 (E-DD-GUIDES)
ARCH-B11.2-03 Guide SDK TypeScriptPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +2 (E-DD-GUIDES)
ARCH-B11.2-04 Guide SDK GoPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +2 (E-DD-GUIDES)
ARCH-B11.2-05 Référence ExecutionContextPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +3 (E-DD-GUIDES)
ARCH-B11.2-06 Référence ActionContextPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +3 (E-DD-GUIDES)
ARCH-B11.2-07 Référence API (OpenAPI et exemples)PASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +3 (E-DD-GUIDES)
ARCH-B11.2-08 Guide de développement d'agentPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +3 (E-DD-GUIDES)
ARCH-B11.2-09 Guide de développement MCPPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +3 (E-DD-GUIDES)
ARCH-B11.2-10 Guide de développement de skillPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +3 (E-DD-GUIDES)
ARCH-B11.2-11 Guide de développement de promptPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +3 (E-DD-GUIDES)
ARCH-B11.2-12 Guide de développement de pluginPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +3 (E-DD-GUIDES)
ARCH-B11.2-13 Guide de développement de connecteurPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +3 (E-DD-GUIDES)
ARCH-B11.2-14 Guide de développement de politiquesPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +3 (E-DD-GUIDES)
ARCH-B11.2-15 Guide de testsPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +3 (E-DD-GUIDES)
ARCH-B11.2-16 Guide de migrationPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve test_developer_guides.py::test_cli_commands_and_sub_commands_exist +3 (E-DD-GUIDES)

Partie B, B11.3. Documentation vivante​

ÉlémentStatutPreuveReste ou blocage
ARCH-B11.3-01 Portail développeur alimenté par manifestes, schémas JSON et OpenAPIPASSEDtest_developer_guides.py::test_guide_exists_in_french_and_english_with_the_same_structure test_developer_guides.py::test_links_and_quoted_paths_resolve (E-DD-GUIDES)
ARCH-B11.3-02 Marketplace affichant documentation, capacités, exemples et configuration du pluginIN_PROGRESStest_developer_guides.py::test_routes_quoted_in_the_guides_exist (E-DD-GUIDES)La documentation explique les routes Marketplace (fiche, version, preflight) ; l'affichage dans l'écran Marketplace de la documentation du plugin, des capacités, des exemples et de la configuration reste à vérifier par C07 et C09 (écrans hors périmètre de C13).
ARCH-B11.3-03 Exemples exécutables vérifiés par des testsPASSEDtest_developer_guides.py::test_typescript_snippets_compile test_developer_guides.py::test_go_snippets_vet_and_build test_developer_guides.py::test_java_snippets_compile_against_the_maven_build (E-DD-GUIDES)

Partie B, B12.1. Couverture de la licence​

ÉlémentStatutPreuveReste ou blocage
ARCH-B12.1-01 Utilisateurs illimitésPASSEDtest_licensing.py::test_entitlements_never_count_users_agents_apps_plugins_or_use_cases test_licensing.py::test_payload_carrying_a_price_or_a_limit_is_refused test_license_issuer.py::test_signed_payload_with_price_or_limit_is_refused (E-CP-LICENSING, E-LICENSE-ISSUER)
ARCH-B12.1-02 Agents illimitésPASSEDtest_licensing.py::test_entitlements_never_count_users_agents_apps_plugins_or_use_cases test_licensing.py::test_payload_carrying_a_price_or_a_limit_is_refused test_license_issuer.py::test_signed_payload_with_price_or_limit_is_refused (E-CP-LICENSING, E-LICENSE-ISSUER)
ARCH-B12.1-03 Sous-agents illimitésPASSEDtest_licensing.py::test_entitlements_never_count_users_agents_apps_plugins_or_use_cases test_licensing.py::test_payload_carrying_a_price_or_a_limit_is_refused test_license_issuer.py::test_signed_payload_with_price_or_limit_is_refused (E-CP-LICENSING, E-LICENSE-ISSUER)
ARCH-B12.1-04 Applications illimitésPASSEDtest_licensing.py::test_entitlements_never_count_users_agents_apps_plugins_or_use_cases test_licensing.py::test_payload_carrying_a_price_or_a_limit_is_refused test_license_issuer.py::test_signed_payload_with_price_or_limit_is_refused (E-CP-LICENSING, E-LICENSE-ISSUER)
ARCH-B12.1-05 Cas d'usage illimitésPASSEDtest_licensing.py::test_entitlements_never_count_users_agents_apps_plugins_or_use_cases test_licensing.py::test_payload_carrying_a_price_or_a_limit_is_refused test_license_issuer.py::test_signed_payload_with_price_or_limit_is_refused (E-CP-LICENSING, E-LICENSE-ISSUER)
ARCH-B12.1-06 Développeurs illimitésPASSEDtest_licensing.py::test_entitlements_never_count_users_agents_apps_plugins_or_use_cases test_licensing.py::test_payload_carrying_a_price_or_a_limit_is_refused test_license_issuer.py::test_signed_payload_with_price_or_limit_is_refused (E-CP-LICENSING, E-LICENSE-ISSUER)
ARCH-B12.1-07 Prompts et skills illimitésPASSEDtest_licensing.py::test_entitlements_never_count_users_agents_apps_plugins_or_use_cases test_licensing.py::test_payload_carrying_a_price_or_a_limit_is_refused test_license_issuer.py::test_signed_payload_with_price_or_limit_is_refused (E-CP-LICENSING, E-LICENSE-ISSUER)
ARCH-B12.1-08 Plugins et mcp illimitésPASSEDtest_licensing.py::test_entitlements_never_count_users_agents_apps_plugins_or_use_cases test_licensing.py::test_payload_carrying_a_price_or_a_limit_is_refused test_license_issuer.py::test_signed_payload_with_price_or_limit_is_refused (E-CP-LICENSING, E-LICENSE-ISSUER)
ARCH-B12.1-09 Connecteurs illimitésPASSEDtest_licensing.py::test_entitlements_never_count_users_agents_apps_plugins_or_use_cases test_licensing.py::test_payload_carrying_a_price_or_a_limit_is_refused test_license_issuer.py::test_signed_payload_with_price_or_limit_is_refused (E-CP-LICENSING, E-LICENSE-ISSUER)
ARCH-B12.1-10 Modèles configurés illimitésPASSEDtest_licensing.py::test_entitlements_never_count_users_agents_apps_plugins_or_use_cases test_licensing.py::test_payload_carrying_a_price_or_a_limit_is_refused test_license_issuer.py::test_signed_payload_with_price_or_limit_is_refused (E-CP-LICENSING, E-LICENSE-ISSUER)
ARCH-B12.1-11 Aucun quota commercial sur les requêtes ou les tokensPASSEDtest_licensing.py::test_many_users_agents_and_plugins_under_one_licence test_licensing.py::test_only_two_actions_can_ever_be_refused (E-CP-LICENSING)
ARCH-B12.1-12 Durée 12 ou 36 moisPASSEDtest_licensing.py::test_annual_and_triennial_licences_activate_online test_licensing.py::test_terms_other_than_12_or_36_months_and_inconsistent_dates_are_refused test_license_issuer.py::test_annual_and_triennial_licences_sign_and_verify (E-CP-LICENSING, E-LICENSE-ISSUER)
ARCH-B12.1-13 Activation en ligne ou hors lignePASSEDtest_licensing.py::test_annual_and_triennial_licences_activate_online test_licensing.py::test_offline_issuance_and_file_activation_without_network (E-CP-LICENSING)
ARCH-B12.1-14 Déploiement sur l'infrastructure couverte par le contratPASSEDtest_licensing.py::test_tampered_unknown_key_and_wrong_environment_are_refused_and_audited test_licensing.py::test_dr_restore_cluster_migration_and_second_site (E-CP-LICENSING)
ARCH-B12.1-15 Support et mises à jour selon le contratPASSEDtest_licensing.py::test_expiry_refuses_only_the_documented_actions_and_nothing_stops (E-CP-LICENSING)
ARCH-B12.1-16 Quotas de sécurité, capacité et coût configurables par le client, jamais des restrictions de licencePASSEDtest_licensing.py::test_only_two_actions_can_ever_be_refused test_perf_measurements.py::test_quotas_answer_429_with_documented_codes_and_recover (E-CP-LICENSING, E-DO-PERF)

Partie B, B12.2. Périmètre commercial​

ÉlémentStatutPreuveReste ou blocage
ARCH-B12.2-01 Aucune facturation par agent, utilisateur ou cas d'usagePASSEDtest_licensing_no_price_scan.py::test_no_licence_price_in_catalog_contracts_docs_and_screens test_licensing_no_price_scan.py::test_issued_licence_payloads_carry_no_price test_licensing.py::test_entitlements_never_count_users_agents_apps_plugins_or_use_cases (E-CP-LICENSING)
ARCH-B12.2-02 Périmètre contractuel d'installation explicite (organisation, environnements, infrastructures, services, support)IN_PROGRESStest_licensing.py::test_tampered_unknown_key_and_wrong_environment_are_refused_and_audited (E-CP-LICENSING)Le payload porte customer_id, installation_group_id, environments et support_ref, mais ni la liste des infrastructures ni celle des services couverts.
ARCH-B12.2-03 Aucun compteur cachéPASSEDtest_licensing.py::test_entitlements_never_count_users_agents_apps_plugins_or_use_cases test_licensing.py::test_verifier_and_store_never_reach_the_network test_licensing_no_price_scan.py::test_licensing_material_carries_no_amount_at_all (E-CP-LICENSING)

Partie B, B12.3. Architecture du service de licence​

ÉlémentStatutPreuveReste ou blocage
ARCH-B12.3-01 Émetteur de licence côté éditeur (contrat, client, produit, durée, périmètre, signature)PASSEDtest_license_issuer.py::test_command_line_round_trip test_license_issuer.py::test_keygen_writes_private_key_0600_and_a_public_jwk test_license_issuer.py::test_private_key_readable_by_others_is_refused (E-LICENSE-ISSUER)
ARCH-B12.3-02 Licence signée en fichier portable ou activation en lignePASSEDtest_licensing.py::test_offline_issuance_and_file_activation_without_network test_licensing.py::test_annual_and_triennial_licences_activate_online (E-CP-LICENSING)
ARCH-B12.3-03 Vérificateur local avec clé publique embarquéePASSEDtest_licensing.py::test_key_rotation_accepts_every_listed_kid test_licensing.py::test_production_refuses_test_keys_and_malformed_keys test_licensing.py::test_verifier_and_store_never_reach_the_network (E-CP-LICENSING)
ARCH-B12.3-04 Entitlements de plateforme (statut, période, périmètre, support, renouvellement)PASSEDtest_licensing.py::test_status_is_readable_by_any_user_without_sensitive_fields test_licensing.py::test_renewal_without_gap_silences_the_banner_and_takes_over (E-CP-LICENSING)

Partie B, B12.4. Contrat de licence technique signé​

ÉlémentStatutPreuveReste ou blocage
ARCH-B12.4-01 Payload (schema_version, license_id, product_id, edition, customer_id, durée, entitlements illimités, usage_metered_for_licensing false, deployment_scope, support, issuer, issued_at, key_id)IN_PROGRESStest_license_issuer.py::test_annual_and_triennial_licences_sign_and_verify test_license_issuer.py::test_other_terms_and_inconsistent_dates_are_refused (E-LICENSE-ISSUER)Le payload v1 porte schema_version, license_id, product_id, edition, customer_id, term_months, valid_from, valid_until, environments, support_ref, issued_at, key_id ; il manque l'objet entitlements avec drapeaux unlimited explicites, usage_metered_for_licensing false, un deployment_scope structuré et issuer (changement de contrat partagé avec C06 contracts/v1).
ARCH-B12.4-02 Objet signé (JWS) à canonicalisation vérifiablePASSEDtest_license_issuer.py::test_non_canonical_payload_is_refused test_license_issuer.py::test_tampered_unknown_key_and_wrong_algorithm_are_refused (E-LICENSE-ISSUER)
ARCH-B12.4-03 Une propriété de signature déclarative est refuséePASSEDtest_license_issuer.py::test_non_canonical_payload_is_refused test_licensing.py::test_tampered_unknown_key_and_wrong_environment_are_refused_and_audited (E-LICENSE-ISSUER, E-CP-LICENSING)

Partie B, B12.5. Fonctionnement hors ligne de la licence​

ÉlémentStatutPreuveReste ou blocage
ARCH-B12.5-01 Demande d'activation non sensible liée à l'installationIN_PROGRESStest_licensing.py::test_status_is_readable_by_any_user_without_sensitive_fields (E-CP-LICENSING)installation_id et installation_group_id sont exposés à l'administrateur, mais aucun fichier de demande d'activation formalisé (export signé à transmettre à l'éditeur) n'est produit.
ARCH-B12.5-02 Vérification locale sans aucun appel externePASSEDtest_licensing.py::test_verifier_and_store_never_reach_the_network test_licensing.py::test_offline_issuance_and_file_activation_without_network (E-CP-LICENSING)
ARCH-B12.5-03 Renouvellements, installations de secours, migrations de cluster, changements matériels sans blocage injustifiéPASSEDtest_licensing.py::test_dr_restore_cluster_migration_and_second_site test_licensing.py::test_renewal_without_gap_silences_the_banner_and_takes_over test_backup_dr_extended.py::test_licence_of_the_group_stays_valid_after_dr_offline (E-CP-LICENSING, E-HB-BACKUP)

Partie B, B12.6. Comportement à l'expiration​

ÉlémentStatutPreuveReste ou blocage
ARCH-B12.6-01 État ActivePASSEDtest_licensing.py::test_state_rules_at_every_boundary (E-CP-LICENSING)
ARCH-B12.6-02 Expiring Soon avec notifications aux administrateurs et au responsable du contratIN_PROGRESStest_licensing.py::test_worker_warns_at_30_7_and_1_days_then_grace_and_expiry (E-CP-LICENSING)Les alertes à 30, 7 et 1 jours vont aux administrateurs plateforme ; aucun destinataire « responsable du contrat » n'est configurable.
ARCH-B12.6-03 Grace Period (fonctionnement maintenu avec avertissements)PASSEDtest_licensing.py::test_state_rules_at_every_boundary test_licensing.py::test_worker_warns_at_30_7_and_1_days_then_grace_and_expiry (E-CP-LICENSING)
ARCH-B12.6-04 Expired (renouvellement demandé)PASSEDtest_licensing.py::test_expiry_refuses_only_the_documented_actions_and_nothing_stops (E-CP-LICENSING)
ARCH-B12.6-05 Revoked (procédure contractuelle et approbations)BLOCKEDtest_licensing.py::test_state_rules_at_every_boundary (E-CP-LICENSING)La procédure de révocation contractuelle et ses approbateurs sont une décision du client et de l'éditeur [B-CLIENT]
ARCH-B12.6-06 Renewed (nouvelle licence chargée sans interruption)PASSEDtest_licensing.py::test_renewal_without_gap_silences_the_banner_and_takes_over (E-CP-LICENSING)
ARCH-B12.6-07 Sécurité, audit, reprise et confinement restent opérationnels à l'expirationPASSEDtest_licensing.py::test_expiry_refuses_only_the_documented_actions_and_nothing_stops test_licensing.py::test_only_two_actions_can_ever_be_refused (E-CP-LICENSING)
ARCH-B12.6-08 Aucun kill switch commercial : le Kill Switch de sécurité n'est jamais utilisé pour les licencesPASSEDtest_licensing.py::test_only_two_actions_can_ever_be_refused test_soc_ai_sdr.py::test_kill_switch_cancels_run_and_subagents_and_refuses_new_actions (E-CP-LICENSING, E-G06-SOC)

Partie B, B13.1. Tables critiques du Platform Manager​

ÉlémentStatutPreuveReste ou blocage
ARCH-B13.1-01 Table clusters -> nm.clustersPASSEDtest_foundation.py::test_migrations_are_idempotent (E-PO-SERVER)
ARCH-B13.1-02 Table nodes -> nm.hostsPASSEDtest_foundation.py::test_migrations_are_idempotent (E-PO-SERVER)
ARCH-B13.1-03 Table components -> nm.cluster_servicesPASSEDtest_foundation.py::test_migrations_are_idempotent (E-PO-SERVER)
ARCH-B13.1-04 Table component_instances -> nm.host_componentsPASSEDtest_foundation.py::test_migrations_are_idempotent (E-PO-SERVER)
ARCH-B13.1-05 Table dependencies -> nm.connectionsPASSEDtest_foundation.py::test_migrations_are_idempotent (E-PO-SERVER)
ARCH-B13.1-06 Table config_revisions -> nm.config_versionsPASSEDtest_foundation.py::test_migrations_are_idempotent (E-PO-SERVER)
ARCH-B13.1-07 Table operations -> nm.operationsPASSEDtest_foundation.py::test_migrations_are_idempotent (E-PO-SERVER)
ARCH-B13.1-08 Table operation_steps -> nm.stages, nm.tasksPASSEDtest_foundation.py::test_migrations_are_idempotent (E-PO-SERVER)
ARCH-B13.1-09 Table health_checks -> nm.service_checksPASSEDtest_foundation.py::test_migrations_are_idempotent (E-PO-SERVER)
ARCH-B13.1-10 Table compatibility_matrix -> absenteIN_PROGRESStest_foundation.py::test_migrations_are_idempotent (E-PO-SERVER)Pas de table compatibility_matrix : la compatibilité vient du catalogue.
ARCH-B13.1-11 Table desired/observed reconciled -> nm.host_components.desired_statePASSEDtest_foundation.py::test_migrations_are_idempotent (E-PO-SERVER)
ARCH-B13.1-12 Table destructive actions under maintenance policy -> nm.maintenance_windowsPASSEDtest_foundation.py::test_migrations_are_idempotent (E-PO-SERVER)

Partie B, B13.2. Index d'audit et preuves indépendantes​

ÉlémentStatutPreuveReste ou blocage
ARCH-B13.2-01 Table d'index d'audit et magasin de preuves indépendantPASSEDtest_core_audit.py::test_chain_is_valid_and_gapless test_evidence_gateway.py::test_seal_signature_verifies_online_and_offline test_storage_profiles_api.py::test_worm_audit_export_is_qualified_on_a_verified_object_lock_profile (E-G03-AUDIT, E-G03-EVIDENCE, E-G03-WORM)
ARCH-B13.2-02 Événements partitionnés par event_time, contraintes d'accès, rétention et archivageIN_PROGRESStest_core_audit.py::test_app_role_cannot_rewrite test_evidence_gateway.py::test_legal_hold_blocks_purge_and_release_needs_two_distinct_approvers test_siem_audit_worm.py::test_audit_worm_job_exports_each_past_day_once_signed_by_transit (E-G03-AUDIT, E-G03-EVIDENCE, E-G03-WORM)eai.audit_events n'est pas une table partitionnée (CREATE TABLE simple, V010) : il manque le partitionnement déclaratif par event_time et la création automatique des partitions. RLS, REVOKE UPDATE/DELETE, rétention avec legal hold et archivage WORM quotidien sont prouvés.
ARCH-B13.2-03 event_time, ingested_at et sealed_at distinctsPASSEDtest_evidence_gateway.py::test_event_time_ingested_at_sealed_at_are_distinct_and_ordered (E-G03-EVIDENCE)
ARCH-B13.2-04 PostgreSQL jamais WORM : preuves dans le stockage objet qualifié, empreintes, signatures, immutabilité vérifiéeBLOCKEDtest_storage_profiles_api.py::test_worm_audit_export_is_refused_without_verified_object_lock test_storage_profiles_api.py::test_worm_audit_export_is_qualified_on_a_verified_object_lock_profile test_evidence_gateway.py::test_monitor_detects_sql_tampering_of_a_sealed_event +1 (E-G03-WORM, E-G03-EVIDENCE)Object Lock prouvé sur l'émulateur local ; la qualification sur le stockage objet réel du client demande ce stockage [B-CLIENT]
ARCH-B13.2-05 Champs de la table de référence (event_type, severity, identités, ids d'exécution, decision_reason, policy_revision, evidence_*, sanitized_metadata)IN_PROGRESStest_evidence_config_redaction.py::test_policy_decision_audited_with_id_version_reason_obligations test_evidence_config_redaction.py::test_audit_metadata_has_no_credentials_and_pii_goes_to_the_encrypted_payload (E-G03-EVIDENCE)Les informations existent dans des colonnes jsonb (actor, resource, decision, context, evidence, attributes) mais pas sous les noms de colonnes de la référence (event_type, severity, result_status, evidence_state...) : une vue ou des colonnes d'index normalisées restent à ajouter.

Partie B, B13.3. Registre d'état de sécurité et Kill Switch​

ÉlémentStatutPreuveReste ou blocage
ARCH-B13.3-01 Table detections (eai.soc_detections)PASSEDtest_soc_ai_sdr.py::test_ingestor_normalizes_and_correlator_links_user_agent_tenant test_soc_ai_sdr.py::test_soc_tables_are_tenant_isolated (E-G06-SOC)
ARCH-B13.3-02 Table incidents (eai.incidents)PASSEDtest_soc_ai_sdr.py::test_incident_lifecycle_assignment_and_auditable_timeline (E-G06-SOC)
ARCH-B13.3-03 Table incident_events (eai.incident_timeline)PASSEDtest_soc_ai_sdr.py::test_incident_lifecycle_assignment_and_auditable_timeline test_soc_ai_sdr.py::test_soc_roles_access_audit_and_sealed_chain_of_custody (E-G06-SOC)
ARCH-B13.3-04 Table containment_ordersPASSEDtest_soc_ai_sdr.py::test_typed_reactions_only_never_a_free_command test_soc_ai_sdr.py::test_proportionality_guard_in_the_platform (E-G06-SOC)
ARCH-B13.3-05 Table enforcement_receipts (eai.containment_receipts)PASSEDtest_soc_ai_sdr.py::test_network_isolation_waits_for_a_signed_in_cluster_receipt (E-G06-SOC)
ARCH-B13.3-06 Table recovery_requestsPASSEDtest_soc_ai_sdr.py::test_recovery_needs_four_eyes_then_reauthorization (E-G06-SOC)
ARCH-B13.3-07 revoked_credentials (eai.kill_switches, target_type credential)PASSEDtest_soc_ai_sdr.py::test_credentials_identity_and_tenant_suspension_refused_by_auth (E-G06-SOC)
ARCH-B13.3-08 suspension_states (eai.kill_switches desired_state et observed_state)PASSEDtest_soc_ai_sdr.py::test_kill_switches_persist_across_restart test_soc_ai_sdr.py::test_credentials_identity_and_tenant_suspension_refused_by_auth (E-G06-SOC)
ARCH-B13.3-09 Table playbook_runsIN_PROGRESStest_soc_ai_sdr.py::test_worker_runs_the_soc_scan_and_containment_verifier (E-G06-SOC)Les playbooks sont des listes de réactions typées (soc/catalog.py) tracées par containment_orders et incident_timeline ; aucune table playbook_runs ne regroupe une exécution de playbook.
ARCH-B13.3-10 tenant_id + target_type + target_id protégés par contrôle de concurrence et versionsIN_PROGRESStest_soc_ai_sdr.py::test_kill_switches_persist_across_restart test_soc_ai_sdr.py::test_retried_payment_never_executes_twice_even_when_killed_in_flight (E-G06-SOC)L'index unique partiel kill_switches_active_target (tenant_id, reaction, target_type, target_ref) empêche deux suspensions actives, mais aucune colonne de version (verrou optimiste) n'existe sur kill_switches ni containment_orders.
ARCH-B13.3-11 Un ordre de confinement ne devient VERIFIED qu'après confirmation des points d'applicationPASSEDtest_soc_ai_sdr.py::test_verified_only_on_real_proof_and_drift_is_reapplied test_soc_ai_sdr.py::test_network_isolation_waits_for_a_signed_in_cluster_receipt (E-G06-SOC)

Partie B, B13.4. Tables de licence et de support​

ÉlémentStatutPreuveReste ou blocage
ARCH-B13.4-01 license_installations (client, groupe d'installation, empreinte cluster, produit, édition, validité, digest, key id, statut, activation, dernière vérification)IN_PROGRESStest_licensing.py::test_dr_restore_cluster_migration_and_second_site test_licensing.py::test_history_is_paginated (E-CP-LICENSING)Réparti entre license_installation et licenses (groupe, produit, édition, valid_until > valid_from, token_sha256, key_id, activated_at) ; il manque l'empreinte hachée du cluster, la colonne statut persistée et last_verified_at.
ARCH-B13.4-02 license_eventsPASSEDtest_licensing.py::test_history_is_paginated test_licensing.py::test_tampered_unknown_key_and_wrong_environment_are_refused_and_audited (E-CP-LICENSING)
ARCH-B13.4-03 Données minimales : jamais le nombre d'utilisateurs, de prompts ou d'agentsPASSEDtest_licensing.py::test_entitlements_never_count_users_agents_apps_plugins_or_use_cases test_licensing.py::test_status_is_readable_by_any_user_without_sensitive_fields (E-CP-LICENSING)

Partie B, B13.5. Transactional Outbox et actions externes​

ÉlémentStatutPreuveReste ou blocage
ARCH-B13.5-01 Le changement et son événement outbox dans une seule transaction SQLPASSEDtest_evidence_gateway.py::test_rolled_back_change_leaves_no_event_and_committed_one_always_has_it (E-RB-CP)
ARCH-B13.5-02 Un worker publie vers NATS JetStreamPASSEDtest_evidence_gateway.py::test_gateway_publishes_to_real_jetstream_with_dedup test_worker.py::test_outbox_job_delivers_pending_events_to_triggers (E-RB-CP)
ARCH-B13.5-03 Le consommateur acquitte après traitementPASSEDtest_media_worker.py::test_nats_mode_publishes_through_the_outbox_and_acks_after_processing (E-RB-CP)
ARCH-B13.5-04 L'identifiant d'événement dédupliquePASSEDtest_runtime_nats_jetstream.py::test_dedup_ordering_redelivery_exactly_once test_evidence_gateway.py::test_gateway_publishes_to_real_jetstream_with_dedup (E-RB-CP)
ARCH-B13.5-05 Une publication non acquittée est rejouéePASSEDtest_evidence_gateway.py::test_gateway_redelivers_after_target_outage_without_loss_or_duplicate test_runtime_nats_jetstream.py::test_dedup_ordering_redelivery_exactly_once (E-RB-CP)
ARCH-B13.5-06 Le service de preuve scelle et met à jour l'étatPASSEDtest_evidence_gateway.py::test_seal_signature_verifies_online_and_offline test_evidence_gateway.py::test_event_time_ingested_at_sealed_at_are_distinct_and_ordered (E-RB-CP)
ARCH-B13.5-07 Actions sur systèmes externes : clés d'idempotence, reçus, rapprochement, compensationsIN_PROGRESStest_soc_ai_sdr.py::test_retried_payment_never_executes_twice_even_when_killed_in_flight test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once test_soc_ai_sdr.py::test_network_isolation_waits_for_a_signed_in_cluster_receipt (E-RB-CP)Idempotence, reçus et rapprochement prouvés ; aucune compensation automatique (action inverse) n'est encore définie pour une action externe validée puis annulée.

Partie B, B14. Isolation multi-tenant par couche​

ÉlémentStatutPreuveReste ou blocage
ARCH-B14-01 Identité (realm, organisation, groupes)PASSEDtest_core_tenancy.py::test_tenant_admin_flow test_identity_context_delegation.py:: (E-IR-IDENTITY)
ARCH-B14-02 API : tenant issu du contexte authentifiéPASSEDtest_core_tenancy.py::test_tenant_admin_flow (E-IR-IDENTITY)
ARCH-B14-03 PostgreSQL : RLS et rôles SQLPASSEDtest_identity_context_delegation.py::test_identity_tables_are_tenant_isolated (E-IR-IDENTITY)
ARCH-B14-04 Redis : préfixes et ACLPASSEDtest_core_redis.py::test_tenant_isolation_and_clear test_core_redis.py::test_acl_user_with_password_file (E-IR-ISOLATION)
ARCH-B14-05 Qdrant : filtres obligatoiresPASSEDtest_rag_qdrant_real.py::test_real_qdrant_two_tenants_never_leak test_rag_governance.py::test_document_acl_and_other_tenant_refused (E-IR-ISOLATION)
ARCH-B14-06 Agents : contextes, permissionsPASSEDtest_identity_context_delegation.py::test_run_carries_original_user_and_subagent_never_gets_wider_rights (E-IR-IDENTITY)
ARCH-B14-07 MCP : identités, scopesPASSEDtest_capabilities_gateways.py::test_tool_scope_denied_and_rate_limit test_gateway_pep_untrusted.py::test_pep_mcp_denied (E-IR-ISOLATION)
ARCH-B14-08 Modèles : contrôle par tenant, budgetsPASSEDtest_llm_isolation.py::test_project_mode_overrides_tenant_and_internal_hosts test_llm_isolation.py::test_egress_barrier_denies_external_hosts_of_an_isolated_model (E-IR-ISOLATION)
ARCH-B14-09 Stockage : chemins et buckets séparésPASSEDtest_storage_profiles_api.py::test_profile_crud_keeps_only_a_credential_reference_and_is_tenant_isolated test_storage_profiles_api.py::test_presigned_urls_need_a_verified_capability_and_respect_expiry_and_scope (E-IR-ISOLATION)
ARCH-B14-10 Secrets par service, environnement, organisationPASSEDtest_identity_context_delegation.py::test_signing_key_is_read_from_the_openbao_reference_and_never_exposed (E-IR-IDENTITY)
ARCH-B14-11 Kubernetes : namespaces, quotas, network policiesBLOCKEDtest_platform_security_manifests.py::test_every_workload_has_a_network_policy test_platform_security_manifests.py::test_service_accounts_do_not_automount_by_default test_platform_security_manifests.py::test_static_cluster_policies (E-IR-ISOLATION)Exige un cluster réel [B-CLUSTER]
ARCH-B14-12 Logs : filtrage, masquage, droits de lecturePASSEDtest_observability_stack.py::test_bootstrap_is_idempotent_and_logs_are_filtered_by_tenant test_evidence_config_redaction.py::test_secrets_and_pii_never_reach_logs (E-IR-ISOLATION)
ARCH-B14-13 Audit : recherche isoléePASSEDtest_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B14-14 Plugins : activation par tenantPASSEDtest_llm_isolation.py::test_external_fallback_is_dropped_in_isolated_mode test_platform_security_manifests.py::test_default_deny_and_metadata_deny (E-IR-ISOLATION)
ARCH-B14-15 Kill Switch à portée strictePASSEDtest_marketplace.py::test_other_tenant_reaches_no_marketplace_resource test_marketplace.py::test_install_refuses_unapproved_or_unrequested_permissions (E-IR-ISOLATION)
ARCH-B14-16 Profil d'isolation renforcéePASSEDtest_soc_ai_sdr.py::test_kill_switch_cancels_run_and_subagents_and_refuses_new_actions (E-IR-ISOLATION)

Partie B, B14.1. Protection des secrets et des données​

ÉlémentStatutPreuveReste ou blocage
ARCH-B14.1-01 Intégration au gestionnaire de secrets du clientPASSEDtest_platform_secrets.py::test_external_secret_conventions test_iam_kms.py::test_openbao_transit_adapter test_core_secrets_authz.py::test_secrets_write_only (E-AP-PROTECTION)
ARCH-B14.1-02 DLP PresidioPASSEDtest_data_presidio_real.py::test_real_presidio_detects_banking_entities (E-AP-PROTECTION)
ARCH-B14.1-03 Cryptographie TinkPASSEDtest_data_envelope_tink.py::test_ciphertext_hides_the_plaintext_and_decrypts test_data_envelope_tink.py::test_other_tenant_or_context_cannot_decrypt (E-AP-PROTECTION)
ARCH-B14.1-04 ClassificationPASSEDtest_data_privacy.py::test_classify_and_dlp_modes (E-DM-DATA-MEDIA)
ARCH-B14.1-05 Détection des PIIPASSEDtest_data_privacy.py::test_builtin_recognizers_and_validators test_integration_llm_finops.py::test_iban_valid_only_by_checksum_is_detected (E-DM-DATA-MEDIA, E-AP-PROTECTION)
ARCH-B14.1-06 Masquage avant l'appel LLMPASSEDtest_integration_llm_finops.py::test_tenant_rule_block_wins_over_mask_mode test_integration_llm_finops.py::test_model_response_goes_through_dlp test_quotas_dlp_realtime.py::test_adapter_file_dlp_blocks_before_call (E-AP-PROTECTION)
ARCH-B14.1-07 Tokenisation réversiblePASSEDtest_data_privacy.py::test_detokenize_requires_permission_and_is_audited (E-DM-DATA-MEDIA)
ARCH-B14.1-08 Chiffrement avec une clé approuvéeBLOCKEDtest_data_privacy.py::test_encrypt_decrypt_and_rotate test_iam_kms.py::test_pkcs11_wrap_sign_on_softhsm2 (E-DM-DATA-MEDIA, E-AP-PROTECTION)HSM réel du client non disponible, prouvé sur SoftHSM2 [B-CLIENT]
ARCH-B14.1-09 Détokenisation réservée à un utilisateur autoriséPASSEDtest_data_privacy.py::test_detokenize_requires_permission_and_is_audited test_data_privacy.py::test_detokenize_denied_by_clearance_policy (E-DM-DATA-MEDIA)
ARCH-B14.1-10 Refus d'un transfert externe interditPASSEDtest_llm_isolation.py::test_egress_barrier_denies_external_hosts_of_an_isolated_model test_evidence_config_redaction.py::test_dlp_masking_and_egress_decisions_are_chained_on_the_action (E-AP-PROTECTION, E-G03-EVIDENCE)
ARCH-B14.1-11 Assainissement des journauxPASSEDtest_evidence_config_redaction.py::test_secrets_and_pii_never_reach_logs test_evidence_config_redaction.py::test_span_attributes_refuse_free_text (E-G03-EVIDENCE)
ARCH-B14.1-12 RétentionPASSEDtest_data_retention_lineage_prompts.py::test_retention_run_respects_legal_hold (E-DM-DATA-MEDIA)
ARCH-B14.1-13 Workflow de suppression avec preuvesPASSEDtest_data_retention_lineage_prompts.py::test_subject_erasure_report test_siem_audit_worm.py::test_erase_subject_reaches_opik_and_clickhouse_and_respects_hold (E-DM-DATA-MEDIA, E-G03-WORM)
ARCH-B14.1-14 Coffre token vers valeur séparé des agents avec son propre contrôle d'accèsPASSEDtest_data_privacy.py::test_rls_isolation_privacy_tables test_data_privacy.py::test_detokenize_denied_by_clearance_policy (E-DM-DATA-MEDIA)

Partie B, B14.2. Séparation des responsabilités​

ÉlémentStatutPreuveReste ou blocage
ARCH-B14.2-01 Administrateurs techniques sans lecture automatique des documents métierPASSEDtest_iam_role_matrix.py::test_administrator_without_reader_acl_cannot_read_business_content (E-IR-IDENTITY)
ARCH-B14.2-02 Un développeur ne peut pas désactiver la journalisationPASSEDtest_iam_role_matrix.py::test_developer_cannot_approve_own_change_and_auditor_cannot_decide (E-IR-IDENTITY)
ARCH-B14.2-03 Droits Manager, SOC, gouvernance données et Studio séparés avec approbationsPASSEDtest_iam_role_matrix.py::test_reference_roles_matrix test_iam_role_matrix.py::test_role_matrix test_iam_role_matrix.py::test_developer_cannot_approve_own_change_and_auditor_cannot_decide +1 (E-IR-IDENTITY)

Partie B, B15.1. Scalabilité par domaine​

ÉlémentStatutPreuveReste ou blocage
ARCH-B15.1-01 Réplicas frontend derrière un ingressPASSEDtest_eo_scalability_helm.py::test_frontend_replicas_behind_an_ingress_with_hpa_and_pdb (E-EO-SCALING)
ARCH-B15.1-02 API backend stateless mise à l'échelle horizontalementPASSEDtest_eo_scalability_helm.py::test_backend_api_is_stateless_and_scaled_horizontally (E-EO-SCALING)
ARCH-B15.1-03 Workers d'agents séparés avec quotas de concurrence et KEDAPASSEDtest_eo_scalability_helm.py::test_agent_workers_are_separate_with_their_own_resources_and_keda test_platform_deploy_env.py::test_helm_worker_deployment (E-EO-SCALING)
ARCH-B15.1-04 Workers Temporal par type de workflowIN_PROGRESStest_eo_scalability_helm.py::test_agent_workers_are_separate_with_their_own_resources_and_keda (E-EO-SCALING)Un seul ScaledObject agent-runs-temporal sur la file des runs ; pas de Deployment de worker distinct par type de workflow (Temporal reste un adaptateur optionnel).
ARCH-B15.1-05 Cluster NATS JetStream avec rétention et réplicationPASSEDtest_availability_local_ha.py::test_nats_jetstream_r3_member_loss test_availability_helm.py::test_data_services_ha_values (E-HB-HA)
ARCH-B15.1-06 Réplicas, clés et routage LiteLLMPASSEDtest_eo_scalability_helm.py::test_litellm_replicas_scaled_with_pdb (E-EO-SCALING)
ARCH-B15.1-07 Pools GPU vLLM, ordonnancement et contraintes mémoireBLOCKEDtest_eo_scalability_helm.py::test_vllm_gpu_pools_ask_gpus_memory_and_bound_gpu_memory (E-EO-SCALING)Exécution réelle sur GPU absente ici [B-GPU]
ARCH-B15.1-08 Opik dimensionné avec ses dépendancesIN_PROGRESStest_backup_engines_real.py::test_opik_coordinated_plan_and_redis_rdb_backup_restore (E-HB-BACKUP)Pas de valeurs de dimensionnement Opik (ClickHouse, MySQL, Redis) vérifiées par test ; seul le plan coordonné de sauvegarde Opik est prouvé.
ARCH-B15.1-09 OpenSearch : indexation, shards et rétentionIN_PROGRESS(E-G06-OBS)Shards et rétention OpenSearch non vérifiés par un test de rendu dédié.
ARCH-B15.1-10 Prometheus dimensionné pour la cardinalité et la rétentionIN_PROGRESS(E-G06-OBS)Rétention et limites de cardinalité Prometheus non vérifiées par un test dédié.
ARCH-B15.1-11 Audit Gateway : ingestion durable et workers indépendantsPASSEDtest_evidence_gateway.py (E-DO-BACKUP)
ARCH-B15.1-12 PostgreSQL HA, réplication, pooling, sauvegardePASSEDtest_availability_local_ha.py::test_postgres_streaming_failover_fencing_rejoin test_availability_local_ha.py::test_patroni_etcd_election_failover_fencing_rejoin test_availability_helm.py::test_cnpg_cluster_manifest_validates_against_pinned_crd_schema (E-HB-HA)
ARCH-B15.1-13 Redis HA, limites mémoire, politique d'évictionPASSEDtest_availability_local_ha.py::test_redis_sentinel_failover test_availability_helm.py::test_data_services_ha_values (E-HB-HA)
ARCH-B15.1-14 Qdrant : collections, sharding et réplicationIN_PROGRESS(E-HB-HA)Sharding et réplication Qdrant non prouvés par un test (Qdrant mono nœud dans les tests RAG).
ARCH-B15.1-15 Capacités de stockage client et SLA par fournisseurBLOCKEDCapacités et SLA de stockage propres à chaque client et fournisseur [B-CLIENT]

Partie B, B15.2. Matrice de disponibilité, RTO et RPO​

ÉlémentStatutPreuveReste ou blocage
ARCH-B15.2-01 Critical Security (autorisation, délégation, Kill Switch, audit critique : HA et fail closed)PASSEDtest_soc_ai_sdr.py::test_alerting_and_policy_engine_outage_never_weaken_enforcement test_availability_helm.py::test_ha_profile_replicas_pdb_spread_antiaffinity_probes_shutdown (E-G06-SOC, E-HB-HA)
ARCH-B15.2-02 Critical Runtime (agent gateway, LiteLLM, MCP gateway : redondance)PASSEDtest_eo_scalability_helm.py::test_litellm_replicas_scaled_with_pdb test_eo_scalability_helm.py::test_backend_api_is_stateless_and_scaled_horizontally (E-EO-SCALING)
ARCH-B15.2-03 Critical Data (PostgreSQL, stockage de preuves : sauvegardes validées et restauration)IN_PROGRESStest_backup_recovery.py::test_artifact_checksum_encryption_and_corruption_detected test_backup_dr_extended.py::test_periodic_restore_test_signed_report_and_alarm_on_corruption (E-HB-BACKUP)BACK-010 : restauration réelle des traces Opik (ClickHouse, MySQL aux versions épinglées) non rejouée ; les binaires officiels statiques peuvent tourner sans privilège ici mais ne sont pas encore téléchargés et câblés. BACK-012 bloqué [B-DOCKER].
ARCH-B15.2-04 Operations (Manager, configuration, workflows)PASSEDtest_backup_dr_extended.py::test_manager_rebuilt_from_bundle_and_backups_keeps_audit_identities_permissions test_backup_dr_extended.py::test_recovery_dag_runs_local_processes_in_dependency_order (E-HB-BACKUP)
ARCH-B15.2-05 Observability (mise en tampon sans perte critique)IN_PROGRESS(E-G06-OBS)Tampon du collecteur OTel (file persistante) non prouvé par un test de perte réseau.
ARCH-B15.2-06 Developer Tools (marketplace, studio, documentation)PASSED(E-CP-MARKETPLACE, E-DO-DOCS)
ARCH-B15.2-07 RTO et RPO définis avec chaque client, jamais une valeur unique imposéePASSEDtest_backup_recovery.py::test_dr_plan_targets_empty_by_default_and_exercise_measured test_backup_dr_extended.py::test_dr_targets_set_by_client_traffic_model_and_health_checks (E-HB-BACKUP)

Partie B, B15.3. Upgrade et rollback​

ÉlémentStatutPreuveReste ou blocage
ARCH-B15.3-01 Mise à niveau : AnalysePASSEDtest_lifecycle_upgrades.py::test_upgrade_compatibility_refusals (E-ID-LIFECYCLE)
ARCH-B15.3-02 Mise à niveau : SimulationPASSEDtest_lifecycle_upgrades.py::test_upgrade_compatibility_refusals (E-ID-LIFECYCLE)
ARCH-B15.3-03 Mise à niveau : Préparation (sauvegarde)PASSEDtest_lifecycle_upgrades.py::test_stateful_upgrade_backup_migration_refused_rollback_and_restore (E-ID-LIFECYCLE)
ARCH-B15.3-04 Mise à niveau : PrévalidationPASSEDtest_lifecycle_upgrades.py::test_upgrade_compatibility_refusals (E-ID-LIFECYCLE)
ARCH-B15.3-05 Mise à niveau : DéploiementPASSEDtest_lifecycle_upgrades.py::test_stateless_upgrade_with_canary_then_rollback (E-ID-LIFECYCLE)
ARCH-B15.3-06 Mise à niveau : ValidationPASSEDtest_lifecycle_upgrades.py::test_stateless_upgrade_with_canary_then_rollback (E-ID-LIFECYCLE)
ARCH-B15.3-07 Mise à niveau : SurveillancePASSEDtest_lifecycle_upgrades.py::test_stateless_upgrade_with_canary_then_rollback (E-ID-LIFECYCLE)
ARCH-B15.3-08 Mise à niveau : RollbackPASSEDtest_lifecycle_upgrades.py::test_stateless_upgrade_with_canary_then_rollback (E-ID-LIFECYCLE)
ARCH-B15.3-09 Mise à niveau : AuditPASSEDtest_lifecycle_upgrades.py::test_stateless_upgrade_with_canary_then_rollback (E-ID-LIFECYCLE)
ARCH-B15.3-10 Mise à niveau : Migrations irréversibles signalées, restauration imposéePASSEDtest_lifecycle_upgrades.py::test_stateful_upgrade_backup_migration_refused_rollback_and_restore (E-ID-LIFECYCLE)

Partie B, B16.1. Installation du plugin Finance chez une banque​

ÉlémentStatutPreuveReste ou blocage
ARCH-B16.1-01 Sélection du pack Finance dans la marketplacePASSEDtest_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)
ARCH-B16.1-02 Validation version, signature, SBOM et compatibilitéPASSEDtest_marketplace.py::test_unsigned_tampered_or_untrusted_pack_is_refused test_marketplace.py::test_publication_fails_when_a_gate_input_is_missing test_marketplace.py::test_version_ranges (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)
ARCH-B16.1-03 OpenFGA et OPA déterminent les autorisations nécessairesPASSEDtest_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once test_identity_context_delegation.py::test_opa_decision_is_taken_before_each_action_with_the_original_user (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)
ARCH-B16.1-04 Approbation de l'installation et des accès par les responsables autorisésPASSEDtest_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once test_marketplace.py::test_production_publication_needs_gates_and_four_eyes (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)
ARCH-B16.1-05 Connecteurs ERP, stockage et sources configurésIN_PROGRESStest_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)Prouvé par brique ; pas encore rejoué dans un test unique de bout en bout du pack Finance.
ARCH-B16.1-06 Identifiants référencés dans le coffre du clientPASSEDtest_business_packs.py::test_pack_is_complete_and_holds_no_credential test_llm_registry.py::test_provider_crud_credentials_write_only (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)
ARCH-B16.1-07 Modèles autorisés choisis dans le registreIN_PROGRESStest_llm_registry.py::test_model_registry_and_status (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)Prouvé par brique ; pas encore rejoué dans un test unique de bout en bout du pack Finance.
ARCH-B16.1-08 Documents financiers ingérés avec leurs ACLIN_PROGRESStest_rag_governance.py::test_source_permission_checked_before_ingestion test_rag_governance.py::test_document_acl_and_other_tenant_refused (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)Prouvé par brique ; pas encore rejoué dans un test unique de bout en bout du pack Finance.
ARCH-B16.1-09 Tests de validation (SDK, sécurité, masquage, qualité, permissions)PASSEDtest_marketplace.py::test_publication_fails_on_failed_tests_evaluations_or_vulnerabilities test_evidence_config_redaction.py::test_dlp_masking_and_egress_decisions_are_chained_on_the_action (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)
ARCH-B16.1-10 Activation des agents et outils approuvésPASSEDtest_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)
ARCH-B16.1-11 Exploitation : supervision, audit, budgets, Kill Switch actifIN_PROGRESStest_finops_usage.py::test_summary_group_by_and_budget_alerts test_soc_ai_sdr.py::test_kill_switch_cancels_run_and_subagents_and_refuses_new_actions test_marketplace.py::test_upgrade_rollback_and_uninstall (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)Prouvé par brique ; pas encore rejoué dans un test unique de bout en bout du pack Finance.

Partie B, B16.2. Utilisation du plugin Finance de bout en bout​

ÉlémentStatutPreuveReste ou blocage
ARCH-B16.2-01 Utilisateur finance connecté par SSO KeycloakIN_PROGRESStest_iam_keycloak_real.py::test_pkce_login_token_accepted_refresh_and_logout (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)Prouvé par brique ; pas encore rejoué dans un test unique de bout en bout du pack Finance.
ARCH-B16.2-02 L'agent hérite de l'identité avec un contexte signé et des permissions limitéesPASSEDtest_identity_context_delegation.py::test_restricted_delegation_is_always_narrower_and_revocation_cascades test_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)
ARCH-B16.2-03 OpenFGA + OPA par actionPASSEDtest_identity_context_delegation.py::test_opa_decision_is_taken_before_each_action_with_the_original_user (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)
ARCH-B16.2-04 MCP Finance lit l'ERP dans les transactions autoriséesPASSEDtest_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)
ARCH-B16.2-05 RAG Finance ne renvoie que les documents lisibles par l'utilisateurIN_PROGRESStest_rag_governance.py::test_chunk_acl_forbidden_fragments_never_reach_the_context (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)Prouvé par brique ; pas encore rejoué dans un test unique de bout en bout du pack Finance.
ARCH-B16.2-06 Protection des données Presidio + TinkIN_PROGRESStest_data_presidio_real.py::test_real_presidio_detects_banking_entities test_rag_governance.py::test_restricted_chunks_are_sealed_at_rest (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)Prouvé par brique ; pas encore rejoué dans un test unique de bout en bout du pack Finance.
ARCH-B16.2-07 LiteLLM vers un modèle approuvé (fournisseur de test compatible OpenAI)PASSEDtest_integration_llm_finops.py::test_tenant_rule_block_wins_over_mask_mode test_llm_gateway.py::test_control_kill_switch (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)
ARCH-B16.2-08 Génération de rapport avec contrôle de sortieIN_PROGRESStest_security_prompt_injection.py::test_output_guard_rules (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)Prouvé par brique ; pas encore rejoué dans un test unique de bout en bout du pack Finance.
ARCH-B16.2-09 Audit + Opik + OpenTelemetry avec utilisateur, agent, données, autorisations, résultat et coûtIN_PROGRESStest_opik_integration.py::test_opik_down_keeps_postgres_copy_and_audit_event test_tracing.py::test_gateway_call_produces_linked_spans_without_personal_data (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)Prouvé par brique ; pas encore rejoué dans un test unique de bout en bout du pack Finance.
ARCH-B16.2-10 Écriture ERP soumise à sa propre autorisation et, si requis, à une approbation humainePASSEDtest_marketplace.py::test_finance_pack_end_to_end_payments_exactly_once (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)
ARCH-B16.2-11 L'administrateur retrouve toute l'exécutionIN_PROGRESStest_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids test_marketplace.py::test_upgrade_rollback_and_uninstall (E-BP-PACKS-MARKETPLACE, E-BP-FINANCE-FLOW)Prouvé par brique ; pas encore rejoué dans un test unique de bout en bout du pack Finance.

Partie B, B17. Plan de développement par lots​

ÉlémentStatutPreuveReste ou blocage
ARCH-B17-01 Lot 0 Foundations : statut face à son critère de finPASSEDtest_foundation_lot_plan.py::test_kit_section_16_lots_are_the_roadmap_lots test_foundation_lot_plan.py::test_dependencies_are_known_acyclic_and_the_lot_order_is_a_valid_schedule test_kit_traceability.py (E-FL-LOTPLAN, E-TRACE)
ARCH-B17-02 Lot 1 Platform Manager : statut face à son critère de finPASSEDtest_foundation_lot_plan.py::test_kit_section_16_lots_are_the_roadmap_lots test_foundation_lot_plan.py::test_dependencies_are_known_acyclic_and_the_lot_order_is_a_valid_schedule test_kit_traceability.py (E-FL-LOTPLAN, E-TRACE)
ARCH-B17-03 Lot 2 IAM & Governance : statut face à son critère de finPASSEDtest_foundation_lot_plan.py::test_kit_section_16_lots_are_the_roadmap_lots test_foundation_lot_plan.py::test_dependencies_are_known_acyclic_and_the_lot_order_is_a_valid_schedule test_kit_traceability.py (E-FL-LOTPLAN, E-TRACE)
ARCH-B17-04 Lot 3 AI Runtime : statut face à son critère de finPASSEDtest_foundation_lot_plan.py::test_kit_section_16_lots_are_the_roadmap_lots test_foundation_lot_plan.py::test_dependencies_are_known_acyclic_and_the_lot_order_is_a_valid_schedule test_kit_traceability.py (E-FL-LOTPLAN, E-TRACE)
ARCH-B17-05 Lot 4 Data Protection : statut face à son critère de finPASSEDtest_foundation_lot_plan.py::test_kit_section_16_lots_are_the_roadmap_lots test_foundation_lot_plan.py::test_dependencies_are_known_acyclic_and_the_lot_order_is_a_valid_schedule test_kit_traceability.py (E-FL-LOTPLAN, E-TRACE)
ARCH-B17-06 Lot 5 Observability : statut face à son critère de finPASSEDtest_foundation_lot_plan.py::test_kit_section_16_lots_are_the_roadmap_lots test_foundation_lot_plan.py::test_dependencies_are_known_acyclic_and_the_lot_order_is_a_valid_schedule test_kit_traceability.py (E-FL-LOTPLAN, E-TRACE)
ARCH-B17-07 Lot 6 Audit & SOC : statut face à son critère de finPASSEDtest_foundation_lot_plan.py::test_kit_section_16_lots_are_the_roadmap_lots test_foundation_lot_plan.py::test_dependencies_are_known_acyclic_and_the_lot_order_is_a_valid_schedule test_kit_traceability.py (E-FL-LOTPLAN, E-TRACE)
ARCH-B17-08 Lot 7 Developer Platform : statut face à son critère de finPASSEDtest_foundation_lot_plan.py::test_kit_section_16_lots_are_the_roadmap_lots test_foundation_lot_plan.py::test_dependencies_are_known_acyclic_and_the_lot_order_is_a_valid_schedule test_kit_traceability.py (E-FL-LOTPLAN, E-TRACE)
ARCH-B17-09 Lot 8 Marketplace : statut face à son critère de finPASSEDtest_foundation_lot_plan.py::test_kit_section_16_lots_are_the_roadmap_lots test_foundation_lot_plan.py::test_dependencies_are_known_acyclic_and_the_lot_order_is_a_valid_schedule test_kit_traceability.py (E-FL-LOTPLAN, E-TRACE)
ARCH-B17-10 Lot 9 Enterprise Licensing : statut face à son critère de finPASSEDtest_foundation_lot_plan.py::test_kit_section_16_lots_are_the_roadmap_lots test_foundation_lot_plan.py::test_dependencies_are_known_acyclic_and_the_lot_order_is_a_valid_schedule test_kit_traceability.py (E-FL-LOTPLAN, E-TRACE)
ARCH-B17-11 Lot 10 Enterprise Readiness : statut face à son critère de finPASSEDtest_foundation_lot_plan.py::test_kit_section_16_lots_are_the_roadmap_lots test_foundation_lot_plan.py::test_dependencies_are_known_acyclic_and_the_lot_order_is_a_valid_schedule test_kit_traceability.py (E-FL-LOTPLAN, E-TRACE)
ARCH-B17-12 Sécurité et audit développés en parallèle du runtimePASSEDtest_foundation_lot_plan.py::test_dependencies_are_known_acyclic_and_the_lot_order_is_a_valid_schedule (E-FL-LOTPLAN)

Partie B, B17.1. Monorepo produit​

ÉlémentStatutPreuveReste ou blocage
ARCH-B17.1-01 Dossier cible appsPASSEDtest_architecture_decisions.py::test_monorepo_map_paths_exist (E-ID-ARCH)
ARCH-B17.1-02 Dossier cible backendPASSEDtest_architecture_decisions.py::test_monorepo_map_paths_exist (E-ID-ARCH)
ARCH-B17.1-03 Dossier cible servicesPASSEDtest_architecture_decisions.py::test_monorepo_map_paths_exist (E-ID-ARCH)
ARCH-B17.1-04 Dossier cible operatorsPASSEDtest_architecture_decisions.py::test_monorepo_map_paths_exist (E-ID-ARCH)
ARCH-B17.1-05 Dossier cible sdkPASSEDtest_architecture_decisions.py::test_monorepo_map_paths_exist (E-ID-ARCH)
ARCH-B17.1-06 Dossier cible cliPASSEDtest_architecture_decisions.py::test_monorepo_map_paths_exist (E-ID-ARCH)
ARCH-B17.1-07 Dossier cible pluginsPASSEDtest_architecture_decisions.py::test_monorepo_map_paths_exist (E-ID-ARCH)
ARCH-B17.1-08 Dossier cible policiesPASSEDtest_architecture_decisions.py::test_monorepo_map_paths_exist (E-ID-ARCH)
ARCH-B17.1-09 Dossier cible deploymentPASSEDtest_architecture_decisions.py::test_monorepo_map_paths_exist (E-ID-ARCH)
ARCH-B17.1-10 Dossier cible databasePASSEDtest_architecture_decisions.py::test_monorepo_map_paths_exist (E-ID-ARCH)
ARCH-B17.1-11 Dossier cible docsPASSEDtest_architecture_decisions.py::test_monorepo_map_paths_exist (E-ID-ARCH)
ARCH-B17.1-12 Dossier cible testsPASSEDtest_architecture_decisions.py::test_monorepo_map_paths_exist (E-ID-ARCH)
ARCH-B17.1-13 Dossier cible releasePASSEDtest_architecture_decisions.py::test_monorepo_map_paths_exist (E-ID-ARCH)

Partie B, B17.2. Tests de recette obligatoires avant livraison​

ÉlémentStatutPreuveReste ou blocage
ARCH-B17.2-01 Installation neuve reproductiblePASSEDtest_release_bundle.py::test_bundle_is_reproducible (E-DO-AIRGAP, E-DO-INSTALL)
ARCH-B17.2-02 Air-gapPASSEDtest_release_bundle.py::test_airgapped_install_in_empty_network_namespace (E-DO-AIRGAP)
ARCH-B17.2-03 Configuration validée, versionnée et auditableIN_PROGRESStest_platform_deploy_env.py::test_deploy_values_are_valid_settings (E-DO-INSTALL)Versionnement et audit de la configuration prouvés côté Manager (lot C01), à citer.
ARCH-B17.2-04 Démarrage, arrêt et redémarrage contrôlés et observablesIN_PROGRESStest_availability_helm.py::test_ha_profile_replicas_pdb_spread_antiaffinity_probes_shutdown (E-HB-HA)Opérations de service du Manager prouvées par le lot C01, à citer.
ARCH-B17.2-05 Upgrade avec restauration documentéePASSEDtest_backup_recovery.py::test_restore_incompatible_major_and_rollback_on_corruption (E-HB-BACKUP)
ARCH-B17.2-06 IAM (SSO, MFA, rôles, sessions)PASSEDtest_iam_keycloak_real.py test_iam_role_matrix.py (E-CP-IAM-REAL)
ARCH-B17.2-07 Permissions OpenFGA/OPA avec refus prouvésPASSEDtest_iam_openfga_real.py test_iam_opa_bundles_real.py (E-CP-IAM-REAL, E-CP-AUTHZ)
ARCH-B17.2-08 Identité de l'agent propagée sur chaque actionPASSEDtest_identity_context_delegation.py (E-CP-CONTEXT)
ARCH-B17.2-09 Isolation des tenantsPASSEDtest_core_rls_forced.py test_soc_ai_sdr.py::test_soc_routes_refuse_other_tenant_ids (E-CP-RLS, E-G06-SOC)
ARCH-B17.2-10 Sécurité MCP impossible à contournerPASSEDtest_capabilities_gateways.py test_security_egress_wiring.py (E-CP-CAPS)
ARCH-B17.2-11 DLPPASSEDtest_soc_ai_sdr.py::test_secret_is_blocked_before_export test_evidence_config_redaction.py (E-G06-SOC, E-DO-REDACTION)
ARCH-B17.2-12 Sécurité RAGPASSEDtest_rag_governance.py test_soc_ai_sdr.py::test_rag_poisoning_isolates_the_knowledge_base (E-CP-RAG-KIT, E-G06-SOC)
ARCH-B17.2-13 Audit complet et vérifiablePASSEDtest_core_audit.py test_audit_mutation_coverage.py (E-CP-AUDIT)
ARCH-B17.2-14 Traces Opik/OTel, tokens, coûts et latence corrélésPASSEDtest_tracing.py test_observability_signals.py (E-CP-OBS)
ARCH-B17.2-15 Détection et investigation SOCPASSEDtest_soc_ai_sdr.py::test_ingestor_normalizes_and_correlator_links_user_agent_tenant test_soc_ai_sdr.py::test_soc_roles_access_audit_and_sealed_chain_of_custody (E-G06-SOC)
ARCH-B17.2-16 Kill Switch effectif sans reprise non autoriséePASSEDtest_soc_ai_sdr.py::test_kill_switch_cancels_run_and_subagents_and_refuses_new_actions test_soc_ai_sdr.py::test_recovery_needs_four_eyes_then_reauthorization (E-G06-SOC)
ARCH-B17.2-17 Reprise contrôlée et journaliséePASSEDtest_soc_ai_sdr.py::test_emergency_lockdown_blocks_everything_but_soc_and_recovers test_backup_recovery.py::test_restore_needs_two_distinct_approvers_and_separate_privilege (E-G06-SOC, E-HB-BACKUP)
ARCH-B17.2-18 Scalabilité face aux objectifs clientBLOCKEDtest_eo_scalability_helm.py::test_backend_api_is_stateless_and_scaled_horizontally test_perf_measurements.py::test_every_scenario_has_coherent_metrics (E-EO-SCALING, E-DO-PERF)La tenue en charge réelle face aux objectifs client demande un cluster [B-CLUSTER]
ARCH-B17.2-19 Sauvegarde et restauration démontréesPASSEDtest_recovery_postgres_real.py test_backup_dr_extended.py::test_periodic_restore_test_signed_report_and_alarm_on_corruption (E-HB-BACKUP)
ARCH-B17.2-20 Marketplace de plugins : installation, permissions, mise à jour, rollbackPASSEDtest_marketplace.py (E-CP-MARKETPLACE)
ARCH-B17.2-21 Conformité des SDK dans chaque langageIN_PROGRESStests (E-CONTRACTS, E-DO-SDK-SNIPPETS)Contrats et SDK Python prouvés ici ; TypeScript, Go et Java sont prouvés par les ensembles E-SDK-TS, E-SDK-GO et E-SDK-JAVA du lot C06.
ARCH-B17.2-22 Licences annuelle, triennale et hors lignePASSEDtest_licensing.py::test_annual_and_triennial_licences_activate_online test_licensing.py::test_offline_issuance_and_file_activation_without_network (E-CP-LICENSING)
ARCH-B17.2-23 Procédures de documentation exécutables et vérifiéesPASSEDtest_docs_kit.py::test_python_modules_quoted_in_the_docs_exist_and_answer_help test_docs_kit.py::test_routes_quoted_in_the_guides_exist_in_the_published_api (E-DO-DOCS)

Partie B, B18. Différenciation, exigences non négociables et version de distribution​

ÉlémentStatutPreuveReste ou blocage
ARCH-B18-01 Installation assistéePASSEDtest_services_install.py::test_provider_and_consumer_install_end_to_end (E-ID-LIFECYCLE)
ARCH-B18-02 Configuration centralisée versionnéeIN_PROGRESSPreuve portée par le lot propriétaire (C03 à C10) ; à citer quand son jeu est vert
ARCH-B18-03 Portail unifiéIN_PROGRESSPreuve portée par le lot propriétaire (C03 à C10) ; à citer quand son jeu est vert
ARCH-B18-04 SDK standardIN_PROGRESSPreuve portée par le lot propriétaire (C03 à C10) ; à citer quand son jeu est vert
ARCH-B18-05 Contrôles fournis et testésIN_PROGRESSPreuve portée par le lot propriétaire (C03 à C10) ; à citer quand son jeu est vert
ARCH-B18-06 Marketplace de packs signésIN_PROGRESSPreuve portée par le lot propriétaire (C03 à C10) ; à citer quand son jeu est vert
ARCH-B18-07 OpenFGA, OPA et contexte utilisateurIN_PROGRESSPreuve portée par le lot propriétaire (C03 à C10) ; à citer quand son jeu est vert
ARCH-B18-08 Execution Explorer et audit corréléIN_PROGRESSPreuve portée par le lot propriétaire (C03 à C10) ; à citer quand son jeu est vert
ARCH-B18-09 SOC, playbooks, Kill SwitchIN_PROGRESSPreuve portée par le lot propriétaire (C03 à C10) ; à citer quand son jeu est vert
ARCH-B18-10 Gestion des versions et dépendancesPASSEDtest_lifecycle_upgrades.py::test_upgrade_compatibility_refusals (E-ID-LIFECYCLE)
ARCH-B18-11 Documentation versionnéeIN_PROGRESSPreuve portée par le lot propriétaire (C03 à C10) ; à citer quand son jeu est vert
ARCH-B18-12 Diagnostics et bundle de supportPASSEDtest_lifecycle_bundle_acceptance.py::test_support_bundle_has_no_secret_and_no_personal_data (E-ID-LIFECYCLE)
ARCH-B18-13 Catalogue unique de composantsPASSEDtest_architecture_decisions.py::test_governance_llm_observability_components_are_catalogued (E-ID-ARCH)
ARCH-B18-14 Registre central des agentsIN_PROGRESSPreuve portée par le lot propriétaire (C03 à C10) ; à citer quand son jeu est vert
ARCH-B18-15 Autorisation centraliséeIN_PROGRESSPreuve portée par le lot propriétaire (C03 à C10) ; à citer quand son jeu est vert
ARCH-B18-16 Audit indépendantIN_PROGRESSPreuve portée par le lot propriétaire (C03 à C10) ; à citer quand son jeu est vert
ARCH-B18-17 SDK commun documenté testéIN_PROGRESSPreuve portée par le lot propriétaire (C03 à C10) ; à citer quand son jeu est vert
ARCH-B18-18 Release de distribution figéeIN_PROGRESSPreuve portée par le lot propriétaire (C03 à C10) ; à citer quand son jeu est vert

Partie B, B19. L'agent porte l'identité de l'utilisateur​

ÉlémentStatutPreuveReste ou blocage
ARCH-B19-01 Champ tenant_id porté par l'agentPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B19-02 Champ user_id porté par l'agentPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B19-03 Champ on_behalf_of porté par l'agentPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B19-04 Champ agent_id porté par l'agentPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B19-05 Champ agent_version porté par l'agentPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B19-06 Champ subagent_id porté par l'agentPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B19-07 Champ workload_identity porté par l'agentPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B19-08 Champ delegation_id porté par l'agentPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B19-09 Champ delegated_scopes porté par l'agentPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B19-10 Champ session_id porté par l'agentPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B19-11 Champ execution_id porté par l'agentPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B19-12 Champ trace_id porté par l'agentPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B19-13 Champ policy_revision porté par l'agentPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B19-14 Champ security_state porté par l'agentPASSEDtest_identity_context_delegation.py::test_context_is_signed_verified_and_matches_the_contract test_identity_context_delegation.py::test_audit_events_carry_user_workload_delegation_and_causal_ids (E-IR-IDENTITY)
ARCH-B19-15 Droits effectifs = intersectionPASSEDtest_identity_context_delegation.py::test_pattern_algebra_never_widens (E-IR-IDENTITY)
ARCH-B19-16 Pas de compte technique privilégié pour l'agentPASSEDtest_identity_context_delegation.py::test_opa_decision_is_taken_before_each_action_with_the_original_user (E-IR-IDENTITY)
ARCH-B19-17 Connecteur sécurisé applique les droits de l'utilisateurPASSEDtest_connector_on_behalf_of.py::test_connector_enforces_user_right_on_technical_credential (E-IR-IDENTITY)
ARCH-B19-18 Workflows planifiés avec mandat limitéPASSEDtest_identity_context_delegation.py::test_scheduled_run_needs_an_approved_mandate_bound_to_a_service_identity (E-IR-IDENTITY)
ARCH-B19-19 Règle centrale de bout en boutPASSEDtest_identity_context_delegation.py::test_run_carries_original_user_and_subagent_never_gets_wider_rights (E-IR-IDENTITY)