Aller au contenu principal

io.enterpriseai.manager.ManagerGroups

Source : sdks/java/enterprise-ai-java/src/main/java/io/enterpriseai/manager/ManagerGroups.java. Retour à l'index de la référence du SDK Java.

remarque

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 ManagerGroups​

Sous-clients typés de ManagerClient : un par tag OpenAPI, une méthode par opération.

ManagerGroups.agentTemplates​

AgentTemplatesApi agentTemplates()

Opérations agent_templates du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : AgentTemplatesApi. Un AgentTemplatesApi : Gabarits d'agents. Le registre des gabarits d'agents (Service Templates des produits Navin, par exemple l'Agent RAG Navin Enterprise) : chaque gabarit avec son nom, son éditeur, sa version, son statut et le service du catalogue qui l'installe. Un gabarit n'est published que si ce service existe dans le catalogue et que le gabarit a été publié, par la version livrée (statut published) ou sur ce Manager par un administrateur (POST .../publish, la validation du client : la définition de service rejoint le catalogue de ce Manager) ; sinon reason indique pourquoi il ne peut pas être déployé et publishable s'il peut être publié ici. La lecture est ouverte à tout utilisateur connecté, comme le catalogue de la pile ; publier et retirer demandent agent_templates:publish. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.alerts​

AlertsApi alerts()

Opérations alerts du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : AlertsApi. Un AlertsApi : Alertes et notifications. Alertes levées par le Manager à partir de ses définitions d'alertes (machine hors ligne, disque plein, service en mauvaise santé, certificat proche de l'expiration...), et cibles de notification qui les reçoivent. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.audit​

AuditApi audit()

Opérations audit du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : AuditApi. Un AuditApi : Audit. Le journal d'audit du Manager : chaque changement, connexion, refus et lecture sensible, avec l'acteur (utilisateur, jeton d'API, agent ou système), l'action (par exemple service.install), la cible, le cluster, le résultat (success, failure, denied), l'adresse du client et des détails. Les événements sont chaînés : chacun porte l'empreinte du précédent, si bien qu'un événement modifié ou supprimé rompt la chaîne. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.auth​

AuthApi auth()

Opérations auth du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : AuthApi. Un AuthApi : Authentification. Connexion à la console et déconnexion : fournisseurs d'identité, configuration initiale, connexion locale et LDAP, second facteur (TOTP), changement de mot de passe, session et connexion OIDC. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.authConfig​

AuthConfigApi authConfig()

Opérations auth_config du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : AuthConfigApi. Un AuthConfigApi : Fournisseurs d'identité et politique de sécurité. Configuration de la connexion des utilisateurs : l'annuaire LDAP, les fournisseurs OIDC et la politique de sécurité (mots de passe, verrouillage, délais de session, rôles qui exigent la MFA). Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.availability​

AvailabilityApi availability()

Opérations availability du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : AvailabilityApi. Un AvailabilityApi : Groupes de haute disponibilité. Un groupe de haute disponibilité décrit comment un composant d'un cluster reste disponible : son mode de HA (single, active_passive, active_active, quorum), son profil (standalone, ha avec au moins 2 réplicas dans 2 domaines de panne, critical-ha avec au moins 3 dans 3), ses membres et leurs domaines de panne, sa politique de bascule et ses objectifs de reprise (RTO, RPO). Le groupe indique son état de HA à partir des battements de cœur de ses membres. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.backup​

BackupApi backup()

Opérations backup du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : BackupApi. Un BackupApi : Sauvegarde, restauration et reprise après sinistre. Le gestionnaire de sauvegarde et de reprise : cibles et plans de sauvegarde, artefacts de sauvegarde avec leurs vérifications, conservation, tests de restauration, restaurations et reprise après sinistre (sites, plans, exercices, bascules, changements DNS et d'équilibreur de charge). Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.backups​

BackupsApi backups()

Opérations backups du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : BackupsApi. Un BackupsApi : Sauvegarde, restauration et reprise après sinistre. Le gestionnaire de sauvegarde et de reprise : cibles et plans de sauvegarde, artefacts de sauvegarde avec leurs vérifications, conservation, tests de restauration, restaurations et reprise après sinistre (sites, plans, exercices, bascules, changements DNS et d'équilibreur de charge). Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.blueprint​

BlueprintApi blueprint()

Opérations blueprint du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : BlueprintApi. Un BlueprintApi : Blueprints. Un blueprint décrit les services d'un cluster sous une forme portable, pour reconstruire la même plateforme sur un autre cluster : les services avec leur mode, leur méthode, leur configuration non secrète et leurs liaisons, et des groupes de machines (ensembles de composants qui tournent ensemble, avec leur nombre de machines). Sa forme : Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.clusters​

ClustersApi clusters()

Opérations clusters du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : ClustersApi. Le sous-client clusters.

ManagerGroups.configs​

ConfigsApi configs()

Opérations configs du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : ConfigsApi. Un ConfigsApi : Configurations. La configuration d'un service géré : ses paramètres (déclarés par le catalogue avec leurs types, leurs valeurs par défaut et leurs sections), enregistrés en versions numérotées, avec des groupes de configuration qui surchargent des valeurs sur certaines machines. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.connections​

ConnectionsApi connections()

Opérations connections du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : ConnectionsApi. Un ConnectionsApi : Connexions externes. Connexions vers des systèmes extérieurs aux clusters que les services peuvent utiliser : bases de données (PostgreSQL, MySQL, ClickHouse), moteurs de recherche (Elasticsearch, OpenSearch, Qdrant), messagerie (Kafka, NATS, Redis), stockage objet S3, annuaires LDAP et OIDC, SMTP, syslog et simples points d'accès HTTP. Un service se lie à une connexion par ses liaisons bindings (type connection). Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.consoles​

ConsolesApi consoles()

Opérations consoles du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : ConsolesApi. Un ConsolesApi : Consoles des services. Les interfaces web locales des services installés (par exemple la console d'administration de Keycloak ou d'un courtier de messages), ouvertes depuis le Manager. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.dr​

DrApi dr()

Opérations dr du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : DrApi. Un DrApi : Sauvegarde, restauration et reprise après sinistre. Le gestionnaire de sauvegarde et de reprise : cibles et plans de sauvegarde, artefacts de sauvegarde avec leurs vérifications, conservation, tests de restauration, restaurations et reprise après sinistre (sites, plans, exercices, bascules, changements DNS et d'équilibreur de charge). Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.ha​

HaApi ha()

Opérations ha du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : HaApi. Un HaApi : Groupes de haute disponibilité. Un groupe de haute disponibilité décrit comment un composant d'un cluster reste disponible : son mode de HA (single, active_passive, active_active, quorum), son profil (standalone, ha avec au moins 2 réplicas dans 2 domaines de panne, critical-ha avec au moins 3 dans 3), ses membres et leurs domaines de panne, sa politique de bascule et ses objectifs de reprise (RTO, RPO). Le groupe indique son état de HA à partir des battements de cœur de ses membres. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.hosts​

HostsApi hosts()

Opérations hosts du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : HostsApi. Le sous-client hosts.

ManagerGroups.hub​

HubApi hub()

Opérations hub du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : HubApi. Un HubApi : Navin Trusted Hub. Client du Navin Trusted Hub : le Manager récupère (en ligne) ou importe (hors ligne) le document de distribution signé du client, le vérifie, conserve ses cibles (paquets et images approuvés avec leurs empreintes) et alimente le miroir avec les images approuvées. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.kubernetes​

KubernetesApi kubernetes()

Opérations kubernetes du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : KubernetesApi. Un KubernetesApi : Clusters Kubernetes. Un cluster du Manager peut être un cluster Kubernetes plutôt qu'un ensemble de machines. Le Manager lui parle uniquement par son serveur d'API (jamais en SSH) avec un kubeconfig scellé, et y exécute les services du catalogue sous forme de ressources ManagedComponent du groupe platform.navin.ai : il écrit l'état souhaité (application côté serveur, gestionnaire de champs navin-manager), le Navin Platform Operator applique les charts, et toute réponse sur un composant est lue dans le statut de sa ressource. Le Navin Cluster Agent, déployé dans le cluster, reçoit des commandes signées et rend compte. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.lifecycle​

LifecycleApi lifecycle()

Opérations lifecycle du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : LifecycleApi. Un LifecycleApi : Cycle de vie. Le cycle de vie d'un cluster et de ses services après l'installation : profil d'installation et approbations, contrôles préalables, contrôles de vivacité, de disponibilité et de fonctionnement, mises à niveau avec retour arrière et restauration, sauvegardes et restaurations coordonnées, détection des dérives, archives de support expurgées, rapports de recette signés et fiche uniforme de composant. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.mcp​

McpApi mcp()

Opérations mcp du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : McpApi. Un McpApi : Serveurs MCP. Les serveurs MCP (Model Context Protocol) d'un projet de locataire : créés à partir d'un modèle de la bibliothèque Navin ou saisis par un administrateur, testés, et éventuellement hébergés sur le service mcp-host d'un cluster. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.mcpRuntime​

McpRuntimeApi mcpRuntime()

Opérations mcp_runtime du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : McpRuntimeApi. Un McpRuntimeApi : Environnement d'exécution MCP. L'environnement d'exécution MCP d'un cluster Kubernetes : le ToolHive Kubernetes Operator, installé à partir de charts épinglés, et les instances éphémères de serveurs MCP qu'y crée le contrôleur de cycle de vie du Control Plane. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.me​

MeApi me()

Opérations me du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : MeApi. Un MeApi : Mon profil. Le profil de l'utilisateur connecté et ses jetons d'API personnels. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.meta​

MetaApi meta()

Opérations meta du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : MetaApi. Un MetaApi : Version. Métadonnées publiques du Manager. Aucune authentification n'est nécessaire. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.mirror​

MirrorApi mirror()

Opérations mirror du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : MirrorApi. Un MirrorApi : Miroir local. Le miroir local contient les paquets, les images de conteneurs et les paquets Python que les agents installent, afin qu'un site sans accès Internet (ou sous les profils banking-secure et air-gapped) ne télécharge jamais rien de l'extérieur. Il est alimenté par un lot hors ligne décrit par un manifeste. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.navinSm​

NavinSmApi navinSm()

Groupe des opérations Navin SM de l'API du Manager.

Cet élément ne prend aucun paramètre.

Retour : NavinSmApi. Un NavinSmApi : Navin SM. Navin SM est la version de Navin (poste de travail et CLI) qu'une organisation remet à son personnel, avec un fichier qui dirige Navin vers le proxy LiteLLM de l'organisation et ses modèles (Azure, Bedrock, vLLM... derrière LiteLLM), éventuellement de façon exclusive (aucun autre fournisseur permis). Un profil est ce fichier : l'organisation, la passerelle (adresse, authentification, en-têtes, autorité de certification, modèles, modèle par défaut, routes, mode exclusif) et la politique gérée que Navin applique (permissions, liste des serveurs MCP permis, plugins, hooks, contournement des demandes de permission, environnement imposé). Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.network​

NetworkApi network()

Opérations network du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : NetworkApi. Un NetworkApi : Flux réseau. Les flux réseau d'un cluster, calculés à partir de ce que connaît le Manager, pour l'équipe réseau qui les ouvre dans ses groupes de sécurité ou ses pare-feu de machines. Chaque flux appartient à une portée : Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.nodeSecurity​

NodeSecurityApi nodeSecurity()

Opérations node_security du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : NodeSecurityApi. Un NodeSecurityApi : Sécurité des nœuds. La sécurité des machines gérées et de leurs agents de nœud : inventaire, politique SSH, contrôles préalables et amorçage SSH de l'agent, jetons d'enrôlement liés à la clé de l'agent, état de confiance (quarantaine, révocation, rétablissement), mode de gestion, commandes d'agent signées et leurs reçus, mise à jour de l'agent et accès d'urgence SSH (break glass). Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.operations​

OperationsApi operations()

Opérations operations du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : OperationsApi. Un OperationsApi : Opérations. Une opération est l'unité de tout changement fait par le Manager : une installation, un redémarrage, une mise à niveau, une sauvegarde, l'amorçage d'une machine... Elle se compose d'étapes ordonnées ; chaque étape contient des tâches, en général une par machine, exécutées par les agents Navin. Statut d'une opération : pending, running, succeeded, failed ou aborted ; progress va de 0 à 100. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.pki​

PkiApi pki()

Opérations pki du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : PkiApi. Un PkiApi : PKI et certificats. L'autorité de certification du Manager et les certificats qu'elle émet : certificats clients des agents et certificats TLS des composants des services. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.restores​

RestoresApi restores()

Opérations restores du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : RestoresApi. Un RestoresApi : Sauvegarde, restauration et reprise après sinistre. Le gestionnaire de sauvegarde et de reprise : cibles et plans de sauvegarde, artefacts de sauvegarde avec leurs vérifications, conservation, tests de restauration, restaurations et reprise après sinistre (sites, plans, exercices, bascules, changements DNS et d'équilibreur de charge). Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.services​

ServicesApi services()

Opérations services du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : ServicesApi. Le sous-client services.

ManagerGroups.settings​

SettingsApi settings()

Opérations settings du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : SettingsApi. Un SettingsApi : Réglages. Réglages généraux du Manager : nom du site, langue par défaut, valeurs par défaut d'installation (méthode préférée, registre, miroir), SMTP et syslog distant pour les notifications d'alertes (syslog sert aussi à la règle d'audit distant de banking-secure), conservation des données et proxy d'entreprise des machines gérées. Tout utilisateur connecté lit les valeurs non secrètes ; settings:manage (globale) les modifie. Le mot de passe SMTP est relu sous la forme {"secret": true, "set": true|false}. Les changements sont audités (settings.update). Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.stack​

StackApi stack()

Opérations stack du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : StackApi. Un StackApi : Catalogue de la pile. Le catalogue des services que le Manager peut installer (la pile) : chaque service avec ses versions, ses composants, ses méthodes d'installation, ses paramètres, ses dépendances et ses règles de haute disponibilité. Tout utilisateur connecté peut le lire ; aucune permission n'est nécessaire. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.system​

SystemApi system()

Opérations system du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : SystemApi. Un SystemApi : Système. Supervision du Manager par lui-même : santé de la base de données, du moteur, des agents et des tâches planifiées, liste des systèmes d'exploitation pris en charge et découverte de services Prometheus d'un cluster. Permissions : system:read pour la santé, cluster:read pour la découverte de services ; les systèmes pris en charge sont ouverts à tout utilisateur connecté. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.telemetry​

TelemetryApi telemetry()

Opérations telemetry du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : TelemetryApi. Un TelemetryApi : Télémétrie. État de l'export en temps réel des métriques et événements du Manager vers ClickHouse. La plateforme ne livre pas de serveur de tableaux de bord (ADR-0169) : les machines et les services se suivent dans le Manager lui-même et les tables exportées se lisent en SQL. L'export est désactivé tant qu'aucune URL ClickHouse n'est configurée. Tout principal qui lit au moins un cluster (cluster:read, globale ou sur un cluster). Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.users​

UsersApi users()

Opérations users du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : UsersApi. Un UsersApi : Utilisateurs et rôles. Administration des comptes de la console et de leurs attributions de rôle. Opérations de ce groupe de l'API du Navin Manager.

ManagerGroups.vault​

VaultApi vault()

Opérations vault du Platform Manager.

Cet élément ne prend aucun paramètre.

Retour : VaultApi. Un VaultApi : Coffre-fort. Le coffre-fort des administrateurs de la plateforme : les identifiants des services de la plateforme. Une entrée est un nom de service, son URL, un identifiant de connexion, un mot de passe et une clé d'API ou clé secrète. Seul le nom est conservé en clair ; URL, identifiant, mot de passe et clé forment un document scellé en AES-256-GCM avec la clé maîtresse. Les listes et les fiches ne portent jamais le mot de passe ni la clé (has_password, has_api_key) ; POST .../reveal les renvoie et est audité, l'audit ne gardant que le nom du service, jamais une valeur. Opérations de ce groupe de l'API du Navin Manager.

Classe ManagerGroups.AgentTemplatesApi​

Gabarits d'agents. Le registre des gabarits d'agents (Service Templates des produits Navin, par exemple l'Agent RAG Navin Enterprise) : chaque gabarit avec son nom, son éditeur, sa version, son statut et le service du catalogue qui l'installe. Un gabarit n'est published que si ce service existe dans le catalogue et que le gabarit a été publié, par la version livrée (statut published) ou sur ce Manager par un administrateur (POST .../publish, la validation du client : la définition de service rejoint le catalogue de ce Manager) ; sinon reason indique pourquoi il ne peut pas être déployé et publishable s'il peut être publié ici. La lecture est ouverte à tout utilisateur connecté, comme le catalogue de la pile ; publier et retirer demandent agent_templates:publish. Opérations de ce groupe de l'API du Navin Manager.

AgentTemplatesApi.agentTemplate​

JsonNode agentTemplate(String templateId)

Lire un gabarit d'agent. Un gabarit d'agent par son identifiant : nom et description (fr et en), éditeur, version, statut, service du catalogue, chemins de la documentation et des sources, composants, published, reason, publication, publishable et publish_blocker. Tout utilisateur connecté ; 404 pour un gabarit inconnu.

Route : /api/v1/agent-templates/{template_id} (GET).

NomTypeDéfautRequisDescription
templateIdStringouiIdentifiant du gabarit d'agent, égal au nom de son fichier descripteur.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un gabarit d'agent ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AgentTemplatesApi.agentTemplates​

JsonNode agentTemplates()

Lister les gabarits d'agents. Chaque gabarit d'agent du registre, trié par identifiant, avec published calculé d'après le catalogue chargé et les publications de ce Manager, reason (fr et en) quand il ne peut pas être déployé, publication (version, auteur, date) quand il a été publié ici, publishable et publish_blocker. Renvoie items et count. Tout utilisateur connecté.

Route : /api/v1/agent-templates (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les gabarits d'agents ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AgentTemplatesApi.publishAgentTemplate​

JsonNode publishAgentTemplate(String templateId)

Valider et publier un gabarit d'agent. La validation du client : la définition de service et les gabarits de l'agent sont vérifiés par le chargeur du catalogue avec tout le catalogue (sur une copie de travail, rien n'est écrit si une vérification échoue), puis copiés sous published_templates_dir ; le service rejoint le catalogue de ce Manager, le gabarit répond published: true et son bouton Déployer ouvre l'assistant d'installation. Publier de nouveau remplace les fichiers par les sources actuelles. Renvoie le gabarit. Permission agent_templates:publish ; audité en agent_template.publish. Erreurs : 404 agent_template_unknown, 409 agent_template_not_publishable (prévu ou en développement), 409 agent_template_sources_missing, 409 agent_template_already_published (service livré avec le catalogue), 422 agent_template_invalid (les problèmes trouvés sont dans details.problems).

Route : /api/v1/agent-templates/{template_id}/publish (POST).

NomTypeDéfautRequisDescription
templateIdStringouiIdentifiant du gabarit d'agent.

Retour : JsonNode. Réponse JSON décodée de l'opération « Valider et publier un gabarit d'agent ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AgentTemplatesApi.withdrawAgentTemplate​

JsonNode withdrawAgentTemplate(String templateId)

Retirer la publication d'un gabarit d'agent. Supprime la définition de service et les gabarits publiés sur ce Manager ainsi que l'enregistrement de publication : le service quitte le catalogue et le gabarit attend de nouveau sa validation. Refusé tant qu'une instance du service est installée dans un cluster (409 agent_template_in_use, les instances sont dans details.instances). Renvoie le gabarit. Permission agent_templates:publish ; audité en agent_template.unpublish. Erreurs : 404 agent_template_unknown, 404 agent_template_not_published.

Route : /api/v1/agent-templates/{template_id}/publication (DELETE).

NomTypeDéfautRequisDescription
templateIdStringouiIdentifiant du gabarit d'agent.

Retour : JsonNode. Réponse JSON décodée de l'opération « Retirer la publication d'un gabarit d'agent ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.AlertsApi​

Alertes et notifications. Alertes levées par le Manager à partir de ses définitions d'alertes (machine hors ligne, disque plein, service en mauvaise santé, certificat proche de l'expiration...), et cibles de notification qui les reçoivent. Opérations de ce groupe de l'API du Navin Manager.

AlertsApi.ackAlert​

JsonNode ackAlert(String alertId, Object body)

Acquitter une alerte. Enregistre qui a acquitté l'alerte, quand, et la note ; l'alerte reste ouverte jusqu'à la disparition de sa condition. Renvoie l'alerte. Permission alerts:manage sur son cluster. Audité en alert.ack.

Route : /api/v1/alerts/{alert_id}/ack (POST).

NomTypeDéfautRequisDescription
alertIdStringouiIdentifiant de l'alerte.
bodyObjectouiNote facultative.

Retour : JsonNode. Réponse JSON décodée de l'opération « Acquitter une alerte ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AlertsApi.createTarget​

JsonNode createTarget(Object body)

Ajouter une cible de notification. Crée une cible et la renvoie (201). Une cible e-mail exige config.to, une cible webhook config.url (http:// ou https://) ; une cible syslog utilise le serveur syslog des réglages. Permission alerts:manage ; 422 notification_target_invalid. Audité en notification_target.create.

Route : /api/v1/notification-targets (POST).

NomTypeDéfautRequisDescription
bodyObjectouiNom, type, configuration et sévérité minimale de la cible.

Retour : JsonNode. Réponse JSON décodée de l'opération « Ajouter une cible de notification ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AlertsApi.deleteTarget​

JsonNode deleteTarget(String targetId)

Supprimer une cible de notification. Supprime la cible. Répond 204. Permission alerts:manage ; 404 notification_target_not_found. Audité en notification_target.delete.

Route : /api/v1/notification-targets/{target_id} (DELETE).

NomTypeDéfautRequisDescription
targetIdStringouiIdentifiant de la cible de notification.

Retour : JsonNode. Réponse JSON décodée de l'opération « Supprimer une cible de notification ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AlertsApi.getAlert​

JsonNode getAlert(String alertId)

Lire une alerte. Renvoie une alerte avec l'historique history de ses changements d'état (les 200 derniers : ts, from_state, to_state, value, text). Permission alerts:read sur son cluster ; 404 alert_not_found.

Route : /api/v1/alerts/{alert_id} (GET).

NomTypeDéfautRequisDescription
alertIdStringouiIdentifiant de l'alerte.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire une alerte ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AlertsApi.listAlerts​

JsonNode listAlerts(String clusterId, Map<String, ?> query)

Lister les alertes d'un cluster. Alertes du cluster, de la dernière modifiée à la plus ancienne (500 au plus) : definition, label, fingerprint, machine, service, composant, state, text, value, première et dernière observation, acquittement et résolution. Alertes ouvertes uniquement, sauf avec include_resolved. Permission alerts:read.

Route : /api/v1/clusters/{cluster_id}/alerts (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les alertes d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AlertsApi.listAlerts​

JsonNode listAlerts(String clusterId)

Lister les alertes d'un cluster. Alertes du cluster, de la dernière modifiée à la plus ancienne (500 au plus) : definition, label, fingerprint, machine, service, composant, state, text, value, première et dernière observation, acquittement et résolution. Alertes ouvertes uniquement, sauf avec include_resolved. Permission alerts:read.

Route : /api/v1/clusters/{cluster_id}/alerts (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les alertes d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AlertsApi.listDefinitions​

JsonNode listDefinitions()

Lister les définitions d'alertes. Chaque définition avec son name, scope, kind, label, description, enabled, interval_s, ses seuils warning et critical et ses params. Permission alerts:read.

Route : /api/v1/alert-definitions (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les définitions d'alertes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AlertsApi.listTargets​

JsonNode listTargets()

Lister les cibles de notification. Chaque cible avec son kind, sa config, min_severity, enabled et la présence d'un secret HMAC (jamais sa valeur). Permission alerts:manage.

Route : /api/v1/notification-targets (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les cibles de notification ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AlertsApi.patchDefinition​

JsonNode patchDefinition(String definitionId, Object body)

Ajuster une définition d'alerte. Active ou désactive une définition et modifie ses seuils ou son intervalle d'évaluation ; un champ omis est conservé. Renvoie la définition. Permission alerts:manage ; 404 alert_definition_not_found. Audité en alert_definition.update.

Route : /api/v1/alert-definitions/{definition_id} (PATCH).

NomTypeDéfautRequisDescription
definitionIdStringouiIdentifiant de la définition d'alerte.
bodyObjectouiChamps de la définition à modifier.

Retour : JsonNode. Réponse JSON décodée de l'opération « Ajuster une définition d'alerte ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AlertsApi.patchTarget​

JsonNode patchTarget(String targetId, Object body)

Modifier une cible de notification. Modifie les champs fournis et renvoie la cible. Permission alerts:manage. Erreurs : 404 notification_target_not_found, 422 notification_target_invalid. Audité en notification_target.update.

Route : /api/v1/notification-targets/{target_id} (PATCH).

NomTypeDéfautRequisDescription
targetIdStringouiIdentifiant de la cible de notification.
bodyObjectouiChamps de la cible à modifier.

Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier une cible de notification ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AlertsApi.testTarget​

JsonNode testTarget(String targetId)

Envoyer une notification de test. Envoie immédiatement un message de test (état warning, empreinte test) à la cible et renvoie {"ok": true}. Permission alerts:manage. Erreurs : 404 notification_target_not_found, 502 notification_failed (la cible a refusé ou est injoignable). Audité en notification_target.test.

Route : /api/v1/notification-targets/{target_id}/test (POST).

NomTypeDéfautRequisDescription
targetIdStringouiIdentifiant de la cible de notification.

Retour : JsonNode. Réponse JSON décodée de l'opération « Envoyer une notification de test ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.AuditApi​

Audit. Le journal d'audit du Manager : chaque changement, connexion, refus et lecture sensible, avec l'acteur (utilisateur, jeton d'API, agent ou système), l'action (par exemple service.install), la cible, le cluster, le résultat (success, failure, denied), l'adresse du client et des détails. Les événements sont chaînés : chacun porte l'empreinte du précédent, si bien qu'un événement modifié ou supprimé rompt la chaîne. Opérations de ce groupe de l'API du Navin Manager.

AuditApi.export​

JsonNode export(Map<String, ?> query)

Exporter le journal d'audit. Diffuse tous les événements de la période dans l'ordre des séquences sous forme de fichier à télécharger : audit.ndjson (un objet JSON par ligne) ou audit.csv (les cellules qu'un tableur lirait comme une formule sont préfixées d'une apostrophe). Permission audit:read ; 422 export_format_invalid pour un autre format. Audité en audit.export.

Route : /api/v1/audit/export (GET).

NomTypeDéfautRequisDescription
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Exporter le journal d'audit ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuditApi.export​

JsonNode export()

Exporter le journal d'audit. Diffuse tous les événements de la période dans l'ordre des séquences sous forme de fichier à télécharger : audit.ndjson (un objet JSON par ligne) ou audit.csv (les cellules qu'un tableur lirait comme une formule sont préfixées d'une apostrophe). Permission audit:read ; 422 export_format_invalid pour un autre format. Audité en audit.export.

Route : /api/v1/audit/export (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Exporter le journal d'audit ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuditApi.listAudit​

Page<JsonNode> listAudit(Map<String, ?> query)

Rechercher dans le journal d'audit. Événements qui correspondent à tous les filtres donnés, du plus récent au plus ancien : seq, id, ts, actor_type, actor_id, actor_name, action, target_type, target_id, cluster_id, outcome, ip, details, prev_hash, hash. Paginé avec limit et cursor. Permission audit:read.

Route : /api/v1/audit (GET).

NomTypeDéfautRequisDescription
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : Page<JsonNode>. Réponse JSON décodée de l'opération « Rechercher dans le journal d'audit ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuditApi.listAudit​

Page<JsonNode> listAudit()

Rechercher dans le journal d'audit. Événements qui correspondent à tous les filtres donnés, du plus récent au plus ancien : seq, id, ts, actor_type, actor_id, actor_name, action, target_type, target_id, cluster_id, outcome, ip, details, prev_hash, hash. Paginé avec limit et cursor. Permission audit:read.

Route : /api/v1/audit (GET).

Cet élément ne prend aucun paramètre.

Retour : Page<JsonNode>. Réponse JSON décodée de l'opération « Rechercher dans le journal d'audit ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuditApi.verify​

JsonNode verify()

Vérifier la chaîne d'empreintes du journal d'audit. Recalcule l'empreinte de chaque événement et contrôle le lien avec le précédent. Renvoie valid, le nombre d'événements contrôlés checked et first_broken_seq (nul quand la chaîne est intacte). Permission audit:read. Audité en audit.verify (résultat failure quand la chaîne est rompue).

Route : /api/v1/audit/verify (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Vérifier la chaîne d'empreintes du journal d'audit ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.AuthApi​

Authentification. Connexion à la console et déconnexion : fournisseurs d'identité, configuration initiale, connexion locale et LDAP, second facteur (TOTP), changement de mot de passe, session et connexion OIDC. Opérations de ce groupe de l'API du Navin Manager.

AuthApi.providers​

JsonNode providers()

Lister les méthodes de connexion. Point d'accès public utilisé par la page de connexion. Renvoie local (toujours vrai), ldap (enabled, name), oidc (les fournisseurs activés, id et name), setup_required (vrai tant qu'aucun utilisateur n'existe : appelez POST /auth/setup) et mfa (le second facteur TOTP est-il activé sur ce Manager).

Route : /api/v1/auth/providers (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les méthodes de connexion ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuthApi.session​

JsonNode session()

Lire la session courante. Renvoie l'utilisateur authentifié (user), ses permissions effectives (permissions.global et permissions.clusters par identifiant de cluster), le csrf_token de la session (nul pour un jeton d'API) et expires_at (de la session ou du jeton). Tout appelant authentifié ; 401 sinon.

Route : /api/v1/auth/session (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la session courante ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.AuthConfigApi​

Fournisseurs d'identité et politique de sécurité. Configuration de la connexion des utilisateurs : l'annuaire LDAP, les fournisseurs OIDC et la politique de sécurité (mots de passe, verrouillage, délais de session, rôles qui exigent la MFA). Opérations de ce groupe de l'API du Navin Manager.

AuthConfigApi.createOidc​

JsonNode createOidc(Object body)

Ajouter un fournisseur OIDC. Crée un fournisseur et le renvoie (201). Les portées doivent comprendre openid. Permission auth:manage. Erreurs : 409 provider_name_taken, 422 oidc_config_invalid, 422 role_invalid. Audité.

Route : /api/v1/auth-config/oidc (POST).

NomTypeDéfautRequisDescription
bodyObjectouiRéglages du fournisseur.

Retour : JsonNode. Réponse JSON décodée de l'opération « Ajouter un fournisseur OIDC ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuthConfigApi.deleteOidc​

JsonNode deleteOidc(String providerId)

Supprimer un fournisseur OIDC. Supprime le fournisseur ; ses utilisateurs ne peuvent plus se connecter par son intermédiaire. Répond 204. Permission auth:manage ; 404 oidc_provider_not_found. Audité en auth_config.oidc_delete.

Route : /api/v1/auth-config/oidc/{provider_id} (DELETE).

NomTypeDéfautRequisDescription
providerIdStringouiIdentifiant du fournisseur OIDC.

Retour : JsonNode. Réponse JSON décodée de l'opération « Supprimer un fournisseur OIDC ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuthConfigApi.getLdap​

JsonNode getLdap()

Lire la configuration LDAP. Renvoie les réglages LDAP avec leurs valeurs par défaut, le mot de passe de liaison sous la forme {"secret": true, "set": ...} et les correspondances de rôles. Permission auth:manage.

Route : /api/v1/auth-config/ldap (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la configuration LDAP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuthConfigApi.getOidc​

JsonNode getOidc(String providerId)

Lire un fournisseur OIDC. Renvoie un fournisseur avec ses réglages et ses correspondances. Permission auth:manage ; 404 oidc_provider_not_found.

Route : /api/v1/auth-config/oidc/{provider_id} (GET).

NomTypeDéfautRequisDescription
providerIdStringouiIdentifiant du fournisseur OIDC.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un fournisseur OIDC ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuthConfigApi.getPolicy​

JsonNode getPolicy()

Lire la politique de sécurité. Renvoie la politique courante, valeurs par défaut comprises : longueur minimale de mot de passe 12, historique 5, pas d'âge maximal, verrouillage après 5 échecs pendant 15 minutes, sessions de 30 minutes d'inactivité et 12 heures au plus, MFA exigée pour admin et security_admin. Permission auth:manage.

Route : /api/v1/auth-config/policy (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la politique de sécurité ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuthConfigApi.listOidc​

JsonNode listOidc()

Lister les fournisseurs OIDC. Tous les fournisseurs OIDC, activés ou non, avec leurs réglages et leurs correspondances ; les secrets clients ne sont jamais renvoyés. Permission auth:manage.

Route : /api/v1/auth-config/oidc (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les fournisseurs OIDC ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuthConfigApi.putLdap​

JsonNode putLdap(Object body)

Enregistrer la configuration LDAP. Remplace les réglages LDAP et les correspondances de rôles et les renvoie. Chaque URL doit être protégée par TLS (ldaps://, ou ldap:// avec start_tls), au moins une URL est nécessaire quand l'annuaire est activé, les filtres doivent être équilibrés en parenthèses. Permission auth:manage. Erreurs : 422 ldap_config_invalid (avec details.problems), 422 role_invalid. Audité en auth_config.ldap.

Route : /api/v1/auth-config/ldap (PUT).

NomTypeDéfautRequisDescription
bodyObjectouiRéglages LDAP complets.

Retour : JsonNode. Réponse JSON décodée de l'opération « Enregistrer la configuration LDAP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuthConfigApi.putOidc​

JsonNode putOidc(String providerId, Object body)

Modifier un fournisseur OIDC. Remplace les réglages et les correspondances du fournisseur et le renvoie ; le secret client est conservé sauf si un nouveau est envoyé. Permission auth:manage. Erreurs : 404 oidc_provider_not_found, 409 provider_name_taken, 422 oidc_config_invalid. Audité.

Route : /api/v1/auth-config/oidc/{provider_id} (PUT).

NomTypeDéfautRequisDescription
providerIdStringouiIdentifiant du fournisseur OIDC.
bodyObjectouiRéglages complets du fournisseur.

Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier un fournisseur OIDC ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuthConfigApi.putPolicy​

JsonNode putPolicy(Object body)

Enregistrer la politique de sécurité. Remplace toute la politique et la renvoie. Elle s'applique au prochain changement de mot de passe, à la prochaine connexion et au prochain contrôle de session. Permission auth:manage ; 422 role_invalid pour un rôle inconnu dans mfa_required_roles. Audité en auth_config.policy.

Route : /api/v1/auth-config/policy (PUT).

NomTypeDéfautRequisDescription
bodyObjectouiTous les champs de la politique.

Retour : JsonNode. Réponse JSON décodée de l'opération « Enregistrer la politique de sécurité ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuthConfigApi.testLdap​

JsonNode testLdap(Object body)

Tester la configuration LDAP. Se lie avec les réglages enregistrés et, quand un compte de test est fourni, recherche l'utilisateur, vérifie son mot de passe et lit ses groupes. Renvoie ok, bind, user_found, groups et error_code. Rien n'est modifié. Permission auth:manage ; 404 ldap_not_configured. Audité en auth_config.ldap_test.

Route : /api/v1/auth-config/ldap/test (POST).

NomTypeDéfautRequisDescription
bodyObjectouiCompte de test facultatif.

Retour : JsonNode. Réponse JSON décodée de l'opération « Tester la configuration LDAP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AuthConfigApi.testOidc​

JsonNode testOidc(String providerId)

Tester un fournisseur OIDC. Lit le document de découverte de l'émetteur et ses clés de signature. Renvoie ok, issuer, jwks_keys (nombre de clés) et error_code. Permission auth:manage ; 404 oidc_provider_not_found. Audité en auth_config.oidc_test.

Route : /api/v1/auth-config/oidc/{provider_id}/test (POST).

NomTypeDéfautRequisDescription
providerIdStringouiIdentifiant du fournisseur OIDC.

Retour : JsonNode. Réponse JSON décodée de l'opération « Tester un fournisseur OIDC ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.AvailabilityApi​

Groupes de haute disponibilité. Un groupe de haute disponibilité décrit comment un composant d'un cluster reste disponible : son mode de HA (single, active_passive, active_active, quorum), son profil (standalone, ha avec au moins 2 réplicas dans 2 domaines de panne, critical-ha avec au moins 3 dans 3), ses membres et leurs domaines de panne, sa politique de bascule et ses objectifs de reprise (RTO, RPO). Le groupe indique son état de HA à partir des battements de cœur de ses membres. Opérations de ce groupe de l'API du Navin Manager.

AvailabilityApi.createGroup​

JsonNode createGroup(Object body)

Créer un groupe de haute disponibilité. Déclare un groupe et ses membres et le renvoie (201). Le profil doit être satisfait par desired_replicas et fault_domains, deux membres ne peuvent pas partager une machine. Permission cluster:manage sur le cluster. Erreurs : 422 ha_profile_unmet, 422 ha_mode_unsupported, 422 ha_members_same_host, 404 cluster_not_found, 404 host_not_found. Audité en ha_group.create.

Route : /api/v1/ha-groups (POST).

NomTypeDéfautRequisDescription
bodyObjectouiLe groupe, sa politique et ses membres.

Retour : JsonNode. Réponse JSON décodée de l'opération « Créer un groupe de haute disponibilité ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AvailabilityApi.getGroup​

JsonNode getGroup(String groupId)

Lire un groupe de haute disponibilité. Renvoie le groupe avec ses membres, son état de HA et son dernier test. Permission cluster:read sur son cluster ; 404 ha_group_not_found.

Route : /api/v1/ha-groups/{group_id} (GET).

NomTypeDéfautRequisDescription
groupIdStringouiIdentifiant du groupe de HA.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un groupe de haute disponibilité ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AvailabilityApi.haModes​

JsonNode haModes()

Lister les modes de déploiement et leur prise en charge. Chaque mode de déploiement avec supported, ha_possible et la raison reason dans les deux langues. Tout utilisateur connecté.

Route : /api/v1/ha-modes (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les modes de déploiement et leur prise en charge ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AvailabilityApi.listGroups​

JsonNode listGroups()

Lister les groupes de haute disponibilité. Groupes de chaque cluster que l'appelant peut lire (cluster:read), triés par nom, chacun avec ses membres, son état de HA et son dernier test.

Route : /api/v1/ha-groups (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les groupes de haute disponibilité ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AvailabilityApi.operations​

JsonNode operations(String groupId)

Lire l'historique des bascules d'un groupe. Renvoie test_runs (statut, jeton de fencing, RTO et RPO observés en secondes, preuves, horaires), fencing_operations (membre, méthode, vérification, jeton) et les 200 derniers events. Permission cluster:read.

Route : /api/v1/ha-groups/{group_id}/operations (GET).

NomTypeDéfautRequisDescription
groupIdStringouiIdentifiant du groupe de HA.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire l'historique des bascules d'un groupe ».

Erreurs levées : les erreurs typées du transport (Erreurs).

AvailabilityApi.testFailover​

JsonNode testFailover(String groupId)

Lancer un test de bascule. Prend le bail de bascule du groupe, enregistre un test avec un nouveau jeton de fencing et, quand le groupe est lié à des composants installés, lance la bascule. Répond 202 avec run_id, status, fencing_token, executed et les opérations lancées operations. Permission services:operate. Erreurs : 409 ha_operation_locked (une autre bascule détient le bail), 409 ha_client_managed_refused. Audité en ha_group.test_failover.

Route : /api/v1/ha-groups/{group_id}/test-failover (POST).

NomTypeDéfautRequisDescription
groupIdStringouiIdentifiant du groupe de HA.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lancer un test de bascule ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.BackupApi​

Sauvegarde, restauration et reprise après sinistre. Le gestionnaire de sauvegarde et de reprise : cibles et plans de sauvegarde, artefacts de sauvegarde avec leurs vérifications, conservation, tests de restauration, restaurations et reprise après sinistre (sites, plans, exercices, bascules, changements DNS et d'équilibreur de charge). Opérations de ce groupe de l'API du Navin Manager.

BackupApi.approveExercise​

JsonNode approveExercise(String exerciseId)

Approuver un exercice ou une bascule de reprise. Approuve la demande ; l'approbateur ne doit pas être le demandeur. Permission dr:manage. Erreurs : 403 restore_self_approval, 404 dr_exercise_not_found. Audité en dr.approve.

Route : /api/v1/dr-exercises/{exercise_id}/approve (POST).

NomTypeDéfautRequisDescription
exerciseIdStringouiIdentifiant de l'exercice ou de la demande de bascule.

Retour : JsonNode. Réponse JSON décodée de l'opération « Approuver un exercice ou une bascule de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.approveRestore​

JsonNode approveRestore(String planId)

Approuver un plan de restauration. Ajoute l'approbation de l'appelant ; deux approbations par des personnes autres que le demandeur sont nécessaires. Permission restore:execute. Erreurs : 403 restore_self_approval, 409 restore_not_approvable. Audité en restore.approve.

Route : /api/v1/restores/{plan_id}/approve (POST).

NomTypeDéfautRequisDescription
planIdStringouiIdentifiant du plan de restauration.

Retour : JsonNode. 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).

BackupApi.backupConsistency​

JsonNode backupConsistency(Object body)

Contrôler la cohérence d'une cible de sauvegarde. Compare les lignes de la base, les objets stockés et le registre des artefacts d'une cible filesystem (son bucket est le répertoire racine). Avec reconcile, les lignes dont l'objet a disparu sont marquées missing et les objets orphelins sont déplacés dans un répertoire de quarantaine, jamais supprimés. Permission backup:manage. Erreurs : 404 backup_target_not_found, 422 backup_provider_unsupported (autre que filesystem).

Route : /api/v1/backups/consistency (POST).

NomTypeDéfautRequisDescription
bodyObjectouiCible, empreintes du registre et indicateur de réconciliation.

Retour : JsonNode. Réponse JSON décodée de l'opération « Contrôler la cohérence d'une cible de sauvegarde ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.completeExercise​

JsonNode completeExercise(String exerciseId, Object body)

Clôturer un exercice de reprise avec ses mesures. Enregistre le RPO et le RTO observés, le résultat et les preuves d'un exercice ou d'une bascule approuvés. Permission dr:manage ; 409 dr_not_approved. Audité en dr.complete.

Route : /api/v1/dr-exercises/{exercise_id}/complete (POST).

NomTypeDéfautRequisDescription
exerciseIdStringouiIdentifiant de l'exercice ou de la demande de bascule.
bodyObjectouiMesures observées, résultat et preuves.

Retour : JsonNode. Réponse JSON décodée de l'opération « Clôturer un exercice de reprise avec ses mesures ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.createDrPlan​

JsonNode createDrPlan(Object body)

Créer un plan de reprise. Crée un plan entre un site primaire et un site secondaire (créés s'ils sont inconnus) et le renvoie (201). Permission dr:manage. Erreurs : 422 dr_mode_invalid, 422 dr_same_site. Audité en dr.plan.create.

Route : /api/v1/dr-plans (POST).

NomTypeDéfautRequisDescription
bodyObjectouiNom, mode, sites, objectifs et séquence du plan.

Retour : JsonNode. Réponse JSON décodée de l'opération « Créer un plan de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.createPlan​

JsonNode createPlan(Object body)

Créer un plan de sauvegarde. Crée un plan de sauvegarde sur une cible et le renvoie (201). Avec immutability_required, la cible doit avoir des capacités de verrouillage d'objet et de rétention vérifiées. Permission backup:manage. Erreurs : 404 backup_target_not_found, 409 backup_worm_unsupported. Audité en backup.plan.create.

Route : /api/v1/backup-plans (POST).

NomTypeDéfautRequisDescription
bodyObjectouiCible, périmètre, calendrier, chiffrement et conservation du plan.

Retour : JsonNode. Réponse JSON décodée de l'opération « Créer un plan de sauvegarde ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.createTarget​

JsonNode createTarget(Object body)

Déclarer une cible de sauvegarde. Crée une cible et la renvoie (201). Permission backup:manage ; 422 backup_provider_unsupported. Audité en backup.target.create.

Route : /api/v1/backup-targets (POST).

NomTypeDéfautRequisDescription
bodyObjectouiFournisseur, emplacement et capacités de la cible.

Retour : JsonNode. Réponse JSON décodée de l'opération « Déclarer une cible de sauvegarde ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.declareTraffic​

JsonNode declareTraffic(String planId, Object body)

Déclarer une bascule de trafic d'un plan de reprise. Déclare (ou remplace) un enregistrement DNS ou un équilibreur de charge du plan avec sa valeur par site et le contrôle de santé qui doit réussir avant une bascule (201). Permission dr:manage. Erreurs : 422 dr_traffic_invalid, 404 dr_plan_not_found. Audité en dr.traffic.declare.

Route : /api/v1/dr-plans/{plan_id}/traffic (POST).

NomTypeDéfautRequisDescription
planIdStringouiIdentifiant du plan de reprise.
bodyObjectouiType, nom et spécification de la bascule.

Retour : JsonNode. Réponse JSON décodée de l'opération « Déclarer une bascule de trafic d'un plan de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.deleteBackup​

JsonNode deleteBackup(String backupId)

Supprimer une sauvegarde. Supprime un artefact de sauvegarde dont la durée de conservation est écoulée. Permission backup:manage. Erreurs : 409 backup_retention_active (avant expires_at), 404 backup_artifact_not_found. Audité en backup.delete.

Route : /api/v1/backups/{backup_id} (DELETE).

NomTypeDéfautRequisDescription
backupIdStringouiIdentifiant de l'artefact de sauvegarde.

Retour : JsonNode. Réponse JSON décodée de l'opération « Supprimer une sauvegarde ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.dryRunRestore​

JsonNode dryRunRestore(String planId)

Essayer à blanc un plan de restauration. Contrôle l'empreinte, le déchiffrement et la compatibilité sans écrire dans la destination, et renvoie les approbateurs enregistrés. Pour une destination nommée, contrôle aussi son identité, son vide et son rôle restreint (checks.destination, checks.executor). Une simulation réussie n'autorise pas l'exécution : deux approbations restent nécessaires. Permission restore:execute. Audité en restore.dry_run.

Route : /api/v1/restores/{plan_id}/dry-run (POST).

NomTypeDéfautRequisDescription
planIdStringouiIdentifiant du plan de restauration.

Retour : JsonNode. Réponse JSON décodée de l'opération « Essayer à blanc un plan de restauration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.enforceRetention​

JsonNode enforceRetention()

Appliquer la conservation maintenant. Retire les artefacts dont expires_at est dépassé et les marque expired. Renvoie expired. Permission backup:manage. Audité en backup.expire.

Route : /api/v1/backups/retention/enforce (POST).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Appliquer la conservation maintenant ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.executeRestore​

JsonNode executeRestore(String planId)

Exécuter une restauration approuvée. Exécute un plan approuvé avec destination : l'état executing et un jeton durable execution_token sont validés avant toute écriture. L'artefact est contrôlé à nouveau (taille, empreinte, déchiffrement), restauré par pg_restore --single-transaction avec le rôle restreint, puis ses lignes sont relues et comparées à l'inventaire (result.inventory, rows, tables). Succès : executed. Échec enregistré : failed, rollback_performed: false, HTTP 502 restore_execution_failed ; le champ imbriqué result.error précise la cause, notamment backup_corrupted, restore_target_busy ou restore_execution_timeout. Une interruption du processus peut laisser executing, à inspecter manuellement. Aucun retour arrière ni rejeu automatique. Les refus avant exécution incluent 409 restore_not_approved, 501 restore_executor_unavailable et 409 restore_target_changed. Permission restore:execute. Audité en restore.execute.started et restore.execute.

Route : /api/v1/restores/{plan_id}/execute (POST).

NomTypeDéfautRequisDescription
planIdStringouiIdentifiant du plan de restauration.

Retour : JsonNode. Réponse JSON décodée de l'opération « Exécuter une restauration approuvée ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.getRestore​

JsonNode getRestore(String planId)

Lire un plan de restauration. Renvoie le plan avec sa compatibilité, ses étapes, ses approbateurs approvers et required_approvals (2). Permission backup:read ; 404 restore_plan_not_found.

Route : /api/v1/restores/{plan_id} (GET).

NomTypeDéfautRequisDescription
planIdStringouiIdentifiant du plan de restauration.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un plan de restauration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.listBackups​

JsonNode listBackups()

Lister les sauvegardes. Les 200 derniers artefacts de sauvegarde, du plus récent au plus ancien : emplacement, SHA-256, taille, versions, expiration, plan et résultat de leur dernière vérification. Permission backup:read.

Route : /api/v1/backups (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les sauvegardes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.listDrPlans​

JsonNode listDrPlans()

Lister les plans de reprise. Chaque plan de reprise après sinistre avec son mode, ses sites primaire et secondaire, ses objectifs de RPO et RTO et sa séquence. Permission backup:read.

Route : /api/v1/dr-plans (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les plans de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.listExercises​

JsonNode listExercises()

Lister les exercices et bascules de reprise. Les 200 derniers exercices et demandes de bascule avec leur rapport : statut, demandeur, approbateur, RPO et RTO observés comparés aux objectifs, preuves. Permission backup:read.

Route : /api/v1/dr-exercises (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les exercices et bascules de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.listJobs​

JsonNode listJobs()

Lister les tâches de sauvegarde. Les 200 dernières tâches de sauvegarde, de la plus récente à la plus ancienne, avec le nom de leur plan, leur statut et leur erreur. Permission backup:read.

Route : /api/v1/backup-jobs (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. 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).

BackupApi.listPlans​

JsonNode listPlans()

Lister les plans de sauvegarde. Chaque plan de sauvegarde, et alerts : les plans dont la dernière sauvegarde réussie est plus ancienne que l'intervalle plus la fenêtre, ou dont la dernière tâche a échoué. Permission backup:read.

Route : /api/v1/backup-plans (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. 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).

BackupApi.listRestoreTargets​

JsonNode listRestoreTargets()

Lister les destinations de restauration. Les destinations de restauration déclarées par l'opérateur dans le réglage restore_targets : nom, environnement, type (pg_dump) et versions déclarées. Les chaînes de connexion et les noms des variables secrètes ne quittent jamais le serveur. Permission restore:execute.

Route : /api/v1/restore-targets (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les destinations de restauration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.listRestoreTests​

JsonNode listRestoreTests()

Lister les tests de restauration. Les 200 derniers tests de restauration avec leur résultat et leur rapport signé. Permission backup:read.

Route : /api/v1/restore-tests (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les tests de restauration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.listRestores​

JsonNode listRestores()

Lister les plans de restauration. Les 200 derniers plans de restauration avec leur statut et leur nombre d'approbations. Permission backup:read.

Route : /api/v1/restores (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. 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).

BackupApi.listSites​

JsonNode listSites()

Lister les sites de reprise. Sites connus des plans de reprise après sinistre, avec leur rôle (primary ou secondary). Les sites sont créés par les plans. Permission backup:read.

Route : /api/v1/dr-sites (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les sites de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.listTraffic​

JsonNode listTraffic(String planId)

Lister les bascules de trafic d'un plan de reprise. Enregistrements DNS et équilibreurs de charge déclarés pour le plan, avec leur valeur par site et leur contrôle de santé. Permission backup:read.

Route : /api/v1/dr-plans/{plan_id}/traffic (GET).

NomTypeDéfautRequisDescription
planIdStringouiIdentifiant du plan de reprise.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les bascules de trafic d'un plan de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.listVerifications​

JsonNode listVerifications(String backupId)

Lister les vérifications d'une sauvegarde. Chaque vérification de l'artefact, de la plus récente à la plus ancienne, avec son résultat outcome (passed ou failed) et ses détails (empreinte attendue et observée, taille, raison). Permission backup:read.

Route : /api/v1/backups/{backup_id}/verifications (GET).

NomTypeDéfautRequisDescription
backupIdStringouiIdentifiant de l'artefact de sauvegarde.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les vérifications d'une sauvegarde ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.planRestore​

JsonNode planRestore(Object body)

Planifier une restauration. Crée un plan de restauration pour un artefact de sauvegarde : contrôle la compatibilité des versions sauvegardées avec les versions cibles (même version majeure) et liste les étapes (vérification de l'artefact, vérification de la destination, restauration, vérification du résultat). Avec target_name, l'artefact doit être un pg_dump disponible avec un inventaire verification_inventory et la destination une base PostgreSQL vide appartenant à un rôle restreint ; son identité est figée dans target_snapshot. Renvoie le plan (201). Permission restore:execute. Erreurs : 404 backup_artifact_not_found, 501 restore_executor_unavailable (destination inconnue), 409 restore_target_invalid, 409 restore_target_not_empty, 422 restore_inventory_required. Audité en restore.plan.

Route : /api/v1/restores/plan (POST).

NomTypeDéfautRequisDescription
bodyObjectouiArtefact, environnement, destination et versions cibles.

Retour : JsonNode. Réponse JSON décodée de l'opération « Planifier une restauration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.recordBackup​

JsonNode recordBackup(String planId, Object body)

Enregistrer une sauvegarde. Enregistre une tâche et son artefact : le Manager calcule l'empreinte du fichier situé à location, conserve son empreinte, sa taille et ses versions, et fixe expires_at d'après la durée de conservation du plan. Quand le fichier est illisible, la tâche est enregistrée en failed. Renvoie la tâche avec son artifact (201). Permission backup:manage ; 404 backup_policy_not_found. Audité en backup.job.

Route : /api/v1/backup-plans/{plan_id}/backups (POST).

NomTypeDéfautRequisDescription
planIdStringouiIdentifiant du plan de sauvegarde.
bodyObjectouiEmplacement, type et versions de l'artefact.

Retour : JsonNode. Réponse JSON décodée de l'opération « Enregistrer une sauvegarde ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.requestExercise​

JsonNode requestExercise(Object body)

Demander un exercice de reprise. Enregistre une demande d'exercice pour un plan (201) ; une autre personne doit l'approuver avant qu'il puisse être clôturé. Permission dr:manage ; 404 dr_plan_not_found. Audité en dr.exercise.request.

Route : /api/v1/dr-exercises (POST).

NomTypeDéfautRequisDescription
bodyObjectouiLe plan de reprise.

Retour : JsonNode. Réponse JSON décodée de l'opération « Demander un exercice de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.requestFailover​

JsonNode requestFailover(Object body)

Demander une bascule de reprise. Enregistre une demande de bascule réelle pour un plan (201) ; elle suit la même approbation et la même clôture qu'un exercice. Permission dr:manage ; 404 dr_plan_not_found. Audité en dr.failover.request.

Route : /api/v1/dr-failovers/request (POST).

NomTypeDéfautRequisDescription
bodyObjectouiLe plan de reprise.

Retour : JsonNode. Réponse JSON décodée de l'opération « Demander une bascule de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.runRestoreTest​

JsonNode runRestoreTest(String backupId, Object body)

Lancer un test de restauration. Copie l'artefact dans un répertoire isolé, injecte éventuellement une corruption, vérifie l'empreinte et le déchiffrement et signe le rapport (Ed25519). Un échec lève une alarme auditée. Renvoie le test (201). Permission backup:manage. Audité en backup.restore_test.

Route : /api/v1/backups/{backup_id}/restore-tests (POST).

NomTypeDéfautRequisDescription
backupIdStringouiIdentifiant de l'artefact de sauvegarde.
bodyObjectouiInjection ou non d'une corruption (pour prouver que le test la détecte).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lancer un test de restauration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.setDrTargets​

JsonNode setDrTargets(String planId, Object body)

Fixer les objectifs de RPO et RTO d'un plan de reprise. Fixe vos propres objectifs de reprise (secondes, ou nul pour effacer) ; le produit ne les propose jamais. Permission dr:manage ; 404 dr_plan_not_found. Audité en dr.plan.targets.

Route : /api/v1/dr-plans/{plan_id}/targets (PUT).

NomTypeDéfautRequisDescription
planIdStringouiIdentifiant du plan de reprise.
bodyObjectouiObjectifs de RPO et RTO.

Retour : JsonNode. Réponse JSON décodée de l'opération « Fixer les objectifs de RPO et RTO d'un plan de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.trafficSwitchPlan​

JsonNode trafficSwitchPlan(String planId, Object body)

Planifier une bascule de trafic vers un site. Exécute les contrôles de santé des bascules déclarées sur le site cible (vraies requêtes HTTP) et renvoie les changements DNS et d'équilibreur de charge dans l'ordre. Rien n'est appliqué : l'application exige l'API de votre DNS et de votre équilibreur de charge (statut requires_client_provider). Permission dr:manage.

Route : /api/v1/dr-plans/{plan_id}/switch-plan (POST).

NomTypeDéfautRequisDescription
planIdStringouiIdentifiant du plan de reprise.
bodyObjectouiSite vers lequel basculer le trafic.

Retour : JsonNode. Réponse JSON décodée de l'opération « Planifier une bascule de trafic vers un site ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupApi.verifyBackup​

JsonNode verifyBackup(String backupId)

Vérifier une sauvegarde. Recalcule l'empreinte du fichier, compare l'empreinte et la taille à celles enregistrées et, si elles correspondent, le déchiffre avec sa clé. Renvoie la vérification avec son résultat outcome (passed ou failed). Permission backup:manage ; 404 backup_artifact_not_found. Audité en backup.verify.

Route : /api/v1/backups/{backup_id}/verify (POST).

NomTypeDéfautRequisDescription
backupIdStringouiIdentifiant de l'artefact de sauvegarde.

Retour : JsonNode. Réponse JSON décodée de l'opération « Vérifier une sauvegarde ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.BackupsApi​

Sauvegarde, restauration et reprise après sinistre. Le gestionnaire de sauvegarde et de reprise : cibles et plans de sauvegarde, artefacts de sauvegarde avec leurs vérifications, conservation, tests de restauration, restaurations et reprise après sinistre (sites, plans, exercices, bascules, changements DNS et d'équilibreur de charge). Opérations de ce groupe de l'API du Navin Manager.

BackupsApi.createPlan​

JsonNode createPlan(Object body)

Créer un plan de sauvegarde. Crée un plan de sauvegarde sur une cible et le renvoie (201). Avec immutability_required, la cible doit avoir des capacités de verrouillage d'objet et de rétention vérifiées. Permission backup:manage. Erreurs : 404 backup_target_not_found, 409 backup_worm_unsupported. Audité en backup.plan.create.

Route : /api/v1/backup-plans (POST).

NomTypeDéfautRequisDescription
bodyObjectouiCible, périmètre, calendrier, chiffrement et conservation du plan.

Retour : JsonNode. Réponse JSON décodée de l'opération « Créer un plan de sauvegarde ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupsApi.list​

JsonNode list()

Lister les sauvegardes. Les 200 derniers artefacts de sauvegarde, du plus récent au plus ancien : emplacement, SHA-256, taille, versions, expiration, plan et résultat de leur dernière vérification. Permission backup:read.

Route : /api/v1/backups (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les sauvegardes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupsApi.run​

JsonNode run(String planId, Object body)

Enregistrer une sauvegarde. Enregistre une tâche et son artefact : le Manager calcule l'empreinte du fichier situé à location, conserve son empreinte, sa taille et ses versions, et fixe expires_at d'après la durée de conservation du plan. Quand le fichier est illisible, la tâche est enregistrée en failed. Renvoie la tâche avec son artifact (201). Permission backup:manage ; 404 backup_policy_not_found. Audité en backup.job.

Route : /api/v1/backup-plans/{plan_id}/backups (POST).

NomTypeDéfautRequisDescription
planIdStringouiIdentifiant du plan de sauvegarde.
bodyObjectouiEmplacement, type et versions de l'artefact.

Retour : JsonNode. Réponse JSON décodée de l'opération « Enregistrer une sauvegarde ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BackupsApi.verify​

JsonNode verify(String backupId)

Vérifier une sauvegarde. Recalcule l'empreinte du fichier, compare l'empreinte et la taille à celles enregistrées et, si elles correspondent, le déchiffre avec sa clé. Renvoie la vérification avec son résultat outcome (passed ou failed). Permission backup:manage ; 404 backup_artifact_not_found. Audité en backup.verify.

Route : /api/v1/backups/{backup_id}/verify (POST).

NomTypeDéfautRequisDescription
backupIdStringouiIdentifiant de l'artefact de sauvegarde.

Retour : JsonNode. Réponse JSON décodée de l'opération « Vérifier une sauvegarde ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.BlueprintApi​

Blueprints. Un blueprint décrit les services d'un cluster sous une forme portable, pour reconstruire la même plateforme sur un autre cluster : les services avec leur mode, leur méthode, leur configuration non secrète et leurs liaisons, et des groupes de machines (ensembles de composants qui tournent ensemble, avec leur nombre de machines). Sa forme : Opérations de ce groupe de l'API du Navin Manager.

BlueprintApi.applyBlueprint​

JsonNode applyBlueprint(String clusterId, Object body)

Appliquer un blueprint à un cluster. Transforme le blueprint et l'association des machines en demandes d'installation et crée une seule opération d'installation (type blueprint.apply), avec les mêmes contrôles qu'une installation de service. Renvoie operation_id et les contrôles ha. Permissions cluster:manage et services:install. Erreurs : 422 blueprint_invalid (avec details.errors), et les erreurs d'une installation. Audité en blueprint.apply.

Route : /api/v1/clusters/{cluster_id}/blueprint/apply (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiBlueprint, association des machines et options d'installation.

Retour : JsonNode. Réponse JSON décodée de l'opération « Appliquer un blueprint à un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BlueprintApi.exportBlueprint​

JsonNode exportBlueprint(String clusterId)

Exporter le blueprint d'un cluster. Renvoie le blueprint du cluster : ses services gérés avec leur configuration non secrète (les secrets ne sont jamais exportés) et les groupes de machines construits à partir des composants qui tournent ensemble ; hosts d'un groupe liste les machines de ce cluster à titre indicatif. Permission cluster:manage.

Route : /api/v1/clusters/{cluster_id}/blueprint (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Exporter le blueprint d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BlueprintApi.validateBlueprint​

JsonNode validateBlueprint(String clusterId, Object body)

Valider un blueprint pour un cluster. Contrôle la forme du blueprint et, quand un host_mapping est fourni, l'association et les demandes d'installation qui en résultent. Renvoie ok et errors (chacune avec service, field, code, message_i18n). Rien n'est modifié. Permission cluster:manage.

Route : /api/v1/clusters/{cluster_id}/blueprint/validate (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiBlueprint et association facultative des machines.

Retour : JsonNode. Réponse JSON décodée de l'opération « Valider un blueprint pour un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.ClustersApi​

Opérations clusters du Platform Manager.

ClustersApi.createCluster​

JsonNode createCluster(Object body)

Créer un cluster. Crée un cluster vide sur la version courante du catalogue et le renvoie (201). Sans profil, les clusters production et preprod reçoivent standard, les autres modes development. Permission clusters:create ; 409 cluster_name_taken (les noms ne tiennent pas compte de la casse). Audité en cluster.create.

Route : /api/v1/clusters (POST).

NomTypeDéfautRequisDescription
bodyObjectouiNom, mode, description et profil du cluster.

Retour : JsonNode. Réponse JSON décodée de l'opération « Créer un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ClustersApi.createToken​

JsonNode createToken(String clusterId, Object body)

Créer un jeton d'amorçage pour de nouvelles machines. Crée un jeton qui permet aux agents de s'enregistrer dans ce cluster et renvoie id, token (affiché uniquement ici), expires_at, register_command (la commande nm-agent register avec l'URL du serveur, le jeton et l'empreinte de l'autorité de certification) et install_command (un script qui installe l'agent depuis le miroir et l'enregistre). Répond 201. Permission hosts:manage. Audité en bootstrap_token.create.

Route : /api/v1/clusters/{cluster_id}/bootstrap-tokens (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiDurée de vie et nombre d'utilisations du jeton.

Retour : JsonNode. Réponse JSON décodée de l'opération « Créer un jeton d'amorçage pour de nouvelles machines ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ClustersApi.deleteCluster​

JsonNode deleteCluster(String clusterId)

Supprimer un cluster vide. Supprime un cluster qui n'a aucun service et aucune machine en dehors des machines mises hors service. Répond 204. Permission cluster:manage. Erreurs : 404 cluster_not_found, 409 cluster_not_empty. Audité en cluster.delete.

Route : /api/v1/clusters/{cluster_id} (DELETE).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Supprimer un cluster vide ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ClustersApi.getCluster​

JsonNode getCluster(String clusterId)

Lire un cluster. Renvoie le cluster. Permission cluster:read ; 404 cluster_not_found.

Route : /api/v1/clusters/{cluster_id} (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ClustersApi.importKubernetes​

JsonNode importKubernetes(String clusterId, Object body)

Enregistrer un cluster Kubernetes. Contrôle le kubeconfig par rapport au serveur d'API fourni, appelle /version, scelle le kubeconfig et fait du cluster un cluster Kubernetes. Le cluster ne doit avoir aucune machine. Renvoie la cible (201). Permission cluster:manage. Erreurs : 409 k8s_already_registered, 409 k8s_cluster_has_hosts, erreurs du contrôle du kubeconfig et de l'API. Audité en k8s.cluster.register.

Route : /api/v1/clusters/{cluster_id}/kubernetes (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiServeur d'API, kubeconfig et espace de noms.

Retour : JsonNode. Réponse JSON décodée de l'opération « Enregistrer un cluster Kubernetes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ClustersApi.listClusters​

JsonNode listClusters()

Lister les clusters. Clusters que l'appelant peut lire (cluster:read globalement ou sur le cluster), triés par nom : id, name, mode, description, stack_version, profile, kind (hosts ou kubernetes), created_at, updated_at.

Route : /api/v1/clusters (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les clusters ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ClustersApi.listTokens​

JsonNode listTokens(String clusterId)

Lister les jetons d'amorçage d'un cluster. Jetons du cluster, du plus récent au plus ancien, avec prefix, expires_at, max_uses, uses, created_at et revoked_at ; le secret n'est jamais renvoyé. Permission hosts:manage.

Route : /api/v1/clusters/{cluster_id}/bootstrap-tokens (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les jetons d'amorçage d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ClustersApi.patchCluster​

JsonNode patchCluster(String clusterId, Object body)

Renommer un cluster ou changer son profil. Modifie le nom, la description ou le profil ; un champ omis est conservé. Renvoie le cluster. Permission cluster:manage. Erreurs : 404 cluster_not_found, 409 cluster_name_taken. Audité en cluster.update.

Route : /api/v1/clusters/{cluster_id} (PATCH).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiChamps du cluster à modifier.

Retour : JsonNode. Réponse JSON décodée de l'opération « Renommer un cluster ou changer son profil ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ClustersApi.register​

JsonNode register(Object body)

Créer un cluster. Crée un cluster vide sur la version courante du catalogue et le renvoie (201). Sans profil, les clusters production et preprod reçoivent standard, les autres modes development. Permission clusters:create ; 409 cluster_name_taken (les noms ne tiennent pas compte de la casse). Audité en cluster.create.

Route : /api/v1/clusters (POST).

NomTypeDéfautRequisDescription
bodyObjectouiNom, mode, description et profil du cluster.

Retour : JsonNode. Réponse JSON décodée de l'opération « Créer un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ClustersApi.revokeToken​

JsonNode revokeToken(String clusterId, String tokenId)

Révoquer un jeton d'amorçage. Révoque le jeton : plus aucun nouvel agent ne peut s'enregistrer avec lui ; les machines déjà enregistrées ne sont pas affectées. Répond 204. Permission hosts:manage ; 404 bootstrap_token_not_found (inconnu ou déjà révoqué). Audité en bootstrap_token.revoke.

Route : /api/v1/clusters/{cluster_id}/bootstrap-tokens/{token_id} (DELETE).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
tokenIdStringouiIdentifiant du jeton d'amorçage.

Retour : JsonNode. Réponse JSON décodée de l'opération « Révoquer un jeton d'amorçage ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ClustersApi.status​

JsonNode status(String clusterId)

Lire la synthèse d'un cluster. Compteurs de la page d'accueil d'un cluster : machines par état, services par état et par santé, alertes ouvertes (critical, warning) et opérations en cours. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/summary (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la synthèse d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ClustersApi.summary​

JsonNode summary(String clusterId)

Lire la synthèse d'un cluster. Compteurs de la page d'accueil d'un cluster : machines par état, services par état et par santé, alertes ouvertes (critical, warning) et opérations en cours. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/summary (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la synthèse d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ClustersApi.topology​

JsonNode topology(String clusterId)

Lire la topologie d'un cluster. Machines (id, hostname, state, rack) et instances de composants (service, component, host_id, state, health) du cluster, pour représenter où tourne chaque composant. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/topology (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la topologie d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ClustersApi.validate​

JsonNode validate(String clusterId, Object body)

Lancer les contrôles préalables d'installation d'un cluster. Chaque contrôle qui doit réussir avant l'installation ou la mise à niveau d'un service, avec sa sévérité, sa preuve et un verdict bloquant : caractéristiques des machines, DNS, contrôles préalables du catalogue, pare-feu, capacité, versions, TLS et règles du profil. Un contrôle en fail bloque. Rien n'est modifié. Permission services:install.

Route : /api/v1/clusters/{cluster_id}/preflight (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiServices et machines à contrôler.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lancer les contrôles préalables d'installation d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.ConfigsApi​

Configurations. La configuration d'un service géré : ses paramètres (déclarés par le catalogue avec leurs types, leurs valeurs par défaut et leurs sections), enregistrés en versions numérotées, avec des groupes de configuration qui surchargent des valeurs sur certaines machines. Opérations de ce groupe de l'API du Navin Manager.

ConfigsApi.apply​

JsonNode apply(String clusterId, String service, Object body)

Appliquer la configuration aux machines. Lance l'opération qui écrit la configuration courante sur les machines et redémarre les composants comme demandé (rolling par lots de batch_size, all ou none). Renvoie operation_id. Permission configs:edit. Sous banking-secure, une approbation est nécessaire (409 approval_required). Audité en config.apply.

Route : /api/v1/clusters/{cluster_id}/services/{service}/config/apply (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
bodyObjectouiPolitique de redémarrage de l'application.

Retour : JsonNode. Réponse JSON décodée de l'opération « Appliquer la configuration aux machines ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConfigsApi.createGroup​

JsonNode createGroup(String clusterId, String service, Object body)

Créer un groupe de configuration. Crée un groupe de machines avec des valeurs qui surchargent la configuration du service sur ces machines. Une machine appartient à un groupe au plus. Permission configs:edit. Erreurs : 409 config_group_name_taken, 409 config_group_host_conflict, 422 config_group_host_invalid, 422 config_invalid. Audité en config_group.create.

Route : /api/v1/clusters/{cluster_id}/services/{service}/config/groups (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
bodyObjectouiNom, machines et surcharges du groupe.

Retour : JsonNode. Réponse JSON décodée de l'opération « Créer un groupe de configuration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConfigsApi.deleteGroup​

JsonNode deleteGroup(String clusterId, String service, String groupId)

Supprimer un groupe de configuration. Supprime le groupe ; ses machines reprennent la configuration du service à la prochaine application. Répond 204. Permission configs:edit ; 404 config_group_not_found. Audité en config_group.delete.

Route : /api/v1/clusters/{cluster_id}/services/{service}/config/groups/{group_id} (DELETE).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
groupIdStringouiIdentifiant du groupe de configuration.

Retour : JsonNode. Réponse JSON décodée de l'opération « Supprimer un groupe de configuration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConfigsApi.diff​

JsonNode diff(String clusterId, String service, Map<String, ?> query)

Comparer deux versions de configuration. Liste les paramètres dont la valeur diffère entre les deux versions, chacun avec param, secret, from et to ; pour un secret, seul le fait qu'il soit défini est indiqué. Permission configs:read.

Route : /api/v1/clusters/{cluster_id}/services/{service}/config/diff (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. 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).

ConfigsApi.diff​

JsonNode diff(String clusterId, String service)

Comparer deux versions de configuration. Liste les paramètres dont la valeur diffère entre les deux versions, chacun avec param, secret, from et to ; pour un secret, seul le fait qu'il soit défini est indiqué. Permission configs:read.

Route : /api/v1/clusters/{cluster_id}/services/{service}/config/diff (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. 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).

ConfigsApi.getConfig​

JsonNode getConfig(String clusterId, String service)

Lire la configuration d'un service. Renvoie la version courante, les propriétés effectives properties (valeurs par défaut fusionnées, secrets masqués), les définitions des paramètres params et les sections du catalogue, les recommandations recommendations calculées pour les machines, les groupes de configuration groups et les stale_hosts. Permission configs:read ; 409 service_unmanaged pour un service que le Manager ne gère pas.

Route : /api/v1/clusters/{cluster_id}/services/{service}/config (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. 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).

ConfigsApi.getVersion​

JsonNode getVersion(String clusterId, String service, String version)

Lire une version de configuration. Renvoie les valeurs d'une version (secrets masqués) avec sa note et son auteur. Permission configs:read.

Route : /api/v1/clusters/{cluster_id}/services/{service}/config/versions/{version} (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
versionStringouiNuméro de version, à partir de 1.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire une version de configuration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConfigsApi.listGroups​

JsonNode listGroups(String clusterId, String service)

Lister les groupes de configuration d'un service. Chaque groupe de configuration avec son id, son name, ses hosts, ses surcharges overrides (secrets masqués) et updated_at. Permission configs:read.

Route : /api/v1/clusters/{cluster_id}/services/{service}/config/groups (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les groupes de configuration d'un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConfigsApi.listVersions​

Page<JsonNode> listVersions(String clusterId, String service, Map<String, ?> query)

Lister les versions de configuration. Versions de la configuration, de la plus récente à la plus ancienne : version, note, restored_from, secret_keys, created_by, created_at. Paginé avec limit et cursor. Permission configs:read.

Route : /api/v1/clusters/{cluster_id}/services/{service}/config/versions (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : Page<JsonNode>. 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).

ConfigsApi.listVersions​

Page<JsonNode> listVersions(String clusterId, String service)

Lister les versions de configuration. Versions de la configuration, de la plus récente à la plus ancienne : version, note, restored_from, secret_keys, created_by, created_at. Paginé avec limit et cursor. Permission configs:read.

Route : /api/v1/clusters/{cluster_id}/services/{service}/config/versions (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : Page<JsonNode>. 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).

ConfigsApi.preview​

JsonNode preview(String clusterId, String service, Map<String, ?> query)

Prévisualiser les fichiers d'une instance de composant. Produit les fichiers de configuration qu'une instance recevrait avec la version courante et ses groupes : path, mode, owner, group, content, secrets masqués. Rien n'est écrit. Permission configs:read ; 404 host_component_not_found.

Route : /api/v1/clusters/{cluster_id}/services/{service}/config/preview (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Prévisualiser les fichiers d'une instance de composant ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConfigsApi.preview​

JsonNode preview(String clusterId, String service)

Prévisualiser les fichiers d'une instance de composant. Produit les fichiers de configuration qu'une instance recevrait avec la version courante et ses groupes : path, mode, owner, group, content, secrets masqués. Rien n'est écrit. Permission configs:read ; 404 host_component_not_found.

Route : /api/v1/clusters/{cluster_id}/services/{service}/config/preview (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. Réponse JSON décodée de l'opération « Prévisualiser les fichiers d'une instance de composant ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConfigsApi.putConfig​

JsonNode putConfig(String clusterId, String service, Object body)

Enregistrer une nouvelle version de configuration. Fusionne les propriétés envoyées avec les valeurs courantes, les valide selon les définitions des paramètres et enregistre une nouvelle version. Renvoie version et stale_hosts. Permission configs:edit. Erreurs : 422 config_invalid (avec les champs), 409 service_unmanaged. Audité en config.update (noms des paramètres uniquement).

Route : /api/v1/clusters/{cluster_id}/services/{service}/config (PUT).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
bodyObjectouiPropriétés modifiées et une note.

Retour : JsonNode. Réponse JSON décodée de l'opération « Enregistrer une nouvelle version de configuration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConfigsApi.restore​

JsonNode restore(String clusterId, String service, String version)

Restaurer une version de configuration. Enregistre les valeurs d'une ancienne version dans une nouvelle version (note restore of version N) et renvoie version et stale_hosts ; appliquez-la pour atteindre les machines. Permission configs:edit. Audité en config.restore.

Route : /api/v1/clusters/{cluster_id}/services/{service}/config/versions/{version}/restore (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
versionStringouiNuméro de la version à restaurer.

Retour : JsonNode. Réponse JSON décodée de l'opération « Restaurer une version de configuration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConfigsApi.updateGroup​

JsonNode updateGroup(String clusterId, String service, String groupId, Object body)

Modifier un groupe de configuration. Remplace le nom, les machines et les surcharges du groupe. Permission configs:edit. Erreurs : 404 config_group_not_found, 409 config_group_name_taken, 409 config_group_host_conflict, 422 config_group_host_invalid. Audité en config_group.update.

Route : /api/v1/clusters/{cluster_id}/services/{service}/config/groups/{group_id} (PUT).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
groupIdStringouiIdentifiant du groupe de configuration.
bodyObjectouiNom, machines et surcharges du groupe.

Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier un groupe de configuration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.ConnectionsApi​

Connexions externes. Connexions vers des systèmes extérieurs aux clusters que les services peuvent utiliser : bases de données (PostgreSQL, MySQL, ClickHouse), moteurs de recherche (Elasticsearch, OpenSearch, Qdrant), messagerie (Kafka, NATS, Redis), stockage objet S3, annuaires LDAP et OIDC, SMTP, syslog et simples points d'accès HTTP. Un service se lie à une connexion par ses liaisons bindings (type connection). Opérations de ce groupe de l'API du Navin Manager.

ConnectionsApi.createConnection​

JsonNode createConnection(Object body)

Créer une connexion. Enregistre une connexion et la renvoie (201). Permission connections:manage. Erreurs : 409 connection_name_taken, 422 connection_params_invalid (champs dans details.fields). Audité en connection.create.

Route : /api/v1/connections (POST).

NomTypeDéfautRequisDescription
bodyObjectouiNom, type, paramètres et secret de la connexion.

Retour : JsonNode. Réponse JSON décodée de l'opération « Créer une connexion ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConnectionsApi.deleteConnection​

JsonNode deleteConnection(String connectionId)

Supprimer une connexion. Supprime une connexion à laquelle aucun service n'est lié. Répond 204. Permission connections:manage. Erreurs : 404 connection_not_found, 409 connection_in_use (services dans details.services). Audité en connection.delete.

Route : /api/v1/connections/{connection_id} (DELETE).

NomTypeDéfautRequisDescription
connectionIdStringouiIdentifiant de la connexion.

Retour : JsonNode. Réponse JSON décodée de l'opération « Supprimer une connexion ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConnectionsApi.getConnection​

JsonNode getConnection(String connectionId)

Lire une connexion. Renvoie une connexion, son secret masqué. Permission connections:read ; 404 connection_not_found.

Route : /api/v1/connections/{connection_id} (GET).

NomTypeDéfautRequisDescription
connectionIdStringouiIdentifiant de la connexion.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire une connexion ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConnectionsApi.listConnections​

Page<JsonNode> listConnections(Map<String, ?> query)

Lister les connexions externes. Connexions triées par nom : id, name, type, params, secret (défini ou non), description, last_test, created_at, updated_at. Paginé avec limit et cursor. Permission connections:read.

Route : /api/v1/connections (GET).

NomTypeDéfautRequisDescription
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : Page<JsonNode>. Réponse JSON décodée de l'opération « Lister les connexions externes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConnectionsApi.listConnections​

Page<JsonNode> listConnections()

Lister les connexions externes. Connexions triées par nom : id, name, type, params, secret (défini ou non), description, last_test, created_at, updated_at. Paginé avec limit et cursor. Permission connections:read.

Route : /api/v1/connections (GET).

Cet élément ne prend aucun paramètre.

Retour : Page<JsonNode>. Réponse JSON décodée de l'opération « Lister les connexions externes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConnectionsApi.patchConnection​

JsonNode patchConnection(String connectionId, Object body)

Modifier une connexion. Modifie les champs fournis ; le type ne peut pas changer. Renvoie la connexion. Permission connections:manage. Erreurs : 404 connection_not_found, 409 connection_name_taken, 422 connection_params_invalid. Audité en connection.update.

Route : /api/v1/connections/{connection_id} (PATCH).

NomTypeDéfautRequisDescription
connectionIdStringouiIdentifiant de la connexion.
bodyObjectouiChamps de la connexion à modifier.

Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier une connexion ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConnectionsApi.testConnection​

JsonNode testConnection(String connectionId)

Tester une connexion enregistrée. Exécute le test du protocole avec les paramètres et le secret enregistrés, conserve le résultat avec son heure dans last_test et le renvoie (ok, error_code, latency_ms...). Permission connections:manage ; 404 connection_not_found. Audité en connection.test.

Route : /api/v1/connections/{connection_id}/test (POST).

NomTypeDéfautRequisDescription
connectionIdStringouiIdentifiant de la connexion.

Retour : JsonNode. 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).

ConnectionsApi.validateConnection​

JsonNode validateConnection(Object body)

Tester une connexion avant de l'enregistrer. Essai à blanc : contrôle les paramètres du type, puis exécute le vrai test du protocole avec le secret fourni. Renvoie le résultat du test (ok, error_code, latency_ms...). Rien n'est enregistré ; le secret n'est jamais renvoyé ni audité. Permission connections:manage. Audité en connection.validate.

Route : /api/v1/connections/validate (POST).

NomTypeDéfautRequisDescription
bodyObjectouiType, paramètres et secret à tester.

Retour : JsonNode. 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).

Classe ManagerGroups.ConsolesApi​

Consoles des services. Les interfaces web locales des services installés (par exemple la console d'administration de Keycloak ou d'un courtier de messages), ouvertes depuis le Manager. Opérations de ce groupe de l'API du Navin Manager.

ConsolesApi.listConsoles​

JsonNode listConsoles(String clusterId)

Lister les consoles des services d'un cluster. Chaque console du catalogue avec son état sur le cluster : installée ou non, santé, adresse interne, contrôles de conformité, possibilité pour l'appelant de l'ouvrir et, pour les administrateurs du coffre, l'entrée du coffre qui contient ses identifiants. Les services sans interface web sont listés à part avec leurs points d'accès HTTP. Permission services:operate. Audité en consoles.list.

Route : /api/v1/clusters/{cluster_id}/consoles (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les consoles des services d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConsolesApi.openConsole​

JsonNode openConsole(String clusterId, String service)

Ouvrir une console de service. Renvoie url, les contrôles checks et compliant. Exige services:operate et la permission de la console (vault:manage pour une console d'identités ou de secrets). Erreurs : 404 console_unknown, 409 console_not_installed, 409 console_no_url, 409 console_not_compliant (production ou préproduction). Audité en console.open.

Route : /api/v1/clusters/{cluster_id}/consoles/{service}/open (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. Réponse JSON décodée de l'opération « Ouvrir une console de service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConsolesApi.putAccess​

JsonNode putAccess(String clusterId, String service, Object body)

Publier l'adresse interne d'une console. Définit l'adresse interne de la console (derrière la passerelle HTTPS de la banque) et sa protection ; les deux à nul reviennent à l'adresse découverte. Renvoie la console ; l'entrée du coffre du service est mise à jour avec la nouvelle adresse. Permission cluster:manage ; 422 console_url_invalid. Audité en console.access.

Route : /api/v1/clusters/{cluster_id}/consoles/{service}/access (PUT).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
bodyObjectouiAdresse publiée et protection.

Retour : JsonNode. Réponse JSON décodée de l'opération « Publier l'adresse interne d'une console ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ConsolesApi.rotateCredentials​

JsonNode rotateCredentials(String clusterId, String service, Object body)

Faire tourner le mot de passe d'un compte de console. Définit un nouveau mot de passe (généré s'il est omis) pour le compte de la console lu depuis la configuration : crée une nouvelle version de configuration et lance l'opération d'application ; l'entrée du coffre suit quand l'application réussit. Répond 202 avec operation_id et version. Le mot de passe n'est jamais journalisé. Permissions configs:edit et vault:manage. Erreurs : 409 console_no_credential, 409 console_rotation_manual, 409 service_unmanaged, 422 config_invalid. Audité en console.credentials.rotate.

Route : /api/v1/clusters/{cluster_id}/consoles/{service}/credentials/rotate (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
bodyObjectouiNouveau mot de passe et politique de redémarrage.

Retour : JsonNode. Réponse JSON décodée de l'opération « Faire tourner le mot de passe d'un compte de console ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.DrApi​

Sauvegarde, restauration et reprise après sinistre. Le gestionnaire de sauvegarde et de reprise : cibles et plans de sauvegarde, artefacts de sauvegarde avec leurs vérifications, conservation, tests de restauration, restaurations et reprise après sinistre (sites, plans, exercices, bascules, changements DNS et d'équilibreur de charge). Opérations de ce groupe de l'API du Navin Manager.

DrApi.approve​

JsonNode approve(String exerciseId)

Approuver un exercice ou une bascule de reprise. Approuve la demande ; l'approbateur ne doit pas être le demandeur. Permission dr:manage. Erreurs : 403 restore_self_approval, 404 dr_exercise_not_found. Audité en dr.approve.

Route : /api/v1/dr-exercises/{exercise_id}/approve (POST).

NomTypeDéfautRequisDescription
exerciseIdStringouiIdentifiant de l'exercice ou de la demande de bascule.

Retour : JsonNode. Réponse JSON décodée de l'opération « Approuver un exercice ou une bascule de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

DrApi.complete​

JsonNode complete(String exerciseId, Object body)

Clôturer un exercice de reprise avec ses mesures. Enregistre le RPO et le RTO observés, le résultat et les preuves d'un exercice ou d'une bascule approuvés. Permission dr:manage ; 409 dr_not_approved. Audité en dr.complete.

Route : /api/v1/dr-exercises/{exercise_id}/complete (POST).

NomTypeDéfautRequisDescription
exerciseIdStringouiIdentifiant de l'exercice ou de la demande de bascule.
bodyObjectouiMesures observées, résultat et preuves.

Retour : JsonNode. Réponse JSON décodée de l'opération « Clôturer un exercice de reprise avec ses mesures ».

Erreurs levées : les erreurs typées du transport (Erreurs).

DrApi.listPlans​

JsonNode listPlans()

Lister les plans de reprise. Chaque plan de reprise après sinistre avec son mode, ses sites primaire et secondaire, ses objectifs de RPO et RTO et sa séquence. Permission backup:read.

Route : /api/v1/dr-plans (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les plans de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

DrApi.plan​

JsonNode plan(Object body)

Créer un plan de reprise. Crée un plan entre un site primaire et un site secondaire (créés s'ils sont inconnus) et le renvoie (201). Permission dr:manage. Erreurs : 422 dr_mode_invalid, 422 dr_same_site. Audité en dr.plan.create.

Route : /api/v1/dr-plans (POST).

NomTypeDéfautRequisDescription
bodyObjectouiNom, mode, sites, objectifs et séquence du plan.

Retour : JsonNode. Réponse JSON décodée de l'opération « Créer un plan de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

DrApi.requestFailover​

JsonNode requestFailover(Object body)

Demander une bascule de reprise. Enregistre une demande de bascule réelle pour un plan (201) ; elle suit la même approbation et la même clôture qu'un exercice. Permission dr:manage ; 404 dr_plan_not_found. Audité en dr.failover.request.

Route : /api/v1/dr-failovers/request (POST).

NomTypeDéfautRequisDescription
bodyObjectouiLe plan de reprise.

Retour : JsonNode. Réponse JSON décodée de l'opération « Demander une bascule de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

DrApi.status​

JsonNode status()

Lister les exercices et bascules de reprise. Les 200 derniers exercices et demandes de bascule avec leur rapport : statut, demandeur, approbateur, RPO et RTO observés comparés aux objectifs, preuves. Permission backup:read.

Route : /api/v1/dr-exercises (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les exercices et bascules de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

DrApi.test​

JsonNode test(Object body)

Demander un exercice de reprise. Enregistre une demande d'exercice pour un plan (201) ; une autre personne doit l'approuver avant qu'il puisse être clôturé. Permission dr:manage ; 404 dr_plan_not_found. Audité en dr.exercise.request.

Route : /api/v1/dr-exercises (POST).

NomTypeDéfautRequisDescription
bodyObjectouiLe plan de reprise.

Retour : JsonNode. Réponse JSON décodée de l'opération « Demander un exercice de reprise ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.HaApi​

Groupes de haute disponibilité. Un groupe de haute disponibilité décrit comment un composant d'un cluster reste disponible : son mode de HA (single, active_passive, active_active, quorum), son profil (standalone, ha avec au moins 2 réplicas dans 2 domaines de panne, critical-ha avec au moins 3 dans 3), ses membres et leurs domaines de panne, sa politique de bascule et ses objectifs de reprise (RTO, RPO). Le groupe indique son état de HA à partir des battements de cœur de ses membres. Opérations de ce groupe de l'API du Navin Manager.

HaApi.list​

JsonNode list()

Lister les groupes de haute disponibilité. Groupes de chaque cluster que l'appelant peut lire (cluster:read), triés par nom, chacun avec ses membres, son état de HA et son dernier test.

Route : /api/v1/ha-groups (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les groupes de haute disponibilité ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HaApi.plan​

JsonNode plan(Object body)

Créer un groupe de haute disponibilité. Déclare un groupe et ses membres et le renvoie (201). Le profil doit être satisfait par desired_replicas et fault_domains, deux membres ne peuvent pas partager une machine. Permission cluster:manage sur le cluster. Erreurs : 422 ha_profile_unmet, 422 ha_mode_unsupported, 422 ha_members_same_host, 404 cluster_not_found, 404 host_not_found. Audité en ha_group.create.

Route : /api/v1/ha-groups (POST).

NomTypeDéfautRequisDescription
bodyObjectouiLe groupe, sa politique et ses membres.

Retour : JsonNode. Réponse JSON décodée de l'opération « Créer un groupe de haute disponibilité ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HaApi.status​

JsonNode status(String groupId)

Lire un groupe de haute disponibilité. Renvoie le groupe avec ses membres, son état de HA et son dernier test. Permission cluster:read sur son cluster ; 404 ha_group_not_found.

Route : /api/v1/ha-groups/{group_id} (GET).

NomTypeDéfautRequisDescription
groupIdStringouiIdentifiant du groupe de HA.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un groupe de haute disponibilité ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HaApi.testFailover​

JsonNode testFailover(String groupId)

Lancer un test de bascule. Prend le bail de bascule du groupe, enregistre un test avec un nouveau jeton de fencing et, quand le groupe est lié à des composants installés, lance la bascule. Répond 202 avec run_id, status, fencing_token, executed et les opérations lancées operations. Permission services:operate. Erreurs : 409 ha_operation_locked (une autre bascule détient le bail), 409 ha_client_managed_refused. Audité en ha_group.test_failover.

Route : /api/v1/ha-groups/{group_id}/test-failover (POST).

NomTypeDéfautRequisDescription
groupIdStringouiIdentifiant du groupe de HA.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lancer un test de bascule ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.HostsApi​

Opérations hosts du Platform Manager.

HostsApi.bootstrap​

JsonNode bootstrap(Object body)

Amorcer un agent de nœud par SSH. Lance une opération qui installe et enregistre l'agent sur une machine :

Route : /api/v1/hosts/bootstrap (POST).

NomTypeDéfautRequisDescription
bodyObjectouiMachine cible, machines de rebond, compte SSH, clé privée ou certificat.

Retour : JsonNode. Réponse JSON décodée de l'opération « Amorcer un agent de nœud par SSH ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.bootstrapPlan​

JsonNode bootstrapPlan(Object body)

Prévisualiser l'amorçage d'un agent de nœud. Contrôle l'identifiant par rapport à la politique SSH et renvoie le plan sans se connecter : utilisateur SSH, cible, rebonds, verdict sur l'identifiant, fichier sudoers et sa validation, liste autorisée, unité systemd et répertoire de préparation. Permission hosts:manage ; 422 ssh_policy_refused.

Route : /api/v1/hosts/bootstrap/plan (POST).

NomTypeDéfautRequisDescription
bodyObjectouiMême corps qu'un amorçage.

Retour : JsonNode. Réponse JSON décodée de l'opération « Prévisualiser l'amorçage d'un agent de nœud ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.decommission​

JsonNode decommission(String hostId)

Mettre une machine hors service. Lance une opération en deux étapes : l'agent exécute sa tâche de mise hors service, puis le Manager marque la machine decommissioned et révoque ses certificats. La machine ne doit plus avoir aucun composant. Répond 202 avec operation_id. Permission hosts:manage ; 409 host_has_components. Audité en host.decommission.

Route : /api/v1/hosts/{host_id}/decommission (POST).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Mettre une machine hors service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.deleteHost​

JsonNode deleteHost(String hostId)

Supprimer une machine. Retire la machine du Manager et révoque les certificats de son agent, sans contacter l'agent (utilisez la mise hors service pour nettoyer la machine). Répond 204. Permission hosts:manage. Erreurs : 404 host_not_found, 409 host_has_components. Audité en host.delete.

Route : /api/v1/hosts/{host_id} (DELETE).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Supprimer une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.diagnostics​

JsonNode diagnostics(String hostId)

Lire l'inventaire d'une machine. Renvoie host_id, l'inventaire inventory rapproché à partir des caractéristiques de l'agent (matériel, GPU, plateforme) et updated_at. Permission cluster:read.

Route : /api/v1/hosts/{host_id}/inventory (GET).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire l'inventaire d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.discover​

JsonNode discover(Map<String, ?> query)

Lister les machines de tous les clusters. Machines de chaque cluster que l'appelant peut lire (ou d'un seul cluster), triées par FQDN, avec leur état de confiance, leur mode de gestion, leur identité, leurs métriques, leur inventaire et leur plateforme.

Route : /api/v1/hosts (GET).

NomTypeDéfautRequisDescription
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les machines de tous les clusters ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.discover​

JsonNode discover()

Lister les machines de tous les clusters. Machines de chaque cluster que l'appelant peut lire (ou d'un seul cluster), triées par FQDN, avec leur état de confiance, leur mode de gestion, leur identité, leurs métriques, leur inventaire et leur plateforme.

Route : /api/v1/hosts (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les machines de tous les clusters ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.enroll​

JsonNode enroll(Object body)

Émettre un jeton d'enrôlement pour une clé d'agent. Émet un jeton à usage unique pour une machine et une clé : host_fingerprint est le SHA-256 (hexadécimal) de la clé publique de l'agent (nm-agent l'affiche avant l'enrôlement). Le jeton expire au bout de 15 minutes au plus et est consommé par le premier enrôlement qui présente une CSR de cette clé exacte. Renvoie id, token, expires_at, ttl_s, host_fingerprint et agent_url (201). Permission hosts:manage. Audité en host.enroll_token.

Route : /api/v1/hosts/enroll (POST).

NomTypeDéfautRequisDescription
bodyObjectouiCluster, FQDN et empreinte de clé de la machine.

Retour : JsonNode. Réponse JSON décodée de l'opération « Émettre un jeton d'enrôlement pour une clé d'agent ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.getHost​

JsonNode getHost(String hostId)

Lire une machine avec ses caractéristiques. Renvoie la machine avec toutes les caractéristiques remontées par son agent. Permission cluster:read sur son cluster ; 404 host_not_found.

Route : /api/v1/hosts/{host_id} (GET).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire une machine avec ses caractéristiques ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.getParameters​

JsonNode getParameters(String hostId)

Lire les paramètres noyau d'une machine. Les réglages sysctl et les limites de ressources (nofile, nproc, memlock) de la machine, chacun avec sa valeur current (remontée par l'agent), sa valeur desired (définie par PUT) et sa valeur recommended (issue des services installés), ainsi que le pare-feu utilisé et les ports occupés. Permission cluster:read.

Route : /api/v1/hosts/{host_id}/parameters (GET).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire les paramètres noyau d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.health​

JsonNode health(String hostId)

Lire un agent de nœud. La vue du nœud plus ses 10 derniers certificats certificates et ses diagnostics (caractéristiques, dernières métriques, 20 derniers reçus). Permission cluster:read ; 404 host_not_found.

Route : /api/v1/agents/nodes/{host_id} (GET).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un agent de nœud ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.hostComponents​

JsonNode hostComponents(String hostId)

Lister les composants d'une machine. Instances de composants placées sur la machine : service, component, desired_state, state, health et ses détails, version, config_version, stale_config (la configuration a changé depuis le dernier redémarrage), maintenance, pid, since, updated_at. Permission cluster:read.

Route : /api/v1/hosts/{host_id}/components (GET).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les composants d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.hostMetrics​

JsonNode hostMetrics(String hostId, Map<String, ?> query)

Lire les métriques d'une machine. Séries temporelles de la machine sur [from, to] (par défaut : la dernière heure) par tranches de step secondes : cpu_pct, mem_used_mb, load1, disk_pct, net_rx, net_tx, chacune sous forme de liste de [heure, valeur]. Permission cluster:read.

Route : /api/v1/hosts/{host_id}/metrics (GET).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire les métriques d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.hostMetrics​

JsonNode hostMetrics(String hostId)

Lire les métriques d'une machine. Séries temporelles de la machine sur [from, to] (par défaut : la dernière heure) par tranches de step secondes : cpu_pct, mem_used_mb, load1, disk_pct, net_rx, net_tx, chacune sous forme de liste de [heure, valeur]. Permission cluster:read.

Route : /api/v1/hosts/{host_id}/metrics (GET).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire les métriques d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.listHosts​

JsonNode listHosts(String clusterId)

Lister les machines d'un cluster. Machines du cluster triées par nom d'hôte, avec leur état, leur système d'exploitation, leurs ressources, leurs étiquettes, leurs composants, leurs alertes ouvertes, la version de leur agent, l'expiration de leur certificat, leurs dernières métriques et leurs débits réseau. Permission cluster:read ; 404 cluster_not_found.

Route : /api/v1/clusters/{cluster_id}/hosts (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. 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).

HostsApi.patchHost​

JsonNode patchHost(String hostId, Object body)

Modifier la baie, les étiquettes ou la maintenance d'une machine. Modifie les champs fournis et renvoie la machine. Activer la maintenance fait passer la machine à l'état maintenance, la désactiver la ramène à healthy. Permission hosts:manage ; 422 host_environment_unknown. Audité en host.update.

Route : /api/v1/hosts/{host_id} (PATCH).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
bodyObjectouiChamps de la machine à modifier.

Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier la baie, les étiquettes ou la maintenance d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.preflight​

JsonNode preflight(Object body)

Lancer les contrôles préalables d'une machine avant son amorçage. Lit la machine en SSH et depuis le Manager (résolution DNS directe et inverse, joignabilité TCP, ports requis libres, disques, système d'exploitation) et renvoie les contrôles classés pass, warning ou blocking, les nombres blocking et warnings, une empreinte reproductible digest et le verdict sur l'identifiant. Rien n'est installé. Permission hosts:manage. Erreurs : 422 ssh_policy_refused. Audité en host.preflight.

Route : /api/v1/hosts/preflight (POST).

NomTypeDéfautRequisDescription
bodyObjectouiAccès SSH, identité attendue, ports et disques à contrôler.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lancer les contrôles préalables d'une machine avant son amorçage ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.preflightResults​

JsonNode preflightResults(String hostId)

Lire les résultats des contrôles préalables d'une machine. Résultat de chaque contrôle préalable de la machine (check, status, message_i18n, details, checked_at), évalué à partir de ses dernières caractéristiques. Permission cluster:read.

Route : /api/v1/hosts/{host_id}/preflight (GET).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire les résultats des contrôles préalables d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.putParameters​

JsonNode putParameters(String hostId, Object body)

Appliquer des paramètres noyau à une machine. Enregistre les réglages sysctl et les limites de ressources et lance une opération qui les écrit dans /etc/sysctl.d/90-navin-manager.conf et /etc/security/limits.d/90-navin-manager.conf. Répond 202 avec operation_id. Permission hosts:manage. Erreurs : 422 validation_error (clé invalide ou requête vide), 409 host_rootless (agent sans droits root). Audité en host.parameters.

Route : /api/v1/hosts/{host_id}/parameters (PUT).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
bodyObjectouiRéglages sysctl et limites de ressources.

Retour : JsonNode. Réponse JSON décodée de l'opération « Appliquer des paramètres noyau à une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.refreshFacts​

JsonNode refreshFacts(String hostId)

Relever à nouveau les caractéristiques d'une machine. Lance une opération où l'agent relève et remonte à nouveau ses caractéristiques (les contrôles préalables sont évalués dessus). Répond 202 avec operation_id. Permission hosts:manage. Audité en host.facts_refresh.

Route : /api/v1/hosts/{host_id}/facts/refresh (POST).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Relever à nouveau les caractéristiques d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.revoke​

JsonNode revoke(String hostId, Object body)

Révoquer l'agent d'une machine. Passe l'état de confiance à revoked, révoque les certificats de l'agent et fait expirer ses commandes en attente. Seul un nouvel enrôlement le rétablit. Renvoie le nœud. Permission hosts:manage. Audité en host.revoke avec le nombre de certificats révoqués.

Route : /api/v1/hosts/{host_id}/revoke (POST).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
bodyObjectouiRaison du changement.

Retour : JsonNode. Réponse JSON décodée de l'opération « Révoquer l'agent d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.runPreflight​

JsonNode runPreflight(String hostId)

Lancer les contrôles préalables d'une machine. Lance une opération qui relève des caractéristiques à jour ; les contrôles préalables sont évalués à leur arrivée. Lisez les résultats avec GET /hosts/{host_id}/preflight. Répond 202 avec operation_id. Permission hosts:manage. Audité en host.preflight.

Route : /api/v1/hosts/{host_id}/preflight (POST).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lancer les contrôles préalables d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HostsApi.sshBootstrap​

JsonNode sshBootstrap(String clusterId, Object body)

Installer des agents par SSH. Lance une opération avec une tâche par machine : le Manager se connecte en SSH (la clé de la machine doit correspondre à l'empreinte fournie), installe l'agent et l'enregistre avec un jeton d'amorçage créé pour cette opération (valable 2 heures, une utilisation par machine). La clé privée est gardée en mémoire pour les tâches uniquement, jamais conservée ni journalisée. Une machine en échec n'arrête pas les autres. Répond 202 avec operation_id. Permission hosts:manage. Erreurs : 422 validation_error (nom invalide ou empreinte manquante), 404 cluster_not_found. Audité en host.ssh_bootstrap.

Route : /api/v1/clusters/{cluster_id}/hosts/ssh-bootstrap (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiMachines, compte SSH, clé privée et empreintes des clés des machines.

Retour : JsonNode. Réponse JSON décodée de l'opération « Installer des agents par SSH ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.HubApi​

Navin Trusted Hub. Client du Navin Trusted Hub : le Manager récupère (en ligne) ou importe (hors ligne) le document de distribution signé du client, le vérifie, conserve ses cibles (paquets et images approuvés avec leurs empreintes) et alimente le miroir avec les images approuvées. Opérations de ce groupe de l'API du Navin Manager.

HubApi.getStatus​

JsonNode getStatus()

Lire l'état du Hub. Renvoie configured, les réglages publics settings (le jeton n'est jamais renvoyé), l'état state du dernier document accepté et un résumé packages_summary. Permission system:read.

Route : /api/v1/hub (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire l'état du Hub ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HubApi.importOffline​

JsonNode importOffline(Object body)

Importer un document de distribution hors ligne. Vérifie et enregistre un document signé apporté sur support amovible (site isolé). Exige le client et les clés épinglées dans les réglages. Renvoie metadata_version, targets, images_loaded et changes. Permission settings:manage ; 422 hub_document_invalid quand un contrôle échoue. Audité en hub.import.

Route : /api/v1/hub/import (POST).

NomTypeDéfautRequisDescription
bodyObjectouiLe document de distribution signé, en JSON.

Retour : JsonNode. Réponse JSON décodée de l'opération « Importer un document de distribution hors ligne ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HubApi.listPackages​

JsonNode listPackages()

Lister les paquets approuvés. Cibles du document accepté (projet, nom, version, image, révocation), chacune indiquant si c'est la dernière version approuvée et si elle est installée sur un cluster. Renvoie items. Permission system:read.

Route : /api/v1/hub/packages (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les paquets approuvés ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HubApi.putSettings​

JsonNode putSettings(Object body)

Enregistrer les réglages du Hub. Enregistre la connexion au Hub et renvoie l'état. Le jeton est scellé ; laissez-le nul pour conserver celui enregistré. Permission settings:manage ; 422 hub_document_invalid quand trusted_keys_pem ne contient aucune clé publique Ed25519. Audité en hub.settings (identifiants des clés uniquement).

Route : /api/v1/hub/settings (PUT).

NomTypeDéfautRequisDescription
bodyObjectouiAdresse du Hub, client, clés et jeton.

Retour : JsonNode. Réponse JSON décodée de l'opération « Enregistrer les réglages du Hub ».

Erreurs levées : les erreurs typées du transport (Erreurs).

HubApi.sync​

JsonNode sync()

Synchroniser avec le Hub. Télécharge le document du client depuis le Hub, le vérifie et l'enregistre. Exige l'URL, le client et les clés épinglées dans les réglages. Renvoie metadata_version, targets, images_loaded et changes. Permission settings:manage. Audité en hub.sync.

Route : /api/v1/hub/sync (POST).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Synchroniser avec le Hub ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.KubernetesApi​

Clusters Kubernetes. Un cluster du Manager peut être un cluster Kubernetes plutôt qu'un ensemble de machines. Le Manager lui parle uniquement par son serveur d'API (jamais en SSH) avec un kubeconfig scellé, et y exécute les services du catalogue sous forme de ressources ManagedComponent du groupe platform.navin.ai : il écrit l'état souhaité (application côté serveur, gestionnaire de champs navin-manager), le Navin Platform Operator applique les charts, et toute réponse sur un composant est lue dans le statut de sa ressource. Le Navin Cluster Agent, déployé dans le cluster, reçoit des commandes signées et rend compte. Opérations de ce groupe de l'API du Navin Manager.

KubernetesApi.agentManifests​

JsonNode agentManifests(String clusterId, Map<String, ?> query)

Lire les manifestes de l'agent de cluster. ServiceAccount, RBAC et Deployment de l'agent de cluster pour l'espace de noms géré, sous forme d'objets (manifests) et de YAML (yaml) prêt pour kubectl apply. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/kubernetes/agent/manifests (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire les manifestes de l'agent de cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.agentManifests​

JsonNode agentManifests(String clusterId)

Lire les manifestes de l'agent de cluster. ServiceAccount, RBAC et Deployment de l'agent de cluster pour l'espace de noms géré, sous forme d'objets (manifests) et de YAML (yaml) prêt pour kubectl apply. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/kubernetes/agent/manifests (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire les manifestes de l'agent de cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.componentAction​

JsonNode componentAction(String clusterId, String name, Object body)

Exécuter une action sur un composant Kubernetes. Modifie l'état souhaité : start, stop, restart ou rolling_restart (un horodatage de redémarrage), scale (replicas fixes ou autoscaling, jamais sous le budget d'interruption) ou maintenance (enabled). Répond 202 avec component et requested. Permission services:operate. Erreurs : 409 k8s_maintenance, 409 k8s_component_stopped, 409 k8s_replicas_below_pdb. Audité en k8s.component.<action>.

Route : /api/v1/clusters/{cluster_id}/kubernetes/components/{name}/actions (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
nameStringouiNom du composant.
bodyObjectouiAction et ses arguments.

Retour : JsonNode. Réponse JSON décodée de l'opération « Exécuter une action sur un composant Kubernetes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.configureComponent​

JsonNode configureComponent(String clusterId, String name, Object body)

Configurer un composant Kubernetes. Modifie la version, la source, les valeurs, les références de secrets ou le budget d'interruption du composant (application côté serveur). Les valeurs qui ressemblent à des secrets sont refusées : utilisez secret_refs. Permission configs:edit. Erreurs : 422 k8s_values_secret, 409 k8s_maintenance, 404 k8s_component_not_found. Audité en k8s.component.configure (noms des champs uniquement).

Route : /api/v1/clusters/{cluster_id}/kubernetes/components/{name} (PATCH).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
nameStringouiNom du composant.
bodyObjectouiChamps du composant à modifier.

Retour : JsonNode. Réponse JSON décodée de l'opération « Configurer un composant Kubernetes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.getAgent​

JsonNode getAgent(String clusterId)

Lire l'agent de cluster. État de l'identité du Navin Cluster Agent et son dernier rapport. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/kubernetes/agent (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire l'agent de cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.getComponent​

JsonNode getComponent(String clusterId, String name)

Lire un composant Kubernetes. Lit la ressource et renvoie son état observé. Permission cluster:read ; 404 k8s_component_not_found (l'enregistrement est supprimé quand la ressource a disparu).

Route : /api/v1/clusters/{cluster_id}/kubernetes/components/{name} (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
nameStringouiNom du composant.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un composant Kubernetes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.getTarget​

JsonNode getTarget(String clusterId)

Lire une cible Kubernetes. Renvoie le serveur d'API, l'espace de noms, la version du serveur, le mode, la distribution et le nombre de nœuds découverts, l'heure de la découverte, la dernière erreur et le kubeconfig sous la forme {"secret": true, "set": true}. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/kubernetes (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire une cible Kubernetes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.importRbac​

JsonNode importRbac(String clusterId, Map<String, ?> query)

Lire le RBAC de l'identité d'import. RBAC à moindre privilège de l'identité qu'utilise le Manager pour le cluster, sous forme d'objets et de YAML, avec le nom d'utilisateur obtenu : lecture de ce dont la découverte a besoin, écriture uniquement des ressources platform.navin.ai dans l'espace de noms géré ; aucun Secret, objet RBAC, charge de travail, exec ni usurpation d'identité. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/kubernetes/import-rbac (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire le RBAC de l'identité d'import ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.importRbac​

JsonNode importRbac(String clusterId)

Lire le RBAC de l'identité d'import. RBAC à moindre privilège de l'identité qu'utilise le Manager pour le cluster, sous forme d'objets et de YAML, avec le nom d'utilisateur obtenu : lecture de ce dont la découverte a besoin, écriture uniquement des ressources platform.navin.ai dans l'espace de noms géré ; aucun Secret, objet RBAC, charge de travail, exec ni usurpation d'identité. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/kubernetes/import-rbac (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire le RBAC de l'identité d'import ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.installComponent​

JsonNode installComponent(String clusterId, Object body)

Installer un service du catalogue sur Kubernetes. Crée la ressource ManagedComponent d'un service du catalogue (chart depuis un chemin ou une référence OCI épinglée par empreinte) et renvoie son état (201). Les valeurs qui ressemblent à des secrets sont refusées. Permission services:install. Erreurs : 409 k8s_component_exists, 422 k8s_values_secret, 409 k8s_replicas_below_pdb. Audité en k8s.component.install.

Route : /api/v1/clusters/{cluster_id}/kubernetes/components (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiService, source, valeurs, réplicas et politiques du composant.

Retour : JsonNode. Réponse JSON décodée de l'opération « Installer un service du catalogue sur Kubernetes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.issue​

JsonNode issue(String clusterId, Object body)

Émettre l'identité de l'agent de cluster. Émet le certificat client et la configuration du Navin Cluster Agent : certificate_pem, private_key_pem (renvoyée une seule fois, jamais conservée), ca_pem, manager_public_key_pem, config, fingerprint et not_after (201). Permission cluster:manage ; 422 k8s_agent_gateway_url_invalid. Audité en k8s.agent.issue.

Route : /api/v1/clusters/{cluster_id}/kubernetes/agent (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiURL de la passerelle, locataire et délai hors ligne de l'agent.

Retour : JsonNode. Réponse JSON décodée de l'opération « Émettre l'identité de l'agent de cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.lastDiscovery​

JsonNode lastDiscovery(String clusterId)

Lire la dernière découverte d'un cluster Kubernetes. Renvoie l'inventaire de la dernière découverte. Permission cluster:read ; 404 k8s_not_discovered.

Route : /api/v1/clusters/{cluster_id}/kubernetes/discovery (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la dernière découverte d'un cluster Kubernetes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.listCommands​

JsonNode listCommands(String clusterId)

Lister les commandes de l'agent de cluster. Les 200 dernières commandes mises en file pour l'agent de cluster, chacune avec ses reçus. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/kubernetes/agent/commands (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les commandes de l'agent de cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.listComponents​

JsonNode listComponents(String clusterId)

Lister les composants Kubernetes. Liste en direct : chaque ManagedComponent de l'espace de noms avec son statut, qui est aussi inscrit dans le modèle du Manager. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/kubernetes/components (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les composants Kubernetes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.patchTarget​

JsonNode patchTarget(String clusterId, Object body)

Modifier une cible Kubernetes. Modifie le serveur d'API, le kubeconfig (renvoyez l'objet relu pour le conserver) ou l'espace de noms (refusé tant que des composants restent) ; le contrôle du kubeconfig s'exécute à nouveau. Permission cluster:manage. Erreurs : 422 validation_error, 409 k8s_components_remain. Audité en k8s.cluster.update.

Route : /api/v1/clusters/{cluster_id}/kubernetes (PATCH).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiChamps de la cible à modifier.

Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier une cible Kubernetes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.queueCommand​

JsonNode queueCommand(String clusterId, Object body)

Mettre en file une commande signée pour l'agent de cluster. Enregistre la décision d'autorisation, puis met en file une commande signée (managedcomponent.apply, managedcomponent.delete ou inventory.report) que l'agent récupère. Répond 202 avec la commande. Permission services:operate. Audité en k8s.agent.policy.

Route : /api/v1/clusters/{cluster_id}/kubernetes/agent/commands (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiOpération, paramètres, clé d'idempotence et validité.

Retour : JsonNode. Réponse JSON décodée de l'opération « Mettre en file une commande signée pour l'agent de cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.register​

JsonNode register(String clusterId, Object body)

Enregistrer un cluster Kubernetes. Contrôle le kubeconfig par rapport au serveur d'API fourni, appelle /version, scelle le kubeconfig et fait du cluster un cluster Kubernetes. Le cluster ne doit avoir aucune machine. Renvoie la cible (201). Permission cluster:manage. Erreurs : 409 k8s_already_registered, 409 k8s_cluster_has_hosts, erreurs du contrôle du kubeconfig et de l'API. Audité en k8s.cluster.register.

Route : /api/v1/clusters/{cluster_id}/kubernetes (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiServeur d'API, kubeconfig et espace de noms.

Retour : JsonNode. Réponse JSON décodée de l'opération « Enregistrer un cluster Kubernetes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.removeComponent​

JsonNode removeComponent(String clusterId, String name)

Retirer un composant Kubernetes. Supprime la ressource ManagedComponent ; l'opérateur désinstalle le chart. Répond 202 avec {"name", "state": "removed"} une fois la ressource disparue, sinon le composant en cours de suppression. Permission services:install. Erreurs : 404 k8s_component_not_found, 409 k8s_maintenance. Audité en k8s.component.remove.

Route : /api/v1/clusters/{cluster_id}/kubernetes/components/{name} (DELETE).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
nameStringouiNom du composant (la ressource ManagedComponent).

Retour : JsonNode. Réponse JSON décodée de l'opération « Retirer un composant Kubernetes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.revoke​

JsonNode revoke(String clusterId)

Révoquer l'identité de l'agent de cluster. Révoque l'identité du Navin Cluster Agent. Répond 204. Permission cluster:manage ; 404 k8s_agent_not_registered. Audité en k8s.agent.revoke.

Route : /api/v1/clusters/{cluster_id}/kubernetes/agent (DELETE).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Révoquer l'identité de l'agent de cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.runDiscovery​

JsonNode runDiscovery(String clusterId)

Découvrir un cluster Kubernetes. Lit, par des appels en lecture seule, la version, la distribution (fournie par le client ou gérée), les nœuds avec leur capacité et leurs GPU, les classes de stockage et d'ingress, CoreDNS et les modules de la plateforme (cert-manager, Cilium, Kyverno, Argo CD, KEDA...). Enregistre et renvoie l'inventaire. Permission hosts:manage. Audité en k8s.discovery.

Route : /api/v1/clusters/{cluster_id}/kubernetes/discovery (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Découvrir un cluster Kubernetes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

KubernetesApi.unregister​

JsonNode unregister(String clusterId)

Désenregistrer un cluster Kubernetes. Oublie le serveur d'API et le kubeconfig ; le cluster redevient un cluster de machines. Refusé tant que des composants restent (409 k8s_components_remain). Répond 204. Permission cluster:manage. Audité en k8s.cluster.unregister.

Route : /api/v1/clusters/{cluster_id}/kubernetes (DELETE).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Désenregistrer un cluster Kubernetes ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.LifecycleApi​

Cycle de vie. Le cycle de vie d'un cluster et de ses services après l'installation : profil d'installation et approbations, contrôles préalables, contrôles de vivacité, de disponibilité et de fonctionnement, mises à niveau avec retour arrière et restauration, sauvegardes et restaurations coordonnées, détection des dérives, archives de support expurgées, rapports de recette signés et fiche uniforme de composant. Opérations de ce groupe de l'API du Navin Manager.

LifecycleApi.acceptanceKey​

JsonNode acceptanceKey()

Lire la clé publique qui signe les rapports de recette. Renvoie algorithm (Ed25519), key_id et public_key_pem, pour vérifier un rapport hors ligne. Tout utilisateur connecté.

Route : /api/v1/acceptance/public-key (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la clé publique qui signe les rapports de recette ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.clusterProfile​

JsonNode clusterProfile(String clusterId, Map<String, ?> query)

Évaluer le profil d'un cluster. Chaque règle du profil du cluster (ou de profile, pour comparer avant d'en choisir un) évaluée par rapport à l'état réel, chacune avec son status (pass ou fail), son libellé et sa raison ; le statut est bloqué quand une règle échoue. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/profile (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Évaluer le profil d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.clusterProfile​

JsonNode clusterProfile(String clusterId)

Évaluer le profil d'un cluster. Chaque règle du profil du cluster (ou de profile, pour comparer avant d'en choisir un) évaluée par rapport à l'état réel, chacune avec son status (pass ou fail), son libellé et sa raison ; le statut est bloqué quand une règle échoue. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/profile (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Évaluer le profil d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.componentSheet​

JsonNode componentSheet(String clusterId, String service)

Lire la fiche de composant d'un service. Chaque onglet de la fiche uniforme de composant, à partir de l'état observé : overview, instances, config, dependencies, logs, metrics, security (TLS, points d'accès, secrets définis ou non, ports, certificats, utilisateurs d'exécution, profil), operations, upgrade, backups, audit et support. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/services/{service}/sheet (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la fiche de composant d'un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.createBackup​

JsonNode createBackup(String clusterId, Object body)

Prendre une sauvegarde coordonnée. Lance une opération qui sauvegarde les services fournis (par défaut tous les services sauvegardables) dans l'ordre des dépendances, avec un set_id commun ; le lot ne réussit que si chaque membre a réussi. Renvoie operation_id, set_id et backup_ids. Permission services:operate. Audité en backup.create.

Route : /api/v1/clusters/{cluster_id}/backups (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiServices à sauvegarder.

Retour : JsonNode. Réponse JSON décodée de l'opération « Prendre une sauvegarde coordonnée ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.createBundle​

JsonNode createBundle(String clusterId)

Construire une archive de support. Lance une opération qui rassemble les fins de journaux, le profil, les machines, les versions et états des services, la configuration produite, les alertes ouvertes, les constats de dérive et l'historique des opérations dans une archive tar.gz où chaque secret et chaque donnée personnelle est masqué. Renvoie operation_id et bundle_id. Permission cluster:manage. Audité en support.bundle.

Route : /api/v1/clusters/{cluster_id}/support-bundles (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Construire une archive de support ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.createReport​

JsonNode createReport(String clusterId)

Lancer une recette. Lance l'opération acceptance.run : contrôles préalables du cluster, vivacité de chaque instance en marche, disponibilité et test fonctionnel de chaque service géré (chaque étape tolère ses échecs pour que tous les contrôles s'exécutent), puis le rapport signé. Renvoie operation_id et report_id. Permission services:install. Audité en acceptance.run.

Route : /api/v1/clusters/{cluster_id}/acceptance-reports (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lancer une recette ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.decideApproval​

JsonNode decideApproval(String clusterId, String approvalId, Object body)

Approuver ou rejeter une demande d'approbation. Tranche une demande en attente ; le demandeur ne peut pas trancher la sienne. Renvoie l'approbation. Permission cluster:manage. Erreurs : 404 approval_invalid, 409 approval_not_pending, 403 approval_self. Audité en approval.approve ou approval.reject.

Route : /api/v1/clusters/{cluster_id}/approvals/{approval_id}/decision (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
approvalIdStringouiIdentifiant de la demande d'approbation.
bodyObjectouiLa décision.

Retour : JsonNode. Réponse JSON décodée de l'opération « Approuver ou rejeter une demande d'approbation ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.downloadBundle​

JsonNode downloadBundle(String clusterId, String bundleId)

Télécharger une archive de support. Renvoie l'archive navin-support-<heure>.tar.gz d'une archive réussie. Permission cluster:manage ; 404 bundle_not_found. Audité en support.bundle_download.

Route : /api/v1/clusters/{cluster_id}/support-bundles/{bundle_id}/download (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bundleIdStringouiIdentifiant de l'archive de support.

Retour : JsonNode. Réponse JSON décodée de l'opération « Télécharger une archive de support ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.driftReconcile​

JsonNode driftReconcile(String clusterId, String findingId, Object body)

Corriger un constat de dérive. Réécrit les fichiers et unités de l'instance qui a dérivé à partir de la configuration du Manager (et la redémarre si demandé). Renvoie operation_id. Permission configs:edit. Erreurs : 404 drift_not_found, 409 drift_not_reconcilable (un fichier qui n'appartient à aucun service). Audité en drift.reconcile.

Route : /api/v1/clusters/{cluster_id}/drift/{finding_id}/reconcile (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
findingIdStringouiIdentifiant du constat de dérive.
bodyObjectouiOption de redémarrage et approbation facultative.

Retour : JsonNode. Réponse JSON décodée de l'opération « Corriger un constat de dérive ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.driftReport​

JsonNode driftReport(String clusterId, Map<String, ?> query)

Lire le rapport de dérive d'un cluster. Constats des derniers contrôles : fichiers et unités gérés modifiés, supprimés ou remplacés en dehors du Manager, avec machine, service, composant et chemin. Les constats ouverts lèvent l'alerte config_drift. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/drift (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire le rapport de dérive d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.driftReport​

JsonNode driftReport(String clusterId)

Lire le rapport de dérive d'un cluster. Constats des derniers contrôles : fichiers et unités gérés modifiés, supprimés ou remplacés en dehors du Manager, avec machine, service, composant et chemin. Les constats ouverts lèvent l'alerte config_drift. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/drift (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire le rapport de dérive d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.driftScan​

JsonNode driftScan(String clusterId, Object body)

Rechercher les dérives du cluster. Lance une opération avec une tâche d'empreintes par machine sur les fichiers et unités écrits par le Manager ; les différences ouvrent des constats. Renvoie operation_id. Permission services:operate. Audité en drift.scan.

Route : /api/v1/clusters/{cluster_id}/drift/scan (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiMachines à contrôler.

Retour : JsonNode. Réponse JSON décodée de l'opération « Rechercher les dérives du cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.getReport​

JsonNode getReport(String clusterId, String reportId)

Lire un rapport de recette signé. Renvoie le document signé : un élément par contrôle avec PASS, FAIL ou BLOCKED et sa preuve, le verdict (FAIL quand un élément a échoué, BLOCKED quand aucun n'a échoué et qu'un est bloqué, sinon PASS) et la signature. Permission cluster:read ; 404 acceptance_not_found tant que l'exécution n'a pas réussi.

Route : /api/v1/clusters/{cluster_id}/acceptance-reports/{report_id} (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
reportIdStringouiIdentifiant du rapport de recette.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un rapport de recette signé ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.listApprovals​

JsonNode listApprovals(String clusterId)

Lister les approbations d'un cluster. Les 200 dernières approbations, de la plus récente à la plus ancienne : action, service, reason, status (pending, approved, rejected, expired ou used), demandeur, décideur, l'opération qui l'a utilisée et les horaires. Les approbations échues sont d'abord marquées expired. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/approvals (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les approbations d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.listBackups​

JsonNode listBackups(String clusterId, Map<String, ?> query)

Lister les sauvegardes de services d'un cluster. Renvoie backupable (les services installés dont le catalogue déclare une sauvegarde) et les 300 dernières sauvegardes avec leur service, machine, lot, statut, fichiers et empreintes. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/backups (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les sauvegardes de services d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.listBackups​

JsonNode listBackups(String clusterId)

Lister les sauvegardes de services d'un cluster. Renvoie backupable (les services installés dont le catalogue déclare une sauvegarde) et les 300 dernières sauvegardes avec leur service, machine, lot, statut, fichiers et empreintes. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/backups (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les sauvegardes de services d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.listBundles​

JsonNode listBundles(String clusterId)

Lister les archives de support d'un cluster. Les 50 dernières archives avec leur statut, leur taille, leur SHA-256, leur contenu, leurs masquages et leur opération. Permission cluster:manage.

Route : /api/v1/clusters/{cluster_id}/support-bundles (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les archives de support d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.listProfiles​

JsonNode listProfiles()

Lister les profils d'installation. Chaque profil avec son libellé et sa description dans les deux langues, ses règles, l'exigence ou non d'approbations et la sévérité des règles réseau. Tout utilisateur connecté.

Route : /api/v1/profiles (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les profils d'installation ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.listReports​

JsonNode listReports(String clusterId)

Lister les rapports de recette d'un cluster. Les 100 dernières exécutions de recette du cluster, de la plus récente à la plus ancienne, avec leur statut, leur verdict et leur opération. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/acceptance-reports (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les rapports de recette d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.listUpgrades​

JsonNode listUpgrades(String clusterId)

Lister les mises à niveau d'un cluster. Les 200 dernières mises à niveau de chaque service avec leurs versions, leur statut, leur sauvegarde et leurs opérations. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/upgrades (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les mises à niveau d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.reportHtml​

JsonNode reportHtml(String clusterId, String reportId, Map<String, ?> query)

Lire un rapport de recette en HTML. Produit le rapport sous forme de page HTML autonome dans la langue demandée, pour l'imprimer ou l'archiver. Permission cluster:read ; 404 acceptance_not_found.

Route : /api/v1/clusters/{cluster_id}/acceptance-reports/{report_id}/html (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
reportIdStringouiIdentifiant du rapport de recette.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un rapport de recette en HTML ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.reportHtml​

JsonNode reportHtml(String clusterId, String reportId)

Lire un rapport de recette en HTML. Produit le rapport sous forme de page HTML autonome dans la langue demandée, pour l'imprimer ou l'archiver. Permission cluster:read ; 404 acceptance_not_found.

Route : /api/v1/clusters/{cluster_id}/acceptance-reports/{report_id}/html (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
reportIdStringouiIdentifiant du rapport de recette.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un rapport de recette en HTML ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.requestApproval​

JsonNode requestApproval(String clusterId, Object body)

Demander une approbation. Enregistre une demande en attente pour une action perturbatrice sur un service ; un autre utilisateur la tranche. Renvoie l'approbation (201). Permission services:operate. Audité en approval.request.

Route : /api/v1/clusters/{cluster_id}/approvals (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiAction, service et raison.

Retour : JsonNode. Réponse JSON décodée de l'opération « Demander une approbation ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.restoreBackup​

JsonNode restoreBackup(String clusterId, String backupId, Object body)

Restaurer une sauvegarde de service. Lance l'opération de restauration : arrêt des instances, contrôle des empreintes, étapes de restauration, démarrage des instances, contrôles de santé, étapes de vérification, contrôle de service et test fonctionnel. Renvoie operation_id. Permission services:install ; une approbation sous banking-secure. Audité en backup.restore.

Route : /api/v1/clusters/{cluster_id}/backups/{backup_id}/restore (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
backupIdStringouiIdentifiant de la sauvegarde de service.
bodyObjectouiApprobation facultative.

Retour : JsonNode. Réponse JSON décodée de l'opération « Restaurer une sauvegarde de service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.restoreUpgrade​

JsonNode restoreUpgrade(String clusterId, String upgradeId, Object body)

Restaurer la sauvegarde prise avant une mise à niveau. Lance l'opération qui ramène la version précédente et ses données depuis la sauvegarde prise avant la mise à niveau, quand un retour arrière n'est pas possible. Renvoie operation_id. Permission services:install ; 404 upgrade_not_found ; une approbation sous banking-secure. Audité en service.restore.

Route : /api/v1/clusters/{cluster_id}/upgrades/{upgrade_id}/restore (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
upgradeIdStringouiIdentifiant de la mise à niveau.
bodyObjectouiApprobation facultative.

Retour : JsonNode. Réponse JSON décodée de l'opération « Restaurer la sauvegarde prise avant une mise à niveau ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.rollback​

JsonNode rollback(String clusterId, String upgradeId, Object body)

Annuler une mise à niveau. Lance l'opération qui rejoue les tâches scellées de la version précédente et rétablit la version de configuration précédente. Refusé quand le descripteur le déclare impossible ou qu'une migration irréversible a eu lieu (utilisez alors la restauration). Renvoie operation_id. Permission services:install ; 404 upgrade_not_found. Audité en service.rollback.

Route : /api/v1/clusters/{cluster_id}/upgrades/{upgrade_id}/rollback (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
upgradeIdStringouiIdentifiant de la mise à niveau.
bodyObjectouiApprobation facultative.

Retour : JsonNode. Réponse JSON décodée de l'opération « Annuler une mise à niveau ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.runPreflight​

JsonNode runPreflight(String clusterId, Object body)

Lancer les contrôles préalables d'installation d'un cluster. Chaque contrôle qui doit réussir avant l'installation ou la mise à niveau d'un service, avec sa sévérité, sa preuve et un verdict bloquant : caractéristiques des machines, DNS, contrôles préalables du catalogue, pare-feu, capacité, versions, TLS et règles du profil. Un contrôle en fail bloque. Rien n'est modifié. Permission services:install.

Route : /api/v1/clusters/{cluster_id}/preflight (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiServices et machines à contrôler.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lancer les contrôles préalables d'installation d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.serviceChecks​

JsonNode serviceChecks(String clusterId, String service)

Lire les contrôles d'un service. Vivacité de chaque instance (contrôles de santé de l'agent), disponibilité (contrôle de service) et test fonctionnel, chacun avec son statut, ses résultats, son erreur et son heure. Seul un test fonctionnel réussi prouve que le service fonctionne. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/services/{service}/checks (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire les contrôles d'un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.setProfile​

JsonNode setProfile(String clusterId, Object body)

Changer le profil d'un cluster. Définit le profil d'installation et renvoie son évaluation. Permission cluster:manage. Audité en cluster.profile avec l'ancien et le nouveau profil.

Route : /api/v1/clusters/{cluster_id}/profile (PUT).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiLe nouveau profil.

Retour : JsonNode. Réponse JSON décodée de l'opération « Changer le profil d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.startUpgrade​

JsonNode startUpgrade(String clusterId, String service, Object body)

Mettre à niveau un service. Met à niveau le service vers la version du catalogue en une seule opération :

Route : /api/v1/clusters/{cluster_id}/services/{service}/upgrade (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
bodyObjectouiMachine canari et approbation facultative.

Retour : JsonNode. Réponse JSON décodée de l'opération « Mettre à niveau un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.upgradeInfo​

JsonNode upgradeInfo(String clusterId, String service)

Vérifier si un service peut être mis à niveau. Renvoie from (version installée), to (version du catalogue), allowed avec les problèmes problems, stateful, backup_before, les migrations, la possibilité d'un retour arrière rollback, la matrice de mise à niveau et l'historique history des 50 dernières mises à niveau. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/services/{service}/upgrade (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. Réponse JSON décodée de l'opération « Vérifier si un service peut être mis à niveau ».

Erreurs levées : les erreurs typées du transport (Erreurs).

LifecycleApi.verifyReport​

JsonNode verifyReport(Object body)

Vérifier la signature d'un rapport de recette. Contrôle la signature Ed25519 d'un document de rapport avec la clé de ce Manager et renvoie valid, trusted, key_id et la raison reason d'un refus. Tout utilisateur connecté.

Route : /api/v1/acceptance/verify (POST).

NomTypeDéfautRequisDescription
bodyObjectouiLe document de rapport signé.

Retour : JsonNode. Réponse JSON décodée de l'opération « Vérifier la signature d'un rapport de recette ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.McpApi​

Serveurs MCP. Les serveurs MCP (Model Context Protocol) d'un projet de locataire : créés à partir d'un modèle de la bibliothèque Navin ou saisis par un administrateur, testés, et éventuellement hébergés sur le service mcp-host d'un cluster. Opérations de ce groupe de l'API du Navin Manager.

McpApi.createServer​

JsonNode createServer(Object body)

Créer un serveur MCP. Crée un serveur à partir d'un modèle (ses champs obligatoires sont exigés) ou un serveur personnalisé, et le renvoie (201). Un modèle dont l'URL n'est pas interne exige url réglé sur l'adresse interne de son serveur. Permission mcp:manage. Erreurs : 422 mcp_fields_missing, 422 mcp_fields_unknown, 422 mcp_target_required, 422 mcp_online_forbidden, 404 mcp_preset_not_found, 409 mcp_server_name_taken. Audité en mcp.create.

Route : /api/v1/mcp/servers (POST).

NomTypeDéfautRequisDescription
bodyObjectouiLocataire, projet et définition du serveur.

Retour : JsonNode. Réponse JSON décodée de l'opération « Créer un serveur MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.deleteServer​

JsonNode deleteServer(String serverId, Map<String, ?> query)

Supprimer un serveur MCP. Supprime le serveur ; un serveur hébergé est d'abord retiré de son hébergement. Répond 204. Permission mcp:manage ; 404 mcp_server_not_found. Audité en mcp.delete.

Route : /api/v1/mcp/servers/{server_id} (DELETE).

NomTypeDéfautRequisDescription
serverIdStringouiIdentifiant du serveur MCP.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Supprimer un serveur MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.deleteServer​

JsonNode deleteServer(String serverId)

Supprimer un serveur MCP. Supprime le serveur ; un serveur hébergé est d'abord retiré de son hébergement. Répond 204. Permission mcp:manage ; 404 mcp_server_not_found. Audité en mcp.delete.

Route : /api/v1/mcp/servers/{server_id} (DELETE).

NomTypeDéfautRequisDescription
serverIdStringouiIdentifiant du serveur MCP.

Retour : JsonNode. Réponse JSON décodée de l'opération « Supprimer un serveur MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.getServer​

JsonNode getServer(String serverId, Map<String, ?> query)

Lire un serveur MCP. Renvoie le serveur avec son transport, son URL ou sa commande, ses outils autorisés, les noms des champs configurés et secrets, son dernier test et son hébergement (état, cluster, URL ; jamais le jeton). Permission mcp:read ; 404 mcp_server_not_found.

Route : /api/v1/mcp/servers/{server_id} (GET).

NomTypeDéfautRequisDescription
serverIdStringouiIdentifiant du serveur MCP.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un serveur MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.getServer​

JsonNode getServer(String serverId)

Lire un serveur MCP. Renvoie le serveur avec son transport, son URL ou sa commande, ses outils autorisés, les noms des champs configurés et secrets, son dernier test et son hébergement (état, cluster, URL ; jamais le jeton). Permission mcp:read ; 404 mcp_server_not_found.

Route : /api/v1/mcp/servers/{server_id} (GET).

NomTypeDéfautRequisDescription
serverIdStringouiIdentifiant du serveur MCP.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un serveur MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.hostServer​

JsonNode hostServer(String serverId, Object body, Map<String, ?> query)

Héberger un serveur MCP stdio sur un cluster. Héberge un serveur stdio sur le service mcp-host d'un cluster : un nouveau jeton porteur (scellé ; l'environnement d'exécution ne reçoit que son SHA-256), statut deploying, puis l'opération mcp.hosting.apply qui écrit servers.json sur chaque instance ; le statut devient hosted ou failed. Répond 202 avec le serveur et operation_id. Permission mcp:manage. Erreurs : 422 mcp_hosting_stdio_only, 409 mcp_hosting_disabled, 409 mcp_host_not_installed. Audité en mcp.host.

Route : /api/v1/mcp/servers/{server_id}/hosting (POST).

NomTypeDéfautRequisDescription
serverIdStringouiIdentifiant du serveur MCP.
bodyObjectouiCluster et limites de l'hébergement.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Héberger un serveur MCP stdio sur un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.hostServer​

JsonNode hostServer(String serverId, Object body)

Héberger un serveur MCP stdio sur un cluster. Héberge un serveur stdio sur le service mcp-host d'un cluster : un nouveau jeton porteur (scellé ; l'environnement d'exécution ne reçoit que son SHA-256), statut deploying, puis l'opération mcp.hosting.apply qui écrit servers.json sur chaque instance ; le statut devient hosted ou failed. Répond 202 avec le serveur et operation_id. Permission mcp:manage. Erreurs : 422 mcp_hosting_stdio_only, 409 mcp_hosting_disabled, 409 mcp_host_not_installed. Audité en mcp.host.

Route : /api/v1/mcp/servers/{server_id}/hosting (POST).

NomTypeDéfautRequisDescription
serverIdStringouiIdentifiant du serveur MCP.
bodyObjectouiCluster et limites de l'hébergement.

Retour : JsonNode. Réponse JSON décodée de l'opération « Héberger un serveur MCP stdio sur un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.hostedServers​

JsonNode hostedServers(Map<String, ?> query)

Lister les serveurs MCP hébergés avec leurs jetons. Serveurs hébergés d'un locataire (un projet ou tous) avec url, le jeton porteur token, allowed_tools, status et hosted_at, pour la plateforme Navin Enterprise. Permission mcp:publish (rôle admin uniquement). Audité en mcp.hosted_list (identifiants uniquement, jamais un jeton).

Route : /api/v1/mcp/hosted (GET).

NomTypeDéfautRequisDescription
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les serveurs MCP hébergés avec leurs jetons ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.hostedServers​

JsonNode hostedServers()

Lister les serveurs MCP hébergés avec leurs jetons. Serveurs hébergés d'un locataire (un projet ou tous) avec url, le jeton porteur token, allowed_tools, status et hosted_at, pour la plateforme Navin Enterprise. Permission mcp:publish (rôle admin uniquement). Audité en mcp.hosted_list (identifiants uniquement, jamais un jeton).

Route : /api/v1/mcp/hosted (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les serveurs MCP hébergés avec leurs jetons ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.hostingInfrastructure​

JsonNode hostingInfrastructure(Map<String, ?> query)

Lire l'infrastructure d'hébergement MCP. Par cluster : installation ou non de mcp-host, ses instances (FQDN, URL de base, état) et le nombre de serveurs que chacune héberge. Un serveur est placé sur une instance d'après une empreinte de son identifiant. Permission mcp:read.

Route : /api/v1/mcp/hosting (GET).

NomTypeDéfautRequisDescription
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire l'infrastructure d'hébergement MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.hostingInfrastructure​

JsonNode hostingInfrastructure()

Lire l'infrastructure d'hébergement MCP. Par cluster : installation ou non de mcp-host, ses instances (FQDN, URL de base, état) et le nombre de serveurs que chacune héberge. Un serveur est placé sur une instance d'après une empreinte de son identifiant. Permission mcp:read.

Route : /api/v1/mcp/hosting (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire l'infrastructure d'hébergement MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.listPresets​

JsonNode listPresets()

Lister les modèles MCP. Modèles de la bibliothèque Navin (nom, catégorie, transport, hébergement, champs à remplir), triés par catégorie et par nom. Permission mcp:read ; 503 mcp_presets_unavailable.

Route : /api/v1/mcp/presets (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les modèles MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.listServers​

JsonNode listServers(Map<String, ?> query)

Lister les serveurs MCP d'un projet. Serveurs d'un projet d'un locataire (les deux obligatoires), sans aucune valeur secrète. Permission mcp:read.

Route : /api/v1/mcp/servers (GET).

NomTypeDéfautRequisDescription
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les serveurs MCP d'un projet ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.listServers​

JsonNode listServers()

Lister les serveurs MCP d'un projet. Serveurs d'un projet d'un locataire (les deux obligatoires), sans aucune valeur secrète. Permission mcp:read.

Route : /api/v1/mcp/servers (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les serveurs MCP d'un projet ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.renewToken​

JsonNode renewToken(String serverId, Map<String, ?> query)

Renouveler le jeton d'un serveur MCP hébergé. Émet un nouveau jeton porteur et l'applique ; l'ancien jeton cesse de fonctionner une fois l'application faite. Répond 202. Permission mcp:manage. Erreurs : 409 mcp_not_hosted, 409 mcp_hosting_disabled. Audité en mcp.hosting_token.

Route : /api/v1/mcp/servers/{server_id}/hosting/token (POST).

NomTypeDéfautRequisDescription
serverIdStringouiIdentifiant du serveur MCP.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Renouveler le jeton d'un serveur MCP hébergé ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.renewToken​

JsonNode renewToken(String serverId)

Renouveler le jeton d'un serveur MCP hébergé. Émet un nouveau jeton porteur et l'applique ; l'ancien jeton cesse de fonctionner une fois l'application faite. Répond 202. Permission mcp:manage. Erreurs : 409 mcp_not_hosted, 409 mcp_hosting_disabled. Audité en mcp.hosting_token.

Route : /api/v1/mcp/servers/{server_id}/hosting/token (POST).

NomTypeDéfautRequisDescription
serverIdStringouiIdentifiant du serveur MCP.

Retour : JsonNode. Réponse JSON décodée de l'opération « Renouveler le jeton d'un serveur MCP hébergé ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.testServer​

JsonNode testServer(String serverId, Map<String, ?> query)

Tester un serveur MCP. Parle MCP au serveur (initialize, notifications/initialized, tools/list) en HTTP en flux, en SSE, ou sur l'entrée et la sortie standard de la commande quand elle est dans le PATH (sans shell, avec un délai) ; un serveur hébergé est testé à son URL d'hébergement avec son jeton. Renvoie et conserve dans last_test le résultat {ok, tools, server_info, error, tested_at} ; une erreur ne répète jamais une valeur secrète. Permission mcp:manage ; 422 mcp_online_forbidden. Audité en mcp.test.

Route : /api/v1/mcp/servers/{server_id}/test (POST).

NomTypeDéfautRequisDescription
serverIdStringouiIdentifiant du serveur MCP.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Tester un serveur MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.testServer​

JsonNode testServer(String serverId)

Tester un serveur MCP. Parle MCP au serveur (initialize, notifications/initialized, tools/list) en HTTP en flux, en SSE, ou sur l'entrée et la sortie standard de la commande quand elle est dans le PATH (sans shell, avec un délai) ; un serveur hébergé est testé à son URL d'hébergement avec son jeton. Renvoie et conserve dans last_test le résultat {ok, tools, server_info, error, tested_at} ; une erreur ne répète jamais une valeur secrète. Permission mcp:manage ; 422 mcp_online_forbidden. Audité en mcp.test.

Route : /api/v1/mcp/servers/{server_id}/test (POST).

NomTypeDéfautRequisDescription
serverIdStringouiIdentifiant du serveur MCP.

Retour : JsonNode. Réponse JSON décodée de l'opération « Tester un serveur MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.unhostServer​

JsonNode unhostServer(String serverId, Map<String, ?> query)

Arrêter l'hébergement d'un serveur MCP. Retire le serveur de son hébergement : statut removing, puis l'opération mcp.hosting.apply sans lui (none à la fin). Répond 202 avec le serveur et operation_id. Permission mcp:manage ; 409 mcp_not_hosted. Audité en mcp.unhost.

Route : /api/v1/mcp/servers/{server_id}/hosting (DELETE).

NomTypeDéfautRequisDescription
serverIdStringouiIdentifiant du serveur MCP.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Arrêter l'hébergement d'un serveur MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.unhostServer​

JsonNode unhostServer(String serverId)

Arrêter l'hébergement d'un serveur MCP. Retire le serveur de son hébergement : statut removing, puis l'opération mcp.hosting.apply sans lui (none à la fin). Répond 202 avec le serveur et operation_id. Permission mcp:manage ; 409 mcp_not_hosted. Audité en mcp.unhost.

Route : /api/v1/mcp/servers/{server_id}/hosting (DELETE).

NomTypeDéfautRequisDescription
serverIdStringouiIdentifiant du serveur MCP.

Retour : JsonNode. Réponse JSON décodée de l'opération « Arrêter l'hébergement d'un serveur MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.updateServer​

JsonNode updateServer(String serverId, Object body, Map<String, ?> query)

Modifier un serveur MCP. Modifie les champs fournis et renvoie le serveur. values est fusionné avec les valeurs enregistrées ; url, command, args, headers et env ne s'appliquent qu'aux serveurs personnalisés (422 mcp_custom_only). Désactiver un serveur hébergé le retire de son hébergement. Permission mcp:manage. Erreurs : 422 mcp_fields_unknown, 422 mcp_online_forbidden. Audité en mcp.update.

Route : /api/v1/mcp/servers/{server_id} (PATCH).

NomTypeDéfautRequisDescription
serverIdStringouiIdentifiant du serveur MCP.
bodyObjectouiChamps du serveur à modifier.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier un serveur MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpApi.updateServer​

JsonNode updateServer(String serverId, Object body)

Modifier un serveur MCP. Modifie les champs fournis et renvoie le serveur. values est fusionné avec les valeurs enregistrées ; url, command, args, headers et env ne s'appliquent qu'aux serveurs personnalisés (422 mcp_custom_only). Désactiver un serveur hébergé le retire de son hébergement. Permission mcp:manage. Erreurs : 422 mcp_fields_unknown, 422 mcp_online_forbidden. Audité en mcp.update.

Route : /api/v1/mcp/servers/{server_id} (PATCH).

NomTypeDéfautRequisDescription
serverIdStringouiIdentifiant du serveur MCP.
bodyObjectouiChamps du serveur à modifier.

Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier un serveur MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.McpRuntimeApi​

Environnement d'exécution MCP. L'environnement d'exécution MCP d'un cluster Kubernetes : le ToolHive Kubernetes Operator, installé à partir de charts épinglés, et les instances éphémères de serveurs MCP qu'y crée le contrôleur de cycle de vie du Control Plane. Opérations de ce groupe de l'API du Navin Manager.

McpRuntimeApi.destroyInstance​

JsonNode destroyInstance(String clusterId, String namespace, String name)

Supprimer une instance MCP gérée. Supprime un MCPServer géré (précondition sur l'uid) ; le contrôleur du Control Plane révoque ensuite ses identifiants et le clôt. Renvoie namespace, name, instance_id et state (deleting). Permission services:operate. Erreurs : 404 mcp_runtime_instance_not_found, 502 mcp_runtime_forbidden (l'identité du Manager n'a pas le droit). Audité en mcp_runtime.instance.destroy.

Route : /api/v1/clusters/{cluster_id}/mcp-runtime/instances/{namespace}/{name} (DELETE).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
namespaceStringouiEspace de noms de projet de l'instance, mcp-<12 hex>.
nameStringouiNom de l'objet MCPServer.

Retour : JsonNode. Réponse JSON décodée de l'opération « Supprimer une instance MCP gérée ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpRuntimeApi.installToolhive​

JsonNode installToolhive(String clusterId)

Installer l'opérateur ToolHive. Écrit les deux ressources ManagedComponent de ToolHive (CRD, puis opérateur) dans toolhive-system, épinglées par empreinte. Renvoie namespace, version et les composants écrits components (201). Permission services:install ; 409 mcp_runtime_installed. Audité en mcp_runtime.install.

Route : /api/v1/clusters/{cluster_id}/mcp-runtime/install (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Installer l'opérateur ToolHive ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpRuntimeApi.restartInstance​

JsonNode restartInstance(String clusterId, String namespace, String name)

Redémarrer une instance MCP gérée. Redémarre un MCPServer géré sans changer sa spécification : un correctif de fusion de l'annotation mcpserver.toolhive.stacklok.dev/restarted-at vers une nouvelle heure RFC 3339 (redémarrage progressif par l'opérateur), avec l'uid en précondition. Renvoie namespace, name, instance_id, state (restarting) et restarted_at. Permission services:operate ; 404 mcp_runtime_instance_not_found. Audité en mcp_runtime.instance.restart.

Route : /api/v1/clusters/{cluster_id}/mcp-runtime/instances/{namespace}/{name}/restart (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
namespaceStringouiEspace de noms de projet de l'instance, mcp-<12 hex>.
nameStringouiNom de l'objet MCPServer.

Retour : JsonNode. Réponse JSON décodée de l'opération « Redémarrer une instance MCP gérée ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpRuntimeApi.runtimeState​

JsonNode runtimeState(String clusterId, Map<String, ?> query)

Lire l'état de l'environnement MCP. Renvoie l'état de l'opérateur operator (avec crd_installed), les composants ToolHive components, le preset, les instances gérées items (filtrées par tenant et project), les objets ignorés ignored, les agrégats aggregates par locataire et par projet (toujours sur toutes les instances gérées) et observed_at. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/mcp-runtime (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire l'état de l'environnement MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

McpRuntimeApi.runtimeState​

JsonNode runtimeState(String clusterId)

Lire l'état de l'environnement MCP. Renvoie l'état de l'opérateur operator (avec crd_installed), les composants ToolHive components, le preset, les instances gérées items (filtrées par tenant et project), les objets ignorés ignored, les agrégats aggregates par locataire et par projet (toujours sur toutes les instances gérées) et observed_at. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/mcp-runtime (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire l'état de l'environnement MCP ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.MeApi​

Mon profil. Le profil de l'utilisateur connecté et ses jetons d'API personnels. Opérations de ce groupe de l'API du Navin Manager.

MeApi.listTokens​

JsonNode listTokens()

Lister mes jetons d'API. Liste tous les jetons de l'appelant, du plus récent au plus ancien, révoqués compris : id, name, prefix, permissions (nul : toutes les permissions de l'utilisateur), expires_at, last_used_at, revoked_at, created_at. Le secret n'est jamais renvoyé.

Route : /api/v1/me/tokens (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister mes jetons d'API ».

Erreurs levées : les erreurs typées du transport (Erreurs).

MeApi.me​

JsonNode me()

Lire mon profil. Renvoie le compte de l'appelant : identifiant, nom d'utilisateur, nom affiché, e-mail, origine (local, ldap, oidc), attributions de rôle, état de la MFA, langue, verrouillage et dernière connexion.

Route : /api/v1/me (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire mon profil ».

Erreurs levées : les erreurs typées du transport (Erreurs).

MeApi.revokeToken​

JsonNode revokeToken(String tokenId)

Révoquer un de mes jetons d'API. Révoque le jeton immédiatement (le révoquer à nouveau est sans effet). Session de navigateur uniquement. Répond 204 ; 404 token_not_found quand le jeton ne vous appartient pas. Audité en token.revoke.

Route : /api/v1/me/tokens/{token_id} (DELETE).

NomTypeDéfautRequisDescription
tokenIdStringouiIdentifiant du jeton d'API, issu de GET /me/tokens.

Retour : JsonNode. Réponse JSON décodée de l'opération « Révoquer un de mes jetons d'API ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.MetaApi​

Version. Métadonnées publiques du Manager. Aucune authentification n'est nécessaire. Opérations de ce groupe de l'API du Navin Manager.

MetaApi.version​

JsonNode version()

Lire la version du Manager. Renvoie name (navin-manager), version, environment et la pile stack du catalogue (name, version, nombre de services). Public.

Route : /api/v1/version (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la version du Manager ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.MirrorApi​

Miroir local. Le miroir local contient les paquets, les images de conteneurs et les paquets Python que les agents installent, afin qu'un site sans accès Internet (ou sous les profils banking-secure et air-gapped) ne télécharge jamais rien de l'extérieur. Il est alimenté par un lot hors ligne décrit par un manifeste. Opérations de ce groupe de l'API du Navin Manager.

MirrorApi.reload​

JsonNode reload(Map<String, ?> query)

Recharger le manifeste du miroir. Relit le manifeste du miroir et remplace les artefacts enregistrés par son contenu ; chaque fichier doit exister. Renvoie ce qui a été chargé. Permission settings:manage. Erreurs : 409 mirror_manifest_missing, 422 mirror_manifest_invalid. Audité en mirror.reload (résultat failure avec le code d'erreur quand le manifeste est refusé).

Route : /api/v1/mirror/reload (POST).

NomTypeDéfautRequisDescription
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Recharger le manifeste du miroir ».

Erreurs levées : les erreurs typées du transport (Erreurs).

MirrorApi.reload​

JsonNode reload()

Recharger le manifeste du miroir. Relit le manifeste du miroir et remplace les artefacts enregistrés par son contenu ; chaque fichier doit exister. Renvoie ce qui a été chargé. Permission settings:manage. Erreurs : 409 mirror_manifest_missing, 422 mirror_manifest_invalid. Audité en mirror.reload (résultat failure avec le code d'erreur quand le manifeste est refusé).

Route : /api/v1/mirror/reload (POST).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Recharger le manifeste du miroir ».

Erreurs levées : les erreurs typées du transport (Erreurs).

MirrorApi.status​

JsonNode status()

Lire l'état du miroir. Renvoie l'url et le registre registry du miroir, manifest_loaded, loaded_at, le nombre d'artifacts, d'images et de paquets python chargés, et missing, ce dont le catalogue a besoin et qui manque au miroir. Permission system:read.

Route : /api/v1/mirror (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire l'état du miroir ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.NavinSmApi​

Navin SM. Navin SM est la version de Navin (poste de travail et CLI) qu'une organisation remet à son personnel, avec un fichier qui dirige Navin vers le proxy LiteLLM de l'organisation et ses modèles (Azure, Bedrock, vLLM... derrière LiteLLM), éventuellement de façon exclusive (aucun autre fournisseur permis). Un profil est ce fichier : l'organisation, la passerelle (adresse, authentification, en-têtes, autorité de certification, modèles, modèle par défaut, routes, mode exclusif) et la politique gérée que Navin applique (permissions, liste des serveurs MCP permis, plugins, hooks, contournement des demandes de permission, environnement imposé). Opérations de ce groupe de l'API du Navin Manager.

JsonNode assignableUsers(Map<String, ?> query)

Lister les utilisateurs à qui attribuer une clé. Utilisateurs actifs du Manager (50 au plus, triés par nom) dont le nom, le nom affiché ou le courriel contient q, avec id, username, display_name, email et source. Permission navin_sm:keys.

Route : /api/v1/navin-sm/users (GET).

NomTypeDéfautRequisDescription
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les utilisateurs à qui attribuer une clé ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode assignableUsers()

Lister les utilisateurs à qui attribuer une clé. Utilisateurs actifs du Manager (50 au plus, triés par nom) dont le nom, le nom affiché ou le courriel contient q, avec id, username, display_name, email et source. Permission navin_sm:keys.

Route : /api/v1/navin-sm/users (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les utilisateurs à qui attribuer une clé ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode blockKey(String profileId, String keyId)

Bloquer une clé. Bloque la clé au proxy (POST /key/block) : elle est refusée aussitôt et peut être débloquée. Renvoie la clé avec l'état blocked. Permission navin_sm:keys. Erreurs : 404 navin_sm_key_not_found, 409 navin_sm_key_revoked, 409 navin_sm_key_gone, 409 navin_sm_profile_not_linked, 409 navin_sm_master_key_missing, 502 navin_sm_proxy_refused ou navin_sm_proxy_failed. Audité en navin_sm.key.block.

Route : /api/v1/navin-sm/profiles/{profile_id}/keys/{key_id}/block (POST).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.
keyIdStringouiIdentifiant de la clé dans le Manager.

Retour : JsonNode. Réponse JSON décodée de l'opération « Bloquer une clé ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode createKey(String profileId, Object body)

Émettre une clé virtuelle. Émet une clé auprès du service LiteLLM auquel le profil est lié (POST /key/generate avec la clé maître gardée dans le serveur) pour un utilisateur du Manager ou un groupe du fournisseur d'identité, et répond 201 {key, item} : key est renvoyée ici et jamais plus, le Manager ne garde que l'alias et le sha256 que LiteLLM utilise comme identifiant. L'utilisateur LiteLLM est navin-sm:<org_id>:<kind>:<bénéficiaire>, l'alias navin-sm.<org_id>.<bénéficiaire>.<aléa>. Permission navin_sm:keys. Erreurs : 404 navin_sm_profile_not_found, 404 navin_sm_user_not_found, 422 navin_sm_assignee_required, 422 navin_sm_key_models_unknown (modèle hors du profil), 409 navin_sm_profile_not_linked, 409 navin_sm_master_key_missing, 409 navin_sm_key_alias_taken, 502 navin_sm_proxy_refused ou navin_sm_proxy_failed. Audité en navin_sm.key.create (identifiant et alias, jamais la clé).

Route : /api/v1/navin-sm/profiles/{profile_id}/keys (POST).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.
bodyObjectouiBénéficiaire, modèles et limites de la nouvelle clé.

Retour : JsonNode. Réponse JSON décodée de l'opération « Émettre une clé virtuelle ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode createProfile(Object body)

Créer un profil Navin SM. Crée le profil et le renvoie (201). Permission settings:manage, et vault:manage avec un shared_key_ref. Erreurs (422 sauf mention) : navin_sm_org_id_invalid, navin_sm_value_empty, navin_sm_value_duplicate, navin_sm_base_url_invalid, navin_sm_base_url_chat, navin_sm_shared_key_ref_required, navin_sm_shared_key_ref_forbidden, navin_sm_vault_entry_not_found, navin_sm_header_invalid, navin_sm_header_secret, navin_sm_models_count, navin_sm_model_duplicate, navin_sm_default_model_unknown, navin_sm_route_invalid, navin_sm_route_unknown, navin_sm_env_invalid, navin_sm_env_secret, 409 navin_sm_org_taken. Audité en navin_sm.create.

Route : /api/v1/navin-sm/profiles (POST).

NomTypeDéfautRequisDescription
bodyObjectouiLe profil.

Retour : JsonNode. Réponse JSON décodée de l'opération « Créer un profil Navin SM ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode deletePackage(String filename)

Retirer un paquet stocké. Supprime le fichier stocké ; son SHA256 publié reste enregistré. Répond 204. Permission settings:manage. Erreurs : 404 navin_sm_package_unknown, 404 navin_sm_package_missing. Audité en navin_sm.package.delete.

Route : /api/v1/navin-sm/distribution/packages/{filename} (DELETE).

NomTypeDéfautRequisDescription
filenameStringouiNom de fichier du paquet.

Retour : JsonNode. Réponse JSON décodée de l'opération « Retirer un paquet stocké ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode deleteProfile(String profileId)

Supprimer un profil Navin SM. Supprime le profil (l'entrée du coffre de sa clé est conservée). Répond 204. Permission settings:manage ; 404 navin_sm_profile_not_found. Audité en navin_sm.delete.

Route : /api/v1/navin-sm/profiles/{profile_id} (DELETE).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.

Retour : JsonNode. Réponse JSON décodée de l'opération « Supprimer un profil Navin SM ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode discoverModels(Object body)

Découvrir les modèles d'un proxy LiteLLM. Appelle GET <base>/v1/models puis GET <base>/model/info du proxy (délai de 5 secondes, TLS 1.2 au moins, racines publiques et le ca_pem fourni, sans redirection) et renvoie {models: [{id, context_window?, max_output_tokens?, vision?, reasoning?}], info_available, info_error}. Avec litellm_cluster_id et litellm_service, le service LiteLLM installé par le Manager est lu avec sa clé maître et l'autorité du Manager, toutes deux gardées dans le serveur (un base_url vide désigne alors son adresse) ; sinon la clé de l'entrée du coffre ou la clé saisie pour ce seul appel. /model/info est facultatif (route d'administration qu'une clé virtuelle peut ne pas atteindre). Permission settings:manage, et vault:manage avec un shared_key_ref. Erreurs : 422 navin_sm_base_url_invalid, 422 navin_sm_header_invalid, 422 navin_sm_litellm_link_incomplete (un seul des deux champs du lien), 422 navin_sm_litellm_source_not_found, 409 navin_sm_master_key_missing, 409 navin_sm_shared_key_missing, 502 navin_sm_discover_failed (détail reason : timeout, tls_failed, refused, unreachable, auth_failed, not_found, http_status, protocol_error). Audité en navin_sm.discover.

Route : /api/v1/navin-sm/discover (POST).

NomTypeDéfautRequisDescription
bodyObjectouiLe proxy à lire.

Retour : JsonNode. Réponse JSON décodée de l'opération « Découvrir les modèles d'un proxy LiteLLM ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode distribution()

État de la distribution Navin SM. La version de Navin SM que nomme le catalogue (service : nom, version, dépôt et étiquette GitHub, chemins du fichier de réglages et de l'autorité par système), ses paquets avec leur SHA256 publié, leur état de stockage, leur taille et leur lien de téléchargement, le nombre stocké, les dix derniers téléchargements depuis GitHub et si l'un d'eux est en cours. Permission settings:manage ; 409 navin_sm_service_missing sans le service navin-sm dans le catalogue.

Route : /api/v1/navin-sm/distribution (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « État de la distribution Navin SM ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode downloadPackage(String filename)

Télécharger un paquet stocké. Le paquet tel que stocké (application/octet-stream, Cache-Control: no-store), son SHA256 dans l'en-tête X-Checksum-Sha256. Permission settings:manage. Erreurs : 404 navin_sm_package_unknown, 404 navin_sm_package_missing (non stocké).

Route : /api/v1/navin-sm/distribution/packages/{filename}/download (GET).

NomTypeDéfautRequisDescription
filenameStringouiNom de fichier du paquet.

Retour : JsonNode. Réponse JSON décodée de l'opération « Télécharger un paquet stocké ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode exportProfile(String profileId, Map<String, ?> query)

Exporter le managed-settings.json d'un profil. Renvoie le fichier en pièce jointe (managed-settings.json, Cache-Control: no-store), conforme au contrat. gateway.apiKey n'est présent qu'en shared_key, descellé du coffre pour cette seule réponse. Permission settings:manage, et vault:manage en shared_key. Erreurs : 404 navin_sm_profile_not_found, 409 navin_sm_shared_key_missing (entrée du coffre supprimée ou sans clé), 422 navin_sm_os_required (profil avec use_manager_ca exporté sans os), 500 navin_sm_export_invalid. Audité en navin_sm.export (jamais la clé).

Route : /api/v1/navin-sm/profiles/{profile_id}/export (GET).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Exporter le managed-settings.json d'un profil ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode exportProfile(String profileId)

Exporter le managed-settings.json d'un profil. Renvoie le fichier en pièce jointe (managed-settings.json, Cache-Control: no-store), conforme au contrat. gateway.apiKey n'est présent qu'en shared_key, descellé du coffre pour cette seule réponse. Permission settings:manage, et vault:manage en shared_key. Erreurs : 404 navin_sm_profile_not_found, 409 navin_sm_shared_key_missing (entrée du coffre supprimée ou sans clé), 422 navin_sm_os_required (profil avec use_manager_ca exporté sans os), 500 navin_sm_export_invalid. Audité en navin_sm.export (jamais la clé).

Route : /api/v1/navin-sm/profiles/{profile_id}/export (GET).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.

Retour : JsonNode. Réponse JSON décodée de l'opération « Exporter le managed-settings.json d'un profil ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode fetchRelease(Object body)

Récupérer la version depuis GitHub. Lance en arrière-plan la récupération de la version (202, l'import) : les fichiers de sommes d'abord, puis chaque paquet pas encore stocké, chacun vérifié contre son SHA256 publié. Le jeton GitHub est la clé API de l'entrée du coffre, lu dans le serveur et jamais renvoyé, journalisé ni audité. Permissions settings:manage et vault:manage. Erreurs : 409 navin_sm_service_missing, 422 navin_sm_vault_entry_not_found, 422 navin_sm_github_token_missing, 409 navin_sm_import_running. Audité en navin_sm.package.fetch (nom de l'entrée du coffre seulement). À suivre avec GET /navin-sm/distribution/imports/{import_id}.

Route : /api/v1/navin-sm/distribution/fetch (POST).

NomTypeDéfautRequisDescription
bodyObjectouiL'entrée du coffre qui porte le jeton GitHub.

Retour : JsonNode. Réponse JSON décodée de l'opération « Récupérer la version depuis GitHub ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode getImport(String importId)

État d'une récupération. {id, version, state, files, error, created_at, finished_at} : state vaut running, done ou failed ; chaque fichier est pending, downloading, stored, skipped (déjà stocké) ou failed avec son error (jamais le jeton). Permission settings:manage ; 404 navin_sm_import_not_found.

Route : /api/v1/navin-sm/distribution/imports/{import_id} (GET).

NomTypeDéfautRequisDescription
importIdStringouiIdentifiant de la récupération, renvoyé par POST /navin-sm/distribution/fetch.

Retour : JsonNode. Réponse JSON décodée de l'opération « État d'une récupération ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode getProfile(String profileId)

Lire un profil Navin SM. Renvoie un profil sans aucune clé. Permission settings:manage ; 404 navin_sm_profile_not_found.

Route : /api/v1/navin-sm/profiles/{profile_id} (GET).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un profil Navin SM ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode listKeys(String profileId)

Lister les clés virtuelles d'un profil. Clés virtuelles LiteLLM émises pour le profil, actives et bloquées d'abord, puis révoquées : bénéficiaire, alias, état, modèles et limites, jamais une valeur de clé ni son empreinte. Permission navin_sm:keys ; 404 navin_sm_profile_not_found.

Route : /api/v1/navin-sm/profiles/{profile_id}/keys (GET).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les clés virtuelles d'un profil ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode listProfiles()

Lister les profils Navin SM. Profils triés par nom d'organisation, avec le nom de l'entrée du coffre de leur clé partagée mais jamais la clé (shared_key_set). Permission settings:manage.

Route : /api/v1/navin-sm/profiles (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les profils Navin SM ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode litellmSources()

Lister les passerelles LiteLLM installées. Services LiteLLM installés par le Manager avec leur adresse et l'entrée du coffre de leur clé, pour préremplir la passerelle d'un profil ou le lier (litellm_cluster_id, litellm_service). L'entrée du coffre n'est donnée qu'à un détenteur de vault:manage ; un service installé encore sans entrée a vault_entry_id nul (POST /vault/import la crée). Permission settings:manage.

Route : /api/v1/navin-sm/litellm-sources (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les passerelles LiteLLM installées ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode loadChecksums(Object body)

Charger les sommes de contrôle publiées de la version. Enregistre le SHA256 publié des paquets à partir des lignes <sha256> <fichier> des fichiers SHA256SUMS et .sha256 de la version, collées ensemble (sites hors ligne). Renvoie {updated, unchanged, conflicts, ignored} : les fichiers enregistrés ou déjà identiques, les paquets stockés dont le SHA256 changerait (signalés et laissés tels quels) et les noms hors de la version. Permission settings:manage. Erreurs : 409 navin_sm_service_missing, 422 navin_sm_checksums_invalid (aucune ligne exploitable). Audité en navin_sm.package.checksums.

Route : /api/v1/navin-sm/distribution/checksums (POST).

NomTypeDéfautRequisDescription
bodyObjectouiLes lignes de sommes de contrôle.

Retour : JsonNode. Réponse JSON décodée de l'opération « Charger les sommes de contrôle publiées de la version ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode previewProfile(String profileId, Map<String, ?> query)

Prévisualiser le managed-settings.json d'un profil. Le fichier que produirait l'export, vérifié par le contrat, sans sa clé : une clé shared_key est remplacée par <vault: nom de l'entrée>. Renvoie {os, settings_path, ca_path, document, problems, valid} ; problems liste les règles que le document enfreint (entrée du coffre sans clé, profil avec use_manager_ca prévisualisé sans os). Permission settings:manage ; 404 navin_sm_profile_not_found. Non audité (rien ne sort du serveur).

Route : /api/v1/navin-sm/profiles/{profile_id}/preview (GET).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Prévisualiser le managed-settings.json d'un profil ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode previewProfile(String profileId)

Prévisualiser le managed-settings.json d'un profil. Le fichier que produirait l'export, vérifié par le contrat, sans sa clé : une clé shared_key est remplacée par <vault: nom de l'entrée>. Renvoie {os, settings_path, ca_path, document, problems, valid} ; problems liste les règles que le document enfreint (entrée du coffre sans clé, profil avec use_manager_ca prévisualisé sans os). Permission settings:manage ; 404 navin_sm_profile_not_found. Non audité (rien ne sort du serveur).

Route : /api/v1/navin-sm/profiles/{profile_id}/preview (GET).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.

Retour : JsonNode. Réponse JSON décodée de l'opération « Prévisualiser le managed-settings.json d'un profil ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode profileBundle(String profileId, Map<String, ?> query)

Télécharger le bundle de déploiement d'un profil. Zip pour un système (navin-sm-<org_id>-<os>.zip, Cache-Control: no-store) : managed-settings.json (clé partagée comprise, audité en navin_sm.export avec le motif bundle), l'autorité du Manager quand le profil l'embarque (use_manager_ca), et les fichiers de déploiement du système : script shell et playbook Ansible sous Linux, script shell et notes MDM sous macOS, script PowerShell avec notes GPO et Intune sous Windows. Les paquets se téléchargent à part (GET /navin-sm/distribution/packages/{filename}/download). Permission settings:manage, et vault:manage en shared_key. Erreurs : 404 navin_sm_profile_not_found, 409 navin_sm_service_missing (aucun service navin-sm dans le catalogue), 409 navin_sm_shared_key_missing.

Route : /api/v1/navin-sm/profiles/{profile_id}/bundle (GET).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Télécharger le bundle de déploiement d'un profil ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode profileBundle(String profileId)

Télécharger le bundle de déploiement d'un profil. Zip pour un système (navin-sm-<org_id>-<os>.zip, Cache-Control: no-store) : managed-settings.json (clé partagée comprise, audité en navin_sm.export avec le motif bundle), l'autorité du Manager quand le profil l'embarque (use_manager_ca), et les fichiers de déploiement du système : script shell et playbook Ansible sous Linux, script shell et notes MDM sous macOS, script PowerShell avec notes GPO et Intune sous Windows. Les paquets se téléchargent à part (GET /navin-sm/distribution/packages/{filename}/download). Permission settings:manage, et vault:manage en shared_key. Erreurs : 404 navin_sm_profile_not_found, 409 navin_sm_service_missing (aucun service navin-sm dans le catalogue), 409 navin_sm_shared_key_missing.

Route : /api/v1/navin-sm/profiles/{profile_id}/bundle (GET).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.

Retour : JsonNode. Réponse JSON décodée de l'opération « Télécharger le bundle de déploiement d'un profil ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode revokeAllKeys(String profileId)

Révoquer toutes les clés d'un profil. Supprime toutes les clés actives ou bloquées du profil au proxy en un appel (POST /key/delete) et les enregistre comme révoquées. Renvoie {revoked, items}. Permission navin_sm:keys. Erreurs : 404 navin_sm_profile_not_found, 409 navin_sm_profile_not_linked, 409 navin_sm_master_key_missing, 502 navin_sm_proxy_refused ou navin_sm_proxy_failed. Audité en navin_sm.key.revoke_all (nombre et identifiants des clés).

Route : /api/v1/navin-sm/profiles/{profile_id}/keys/revoke-all (POST).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.

Retour : JsonNode. Réponse JSON décodée de l'opération « Révoquer toutes les clés d'un profil ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode revokeKey(String profileId, String keyId)

Révoquer une clé. Supprime la clé au proxy (POST /key/delete, immédiat) et la conserve dans le Manager avec l'état revoked et revoked_at ; une clé que le proxy ne connaît plus est révoquée tout de même. Renvoie la clé. Permission navin_sm:keys. Erreurs : 404 navin_sm_key_not_found, 409 navin_sm_key_revoked, 409 navin_sm_profile_not_linked, 409 navin_sm_master_key_missing, 502 navin_sm_proxy_refused ou navin_sm_proxy_failed. Audité en navin_sm.key.revoke.

Route : /api/v1/navin-sm/profiles/{profile_id}/keys/{key_id} (DELETE).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.
keyIdStringouiIdentifiant de la clé dans le Manager.

Retour : JsonNode. Réponse JSON décodée de l'opération « Révoquer une clé ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode unblockKey(String profileId, String keyId)

Débloquer une clé. Débloque une clé bloquée au proxy (POST /key/unblock) et la renvoie avec l'état active. Permission navin_sm:keys. Mêmes erreurs que le blocage. Audité en navin_sm.key.unblock.

Route : /api/v1/navin-sm/profiles/{profile_id}/keys/{key_id}/unblock (POST).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.
keyIdStringouiIdentifiant de la clé dans le Manager.

Retour : JsonNode. Réponse JSON décodée de l'opération « Débloquer une clé ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode updateKey(String profileId, String keyId, Object body)

Modifier les modèles et limites d'une clé. Applique les modèles et limites au proxy (POST /key/update), puis dans le Manager, et renvoie la clé. Permission navin_sm:keys. Erreurs : 404 navin_sm_profile_not_found, 404 navin_sm_key_not_found, 409 navin_sm_key_revoked, 409 navin_sm_key_gone (le proxy ne connaît plus la clé, alors enregistrée comme révoquée), 422 navin_sm_key_models_unknown, 409 navin_sm_profile_not_linked, 409 navin_sm_master_key_missing, 502 navin_sm_proxy_refused ou navin_sm_proxy_failed. Audité en navin_sm.key.update.

Route : /api/v1/navin-sm/profiles/{profile_id}/keys/{key_id} (PUT).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.
keyIdStringouiIdentifiant de la clé dans le Manager (jamais sa valeur).
bodyObjectouiNouveaux modèles et limites.

Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier les modèles et limites d'une clé ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode updateProfile(String profileId, Object body)

Remplacer un profil Navin SM. Remplace tout le profil et le renvoie. Mêmes règles et erreurs que la création, plus 404 navin_sm_profile_not_found. Audité en navin_sm.update (noms des champs modifiés).

Route : /api/v1/navin-sm/profiles/{profile_id} (PUT).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.
bodyObjectouiLe profil complet.

Retour : JsonNode. Réponse JSON décodée de l'opération « Remplacer un profil Navin SM ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode uploadPackage(String filename)

Déposer un paquet de la version. Corps brut d'un paquet de la version, écrit en flux sous <mirror_dir>/navin-sm/<version>/ et haché pendant l'écriture ; conservé (201, le paquet tel que la distribution le liste) seulement quand son SHA256 est celui publié (chargé au préalable) ou celui de l'en-tête X-Checksum-Sha256. Permission settings:manage. Erreurs : 404 navin_sm_package_unknown (pas un paquet de la version), 422 navin_sm_package_checksum_unknown (aucun SHA256 publié ni en-tête), 422 navin_sm_package_checksum_mismatch (le fichier est supprimé), 422 navin_sm_package_too_large (2 Gio), 409 navin_sm_disk_full. Audité en navin_sm.package.store, refus compris.

Route : /api/v1/navin-sm/distribution/packages/{filename} (PUT).

NomTypeDéfautRequisDescription
filenameStringouiNom de fichier du paquet, tel que le catalogue le liste pour cette version.

Retour : JsonNode. Réponse JSON décodée de l'opération « Déposer un paquet de la version ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode usage(String profileId, Map<String, ?> query)

Suivi des clés d'un profil. Lit le proxy par le serveur (GET /key/info pour chaque clé vivante, GET /spend/logs sur la période) et renvoie {available, reason, period, keys, models, totals, truncated, last_use} : pour chaque clé son état vivant, sa dépense, son budget et sa date de remise à zéro, et sur la période ses appels, jetons, erreurs, modèles et dernier usage ; les mêmes chiffres par modèle et au total. truncated est vrai quand le proxy a plafonné les journaux à 10000 lignes (les chiffres de la période sont alors partiels). Quand le profil n'est pas lié, que la clé maître manque ou que le proxy est injoignable, available est faux avec reason et sans aucun chiffre : aucun zéro n'est inventé. Permission navin_sm:keys ; 404 navin_sm_profile_not_found.

Route : /api/v1/navin-sm/profiles/{profile_id}/usage (GET).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Suivi des clés d'un profil ».

Erreurs levées : les erreurs typées du transport (Erreurs).

JsonNode usage(String profileId)

Suivi des clés d'un profil. Lit le proxy par le serveur (GET /key/info pour chaque clé vivante, GET /spend/logs sur la période) et renvoie {available, reason, period, keys, models, totals, truncated, last_use} : pour chaque clé son état vivant, sa dépense, son budget et sa date de remise à zéro, et sur la période ses appels, jetons, erreurs, modèles et dernier usage ; les mêmes chiffres par modèle et au total. truncated est vrai quand le proxy a plafonné les journaux à 10000 lignes (les chiffres de la période sont alors partiels). Quand le profil n'est pas lié, que la clé maître manque ou que le proxy est injoignable, available est faux avec reason et sans aucun chiffre : aucun zéro n'est inventé. Permission navin_sm:keys ; 404 navin_sm_profile_not_found.

Route : /api/v1/navin-sm/profiles/{profile_id}/usage (GET).

NomTypeDéfautRequisDescription
profileIdStringouiIdentifiant du profil.

Retour : JsonNode. Réponse JSON décodée de l'opération « Suivi des clés d'un profil ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.NetworkApi​

Flux réseau. Les flux réseau d'un cluster, calculés à partir de ce que connaît le Manager, pour l'équipe réseau qui les ouvre dans ses groupes de sécurité ou ses pare-feu de machines. Chaque flux appartient à une portée : Opérations de ce groupe de l'API du Navin Manager.

NetworkApi.networkFlows​

JsonNode networkFlows(String clusterId, Map<String, ?> query)

Lire la matrice des flux réseau d'un cluster. Flux à ouvrir entre les machines, le Manager, les clients et les points d'accès externes du cluster. En JSON : cluster_id, items, summary et generated_at ; avec format=csv, une pièce jointe network-flows-<cluster>.csv. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/network/flows (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la matrice des flux réseau d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NetworkApi.networkFlows​

JsonNode networkFlows(String clusterId)

Lire la matrice des flux réseau d'un cluster. Flux à ouvrir entre les machines, le Manager, les clients et les points d'accès externes du cluster. En JSON : cluster_id, items, summary et generated_at ; avec format=csv, une pièce jointe network-flows-<cluster>.csv. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/network/flows (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la matrice des flux réseau d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NetworkApi.networkRules​

JsonNode networkRules(String clusterId, Map<String, ?> query)

Lire les règles de pare-feu qui ouvrent les flux. Commandes qui ouvrent les flux dans les groupes de sécurité d'un fournisseur cloud ou dans un pare-feu de machine. Avec auto, le fournisseur de chaque machine est utilisé (l'environnement choisi pour la machine, sinon la plateforme détectée). Rien n'est appliqué. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/network/rules (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire les règles de pare-feu qui ouvrent les flux ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NetworkApi.networkRules​

JsonNode networkRules(String clusterId)

Lire les règles de pare-feu qui ouvrent les flux. Commandes qui ouvrent les flux dans les groupes de sécurité d'un fournisseur cloud ou dans un pare-feu de machine. Avec auto, le fournisseur de chaque machine est utilisé (l'environnement choisi pour la machine, sinon la plateforme détectée). Rien n'est appliqué. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/network/rules (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire les règles de pare-feu qui ouvrent les flux ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.NodeSecurityApi​

Sécurité des nœuds. La sécurité des machines gérées et de leurs agents de nœud : inventaire, politique SSH, contrôles préalables et amorçage SSH de l'agent, jetons d'enrôlement liés à la clé de l'agent, état de confiance (quarantaine, révocation, rétablissement), mode de gestion, commandes d'agent signées et leurs reçus, mise à jour de l'agent et accès d'urgence SSH (break glass). Opérations de ce groupe de l'API du Navin Manager.

NodeSecurityApi.agentUpdate​

JsonNode agentUpdate(String hostId, Object body)

Mettre à jour l'agent d'une machine. Vérifie le binaire signé de l'agent dans le miroir, puis émet une commande signée agent.update avec son empreinte et sa signature (clé d'idempotence dérivée de l'empreinte). Renvoie l'enveloppe de la commande (201). Permission hosts:manage. Erreurs : 422 agent_package_untrusted, 409 host_not_trusted, 409 host_client_managed.

Route : /api/v1/hosts/{host_id}/agent-update (POST).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
bodyObjectouiValidité de la commande et délai de santé du nouvel agent.

Retour : JsonNode. Réponse JSON décodée de l'opération « Mettre à jour l'agent d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.bootstrapPlan​

JsonNode bootstrapPlan(Object body)

Prévisualiser l'amorçage d'un agent de nœud. Contrôle l'identifiant par rapport à la politique SSH et renvoie le plan sans se connecter : utilisateur SSH, cible, rebonds, verdict sur l'identifiant, fichier sudoers et sa validation, liste autorisée, unité systemd et répertoire de préparation. Permission hosts:manage ; 422 ssh_policy_refused.

Route : /api/v1/hosts/bootstrap/plan (POST).

NomTypeDéfautRequisDescription
bodyObjectouiMême corps qu'un amorçage.

Retour : JsonNode. Réponse JSON décodée de l'opération « Prévisualiser l'amorçage d'un agent de nœud ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.breakglassApprove​

JsonNode breakglassApprove(String requestId)

Approuver une demande d'accès d'urgence. Ajoute une approbation. Deux approbateurs distincts, tous deux différents du demandeur, sont nécessaires ; la seconde approbation signe un certificat utilisateur OpenSSH valable pendant la durée demandée. Permission hosts:manage. Erreurs : 403 breakglass_self_approval, 409 breakglass_not_pending, 409 breakglass_already_approved, 404 breakglass_not_found. Audité en host.breakglass.approve.

Route : /api/v1/breakglass/{request_id}/approve (POST).

NomTypeDéfautRequisDescription
requestIdStringouiIdentifiant de la demande d'accès d'urgence.

Retour : JsonNode. Réponse JSON décodée de l'opération « Approuver une demande d'accès d'urgence ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.breakglassEvidence​

JsonNode breakglassEvidence(String requestId, Object body)

Ajouter une preuve à une session d'accès d'urgence. Ajoute à la demande une preuve expurgée (début de session, empreinte de commande, fin de session ou enregistrement). Permission hosts:manage ; 404 breakglass_not_found.

Route : /api/v1/breakglass/{request_id}/evidence (POST).

NomTypeDéfautRequisDescription
requestIdStringouiIdentifiant de la demande d'accès d'urgence.
bodyObjectouiType, empreinte et résumé de la preuve.

Retour : JsonNode. Réponse JSON décodée de l'opération « Ajouter une preuve à une session d'accès d'urgence ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.breakglassList​

JsonNode breakglassList(String hostId)

Lister les demandes d'accès d'urgence d'une machine. Les 50 dernières demandes d'accès d'urgence de la machine avec leur statut, leurs approbateurs, leur validité et leurs preuves. Permission cluster:read.

Route : /api/v1/hosts/{host_id}/breakglass (GET).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les demandes d'accès d'urgence d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.breakglassRequest​

JsonNode breakglassRequest(String hostId, Object body)

Demander un accès SSH d'urgence. Enregistre une demande d'accès d'urgence pour la machine avec la raison, la clé publique du demandeur et la durée ; deux autres utilisateurs doivent l'approuver. Renvoie la demande (201). Permission hosts:manage. Erreurs : 422 breakglass_key_refused, 409 host_not_trusted, 409 host_client_managed. Audité en host.breakglass.request.

Route : /api/v1/hosts/{host_id}/breakglass (POST).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
bodyObjectouiRaison, clé publique, compte et validité.

Retour : JsonNode. Réponse JSON décodée de l'opération « Demander un accès SSH d'urgence ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.breakglassRevoke​

JsonNode breakglassRevoke(String requestId)

Révoquer un accès d'urgence avant son terme. Met fin à l'accès avant son terme : le certificat est ajouté à la liste de révocation de clés que chargent les machines. Permission hosts:manage. Erreurs : 404 breakglass_not_found, 409 breakglass_not_active.

Route : /api/v1/breakglass/{request_id}/revoke (POST).

NomTypeDéfautRequisDescription
requestIdStringouiIdentifiant de la demande d'accès d'urgence.

Retour : JsonNode. Réponse JSON décodée de l'opération « Révoquer un accès d'urgence avant son terme ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.getSshPolicy​

JsonNode getSshPolicy(String clusterId)

Lire la politique SSH d'un cluster. Renvoie allow_rsa, rsa_min_bits, approved_user_cas, bootstrap_user, spiffe_trust_domain et rotate_before_days. Permission cluster:read ; 404 cluster_not_found.

Route : /api/v1/clusters/{cluster_id}/ssh-policy (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la politique SSH d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.hostBootstrap​

JsonNode hostBootstrap(Object body)

Amorcer un agent de nœud par SSH. Lance une opération qui installe et enregistre l'agent sur une machine :

Route : /api/v1/hosts/bootstrap (POST).

NomTypeDéfautRequisDescription
bodyObjectouiMachine cible, machines de rebond, compte SSH, clé privée ou certificat.

Retour : JsonNode. Réponse JSON décodée de l'opération « Amorcer un agent de nœud par SSH ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.hostEnroll​

JsonNode hostEnroll(Object body)

Émettre un jeton d'enrôlement pour une clé d'agent. Émet un jeton à usage unique pour une machine et une clé : host_fingerprint est le SHA-256 (hexadécimal) de la clé publique de l'agent (nm-agent l'affiche avant l'enrôlement). Le jeton expire au bout de 15 minutes au plus et est consommé par le premier enrôlement qui présente une CSR de cette clé exacte. Renvoie id, token, expires_at, ttl_s, host_fingerprint et agent_url (201). Permission hosts:manage. Audité en host.enroll_token.

Route : /api/v1/hosts/enroll (POST).

NomTypeDéfautRequisDescription
bodyObjectouiCluster, FQDN et empreinte de clé de la machine.

Retour : JsonNode. Réponse JSON décodée de l'opération « Émettre un jeton d'enrôlement pour une clé d'agent ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.hostInventory​

JsonNode hostInventory(String hostId)

Lire l'inventaire d'une machine. Renvoie host_id, l'inventaire inventory rapproché à partir des caractéristiques de l'agent (matériel, GPU, plateforme) et updated_at. Permission cluster:read.

Route : /api/v1/hosts/{host_id}/inventory (GET).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire l'inventaire d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.hostPreflight​

JsonNode hostPreflight(Object body)

Lancer les contrôles préalables d'une machine avant son amorçage. Lit la machine en SSH et depuis le Manager (résolution DNS directe et inverse, joignabilité TCP, ports requis libres, disques, système d'exploitation) et renvoie les contrôles classés pass, warning ou blocking, les nombres blocking et warnings, une empreinte reproductible digest et le verdict sur l'identifiant. Rien n'est installé. Permission hosts:manage. Erreurs : 422 ssh_policy_refused. Audité en host.preflight.

Route : /api/v1/hosts/preflight (POST).

NomTypeDéfautRequisDescription
bodyObjectouiAccès SSH, identité attendue, ports et disques à contrôler.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lancer les contrôles préalables d'une machine avant son amorçage ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.hostReceipts​

JsonNode hostReceipts(String hostId, Map<String, ?> query)

Lister les reçus de commandes d'une machine. Reçus des commandes signées exécutées par l'agent, du dernier terminé au plus ancien : opération, début et fin, code de sortie, état observé, code d'erreur et preuves, expurgés. Permission cluster:read.

Route : /api/v1/hosts/{host_id}/receipts (GET).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les reçus de commandes d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.hostReceipts​

JsonNode hostReceipts(String hostId)

Lister les reçus de commandes d'une machine. Reçus des commandes signées exécutées par l'agent, du dernier terminé au plus ancien : opération, début et fin, code de sortie, état observé, code d'erreur et preuves, expurgés. Permission cluster:read.

Route : /api/v1/hosts/{host_id}/receipts (GET).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les reçus de commandes d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.issueCommand​

JsonNode issueCommand(String hostId, Object body)

Envoyer une commande signée à un agent. Émet une enveloppe de commande signée avec la clé Ed25519 du Manager pour l'agent de la machine (la même clé d'idempotence renvoie l'enveloppe enregistrée). Opérations autorisées : facts.collect, health.check, logs.tail, files.digest, service.control, command.run, agent.update ; les trois dernières sont refusées sur les machines gérées par le client. Renvoie l'enveloppe (201). Permission hosts:manage. Erreurs : 422 command_operation_unknown, 409 host_not_trusted, 409 host_client_managed. Audité en host.command.issue.

Route : /api/v1/hosts/{host_id}/commands (POST).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
bodyObjectouiOpération, paramètres, validité et clé d'idempotence.

Retour : JsonNode. Réponse JSON décodée de l'opération « Envoyer une commande signée à un agent ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.listAllHosts​

JsonNode listAllHosts(Map<String, ?> query)

Lister les machines de tous les clusters. Machines de chaque cluster que l'appelant peut lire (ou d'un seul cluster), triées par FQDN, avec leur état de confiance, leur mode de gestion, leur identité, leurs métriques, leur inventaire et leur plateforme.

Route : /api/v1/hosts (GET).

NomTypeDéfautRequisDescription
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les machines de tous les clusters ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.listAllHosts​

JsonNode listAllHosts()

Lister les machines de tous les clusters. Machines de chaque cluster que l'appelant peut lire (ou d'un seul cluster), triées par FQDN, avec leur état de confiance, leur mode de gestion, leur identité, leurs métriques, leur inventaire et leur plateforme.

Route : /api/v1/hosts (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les machines de tous les clusters ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.listNodes​

JsonNode listNodes()

Lister les agents de nœud. Machines non mises hors service de chaque cluster que l'appelant peut lire, avec leur état de confiance, leur mode de gestion, la version de leur agent, leur dernier battement de cœur, leur identité (numéro et expiration du certificat, identifiant SPIFFE, rotation_due), leurs métriques et leur plateforme.

Route : /api/v1/agents/nodes (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les agents de nœud ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.nodeDetail​

JsonNode nodeDetail(String hostId)

Lire un agent de nœud. La vue du nœud plus ses 10 derniers certificats certificates et ses diagnostics (caractéristiques, dernières métriques, 20 derniers reçus). Permission cluster:read ; 404 host_not_found.

Route : /api/v1/agents/nodes/{host_id} (GET).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un agent de nœud ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.putSshPolicy​

JsonNode putSshPolicy(String clusterId, Object body)

Définir la politique SSH d'un cluster. Remplace la politique SSH et la renvoie. Le compte d'amorçage et chaque clé d'autorité approuvée sont contrôlés d'abord. Permission hosts:manage. Erreurs : 422 ssh_policy_refused (clé faible ou invalide, compte refusé), 404 cluster_not_found. Audité en cluster.ssh_policy.

Route : /api/v1/clusters/{cluster_id}/ssh-policy (PUT).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiLa politique SSH.

Retour : JsonNode. Réponse JSON décodée de l'opération « Définir la politique SSH d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.quarantineHost​

JsonNode quarantineHost(String hostId, Object body)

Mettre une machine en quarantaine. Passe l'état de confiance à quarantined : le Manager cesse de faire confiance à l'agent pour de nouvelles commandes jusqu'à son rétablissement. Renvoie le nœud. Permission hosts:manage. Audité en host.quarantine.

Route : /api/v1/hosts/{host_id}/quarantine (POST).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
bodyObjectouiRaison du changement.

Retour : JsonNode. Réponse JSON décodée de l'opération « Mettre une machine en quarantaine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.recoverHost​

JsonNode recoverHost(String hostId, Object body)

Rétablir la confiance dans une machine en quarantaine. Repasse l'état de confiance à trusted. Une machine révoquée ne peut pas être rétablie : elle doit s'enrôler à nouveau (409 agent_revoked). Renvoie le nœud. Permission hosts:manage. Audité en host.recover.

Route : /api/v1/hosts/{host_id}/recover (POST).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
bodyObjectouiRaison du changement.

Retour : JsonNode. Réponse JSON décodée de l'opération « Rétablir la confiance dans une machine en quarantaine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.revokeHost​

JsonNode revokeHost(String hostId, Object body)

Révoquer l'agent d'une machine. Passe l'état de confiance à revoked, révoque les certificats de l'agent et fait expirer ses commandes en attente. Seul un nouvel enrôlement le rétablit. Renvoie le nœud. Permission hosts:manage. Audité en host.revoke avec le nombre de certificats révoqués.

Route : /api/v1/hosts/{host_id}/revoke (POST).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
bodyObjectouiRaison du changement.

Retour : JsonNode. Réponse JSON décodée de l'opération « Révoquer l'agent d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

NodeSecurityApi.setManagement​

JsonNode setManagement(String hostId, Object body)

Définir qui gère une machine. Définit le mode de gestion : platform (le Manager agit sur la machine) ou client (les commandes dangereuses et l'accès d'urgence sont refusés). Renvoie le nœud. Permission hosts:manage. Audité en host.management.

Route : /api/v1/hosts/{host_id}/management (PUT).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
bodyObjectouiLe mode de gestion.

Retour : JsonNode. Réponse JSON décodée de l'opération « Définir qui gère une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.OperationsApi​

Opérations. Une opération est l'unité de tout changement fait par le Manager : une installation, un redémarrage, une mise à niveau, une sauvegarde, l'amorçage d'une machine... Elle se compose d'étapes ordonnées ; chaque étape contient des tâches, en général une par machine, exécutées par les agents Navin. Statut d'une opération : pending, running, succeeded, failed ou aborted ; progress va de 0 à 100. Opérations de ce groupe de l'API du Navin Manager.

OperationsApi.abort​

JsonNode abort(String operationId)

Interrompre une opération. Demande l'arrêt d'une opération en attente ou en cours : les tâches non commencées sont annulées, celles en cours sont arrêtées par leurs agents. Renvoie id, status et abort_requested. Permission operations:abort ; 409 operation_not_running quand elle est déjà terminée. Audité en operation.abort.

Route : /api/v1/operations/{operation_id}/abort (POST).

NomTypeDéfautRequisDescription
operationIdStringouiIdentifiant de l'opération (une installation, un redémarrage, une sauvegarde...) dont les tâches s'exécutent sur les machines.

Retour : JsonNode. Réponse JSON décodée de l'opération « Interrompre une opération ».

Erreurs levées : les erreurs typées du transport (Erreurs).

OperationsApi.getOperation​

JsonNode getOperation(String operationId)

Lire une opération avec ses étapes et ses tâches. Renvoie l'opération et ses étapes stages dans l'ordre ; chaque étape donne seq, name_i18n, status, tolerate_failures et ses tâches tasks (machine, type, service, composant, statut, tentatives, code de sortie, résumé, erreur, horaires). Permission operations:read sur son cluster ; 404 operation_not_found.

Route : /api/v1/operations/{operation_id} (GET).

NomTypeDéfautRequisDescription
operationIdStringouiIdentifiant de l'opération (une installation, un redémarrage, une sauvegarde...) dont les tâches s'exécutent sur les machines.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire une opération avec ses étapes et ses tâches ».

Erreurs levées : les erreurs typées du transport (Erreurs).

OperationsApi.getTask​

JsonNode getTask(String operationId, String taskId)

Lire une tâche d'une opération. Renvoie une tâche avec sa sortie complète output, attempts et max_attempts, timeout_s, exit_code, duration_ms et ses horaires. Permission operations:read ; 404 operation_not_found ou 404 task_not_found.

Route : /api/v1/operations/{operation_id}/tasks/{task_id} (GET).

NomTypeDéfautRequisDescription
operationIdStringouiIdentifiant de l'opération (une installation, un redémarrage, une sauvegarde...) dont les tâches s'exécutent sur les machines.
taskIdStringouiIdentifiant de la tâche, issu des étapes de l'opération.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire une tâche d'une opération ».

Erreurs levées : les erreurs typées du transport (Erreurs).

OperationsApi.listOperations​

Page<JsonNode> listOperations(String clusterId, Map<String, ?> query)

Lister les opérations d'un cluster. Opérations du cluster, de la plus récente à la plus ancienne, sans leurs étapes : id, type, title_i18n, target, status, progress, error, created_by, created_at, started_at, finished_at, abort_requested. Paginé avec limit et cursor. Permission operations:read.

Route : /api/v1/clusters/{cluster_id}/operations (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : Page<JsonNode>. 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).

OperationsApi.listOperations​

Page<JsonNode> listOperations(String clusterId)

Lister les opérations d'un cluster. Opérations du cluster, de la plus récente à la plus ancienne, sans leurs étapes : id, type, title_i18n, target, status, progress, error, created_by, created_at, started_at, finished_at, abort_requested. Paginé avec limit et cursor. Permission operations:read.

Route : /api/v1/clusters/{cluster_id}/operations (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : Page<JsonNode>. 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).

OperationsApi.retry​

JsonNode retry(String operationId, Map<String, ?> query)

Relancer une opération échouée. Crée une nouvelle opération à partir d'une opération failed ou aborted et renvoie son operation_id. La relance passe par les contrôles d'une nouvelle opération : un seul changement à la fois par service, état administratif du service, profil du cluster et, sous banking-secure, une nouvelle approbation pour une opération perturbatrice. Permission operations:abort ; 409 operation_not_retryable dans tout autre statut. Audité en operation.retry.

Route : /api/v1/operations/{operation_id}/retry (POST).

NomTypeDéfautRequisDescription
operationIdStringouiIdentifiant de l'opération (une installation, un redémarrage, une sauvegarde...) dont les tâches s'exécutent sur les machines.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Relancer une opération échouée ».

Erreurs levées : les erreurs typées du transport (Erreurs).

OperationsApi.retry​

JsonNode retry(String operationId)

Relancer une opération échouée. Crée une nouvelle opération à partir d'une opération failed ou aborted et renvoie son operation_id. La relance passe par les contrôles d'une nouvelle opération : un seul changement à la fois par service, état administratif du service, profil du cluster et, sous banking-secure, une nouvelle approbation pour une opération perturbatrice. Permission operations:abort ; 409 operation_not_retryable dans tout autre statut. Audité en operation.retry.

Route : /api/v1/operations/{operation_id}/retry (POST).

NomTypeDéfautRequisDescription
operationIdStringouiIdentifiant de l'opération (une installation, un redémarrage, une sauvegarde...) dont les tâches s'exécutent sur les machines.

Retour : JsonNode. Réponse JSON décodée de l'opération « Relancer une opération échouée ».

Erreurs levées : les erreurs typées du transport (Erreurs).

OperationsApi.running​

JsonNode running()

Lister les opérations en cours. Opérations en attente et en cours de chaque cluster où l'appelant détient operations:read (200 au plus, de la plus récente à la plus ancienne), avec leur nombre count. Utilisé par l'indicateur d'activité de la console.

Route : /api/v1/operations/running (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les opérations en cours ».

Erreurs levées : les erreurs typées du transport (Erreurs).

OperationsApi.taskLogs​

JsonNode taskLogs(String operationId, String taskId, Map<String, ?> query)

Lire les lignes de journal d'une tâche. Renvoie les lignes lines écrites après after_seq (chacune avec seq, ts, stream et data), next_seq à passer dans after_seq à l'appel suivant, et done : vrai une fois la tâche terminée et toutes les lignes lues. Pour suivre une tâche, rappelez-le avec after_seq=next_seq jusqu'à done. Permission operations:read.

Route : /api/v1/operations/{operation_id}/tasks/{task_id}/logs (GET).

NomTypeDéfautRequisDescription
operationIdStringouiIdentifiant de l'opération (une installation, un redémarrage, une sauvegarde...) dont les tâches s'exécutent sur les machines.
taskIdStringouiIdentifiant de la tâche.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire les lignes de journal d'une tâche ».

Erreurs levées : les erreurs typées du transport (Erreurs).

OperationsApi.taskLogs​

JsonNode taskLogs(String operationId, String taskId)

Lire les lignes de journal d'une tâche. Renvoie les lignes lines écrites après after_seq (chacune avec seq, ts, stream et data), next_seq à passer dans after_seq à l'appel suivant, et done : vrai une fois la tâche terminée et toutes les lignes lues. Pour suivre une tâche, rappelez-le avec after_seq=next_seq jusqu'à done. Permission operations:read.

Route : /api/v1/operations/{operation_id}/tasks/{task_id}/logs (GET).

NomTypeDéfautRequisDescription
operationIdStringouiIdentifiant de l'opération (une installation, un redémarrage, une sauvegarde...) dont les tâches s'exécutent sur les machines.
taskIdStringouiIdentifiant de la tâche.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire les lignes de journal d'une tâche ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.PkiApi​

PKI et certificats. L'autorité de certification du Manager et les certificats qu'elle émet : certificats clients des agents et certificats TLS des composants des services. Opérations de ce groupe de l'API du Navin Manager.

PkiApi.getCa​

JsonNode getCa()

Lire l'autorité de certification. Renvoie le certificat de l'autorité du Manager (ca_pem), son expiration not_after et son empreinte sha256. Tout utilisateur connecté.

Route : /api/v1/pki/ca (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire l'autorité de certification ».

Erreurs levées : les erreurs typées du transport (Erreurs).

PkiApi.listCertificates​

JsonNode listCertificates(String clusterId)

Lister les certificats d'un cluster. Certificats émis pour le cluster, du premier à expirer au dernier : kind (agent ou service), machine, service, composant, serial, subject, sans, not_before, not_after, revoked_at. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/certificates (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les certificats d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

PkiApi.rotate​

JsonNode rotate(String clusterId, Object body, Map<String, ?> query)

Renouveler les certificats des services d'un cluster. Émet un nouveau certificat pour chaque instance de composant (d'un service, ou de tous), puis lance une opération qui les installe sur les machines et redémarre les composants. Répond 202 avec operation_id. Permission pki:manage. Erreurs : 404 cluster_not_found, 409 no_certificates_to_rotate. Audité en pki.rotate.

Route : /api/v1/clusters/{cluster_id}/certificates/rotate (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiService facultatif auquel limiter le renouvellement.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Renouveler les certificats des services d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

PkiApi.rotate​

JsonNode rotate(String clusterId, Object body)

Renouveler les certificats des services d'un cluster. Émet un nouveau certificat pour chaque instance de composant (d'un service, ou de tous), puis lance une opération qui les installe sur les machines et redémarre les composants. Répond 202 avec operation_id. Permission pki:manage. Erreurs : 404 cluster_not_found, 409 no_certificates_to_rotate. Audité en pki.rotate.

Route : /api/v1/clusters/{cluster_id}/certificates/rotate (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiService facultatif auquel limiter le renouvellement.

Retour : JsonNode. Réponse JSON décodée de l'opération « Renouveler les certificats des services d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.RestoresApi​

Sauvegarde, restauration et reprise après sinistre. Le gestionnaire de sauvegarde et de reprise : cibles et plans de sauvegarde, artefacts de sauvegarde avec leurs vérifications, conservation, tests de restauration, restaurations et reprise après sinistre (sites, plans, exercices, bascules, changements DNS et d'équilibreur de charge). Opérations de ce groupe de l'API du Navin Manager.

RestoresApi.approve​

JsonNode approve(String planId)

Approuver un plan de restauration. Ajoute l'approbation de l'appelant ; deux approbations par des personnes autres que le demandeur sont nécessaires. Permission restore:execute. Erreurs : 403 restore_self_approval, 409 restore_not_approvable. Audité en restore.approve.

Route : /api/v1/restores/{plan_id}/approve (POST).

NomTypeDéfautRequisDescription
planIdStringouiIdentifiant du plan de restauration.

Retour : JsonNode. 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).

RestoresApi.dryRun​

JsonNode dryRun(String planId)

Essayer à blanc un plan de restauration. Contrôle l'empreinte, le déchiffrement et la compatibilité sans écrire dans la destination, et renvoie les approbateurs enregistrés. Pour une destination nommée, contrôle aussi son identité, son vide et son rôle restreint (checks.destination, checks.executor). Une simulation réussie n'autorise pas l'exécution : deux approbations restent nécessaires. Permission restore:execute. Audité en restore.dry_run.

Route : /api/v1/restores/{plan_id}/dry-run (POST).

NomTypeDéfautRequisDescription
planIdStringouiIdentifiant du plan de restauration.

Retour : JsonNode. Réponse JSON décodée de l'opération « Essayer à blanc un plan de restauration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

RestoresApi.execute​

JsonNode execute(String planId)

Exécuter une restauration approuvée. Exécute un plan approuvé avec destination : l'état executing et un jeton durable execution_token sont validés avant toute écriture. L'artefact est contrôlé à nouveau (taille, empreinte, déchiffrement), restauré par pg_restore --single-transaction avec le rôle restreint, puis ses lignes sont relues et comparées à l'inventaire (result.inventory, rows, tables). Succès : executed. Échec enregistré : failed, rollback_performed: false, HTTP 502 restore_execution_failed ; le champ imbriqué result.error précise la cause, notamment backup_corrupted, restore_target_busy ou restore_execution_timeout. Une interruption du processus peut laisser executing, à inspecter manuellement. Aucun retour arrière ni rejeu automatique. Les refus avant exécution incluent 409 restore_not_approved, 501 restore_executor_unavailable et 409 restore_target_changed. Permission restore:execute. Audité en restore.execute.started et restore.execute.

Route : /api/v1/restores/{plan_id}/execute (POST).

NomTypeDéfautRequisDescription
planIdStringouiIdentifiant du plan de restauration.

Retour : JsonNode. Réponse JSON décodée de l'opération « Exécuter une restauration approuvée ».

Erreurs levées : les erreurs typées du transport (Erreurs).

RestoresApi.list​

JsonNode list()

Lister les plans de restauration. Les 200 derniers plans de restauration avec leur statut et leur nombre d'approbations. Permission backup:read.

Route : /api/v1/restores (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. 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).

RestoresApi.plan​

JsonNode plan(Object body)

Planifier une restauration. Crée un plan de restauration pour un artefact de sauvegarde : contrôle la compatibilité des versions sauvegardées avec les versions cibles (même version majeure) et liste les étapes (vérification de l'artefact, vérification de la destination, restauration, vérification du résultat). Avec target_name, l'artefact doit être un pg_dump disponible avec un inventaire verification_inventory et la destination une base PostgreSQL vide appartenant à un rôle restreint ; son identité est figée dans target_snapshot. Renvoie le plan (201). Permission restore:execute. Erreurs : 404 backup_artifact_not_found, 501 restore_executor_unavailable (destination inconnue), 409 restore_target_invalid, 409 restore_target_not_empty, 422 restore_inventory_required. Audité en restore.plan.

Route : /api/v1/restores/plan (POST).

NomTypeDéfautRequisDescription
bodyObjectouiArtefact, environnement, destination et versions cibles.

Retour : JsonNode. Réponse JSON décodée de l'opération « Planifier une restauration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

RestoresApi.verify​

JsonNode verify(String planId)

Lire un plan de restauration. Renvoie le plan avec sa compatibilité, ses étapes, ses approbateurs approvers et required_approvals (2). Permission backup:read ; 404 restore_plan_not_found.

Route : /api/v1/restores/{plan_id} (GET).

NomTypeDéfautRequisDescription
planIdStringouiIdentifiant du plan de restauration.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un plan de restauration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.ServicesApi​

Opérations services du Platform Manager.

ServicesApi.action​

JsonNode action(String clusterId, String service, Object body)

Exécuter une action sur un service. Lance une opération qui exécute l'action sur les composants et machines choisis (tous par défaut) et renvoie operation_id. Un redémarrage progressif traite batch_size machines à la fois. reinstall exige aussi services:install. Permission services:operate. Erreurs : 409 service_unmanaged, 409 service_check_missing, 409 smoke_test_missing, 404 host_component_not_found, 409 approval_required. Audité en service.<action>.

Route : /api/v1/clusters/{cluster_id}/services/{service}/actions (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
bodyObjectouiAction, périmètre et découpage par lots.

Retour : JsonNode. Réponse JSON décodée de l'opération « Exécuter une action sur un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.addComponent​

JsonNode addComponent(String clusterId, String service, Object body)

Ajouter des instances de composant sur des machines. Lance une opération qui installe le composant sur les machines fournies (démarré sauf si le service est arrêté) et renvoie operation_id avec les contrôles ha. Permission services:install. Erreurs : 409 service_unmanaged, 404 component_unknown, 422 topology_invalid, 409 ha_requirements_not_met ou ha_acknowledgement_required. Audité en service.component_add.

Route : /api/v1/clusters/{cluster_id}/services/{service}/components (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
bodyObjectouiComposant et machines cibles.

Retour : JsonNode. Réponse JSON décodée de l'opération « Ajouter des instances de composant sur des machines ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.checkConnection​

JsonNode checkConnection(String clusterId, String service)

Contrôler un service connecté maintenant. Exécute le contrôle de santé et le contrôle authentifié d'un service connecté et inscrit le résultat dans son historique de supervision. Renvoie service, health et health_details. Permission services:operate ; 409 service_not_connected.

Route : /api/v1/clusters/{cluster_id}/services/{service}/connection/check (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. Réponse JSON décodée de l'opération « Contrôler un service connecté maintenant ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.clientConfig​

JsonNode clientConfig(String clusterId, String service)

Lire la configuration cliente d'un service. Fichiers dont un client a besoin pour joindre le service (path, content, mode), produits à partir du catalogue avec les secrets masqués. files vide quand le service n'en a pas. Permission configs:read.

Route : /api/v1/clusters/{cluster_id}/services/{service}/client-config (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la configuration cliente d'un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.clusterAction​

JsonNode clusterAction(String clusterId, Object body)

Exécuter une action sur tous les services d'un cluster. Lance une seule opération qui exécute l'action sur chaque service géré du périmètre (tous les services par défaut, ou ceux de services, sur toutes les machines ou sur hosts), dans l'ordre des dépendances : un fournisseur démarre avant ses consommateurs et s'arrête après eux. restart arrête tous les services dans l'ordre inverse, puis démarre tous les services dans l'ordre avec les contrôles de santé ; rolling_restart redémarre chaque service par lots de batch_size machines ; restart_stale réécrit les fichiers et unités des instances dont la configuration a changé, puis les redémarre par lots ; service_check lance la vérification de chaque service. Les services connectés, les services en cours d'installation ou de désinstallation, un état administratif qui interdit l'action et les instances en maintenance, en cours de retrait ou sur une machine décommissionnée sont écartés et listés dans skipped avec la raison. Renvoie services dans l'ordre des dépendances, skipped, steps et operation_id ; avec dry_run, rien n'est créé et operation_id est nul. Permission services:operate. Erreurs : 409 bulk_nothing_to_do, 404 cluster_service_not_found, 409 profile_blocked, 409 approval_required (sous banking-secure, l'arrêt et les redémarrages demandent une approbation pour le service *). Audité en cluster.<action>.

Route : /api/v1/clusters/{cluster_id}/actions (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiAction, périmètre, découpage par lots et simulation.

Retour : JsonNode. Réponse JSON décodée de l'opération « Exécuter une action sur tous les services d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.configure​

JsonNode configure(String clusterId, String service, Object body)

Enregistrer une nouvelle version de configuration. Fusionne les propriétés envoyées avec les valeurs courantes, les valide selon les définitions des paramètres et enregistre une nouvelle version. Renvoie version et stale_hosts. Permission configs:edit. Erreurs : 422 config_invalid (avec les champs), 409 service_unmanaged. Audité en config.update (noms des paramètres uniquement).

Route : /api/v1/clusters/{cluster_id}/services/{service}/config (PUT).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
bodyObjectouiPropriétés modifiées et une note.

Retour : JsonNode. Réponse JSON décodée de l'opération « Enregistrer une nouvelle version de configuration ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.connectService​

JsonNode connectService(String clusterId, Object body)

Connecter un service existant. Enregistre un de vos services existants selon la section connect de son descripteur du catalogue : aucune machine, jamais installé, démarré ni arrêté par le Manager. Le contrôle de santé et le contrôle authentifié de la méthode s'exécutent d'abord ; des identifiants refusés donnent 422 connect_invalid. Dans un cluster de production ou de préproduction, HTTPS, un certificat vérifié et une méthode autorisée sont exigés. Les champs secrets sont scellés. Renvoie la synthèse du service (201). Permission services:install. Audité en service.connect.

Route : /api/v1/clusters/{cluster_id}/services/connect (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiAdresse, authentification et réglages TLS du service existant.

Retour : JsonNode. Réponse JSON décodée de l'opération « Connecter un service existant ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.disconnectService​

JsonNode disconnectService(String clusterId, String service)

Déconnecter un service connecté. Oublie un service connecté et ses identifiants scellés ; le service lui-même n'est pas touché. Permission services:install. Erreurs : 409 service_not_connected, 409 service_in_use tant qu'un consommateur y est lié. Audité en service.disconnect.

Route : /api/v1/clusters/{cluster_id}/services/{service}/connection (DELETE).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. 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).

ServicesApi.getMode​

JsonNode getMode(String clusterId, String service)

Lire l'état administratif d'un service. Renvoie l'état administratif (enabled, disabled, maintenance, quarantined, suspended), sa raison, l'autorisation de fonctionner (run_authorized) le verrou de sécurité du cluster et modes, l'effet documenté de chaque mode. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/services/{service}/mode (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire l'état administratif d'un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.getService​

JsonNode getService(String clusterId, String service)

Lire un service. La synthèse du service plus ses host_components (chaque instance avec son état, sa santé et sa version), ses liaisons bindings vers d'autres services et ses liens rapides quick_links (consoles web issues du catalogue). Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/services/{service} (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.health​

JsonNode health(String clusterId, String service)

Lire les contrôles d'un service. Vivacité de chaque instance (contrôles de santé de l'agent), disponibilité (contrôle de service) et test fonctionnel, chacun avec son statut, ses résultats, son erreur et son heure. Seul un test fonctionnel réussi prouve que le service fonctionne. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/services/{service}/checks (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire les contrôles d'un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.hostAction​

JsonNode hostAction(String hostId, Object body)

Exécuter une action sur tous les composants d'une machine. Lance une seule opération qui démarre, arrête ou redémarre tous les composants placés sur la machine, ou seulement les composants dont la configuration a changé (restart_stale), service après service dans l'ordre des dépendances. Les instances en maintenance et les services dont l'état administratif interdit l'action sont écartés et listés dans skipped ; avec dry_run, rien n'est créé et operation_id est nul. Permission services:operate sur le cluster de la machine. Erreurs : 404 host_not_found, 409 bulk_nothing_to_do, 409 approval_required (sous banking-secure, l'arrêt et les redémarrages demandent une approbation pour le service host:<host id>). Audité en host.<action>.

Route : /api/v1/hosts/{host_id}/actions (POST).

NomTypeDéfautRequisDescription
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
bodyObjectouiAction et simulation.

Retour : JsonNode. Réponse JSON décodée de l'opération « Exécuter une action sur tous les composants d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.hostComponentAction​

JsonNode hostComponentAction(String clusterId, String service, String component, String hostId, Object body)

Exécuter une action sur une instance de composant. Comme les actions de service, limité au composant sur une machine. Renvoie operation_id. Permission services:operate (services:install pour reinstall). Audité en service.<action>.

Route : /api/v1/clusters/{cluster_id}/services/{service}/components/{component}/hosts/{host_id}/actions (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
componentStringouiNom du composant.
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
bodyObjectouiAction à exécuter.

Retour : JsonNode. Réponse JSON décodée de l'opération « Exécuter une action sur une instance de composant ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.install​

JsonNode install(String clusterId, Object body)

Installer des services. Valide, contrôle et planifie l'installation d'un ou plusieurs services, puis crée l'opération. Renvoie operation_id et les contrôles ha.

Route : /api/v1/clusters/{cluster_id}/services (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiServices à installer avec leurs placements et leur configuration.

Retour : JsonNode. Réponse JSON décodée de l'opération « Installer des services ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.installServices​

JsonNode installServices(String clusterId, Object body)

Installer des services. Valide, contrôle et planifie l'installation d'un ou plusieurs services, puis crée l'opération. Renvoie operation_id et les contrôles ha.

Route : /api/v1/clusters/{cluster_id}/services (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiServices à installer avec leurs placements et leur configuration.

Retour : JsonNode. Réponse JSON décodée de l'opération « Installer des services ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.listServices​

JsonNode listServices(String clusterId)

Lister les services d'un cluster. Chaque service du cluster avec son display_name, mode, method, managed, state, health, version, ses composants et leurs machines, les machines dont la configuration est périmée, config_version, les alertes ouvertes, l'état administratif, delivery (install ou connect) et la connexion. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/services (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. 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).

ServicesApi.lockCluster​

JsonNode lockCluster(String clusterId, Object body)

Poser le verrou de sécurité d'un cluster. Verrouille le cluster après un incident de sécurité : toute nouvelle opération est refusée avec 423 cluster_security_locked, sauf une suspension de sécurité ou un arrêt d'urgence, jusqu'à ce qu'un administrateur de la sécurité le lève. Renvoie cluster_id et security_lock. Permission pki:manage. Audité en cluster.security_lock.

Route : /api/v1/clusters/{cluster_id}/security-lock (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiRaison du verrouillage.

Retour : JsonNode. Réponse JSON décodée de l'opération « Poser le verrou de sécurité d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.removeComponent​

JsonNode removeComponent(String clusterId, String service, String component, String hostId, Map<String, ?> query)

Retirer une instance de composant d'une machine. Lance une opération qui arrête et retire le composant de cette machine et renvoie operation_id avec les contrôles ha. Permission services:install. Erreurs : 404 host_component_not_found, 422 topology_invalid (la topologie enfreindrait les règles du service), 409 ha_requirements_not_met ou ha_acknowledgement_required. Audité en service.component_remove.

Route : /api/v1/clusters/{cluster_id}/services/{service}/components/{component}/hosts/{host_id} (DELETE).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
componentStringouiNom du composant, tel que déclaré par le service du catalogue, par exemple server.
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Retirer une instance de composant d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.removeComponent​

JsonNode removeComponent(String clusterId, String service, String component, String hostId)

Retirer une instance de composant d'une machine. Lance une opération qui arrête et retire le composant de cette machine et renvoie operation_id avec les contrôles ha. Permission services:install. Erreurs : 404 host_component_not_found, 422 topology_invalid (la topologie enfreindrait les règles du service), 409 ha_requirements_not_met ou ha_acknowledgement_required. Audité en service.component_remove.

Route : /api/v1/clusters/{cluster_id}/services/{service}/components/{component}/hosts/{host_id} (DELETE).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
componentStringouiNom du composant, tel que déclaré par le service du catalogue, par exemple server.
hostIdStringouiIdentifiant de la machine, enregistrée par son agent Navin.

Retour : JsonNode. Réponse JSON décodée de l'opération « Retirer une instance de composant d'une machine ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.rollback​

JsonNode rollback(String clusterId, String upgradeId, Object body)

Annuler une mise à niveau. Lance l'opération qui rejoue les tâches scellées de la version précédente et rétablit la version de configuration précédente. Refusé quand le descripteur le déclare impossible ou qu'une migration irréversible a eu lieu (utilisez alors la restauration). Renvoie operation_id. Permission services:install ; 404 upgrade_not_found. Audité en service.rollback.

Route : /api/v1/clusters/{cluster_id}/upgrades/{upgrade_id}/rollback (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
upgradeIdStringouiIdentifiant de la mise à niveau.
bodyObjectouiApprobation facultative.

Retour : JsonNode. Réponse JSON décodée de l'opération « Annuler une mise à niveau ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.serviceAction​

JsonNode serviceAction(String clusterId, String service, Object body)

Exécuter une action sur un service. Lance une opération qui exécute l'action sur les composants et machines choisis (tous par défaut) et renvoie operation_id. Un redémarrage progressif traite batch_size machines à la fois. reinstall exige aussi services:install. Permission services:operate. Erreurs : 409 service_unmanaged, 409 service_check_missing, 409 smoke_test_missing, 404 host_component_not_found, 409 approval_required. Audité en service.<action>.

Route : /api/v1/clusters/{cluster_id}/services/{service}/actions (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
bodyObjectouiAction, périmètre et découpage par lots.

Retour : JsonNode. Réponse JSON décodée de l'opération « Exécuter une action sur un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.serviceCommand​

JsonNode serviceCommand(String clusterId, String service, String command, Object body)

Exécuter une commande personnalisée d'un service. Lance une opération qui exécute une commande déclarée par le service du catalogue (par exemple un nettoyage ou un rééquilibrage) avec ses paramètres et renvoie operation_id. Permission services:operate. Erreurs : 409 service_unmanaged, 404 command_unknown, 422 command_params_invalid, 404 host_component_not_found. Audité en service.command (noms des paramètres uniquement).

Route : /api/v1/clusters/{cluster_id}/services/{service}/commands/{command} (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
commandStringouiNom de la commande, tel que déclaré par le service du catalogue.
bodyObjectouiParamètres de la commande et machine cible facultative.

Retour : JsonNode. Réponse JSON décodée de l'opération « Exécuter une commande personnalisée d'un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.serviceDashboardView​

JsonNode serviceDashboardView(String clusterId, String service, Map<String, ?> query)

Lire le tableau de bord de supervision d'un service. Tableau de bord de supervision d'un service sur [from, to] (par défaut : la dernière heure) : instances, santé et derniers contrôles, disponibilité sur la période, métriques de ses machines, alertes, opérations, configuration et, pour un service connecté, sa connexion. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/services/{service}/dashboard (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire le tableau de bord de supervision d'un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.serviceDashboardView​

JsonNode serviceDashboardView(String clusterId, String service)

Lire le tableau de bord de supervision d'un service. Tableau de bord de supervision d'un service sur [from, to] (par défaut : la dernière heure) : instances, santé et derniers contrôles, disponibilité sur la période, métriques de ses machines, alertes, opérations, configuration et, pour un service connecté, sa connexion. Permission cluster:read.

Route : /api/v1/clusters/{cluster_id}/services/{service}/dashboard (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire le tableau de bord de supervision d'un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.serviceLogs​

JsonNode serviceLogs(String clusterId, String service, Object body)

Récupérer les journaux d'une instance de composant. Lance une opération où l'agent de la machine lit les dernières lignes des journaux du composant. Renvoie operation_id et task_id : lisez les lignes avec GET /operations/{operation_id}/tasks/{task_id}/logs. Permission services:operate. Audité en service.logs.

Route : /api/v1/clusters/{cluster_id}/services/{service}/logs (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
bodyObjectouiMachine, composant et nombre de lignes.

Retour : JsonNode. Réponse JSON décodée de l'opération « Récupérer les journaux d'une instance de composant ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.setMode​

JsonNode setMode(String clusterId, String service, Object body)

Appliquer un mode d'exploitation à un service. Applique un mode et renvoie l'état administratif obtenu, son effet documenté effect sur les nouvelles requêtes et les transactions en cours, l'operation_id quand le mode arrête des processus, et l'impact informatif ha :

Route : /api/v1/clusters/{cluster_id}/services/{service}/mode (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
bodyObjectouiMode, raison et délai de vidange.

Retour : JsonNode. Réponse JSON décodée de l'opération « Appliquer un mode d'exploitation à un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.uninstallService​

JsonNode uninstallService(String clusterId, String service, Map<String, ?> query)

Désinstaller un service. Lance l'opération de désinstallation (arrêt, retrait des paquets et, avec purge_data, des données) et renvoie operation_id. Permission services:install. Erreurs : 409 service_in_use (consommateurs listés dans details.consumers), 409 service_connected (utilisez DELETE .../connection), 409 approval_required sous banking-secure. Audité en service.uninstall.

Route : /api/v1/clusters/{cluster_id}/services/{service} (DELETE).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : JsonNode. Réponse JSON décodée de l'opération « Désinstaller un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.uninstallService​

JsonNode uninstallService(String clusterId, String service)

Désinstaller un service. Lance l'opération de désinstallation (arrêt, retrait des paquets et, avec purge_data, des données) et renvoie operation_id. Permission services:install. Erreurs : 409 service_in_use (consommateurs listés dans details.consumers), 409 service_connected (utilisez DELETE .../connection), 409 approval_required sous banking-secure. Audité en service.uninstall.

Route : /api/v1/clusters/{cluster_id}/services/{service} (DELETE).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.

Retour : JsonNode. Réponse JSON décodée de l'opération « Désinstaller un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.unlockCluster​

JsonNode unlockCluster(String clusterId)

Lever le verrou de sécurité d'un cluster. Lève le verrou : les nouvelles opérations sont à nouveau acceptées. Renvoie cluster_id et security_lock (nul). Permission pki:manage (rôle de sécurité). Audité en cluster.security_unlock.

Route : /api/v1/clusters/{cluster_id}/security-lock (DELETE).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Lever le verrou de sécurité d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.updateConnection​

JsonNode updateConnection(String clusterId, String service, Object body)

Modifier un service connecté. Modifie l'adresse, les identifiants (rotation) ou les réglages TLS d'un service connecté ; une valeur omise conserve celle enregistrée. Avec dry_run, le changement est contrôlé comme une validation de connexion et n'est pas enregistré. Des identifiants refusés par le service ne sont jamais enregistrés (422 connect_invalid). Permission services:install ; 409 service_not_connected. Audité en service.connection.update (noms des champs uniquement, jamais les valeurs).

Route : /api/v1/clusters/{cluster_id}/services/{service}/connection (PATCH).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
bodyObjectouiChamps de la connexion à modifier.

Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier un service connecté ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.upgrade​

JsonNode upgrade(String clusterId, String service, Object body)

Mettre à niveau un service. Met à niveau le service vers la version du catalogue en une seule opération :

Route : /api/v1/clusters/{cluster_id}/services/{service}/upgrade (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
serviceStringouiNom du service du catalogue, par exemple postgresql ou keycloak.
bodyObjectouiMachine canari et approbation facultative.

Retour : JsonNode. Réponse JSON décodée de l'opération « Mettre à niveau un service ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.validateConnect​

JsonNode validateConnect(String clusterId, Object body)

Contrôler une connexion avant de l'enregistrer. Essai à blanc d'une connexion : contrôle la demande selon le descripteur, puis exécute le contrôle de santé et le contrôle authentifié de la méthode. Renvoie le verdict avec les erreurs ; rien n'est enregistré. Permission services:install.

Route : /api/v1/clusters/{cluster_id}/services/connect/validate (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiMême corps qu'une connexion.

Retour : JsonNode. Réponse JSON décodée de l'opération « Contrôler une connexion avant de l'enregistrer ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ServicesApi.validateServices​

JsonNode validateServices(String clusterId, Object body)

Valider une installation sans l'exécuter. Contrôle une demande d'installation et la prévisualise sans rien modifier. Renvoie ok, errors (chacune avec service, field, code, message_i18n), plan (order, nombre d'étapes stages, steps), ha (contrôles de haute disponibilité) et dependencies (items et added). Permission services:install.

Route : /api/v1/clusters/{cluster_id}/services/validate (POST).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).
bodyObjectouiMême corps qu'une installation.

Retour : JsonNode. Réponse JSON décodée de l'opération « Valider une installation sans l'exécuter ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.SettingsApi​

Réglages. Réglages généraux du Manager : nom du site, langue par défaut, valeurs par défaut d'installation (méthode préférée, registre, miroir), SMTP et syslog distant pour les notifications d'alertes (syslog sert aussi à la règle d'audit distant de banking-secure), conservation des données et proxy d'entreprise des machines gérées. Tout utilisateur connecté lit les valeurs non secrètes ; settings:manage (globale) les modifie. Le mot de passe SMTP est relu sous la forme {"secret": true, "set": true|false}. Les changements sont audités (settings.update). Opérations de ce groupe de l'API du Navin Manager.

SettingsApi.getSettingsView​

JsonNode getSettingsView()

Lire les réglages. Renvoie site_name, default_language, install, smtp, syslog, retention et proxy, secrets masqués. Tout utilisateur connecté.

Route : /api/v1/settings (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire les réglages ».

Erreurs levées : les erreurs typées du transport (Erreurs).

SettingsApi.putSettings​

JsonNode putSettings(Object body)

Modifier les réglages. Modifie les sections et les champs fournis ; une section ou un champ omis est conservé. Renvoie les réglages. Permission settings:manage. Erreurs : 422 proxy_invalid (URL de proxy avec identifiants ou hors http(s)), 422 validation_error. Audité en settings.update.

Route : /api/v1/settings (PUT).

NomTypeDéfautRequisDescription
bodyObjectouiSections des réglages à modifier.

Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier les réglages ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.StackApi​

Catalogue de la pile. Le catalogue des services que le Manager peut installer (la pile) : chaque service avec ses versions, ses composants, ses méthodes d'installation, ses paramètres, ses dépendances et ses règles de haute disponibilité. Tout utilisateur connecté peut le lire ; aucune permission n'est nécessaire. Opérations de ce groupe de l'API du Navin Manager.

StackApi.highAvailability​

JsonNode highAvailability()

Lire la matrice de haute disponibilité du catalogue. Matrice de haute disponibilité de chaque service du catalogue, triée par catégorie puis par nom : ses modes (topologies) avec la cardinalité de chaque composant, et son bloc de haute disponibilité avec les contrôles de vivacité et de disponibilité. Renvoie items et count. Tout utilisateur connecté.

Route : /api/v1/catalog/high-availability (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la matrice de haute disponibilité du catalogue ».

Erreurs levées : les erreurs typées du transport (Erreurs).

StackApi.service​

JsonNode service(String name)

Lire un service du catalogue. Description publique d'un service du catalogue : composants, modes, méthodes, mode de livraison, couche et haute disponibilité. Tout utilisateur connecté ; 404 pour un service inconnu.

Route : /api/v1/stack/services/{name} (GET).

NomTypeDéfautRequisDescription
nameStringouiNom du service du catalogue, par exemple postgresql.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un service du catalogue ».

Erreurs levées : les erreurs typées du transport (Erreurs).

StackApi.stack​

JsonNode stack()

Lire la synthèse du catalogue. Nom, version et catégories de la pile et une synthèse de chaque service qu'elle propose (composants, modes, dépendances, licence). Tout utilisateur connecté.

Route : /api/v1/stack (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la synthèse du catalogue ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.SystemApi​

Système. Supervision du Manager par lui-même : santé de la base de données, du moteur, des agents et des tâches planifiées, liste des systèmes d'exploitation pris en charge et découverte de services Prometheus d'un cluster. Permissions : system:read pour la santé, cluster:read pour la découverte de services ; les systèmes pris en charge sont ouverts à tout utilisateur connecté. Opérations de ce groupe de l'API du Navin Manager.

SystemApi.health​

JsonNode health()

Lire la santé du Manager. Renvoie version, database (ok, latency_ms), engine (leader, last_tick_at, lag_s, queued_tasks), agents (online : battement de cœur dans les 60 dernières secondes, lost, total) et scheduler.jobs (dernière exécution et dernière erreur de chaque tâche). Permission system:read.

Route : /api/v1/system/health (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la santé du Manager ».

Erreurs levées : les erreurs typées du transport (Erreurs).

SystemApi.prometheusSd​

JsonNode prometheusSd(String clusterId)

Découverte de services Prometheus d'un cluster. Cibles au format de découverte de services HTTP de Prometheus : un groupe par instance de composant qui expose des métriques, avec targets (fqdn:port) et les étiquettes __metrics_path__, __scheme__, nm_cluster, nm_service, nm_component, nm_host. Permission cluster:read ; 404 cluster_not_found.

Route : /api/v1/clusters/{cluster_id}/sd/prometheus (GET).

NomTypeDéfautRequisDescription
clusterIdStringouiIdentifiant du cluster (un environnement de machines ou un cluster Kubernetes géré par le Navin Manager).

Retour : JsonNode. Réponse JSON décodée de l'opération « Découverte de services Prometheus d'un cluster ».

Erreurs levées : les erreurs typées du transport (Erreurs).

SystemApi.supportedOs​

JsonNode supportedOs()

Lister les systèmes d'exploitation pris en charge. Liste publiée des systèmes d'exploitation et des versions pris en charge par les agents et les services. Tout utilisateur connecté.

Route : /api/v1/system/supported-os (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les systèmes d'exploitation pris en charge ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.TelemetryApi​

Télémétrie. État de l'export en temps réel des métriques et événements du Manager vers ClickHouse. La plateforme ne livre pas de serveur de tableaux de bord (ADR-0169) : les machines et les services se suivent dans le Manager lui-même et les tables exportées se lisent en SQL. L'export est désactivé tant qu'aucune URL ClickHouse n'est configurée. Tout principal qui lit au moins un cluster (cluster:read, globale ou sur un cluster). Opérations de ce groupe de l'API du Navin Manager.

TelemetryApi.telemetry​

JsonNode telemetry()

Lire l'état de l'export de télémétrie. Renvoie enabled, database, flush_seconds, retention_days, stats (buffered, written, dropped, failures, last_error) et les tables exportées tables. Permission cluster:read sur au moins un cluster.

Route : /api/v1/telemetry (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire l'état de l'export de télémétrie ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.UsersApi​

Utilisateurs et rôles. Administration des comptes de la console et de leurs attributions de rôle. Opérations de ce groupe de l'API du Navin Manager.

UsersApi.createUser​

JsonNode createUser(Object body)

Créer un utilisateur local. Crée un compte local avec son mot de passe et ses attributions de rôle, et le renvoie (201). Permission users:manage. Erreurs : 409 username_taken, 422 password_policy, 422 role_invalid, 422 role_global_only, 422 binding_cluster_not_found, 403 user_manage_denied (accorder admin sans être administrateur complet). Audité en user.create.

Route : /api/v1/users (POST).

NomTypeDéfautRequisDescription
bodyObjectouiLe nouveau compte.

Retour : JsonNode. Réponse JSON décodée de l'opération « Créer un utilisateur local ».

Erreurs levées : les erreurs typées du transport (Erreurs).

UsersApi.deleteUser​

JsonNode deleteUser(String userId)

Supprimer un utilisateur. Supprime le compte. Répond 204. Permission users:manage. Erreurs : 404 user_not_found, 409 cannot_delete_self, 409 last_admin, 403 user_manage_denied. Audité en user.delete.

Route : /api/v1/users/{user_id} (DELETE).

NomTypeDéfautRequisDescription
userIdStringouiIdentifiant du compte utilisateur de la console.

Retour : JsonNode. Réponse JSON décodée de l'opération « Supprimer un utilisateur ».

Erreurs levées : les erreurs typées du transport (Erreurs).

UsersApi.getUser​

JsonNode getUser(String userId)

Lire un utilisateur. Renvoie le compte avec ses attributions de rôle (role, cluster_id, source). Permission users:read ; 404 user_not_found.

Route : /api/v1/users/{user_id} (GET).

NomTypeDéfautRequisDescription
userIdStringouiIdentifiant du compte utilisateur de la console.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un utilisateur ».

Erreurs levées : les erreurs typées du transport (Erreurs).

UsersApi.listUsers​

Page<JsonNode> listUsers(Map<String, ?> query)

Lister les utilisateurs. Utilisateurs triés par nom d'utilisateur, chacun avec ses attributions de rôle, l'état de sa MFA, son verrouillage et sa dernière connexion. Paginé avec limit et cursor. Permission users:read.

Route : /api/v1/users (GET).

NomTypeDéfautRequisDescription
queryMap<String, ?>ouiParamètres de la chaîne de requête de la route.

Retour : Page<JsonNode>. Réponse JSON décodée de l'opération « Lister les utilisateurs ».

Erreurs levées : les erreurs typées du transport (Erreurs).

UsersApi.listUsers​

Page<JsonNode> listUsers()

Lister les utilisateurs. Utilisateurs triés par nom d'utilisateur, chacun avec ses attributions de rôle, l'état de sa MFA, son verrouillage et sa dernière connexion. Paginé avec limit et cursor. Permission users:read.

Route : /api/v1/users (GET).

Cet élément ne prend aucun paramètre.

Retour : Page<JsonNode>. Réponse JSON décodée de l'opération « Lister les utilisateurs ».

Erreurs levées : les erreurs typées du transport (Erreurs).

UsersApi.patchUser​

JsonNode patchUser(String userId, Object body)

Modifier ou désactiver un utilisateur. Modifie les champs fournis, conserve les autres et renvoie l'utilisateur. Désactiver un compte révoque immédiatement ses sessions. Permission users:manage. Erreurs : 404 user_not_found, 409 cannot_disable_self, 409 last_admin, 403 user_manage_denied. Audité en user.update.

Route : /api/v1/users/{user_id} (PATCH).

NomTypeDéfautRequisDescription
userIdStringouiIdentifiant du compte utilisateur de la console.
bodyObjectouiChamps de l'utilisateur à modifier.

Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier ou désactiver un utilisateur ».

Erreurs levées : les erreurs typées du transport (Erreurs).

UsersApi.putRoles​

JsonNode putRoles(String userId, Object body)

Remplacer les attributions de rôle d'un utilisateur. Remplace les attributions manuelles par la liste fournie ; les attributions synchronisées depuis LDAP ou OIDC sont conservées. Quand un nouveau rôle exige la MFA et que l'utilisateur n'en a pas, ses sessions sont révoquées. Renvoie l'utilisateur. Permission users:manage. Erreurs : 409 last_admin, 422 role_invalid, 422 role_global_only, 422 binding_cluster_not_found, 403 user_manage_denied. Audité en user.roles avec les attributions avant et après.

Route : /api/v1/users/{user_id}/roles (PUT).

NomTypeDéfautRequisDescription
userIdStringouiIdentifiant du compte utilisateur de la console.
bodyObjectouiLa liste complète des attributions manuelles.

Retour : JsonNode. Réponse JSON décodée de l'opération « Remplacer les attributions de rôle d'un utilisateur ».

Erreurs levées : les erreurs typées du transport (Erreurs).

UsersApi.resetMfa​

JsonNode resetMfa(String userId)

Réinitialiser le second facteur d'un utilisateur. Désactive la MFA de l'utilisateur, supprime son secret et ses codes de secours et révoque ses sessions ; l'utilisateur s'enrôle à nouveau à la prochaine connexion quand son rôle exige la MFA. Renvoie l'utilisateur. Permission users:manage. Audité en user.mfa_reset.

Route : /api/v1/users/{user_id}/mfa/reset (POST).

NomTypeDéfautRequisDescription
userIdStringouiIdentifiant du compte utilisateur de la console.

Retour : JsonNode. Réponse JSON décodée de l'opération « Réinitialiser le second facteur d'un utilisateur ».

Erreurs levées : les erreurs typées du transport (Erreurs).

UsersApi.resetPassword​

JsonNode resetPassword(String userId, Object body)

Définir le mot de passe d'un utilisateur local. Définit un nouveau mot de passe conforme à la politique, déverrouille le compte et révoque ses sessions. Répond 204. Permission users:manage. Erreurs : 409 not_local_user, 422 password_policy, 404 user_not_found, 403 user_manage_denied. Audité en user.password_reset.

Route : /api/v1/users/{user_id}/password (POST).

NomTypeDéfautRequisDescription
userIdStringouiIdentifiant du compte utilisateur de la console.
bodyObjectouiLe nouveau mot de passe et l'obligation ou non de le changer à la prochaine connexion.

Retour : JsonNode. Réponse JSON décodée de l'opération « Définir le mot de passe d'un utilisateur local ».

Erreurs levées : les erreurs typées du transport (Erreurs).

UsersApi.roles​

JsonNode roles()

Lister les rôles et leurs permissions. Chaque rôle avec son nom name, son libellé label dans les deux langues, ses permissions triées permissions et ses portées scopes (global, et cluster quand il peut être attribué sur un seul cluster). Permission users:read.

Route : /api/v1/roles (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les rôles et leurs permissions ».

Erreurs levées : les erreurs typées du transport (Erreurs).

UsersApi.unlockUser​

JsonNode unlockUser(String userId)

Déverrouiller un utilisateur. Lève le verrouillage posé après des échecs de connexion répétés et remet le compteur d'échecs à zéro. Renvoie l'utilisateur. Permission users:manage. Audité en user.unlock.

Route : /api/v1/users/{user_id}/unlock (POST).

NomTypeDéfautRequisDescription
userIdStringouiIdentifiant du compte utilisateur de la console.

Retour : JsonNode. Réponse JSON décodée de l'opération « Déverrouiller un utilisateur ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe ManagerGroups.VaultApi​

Coffre-fort. Le coffre-fort des administrateurs de la plateforme : les identifiants des services de la plateforme. Une entrée est un nom de service, son URL, un identifiant de connexion, un mot de passe et une clé d'API ou clé secrète. Seul le nom est conservé en clair ; URL, identifiant, mot de passe et clé forment un document scellé en AES-256-GCM avec la clé maîtresse. Les listes et les fiches ne portent jamais le mot de passe ni la clé (has_password, has_api_key) ; POST .../reveal les renvoie et est audité, l'audit ne gardant que le nom du service, jamais une valeur. Opérations de ce groupe de l'API du Navin Manager.

VaultApi.createEntry​

JsonNode createEntry(Object body)

Ajouter une entrée au coffre. Crée une entrée manuelle et la renvoie (201). Permission vault:manage. Erreurs : 409 vault_name_taken, 422 vault_name_required. Audité en vault.create.

Route : /api/v1/vault/entries (POST).

NomTypeDéfautRequisDescription
bodyObjectouiLe service et ses identifiants.

Retour : JsonNode. Réponse JSON décodée de l'opération « Ajouter une entrée au coffre ».

Erreurs levées : les erreurs typées du transport (Erreurs).

VaultApi.deleteEntry​

JsonNode deleteEntry(String entryId)

Supprimer une entrée du coffre. Supprime l'entrée. Répond 204. Permission vault:manage ; 404 vault_entry_not_found. Audité en vault.delete.

Route : /api/v1/vault/entries/{entry_id} (DELETE).

NomTypeDéfautRequisDescription
entryIdStringouiIdentifiant de l'entrée du coffre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Supprimer une entrée du coffre ».

Erreurs levées : les erreurs typées du transport (Erreurs).

VaultApi.getEntry​

JsonNode getEntry(String entryId)

Lire une entrée du coffre. Renvoie la fiche d'une entrée sans son mot de passe ni sa clé. Permission vault:manage ; 404 vault_entry_not_found.

Route : /api/v1/vault/entries/{entry_id} (GET).

NomTypeDéfautRequisDescription
entryIdStringouiIdentifiant de l'entrée du coffre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lire une entrée du coffre ».

Erreurs levées : les erreurs typées du transport (Erreurs).

VaultApi.importEntries​

JsonNode importEntries()

Importer les identifiants des services installés. Crée ou rafraîchit les entrées des services installés de chaque cluster ; les champs modifiés à la main sont conservés. Renvoie les noms des entrées par résultat. Permission vault:manage. Audité en vault.import.

Route : /api/v1/vault/import (POST).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Importer les identifiants des services installés ».

Erreurs levées : les erreurs typées du transport (Erreurs).

VaultApi.listEntries​

JsonNode listEntries()

Lister les entrées du coffre. Services du coffre triés par nom, avec leur URL et leur identifiant mais sans leur mot de passe ni leur clé. Permission vault:manage.

Route : /api/v1/vault/entries (GET).

Cet élément ne prend aucun paramètre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les entrées du coffre ».

Erreurs levées : les erreurs typées du transport (Erreurs).

VaultApi.revealEntry​

JsonNode revealEntry(String entryId)

Révéler le mot de passe et la clé d'une entrée. Renvoie en clair le mot de passe et la clé d'un service, pour les afficher et les copier dans la console. Permission vault:manage ; 404 vault_entry_not_found. Audité en vault.reveal (nom du service uniquement).

Route : /api/v1/vault/entries/{entry_id}/reveal (POST).

NomTypeDéfautRequisDescription
entryIdStringouiIdentifiant de l'entrée du coffre.

Retour : JsonNode. Réponse JSON décodée de l'opération « Révéler le mot de passe et la clé d'une entrée ».

Erreurs levées : les erreurs typées du transport (Erreurs).

VaultApi.updateEntry​

JsonNode updateEntry(String entryId, Object body)

Modifier une entrée du coffre. Modifie les champs fournis et renvoie l'entrée. Permission vault:manage. Erreurs : 404 vault_entry_not_found, 409 vault_name_taken, 422 vault_name_required, 409 vault_entry_managed (identifiants d'une console dont le Manager assure la rotation). Audité en vault.update (noms des champs uniquement).

Route : /api/v1/vault/entries/{entry_id} (PATCH).

NomTypeDéfautRequisDescription
entryIdStringouiIdentifiant de l'entrée du coffre.
bodyObjectouiChamps de l'entrée à modifier.

Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier une entrée du coffre ».

Erreurs levées : les erreurs typées du transport (Erreurs).