Aller au contenu

Identifiants

Nécessite @openlatch/client 0.11.10 ou une version ultérieure

Utilisez cette page pour lire un identifiant OpenLatch : ce qu’il nomme, comment il est construit, où il apparaît, et quels changements d’une machine lui en donnent un nouveau.

Sous votre organisation, OpenLatch connaît trois entités et les événements qu’elles produisent. Chacune a un seul identifiant, avec un seul nom et un seul format partout où il apparaît : dans la console, dans l’API REST publique, dans les événements que le client envoie et dans la sortie du client.

EntitéPréfixeCe qu’il nommeComment il est construit
Hôtehst_Un système d’exploitation de votre organisation, une vie de conteneur, ou un clone d’une image de machine. Ce sont les hôtes que compte votre licenceDérivé sur la machine à partir de son identifiant de système d’exploitation, ou tiré au hasard quand il n’y en a aucun de fiable
Agentagt_Un produit d’agent, tel que Claude Code ou Codex CLI, utilisé par un utilisateur du système d’exploitation sur un hôte, et chaque profil qui y est enregistré. Les sessions en parallèle dans un même profil restent un seul agentDérivé de l’organisation, de l’hôte et du produit d’agent, plus un identifiant d’instance pour chaque utilisateur autre que le premier de l’hôte et pour un profil enregistré, si bien que le client et la plateforme calculent la même valeur
Sessionses_Une conversation d’un agentDérivé de l’agent et de l’identifiant de session que l’agent lui-même a donné
Événementevt_Un événement que le client envoieTiré au hasard par le client. La plateforme enregistre un événement une seule fois par identifiant

Chaque agent récupère les politiques de sa propre Autonomy Zone : deux agents d’un même hôte peuvent donc relever de zones différentes, et chacun est décidé avec la sienne.

Le premier utilisateur du système d’exploitation à remonter des données depuis un hôte garde l’Agent ID qu’il avait, dans son profil par défaut, et tout client antérieur continue de fonctionner sur cet agent. Chaque autre utilisateur de l’hôte, et chaque profil enregistré, obtient un Agent ID qui lui est propre.

RègleDétail
Identifiant d’instanceLes événements d’un tel agent portent un attribut olinstance : un pseudonyme dérivé de l’utilisateur du système d’exploitation et, pour un profil, de son répertoire. Il ne contient ni nom ni chemin, mais il est calculé avec une constante livrée dans chaque client, il n’est donc pas anonymisé. Il est envoyé même avec la capture des signaux d’identité désactivée
VérificationLa plateforme dérive à nouveau l’Agent ID à partir de l’attribut et refuse une requête dont l’Agent ID ne correspond pas, ou qui désigne un autre utilisateur que celui de son identifiant d’hôte, avec HOST_MISMATCH
Qui est le premierLa plateforme décide une fois pour toutes quel utilisateur est le premier de l’hôte, et la réponse ne change jamais. Tant que le client n’a pas cette réponse, ses événements restent sur l’agent par défaut, et openlatch doctor l’affiche en attente avec OL-1257
Aucun nom d’utilisateurUn client qui ne peut lire aucun nom d’utilisateur du système d’exploitation reste sur l’agent par défaut, et openlatch doctor le signale avec OL-1305
Variable de testOPENLATCH_TEST_OS_USER remplace l’utilisateur du système d’exploitation, et donc l’agent et sa zone. openlatch doctor le signale dès qu’elle est définie, avec OL-1306

Chaque identifiant est un préfixe de trois lettres, un trait de soulignement et 26 caractères en base32 minuscule : les chiffres et les lettres autres que i, l, o et u. Le préfixe dit ce que l’identifiant nomme.

agt_01jbz3q7x2k9m4n5p6r7s8t9v0
RègleDétail
AffichageLa console montre un identifiant en entier, ou raccourci à son préfixe et à ses huit premiers caractères ; son bouton de copie copie toujours la valeur entière
Un identifiant mal forméUne requête qui passe un identifiant avec le mauvais préfixe pour son champ, la mauvaise longueur ou un caractère hors de l’alphabet est refusée avec INVALID_ID, qui nomme le champ
Un identifiant inconnuUn identifiant bien formé qui n’existe pas, ou qui appartient à une autre organisation, reçoit la même réponse « introuvable » dans les deux cas
Pas un secretLes identifiants d’hôte, d’agent et de session sont calculés à partir de ce qu’ils nomment : ce ne sont jamais des identifiants de connexion. Une clé d’API est un secret : elle commence par openlatch_ ou, dans le format plus récent, par olk_, et la plateforme accepte les deux
EntitéChamp dans l’API REST publiqueAttribut d’un événement envoyé par le client
Hôtehost_idhostid
Agentagent_idagentid
Sessionsession_idsubject
Événementevent_idid

La console nomme les identifiants d’hôte et d’agent Host ID et Agent ID.

Le produit d’agent est platform dans l’API REST publique, par exemple claude-code ou codex-cli, et le regroupement que votre organisation donne à un agent est sa category. Dans l’API REST publique, quand un champ contient un identifiant que l’agent lui-même a donné, son nom le dit : native_session_id est l’identifiant de session propre à l’agent. Votre organisation n’apparaît jamais dans un événement : la plateforme la déduit de l’identifiant de connexion qui a envoyé l’événement.

Un hôte garde son identifiant tant que son système d’exploitation et son organisation restent les mêmes. Ces changements d’une machine décident si elle garde son hôte, et ses agents et ses sessions suivent leur hôte.

ChangementHôteHistorique dans la console
Désinstaller, puis réinstallerLe mêmeContinu
Désinstaller avec --purge, puis réinstallerLe même sur une machine qui a un identifiant de système d’exploitation ; nouveau sur un hôte dont l’identifiant a été tiré au hasardContinu quand l’hôte reste le même ; sinon il reste sous l’ancien hôte
Système d’exploitation réinstallé, ou nouvel identifiant de machineNouveauReste sous l’ancien hôte
Passage à une autre organisationUn hôte par organisation ; revenir à une organisation réutilise son hôteChaque organisation garde le sien
Clone d’une image de machine préparéeNouveau pour chaque clone, à son premier démarrageChaque clone part de zéro
Clone d’une image de machine non préparéePartagé avec l’original jusqu’à ce que les deux tournent en même temps ; le plus récent reçoit alors un nouvel hôte, et l’hôte affiche Possible duplicate pendant un momentL’original le garde ; le clone part de zéro
Conteneur qui ne garde pas de répertoire d’étatNouveau à chaque démarrage du conteneurChaque démarrage part de zéro

Préparez une machine avant de la capturer comme image avec openlatch system prepare-image ; voir Déployer le client. Dans un conteneur, le client ignore l’identifiant de la machine, car une image peut en embarquer un. Toolbx, Distrobox, Flatpak et le sous-système Windows pour Linux partagent l’identifiant de la machine et comptent comme la machine elle-même. Une seconde installation sur la même machine avec son propre répertoire d’état, défini par OPENLATCH_DIR, reçoit un hôte à elle, et ses agents ne fusionnent jamais avec ceux de la machine.

Un hôte qui n’est plus vu cesse de compter dans vos hôtes sous licence au bout de 30 jours, et son historique reste dans la console ; voir Lire les licences et l’usage.

Un client plus ancien que la version 0.10.0 n’est plus pris en charge. La plateforme refuse ses événements avec client_too_old et ses autres requêtes avec HOST_ID_REQUIRED, et il continue d’appliquer les politiques qu’il détient déjà. Réinstallez le client sur cette machine avec l’une des commandes d’installation ; voir Installer le client.

Quand une machine passe à un client pris en charge, le client signale une fois l’identité précédente de la machine, avant d’envoyer le moindre événement, et OpenLatch déplace les agents de la machine, avec leurs propriétaires, leurs zones et leur historique, vers les nouveaux identifiants. Tant que ce signalement n’est pas accepté, les événements attendent sur la machine et les politiques qu’elle détient continuent d’être appliquées, et openlatch doctor montre le signalement comme en attente avec OL-1253.