enterprise_ai.platform_manager
Source : sdks/python/src/enterprise_ai/platform_manager/__init__.py. Retour à l'index de la référence du SDK Python.
Cette page est générée par tools/docs/gen_sdk_reference.py depuis les sources du SDK et les dossiers de textes OpenAPI. Ne la modifiez pas à la main : changez la source et régénérez.
Classe PlatformManagerClient
Platform Manager. Espace Platform Manager de la console : la passerelle du Control Plane vers le Navin Manager, qui installe, connecte et exploite les services de la plateforme sur les machines du client, ainsi que le coffre-fort informatique des administrateurs de la plateforme.
Resource
PlatformManagerClient.approve_dr_exercise
approve_dr_exercise(exercise_id: str) -> Any
Approuver un exercice de PRA. Ajoute l'approbation de l'utilisateur à un exercice de PRA ; le Manager refuse l'auto-approbation. Audité (platform_manager.dr.exercise.approve) avec le nouveau statut. Demande platform_admin.
Route : /v1/platform-manager/dr/exercises/{exercise_id}/approve (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
exercise_id | str | oui | Identifiant de l'exercice de PRA dans le Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Approuver un exercice de PRA ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.approve_restore
approve_restore(plan_id: str) -> Any
Approuver un plan de restauration. Ajoute l'approbation de l'utilisateur à un plan de restauration ; le Manager refuse l'auto-approbation et compte deux approbateurs distincts. Audité (platform_manager.restore.approve) avec le nouveau statut et le nombre d'approbations. Demande platform_admin.
Route : /v1/platform-manager/backup/restores/{plan_id}/approve (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
plan_id | str | oui | Identifiant du plan de restauration dans le Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Approuver un plan de restauration ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.backup_jobs
backup_jobs() -> Any
Lister les tâches de sauvegarde. Tâches de sauvegarde du Manager avec leur statut, relayées au nom de l'utilisateur (backup:read côté Manager). Demande platform_admin.
Route : /v1/platform-manager/backup/jobs (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Lister les tâches de sauvegarde ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.backup_plans
backup_plans() -> Any
Lister les plans de sauvegarde. Politiques de sauvegarde (périmètre, intervalle, rétention, immuabilité) et alertes de retard ou d'échec du Manager. Demande platform_admin.
Route : /v1/platform-manager/backup/plans (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Lister les plans de sauvegarde ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.backups
backups() -> Any
Lister les sauvegardes. Sauvegardes avec leur SHA-256, leur taille et le résultat de leur dernière vérification, relayées depuis le Manager (backup:read côté Manager). Demande platform_admin.
Route : /v1/platform-manager/backup/backups (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Lister les sauvegardes ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.catalog
catalog() -> Any
Lister le catalogue du Manager. Services du catalogue du Manager (nom, version et catégories de la pile) avec leurs noms affichés, catégorie, version, composants, modes, méthodes, prérequis, mode de livraison (install, connect, job, package), couche et licence. Demande platform_admin.
Route : /v1/platform-manager/catalog (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Lister le catalogue du Manager ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.catalog_service
catalog_service(service: str) -> Any
Lire le descripteur d'installation d'un service. Descripteur d'installation d'un service du catalogue : modes avec leurs composants et cardinalités, méthodes, prérequis, sections et paramètres avec leurs valeurs par défaut. Un paramètre secret ne porte jamais de valeur par défaut et indique s'il est généré ; les gabarits et artefacts ne sortent jamais de la passerelle. Demande platform_admin.
Route : /v1/platform-manager/catalog/{service} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
service | str | oui | Nom du service du catalogue. |
Retour : Any. Réponse JSON décodée de l'opération « Lire le descripteur d'installation d'un service ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.clusters
clusters() -> Any
Lister les clusters. Clusters (environnements) du Navin Manager visibles par l'utilisateur. Demande platform_admin.
Route : /v1/platform-manager/clusters (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Lister les clusters ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.connect_service
connect_service(cluster_id: str, name: str, endpoint: str, credentials_ref: str | None = None, tls_verify: bool = True, config: dict[str, Any] | None = None, auth: dict[str, Any] | None = None, mtls: dict[str, Any] | None = None, ca_pem: str | None = None) -> Any
Connecter un service existant. Enregistre un service existant du client au nom de l'utilisateur et répond 201 ; le Manager contrôle services:install et la section de connexion du descripteur, puis vérifie sa santé. Un service connecté n'est jamais installé, démarré ni arrêté par le Manager. Les champs secrets sont relayés et scellés par le Manager ; l'audit ne garde que le point d'accès, le TLS, la méthode et les noms des champs. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/services/connect (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
name | str | oui | Nom du service dans le catalogue : une lettre minuscule puis jusqu'à 62 lettres minuscules, chiffres, tirets ou soulignés. | |
endpoint | str | oui | Adresse du service existant, de 1 à 2048 caractères. | |
credentials_ref | str | None | None | non | Référence d'identifiants déjà enregistrés, 512 caractères au plus ; l'audit ne garde que sa présence. |
tls_verify | bool | True | non | Vérifier le certificat TLS du service (vrai par défaut). |
config | dict[str, Any] | None | None | non | Champs de la section de connexion du descripteur, jusqu'à 100 clés ; l'audit ne garde que les clés. |
auth | dict[str, Any] | None | None | non | Méthode d'authentification et ses champs. |
mtls | dict[str, Any] | None | None | non | Certificat client pour le TLS mutuel. |
ca_pem | str | None | None | non | Autorité de certification privée (PEM) qui signe le certificat du service, 65536 caractères au plus. |
Retour : Any. Réponse JSON décodée de l'opération « Connecter un service existant ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.connections
connections(connection_type: str | None = None) -> Any
Lister les connexions. Connexions existantes des types que le portail lie (PostgreSQL, Redis, OIDC), filtrées par type si fourni ; le secret indique seulement s'il est renseigné. Demande connections:read dans le Manager. Demande platform_admin.
Route : /v1/platform-manager/connections (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
connection_type | str | None | None | non | Ne liste que les connexions de ce type (postgresql, redis ou oidc), envoyé dans le paramètre de requête type ; None les liste toutes. |
Retour : Any. Réponse JSON décodée de l'opération « Lister les connexions ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.console
console() -> Any
Obtenir les liens des consoles. Indique si le Manager est configuré, l'adresse de base de sa console (EAI_PLATFORM_MANAGER_CONSOLE_URL, sinon EAI_PLATFORM_MANAGER_URL) et les consoles d'exploitation (Opik, Grafana, Keycloak, LiteLLM, OpenSearch Dashboards) : depuis leur paramètre s'il est renseigné (source setting), sinon depuis le service du même nom installé ou connecté par le Manager (source manager). Une adresse de console qui n'est pas en https ou qui porte des identifiants n'est jamais renvoyée (problem en donne la raison). Demande platform_admin.
Route : /v1/platform-manager/console (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Obtenir les liens des consoles ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.create_cluster
create_cluster(name: str, mode: str = 'production', description: str = '', profile: str | None = None) -> Any
Créer un cluster. Crée un cluster (environnement) dans le Manager et répond 201 ; l'utilisateur délégué doit détenir clusters:create. Audité (platform_manager.cluster_create), autorisé ou refusé. Demande platform_admin.
Route : /v1/platform-manager/clusters (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | str | oui | Nom du cluster, de 1 à 80 caractères. | |
mode | str | 'production' | non | production (par défaut) ou sandbox. |
description | str | '' | non | Description libre, 500 caractères au plus. |
profile | str | None | None | non | Profil de déploiement : development, standard, banking-secure, air-gapped ou hybrid ; omis pour la valeur par défaut du Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Créer un cluster ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.create_connection
create_connection(name: str, connection_type: str, params: dict[str, Any], secret: str | None = None, description: str = '') -> Any
Enregistrer une connexion. Enregistre un PostgreSQL, un Redis ou un émetteur OIDC existant comme connexion du Manager et répond 201 (le secret est scellé par le Manager et jamais renvoyé). Les formulaires d'installation y lient ensuite un service. Demande connections:manage dans le Manager. L'audit garde nom, type, clés des paramètres et présence d'un secret. Demande platform_admin.
Route : /v1/platform-manager/connections (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | str | oui | Nom de la connexion, de 1 à 100 caractères. | |
connection_type | str | oui | Type de la connexion, envoyé dans type : postgresql, redis ou oidc. | |
params | dict[str, Any] | oui | Paramètres de connexion (hôte, port, base, émetteur...), jusqu'à 20 clés ; l'audit ne garde que les clés. | |
secret | str | None | None | non | Mot de passe ou secret client, 4096 caractères au plus. En écriture seule : scellé par le Manager, jamais renvoyé ni audité. Une valeur vide n'est pas envoyée. |
description | str | '' | non | Description libre, 1000 caractères au plus. |
Retour : Any. Réponse JSON décodée de l'opération « Enregistrer une connexion ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.create_enrollment_token
create_enrollment_token(cluster_id: str, expires_in_hours: int = 24, max_uses: int = 10) -> Any
Créer un jeton d'enrôlement. Jeton d'amorçage de l'agent de nœud et commande d'enregistrement à lancer sur chaque machine, renvoyés avec 201 ; affichés une seule fois, le jeton et la commande ne sont jamais écrits dans l'audit (seuls son identifiant et son échéance). Demande hosts:manage dans le Manager. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/enrollment-tokens (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
expires_in_hours | int | 24 | non | Durée de vie du jeton en heures, de 1 à 720, 24 par défaut. |
max_uses | int | 10 | non | Nombre de machines qui peuvent s'enrôler avec le jeton, de 1 à 10000, 10 par défaut. |
Retour : Any. Réponse JSON décodée de l'opération « Créer un jeton d'enrôlement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.create_vault_entry
create_vault_entry(body: dict[str, Any]) -> Any
Ajouter une entrée au coffre-fort. Ajoute un service au coffre-fort informatique (source manual) et répond 201 sans le mot de passe ni la clé. URL, identifiant, mot de passe et clé sont scellés ensemble en AES-256-GCM (clé dérivée de la clé maîtresse de la plateforme, identifiant de l'entrée comme données associées) ; seul le nom est enregistré en clair. Un nom déjà utilisé répond 409 it_vault_name_taken ; un nom vide 422 validation_failed. Audité (it_vault.create, nom seulement). Demande platform_admin.
Route : /v1/platform-manager/vault/entries (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | dict[str, Any] | oui | Le service à ajouter. Les champs inconnus sont refusés. |
Retour : Any. Réponse JSON décodée de l'opération « Ajouter une entrée au coffre-fort ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.decommission_host
decommission_host(host_id: str) -> Any
Retirer une machine. Retire une machine sans composants (agent arrêté, certificat révoqué) et répond 202 avec l'identifiant de l'opération. Audité (platform_manager.decommission), autorisé ou refusé. Demande platform_admin.
Route : /v1/platform-manager/hosts/{host_id}/decommission (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
host_id | str | oui | Identifiant de la machine dans le Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Retirer une machine ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.delete_connection
delete_connection(connection_id: str) -> Any
Supprimer une connexion. Oublie une connexion et répond 204 ; le Manager refuse (409 platform_manager_connection_in_use) tant qu'un service y est lié. Demande connections:manage dans le Manager. Audité, autorisé ou refusé. Demande platform_admin.
Route : /v1/platform-manager/connections/{connection_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
connection_id | str | oui | Identifiant de la connexion dans le Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Supprimer une connexion ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.delete_vault_entry
delete_vault_entry(entry_id: str) -> Any
Supprimer une entrée du coffre-fort. Supprime un service du coffre-fort informatique et répond 204. Une entrée pré-remplie à partir des paramètres de la plateforme revient au prochain import. Audité (it_vault.delete, nom seulement). Identifiant inconnu : 404 it_vault_entry_not_found. Demande platform_admin.
Route : /v1/platform-manager/vault/entries/{entry_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
entry_id | str | oui | Identifiant (UUID) de l'entrée du coffre-fort. |
Retour : Any. Réponse JSON décodée de l'opération « Supprimer une entrée du coffre-fort ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.disconnect_service
disconnect_service(cluster_id: str, service: str) -> Any
Déconnecter un service connecté. Oublie un service connecté (le service lui-même n'est pas touché) ; le Manager refuse tant qu'un consommateur l'utilise. Audité (platform_manager.disconnect), autorisé ou refusé. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/services/{service}/connection (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
service | str | oui | Nom du service connecté. |
Retour : Any. Réponse JSON décodée de l'opération « Déconnecter un service connecté ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.dr_exercises
dr_exercises() -> Any
Lister les exercices de PRA. Exercices de PRA avec le RPO et le RTO observés et l'atteinte de chaque objectif (null quand non mesuré). Demande platform_admin.
Route : /v1/platform-manager/dr/exercises (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Lister les exercices de PRA ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.dr_plans
dr_plans() -> Any
Lister les plans de PRA. Plans de PRA : mode, sites principal et secondaire, objectifs de RPO et de RTO du client (null tant qu'ils ne sont pas fixés). Demande platform_admin.
Route : /v1/platform-manager/dr/plans (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Lister les plans de PRA ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.enrollment_tokens
enrollment_tokens(cluster_id: str) -> Any
Lister les jetons d'enrôlement. Jetons d'amorçage d'un cluster : préfixe, échéance, utilisations et révocation (le jeton lui-même n'est jamais listé). Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/enrollment-tokens (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Lister les jetons d'enrôlement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.host
host(host_id: str) -> Any
Lire une machine. Une machine avec ses caractéristiques (système d'exploitation, ressources, version de l'agent, dernier signal de vie). Demande platform_admin.
Route : /v1/platform-manager/hosts/{host_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
host_id | str | oui | Identifiant de la machine dans le Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Lire une machine ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.import_vault
import_vault() -> Any
Importer les services configurés dans le coffre-fort. Pré-remplit le coffre-fort avec les services avec lesquels la plateforme est configurée (PostgreSQL, Redis, Keycloak, OpenBao, OpenFGA, OPA, LiteLLM, Qdrant, NATS, Temporal, LiveKit, Opik, ClickHouse, S3, Platform Manager, compte d'installation du portail), à partir des paramètres EAI_*. Seuls les services manquants sont ajoutés : une entrée n'est jamais écrasée, une entrée supprimée revient. Répond les noms créés et ignorés. Audité (it_vault.import). Le même import s'exécute à chaque démarrage de l'API. Demande platform_admin.
Route : /v1/platform-manager/vault/import (POST).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Importer les services configurés dans le coffre-fort ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.install
install(cluster_id: str, services: list[dict[str, Any]], start: bool = True, service_check: bool = True) -> Any
Installer des services du catalogue. Installe des services du catalogue sur les hôtes choisis, au nom de l'utilisateur, et répond 202 avec l'identifiant de l'opération ; le Manager contrôle services:install, les modes, méthodes, placements et la configuration, puis lance l'opération d'installation. L'audit garde services, modes, méthodes, hôtes et clés configurées, jamais les valeurs de configuration. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/services (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
services | list[dict[str, Any]] | oui | Services à installer, de 1 à 20. | |
start | bool | True | non | Démarrer les services une fois installés (vrai par défaut). |
service_check | bool | True | non | Lancer les contrôles de service après l'installation (vrai par défaut). |
Retour : Any. Réponse JSON décodée de l'opération « Installer des services du catalogue ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.nodes
nodes(cluster_id: str) -> Any
Lister les machines d'un cluster. Hôtes du cluster tels que le Manager les connaît (état, caractéristiques, agent). Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/nodes (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Lister les machines d'un cluster ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.operations
operations(cluster_id: str) -> Any
Lister les opérations d'un cluster. Opérations du Manager sur le cluster (installation, démarrage, arrêt, contrôles préalables, amorçage...) avec leur cible et leur statut. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/operations (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Lister les opérations d'un cluster ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.plan_restore
plan_restore(artifact_id: str, environment: str, target_versions: dict[str, str] | None = None) -> Any
Planifier une restauration. Planifie la restauration d'une sauvegarde et répond 201 avec le plan ; le plan précède toujours une exécution et demande deux approbateurs autres que le demandeur. Le Manager compare les versions cibles avec la sauvegarde. L'exécution de la restauration reste dans la console du Manager. Audité (platform_manager.restore.plan), autorisé ou refusé. Demande platform_admin.
Route : /v1/platform-manager/backup/restores (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
artifact_id | str | oui | Identifiant de la sauvegarde à restaurer, de 1 à 100 caractères. | |
environment | str | oui | Environnement cible : isolated, staging ou production. | |
target_versions | dict[str, str] | None | None | non | Versions de l'environnement cible par composant, comparées par le Manager avec la sauvegarde (même version majeure, sinon incompatible). |
Retour : Any. Réponse JSON décodée de l'opération « Planifier une restauration ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.preflight_results
preflight_results(host_id: str) -> Any
Lire les résultats des contrôles préalables. Résultats des derniers contrôles préalables d'une machine (contrôle, statut, message dans les deux langues). Demande platform_admin.
Route : /v1/platform-manager/hosts/{host_id}/preflight (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
host_id | str | oui | Identifiant de la machine dans le Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Lire les résultats des contrôles préalables ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.refresh_facts
refresh_facts(host_id: str) -> Any
Actualiser les caractéristiques d'une machine. Demande à l'agent de nœud de collecter à nouveau les caractéristiques de la machine (système d'exploitation, ressources...) et répond 202 avec l'identifiant de l'opération. Audité (platform_manager.facts_refresh), autorisé ou refusé. Demande platform_admin.
Route : /v1/platform-manager/hosts/{host_id}/facts/refresh (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
host_id | str | oui | Identifiant de la machine dans le Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Actualiser les caractéristiques d'une machine ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.request_dr_exercise
request_dr_exercise(plan_id: str) -> Any
Demander un exercice de PRA. Demande un exercice de PRA d'un plan de PRA et répond 201 ; le Manager applique sa règle d'approbation (dr:manage côté Manager). La conclusion de l'exercice et une bascule réelle restent dans la console du Manager. Audité (platform_manager.dr.exercise.request), autorisé ou refusé. Demande platform_admin.
Route : /v1/platform-manager/dr/exercises (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
plan_id | str | oui | Identifiant du plan de PRA à exercer, de 1 à 100 caractères. |
Retour : Any. Réponse JSON décodée de l'opération « Demander un exercice de PRA ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.request_operation
request_operation(cluster_id: str, service: str, action: str, **options: Any) -> Any
Demander une opération sur un service. Transmet une opération (démarrage, arrêt, redémarrage, redémarrage progressif, réinstallation) avec l'identité de l'utilisateur et répond 202 avec l'identifiant de l'opération ; le Manager décide (RBAC, approbations, règles d'arrêt). Audité (platform_manager.<action>), autorisé ou refusé. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/services/{service}/operations (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
service | str | oui | Nom du service. | |
action | str | oui | start, stop, restart, rolling_restart ou reinstall. | |
**options | Any | non | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : Any. Réponse JSON décodée de l'opération « Demander une opération sur un service ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.request_support_bundle
request_support_bundle(cluster_id: str) -> Any
Demander un paquet de support. Demande au Manager un paquet de support assaini (cluster:manage côté Manager) et répond 202 avec l'opération à suivre et l'identifiant du paquet ; le paquet se télécharge depuis la console du Manager. Audité (platform_manager.support_bundle), autorisé ou refusé. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/support-bundles (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Demander un paquet de support ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.restores
restores() -> Any
Lister les plans de restauration. Plans de restauration avec leur statut et leur nombre d'approbations (deux approbateurs autres que le demandeur). Demande platform_admin.
Route : /v1/platform-manager/backup/restores (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Lister les plans de restauration ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.revoke_enrollment_token
revoke_enrollment_token(cluster_id: str, token_id: str) -> Any
Révoquer un jeton d'enrôlement. Révoque un jeton d'amorçage de l'agent de nœud dans le Manager (hosts:manage côté Manager) et répond 204 ; les machines déjà enrôlées ne sont pas touchées. Audité (platform_manager.enrollment_token_revoke), autorisé ou refusé. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/enrollment-tokens/{token_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
token_id | str | oui | Identifiant du jeton d'enrôlement, tel que listé. |
Retour : Any. Réponse JSON décodée de l'opération « Révoquer un jeton d'enrôlement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.run_preflight
run_preflight(host_id: str) -> Any
Lancer les contrôles préalables. Lance les contrôles préalables d'une machine (opération Manager host.preflight, hosts:manage côté Manager) et répond 202 avec l'identifiant de l'opération ; lisez les résultats avec GET .../preflight. Audité, autorisé ou refusé. Demande platform_admin.
Route : /v1/platform-manager/hosts/{host_id}/preflight (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
host_id | str | oui | Identifiant de la machine dans le Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Lancer les contrôles préalables ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.service
service(cluster_id: str, service: str) -> Any
Lire la fiche d'un service. Un service avec ses champs d'état et ses nombres d'instances, son état de sécurité (TLS, nombre de secrets renseignés sur le total) et la fiche complète du Manager. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/services/{service} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
service | str | oui | Nom du service. |
Retour : Any. Réponse JSON décodée de l'opération « Lire la fiche d'un service ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.service_config
service_config(cluster_id: str, service: str) -> Any
Lire la configuration d'un service. Version de configuration courante d'un service telle que le Manager la présente (valeurs secrètes masquées), avec recommandations, groupes et hôtes en retard. Demande configs:read dans le Manager ; la modification reste dans la console du Manager. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/services/{service}/config (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
service | str | oui | Nom du service. |
Retour : Any. Réponse JSON décodée de l'opération « Lire la configuration d'un service ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.service_config_diff
service_config_diff(cluster_id: str, service: str, from_version: int, to_version: int) -> Any
Comparer deux versions de configuration. Paramètres modifiés entre deux versions de configuration d'un service, une entrée par paramètre ; un paramètre secret indique seulement s'il est renseigné dans chaque version, jamais sa valeur. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/services/{service}/config/diff (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
service | str | oui | Nom du service. | |
from_version | int | oui | Version de configuration de départ de la comparaison, envoyée dans le paramètre de requête from. | |
to_version | int | oui | Version de configuration d'arrivée de la comparaison, envoyée dans le paramètre de requête to. |
Retour : Any. Réponse JSON décodée de l'opération « Comparer deux versions de configuration ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.service_config_versions
service_config_versions(cluster_id: str, service: str) -> Any
Lister les versions de configuration. Historique des versions de configuration d'un service dans le Manager (configs:read côté Manager). Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/services/{service}/config/versions (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
service | str | oui | Nom du service. |
Retour : Any. Réponse JSON décodée de l'opération « Lister les versions de configuration ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.service_dashboard
service_dashboard(cluster_id: str, service: str, from_: str | None = None, to: str | None = None, step: int | None = None) -> Any
Lire le tableau de bord d'un service. Tableau de bord de supervision d'un service relayé depuis le Manager (cluster:read côté Manager) : instances, santé et derniers contrôles, disponibilité, machines détectées avec leurs composants et métriques, alertes, opérations, configuration et, pour un service connecté, sa connexion. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/services/{service}/dashboard (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
service | str | oui | Nom du service. | |
from_ | str | None | None | non | Début de la fenêtre, ISO 8601, 64 caractères au plus. Par défaut : il y a une heure. |
to | str | None | None | non | Fin de la fenêtre, ISO 8601, 64 caractères au plus. Par défaut : maintenant. |
step | int | None | None | non | Résolution des séries de métriques en secondes, de 10 à 86400, 60 par défaut. |
Retour : Any. Réponse JSON décodée de l'opération « Lire le tableau de bord d'un service ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.services
services(cluster_id: str) -> Any
Lister les services d'un cluster. Services du cluster avec les cinq champs d'état (souhaité, observé, santé, opération, sécurité), l'état administratif et sa raison, le nombre d'instances démarrées et total, drift (l'observé diffère du souhaité), le mode de livraison et la connexion d'un service connecté. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/services (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Lister les services d'un cluster ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.set_mode
set_mode(cluster_id: str, service: str, mode: str, **options: Any) -> Any
Définir le mode d'exploitation d'un service. Mode d'exploitation d'un service (drainage, mise à zéro, suspension de sécurité, arrêt d'urgence, désactivation, quarantaine, maintenance, activation), transmis au nom de l'utilisateur ; le Manager fait respecter l'état qui en résulte et peut exiger une approbation. Audité (platform_manager.mode.<mode>) avec l'identifiant de l'opération et l'état administratif obtenu, autorisé ou refusé. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/services/{service}/mode (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
service | str | oui | Nom du service. | |
mode | str | oui | drain, scale_to_zero, security_suspend, emergency_stop, disable, quarantine, maintenance ou enable. | |
**options | Any | non | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : Any. Réponse JSON décodée de l'opération « Définir le mode d'exploitation d'un service ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.setup
setup() -> Any
Lire l'état de mise en route. État de mise en route, sans jamais de secret ni d'erreur si le Manager est absent. core : API, PostgreSQL, migrations, Redis (facultatif) et Keycloak (facultatif), chacun avec un état (ok, missing, down, error), le paramètre à corriger et des messages en anglais et en français. manager : adresse et référence du jeton renseignées, identifiant trouvé, Manager joignable, utilisateur délégué connu, nombre de clusters, référence de jeton suggérée et permissions nécessaires au jeton d'API du Manager (les changements demandent un redémarrage). Demande platform_admin.
Route : /v1/platform-manager/setup (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Lire l'état de mise en route ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.ssh_bootstrap
ssh_bootstrap(cluster_id: str, hosts: list[str], ssh_user: str, private_key: str, host_key_fingerprints: dict[str, str], ssh_port: int = 22, use_sudo: bool = True) -> Any
Installer l'agent de nœud par SSH. Installe l'agent de nœud sur des machines par SSH (opération Manager host.ssh_bootstrap, hosts:manage côté Manager) et répond 202 avec l'opération à suivre. La clé privée est relayée au Manager, qui la garde en mémoire pour les seules tâches d'amorçage ; le Control Plane ne l'enregistre ni ne l'audite jamais (l'audit garde hôtes, utilisateur, port, sudo et empreintes). Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/hosts/ssh-bootstrap (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
hosts | list[str] | oui | Noms ou adresses d'hôtes, de 1 à 200, chacun de 1 à 253 caractères (lettres, chiffres, points, tirets). | |
ssh_user | str | oui | Compte SSH, de 1 à 64 caractères, commençant par une lettre minuscule ou un souligné. | |
private_key | str | oui | Clé privée SSH, de 20 à 20000 caractères. Relayée au Manager, gardée en mémoire pour le seul amorçage ; jamais enregistrée ni auditée par le Control Plane. | |
host_key_fingerprints | dict[str, str] | oui | Empreinte attendue de la clé d'hôte SSH (SHA256:...) de chaque hôte, hôte vers empreinte, jusqu'à 200. Chaque hôte en demande une (le Manager répond 422 sinon) ; la tâche d'amorçage de l'hôte y est liée. | |
ssh_port | int | 22 | non | Port SSH, de 1 à 65535, 22 par défaut. |
use_sudo | bool | True | non | Exécuter l'installation avec sudo (vrai par défaut). |
Retour : Any. Réponse JSON décodée de l'opération « Installer l'agent de nœud par SSH ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.summary
summary() -> Any
Lire la synthèse de la plateforme. Décomptes réels par cluster (environnement) : services au total, sains, en avertissement, en échec ; hôtes ; alertes ; opérations. Demande platform_admin.
Route : /v1/platform-manager/summary (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Lire la synthèse de la plateforme ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.support_bundles
support_bundles(cluster_id: str) -> Any
Lister les paquets de support. Paquets de support assainis d'un cluster ; un paquet se télécharge depuis la console du Manager, jamais par le Control Plane. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/support-bundles (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Lister les paquets de support ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.test_connection
test_connection(connection_id: str) -> Any
Tester une connexion enregistrée. Lance tout de suite le test du protocole d'une connexion enregistrée (son secret scellé reste dans le Manager). Audité. Demande platform_admin.
Route : /v1/platform-manager/connections/{connection_id}/test (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
connection_id | str | oui | Identifiant de la connexion dans le Manager. |
Retour : Any. Réponse JSON décodée de l'opération « Tester une connexion enregistrée ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.update_vault_entry
update_vault_entry(entry_id: str, body: dict[str, Any]) -> Any
Modifier une entrée du coffre-fort. Modifie les champs fournis d'une entrée du coffre-fort et les scelle à nouveau (AES-256-GCM). Un nom utilisé par une autre entrée (sans tenir compte de la casse) répond 409 it_vault_name_taken ; un nom vide 422 validation_failed. Audité (it_vault.update, nom et noms des champs modifiés seulement). Demande platform_admin.
Route : /v1/platform-manager/vault/entries/{entry_id} (PATCH).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
entry_id | str | oui | Identifiant (UUID) de l'entrée du coffre-fort. | |
body | dict[str, Any] | oui | Champs à modifier. Les champs inconnus sont refusés. |
Retour : Any. Réponse JSON décodée de l'opération « Modifier une entrée du coffre-fort ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.validate_connect
validate_connect(cluster_id: str, name: str, endpoint: str, credentials_ref: str | None = None, tls_verify: bool = True, config: dict[str, Any] | None = None, auth: dict[str, Any] | None = None, mtls: dict[str, Any] | None = None, ca_pem: str | None = None) -> Any
Valider la connexion d'un service. Simulation d'une connexion par le Manager : répond ok, les erreurs (service, champ, code, messages dans les deux langues) et le résultat du contrôle de santé ; rien n'est enregistré. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/services/connect/validate (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
name | str | oui | Nom du service dans le catalogue : une lettre minuscule puis jusqu'à 62 lettres minuscules, chiffres, tirets ou soulignés. | |
endpoint | str | oui | Adresse du service existant, de 1 à 2048 caractères. | |
credentials_ref | str | None | None | non | Référence d'identifiants déjà enregistrés, 512 caractères au plus ; l'audit ne garde que sa présence. |
tls_verify | bool | True | non | Vérifier le certificat TLS du service (vrai par défaut). |
config | dict[str, Any] | None | None | non | Champs de la section de connexion du descripteur, jusqu'à 100 clés ; l'audit ne garde que les clés. |
auth | dict[str, Any] | None | None | non | Méthode d'authentification et ses champs. |
mtls | dict[str, Any] | None | None | non | Certificat client pour le TLS mutuel. |
ca_pem | str | None | None | non | Autorité de certification privée (PEM) qui signe le certificat du service, 65536 caractères au plus. |
Retour : Any. Réponse JSON décodée de l'opération « Valider la connexion d'un service ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.validate_connection
validate_connection(connection_type: str, params: dict[str, Any], secret: str | None = None) -> Any
Tester une connexion avant de l'enregistrer. Test réel du protocole d'une connexion avant son enregistrement : répond ok, la latence en millisecondes, la version du serveur, le code d'erreur et les messages ; rien n'est enregistré et le secret n'est jamais renvoyé. Audité sans le secret. Demande platform_admin.
Route : /v1/platform-manager/connections/validate (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
connection_type | str | oui | Type de la connexion à tester, envoyé dans type : postgresql, redis ou oidc. | |
params | dict[str, Any] | oui | Paramètres de connexion, jusqu'à 20 clés. | |
secret | str | None | None | non | Mot de passe ou secret client utilisé pour le test, 4096 caractères au plus ; jamais renvoyé ni audité. |
Retour : Any. Réponse JSON décodée de l'opération « Tester une connexion avant de l'enregistrer ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.validate_install
validate_install(cluster_id: str, services: list[dict[str, Any]], start: bool = True, service_check: bool = True) -> Any
Valider une installation de services. Simulation d'une installation par le planificateur du Manager : répond ok, les erreurs (service, champ, code, messages dans les deux langues) et le plan qu'il exécuterait ; rien n'est installé. Demande platform_admin.
Route : /v1/platform-manager/clusters/{cluster_id}/services/validate (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
cluster_id | str | oui | Identifiant du cluster dans le Navin Manager. | |
services | list[dict[str, Any]] | oui | Services à installer, de 1 à 20. | |
start | bool | True | non | Démarrer les services une fois installés (vrai par défaut). |
service_check | bool | True | non | Lancer les contrôles de service après l'installation (vrai par défaut). |
Retour : Any. Réponse JSON décodée de l'opération « Valider une installation de services ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.vault_entries
vault_entries() -> Any
Lister les entrées du coffre-fort. Services du coffre-fort informatique par nom, avec URL, identifiant de connexion, source (manual ou installed:<service>) et présence d'un mot de passe et d'une clé (has_password, has_api_key), jamais leurs valeurs. Demande platform_admin.
Route : /v1/platform-manager/vault/entries (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Lister les entrées du coffre-fort ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.vault_entry
vault_entry(entry_id: str) -> Any
Lire une entrée du coffre-fort. Un service du coffre-fort sans son mot de passe ni sa clé (utilisez POST .../reveal pour les obtenir). Identifiant inconnu : 404 it_vault_entry_not_found. Demande platform_admin.
Route : /v1/platform-manager/vault/entries/{entry_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
entry_id | str | oui | Identifiant (UUID) de l'entrée du coffre-fort. |
Retour : Any. Réponse JSON décodée de l'opération « Lire une entrée du coffre-fort ».
Erreurs levées : les erreurs typées du transport (Erreurs).
PlatformManagerClient.vault_reveal
vault_reveal(entry_id: str) -> Any
Révéler les secrets d'une entrée du coffre-fort. Mot de passe et clé d'un service en clair (affichage et copie dans la console). Chaque révélation est auditée (it_vault.reveal) avec le nom du service, jamais les valeurs. Identifiant inconnu : 404 it_vault_entry_not_found. Demande platform_admin.
Route : /v1/platform-manager/vault/entries/{entry_id}/reveal (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
entry_id | str | oui | Identifiant (UUID) de l'entrée du coffre-fort. |
Retour : Any. Réponse JSON décodée de l'opération « Révéler les secrets d'une entrée du coffre-fort ».
Erreurs levées : les erreurs typées du transport (Erreurs).