预览授权,再应用
用 apply: false 编译授权,读取它将产生的授予内容及其 previewDigest,然后精确应用您所预览的内容。
mandates.compile
用 apply: false 编译授权,读取它将产生的授予内容及其 previewDigest,然后精确应用您所预览的内容。
mandates.compile授权是以代码形式写成的智能体章程,应用后会立即改变 Intralock 准入的内容。您想先读一遍授予内容,并且希望在您查看之后授权或章程发生变化时,应用会失败。预览摘要把两者绑定在一起。
policies.approve 能够正常工作的最小权限范围;更宽泛的 Tools 范围同样可行policies.approve 权限,用于应用步骤imd、Cedar 或 Rego 写成的授权(等式子集)代码从 INTRAMEDIAL_KEY 读取密钥。请把它放在您的 shell 或密钥存储中,切勿放进要提交的文件。需要已登录用户的调用不能使用密钥:这些调用由控制台发起。
发送源码,并把 apply 设为 false。授权会编译为授予内容,并存储已签名的产物,但工作区快照不会改变。simulate 是只读的对应方式,返回与现行章程的差异。
revoked 和 withheld 列表,您可以据此查看效果。mandates.compilemandates-compilecurl -sS -X POST https://api.intramedial.com/api/v1/acp/mandates/compile \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": "mandate billing-writes\nallow write on repo:payments/main for did:web:acme.example:agent:billing",
"format": "imd",
"apply": false
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/mandates/compile", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
source: "mandate billing-writes\nallow write on repo:payments/main for did:web:acme.example:agent:billing",
format: "imd",
apply: false,
}),
});
const body = await res.json();
console.log(body.mandate.grants, body.applied, body.previewDigest);import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/mandates/compile",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"source": "mandate billing-writes\nallow write on repo:payments/main for did:web:acme.example:agent:billing",
"format": "imd",
"apply": False,
},
timeout=30,
)
body = res.json()
print(body["mandate"]["grants"], body["applied"], body["previewDigest"])读取 mandate.grants 并保留 previewDigest。它覆盖编译后的授予内容和章程,而不是源码文本。
用 previewDigest 发送同一份源码。如果自那以后授权或章程发生变化,调用会以 409 被拒绝。
curl -sS -X POST https://api.intramedial.com/api/v1/acp/mandates/compile \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": "mandate billing-writes\nallow write on repo:payments/main for did:web:acme.example:agent:billing",
"format": "imd",
"previewDigest": "9c1e5a07d4b3"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/mandates/compile", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
source: "mandate billing-writes\nallow write on repo:payments/main for did:web:acme.example:agent:billing",
format: "imd",
previewDigest: "9c1e5a07d4b3",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/mandates/compile",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"source": "mandate billing-writes\nallow write on repo:payments/main for did:web:acme.example:agent:billing",
"format": "imd",
"previewDigest": "9c1e5a07d4b3",
},
timeout=30,
)
print(res.status_code, res.json())内容复制自: /docs/mandates-compile
账本仅可追加,并封存在 Merkle 根之下。条目上的时间取自 Intramedial 自己的时钟,签名包可用已发布的公钥离线核查。
对您发送的数据运行已安装的视角,读取其发现,并保留带摘要的已存储结果。
lenses.run在策略副本中删除或添加授予,进行探测,并读取变更前后的每个裁决。
drills.counterfactual获取免费的测试密钥,使用 content.attest 证明一个哈希值,然后再验证返回给您的那一份签名回执。
coordination.admit当我们向实用示例中添加新示例时,会发送一封简短的邮件。不会发送其他任何邮件,而且您可以从任意一封邮件中退订。
完全无需账户:在 7 天之内可以在各个 attest 路由上调用 35 次,所生成的回执都会被标记为测试回执。当您想继续使用时,再注册账户即可。