Watch
1
0
Fork
You've already forked RedFlag
0
RedFlag/protocol/testdata/mutation-golden.json
Fimeg 517f1aca20 feat: pin complete mutation authority contract
Cut 1 completes the dormant MutationEnvelope contract without changing any runtime path. Bind target_id to the provisioned agent identity, require canonical UUID v4 authorization IDs, cap authorization lifetime at the fleet TTL, and add an unsigned MutationReceipt carrying the audit join.

Server, Agent, and helper share the same canonical bytes, key identity, receipt digest, and Ed25519 golden vectors. Current APT/DNF and Windows execution remains untouched.
2026-08-26 18:39:29 -04:00

69 lines
5.5 KiB
JSON

{
"manifest": {
"protocol_version": 1,
"operation_id": "550e8400-e29b-41d4-a716-446655440010",
"target_id": "7c0f4e2a-9b31-4d55-8a6e-1f2c3d4e5f60",
"backend": "pacman",
"operation": "install",
"resolved_actions": [
{
"kind": "package",
"identity": "zsh@5.9-2",
"payload": "{\"artifact_sha256\":\"2222222222222222222222222222222222222222222222222222222222222222\",\"execution_location\":{\"kind\":\"cache\",\"value\":\"/var/cache/redflag/zsh.pkg.tar.zst\"},\"repository\":\"core\"}"
},
{
"kind": "package",
"identity": "acl@2.3.2-1",
"payload": "{\"artifact_sha256\":\"1111111111111111111111111111111111111111111111111111111111111111\",\"execution_location\":{\"kind\":\"cache\",\"value\":\"/var/cache/redflag/acl.pkg.tar.zst\"},\"repository\":\"core\"}"
}
],
"evidence": [
{
"kind": "repository-metadata",
"digest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
},
{
"kind": "producer",
"digest": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
]
},
"authorization": {
"protocol_version": 1,
"authorization_id": "550e8400-e29b-41d4-a716-446655440011",
"manifest_hash": "",
"authority_kind": "fleet-server",
"authority_id": "redflag-prod",
"target_id": "7c0f4e2a-9b31-4d55-8a6e-1f2c3d4e5f60",
"issued_at": 1700000000,
"not_before": 1700000001,
"expires_at": 1700000600,
"decision": "allow",
"key_id": "",
"signature": ""
},
"receipt": {
"protocol_version": 1,
"operation_id": "550e8400-e29b-41d4-a716-446655440010",
"manifest_hash": "67138d0644874a3feb53f9b7777df1af01d8e8ed43678755aaef9b447b38bbf0",
"authorization_id": "550e8400-e29b-41d4-a716-446655440011",
"target_id": "7c0f4e2a-9b31-4d55-8a6e-1f2c3d4e5f60",
"backend": "pacman",
"operation": "install",
"decision": "denied",
"reason": "backend_not_migrated",
"executed": false,
"verified_actions": 0,
"exit_code": 18,
"error": "backend=pacman",
"timestamp": 1700000100
},
"test_seed": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f",
"expected_manifest_canonical_hex": "32353a726564666c61672e6d75746174696f6e2d6d616e6966657374313a3133363a35353065383430302d653239622d343164342d613731362d34343636353534343030313033363a37633066346532612d396233312d346435352d386136652d316632633364346535663630363a7061636d616e373a696e7374616c6c313a323234323a32333a726564666c61672e7265736f6c7665642d616374696f6e373a7061636b61676531313a61636c40322e332e322d313138393a7b2261727469666163745f736861323536223a2231313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131222c22657865637574696f6e5f6c6f636174696f6e223a7b226b696e64223a226361636865222c2276616c7565223a222f7661722f63616368652f726564666c61672f61636c2e706b672e7461722e7a7374227d2c227265706f7369746f7279223a22636f7265227d3233393a32333a726564666c61672e7265736f6c7665642d616374696f6e373a7061636b616765393a7a736840352e392d323138393a7b2261727469666163745f736861323536223a2232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232222c22657865637574696f6e5f6c6f636174696f6e223a7b226b696e64223a226361636865222c2276616c7565223a222f7661722f63616368652f726564666c61672f7a73682e706b672e7461722e7a7374227d2c227265706f7369746f7279223a22636f7265227d313a323130383a31363a726564666c61672e65766964656e636531393a7265706f7369746f72792d6d6574616461746136343a6262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626239363a31363a726564666c61672e65766964656e6365383a70726f647563657236343a61616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161",
"expected_manifest_hash": "67138d0644874a3feb53f9b7777df1af01d8e8ed43678755aaef9b447b38bbf0",
"expected_authorization_canonical_hex": "33303a726564666c61672e6d75746174696f6e2d617574686f72697a6174696f6e313a3133363a35353065383430302d653239622d343164342d613731362d34343636353534343030313136343a3637313338643036343438373461336665623533663962373737376466316166303164386538656434333637383735356161656639623434376233386262663031323a666c6565742d73657276657231323a726564666c61672d70726f6433363a37633066346532612d396233312d346435352d386136652d31663263336434653566363031303a3137303030303030303031303a3137303030303030303131303a31373030303030363030353a616c6c6f7733323a3536343735616137353436333437346330323835646635646266326263616237",
"expected_key_id": "56475aa75463474c0285df5dbf2bcab7",
"expected_signature": "0e00c4b6e552af2e99794a5ad86827e25d2a9046822e0f287e4f231e907b6d914b6e7b09d12523378458a22388f4206d313b140d6aebdfbd26dd3db5a620c600",
"expected_receipt_canonical_hex": "32343a726564666c61672e6d75746174696f6e2d72656365697074313a3133363a35353065383430302d653239622d343164342d613731362d34343636353534343030313036343a3637313338643036343438373461336665623533663962373737376466316166303164386538656434333637383735356161656639623434376233386262663033363a35353065383430302d653239622d343164342d613731362d34343636353534343030313133363a37633066346532612d396233312d346435352d386136652d316632633364346535663630363a7061636d616e373a696e7374616c6c363a64656e69656432303a6261636b656e645f6e6f745f6d69677261746564353a66616c7365313a30323a313831343a6261636b656e643d7061636d616e31303a31373030303030313030",
"expected_receipt_digest": "ae3278be71bb142b5cb0dde16b6b84516cec514ebc247a012312ffd18dccade0"
}