Require two people for an action
Open a dual-control request for a fixed scope, have a second administrator approve its digest, then run the gated action.
dual.control-scopes
Open a dual-control request for a fixed scope, have a second administrator approve its digest, then run the gated action.
dual.control-scopesPut 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.
Some actions, such as revoking a tenant, should need two administrators. One opens a request with the exact body; a second approves its digest, and the gated route then runs only with that warrant.
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.
Eight scopes are fixed in code. The read returns them with the state of the seal and the number of open requests. Any other scope is refused.
dual.control-scopesdual-control-scopes
curl -sS https://api.intramedial.com/api/v1/acp/dual-control/scopes \
-H "Authorization: Bearer $INTRAMEDIAL_KEY"const res = await fetch("https://api.intramedial.com/api/v1/acp/dual-control/scopes", {
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/dual-control/scopes",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
timeout=30,
)
print(res.status_code, res.json())One administrator names the scope and the exact body of the action. The digest covers that body, so a second administrator approves precisely what they read. The request stays open for 15 minutes unless ttlMs says otherwise, and the call returns request and digest.
{
"scope": "revoke-tenant",
"body": { "delegationId": "del_41" },
"ttlMs": 900000
}A second administrator approves the request id and the digest. The gated route then runs only with the warrant.
{
"requestId": "…",
"digest": "…"
}Copied from: /docs/dual-control-scopes
kill-switch scope is gated: no route checks it.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.
Let a refused write wait in the approval queue until a signed-in person approves it, then retry with the token.
coordination.approveStop an agent with coordination.halt so admission answers quarantine, check that it does, and lift the stop when it is safe.
coordination.haltcoordination.quarantineAdmit an agent's write to a repository through Intralock and post the verdict to the commit as a check run or status.
github.enforceOne 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.