packs.listモジュール 25Signed pack registry
外部からエージェント、付与、ドリルのパックを取り込み、誰が署名したか、途中で1バイトでも変わったかを把握します。
packs.list はパックのレジストリです。組み込みのParleyとドリルのパックと、登録した yard/0 パックを一覧します。register は誰が署名したか、どの適合レベルに達するかを確認し、エージェントを登録して付与を書き込みます。拒否した場合は何も保存しません。
packs.listモジュール 25外部からエージェント、付与、ドリルのパックを取り込み、誰が署名したか、途中で1バイトでも変わったかを把握します。
packs.list はパックのレジストリです。組み込みのParleyとドリルのパックと、登録した yard/0 パックを一覧します。register は誰が署名したか、どの適合レベルに達するかを確認し、エージェントを登録して付与を書き込みます。拒否した場合は何も保存しません。
packsid、title、kind(parley、drill、yard)があります。provenanceverify は、パックの来歴、現在のポリシーで有効化されるか、適合性の実行結果、digest を返します。何も保存しません。
policy は requireVerified、、 を読み取りまたは設定します。新しいプレーンには作者の鍵がないため、既定では署名なしのパックを受け入れる従来の挙動のままです。
実行を押すと、左のリクエストが共有デモワークスペースに送信されます。
共有デモワークスペースでデモ用キーを使って実行します。中身は誰でも見られるため、非公開の情報は送らないでください。
APIが受け付ける形のリクエストと、モジュールが返す形のレスポンス例です。
GET /api/v1/acp/packs/list Authorization: Bearer av_workspace_•••• → 200 { packs }
gitや添付で届いたパックは権限を配ります。verify は誰が署名したかを示し、署名が成立しなければ register は拒否します。
requireVerifiedAuthor を設定し、鍵を信頼して、その鍵に対し verify-author を実行します。他の鍵のパックや鍵なしのパックは有効化されなくなります。
モジュールは、狭い範囲について強く保証します。保証されることだけを頼ってください。
tampered とされ、どのポリシー設定でも有効化できません。pack:<id>/<action>/<principal>/<resource> という名前なので、マンデートの改訂がそれを自分のものと取り違えることはありません。parley と drill のエントリは組み込みです。APIで登録されるのは yard パックだけで、yard/0 ドキュメントとして届きます。
パックから自身の sig ブロックとレジストリが追加した来歴を除いたものに対する、分離型のEd25519署名です。そのため保存されたパックも、署名時のバイト列のままダイジェストされます。
ワークスペースのAPIキーをBearerトークンとして認証します。ベースURLは https://api.intramedial.com です。
/api/v1/acp/packs/list組み込みおよび登録済みのパックを一覧します。/api/v1/acp/packs/getid でパック1件を読み取ります。verified、unsigned、untrusted-key、tampered、malformed のいずれかと、主張された作者および鍵ID。conformanceyard/0 スイートの実行結果:none、structural、governed、portable のいずれかの level と、その根拠となる checks。badgenull で、その場合は badgeReason が理由を示します。activatedenrolled エージェント、適用された applied 付与、裁定が保留した withheld 付与、キューに入った drills。canarycanary: true に、任意の cohortPercent、cohortAgents、cohortWorkspaces、gate、rolloutSteps を付けて送ると、トレインをステージします。minimumLevelrequireVerifiedAuthorrequireVerifiedAuthorminimumLevelregister は来歴を記録し、ポリシーを適用し、証明と適合性を確認し、鍵が紐付いていればバッジを発行してから有効化します。拒否されたパックは保存されません。
canary: true を送ると、すぐに有効化せず変更トレインをステージします。トレインが前進した後、sync が今公開されているエージェントに対して登録と付与を行います。
{
"packs": [
{
"id": "pack_frt",
"title": "First three FRT scenarios",
"kind": "drill"
},
{
"v": "yard/0",
"id": "yard_payments",
"title": "Payments review yard",
"kind": "yard",
"agents": [
{
"did": "did:web:acme.example:agent:reviewer",
"role": "reviewer"
}
],
"grants": [
{
"principal": "did:web:acme.example:agent:reviewer",
"action": "read",
"resource": "repo:payments"
}
]
}
]
}canary: true で登録します。トレインはパックのエージェントの一部を公開し、前進のたびに sync すると付与が広がり、revertされたトレインは付与を取り戻します。badge はスイートを実行して結果に署名します。badge-verify は誰のバッジでも現在の成果物と照合するため、古いバッジは失敗します。
mandates.compile でマンデートを書いてください。パックは、持ち運ぶバンドルのためのものです。change-trains.list を使ってください。トレインに自動で登録されるのはパックだけです。pack-revenue.balances にあります。badge-verify で確認してください。yard/0 ドキュメントで、インポートの契約は別です。trust は鍵を認め、keys.create が必要です。作者を検証することはできません。untrust には keys.revoke が必要で、すでに登録されたパックは持っていた来歴をそのまま保ちます。
register は、パックのビルド証明も持ち運ばれた detector-pack として確認します。プレーンが作ったと主張するパックは拒否されます。attestation.policy を参照してください。
register、policy の書き込み、badge には policies.approve が必要です。一覧、取得、verify、conformance は不要です。
PACK_BADGE_SIGNING_KEY が紐付いている場合だけです。なければ register は成功しますが、badge: null と badgeReason が返ります。stored で分かります。sync が動くのは canary: true で登録されたパックだけで、それ以外のパックは400を返します。minimumLevel に満たないパックは、失敗したチェックを挙げた403で拒否されます。/api/v1/acp/packs/registeryard/0 パックを確認し、バッジを付けて有効化するか、拒否します。/api/v1/acp/packs/verify登録した場合に何が起きるかを報告し、何も保存しません。/api/v1/acp/packs/conformanceパックまたは登録済みIDに対して yard/0 スイートを実行します。/api/v1/acp/packs/policy登録の基準を読み取りまたは設定します。/api/v1/acp/packs/syncカナリアパックの付与を、そのトレインが現在公開しているエージェントに適用します。coordination.packs.listエージェントからレジストリを一覧します。coordination.packs.getエージェントからパック1件を読み取ります。coordination.packs.registerエージェントから yard/0 パックを登録します。change-trains.list24