resources/identity.ts
Source : sdks/typescript/packages/sdk/src/resources/identity.ts. Retour à l'index de la référence du SDK TypeScript.
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 MetaResource
Système. Points techniques du Control Plane : sondes de vie et de disponibilité, description de l'instance, identité de l'appelant, catalogue des briques de la plateforme et feuille de route du produit.
Resource
MetaResource.get
get(opts?: CallOptions)
Décrire l'instance du Control Plane. Nom, version et version d'API de l'instance, langues prises en charge et langue par défaut, domaines chargés, et fonctions activées par la configuration : authentification OIDC, par clé d'API, SPIFFE et de développement, OpenBao, OpenFGA, OPA et LiteLLM (vrai quand leur adresse est renseignée). Sans authentification.
Route : /v1/meta (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MetaResource.health
health(opts?: CallOptions)
Vérifier que le processus est vivant. Sonde de vie : répond toujours 200 avec status: ok et la version du Control Plane tant que le processus sert des requêtes. Elle ne vérifie aucune dépendance. Sans authentification ni limitation de débit.
Route : /healthz (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MetaResource.metrics
metrics(opts?: CallOptions)
GET /metrics : format texte Prometheus (ne fait pas partie du schéma OpenAPI).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
MetaResource.ready
ready(opts?: CallOptions)
Vérifier que l'instance est prête. Sonde de disponibilité : vérifie que la base de données répond et que les migrations du schéma ont été appliquées. Répond 200 ready quand chaque contrôle réussit, sinon 503 not_ready, avec le résultat de chaque contrôle et un message dans la langue de la requête. L'état du cache Redis est indiqué mais ne rend jamais l'instance indisponible. Sans authentification ni limitation de débit.
Route : /readyz (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Interface Me
Réponse de GET /v1/me : principal, tenant, rôles et portées de l'appelant.
Doc
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
principal | Doc | non | Compte Unix du certificat. navin-breakglass par défaut. |
tenant | Doc | non | Identifiant court du locataire. |
roles | string[] | non | Rôles de l'appelant. |
scopes | string[] | non | Portées demandées ; doivent comprendre openid. Par défaut openid, profile, email. |
Classe MeResource
L'appelant connecté : /v1/me, whoami, connexion d'un compte local, changement de mot de passe et déconnexion.
Resource
MeResource.changePassword
changePassword(body: { current_password: string; new_password: string }, opts?: CallOptions)
Changer le mot de passe. Change le mot de passe du compte local connecté. Uniquement pour une session du portail (403 password_session_required).
Route : /v1/auth/password (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | { current_password: string; new_password: string } | oui | Mot de passe actuel et nouveau mot de passe. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MeResource.get
get(opts?: CallOptions)
Lire le principal courant. Qui est l'appelant : identifiant du principal, type, tenant, habilitation, projet, environnement, méthode d'authentification et nom affiché, avec ses rôles et ses scopes. Si le principal appartient à un tenant, le tenant (identifiant, slug, nom, statut, résidence des données) est aussi renvoyé. Demande une authentification (401 sinon).
Route : /v1/me (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MeResource.login
login(body: { username: string; password: string }, opts?: CallOptions)
Se connecter avec un identifiant et un mot de passe. Ouvre une session du portail pour un compte local. Aucun identifiant n'est nécessaire. L'identifiant de connexion est comparé sans tenir compte de la casse.
Route : /v1/auth/login (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | { username: string; password: string } | oui | Identifiant et mot de passe du compte local. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MeResource.logout
logout(opts?: CallOptions)
Se déconnecter. Révoque la session du portail en cours : son jeton est refusé dès maintenant (401 session_revoked). Uniquement pour une session du portail (403 password_session_required avec un autre identifiant). Écrit l'événement d'audit auth.logout. Répond 204.
Route : /v1/auth/logout (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MeResource.whoami
whoami(opts?: CallOptions)
Afficher l'identité appelante. Renvoie l'identité résolue par la plateforme pour cette requête, quel que soit l'identifiant (jeton OIDC, session du portail, clé d'API, SPIFFE) : id, kind (user, service, agent, system), tenant_id, tenant_slug, roles, scopes, clearance, auth_method et display. En lecture seule, ouvert à tout appelant authentifié, y compris quand un compte local doit encore changer son mot de passe. Utilisez-la pour vérifier un nouveau jeton ou une nouvelle clé.
Route : /v1/identity/whoami (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Classe CatalogResource
Système. Points techniques du Control Plane : sondes de vie et de disponibilité, description de l'instance, identité de l'appelant, catalogue des briques de la plateforme et feuille de route du produit.
Resource
CatalogResource.getBrick
getBrick(id: string, opts?: CallOptions)
Lire une brique de la plateforme. Une brique du catalogue, retrouvée par son id sans tenir compte de la casse. Répond 404 not_found si aucune brique ne porte cet identifiant. Sans authentification.
Route : /v1/catalog/bricks/{brick_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant de la brique dans le catalogue, insensible à la casse. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
CatalogResource.listBricks
listBricks(opts?: CallOptions)
Lister les briques de la plateforme. Catalogue des briques de la plateforme lu dans bricks.yaml du dossier de catalogue, en une seule page (next_cursor vaut toujours null). Le fichier est chargé en YAML sûr (sans ancres ni alias, 2 Mo au plus). Sans authentification.
Route : /v1/catalog/bricks (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Classe RoadmapResource
Système. Points techniques du Control Plane : sondes de vie et de disponibilité, description de l'instance, identité de l'appelant, catalogue des briques de la plateforme et feuille de route du produit.
Resource
RoadmapResource.get
get(opts?: CallOptions)
Lire la feuille de route du produit. Feuille de route lue dans roadmap.yaml du dossier de catalogue, toujours avec une liste phases (vide si le fichier est absent). Chargée en YAML sûr. Sans authentification.
Route : /v1/roadmap (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Classe OperationsResource
Opérations. Opérations longues : un operation_id durable pour chaque création longue, pour la suivre et la relancer sans risque.
Resource
OperationsResource.get
get(operationId: string, opts?: CallOptions)
Suivre une opération longue. L'opération (type, état pending ou accepted, méthode, chemin, statut HTTP, clé d'idempotence, ressource suivie, créateur et dates), sa réponse acceptée et l'état en direct de la ressource suivie. La ressource est lue avec les identifiants de l'appelant par la route de la ressource, donc l'autorisation de la ressource s'applique : si cette lecture échoue, result reste null et result_error.http_status donne le statut. status vaut pending pendant l'exécution de la requête, puis le status ou le state de la ressource. Demande un principal de tenant (403 tenant_required) ; une opération créée par quelqu'un d'autre répond 404 not_found sauf si l'appelant détient tenant_admin, platform_admin, auditor ou security_officer.
Route : /v1/operations/{operation_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
operationId | string | oui | Identifiant de l'opération, tel que renvoyé dans l'en-tête Operation-Id. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Classe ContractsResource
Contrats et manifestes. Schémas JSON publiés (contrats) des documents de la plateforme, et manifestes déclaratifs qui créent ou mettent à jour des objets à partir d'un document, dans l'esprit de l'infrastructure as code.
Resource
ContractsResource.get
get(name: ContractName | string, opts?: CallOptions)
Lire un contrat. Renvoie le schéma JSON du contrat tel qu'il est publié. Ouvert à tout appelant authentifié. Un nom inconnu répond 404 unknown_contract.
Route : /v1/contracts/{name} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | ContractName | string | oui | Nom du contrat, par exemple agent-manifest. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ContractsResource.list
list(opts?: CallOptions)
Lister les contrats. Liste les contrats publiés avec leur name, title, kind, type, file, l'id du schéma et sa description. Ouvert à tout appelant authentifié. next_cursor vaut toujours null.
Route : /v1/contracts (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ContractsResource.validate
validate(name: ContractName | string, document: unknown, opts?: CallOptions)
Valider un document avec un contrat. Valide le corps avec le contrat, formats compris, sans rien enregistrer. La réponse donne contract, valid et errors, chacune avec le path JSON de la valeur fautive et un message. Ouvert à tout appelant authentifié. Un contrat inconnu répond 404 unknown_contract.
Route : /v1/contracts/{name}/validate (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | ContractName | string | oui | Nom du contrat, par exemple agent-manifest. | |
document | unknown | oui | Document à valider selon le contrat. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ContractsResource.validateLocal
validateLocal(name: ContractName | string, document: unknown): ContractValidationResult
Validation côté client avec les schémas embarqués (aucun appel réseau).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | ContractName | string | oui | Nom du contrat, par exemple agent-manifest. | |
document | unknown | oui | Document à valider selon le contrat. |
Retour : ContractValidationResult. Résultat de la validation avec les erreurs trouvées.
Interface ApplyResult
Réponse de ManifestsResource.apply : type, nom, version et statut du manifeste appliqué.
Doc
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
kind | ManifestKind | oui | Type du manifeste. |
name | string | oui | Nom du manifeste. |
version | string | oui | Version du manifeste. |
status | string | oui | Résultat de l'application. |
Classe ManifestsResource
Contrats et manifestes. Schémas JSON publiés (contrats) des documents de la plateforme, et manifestes déclaratifs qui créent ou mettent à jour des objets à partir d'un document, dans l'esprit de l'infrastructure as code.
Resource
ManifestsResource.apply
async apply(manifest: Manifest | Doc, opts?: CallOptions & { validate?: boolean }): Promise<ApplyResult>
Appliquer un manifeste. Crée ou met à jour l'objet décrit par un manifeste, en une transaction. Exige tenant_admin ou developer.
Route : /v1/manifests/apply (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
manifest | Manifest | Doc | oui | Manifeste à appliquer ; il est d'abord validé selon le contrat de son kind, sauf si validate vaut false. | |
opts | CallOptions & { validate?: boolean } | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Retour : Promise<ApplyResult>. Réponse JSON décodée de l'opération « Appliquer un manifeste ».
Erreurs levées : les erreurs typées du transport (Erreurs).
Classe TenantsResource
Tenants et organisation. Les tenants, leur hiérarchie, les projets, les environnements et les membres.
Resource
TenantsResource.create
create(body: Doc, opts?: CallOptions)
Créer un tenant. Crée un tenant et fait de chaque sujet de admins son tenant_admin. Exige platform_admin. Un identifiant court déjà utilisé répond 409 conflict. Écrit l'événement d'audit tenant.create dans la chaîne du nouveau tenant.
Route : /v1/tenants (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Doc | oui | Identifiant court, nom, résidence, paramètres et premiers administrateurs du tenant. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
TenantsResource.get
get(id: string, opts?: CallOptions)
Lire un tenant. Renvoie un tenant : identifiant court, nom, statut, résidence des données et paramètres. Un tenant que l'appelant ne peut pas voir répond 404 not_found.
Route : /v1/tenants/{tenant_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) du tenant. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
TenantsResource.iterate
iterate(params?: ListParams, opts?: CallOptions)
Lister les tenants. Liste les tenants visibles par l'appelant, triés par identifiant court, paginés : son propre tenant pour un identifiant de tenant, tous les tenants pour un administrateur de plateforme.
Route : /v1/tenants (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
TenantsResource.list
list(params?: ListParams, opts?: CallOptions): Promise<Page<Doc>>
Lister les tenants. Liste les tenants visibles par l'appelant, triés par identifiant court, paginés : son propre tenant pour un identifiant de tenant, tous les tenants pour un administrateur de plateforme.
Route : /v1/tenants (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Retour : Promise<Page<Doc>>. Réponse JSON décodée de l'opération « Lister les tenants ».
Erreurs levées : les erreurs typées du transport (Erreurs).
TenantsResource.update
update(id: string, body: Doc, opts?: CallOptions)
Modifier un tenant. Modifie le nom, la résidence des données, les paramètres ou le statut d'un tenant. Exige tenant_admin ; changer status (active ou suspended) exige un administrateur de plateforme (403 forbidden). Un tenant suspendu répond 403 tenant_suspended à tout identifiant. Écrit l'événement d'audit tenant.update.
Route : /v1/tenants/{tenant_id} (PATCH).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) du tenant. | |
body | Doc | oui | Champs à modifier ; les champs omis gardent leur valeur. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Classe ProjectsResource
Tenants et organisation. Les tenants, leur hiérarchie, les projets, les environnements et les membres.
Resource
ProjectsResource.create
create(body: Doc, opts?: CallOptions)
Créer un projet. Crée un projet dans le tenant de l'appelant. Exige tenant_admin.
Route : /v1/projects (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Doc | oui | Identifiant court, nom, paramètres, environnements et rattachement du projet. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ProjectsResource.createEnvironment
createEnvironment(id: string, body: Doc, opts?: CallOptions)
Créer un environnement. Ajoute un environnement (dev, test, staging ou prod) au projet. Exige tenant_admin et la relation editor sur le projet. Un environnement qui existe déjà répond 409 conflict. Écrit l'événement d'audit environment.create.
Route : /v1/projects/{project_id}/environments (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) du projet. | |
body | Doc | oui | Nom et paramètres de l'environnement. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ProjectsResource.delete
delete(id: string, opts?: CallOptions)
Supprimer un projet. Supprime le projet et ses environnements. Exige tenant_admin et la relation owner sur le projet (403 relation_required). Des objets qui référencent encore le projet peuvent bloquer la suppression (409 conflict). Écrit l'événement d'audit project.delete. Répond 204.
Route : /v1/projects/{project_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) du projet. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ProjectsResource.get
get(id: string, opts?: CallOptions)
Lire un projet. Renvoie le projet avec ses environnements. Exige la relation viewer sur le projet (403 relation_required, audité). Répond 404 not_found pour un projet inconnu.
Route : /v1/projects/{project_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) du projet. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ProjectsResource.iterate
iterate(params?: ListParams, opts?: CallOptions)
Lister les projets. Liste les projets du tenant triés par identifiant court, paginés, éventuellement filtrés par organisation ou unité métier. Ouvert à tout membre du tenant.
Route : /v1/projects (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ProjectsResource.list
list(params?: ListParams, opts?: CallOptions)
Lister les projets. Liste les projets du tenant triés par identifiant court, paginés, éventuellement filtrés par organisation ou unité métier. Ouvert à tout membre du tenant.
Route : /v1/projects (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ProjectsResource.listEnvironments
listEnvironments(id: string, opts?: CallOptions)
Lister les environnements d'un projet. Liste les environnements du projet, triés par nom. Exige la relation viewer sur le projet. Non paginé : next_cursor vaut toujours null.
Route : /v1/projects/{project_id}/environments (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) du projet. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ProjectsResource.update
update(id: string, body: Doc, opts?: CallOptions)
Modifier un projet. Modifie le nom, la description, les paramètres, les métadonnées ou le rattachement d'un projet. Envoyer organization_id ou business_unit_id à null détache le projet. L'unité doit appartenir à l'organisation (422 invalid_hierarchy). Exige tenant_admin et la relation editor sur le projet. Envoyez expected_version pour détecter une modification concurrente (409 version_conflict). Écrit l'événement d'audit project.update.
Route : /v1/projects/{project_id} (PATCH).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) du projet. | |
body | Doc | oui | Champs à modifier ; les champs omis gardent leur valeur. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Classe OrganizationsResource
Tenants et organisation. Les tenants, leur hiérarchie, les projets, les environnements et les membres.
Resource
OrganizationsResource.create
create(body: { slug: string; name: string; description?: string; metadata?: Doc }, opts?: CallOptions)
Créer une organisation. Crée une organisation dans le tenant. Exige tenant_admin. Un identifiant court déjà utilisé répond 409 conflict. Écrit l'événement d'audit organization.create.
Route : /v1/organizations (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | { slug: string; name: string; description?: string; metadata?: Doc } | oui | Identifiant court, nom, description et métadonnées de l'organisation. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
OrganizationsResource.iterate
iterate(params?: ListParams, opts?: CallOptions)
Lister les organisations. Liste les organisations du tenant, paginées. Ouvert à tout membre du tenant.
Route : /v1/organizations (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
OrganizationsResource.list
list(params?: ListParams, opts?: CallOptions)
Lister les organisations. Liste les organisations du tenant, paginées. Ouvert à tout membre du tenant.
Route : /v1/organizations (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
OrganizationsResource.update
update(organizationId: string, body: Doc & { expected_version?: number }, opts?: CallOptions)
Modifier une organisation. Modifie le nom, la description, le statut (active ou archived) ou les métadonnées d'une organisation. Exige tenant_admin. Envoyez expected_version pour détecter une modification concurrente (409 version_conflict). Écrit l'événement d'audit organization.update.
Route : /v1/organizations/{organization_id} (PATCH).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
organizationId | string | oui | Identifiant (UUID) de l'organisation. | |
body | Doc & { expected_version?: number } | oui | Champs à modifier ; les champs omis gardent leur valeur. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Classe BusinessUnitsResource
Tenants et organisation. Les tenants, leur hiérarchie, les projets, les environnements et les membres.
Resource
BusinessUnitsResource.create
create(body: { organization_id: string; parent_id?: string; slug: string; name: string; description?: string; metadata?: Doc }, opts?: CallOptions)
Créer une unité métier. Crée une unité métier dans une organisation, éventuellement sous une unité parente de la même organisation (422 invalid_hierarchy sinon). Exige tenant_admin. Un identifiant court déjà utilisé répond 409 conflict. Écrit l'événement d'audit business_unit.create.
Route : /v1/business-units (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | { organization_id: string; parent_id?: string; slug: string; name: string; description?: string; metadata?: Doc } | oui | Organisation, parent, identifiant court, nom et description de l'unité. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
BusinessUnitsResource.list
list(params?: ListParams & { organization_id?: string; parent_id?: string }, opts?: CallOptions)
Lister les unités métier. Liste les unités métier du tenant, paginées, éventuellement filtrées par organisation ou par unité parente. Ouvert à tout membre du tenant.
Route : /v1/business-units (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams & { organization_id?: string; parent_id?: string } | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
BusinessUnitsResource.update
update(businessUnitId: string, body: Doc & { expected_version?: number }, opts?: CallOptions)
Modifier une unité métier. Modifie le nom, la description, le statut (active ou archived) ou les métadonnées d'une unité métier. Son organisation et son parent ne peuvent pas changer. Exige tenant_admin. Envoyez expected_version pour détecter une modification concurrente (409 version_conflict). Écrit l'événement d'audit business_unit.update.
Route : /v1/business-units/{business_unit_id} (PATCH).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
businessUnitId | string | oui | Identifiant (UUID) de l'unité métier. | |
body | Doc & { expected_version?: number } | oui | Champs à modifier ; les champs omis gardent leur valeur. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Classe MembersResource
Membres du tenant (/v1/members), profils de quota et correspondances de groupes d'annuaire (/v1/identity).
Resource
MembersResource.create
create(body: Doc, opts?: CallOptions)
Ajouter un membre. Donne à un utilisateur (sujet OIDC) un rôle et une habilitation dans le tenant, ou dans un projet avec project_id. La fiche utilisateur est créée si elle est inconnue ; une appartenance existante pour le même utilisateur et le même projet est mise à jour. Exige tenant_admin ; accorder platform_admin exige un administrateur de plateforme (403 forbidden). Écrit l'événement d'audit member.assign.
Route : /v1/members (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Doc | oui | Utilisateur, rôle, habilitation et projet facultatif de l'appartenance. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MembersResource.createGroupMapping
createGroupMapping(body: { group: string } & Doc, opts?: CallOptions)
Créer une correspondance de groupe. Associe un groupe de l'annuaire à un rôle dans un projet et, en option, à un profil de quota. Exige tenant_admin.
Route : /v1/identity/group-mappings (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | { group: string } & Doc | oui | Groupe, projet, rôle et profil de quota facultatif de la correspondance. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MembersResource.createQuotaProfile
createQuotaProfile(body: { name: string } & Doc, opts?: CallOptions)
Créer un profil de quota. Crée un profil de quota réutilisable par les correspondances de groupes. Exige tenant_admin. Au moins un des champs limit_cost et limit_tokens est obligatoire (422 validation_error). Un nom déjà utilisé répond 409 conflict. Écrit l'événement d'audit identity.quota_profile.create.
Route : /v1/identity/quota-profiles (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | { name: string } & Doc | oui | Nom, période, mode d'application et plafonds du profil. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MembersResource.delete
delete(id: string, opts?: CallOptions)
Retirer un membre. Supprime l'appartenance : l'utilisateur perd le rôle qu'elle donnait dès la requête suivante. Exige tenant_admin. Écrit l'événement d'audit member.remove. Répond 204, ou 404 not_found.
Route : /v1/members/{member_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de l'appartenance. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MembersResource.deleteGroupMapping
deleteGroupMapping(id: string, opts?: CallOptions)
Supprimer une correspondance de groupe. Supprime la correspondance et retire ce qu'elle avait accordé (appartenances aux projets et quotas enregistrés comme accordés par elle) ; les appartenances accordées à la main restent. Exige tenant_admin. Écrit l'événement d'audit identity.group_mapping.delete. Répond 204, ou 404 not_found pour une correspondance inconnue.
Route : /v1/identity/group-mappings/{mapping_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de la correspondance de groupe. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MembersResource.deleteQuotaProfile
deleteQuotaProfile(id: string, opts?: CallOptions)
Supprimer un profil de quota. Supprime un profil de quota. Exige tenant_admin. Un profil encore utilisé par une correspondance de groupe ne peut pas être supprimé (409 conflict) : détachez-le d'abord des correspondances. Écrit l'événement d'audit identity.quota_profile.delete. Répond 204, ou 404 not_found.
Route : /v1/identity/quota-profiles/{profile_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) du profil de quota. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MembersResource.getGroupMapping
getGroupMapping(id: string, opts?: CallOptions)
Lire une correspondance de groupe. Renvoie une correspondance de groupe. Exige tenant_admin, security_officer ou auditor. Répond 404 not_found pour une correspondance inconnue.
Route : /v1/identity/group-mappings/{mapping_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de la correspondance de groupe. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MembersResource.iterate
iterate(params?: ListParams, opts?: CallOptions)
Lister les membres. Liste les appartenances du tenant, paginées : sujet de l'utilisateur, e-mail, nom affiché, rôle, habilitation, projet et date de création. Ouvert à tout membre du tenant.
Route : /v1/members (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MembersResource.list
list(params?: ListParams, opts?: CallOptions)
Lister les membres. Liste les appartenances du tenant, paginées : sujet de l'utilisateur, e-mail, nom affiché, rôle, habilitation, projet et date de création. Ouvert à tout membre du tenant.
Route : /v1/members (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MembersResource.listGroupMappings
listGroupMappings(opts?: CallOptions)
Lister les correspondances de groupes. Liste toutes les correspondances de groupes de l'annuaire du tenant avec leur groupe, projet, rôle et profil de quota. Exige tenant_admin, security_officer ou auditor (403 forbidden sinon). Non paginé : next_cursor vaut toujours null.
Route : /v1/identity/group-mappings (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MembersResource.listQuotaProfiles
listQuotaProfiles(opts?: CallOptions)
Lister les profils de quota. Liste les profils de quota du tenant (nom, période, mode d'application, plafonds de coût et de jetons, devise). Exige tenant_admin, security_officer ou auditor.
Route : /v1/identity/quota-profiles (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MembersResource.update
update(id: string, body: Doc, opts?: CallOptions)
Modifier un membre. Modifie le rôle ou l'habilitation d'une appartenance. Exige tenant_admin ; accorder platform_admin exige un administrateur de plateforme (403 forbidden). Écrit l'événement d'audit member.update. Répond 404 not_found pour une appartenance inconnue.
Route : /v1/members/{member_id} (PATCH).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de l'appartenance. | |
body | Doc | oui | Nouveau rôle et/ou nouvelle habilitation. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MembersResource.updateGroupMapping
updateGroupMapping(id: string, body: Doc, opts?: CallOptions)
Modifier une correspondance de groupe. Modifie le groupe, le projet, le rôle ou le profil de quota d'une correspondance ; seuls les champs envoyés changent. clear_quota_profile: true détache le profil. Les nouvelles valeurs s'appliquent à la prochaine connexion de chaque membre. Exige tenant_admin. Une modification qui dupliquerait une autre correspondance répond 409 conflict ; un projet ou un profil inconnu répond 404. Écrit l'événement d'audit identity.group_mapping.update.
Route : /v1/identity/group-mappings/{mapping_id} (PATCH).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de la correspondance de groupe. | |
body | Doc | oui | Champs à modifier ; les champs omis gardent leur valeur. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
MembersResource.updateQuotaProfile
updateQuotaProfile(id: string, body: Doc, opts?: CallOptions)
Modifier un profil de quota. Modifie la période, le mode d'application ou les plafonds d'un profil, ainsi que les quotas d'utilisateurs déjà créés à partir de lui par les correspondances de groupes, dans la même transaction. Exige tenant_admin. Écrit l'événement d'audit identity.quota_profile.update avec le nombre de quotas modifiés. Répond 404 not_found pour un profil inconnu.
Route : /v1/identity/quota-profiles/{profile_id} (PATCH).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) du profil de quota. | |
body | Doc | oui | Champs à modifier ; les champs omis gardent leur valeur. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Classe ApiKeysResource
Identité. Qui appelle l'API et avec quels droits. Ce tag couvre l'identité de l'appelant (whoami), les clés d'API des scripts et des services, les identités de service (charges de travail SPIFFE) qu'un utilisateur peut endosser temporairement, et les correspondances de groupes de l'annuaire qui transforment les groupes Keycloak en appartenances à des projets et en quotas.
Resource
ApiKeysResource.create
create(body: { name: string; scopes?: string[]; expires_at?: string } & Doc, opts?: CallOptions)
Créer une clé d'API. Crée une clé d'API pour les scripts et les services. Exige tenant_admin ou developer. La réponse (201) porte le secret complet dans key, montré une seule fois : rangez-le aussitôt dans un magasin de secrets.
Route : /v1/api-keys (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | { name: string; scopes?: string[]; expires_at?: string } & Doc | oui | Nom, droits, rattachement et expiration de la nouvelle clé. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ApiKeysResource.delete
delete(id: string, opts?: CallOptions)
Révoquer une clé d'API. Révoque la clé immédiatement : toute requête ultérieure faite avec elle répond 401 api_key_revoked. Révoquer une clé déjà révoquée réussit sans changement. Autorisé à tenant_admin, security_officer et developer ; un développeur ne révoque que les clés qu'il a créées, toute autre clé répond 404 not_found. Écrit l'événement d'audit api_key.revoke. Répond 204 sans corps.
Route : /v1/api-keys/{key_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de la clé d'API. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ApiKeysResource.list
list(params?: ListParams, opts?: CallOptions)
Lister les clés d'API. Liste les clés d'API du tenant, paginées par limit et cursor, triées par identifiant. Chaque élément donne le nom, le préfixe public, les rôles, les portées, l'habilitation, le projet, l'environnement, le créateur, l'expiration et l'état de révocation ; jamais le secret ni son empreinte. tenant_admin et security_officer voient toutes les clés, un developer uniquement celles qu'il a créées.
Route : /v1/api-keys (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ApiKeysResource.rotate
rotate(id: string, opts?: CallOptions)
Faire tourner une clé d'API. Émet une clé de remplacement avec le même nom, les mêmes rôles, portées, habilitation, projet et environnement, et retire l'ancienne. Le nouveau secret figure dans key de la réponse 201, montré une seule fois.
Route : /v1/api-keys/{key_id}/rotate (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de la clé d'API. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Interface ServiceIdentityAssume
Corps de POST /v1/service-identities/{identity_id}/assume (B9.3 identity.assumeService).
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
purpose | string | oui | Usage de la cible. backup par défaut. |
audience | string[] | non | Audiences en aval autorisées à vérifier le contexte (par défaut : les audiences de l'autorité). |
ttl_seconds | number | non | Durée de vie en secondes. Une fois écoulée, l'élément expire et n'est plus accepté. |
scopes | string[] | non | Portées demandées ; doivent comprendre openid. Par défaut openid, profile, email. |
Interface AssumedServiceContext
ExecutionContext signé renvoyé par une prise d'identité : pas un identifiant d'API, il est vérifié en aval.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
token | string | oui | Jeton d'accès au Hub. En écriture seule, scellé ; nul conserve le jeton enregistré. |
context_id | string | oui | Identifiant du contexte, utilisé pour le révoquer. |
kid | string | oui | Identifiant de la clé de signature. |
alg | string | oui | Algorithme de signature du jeton. |
issued_at | string | oui | Date d'émission du contexte. |
expires_at | string | oui | Date et heure (ISO 8601, UTC) après lesquelles l'élément n'est plus valide. |
audience | string[] | oui | Audiences en aval autorisées à vérifier le contexte. |
digest | string | oui | SHA-256 de la preuve (commandes, enregistrement), 100 caractères au plus. |
context | Doc | oui | Contenu décodé du contexte signé. |
service_identity | { id: string; name: string; spiffe_id: string } | oui | Identifiant, nom et identifiant SPIFFE de l'identité de service prise. |
effective | { roles: string[]; scopes: string[]; clearance: string } | oui | Rôles, portées et habilitation en vigueur sous le contexte. |
assumed_by | string | oui | Principal qui a pris l'identité de service. |
on_behalf_of | string | oui | Principal pour le compte duquel agit le service. |
decision_id | string | null | oui | Identifiant de la décision de politique qui a autorisé la prise d'identité, ou null. |
Classe ServiceIdentitiesResource
Identité. Qui appelle l'API et avec quels droits. Ce tag couvre l'identité de l'appelant (whoami), les clés d'API des scripts et des services, les identités de service (charges de travail SPIFFE) qu'un utilisateur peut endosser temporairement, et les correspondances de groupes de l'annuaire qui transforment les groupes Keycloak en appartenances à des projets et en quotas.
Resource
ServiceIdentitiesResource.assume
async assume(identityId: string, body: ServiceIdentityAssume, opts?: CallOptions): Promise<AssumedServiceContext>
Endosser une identité de service. Renvoie un ExecutionContext signé et de courte durée dont le sujet est l'identité de service, pour l'appelant. Ce n'est pas un identifiant d'API : les services en aval le vérifient (POST /v1/context/verify ou le JWKS) et l'appelant le révoque avec POST /v1/context/{context_id}/revoke.
Route : /v1/service-identities/{identity_id}/assume (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
identityId | string | oui | Identifiant (UUID) de l'identité de service. | |
body | ServiceIdentityAssume | oui | Finalité, audiences, durée de vie et portées du contexte demandé. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Retour : Promise<AssumedServiceContext>. Réponse JSON décodée de l'opération « Endosser une identité de service ».
Erreurs levées : AuthzUnconfirmedError, les erreurs typées du transport (Erreurs).
ServiceIdentitiesResource.create
create(body: Doc, opts?: CallOptions)
Créer une identité de service. Enregistre une identité de charge de travail du tenant avec son identifiant SPIFFE, ses rôles, ses portées et son habilitation. Exige tenant_admin ou security_officer ; les rôles et portées accordés suivent les mêmes règles que les clés d'API (uniquement ce que l'appelant détient). Un identifiant SPIFFE déjà enregistré répond 409 conflict. Écrit l'événement d'audit service_identity.create. Endosser l'identité exige en plus la relation explicite can_assume (voir la route d'endossement).
Route : /v1/service-identities (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Doc | oui | Nom, identifiant SPIFFE et droits de l'identité. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ServiceIdentitiesResource.delete
delete(id: string, opts?: CallOptions)
Supprimer une identité de service. Supprime l'identité de service ; elle ne peut plus être endossée ni s'authentifier avec son identifiant SPIFFE. Exige tenant_admin ou security_officer. Écrit l'événement d'audit service_identity.delete. Répond 204, ou 404 not_found.
Route : /v1/service-identities/{identity_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de l'identité de service. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ServiceIdentitiesResource.list
list(params?: ListParams, opts?: CallOptions)
Lister les identités de service. Liste les identités de service du tenant, triées par nom, avec leur identifiant SPIFFE, leurs rôles, leurs portées et leur habilitation. Ouvert à tout membre du tenant. Non paginé : next_cursor vaut toujours null.
Route : /v1/service-identities (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Interface AuthzTuple
Tuple de relation OpenFGA : sujet, relation et objet.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
subject | string | oui | Sujet de la relation. |
relation | string | oui | Relation entre le sujet et l'objet. |
object | string | oui | Objet vérifié, <type>:<id>, par exemple project:42. |
Classe AuthzResource
Vérifications et tuples OpenFGA (/v1/authz) et décisions OPA expliquées (/v1/policies/evaluate).
Resource
AuthzResource.check
async check(body: AuthzTuple & { contextual_tuples?: AuthzTuple[] }, opts?: CallOptions)
Vérifier une relation. Indique si subject détient relation sur object, en suivant l'héritage. Jusqu'à 20 contextual_tuples sont tenus pour vrais pour cette seule vérification et jamais enregistrés (un tuple invalide répond 422 validation_error). Ouvert à tout membre du tenant. La réponse donne allowed, engine, subject, relation et object. Écrit l'événement d'audit authz.check avec la décision. Quand le moteur ne peut pas répondre, la décision est un refus, elle est auditée et l'API répond 502 authz_backend_error.
Route : /v1/authz/check (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | AuthzTuple & { contextual_tuples?: AuthzTuple[] } | oui | Sujet, relation, objet et tuples contextuels facultatifs. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
AuthzResource.checkBatch
async checkBatch(checks: Array<AuthzTuple & { contextual_tuples?: AuthzTuple[] }>, opts?: CallOptions)
Un POST /v1/authz/check par tuple, dans l'ordre ; allowed n'est vrai que si chaque vérification a été confirmée autorisée.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
checks | Array<AuthzTuple & { contextual_tuples?: AuthzTuple[] }> | oui | Tuples à vérifier, chacun avec des tuples contextuels facultatifs ; une liste vide donne allowed faux. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
AuthzResource.deleteTuples
deleteTuples(body: { tuples: AuthzTuple[] } | AuthzTuple, opts?: CallOptions)
Supprimer des tuples d'autorisation. Supprime un tuple ({subject, relation, object}) ou jusqu'à 100 ({"tuples": [...]}). Exige tenant_admin ou security_officer. Les tuples inexistants sont ignorés ; la réponse donne deleted (nombre supprimé) et engine. Écrit l'événement d'audit authz.delete. 502 authz_backend_error quand le moteur ne peut pas répondre.
Route : /v1/authz/tuples (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | { tuples: AuthzTuple[] } | AuthzTuple | oui | Un tuple, ou un objet tuples avec 1 à 100 tuples. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
AuthzResource.explain
async explain(body: { action: string; resource: Doc; context?: Doc; subject?: Doc }, opts?: CallOptions)
Évaluer une demande de politique. Renvoie la décision pour une demande du Policy Contract. Le corps est un Policy Contract ({schema_version, request}) ou seulement son objet request (subject, action, resource, context) ; il est validé avec le contrat policy-contract (422 validation_error).
Route : /v1/policies/evaluate (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | { action: string; resource: Doc; context?: Doc; subject?: Doc } | oui | Document Policy Contract, ou son seul objet request. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
AuthzResource.listTuples
listTuples(query?: { subject?: string; object?: string }, opts?: CallOptions)
Lister les tuples d'autorisation. Liste les tuples enregistrés du tenant, triés par objet, relation et sujet, 1000 au plus, éventuellement filtrés par objet et par sujet (égalité exacte). Ouvert à tout membre du tenant. next_cursor vaut toujours null.
Route : /v1/authz/tuples (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
query | { subject?: string; object?: string } | non | Paramètres de la chaîne de requête de la route. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
AuthzResource.writeTuples
writeTuples(body: { tuples: AuthzTuple[] } | AuthzTuple, opts?: CallOptions)
Écrire des tuples d'autorisation. Accorde un tuple ({subject, relation, object}) ou jusqu'à 100 ({"tuples": [...]}) en une transaction. Exige tenant_admin ou security_officer. Un sujet générique (user:*) sur une relation réservée aux sujets nommés, comme can_assume, répond 422 authz_wildcard_not_allowed. La réponse (201) donne written et engine. Écrit l'événement d'audit authz.write. 502 authz_backend_error quand le moteur ne peut pas répondre.
Route : /v1/authz/tuples (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | { tuples: AuthzTuple[] } | AuthzTuple | oui | Un tuple, ou un objet tuples avec 1 à 100 tuples. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Alias de type OPA_BUNDLE_STATUS_PATH
Point d'accès de statut OPA que lit le Control Plane pour indiquer la révision de bundle exécutée par un moteur (API OPA, pas Control Plane).
Classe PoliciesResource
Politiques. Politiques fondées sur les attributs (ABAC) qui décident de chaque action sensible de la plateforme, avec le Policy Contract v1, le journal des décisions, la simulation, les révisions et les bundles OPA signés.
Resource
PoliciesResource.create
create(body: Doc, opts?: CallOptions)
Créer une politique. Crée une politique du tenant et ajoute sa première révision. Une politique opa exige rego (422 validation_error) et, sauf si OPA charge des bundles signés, est poussée immédiatement dans OPA (503 policy_engine_unavailable quand OPA est injoignable). Un nom déjà utilisé répond 409 conflict. Exige tenant_admin ou security_officer. Écrit l'événement d'audit policy.create.
Route : /v1/policies (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Doc | oui | Nom, moteur, règles ou Rego, priorité et statut de la politique. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
PoliciesResource.createBundle
createBundle(body: { revision?: string; data?: Doc } = {}, opts?: CallOptions)
Publier un bundle OPA. Emballe les politiques opa du tenant dans un bundle OPA signé et l'enregistre comme nouvelle révision current. Les politiques actives sont décidées par OPA ; les brouillons sont livrés comme bibliothèques ; les désactivées sont exclues. Aucune politique opa répond 409 policy_bundle_empty ; aucune clé de signature en production 503 policy_bundle_signing_unavailable. Exige tenant_admin ou security_officer. Écrit l'événement d'audit policy.bundle_publish. Répond 201 avec l'enregistrement du bundle.
Route : /v1/policies/bundles (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | { revision?: string; data?: Doc } | {} | non | Nom de révision et contenu de data.json facultatifs. Un corps vide génère la révision. |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
PoliciesResource.decisions
decisions(params?: ListParams, opts?: CallOptions)
Lister les décisions de politique. Liste les décisions du tenant, les plus récentes d'abord, paginées : sujet, action, ressource, contexte, autorisation, politique et version, raisons, obligations, moteur et date. Exige tenant_admin, security_officer ou auditor.
Route : /v1/policies/decisions (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
PoliciesResource.delete
delete(id: string, opts?: CallOptions)
Supprimer une politique. Supprime la politique et ajoute une révision delete. Une politique OPA poussée directement dans OPA en est aussi retirée (503 policy_engine_unavailable quand OPA est injoignable). Exige tenant_admin ou security_officer. Écrit l'événement d'audit policy.delete. Répond 204, ou 404 not_found.
Route : /v1/policies/{policy_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de la politique. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
PoliciesResource.diffRevisions
diffRevisions(id: string, query: { from_revision?: number; to_revision?: number } = {}, opts?: CallOptions)
Comparer deux révisions d'une politique. Renvoie les différences entre deux révisions de la politique. Par défaut : la révision précédente face à la dernière. La politique est d'abord recherchée (404 not_found), puis les révisions (404 not_found). Exige tenant_admin, security_officer, auditor ou developer.
Route : /v1/policies/{policy_id}/revisions/diff (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de la politique. | |
query | { from_revision?: number; to_revision?: number } | {} | non | Paramètres de la chaîne de requête de la route. |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
PoliciesResource.downloadBundle
downloadBundle(revision: string = "current", opts?: CallOptions)
Télécharger un bundle OPA. Renvoie le bundle qu'OPA interroge, en application/gzip : modules Rego, data.json facultatif, .manifest et .signatures.json (JWT RS256 sur le SHA-256 de chaque fichier). L'en-tête ETag est son SHA-256 et X-Bundle-Revision sa révision. Exige tenant_admin, security_officer ou auditor. Répond 404 not_found pour une révision inconnue.
Route : /v1/policies/bundles/{revision}/bundle.tar.gz (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
revision | string | "current" | non | Révision du bundle, ou current pour la dernière publiée. |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
PoliciesResource.engines
engines(opts?: CallOptions)
Lire l'état des moteurs de politique. Renvoie les services de politique (moteur intégré, OPA, OpenFGA) et la version de politique ou la révision de bundle que chacun exécute réellement, lue auprès du moteur lui-même. Exige tenant_admin, security_officer ou auditor.
Route : /v1/policies/engines (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
PoliciesResource.evaluate
evaluate(body: PolicyContract | { request: PolicyRequest } | Doc, opts?: CallOptions)
Évaluer une demande de politique. Renvoie la décision pour une demande du Policy Contract. Le corps est un Policy Contract ({schema_version, request}) ou seulement son objet request (subject, action, resource, context) ; il est validé avec le contrat policy-contract (422 validation_error).
Route : /v1/policies/evaluate (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | PolicyContract | { request: PolicyRequest } | Doc | oui | Document Policy Contract, ou son seul objet request. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
PoliciesResource.get
get(id: string, opts?: CallOptions)
Lire une politique. Renvoie une politique. Ouvert à tout membre du tenant. Répond 404 not_found.
Route : /v1/policies/{policy_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de la politique. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
PoliciesResource.list
list(params?: ListParams, opts?: CallOptions)
Lister les politiques. Liste les politiques du tenant dans l'ordre d'évaluation (priorité, puis nom), avec leurs règles ou leur Rego. Ouvert à tout membre du tenant. next_cursor vaut toujours null.
Route : /v1/policies (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
PoliciesResource.listBundles
listBundles(opts?: CallOptions)
Lister les bundles OPA. Liste les bundles OPA publiés pour le tenant : révision, SHA-256, état de signature, politiques incluses et date. Exige tenant_admin, security_officer ou auditor.
Route : /v1/policies/bundles (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
PoliciesResource.replace
replace(id: string, body: Doc, opts?: CallOptions)
Remplacer une politique. Remplace tous les champs de la politique et ajoute une révision update. Même validation qu'à la création (rego pour opa, nom unique). Une politique opa est poussée dans OPA sauf si OPA charge des bundles. Exige tenant_admin ou security_officer. Écrit l'événement d'audit policy.update. Répond 404 not_found pour une politique inconnue.
Route : /v1/policies/{policy_id} (PUT).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de la politique. | |
body | Doc | oui | Nouveau contenu complet de la politique. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
PoliciesResource.revisions
revisions(id: string, opts?: CallOptions)
Lister les révisions d'une politique. Liste les révisions immuables de la politique (une par création, modification et suppression, écrite dans la même transaction), avec leur numéro, opération, auteur, date et contenu. Exige tenant_admin, security_officer, auditor ou developer. Répond 404 not_found.
Route : /v1/policies/{policy_id}/revisions (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de la politique. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
PoliciesResource.simulate
simulate(body: { candidate: Doc; inputs?: Doc[]; policy_id?: string; recorded?: Doc }, opts?: CallOptions)
Simuler une politique candidate. Compare, entrée par entrée, les décisions des politiques actives avec celles du même ensemble où la candidate remplace policy_id (ou est ajoutée). Rien n'est modifié.
Route : /v1/policies/simulate (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | { candidate: Doc; inputs?: Doc[]; policy_id?: string; recorded?: Doc } | oui | Politique candidate, politique remplacée, entrées et nombre de décisions enregistrées à rejouer. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Classe ApprovalsResource
Validations. Humain dans la boucle : demandes de validation des actions sensibles, avec séparation des tâches, quorum et expiration. Les exécutions d'agents qui atteignent un outil soumis à validation, les promotions de modèles, d'agents, d'outils, de compétences, de serveurs MCP ou de plugins, les accès d'urgence et les mandats créent tous leurs demandes de validation ici.
Resource
ApprovalsResource.cancel
async cancel(id: string, body: ApprovalCancel, opts?: CallOptions)
Annuler une demande de validation. Retire une demande en attente. Autorisé à son demandeur, à un tenant_admin ou à un security_officer (403 forbidden sinon, le refus étant audité). La demande finit cancelled et son sujet réagit comme à un refus : une exécution en attente échoue (approval_cancelled), un accès d'urgence ou un mandat en attente est refusé. Une demande qui n'est plus en attente répond 409 approval_closed. Écrit l'événement d'audit approval.cancel avec la raison. La réponse porte run_state quand une exécution est rattachée.
Route : /v1/approvals/{approval_id}/cancel (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de la demande de validation. | |
body | ApprovalCancel | oui | Raison de l'annulation. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : EaiError, les erreurs typées du transport (Erreurs).
ApprovalsResource.check
async check(id: string, opts?: CallOptions)
Lire une demande de validation. Renvoie une demande de validation avec ses décisions (valideur, décision, commentaire, date) et approvals_count. Une demande en attente dont l'expiration est passée est marquée expired et son exécution en attente échoue. Ouvert à tout membre du tenant. Répond 404 approval_not_found.
Route : /v1/approvals/{approval_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de la demande de validation. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ApprovalsResource.create
create(body: Doc, opts?: CallOptions)
Demander une validation. Crée une demande de validation en attente. Exige tenant_admin, developer, agent, security_officer ou finops.
Route : /v1/approvals (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Doc | oui | Action, ressource, quorum, valideurs et expiration de la demande. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ApprovalsResource.decide
decide(id: string, body: { decision: "approve" | "reject"; comment?: string }, opts?: CallOptions)
Approuver ou refuser une demande. Enregistre la décision de l'appelant sur une demande en attente.
Route : /v1/approvals/{approval_id}/decide (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de la demande de validation. | |
body | { decision: "approve" | "reject"; comment?: string } | oui | Décision et commentaire facultatif. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ApprovalsResource.get
get(id: string, opts?: CallOptions)
Lire une demande de validation. Renvoie une demande de validation avec ses décisions (valideur, décision, commentaire, date) et approvals_count. Une demande en attente dont l'expiration est passée est marquée expired et son exécution en attente échoue. Ouvert à tout membre du tenant. Répond 404 approval_not_found.
Route : /v1/approvals/{approval_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de la demande de validation. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ApprovalsResource.iterate
iterate(params?: ListParams, opts?: CallOptions)
Lister les demandes de validation. Liste les demandes de validation du tenant, les plus récentes d'abord, paginées, éventuellement filtrées par statut. Les demandes en attente dont l'expiration est passée sont d'abord marquées expired. Chaque élément porte ses decisions et approvals_count. Ouvert à tout membre du tenant.
Route : /v1/approvals (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
ApprovalsResource.list
list(params?: ListParams, opts?: CallOptions)
Lister les demandes de validation. Liste les demandes de validation du tenant, les plus récentes d'abord, paginées, éventuellement filtrées par statut. Les demandes en attente dont l'expiration est passée sont d'abord marquées expired. Chaque élément porte ses decisions et approvals_count. Ouvert à tout membre du tenant.
Route : /v1/approvals (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Interface ApprovalCancel
Corps de POST /v1/approvals/{id}/cancel.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
reason | string | oui | Raison de l'action. Inscrite dans le journal d'audit avec l'acteur et l'heure. |
Classe RiskResource
Risques et conformité. Gestion des risques des systèmes d'IA du tenant : évaluations au titre de l'AI Act européen, contrôles rattachés à l'ISO/IEC 42001, au NIST AI RMF, au RGPD et à l'AI Act, preuves et dérogations limitées dans le temps.
Resource
RiskResource.createAssessment
createAssessment(body: Doc, opts?: CallOptions)
Évaluer le risque d'un système d'IA. Classe la cible au titre de l'AI Act européen et enregistre l'évaluation. Exige tenant_admin, security_officer, developer ou ai_governance_officer ; le statut approved exige tenant_admin, security_officer ou ai_governance_officer (403 forbidden).
Route : /v1/risk/assessments (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Doc | oui | Cible, cas d'usage, réponses, responsable, statut et preuves de l'évaluation. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
RiskResource.createControl
createControl(body: Doc, opts?: CallOptions)
Adopter ou modifier un contrôle. Crée ou modifie le contrôle du code donné. Pour un code du catalogue, le titre et les référentiels valent par défaut ceux du catalogue. Exige tenant_admin ou security_officer. Erreurs 400 invalid_request : statut autre que planned, implemented, partially_implemented ou not_applicable ; absence de titre pour un code personnalisé ; référentiel autre que iso_42001, nist_ai_rmf, gdpr ou eu_ai_act. Les preuves fournies sont ajoutées. Écrit l'événement d'audit risk.control.upsert.
Route : /v1/risk/controls (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Doc | oui | Code, titre, référentiels, statut, responsable et preuves du contrôle. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
RiskResource.createException
createException(body: Doc, opts?: CallOptions)
Demander une dérogation à un contrôle. Enregistre une dérogation limitée dans le temps sur un contrôle (control_id ou control_code) ou sur une cible (target_ref). Exige tenant_admin, security_officer ou developer.
Route : /v1/risk/exceptions (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Doc | oui | Contrôle ou cible, raison, contrôles compensatoires, approbateur et expiration. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
RiskResource.evidence
evidence(query?: Query, opts?: CallOptions)
Lire les preuves de conformité. Renvoie les preuves enregistrées sur les contrôles et les évaluations, les plus récentes d'abord, plus les preuves collectées automatiquement sur la plateforme et rattachées aux contrôles du catalogue : nombres d'agents, d'outils, de modèles, d'évaluations, de règles DLP et de politiques de conservation actives, de clés, d'événements et d'exports d'audit avec l'état de la chaîne d'audit, d'évaluations, de campagnes de red team, d'incidents et de validations. Ouvert à tout membre du tenant.
Route : /v1/risk/evidence (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
query | Query | non | Paramètres de la chaîne de requête de la route. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
RiskResource.listAssessments
listAssessments(params?: ListParams, opts?: CallOptions)
Lister les évaluations de risques. Liste les évaluations du tenant, les plus récentes d'abord, 500 au plus, éventuellement pour une seule cible. Chaque élément donne la cible, eu_ai_act_category (aussi en risk_level), les cas d'usage, les réponses, la justification, les obligations, le statut et le responsable. Ouvert à tout membre du tenant. next_cursor vaut toujours null.
Route : /v1/risk/assessments (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
RiskResource.listControls
listControls(params?: ListParams, opts?: CallOptions)
Lister les contrôles. Liste les contrôles adoptés par le tenant, triés par code, chacun avec evidence_count, ses exceptions et active_exceptions, ainsi que le catalog intégré où adopted indique ceux que le tenant utilise. Ouvert à tout membre du tenant.
Route : /v1/risk/controls (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
RiskResource.listExceptions
listExceptions(query?: { status?: string } & Query, opts?: CallOptions)
Lister les dérogations. Liste les dérogations du tenant triées par expiration, chacune avec son status calculé : active, expired ou revoked. Ouvert à tout membre du tenant. next_cursor vaut toujours null.
Route : /v1/risk/exceptions (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
query | { status?: string } & Query | non | Paramètres de la chaîne de requête de la route. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Classe IncidentsResource
Incidents. Incidents de sécurité et d'exploitation du tenant : gravité, statut, chronologie, actions de confinement, alertes Alertmanager et transmission au SIEM.
Resource
IncidentsResource.action
action(id: string, body: { action: string; target: string; reason?: string } & Doc, opts?: CallOptions)
Lancer une action de confinement. Lance une action de confinement par le domaine propriétaire de la cible et l'enregistre sur l'incident. Exige tenant_admin ou security_officer.
Route : /v1/incidents/{incident_id}/actions (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de l'incident. | |
body | { action: string; target: string; reason?: string } & Doc | oui | Action, cible et raison. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
IncidentsResource.create
create(body: Doc, opts?: CallOptions)
Ouvrir un incident. Ouvre un incident au statut open, ajoute l'entrée created à la chronologie et le transmet au SIEM. Exige tenant_admin, security_officer, developer ou agent. Une gravité inconnue répond 400 invalid_request. Écrit l'événement d'audit incident.create. La réponse (201) porte l'incident avec sa chronologie.
Route : /v1/incidents (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Doc | oui | Titre, gravité, description, catégorie, ressources et responsable. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
IncidentsResource.get
get(id: string, opts?: CallOptions)
Lire un incident. Renvoie l'incident avec sa timeline (type, message, données, acteur, date) et ses actions de confinement (action, cible, statut, résultat). Ouvert à tout membre du tenant. Répond 404 not_found.
Route : /v1/incidents/{incident_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de l'incident. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
IncidentsResource.list
list(params?: ListParams, opts?: CallOptions)
Lister les incidents. Liste les incidents du tenant, identifiant le plus récent d'abord, paginés, éventuellement filtrés par statut et gravité. Les éléments ne portent ni la chronologie ni les actions (lisez un incident pour les obtenir). Ouvert à tout membre du tenant.
Route : /v1/incidents (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
IncidentsResource.receiveAlerts
receiveAlerts(body: Doc, opts?: CallOptions)
Recevoir des alertes Alertmanager. Récepteur webhook de Prometheus Alertmanager (charge utile en version 4). Chaque alerte est identifiée par son fingerprint :
Route : /v1/incidents/alerts (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Doc | oui | Charge utile du webhook Alertmanager, 500 alertes au plus. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
IncidentsResource.update
update(id: string, body: Doc, opts?: CallOptions)
Modifier un incident. Modifie le statut, la gravité ou le responsable et ajoute éventuellement une note. Chaque changement est ajouté à la chronologie et transmis au SIEM ; passer à resolved ou closed renseigne resolved_at. Exige tenant_admin ou security_officer. Un statut ou une gravité inconnus répondent 400 invalid_request. Écrit l'événement d'audit incident.update.
Route : /v1/incidents/{incident_id} (PATCH).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
id | string | oui | Identifiant (UUID) de l'incident. | |
body | Doc | oui | Champs à modifier et note facultative. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Classe GovernanceResource
Gouvernance. Registre de gouvernance : une vue agrégée des actifs d'IA du tenant, pour savoir ce qui existe, qui en est responsable et quel est son niveau de risque.
Resource
GovernanceResource.registry
registry(query?: Query, opts?: CallOptions)
Lire le registre de gouvernance. Inventaire des agents, modèles, fournisseurs, outils, skills, plugins et connecteurs (5000 éléments par type au plus, par nom), une liste par type (agents, models, ...), avec un summary par type : total, nombre par statut, nombre par niveau de risque (unassessed à défaut) et nombre d'éléments sans responsable. missing_sources liste les tables non installées sur cette instance ; leur liste est vide. Demande un principal de tenant (403 tenant_required). Un type inconnu répond 400 invalid_request avec les types autorisés.
Route : /v1/governance/registry (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
query | Query | non | Paramètres de la chaîne de requête de la route. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Classe SecretsResource
Secrets. Magasin en écriture seule des secrets du tenant : clés de fournisseurs, mots de passe de connecteurs, jetons de serveurs MCP. Les valeurs sont chiffrées (dans OpenBao quand il est configuré, sinon en AES-GCM dans la base) et ne sont jamais renvoyées par l'API. Les autres objets désignent un secret par son chemin ; la plateforme ne lit la valeur côté serveur que lorsqu'elle en a besoin.
Resource
SecretsResource.delete
delete(path: string, opts?: CallOptions)
Supprimer un secret. Supprime le secret et, avec OpenBao, sa valeur dans le coffre. Exige tenant_admin, security_officer ou developer ; un développeur ne supprime que les secrets qu'il a écrits (403 forbidden). Les objets qui désignent encore ce chemin cessent de fonctionner. Écrit l'événement d'audit secret.delete. Répond 204, 404 not_found, ou 502 secret_backend_error quand le coffre est injoignable.
Route : /v1/secrets/{path} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
path | string | oui | Chemin du secret, barres obliques comprises, par exemple connectors/crm/password. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
SecretsResource.list
list(params?: ListParams, opts?: CallOptions)
Lister les secrets. Liste les métadonnées des secrets du tenant triées par chemin : id, path, backend (openbao ou local), version, created_by, created_at, updated_at. Jamais la valeur. Ouvert à tout membre du tenant. next_cursor vaut toujours null.
Route : /v1/secrets (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
params | ListParams | non | Champs supplémentaires fusionnés dans la requête. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
SecretsResource.write
write(body: { path: string; value: string } & Doc, opts?: CallOptions)
Écrire un secret. Crée le secret, ou remplace sa valeur quand le chemin existe (la version augmente de un). Exige tenant_admin, security_officer ou developer ; un développeur ne remplace que les secrets qu'il a écrits (403 forbidden). Un chemin contenant un segment .. répond 400 invalid_request. La réponse (201) donne les métadonnées, jamais la valeur. Écrit l'événement d'audit secret.write. 502 secret_backend_error quand le coffre est injoignable.
Route : /v1/secrets (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | { path: string; value: string } & Doc | oui | Chemin et valeur du secret. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Interface SecuritySettings
Réglages de sécurité du tenant, lus et mis à jour partiellement via /v1/security/settings.
Champs :
| Nom | Type | Requis | Description |
|---|---|---|---|
prompt_injection_mode | "off" | "detect" | "block" | non | Filtre d'injection de prompt : off, detect ou block. |
untrusted_content_wrapping | boolean | non | Indique si le contenu non fiable est encadré avant d'atteindre le modèle. |
output_links | "allow" | "strip_untrusted" | non | Traitement des liens dans la sortie du modèle : allow ou strip_untrusted. |
output_link_allowlist | string[] | non | Cibles de liens conservées dans la sortie du modèle. |
egress_allowed_hosts | string[] | non | Hôtes que les appels sortants peuvent joindre. |
Classe SecurityResource
Posture et réglages de sécurité (/v1/security), signalement d'incident et confinement d'un run.
Resource
SecurityResource.cancelRun
cancelRun(runId: string, body: { reason?: string } = {}, opts?: CallOptions)
Annuler un run. Fait passer le run à cancelled avec l'erreur cancelled ; ses runs de sous-agents actifs sont aussi annulés. Demande tenant_admin, developer, agent ou security_officer. Un run déjà terminé répond 409 invalid_transition. Audité sous run.transition.
Route : /v1/runs/{run_id}/cancel (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
runId | string | oui | Identifiant (UUID) du run. | |
body | { reason?: string } | {} | non | Raison facultative de l'annulation. |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
SecurityResource.checkState
checkState(opts?: CallOptions)
Lire la posture de sécurité. Renvoie environment, generated_at, protections (méthodes d'authentification et autres protections en vigueur), checks (chacun avec son statut pass, warn ou fail, sa gravité et son message) et summary (nombre de contrôles par statut). Pour un appelant rattaché à un tenant, renvoie aussi tenant avec les réglages de sécurité du tenant, dont certains contrôles tiennent compte. Exige security_officer ou tenant_admin. En lecture seule.
Route : /v1/security/posture (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
SecurityResource.getSettings
getSettings(opts?: CallOptions)
Lire les réglages de sécurité. Renvoie tenant_id et settings : les réglages de sécurité du tenant, valeurs par défaut comprises. Exige tenant_admin ou security_officer et un tenant (403 tenant_required).
Route : /v1/security/settings (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
SecurityResource.posture
posture(opts?: CallOptions)
Lire la posture de sécurité. Renvoie environment, generated_at, protections (méthodes d'authentification et autres protections en vigueur), checks (chacun avec son statut pass, warn ou fail, sa gravité et son message) et summary (nombre de contrôles par statut). Pour un appelant rattaché à un tenant, renvoie aussi tenant avec les réglages de sécurité du tenant, dont certains contrôles tiennent compte. Exige security_officer ou tenant_admin. En lecture seule.
Route : /v1/security/posture (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
SecurityResource.reportIncident
reportIncident(body: { title: string; severity?: string } & Doc, opts?: CallOptions)
Ouvrir un incident. Ouvre un incident au statut open, ajoute l'entrée created à la chronologie et le transmet au SIEM. Exige tenant_admin, security_officer, developer ou agent. Une gravité inconnue répond 400 invalid_request. Écrit l'événement d'audit incident.create. La réponse (201) porte l'incident avec sa chronologie.
Route : /v1/incidents (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | { title: string; severity?: string } & Doc | oui | Titre, gravité, description, catégorie, ressources et responsable. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
SecurityResource.updateSettings
updateSettings(body: SecuritySettings, opts?: CallOptions)
Modifier les réglages de sécurité. Mise à jour partielle : seuls les réglages envoyés changent, les autres gardent leur valeur. Exige tenant_admin ou security_officer et un tenant.
Route : /v1/security/settings (PUT).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | SecuritySettings | oui | Objet JSON avec les réglages à modifier, par exemple {"prompt_injection_mode": "block"}. | |
opts | CallOptions | non | Options de l'appel (requête, clé d'idempotence, traceparent, en-têtes). |
Erreurs levées : les erreurs typées du transport (Erreurs).
Fonctions
confirmCheck
confirmCheck(answer: T): T &
Renvoie une réponse de vérification d'autorisation seulement quand OpenFGA a donné une décision booléenne explicite.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
answer | T | oui | Réponse de POST /v1/authz/check. |
Retour : T &. La même réponse, typée avec un allowed booléen ; lève AuthzUnconfirmedError sinon.
confirmDecision
confirmDecision(answer: Doc): PolicyDecision
Évaluer une demande de politique. Renvoie la décision pour une demande du Policy Contract. Le corps est un Policy Contract ({schema_version, request}) ou seulement son objet request (subject, action, resource, context) ; il est validé avec le contrat policy-contract (422 validation_error).
Route : /v1/policies/evaluate (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
answer | Doc | oui | Réponse de POST /v1/policies/evaluate ; son decision.allow doit être un booléen. |
Retour : PolicyDecision. Réponse JSON décodée de l'opération « Évaluer une demande de politique ».
Erreurs levées : AuthzUnconfirmedError, les erreurs typées du transport (Erreurs).