Exiger une approbation humaine pour une écriture
Laissez une écriture refusée attendre dans la file d’approbation jusqu’à ce qu’une personne connectée l’approuve, puis réessayez avec le jeton.
coordination.approve
Laissez une écriture refusée attendre dans la file d’approbation jusqu’à ce qu’une personne connectée l’approuve, puis réessayez avec le jeton.
coordination.approveFaites passer actions d’agents, hash de contenu, contrôles d’API, requêtes DNS, webhooks, appels LLM et commits git par Intramedial. Obtenez un reçu signé vérifiable par tous – sans nous croire.
Certaines écritures ne doivent pas passer sur la seule parole d’un agent. L’admission refuse une écriture sans jeton et laisse une demande ; un administrateur ou un approbateur désigné la tranche, et l’approbation émet un jeton pour cet acteur, cette ressource et ce verbe.
Le code lit la clé depuis INTRAMEDIAL_KEY. Gardez-la dans votre shell ou votre coffre à secrets, jamais dans un fichier que vous commitez. Les appels qui exigent une personne connectée ne peuvent pas utiliser de clé : c’est la console qui les fait.
Déclarez une écriture sans jeton. L’admission la refuse, et l’approvalId de la réponse nomme la demande qui attend dans la file qu’une personne la tranche.
La décision revient sous approval, avec son état.
{
"approval": {
"id": "apr_7f3a",
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": "write",
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
:
},
:
}coordination.approvecoordination-approve
curl -sS -X POST https://api.intramedial.com/api/v1/acp/coordination/admit \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": "write"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/coordination/admit", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
actorDid: "did:web:acme.example:agent:billing",
resource: "repo:payments/main",
action: "write",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/coordination/admit",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": "write",
},
timeout=30,
)
print(res.status_code, res.json())Un approbateur connecté lit la demande dans la console et l’approuve. Une clé ou un agent ne peut pas trancher ; voici le corps que la console envoie.
{
"id": "apr_7f3a",
"reason": "expected batch"
}L’agent réessaie avec le jeton comme confirmationToken. Il est à usage unique et lié à l’acteur, à la ressource et au verbe.
curl -sS -X POST https://api.intramedial.com/api/v1/acp/coordination/admit \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": "write",
"confirmationToken": "…"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/coordination/admit", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
actorDid: "did:web:acme.example:agent:billing",
resource: "repo:payments/main",
action: "write",
confirmationToken: "…",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/coordination/admit",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": "write",
"confirmationToken": "…",
},
timeout=30,
)
print(res.status_code, res.json())Copié de: /docs/coordination-approve
Le registre est en ajout seul et scellé sous des racines de Merkle. L’heure d’une entrée est l’horloge propre d’Intramedial, et un bundle signé peut être vérifié hors ligne avec la clé publiée.
Ouvrez une demande de double contrôle pour un périmètre fixe, faites approuver son condensé par un second administrateur, puis exécutez l’action protégée.
dual.control-scopesObtenez la clé de test gratuite, attestez un hash avec content.attest et vérifiez le reçu signé renvoyé.
coordination.admitAdmettez l’écriture d’un agent dans un dépôt via Intralock et publiez le verdict sur le commit sous forme de check run ou de statut.
github.enforceUn court e-mail quand nous ajoutons des recettes. Rien d’autre, et désabonnement possible depuis chaque message.
Sans compte : 35 appels sur 7 jours sur les routes attest, avec des reçus marqués test. Inscrivez-vous quand vous voulez continuer.