dual-control.scopesモジュール 22Two-person dual control
プレーンで最も破壊的な操作の実行前に、別々の管理者2人を必須にし、ブレークグラスの封印が無傷かを確認します。
dual-control.scopes は、二人が必要な8つの操作を一覧します。一方の管理者が正確なボディでスコープを要求し、もう一方が承認すると、ゲート付きルートはその令状がある場合だけ実行されます。同じルートが、ブレークグラスの封印と未処理のリクエスト数も報告します。
dual-control.scopesモジュール 22プレーンで最も破壊的な操作の実行前に、別々の管理者2人を必須にし、ブレークグラスの封印が無傷かを確認します。
dual-control.scopes は、二人が必要な8つの操作を一覧します。一方の管理者が正確なボディでスコープを要求し、もう一方が承認すると、ゲート付きルートはその令状がある場合だけ実行されます。同じルートが、ブレークグラスの封印と未処理のリクエスト数も報告します。
kill-switch は要求も承認もできますが、その令状を確認するルートがないため、承認しても何も止まりません。停止には coordination の管理者専用の停止ルートを使い、このスコープに頼らないでください。
scopesquarantine、revoke-grant、revoke-tenant、revoke-verification、teardown-yard、kill-switch、reseal、restore-workspace。管理者が scope と操作の正確な body を送信します。プレーンは request と digest を返します。digest は承認者が署名するリクエストの正規形です。
共有デモワークスペースでデモ用キーを使って実行します。中身は誰でも見られるため、非公開の情報は送らないでください。 dual-control.scopesの資料
実行を押すと、左のリクエストが共有デモワークスペースに送信されます。
共有デモワークスペースでデモ用キーを使って実行します。中身は誰でも見られるため、非公開の情報は送らないでください。
APIが受け付ける形のリクエストと、モジュールが返す形のレスポンス例です。
GET /api/v1/acp/dual-control/scopes Authorization: Bearer av_workspace_•••• → 200 { scopes, seal, open }
一方の管理者が問題のあるエージェントの隔離を要求し、もう一方がダイジェストを読んで承認します。その後で初めて隔離ルートが実行されます。
テナントの委任を切ると、チーム外の人にも影響します。tenancy/revoke が通る前に、管理者2人の合意が必要です。
ヤードでは作業が動いています。管理者2人がこの撤去を承認するまで、撤去ルートは閉じたままです。
緊急時、管理者は理由を付けて封印を破れます。破った事実は最初に台帳へ書かれ、再武装には二人が必要です。
モジュールは、狭い範囲について強く保証します。保証されることだけを頼ってください。
stale_digest として拒否されます。dual-control.break-glass イベントが台帳に書き込まれます。coordination/quarantine、coordination/revoke、tenancy/revoke、yards/teardown、packs/revoke-verification、adapters-github/revoke、remediation/execute。
ワークスペースのAPIキーをBearerトークンとして認証します。ベースURLは https://api.intramedial.com です。
/api/v1/acp/dual-control/scopes固定のスコープ、封印の状態、未処理のリクエストを一覧します。/api/v1/acp/dual-control/requests二人制のリクエストとその承認を一覧します。sealintact、破られた場合は brokenBy、brokenAt、why、witnessedBy。openrequestrequest から:保存されたリクエストと、併せて返される digest。digestdecisionapprove と decide から:リクエストが有効な令状を持つに至ったかどうか。refusedWithoutdecide から:令状が発行されなかった理由。approve は requestId と digest を受け取ります。承認者は、過去12時間以内にMFAを済ませた、別のサインイン済み管理者でなければなりません。
decide は、十分な人数の別々の人が承認したかを確認して令状を返し、足りない場合は refusedWithout に不足を示します。
ゲート付きルートは、そのスコープとボディの令状がないリクエストに403で応答します。現在ゲート付きのルートは7つです。
{
"scopes": [
"quarantine",
"revoke-grant",
"revoke-tenant",
"revoke-verification",
"teardown-yard",
"kill-switch",
"reseal",
"restore-workspace"
],
"seal": {
"intact": true
},
"open": 0
}coordination.approve が扱います。coordination.halt の停止スイッチを使ってください。kill-switch にはありません。self_approval、same_principal、not_human、no_mfa、wrong_request、stale_digest、expired、insufficient、requester_not_human、not_administrator、requester_not_administrator。
種別が adjudicated の令状は、ラング3または4の仲裁事案に一致する救済と対象がある場合、二人目の代わりになります。
封印が破られている間は、破った本人だけが、拒否された後に限って進められます。再武装には、二人が承認した reseal スコープが必要です。
ttlMs で指定しない限り、リクエストの有効期間は15分です。glass は、モジュール内でもルートでも管理者専用です。/api/v1/acp/dual-control/request/api/v1/acp/dual-control/approveダイジェストに署名してリクエストを承認します。/api/v1/acp/dual-control/decideリクエストを確認し、令状を返します。/api/v1/acp/dual-control/glass理由を付けて封印を破ります。最初に台帳へ記録されます。/api/v1/acp/dual-control/seal封印を読み取るか、承認済みのresealで再武装します。/api/v1/acp/dual-control/gateルートがゲート付きか、そのゲートが何を判定するかを尋ねます。このモジュールにMCPアクションはありません。任意のエージェントやプログラムからRESTで呼び出してください。
coordination.quarantine32coordination.admit01Intralock admissionすべての操作を実行前に判定します。エージェントがインテントを宣言し、Intralock が承認するか、許可できない理由を示します。coordination.lease02Resource leases and queuesリソースを一度に1つのエージェントだけが保持するようにします。リースは自動で失効し、待たなければならないエージェントにはキューがあります。civics.claims20Resource claims officeリースを取得する前に、エージェントがこれから作業する内容を表明できるようにし、2つの主張が衝突したらケースを開きます。metering.snapshot21Metered usage by workspaceプレーンがワークスペースについて数えたものを、メーターごとに、また各カウントが対応する課金メーターとともに確認できます。