Export your data when you leave
Read the five exit objectives, record a real drill, export every covered class under a Merkle-rooted manifest and verify the export.
exit.objectives
Read the five exit objectives, record a real drill, export every covered class under a Merkle-rooted manifest and verify the export.
exit.objectivesPut admission in front of your MCP servers, repositories, SaaS tools and cloud accounts. Every agent gets a lease or a reason – and you keep the lever to stop any of them.
You want to know you can leave with your data, and to prove the export is complete. Exit lists five data classes, each with a published RTO and RPO, exports each class through its own list action, and verifies the manifest against live inventory.
The code reads the key from INTRAMEDIAL_KEY. Keep it in your shell or your secret store, never in a file you commit. Calls that need a signed-in person cannot use a key: the console makes them.
Five classes are listed: ledger, packs, yards, identity and policy, each with a published RTO and RPO. A class with nothing recorded reads unverified, never met by default.
provable: true means completeness and the digests both held.exit.objectivesexit-objectives
curl -sS https://api.intramedial.com/api/v1/acp/exit/objectives \
-H "Authorization: Bearer $INTRAMEDIAL_KEY"const res = await fetch("https://api.intramedial.com/api/v1/acp/exit/objectives", {
headers: { Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`, },
});
console.log(res.status, await res.json());import os, requests
res = requests.get(
"https://api.intramedial.com/api/v1/acp/exit/objectives",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
timeout=30,
)
print(res.status_code, res.json())After a real drill, send the class and the RTO and RPO you measured. observe only records what you measured; it runs nothing, and as shipped no recovery drill has recorded an observation yet.
curl -sS -X POST https://api.intramedial.com/api/v1/acp/exit/observe \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"dataClass": "ledger",
"rtoMinutes": 12,
"rpoMinutes": 0
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/exit/observe", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
dataClass: "ledger",
rtoMinutes: 12,
rpoMinutes: 0,
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/exit/observe",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"dataClass": "ledger",
"rtoMinutes": 12,
"rpoMinutes": 0,
},
timeout=30,
)
print(res.status_code, res.json())Export draws live data through each module's own list action, digests every item with SHA-256 and assembles a Merkle-rooted manifest. A listing failure is returned, not skipped.
curl -sS -X POST https://api.intramedial.com/api/v1/acp/exit/export \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{}'const res = await fetch("https://api.intramedial.com/api/v1/acp/exit/export", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/exit/export",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={},
timeout=30,
)
print(res.status_code, res.json())Verify recomputes completeness against live inventory. Send the original content as contents and it recomputes the digests too. Without contents, integrity stays null, never a false true.
curl -sS -X POST https://api.intramedial.com/api/v1/acp/exit/verify \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{}'const res = await fetch("https://api.intramedial.com/api/v1/acp/exit/verify", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/exit/verify",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={},
timeout=30,
)
print(res.status_code, res.json())provable is true only once completeness and the digests both hold. An item gone from the inventory is extra, not tampering.
Copied from: /docs/exit-objectives
unverified until one.The ledger is append-only and sealed under Merkle roots. The time on an entry is Intramedial's own clock, and a signed bundle can be checked offline with the published key.
Seal the audit log into a Merkle-rooted, signed bundle and check it offline with the published key.
ledger.bundles-snapshotInvoke the EU AI Act Article 12 export, then read the coverage report that maps the evidence you hold to controls and names the gaps.
compliance.packList who touched a resource, most recent first, then rebuild one event with its Merkle proof.
ledger.blameOne short email when we add recipes to the cookbook. No other mail, and you can unsubscribe from any message.
No key or account: Try it on the coordination.admit module page runs the real kernel in your browser. Use a workspace key for your own workspace.