Modèle de données PostgreSQL
Rendu de docs/architecture/data-model-mapping.yaml (source unique), prouvé par services/control-plane/tests/test_data_model_mapping.py sur une base migrée. Toutes les tables du Control Plane sont dans le schéma eai ; celles du Platform Manager dans le schéma nm de sa propre base. Keycloak, Opik, Temporal et OpenFGA gardent leurs schémas et migrations : la plateforme n'écrit jamais leurs tables internes. Les grosses traces restent dans Opik et Jaeger, les journaux dans OpenSearch, les fichiers dans le stockage objet du client.
Tables de référence (A6.1)
| Domaine | Référence | Nature | Emplacement | Portée |
|---|---|---|---|---|
| core | tenants | table | eai.tenants | global |
| core | organizations | table | eai.organizations | tenant |
| core | business_units | table | eai.business_units | tenant |
| core | environments | table | eai.environments | tenant |
| core | projects | table | eai.projects | tenant |
| core | settings | colonne | eai.tenants.settings | |
| iam | users | table | eai.users | tenant |
| iam | groups | table | eai.group_mappings | tenant |
| iam | memberships | table | eai.memberships | tenant |
| iam | service_identities | table | eai.service_identities | tenant |
| iam | delegations | table | eai.delegations | tenant |
| iam | access_grants | table | eai.authz_tuples | tenant |
| platform_inventory | clusters | Platform Manager (nm) | nm.clusters | |
| platform_inventory | nodes | Platform Manager (nm) | nm.hosts | |
| platform_inventory | components | Platform Manager (nm) | nm.host_components | |
| platform_inventory | component_versions | Platform Manager (nm) | nm.service_upgrades | |
| platform_inventory | service_instances | Platform Manager (nm) | nm.cluster_services | |
| platform_inventory | dependencies | hors PostgreSQL | navin-manager/catalog | |
| platform_operations | configurations | Platform Manager (nm) | nm.config_groups | |
| platform_operations | configuration_versions | Platform Manager (nm) | nm.config_versions | |
| platform_operations | operations | Platform Manager (nm) | nm.operations | |
| platform_operations | operation_steps | Platform Manager (nm) | nm.tasks | |
| platform_operations | health_checks | Platform Manager (nm) | nm.service_checks | |
| platform_operations | maintenance_windows | Platform Manager (nm) | nm.maintenance_windows | |
| ai | providers | table | eai.llm_providers | tenant |
| ai | models | table | eai.llm_models | tenant |
| ai | model_routes | table | eai.llm_routes | tenant |
| ai | model_categories | table | eai.llm_model_categories | tenant |
| ai | model_deployments | table | eai.vllm_deployments | tenant |
| ai | model_prices | table | eai.price_cards | tenant |
| ai | model_approvals | table | eai.llm_model_rollouts | tenant |
| agents | agents | table | eai.agents | tenant |
| agents | agent_versions | table | eai.agent_versions | tenant |
| agents | agent_deployments | colonne | eai.agents.current_version | |
| agents | agent_runs | table | eai.runs | tenant |
| agents | subagent_runs | colonne | eai.runs.parent_run_id | |
| agents | checkpoints | table | eai.checkpoints | tenant |
| agent_sessions | sessions | table | eai.sessions | tenant |
| agent_sessions | action_requests | table | eai.approvals | tenant |
| agent_sessions | tool_invocations | table | eai.tool_invocations | tenant |
| agent_sessions | memory_scopes | colonne | eai.memory_items.scope_type | |
| agent_sessions | memory_entries | table | eai.memory_items | tenant |
| dev | projects | table | eai.projects | tenant |
| dev | sdk_versions | hors PostgreSQL | sdks | |
| dev | project_templates | hors PostgreSQL | packs/templates | |
| dev | developer_environments | table | eai.environments | tenant |
| dev | test_runs | table | eai.eval_runs | tenant |
| registry_packs | packs | table | eai.marketplace_packages | tenant |
| registry_packs | pack_versions | table | eai.marketplace_versions | tenant |
| registry_packs | pack_installations | table | eai.marketplace_installations | tenant |
| registry_packs | pack_assets | colonne | eai.marketplace_versions.files | |
| registry_packs | pack_dependencies | colonne | eai.marketplace_versions.manifest | |
| registry_assets | skills | table | eai.skills | tenant |
| registry_assets | skill_versions | colonne | eai.skills.version | |
| registry_assets | prompts | table | eai.prompts | tenant |
| registry_assets | prompt_versions | table | eai.prompt_versions | tenant |
| registry_assets | plugins | table | eai.plugins | tenant |
| registry_assets | plugin_versions | colonne | eai.plugins.version | |
| integration | mcp_servers | table | eai.mcp_servers | tenant |
| integration | mcp_tools | table | eai.mcp_tool_versions | tenant |
| integration | connectors | table | eai.connectors | tenant |
| integration | connector_instances | table | eai.connector_sync_runs | tenant |
| integration | connector_credentials | table | eai.connector_credentials | tenant |
| data | data_sources | colonne | eai.kb_documents.source_connector | |
| data | datasets | table | eai.datasets | tenant |
| data | documents | table | eai.kb_documents | tenant |
| data | document_acl | colonne | eai.kb_documents.readers | |
| data | classifications | table | eai.dlp_rules | tenant |
| data | lineage_refs | table | eai.lineage_nodes | tenant |
| rag | collections | table | eai.knowledge_bases | tenant |
| rag | ingestion_jobs | table | eai.kb_reindex_jobs | tenant |
| rag | document_chunks | table | eai.kb_chunks | tenant |
| rag | retrieval_policies | colonne | eai.knowledge_bases.acl | |
| rag | index_versions | colonne | eai.knowledge_bases.vector_generation | |
| policy | policy_sets | table | eai.policy_bundles | tenant |
| policy | policy_versions | table | eai.policy_revisions | tenant |
| policy | policy_assignments | table | eai.policies | tenant |
| policy | policy_tests | hors PostgreSQL | deploy/policies/opa | |
| policy | exceptions | table | eai.risk_exceptions | tenant |
| security_signals | security_signals | colonne | eai.soc_detections.evidence | |
| security_signals | detections | table | eai.soc_detections | tenant |
| security_signals | incidents | table | eai.incidents | tenant |
| security_signals | response_actions | table | eai.incident_actions | tenant |
| security_signals | quarantines | table | eai.containment_orders | tenant |
| security_signals | kill_switches | table | eai.kill_switches | tenant |
| security_approvals | approvals | table | eai.approvals | tenant |
| security_approvals | approval_steps | table | eai.approval_decisions | tenant |
| security_approvals | risk_assessments | table | eai.risk_assessments | tenant |
| security_approvals | dlp_events | colonne | eai.tool_invocations.dlp_findings | |
| audit | events | table | eai.audit_events | tenant |
| audit | decision_records | table | eai.policy_decisions | tenant |
| audit | evidence_batches | table | eai.audit_seals | tenant |
| audit | evidence_objects | table | eai.audit_payloads | tenant |
| audit | retention_policies | table | eai.retention_policies | tenant |
| audit | exports | table | eai.audit_exports | tenant |
| observability | trace_refs | colonne | eai.runs.trace | |
| observability | alert_rules | Platform Manager (nm) | nm.alert_definitions | |
| observability | alert_instances | Platform Manager (nm) | nm.alerts | |
| observability | service_slos | table | eai.service_slos | global |
| observability | telemetry_configs | hors PostgreSQL | deploy/observability | |
| finops | budgets | table | eai.quotas | tenant |
| finops | quotas | table | eai.quota_profiles | tenant |
| finops | usage_records | table | eai.usage_events | tenant |
| finops | cost_allocations | table | eai.allocation_policies | global |
| finops | price_catalogs | table | eai.price_cards | tenant |
| storage | profiles | table | eai.storage_profiles | tenant |
| storage | buckets | colonne | eai.storage_profiles.bucket | |
| storage | storage_policies | colonne | eai.storage_profiles.purposes | |
| storage | object_refs | table | eai.media | tenant |
| storage | backup_records | Platform Manager (nm) | nm.backups | |
| commercial | licenses | table | eai.licenses | global |
| commercial | license_activations | table | eai.license_installation | global |
| commercial | entitlements | colonne | eai.licenses.payload | |
| commercial | support_contracts | table | eai.support_contracts | global |
| commercial | license_events | table | eai.license_events | global |
| system | outbox_events | table | eai.event_outbox | tenant |
| system | inbox_events | table | eai.inbox_events | tenant |
| system | scheduled_jobs | table | eai.schedules | tenant |
| system | migrations | table | eai.schema_migrations | global |
| system | feature_flags | colonne | eai.tenants.settings |
Relations (A6.2)
| Relation | Depuis | Colonne | Vers | Nature |
|---|---|---|---|---|
| tenant | eai.organizations | tenant_id | eai.tenants | clé étrangère |
| tenant | eai.business_units | organization_id | eai.organizations | clé étrangère |
| tenant | eai.business_units | parent_id | eai.business_units | clé étrangère |
| tenant | eai.projects | organization_id | eai.organizations | clé étrangère |
| tenant | eai.projects | business_unit_id | eai.business_units | clé étrangère |
| tenant | eai.projects | tenant_id | eai.tenants | clé étrangère |
| tenant | eai.environments | tenant_id | eai.tenants | clé étrangère |
| tenant | eai.environments | project_id | eai.projects | clé étrangère |
| cluster | nm.hosts | cluster_id | nm.clusters | clé étrangère nm |
| cluster | nm.cluster_services | cluster_id | nm.clusters | clé étrangère nm |
| component | nm.host_components | host_id | nm.hosts | clé étrangère nm |
| component | nm.config_versions | cluster_id | nm.clusters | clé étrangère nm |
| agent | eai.agent_versions | agent_id | eai.agents | clé étrangère |
| agent | eai.runs | agent_id | eai.agents | clé étrangère |
| agent | eai.agents | current_version | eai.agent_versions | colonne de référence |
| agent_run | eai.run_steps | run_id | eai.runs | clé étrangère |
| agent_run | eai.runs | parent_run_id | eai.runs | clé étrangère |
| agent_run | eai.tool_invocations | run_id | eai.runs | colonne de référence |
| agent_run | eai.telemetry_spans | run_id | eai.runs | colonne de référence |
| developer_project | eai.environments | project_id | eai.projects | clé étrangère |
| developer_project | eai.runs | project_id | eai.projects | colonne de référence |
| developer_project | eai.eval_runs | target_ref | eai.marketplace_versions | colonne de référence |
| pack_version | eai.marketplace_versions | package_id | eai.marketplace_packages | clé étrangère |
| pack_version | eai.marketplace_versions | manifest | eai.skills | colonne de référence |
| pack_version | eai.marketplace_versions | skill_signatures | eai.skills | colonne de référence |
| user | eai.memberships | user_id | eai.users | clé étrangère |
| user | eai.delegations | delegator | eai.users | colonne de référence |
| user | eai.approvals | requester | eai.users | colonne de référence |
| user | eai.audit_events | actor | eai.users | colonne de référence |
| policy_version | eai.policy_revisions | policy_id | eai.policies | colonne de référence |
| policy_version | eai.policy_decisions | policy_version | eai.policy_revisions | colonne de référence |
| incident | eai.soc_detections | incident_id | eai.incidents | clé étrangère |
| incident | eai.incident_actions | incident_id | eai.incidents | clé étrangère |
| incident | eai.incident_evidence | incident_id | eai.incidents | clé étrangère |
| license | eai.licenses | installation_id | eai.license_installation | colonne de référence |
| license | eai.license_events | license_id | eai.licenses | colonne de référence |
| license | eai.support_contracts | license_id | eai.licenses | clé étrangère |
Schémas de référence (B7.1)
| Schéma de référence | Domaines |
|---|---|
| core | core |
| platform | platform_inventory, platform_operations |
| iam | iam |
| governance | security_approvals, policy |
| ai | ai |
| models | ai |
| developer | dev, agents, agent_sessions |
| marketplace | registry_packs, registry_assets, integration |
| data | data, rag |
| privacy | data |
| observability | observability |
| audit | audit |
| security | security_signals |
| finops | finops |
| licensing | commercial |
| operations | system, storage |
Champs communs (B7.2)
| Champ | Tables qui le portent |
|---|---|
| id | eai.agents, eai.runs, eai.incidents, eai.storage_profiles |
| tenant_id | eai.agents, eai.runs, eai.incidents, eai.storage_profiles |
| environment_id | eai.usage_events, eai.application_deployments |
| created_at | eai.agents, eai.runs, eai.incidents, eai.storage_profiles |
| updated_at | eai.agents, eai.runs, eai.incidents, eai.storage_profiles |
| created_by | eai.agents, eai.runs, eai.incidents, eai.storage_profiles, eai.organizations, eai.business_units, eai.projects, eai.environments, eai.applications |
| updated_by | eai.llm_model_rollouts, eai.organizations, eai.business_units, eai.projects, eai.environments, eai.agents, eai.applications, eai.incidents |
| version | eai.storage_profiles, eai.memory_items, eai.llm_models, eai.organizations, eai.business_units, eai.projects, eai.environments, eai.agents, eai.applications, eai.incidents |
| status | eai.agents, eai.incidents, eai.storage_profiles, eai.sessions |
| metadata | eai.sessions, eai.kb_documents, eai.connector_credentials, eai.organizations, eai.business_units, eai.projects, eai.environments, eai.agents, eai.applications, eai.incidents |
| classification | eai.memory_items, eai.kb_documents, eai.audit_events, eai.media, eai.knowledge_bases |
| correlation_id | eai.audit_events, eai.usage_events, eai.telemetry_spans, eai.organizations, eai.business_units, eai.projects, eai.environments, eai.agents, eai.applications, eai.incidents |
Tables globales sans tenant_id
| Table | Raison |
|---|---|
| eai.tenants | Racine de l'isolation : une ligne par tenant, RLS par id. |
| eai.allocation_policies | Coûts fournisseurs GPU partagés par la plateforme. |
| eai.licenses | Licence de l'installation, pas d'un tenant. |
| eai.license_installation | Singleton de l'installation. |
| eai.license_events | Journal de la licence d'installation. |
| eai.support_contracts | Contrat de support de la licence d'installation, sans aucun prix. |
| eai.schema_migrations | Registre du migrateur, rôle administrateur seul. |
| eai.service_slos | Objectifs SLO des services de la plateforme : lus par tous, écrits par le contexte plateforme seul (RLS forcée, ADR-0157). |