feat(security): record verified PostgreSQL custody and rollout readiness
This commit is contained in:
parent
d834d0c4b7
commit
49cfbfed01
60 changed files with 6964 additions and 1 deletions
|
|
@ -0,0 +1,85 @@
|
|||
# Exact cluster historical receiving successor
|
||||
|
||||
Status: source candidate for independent review; not approval or deployment.
|
||||
Stable proposal ID: `STATE-WP-0095-T06-cluster-frozen-receiving-r1`.
|
||||
|
||||
The cluster publisher stopped before mutation because its strict scan found
|
||||
15 bare task labels and five label collisions in three archived workplans.
|
||||
Those files already bind three historical parent UUIDs and 15 distinct task
|
||||
UUIDs. The current receiving path otherwise derives new qualified UUIDs.
|
||||
The successor reuses the exact full-SHA historical receiving path and permits
|
||||
registrar preservation only for exact hash-bound closed task occurrences.
|
||||
Strict scan findings remain visible. Existing history is neither renamed nor
|
||||
rewritten; no aliases, migration or broad grandfather rule is introduced.
|
||||
|
||||
`exact-frozen-source-manifest.json` binds all three source files and 15 existing
|
||||
task bindings. `existing-row-metadata-readback.json` records 18 read-only HTTP200
|
||||
returns: existing parent ownership and terminal status match. It does not prove
|
||||
future delivered behavior. The receiving and registrar BINDINGS must be equal.
|
||||
`source-patch-manifest.json` binds exact base commits, inputs and output files.
|
||||
|
||||
## Exact target and staged order
|
||||
|
||||
1. Review and integrate the State Hub source patch under STATE-WP-0095-T05.
|
||||
Prepared base is 4ab66e363ed00a67ad1ea0434854bc4284c7a26e. Prior owner-local
|
||||
brief/index/evidence changes are excluded. Run receiver tests and normal CI;
|
||||
record the final commit, CI-produced immutable `main-<short-sha>` image and
|
||||
registry digest in the final proposal. The future commit/image cannot yet be
|
||||
named: this proposal is not execution-ready until those pins exist. Deploy
|
||||
only this reviewed source closure; any unrelated difference from deployed
|
||||
main-7d99282 requires review in the final rollout scope.
|
||||
2. Before asking for rollout approval, capture fresh CPU/headroom using
|
||||
`make railiance-state-hub-headroom`, normal server dry-run/diff and exact
|
||||
release/image rollback metadata. Target is release `state-hub`, namespace
|
||||
`state-hub`, railiance01 (observed node IP 92.205.62.239), both API and MCP.
|
||||
Read-only observation currently finds both ready on image main-7d99282,
|
||||
Helm release 75. Projected revision 75 Helm values independently confirm the
|
||||
image pin; chart appVersion is stale and must not supply rollback identity.
|
||||
No new database migration is introduced by this patch; the normal existing
|
||||
hook still runs and must be reviewed with the final image closure.
|
||||
3. Exact ordinary owner deployment, after scoped approval, is the PROMOTE.md
|
||||
Helm upgrade with the pinned CI tag, `--reuse-values --atomic --timeout3m`.
|
||||
No live code-copy, ad-hoc API repair or guard bypass is an alternative.
|
||||
4. Verify delivered historical module hash and candidate manifest, API health,
|
||||
schema unchanged and both API/MCP ready. Using the existing reviewed owner
|
||||
verification path, prove the three parents / 15 tasks and full row snapshots
|
||||
unchanged, plus foreign-holder/nonterminal/missing-row refusal in rolled-back
|
||||
transactions. No committed probe writes. Preserve refusal receipts.
|
||||
5. Only after that return, review/integrate the registrar successor under
|
||||
RMGR-WP-0019-T05 (base b02e1cefb0e07fe246dc9fe9c5a989fe06116587).
|
||||
Re-run read-only actual cluster allocator: expected seven assignments in
|
||||
exactly two files, all three archives byte-identical, all strict findings
|
||||
retained. No earlier guard may be disabled while receiving is old.
|
||||
6. Normal cluster owner consistency/publication can then manage RCLUSTER-WP-0018
|
||||
parent/five task UUIDs and the single pre-existing ADHOC task UUID. The latter
|
||||
exact path/ID/derived UUID and expected one-field diff are recorded in
|
||||
`managed-adhoc-backfill.json` and `.preview.patch`; do not manually apply it.
|
||||
Root publisher's reviewed expected file set must include that ordinary
|
||||
backfill and generated indexes, in addition to its four reviewed TLS source
|
||||
additions. No archived source belongs in that mutation set. Return actual
|
||||
normal receiving/publication receipts and compare all historical full rows.
|
||||
|
||||
## Verification and rollback limits
|
||||
|
||||
Before registrar admission, a failed receiving rollout follows normal Helm
|
||||
atomic rollback; observed baseline is revision 75/image main-7d99282, requiring
|
||||
freshness recheck. If registrar was admitted later, first fence cluster sync
|
||||
and restore its refusal gate before rolling receiving back. Preserve all source
|
||||
UUIDs/IDs, existing rows and failures. Never roll back through history rewrite,
|
||||
DB reset, direct UUID patch or retirement. Check API/MCP health, schema and exact
|
||||
historical row snapshots after rollback. Rollback does not create recovery assent.
|
||||
|
||||
No existing founder approval for older STATE95 trials covers this successor.
|
||||
Monetary cost, EUR risk exposure, final diff and outage window remain unknown
|
||||
until the exact CI image and fresh headroom/dry-run are reviewed. Source tests
|
||||
are local and read-only metadata checks made no production changes. This packet
|
||||
makes no zero-cost, deployment or autonomy claim. No new credential is requested.
|
||||
|
||||
## Cross-owner case and unfinished security work
|
||||
|
||||
`coordination-cases.json` attaches the registrar wait to existing project driver
|
||||
SHR-WP-0001; no new driver, worker wake or external message is created. Human
|
||||
rollout review remains a human gate. The cluster TLS workplan remains blocked
|
||||
from publication until this lawful receiving path exists. Independent original
|
||||
TLS recovery and current consumer registration/private-admission acceptance
|
||||
remain outstanding under NK-WP-0049-T35/T36/T33; none follows from source sync.
|
||||
|
|
@ -0,0 +1,129 @@
|
|||
{
|
||||
"status": "source_manifest_only_not_receiving_or_registrar_admission",
|
||||
"bindings": [
|
||||
{
|
||||
"repo": "railiance-cluster",
|
||||
"path": "workplans/archived/260622-RAIL-BS-WP-0002-k3s-baseline.md",
|
||||
"sha256": "8d6f8533c119117686bc0d5bb9ed5349726aa6c3189ff98b53409c68ac685ca9",
|
||||
"record_id": "RAIL-BS-WP-0002",
|
||||
"uuid": "4c63dfc6-9eac-4e79-9f77-8f644ad7147d",
|
||||
"parent_record_id": "RAIL-BS-WP-0002",
|
||||
"source_status": "finished",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "T01",
|
||||
"uuid": "3f042630-eab0-4c6a-9167-e2b28ff20e40",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0002-k3s-baseline.md#task-block-1"
|
||||
},
|
||||
{
|
||||
"label": "T02",
|
||||
"uuid": "e8510646-46ed-4697-a345-f3d3009eea78",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0002-k3s-baseline.md#task-block-2"
|
||||
},
|
||||
{
|
||||
"label": "T03",
|
||||
"uuid": "dab2c07f-8aa0-4635-8df6-857e87e93fc5",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0002-k3s-baseline.md#task-block-3"
|
||||
},
|
||||
{
|
||||
"label": "T04",
|
||||
"uuid": "5c3d40e4-239b-488e-9519-6f7a38d2325f",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0002-k3s-baseline.md#task-block-4"
|
||||
},
|
||||
{
|
||||
"label": "T05",
|
||||
"uuid": "7f9e0e58-a130-467a-a2d0-b3f2564e496f",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0002-k3s-baseline.md#task-block-5"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"repo": "railiance-cluster",
|
||||
"path": "workplans/archived/260622-RAIL-BS-WP-0003-pgpool-ha-failover-fix.md",
|
||||
"sha256": "4dc2f61e15adc3c5c81f9ecf8b933512275b95e8f829fac52ae7cde1385cea4a",
|
||||
"record_id": "RAIL-BS-WP-0003",
|
||||
"uuid": "7ee9ee22-1fae-4567-9194-8d70a9e0f45b",
|
||||
"parent_record_id": "RAIL-BS-WP-0003",
|
||||
"source_status": "finished",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "T01",
|
||||
"uuid": "6841c93a-f146-47eb-9f7c-8fa0e02c1bbc",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0003-pgpool-ha-failover-fix.md#task-block-1"
|
||||
},
|
||||
{
|
||||
"label": "T02",
|
||||
"uuid": "ab166073-30a7-4702-a037-4091e8706e20",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0003-pgpool-ha-failover-fix.md#task-block-2"
|
||||
},
|
||||
{
|
||||
"label": "T03",
|
||||
"uuid": "140da396-8e30-4f4d-b88c-c42c0cd46c01",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0003-pgpool-ha-failover-fix.md#task-block-3"
|
||||
},
|
||||
{
|
||||
"label": "T04",
|
||||
"uuid": "d8a3ba40-fda0-4c1f-a9f1-ffcd621a5b3d",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0003-pgpool-ha-failover-fix.md#task-block-4"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"repo": "railiance-cluster",
|
||||
"path": "workplans/archived/260622-RAIL-BS-WP-0004-safety-net.md",
|
||||
"sha256": "04f787078232395bd2d43861de16c521848559fa286f06e1caa9cb779aa71ac3",
|
||||
"record_id": "RAIL-BS-WP-0004",
|
||||
"uuid": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625",
|
||||
"parent_record_id": "RAIL-BS-WP-0004",
|
||||
"source_status": "finished",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "T01",
|
||||
"uuid": "4526a842-ea31-4874-9231-92ab556cfe7b",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0004-safety-net.md#task-block-1"
|
||||
},
|
||||
{
|
||||
"label": "T02",
|
||||
"uuid": "a6313e06-1976-46a7-8e31-df4eb2eca880",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0004-safety-net.md#task-block-2"
|
||||
},
|
||||
{
|
||||
"label": "T03",
|
||||
"uuid": "05d42a55-921f-4aa7-bb76-e8af9c7e0ac3",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0004-safety-net.md#task-block-3"
|
||||
},
|
||||
{
|
||||
"label": "T04",
|
||||
"uuid": "08233868-d522-4117-bc4e-6c0f52545665",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0004-safety-net.md#task-block-4"
|
||||
},
|
||||
{
|
||||
"label": "T05",
|
||||
"uuid": "2d5acff7-4a4e-4ddd-ad06-08237ad3dac8",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0004-safety-net.md#task-block-5"
|
||||
},
|
||||
{
|
||||
"label": "T06",
|
||||
"uuid": "f8e4a094-c367-40eb-b895-da17bc144b07",
|
||||
"status": "done",
|
||||
"source": "workplans/archived/260622-RAIL-BS-WP-0004-safety-net.md#task-block-6"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"all_historical_bytes_ids_uuids_preserved": true
|
||||
}
|
||||
|
|
@ -0,0 +1,181 @@
|
|||
{
|
||||
"status": "read_only_metadata",
|
||||
"base": "http://127.0.0.1:8000",
|
||||
"rows": [
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "3f042630-eab0-4c6a-9167-e2b28ff20e40",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0002-T01",
|
||||
"actual_uuid": "3f042630-eab0-4c6a-9167-e2b28ff20e40",
|
||||
"actual_parent": "4c63dfc6-9eac-4e79-9f77-8f644ad7147d",
|
||||
"expected_parent": "4c63dfc6-9eac-4e79-9f77-8f644ad7147d"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "e8510646-46ed-4697-a345-f3d3009eea78",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0002-T02",
|
||||
"actual_uuid": "e8510646-46ed-4697-a345-f3d3009eea78",
|
||||
"actual_parent": "4c63dfc6-9eac-4e79-9f77-8f644ad7147d",
|
||||
"expected_parent": "4c63dfc6-9eac-4e79-9f77-8f644ad7147d"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "dab2c07f-8aa0-4635-8df6-857e87e93fc5",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0002-T03",
|
||||
"actual_uuid": "dab2c07f-8aa0-4635-8df6-857e87e93fc5",
|
||||
"actual_parent": "4c63dfc6-9eac-4e79-9f77-8f644ad7147d",
|
||||
"expected_parent": "4c63dfc6-9eac-4e79-9f77-8f644ad7147d"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "5c3d40e4-239b-488e-9519-6f7a38d2325f",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0002-T04",
|
||||
"actual_uuid": "5c3d40e4-239b-488e-9519-6f7a38d2325f",
|
||||
"actual_parent": "4c63dfc6-9eac-4e79-9f77-8f644ad7147d",
|
||||
"expected_parent": "4c63dfc6-9eac-4e79-9f77-8f644ad7147d"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "7f9e0e58-a130-467a-a2d0-b3f2564e496f",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0002-T05",
|
||||
"actual_uuid": "7f9e0e58-a130-467a-a2d0-b3f2564e496f",
|
||||
"actual_parent": "4c63dfc6-9eac-4e79-9f77-8f644ad7147d",
|
||||
"expected_parent": "4c63dfc6-9eac-4e79-9f77-8f644ad7147d"
|
||||
},
|
||||
{
|
||||
"kind": "workplan",
|
||||
"uuid": "4c63dfc6-9eac-4e79-9f77-8f644ad7147d",
|
||||
"http_status": 200,
|
||||
"status": "finished",
|
||||
"record_id": null,
|
||||
"actual_uuid": "4c63dfc6-9eac-4e79-9f77-8f644ad7147d"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "6841c93a-f146-47eb-9f7c-8fa0e02c1bbc",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0003-T01",
|
||||
"actual_uuid": "6841c93a-f146-47eb-9f7c-8fa0e02c1bbc",
|
||||
"actual_parent": "7ee9ee22-1fae-4567-9194-8d70a9e0f45b",
|
||||
"expected_parent": "7ee9ee22-1fae-4567-9194-8d70a9e0f45b"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "ab166073-30a7-4702-a037-4091e8706e20",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0003-T02",
|
||||
"actual_uuid": "ab166073-30a7-4702-a037-4091e8706e20",
|
||||
"actual_parent": "7ee9ee22-1fae-4567-9194-8d70a9e0f45b",
|
||||
"expected_parent": "7ee9ee22-1fae-4567-9194-8d70a9e0f45b"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "140da396-8e30-4f4d-b88c-c42c0cd46c01",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0003-T03",
|
||||
"actual_uuid": "140da396-8e30-4f4d-b88c-c42c0cd46c01",
|
||||
"actual_parent": "7ee9ee22-1fae-4567-9194-8d70a9e0f45b",
|
||||
"expected_parent": "7ee9ee22-1fae-4567-9194-8d70a9e0f45b"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "d8a3ba40-fda0-4c1f-a9f1-ffcd621a5b3d",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0003-T04",
|
||||
"actual_uuid": "d8a3ba40-fda0-4c1f-a9f1-ffcd621a5b3d",
|
||||
"actual_parent": "7ee9ee22-1fae-4567-9194-8d70a9e0f45b",
|
||||
"expected_parent": "7ee9ee22-1fae-4567-9194-8d70a9e0f45b"
|
||||
},
|
||||
{
|
||||
"kind": "workplan",
|
||||
"uuid": "7ee9ee22-1fae-4567-9194-8d70a9e0f45b",
|
||||
"http_status": 200,
|
||||
"status": "finished",
|
||||
"record_id": null,
|
||||
"actual_uuid": "7ee9ee22-1fae-4567-9194-8d70a9e0f45b"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "4526a842-ea31-4874-9231-92ab556cfe7b",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0004-T01",
|
||||
"actual_uuid": "4526a842-ea31-4874-9231-92ab556cfe7b",
|
||||
"actual_parent": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625",
|
||||
"expected_parent": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "a6313e06-1976-46a7-8e31-df4eb2eca880",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0004-T02",
|
||||
"actual_uuid": "a6313e06-1976-46a7-8e31-df4eb2eca880",
|
||||
"actual_parent": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625",
|
||||
"expected_parent": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "05d42a55-921f-4aa7-bb76-e8af9c7e0ac3",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0004-T03",
|
||||
"actual_uuid": "05d42a55-921f-4aa7-bb76-e8af9c7e0ac3",
|
||||
"actual_parent": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625",
|
||||
"expected_parent": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "08233868-d522-4117-bc4e-6c0f52545665",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0004-T04",
|
||||
"actual_uuid": "08233868-d522-4117-bc4e-6c0f52545665",
|
||||
"actual_parent": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625",
|
||||
"expected_parent": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "2d5acff7-4a4e-4ddd-ad06-08237ad3dac8",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0004-T05",
|
||||
"actual_uuid": "2d5acff7-4a4e-4ddd-ad06-08237ad3dac8",
|
||||
"actual_parent": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625",
|
||||
"expected_parent": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"uuid": "f8e4a094-c367-40eb-b895-da17bc144b07",
|
||||
"http_status": 200,
|
||||
"status": "done",
|
||||
"record_id": "RAIL-BS-WP-0004-T06",
|
||||
"actual_uuid": "f8e4a094-c367-40eb-b895-da17bc144b07",
|
||||
"actual_parent": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625",
|
||||
"expected_parent": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625"
|
||||
},
|
||||
{
|
||||
"kind": "workplan",
|
||||
"uuid": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625",
|
||||
"http_status": 200,
|
||||
"status": "finished",
|
||||
"record_id": null,
|
||||
"actual_uuid": "7e8b0c20-51eb-40c9-9e3b-85dd380d7625"
|
||||
}
|
||||
],
|
||||
"writes_performed": false
|
||||
}
|
||||
|
|
@ -0,0 +1,126 @@
|
|||
# Exact cluster historical receiving successor
|
||||
|
||||
Status: revised source candidate for independent review; not approval or deployment.
|
||||
Revision: 2 (r2). Original r1 retained. Corrects registrar base and full-image migration/rollback scope.
|
||||
Stable proposal ID: `STATE-WP-0095-T06-cluster-frozen-receiving-r1`.
|
||||
|
||||
The cluster publisher stopped before mutation because its strict scan found
|
||||
15 bare task labels and five label collisions in three archived workplans.
|
||||
Those files already bind three historical parent UUIDs and 15 distinct task
|
||||
UUIDs. The current receiving path otherwise derives new qualified UUIDs.
|
||||
The successor reuses the exact full-SHA historical receiving path and permits
|
||||
registrar preservation only for exact hash-bound closed task occurrences.
|
||||
Strict scan findings remain visible. Existing history is neither renamed nor
|
||||
rewritten; no aliases, migration or broad grandfather rule is introduced.
|
||||
|
||||
`exact-frozen-source-manifest.json` binds all three source files and 15 existing
|
||||
task bindings. `existing-row-metadata-readback.json` records 18 read-only HTTP200
|
||||
returns: existing parent ownership and terminal status match. It does not prove
|
||||
future delivered behavior. The receiving and registrar BINDINGS must be equal.
|
||||
`source-patch-manifest.json` binds exact base commits, inputs and output files.
|
||||
|
||||
## Exact target and staged order
|
||||
|
||||
1. Review and integrate the State Hub source patch under STATE-WP-0095-T05.
|
||||
Prepared base is 4ab66e363ed00a67ad1ea0434854bc4284c7a26e. Prior owner-local
|
||||
brief/index/evidence changes are excluded. Run receiver tests and normal CI;
|
||||
record the final commit, CI-produced immutable `main-<short-sha>` image and
|
||||
registry digest in the final proposal. The future commit/image cannot yet be
|
||||
named: this proposal is not execution-ready until those pins exist. Deploy
|
||||
only this reviewed source closure; any unrelated difference from deployed
|
||||
main-7d99282 requires review in the final rollout scope.
|
||||
2. Before asking for rollout approval, capture fresh CPU/headroom using
|
||||
`make railiance-state-hub-headroom`, normal server dry-run/diff and exact
|
||||
release/image rollback metadata. Target is release `state-hub`, namespace
|
||||
`state-hub`, railiance01 (observed node IP 92.205.62.239), both API and MCP.
|
||||
Read-only observation currently finds both ready on image main-7d99282,
|
||||
Helm release 75. Projected revision 75 Helm values independently confirm the
|
||||
image pin; chart appVersion is stale and must not supply rollback identity.
|
||||
The receiver patch itself adds no migration, but the full current image
|
||||
includes inbox-feed migration c4d5e6f7a8b9 (previous head b3c4d5e6f7a8).
|
||||
Its normal pre-upgrade hook backfills two tables, adds indexes/NOT NULL
|
||||
constraints, a tombstone table and write/delete triggers. This is a database
|
||||
change and must be explicitly covered by rollout review and measured on a
|
||||
disposable migrated schema before approval; no unchanged-schema claim applies.
|
||||
3. Exact ordinary owner deployment, after scoped approval, is the PROMOTE.md
|
||||
Helm upgrade with the pinned CI tag, `--reuse-values --atomic --timeout3m`.
|
||||
No live code-copy, ad-hoc API repair or guard bypass is an alternative.
|
||||
4. Verify delivered historical module hash and candidate manifest, API health,
|
||||
expected schema c4d5e6f7a8b9 and both API/MCP ready. Using the existing reviewed owner
|
||||
verification path, prove the three parents / 15 tasks and full row snapshots
|
||||
unchanged, plus foreign-holder/nonterminal/missing-row refusal in rolled-back
|
||||
transactions. No committed probe writes. Preserve refusal receipts.
|
||||
5. Only after that return, review/integrate the registrar successor under
|
||||
RMGR-WP-0019-T05 (base 9ebde0a9bd60d5c82910494fbe6bd1b891455cee).
|
||||
Re-run read-only actual cluster allocator: expected seven assignments in
|
||||
exactly two files, all three archives byte-identical, all strict findings
|
||||
retained. No earlier guard may be disabled while receiving is old.
|
||||
6. Normal cluster owner consistency/publication can then manage RCLUSTER-WP-0018
|
||||
parent/five task UUIDs and the single pre-existing ADHOC task UUID. The latter
|
||||
exact path/ID/derived UUID and expected one-field diff are recorded in
|
||||
`managed-adhoc-backfill.json` and `.preview.patch`; do not manually apply it.
|
||||
Root publisher's reviewed expected file set must include that ordinary
|
||||
backfill and generated indexes, in addition to its four reviewed TLS source
|
||||
additions. No archived source belongs in that mutation set. Return actual
|
||||
normal receiving/publication receipts and compare all historical full rows.
|
||||
|
||||
## Verification and rollback limits
|
||||
|
||||
Before registrar admission, a failed receiving rollout follows normal Helm
|
||||
atomic rollback; observed baseline is revision 75/image main-7d99282, requiring
|
||||
freshness recheck. If registrar was admitted later, first fence cluster sync
|
||||
and restore its refusal gate before rolling receiving back. Preserve all source
|
||||
UUIDs/IDs, existing rows and failures. Never roll back through history rewrite,
|
||||
DB reset, direct UUID patch or retirement. A Helm rollback does not reverse the migration. Do not automatically run
|
||||
Alembic downgrade: that would discard feed revision/tombstone data. Verify the
|
||||
old application against the additive migrated schema in a disposable fixture
|
||||
before accepting image-only rollback; check trigger behavior for old message
|
||||
writers and feed consumers. Check API/MCP health, retained schema and exact
|
||||
historical row snapshots after rollback. Rollback does not create recovery assent.
|
||||
|
||||
No existing founder approval for older STATE95 trials covers this successor.
|
||||
Monetary cost, EUR risk exposure, final diff and outage window remain unknown
|
||||
until the exact CI image and fresh headroom/dry-run are reviewed. Source tests
|
||||
are local and read-only metadata checks made no production changes. This packet
|
||||
makes no zero-cost, deployment or autonomy claim. No new credential is requested.
|
||||
|
||||
## Cross-owner case and unfinished security work
|
||||
|
||||
`coordination-cases.json` attaches the registrar wait to existing project driver
|
||||
SHR-WP-0001; no new driver, worker wake or external message is created. Human
|
||||
rollout review remains a human gate. The cluster TLS workplan remains blocked
|
||||
from publication until this lawful receiving path exists. Independent original
|
||||
TLS recovery and current consumer registration/private-admission acceptance
|
||||
remain outstanding under NK-WP-0049-T35/T36/T33; none follows from source sync.
|
||||
|
||||
## Full image closure and publication preparation, r2
|
||||
|
||||
The deployed-to-current source closure is hashed in
|
||||
`deployed-to-current-source-closure.json`: 51 changed paths, including 13
|
||||
runtime/build paths. Besides exact receiver preservation, current main adds the
|
||||
inbox feed API, database-managed transaction revisions/tombstones, idempotent
|
||||
archive timestamps, projection-retired read metadata, C43 advisory consistency
|
||||
findings, template instructions and bounded repo-push deadlines. Existing
|
||||
message-feed tests exercise migration up/down and DDL parity; root's full tests
|
||||
must confirm their actual database execution rather than a skipped suite.
|
||||
|
||||
The existing CI image workflow vendors hub-core from moving main and installs
|
||||
unlocked dependencies atop a moving Python base. An immutable primary Git SHA
|
||||
therefore does not fully identify the image source/dependency closure. Before
|
||||
rollout approval require the actual successful build task and exact registry
|
||||
manifest/config digest, then inspect the produced local image read-only for
|
||||
receiver module SHA, Alembic head, hub-core source/package SHA and installed
|
||||
package inventory. If exact dependency provenance is unavailable, retain that
|
||||
unknown as a rollout risk; do not claim hermetic or exact deployed closure. No
|
||||
new build process or private registry credential is introduced by this packet.
|
||||
|
||||
`publish_receiver_source.py` defaults to read-only validation. After root
|
||||
review/integration, its explicit source-only execution performs normal scanner,
|
||||
exact-path commit and optional push while preserving staged brief/index and
|
||||
working evidence. It does not deploy, sync work records, touch Repo Manager or
|
||||
request credentials. Commit failure retains source/normal hook refusal. Push
|
||||
failure is unverified and must be resolved by remote-ref observation, never an
|
||||
automatic retry. `lookup_ci_metadata.py` uses existing public task endpoint and
|
||||
unauthenticated registry HEAD, emits only fixed metadata, and refuses absent or
|
||||
unverified artifacts. A login requirement remains unknown and triggers normal
|
||||
routing, not token retrieval. See `bounded-preflight-commands.md`.
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"schema": "receiver-canonical-source-readback.v1",
|
||||
"source_revision": "51bc70d1ff8f25450a8650d8e50caf053093a02e",
|
||||
"parent_revision": "4ab66e363ed00a67ad1ea0434854bc4284c7a26e",
|
||||
"exact_reviewed_paths": true,
|
||||
"files": [
|
||||
{
|
||||
"path": "api/services/historical_projection.py",
|
||||
"expected_sha256": "e3c4bf965764b32a6df5d61c71272ee22569df9a9ddae2a3fc3df97ec554e0b2",
|
||||
"committed_matches": true,
|
||||
"working_matches": true
|
||||
},
|
||||
{
|
||||
"path": "tests/test_cluster_historical_projection.py",
|
||||
"expected_sha256": "183f0574aa01f69269a06d162b29b5b95c3415f6fce0560bb92188c09be26507",
|
||||
"committed_matches": true,
|
||||
"working_matches": true
|
||||
},
|
||||
{
|
||||
"path": "workplans/STATE-WP-0095-historical-source-receiving.md",
|
||||
"expected_sha256": "aeb307597dba0d92594d55242bd69ed6a391e7fdd58bb16c839ec8cbce44b349",
|
||||
"committed_matches": true,
|
||||
"working_matches": true
|
||||
},
|
||||
{
|
||||
"path": "tests/fixtures/railiance-cluster/workplans/archived/260622-RAIL-BS-WP-0002-k3s-baseline.md",
|
||||
"expected_sha256": "8d6f8533c119117686bc0d5bb9ed5349726aa6c3189ff98b53409c68ac685ca9",
|
||||
"committed_matches": true,
|
||||
"working_matches": true
|
||||
},
|
||||
{
|
||||
"path": "tests/fixtures/railiance-cluster/workplans/archived/260622-RAIL-BS-WP-0003-pgpool-ha-failover-fix.md",
|
||||
"expected_sha256": "4dc2f61e15adc3c5c81f9ecf8b933512275b95e8f829fac52ae7cde1385cea4a",
|
||||
"committed_matches": true,
|
||||
"working_matches": true
|
||||
},
|
||||
{
|
||||
"path": "tests/fixtures/railiance-cluster/workplans/archived/260622-RAIL-BS-WP-0004-safety-net.md",
|
||||
"expected_sha256": "04f787078232395bd2d43861de16c521848559fa286f06e1caa9cb779aa71ac3",
|
||||
"committed_matches": true,
|
||||
"working_matches": true
|
||||
}
|
||||
],
|
||||
"remote_lookup_exit": 0,
|
||||
"remote_revision": "51bc70d1ff8f25450a8650d8e50caf053093a02e",
|
||||
"remote_matches": true,
|
||||
"no_deployment_claim": true
|
||||
}
|
||||
|
|
@ -0,0 +1,275 @@
|
|||
{
|
||||
"schema": "statehub-deployed-source-closure.v1",
|
||||
"deployed_source_revision": "7d992821fb890207c738162d67ee3e4ba566a950",
|
||||
"candidate_base_revision": "4ab66e363ed00a67ad1ea0434854bc4284c7a26e",
|
||||
"changed_files": [
|
||||
{
|
||||
"path": ".claude/rules/session-protocol.md",
|
||||
"sha256": "9fd893a4192367f9465fa9814eb01a9882b26cabb2536e0a2eb99da4f1456019",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": ".custodian-brief.md",
|
||||
"sha256": "36b5c3446e5be2190bc23d7b9ddebf9f781a6ced4c4ef1137ddb259f29d88ca6",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "AGENTS.md",
|
||||
"sha256": "20abf88ae838ec73fdfbf6131f51e1d81988a9c0b77608f61bdb2e242a01d908",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "WORK-RECORDS.md",
|
||||
"sha256": "eb2a785fc8486a1e8929c122c7c1619e068737e6826d342ee26bfc49b7182d36",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "api/main.py",
|
||||
"sha256": "c24b0e0915ad0af4c608b2daae6b4f91691dba14ffea561c7a182e9e1383effa",
|
||||
"included_in_runtime_build": true
|
||||
},
|
||||
{
|
||||
"path": "api/models/__init__.py",
|
||||
"sha256": "cafc5c36350c36dad96b44b5524d36498cdb732372ac87a2c72f929868412d1e",
|
||||
"included_in_runtime_build": true
|
||||
},
|
||||
{
|
||||
"path": "api/models/agent_message.py",
|
||||
"sha256": "97c3bf5f66304d0ddefbb5f0fa7889e087b17b9c9064676f3a8221c8865914a0",
|
||||
"included_in_runtime_build": true
|
||||
},
|
||||
{
|
||||
"path": "api/routers/message_feed.py",
|
||||
"sha256": "8e71d80397cd8cfa446682a14e6f4b1aabc3db17c748a279f95da61acf9b9aa9",
|
||||
"included_in_runtime_build": true
|
||||
},
|
||||
{
|
||||
"path": "api/routers/messages.py",
|
||||
"sha256": "1d1c57f1e1ada29237f41445d4a622975b951b80c06b314826922c93530c8124",
|
||||
"included_in_runtime_build": true
|
||||
},
|
||||
{
|
||||
"path": "api/schemas/inbox_feed.py",
|
||||
"sha256": "f9778d7860703850e22f73ba270c1b30d42e7f09453336b2a7dd9730e730fabf",
|
||||
"included_in_runtime_build": true
|
||||
},
|
||||
{
|
||||
"path": "api/schemas/workplan.py",
|
||||
"sha256": "12aca42108d32346fa0f41b966705e52865355503ce2e2da006e7a8643481e08",
|
||||
"included_in_runtime_build": true
|
||||
},
|
||||
{
|
||||
"path": "docs/a5-topic-spine-comparison-packet.md",
|
||||
"sha256": "1f4d786cce5c9ac987fd69a5718edcb4a7c19aeaca56cdbc4b4f58ee8541d8f5",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/decision-contest-convention.md",
|
||||
"sha256": "880ad58afd330d2ad4f89dfc62c7a6f72d66ae9c87ac1508172cdd9028dc5245",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/evidence/2026-10-06-state-hub-rollout-7d99282.json",
|
||||
"sha256": "3d35f03d49b46746338b7f09e96f7eb51f2bdd9644ac19dc7d53566654360fab",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/evidence/a5-topic-spine-comparison-cases.json",
|
||||
"sha256": "60b38ba14c44a49f676c6513bf5f8446c5adebc696b579d8c8551d55a718185f",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/evidence/legacy-meter-weekly-review-20261005.json",
|
||||
"sha256": "dd075cc02a1de42becda428fafaa8cc5caa11e3232ee0172b9089f46f55decdf",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/evidence/legacy-meter-weekly-review-20261006.json",
|
||||
"sha256": "8bf2f184cae6e96f63f9224d7336a6b4491b27c0e74517d3f3ab37ff08f420a4",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/evidence/legacy-meter-weekly-review-20261007.json",
|
||||
"sha256": "a04d9fce8df82a1ce47ff7556ebee8eb04158c21f863127e7c55473e2c669756",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/evidence/legacy-meter-weekly-review-20261008.json",
|
||||
"sha256": "9f238a35af9e16c342038a8e6744007d0561e4ae62a6c491293a374cf4565cb4",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/evidence/legacy-meter-weekly-review-20261009.json",
|
||||
"sha256": "360132e3f6f525a3cc0b5a4083aee773bd2fa7600108c62eeac46df3ee9b758f",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/evidence/legacy-meter-weekly-review-20261010.json",
|
||||
"sha256": "1cea43063b0bf805946d67f5c3273c34b89fa92e181914670a6b81eb79e2803d",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/evidence/legacy-meter-weekly-review-20261011.json",
|
||||
"sha256": "e6e1834e21ad9a76abdc39fefdd7b3bbaa953be7165e07f97c1c779667e4c3dd",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/evidence/legacy-meter-weekly-review-20261012.json",
|
||||
"sha256": "3d2023269ec1aab1092fd5a27a8d3b95ecdc8c16a2860458c85c101a2b1bcc01",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/evidence/legacy-meter-weekly-review-20261013.json",
|
||||
"sha256": "e44067306b7c5a79b0aebb430266ca5962ab8d0680168558df8e2a838b03ac90",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/evidence/legacy-meter-weekly-review-20261014.json",
|
||||
"sha256": "50d5c8e116e9ec924b901cc58ba2b9faa49f0037c62f47d01685f84cf65af8f7",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/inbox-change-feed-contract.md",
|
||||
"sha256": "64db876d40cca484d7f30d2a91903aa79a10c9b2a4c739db372615e003e6ae55",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "docs/workplan-convention.md",
|
||||
"sha256": "408d5aa86b61403720f20b48ce478428ddce4693faacf6e741e14ef4e084833f",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "migrations/versions/c4d5e6f7a8b9_inbox_feed_revision.py",
|
||||
"sha256": "48f1730037be99b5623e878d7f20a06bec243ce27317fde81c82e16006d7b3ce",
|
||||
"included_in_runtime_build": true
|
||||
},
|
||||
{
|
||||
"path": "registry/capabilities/capability.statehub.progress-log.md",
|
||||
"sha256": "71dacad9cca8df30d487720e3072a278c489e6c52d74b3fcb84f26d61c07c846",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "registry/capabilities/capability.statehub.workstream-coordinate.md",
|
||||
"sha256": "818428997975e8f2d64d85946937b4076806a9eedda1a31d1f701f80d1a6cf31",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "registry/indexes/capabilities.yaml",
|
||||
"sha256": "eab454bd985ab6ab83c38fd29e6e58ebdfe1e09bbc5388edddaa07a88133619a",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "scripts/consistency_check.py",
|
||||
"sha256": "1827921c79b476bee823c2ddf9896aeb83f3efca6548427e17b3244216bbc6b5",
|
||||
"included_in_runtime_build": true
|
||||
},
|
||||
{
|
||||
"path": "scripts/project_rules/agents-codex.template",
|
||||
"sha256": "45d0bc055438b21c219ef108fb7f8a9ac29855293e605ce5bbf911036f8cf6b7",
|
||||
"included_in_runtime_build": true
|
||||
},
|
||||
{
|
||||
"path": "scripts/project_rules/session-protocol.template",
|
||||
"sha256": "2fd296642b81b5a1d12660d8d1a4f54ae5d074345cc05d5de38aabab90ad01ac",
|
||||
"included_in_runtime_build": true
|
||||
},
|
||||
{
|
||||
"path": "scripts/project_rules/workplan-convention.template",
|
||||
"sha256": "ca291b913a5592aa67d89df914c6799bdda77fd2ba77c8cf7152998459d0c746",
|
||||
"included_in_runtime_build": true
|
||||
},
|
||||
{
|
||||
"path": "scripts/repo_sync.py",
|
||||
"sha256": "e02ea7983ce5accd0f5b0a35bbe6dba5572ec36b5b51cfd5c60e337146e3fda2",
|
||||
"included_in_runtime_build": true
|
||||
},
|
||||
{
|
||||
"path": "tests/test_c07_retired_rows.py",
|
||||
"sha256": "d8e0db343cc000570f2d6751ba094a4c83ad6caa70dc297aa1dfb0f4472a6ae1",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "tests/test_consistency_check.py",
|
||||
"sha256": "3505dd6288e9764d34001f3a4cf0f41b0166e2d0cf98776a3e3a35b0ac25ece3",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "tests/test_message_feed.py",
|
||||
"sha256": "7915b1a61f90d506215a70d10fd260fe422ae7c07acdde06187ac0836be8f1e6",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "tests/test_push_deadline.py",
|
||||
"sha256": "1bad625eabe96b7a4da6f00ab2228991be0777a705f11f34f153c33256e72e30",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "workplans/ADHOC-2026-10-06.md",
|
||||
"sha256": "b11786c9d4929c749ecc0d611ad617ed17c72a631f89c246dbdbb495459f385c",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "workplans/ADHOC-2026-10-13.md",
|
||||
"sha256": "4f7bbab61d00eea6988ec16b2451bb204db2c9033cc0629cc0239c8ceee25508",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "workplans/STATE-WP-0071-railiance01-workstream-caller-deploy.md",
|
||||
"sha256": "ec48419b9901693817caf96ae82714bd0edfa5d3ab38ca1fa86ccf603fd6d129",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "workplans/STATE-WP-0073-legacy-meter-decline-and-remote-audit.md",
|
||||
"sha256": "ab17f5f779a52f38ad2bec38f19f700ff408138b00c390a5317d35ba86c5fa77",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "workplans/STATE-WP-0079-retirement-strangler.md",
|
||||
"sha256": "6926943850aacc8cee80dad1ab3eadeedbff002b8be4f259f3ff7cb5c999fea3",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "workplans/STATE-WP-0080-register-project-flavor-awareness.md",
|
||||
"sha256": "6c56f3fd92ebcaf73638eabf43a411afca7cebcd2c62ff79fca50497ca2fe08c",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "workplans/STATE-WP-0094-routed-gates-and-owner-returns.md",
|
||||
"sha256": "3f1ae0254bd9b44bc1210202fedb5a904a010b0a619073770b3552b144d73bf1",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "workplans/STATE-WP-0097-unlinked-decision-supersession.md",
|
||||
"sha256": "ecb334506917f07bc5226286ded7ce193b1c2e98c53ae8543db1205c35ae9627",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "workplans/STATE-WP-0098-hub-core-receipt-inputs.md",
|
||||
"sha256": "eabe057705f5f1f9635a4f040442480b5c596e851d488427d0948cb27fa00ecf",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "workplans/archived/260708-STATE-WP-0069-workplan-terminology-legacy-retirement.md",
|
||||
"sha256": "16825ce819e9eb70710038feb1119879fd2e78faaeaee885f0d63e4448d1a2ae",
|
||||
"included_in_runtime_build": false
|
||||
},
|
||||
{
|
||||
"path": "workplans/archived/260714-STATE-WP-0070-workplan-terminology-phase2-retirement.md",
|
||||
"sha256": "895c014d61f0cb2b2b2edfe5007db9bcd7ee56975390f2f7874bfd0ec66c4a8b",
|
||||
"included_in_runtime_build": false
|
||||
}
|
||||
],
|
||||
"candidate_receiver_patch_sha256": "5cb52c26c902ed1cd95156f25c2e4d9107e6b2a808212960aa766074314b819d",
|
||||
"new_migration": "c4d5e6f7a8b9",
|
||||
"previous_schema_head": "b3c4d5e6f7a8",
|
||||
"schema_head_after_normal_migrate_hook": "c4d5e6f7a8b9",
|
||||
"floating_build_inputs": [
|
||||
"hub-core main archive",
|
||||
"python:3.12-slim base",
|
||||
"apt indexes/packages",
|
||||
"pip uv installer",
|
||||
"unlocked pip dependency resolution",
|
||||
"Docker CLI download"
|
||||
],
|
||||
"no_native_actions": true
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"schema": "statehub-full-image-source-review.v1",
|
||||
"deployed_revision": "7d99282",
|
||||
"candidate_base": "4ab66e363ed00a67ad1ea0434854bc4284c7a26e",
|
||||
"source_only": true,
|
||||
"runtime_change_reviews": [
|
||||
{
|
||||
"paths": [
|
||||
"api/main.py",
|
||||
"api/models/__init__.py",
|
||||
"api/models/agent_message.py",
|
||||
"api/routers/message_feed.py",
|
||||
"api/routers/messages.py",
|
||||
"api/schemas/inbox_feed.py",
|
||||
"migrations/versions/c4d5e6f7a8b9_inbox_feed_revision.py"
|
||||
],
|
||||
"behavior": "Adds inbox feed snapshots/cursors/tombstones and one database revision per inbox write transaction; archive timestamp becomes first-write-wins. Router ordered before dynamic messages path. Parameterized page queries; source/version/horizon cursors reject mismatches.",
|
||||
"rollout_risks": [
|
||||
"Migration backfills all current messages/receipts, adds constraints/indexes/triggers and takes normal ALTER TABLE locks; production cardinality/runtime/lock budget not observed.",
|
||||
"Transaction advisory lock serializes message/receipt writes; long inbox transactions can delay other inbox writers.",
|
||||
"Snapshot reads all current inbox rows; page limit deliberately never splits a revision, so a large transaction can exceed nominal page count. New load/resource effects require owner acceptance.",
|
||||
"Helm rollback leaves additive schema/triggers; no automatic data-destructive downgrade is proposed.",
|
||||
"Contract acceptance in STATE-WP-0098 is source context, not approval of this new exact deployment proposal."
|
||||
]
|
||||
},
|
||||
{
|
||||
"paths": [
|
||||
"api/schemas/workplan.py",
|
||||
"scripts/consistency_check.py"
|
||||
],
|
||||
"behavior": "Exposes projection-retired metadata, treats retired missing-source rows as INFO tombstones, adds advisory C43 unlinked supersession check. No new consistency repair mutation is added by C43.",
|
||||
"rollout_risks": [
|
||||
"Consistency now reads decisions for an extra advisory finding; unusual decision text can change warnings, not decision authority."
|
||||
]
|
||||
},
|
||||
{
|
||||
"paths": [
|
||||
"scripts/repo_sync.py",
|
||||
"scripts/project_rules/agents-codex.template",
|
||||
"scripts/project_rules/session-protocol.template",
|
||||
"scripts/project_rules/workplan-convention.template"
|
||||
],
|
||||
"behavior": "Push deadline rises120s with explicit remote-unverified timeout result; instruction templates require source workplan refinement after substantive progress.",
|
||||
"rollout_risks": [
|
||||
"Push timeout remains uncertain; remote ref must be inspected before retry."
|
||||
]
|
||||
}
|
||||
],
|
||||
"build_limits": [
|
||||
"Primary commit/tag does not pin floating hub-core main, Python base or unlocked dependency resolution. Require actual image manifest digest and in-image module/package hashes.",
|
||||
"No current app image/source contains the proposed receiver until canonical source commit and normal CI publication succeed."
|
||||
],
|
||||
"unchanged_in_git_delta": [
|
||||
"Dockerfile",
|
||||
"pyproject.toml",
|
||||
"uv.lock",
|
||||
".forgejo/workflows/image.yaml",
|
||||
"Helm chart"
|
||||
],
|
||||
"production_actions": 0
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
# Final image receipt attachment to revision 3
|
||||
|
||||
Stable proposal ID `STATE-WP-0095-T06-cluster-frozen-receiving-r1`, revision 3.
|
||||
This attaches new actual image evidence to the frozen [rollout supplement](ROLLOUT-SUPPLEMENT.md)
|
||||
and [source readiness manifest](source-patch-manifest.json); it does not reset the
|
||||
trial, claim deployment approval or change the source patch.
|
||||
|
||||
The [public image inspection receipt](/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-17/statehub-public-image-inspection.json)
|
||||
binds source 51bc70d and manifest
|
||||
`sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015`.
|
||||
Root verified 22 compressed layers (129.68MiB), 233 selected code-file hashes,
|
||||
86 installed package METADATA records and exact CI build ID 51bc70d. The selected
|
||||
receiver and c4migration files independently match committed source. The
|
||||
174 hub-core source/installed files and installed hub-core 0.2.0 metadata
|
||||
`sha256:84a59c6ea36d6d8a0b91b76e52f351a5ce6f2fd9ace8a4c887b51bab05973953`
|
||||
are inventory evidence bound to these image bytes; floating build origin remains
|
||||
unknown. No image was executed, installed into the system or pulled by a daemon.
|
||||
|
||||
The [anonymous registry metadata](/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-17/statehub-anonymous-registry-metadata.json)
|
||||
resolves the initial HEAD401 as ordinary OCI challenge flow, using an ephemeral
|
||||
anonymous pull token only in memory. No credential file or login was needed.
|
||||
The [actual migration fixture result](/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-17/migration-compat-r1-result.json)
|
||||
retains ten passing SQL compatibility oracles, and its
|
||||
[independent cleanup receipt](/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-17/migration-compat-r1-cleanup.json)
|
||||
verifies both exact containers and run-label resources absent.
|
||||
|
||||
Full old/new application acceptance, production migration locks/runtime, exact
|
||||
reuse-values upgrade diff and refreshed rollback/headroom/schema facts remain
|
||||
bounded by the main supplement. EUR execution cost and risk exposure remain
|
||||
unknown, with no new budget grant. Keep registrar refusal until receiving is
|
||||
delivered and verified; source publication or source-only T08 completion cannot
|
||||
substitute for the T06 native rollout gate.
|
||||
|
|
@ -0,0 +1,120 @@
|
|||
# Receiver-first rollout supplement — revision 3
|
||||
|
||||
Stable proposal ID: `STATE-WP-0095-T06-cluster-frozen-receiving-r1`.
|
||||
This is another revision of the same proposal, not another trial. R1/R2,
|
||||
including failed dry-run and public HEAD challenge observations, remain retained.
|
||||
Status: prepared for review. No live rollout approval or registrar admission.
|
||||
|
||||
## Actual source, image and source-only readiness
|
||||
|
||||
Receiver source is published at 51bc70d1ff8f25450a8650d8e50caf053093a02e;
|
||||
independent readback confirms the exact six reviewed files, matching working
|
||||
and committed bytes and origin/main. Public CI build-and-push task 12624 is
|
||||
successful for that full source revision. Normal anonymous OCI challenge flow
|
||||
verified image `forgejo.coulomb.social/coulomb/state-hub:main-51bc70d` manifest
|
||||
`sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015`.
|
||||
The earlier unauthenticated HEAD401 is a protocol challenge, not a private
|
||||
credential requirement; root used an ephemeral anonymous token in memory only,
|
||||
without credential files, login, image execution or daemon pull.
|
||||
|
||||
Root's selected image layer inspection binds receiver historical module
|
||||
`sha256:e3c4bf965764b32a6df5d61c71272ee22569df9a9ddae2a3fc3df97ec554e0b2`
|
||||
and inbox migration source
|
||||
`sha256:48f1730037be99b5623e878d7f20a06bec243ce27317fde81c82e16006d7b3ce`
|
||||
to that manifest. Selected package metadata and hub-core file inventory are
|
||||
also retained. This identifies observed bytes; it does not establish hermetic
|
||||
build origins, complete dependency acceptance or full application behavior.
|
||||
The workflow still fetched floating hub-core/main and unlocked dependencies;
|
||||
this task did not change the workflow or locks. Image selection must retain the
|
||||
verified digest identity through final rendered/deployed image verification.
|
||||
|
||||
The source-only Makefile successor is separately bound in
|
||||
`source-patch-manifest.json` and `state-hub-readiness.patch`, based on 51bc70d.
|
||||
It changes only the two existing Secret-template server dry-run requests to
|
||||
server-side apply, without force-conflicts, value edits or policy changes.
|
||||
The completed source task STATE-WP-0095-T08 has normally allocated UUID
|
||||
2dd9b04f-2250-5a8a-b5bc-c8a009872858; existing tasks/IDs remain unchanged and
|
||||
T06 remains the native gate. Two Make command-fixture branches passed using
|
||||
`--noconftest`; no destructive default database fixtures were loaded. The exact
|
||||
candidate full Make server dry-run passed 0 on fixed railiance01 kubeconfig.
|
||||
This readiness-only Make/test/workplan change is not a new application image.
|
||||
Canonical integration/publication remains subject to root review.
|
||||
|
||||
## Preserved failure and successful read-only checks
|
||||
|
||||
The old Make server dry-run failed 2 in its first platform DB Secret template
|
||||
phase: client-side kubectl apply generates the last-applied annotation, which
|
||||
the existing Platform ValidatingAdmissionPolicy `reject-secret-last-applied`
|
||||
correctly rejects. Owner policy source explicitly recommends server-side apply
|
||||
or replace. The original refusal and fixed closed error indicators are retained;
|
||||
no raw stderr or Secret content is in the receipts. The non-secret remainder
|
||||
independently passed all five phases, including current app chart admission.
|
||||
The narrow successor then passed the whole existing server dry-run without
|
||||
force or actual Secret writes. The policy remains unchanged.
|
||||
|
||||
Root's target identity/headroom check passed. Fresh headroom remains required
|
||||
near any later upgrade; dated aggregate headroom does not guarantee scheduling.
|
||||
Server admission used intended public source values. It is not an exact Helm
|
||||
`--reuse-values` upgrade diff; that reviewed values-preserving dry-run/diff is
|
||||
still required before native approval. No raw Helm values/manifests or existing
|
||||
Secret contents should become public evidence. Readiness results and a source
|
||||
commit are not a live image promotion.
|
||||
|
||||
## Full-image migration and actual disposable compatibility evidence
|
||||
|
||||
The full deployed 7d99282→51bc70d image delta includes the inbox feed and
|
||||
migration c4d5e6f7a8b9 over b3c4d5e6f7a8, even though the receiver patch alone
|
||||
adds no migration. It backfills message/receipt revisions, adds indexes and NOT
|
||||
NULL constraints, sequence/tombstone storage, and write/delete triggers. Inbox
|
||||
writers acquire a shared transaction advisory lock; snapshot reads all current
|
||||
inbox rows and a large revision can exceed the feed's nominal page size.
|
||||
Full source closure and these risks were retained in R2 review files.
|
||||
|
||||
Root executed the independently reviewed disposable PostgreSQL fixture against
|
||||
manifest f4ee1144010f2a2207785bc20638bab2e21eeed40edf563d39bb6198257a97ff.
|
||||
All ten closed oracles passed, including actual old-model DDL, real migration
|
||||
SQL, legacy-row backfill, compiled old insert/receipt/update/noop/delete shapes
|
||||
and tombstones while leaving the additive schema installed. Synthetic migration
|
||||
elapsed 0.0055s. Independent cleanup verified both exact containers and exact run
|
||||
label absent. No production API, real credential or native acceptance was used.
|
||||
|
||||
This is SQL-shape compatibility on a tiny synthetic dataset, not full old/new
|
||||
HTTP/ORM acceptance, production data/schema inspection, production migration
|
||||
lock/time budget, backup/PITR proof or permission to run the migration. The
|
||||
source-controlled full feed suite's default conftest is destructive; run it
|
||||
only in separately reviewed exact disposable database containment if additional
|
||||
acceptance is needed. Keep source, failed source checks and actual receipts.
|
||||
|
||||
## Exact remaining rollout boundary and rollback
|
||||
|
||||
Before approval, root must integrate/review the readiness source, retain the
|
||||
final source/artifact pins, complete the exact reuse-values dry-run/diff and
|
||||
refresh target release/image/headroom/schema metadata. Current observed baseline
|
||||
is Helm revision 75 with API and MCP image main-7d99282, independently confirmed
|
||||
through projected revision 75 values; chart appVersion is stale and is not image
|
||||
identity. No new live approval is inferred from older StateHub trials or inbox
|
||||
contract acceptance. EUR execution cost and risk exposure remain unknown and
|
||||
must be explicit in the final human-reviewed proposal; this supplement grants
|
||||
no cost/risk budget and claims no zero-cost rollout.
|
||||
|
||||
Any later promotion uses the ordinary State Hub CI/Helm owner path, reviewed
|
||||
immutable image identity, atomic bounded upgrade and verified API/MCP readiness.
|
||||
Check expected migrated schema, delivered module/image hash, health and exact
|
||||
three parent / 15 task row preservation. Safe refusal probes must roll back their
|
||||
transactions; no committed probe mutation or direct UUID patch is authorized.
|
||||
The migration hook may change schema before an application upgrade succeeds.
|
||||
A Helm rollback does not undo that schema change or recover migration data.
|
||||
Do not automatically run Alembic downgrade: it discards revision/tombstone data.
|
||||
Image-only rollback to the freshly verified prior release must retain the
|
||||
additive schema and verify old application behavior/health and row preservation;
|
||||
if that recovery is not acceptable, resolve an owner recovery plan before rollout.
|
||||
|
||||
Keep the registrar's current refusal guard until the delivered receiving
|
||||
verification return. Only then may the independently reviewed exact registrar
|
||||
successor be integrated and normal cluster sync manage seven UUID fields in two
|
||||
files, including the one-field existing ADHOC backfill. Preserve all three
|
||||
archived source bytes, IDs and 15 existing task UUIDs. The expected unresolved
|
||||
STATE95→RMGR19T06 edge is not permission to enable the registrar early. Fence
|
||||
cluster sync and restore registrar refusal before any rollback removing receiver
|
||||
support. This work does not satisfy original TLS recovery or selected native
|
||||
registration/private-admission acceptance under NK49T35/T36/T33.
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"schema": "statehub-readiness-source-candidate.v1",
|
||||
"stable_proposal_id": "STATE-WP-0095-T06-cluster-frozen-receiving-r1",
|
||||
"revision": 3,
|
||||
"scope": "source_preflight_readiness_only_no_runtime_rollout",
|
||||
"base_revision": "51bc70d1ff8f25450a8650d8e50caf053093a02e",
|
||||
"runtime_source_revision": "51bc70d1ff8f25450a8650d8e50caf053093a02e",
|
||||
"runtime_image_digest": "sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015",
|
||||
"files": [
|
||||
{
|
||||
"path": "Makefile",
|
||||
"action": "modify",
|
||||
"base_sha256": "b958e4a518303a99e1618ffc36e6d902466b45583e356457acf954d6377e7da8",
|
||||
"candidate_sha256": "5584ef94071044cca8215141ecd8aee8d6ae5cfe73e8f5719358c680eb8af0d4"
|
||||
},
|
||||
{
|
||||
"path": "tests/test_server_dryrun_commands.py",
|
||||
"action": "add",
|
||||
"base_sha256": null,
|
||||
"candidate_sha256": "e5c3f667bca9d1172c9b0001328cb8ce1d97ff5895b0533e9876977108b11281"
|
||||
},
|
||||
{
|
||||
"path": "workplans/STATE-WP-0095-historical-source-receiving.md",
|
||||
"action": "modify",
|
||||
"base_sha256": "aeb307597dba0d92594d55242bd69ed6a391e7fdd58bb16c839ec8cbce44b349",
|
||||
"candidate_sha256": "ef10359cc5974283b5bdbfc602adf14e3c24362adf00640698d2937c6538483a"
|
||||
}
|
||||
],
|
||||
"patch_sha256": "4c52fd5a102df43ceb8e007d93d34efe861a3b321527cf5f3e195e35113c36a0",
|
||||
"tests": {
|
||||
"command": "/home/worsch/state-hub/.venv/bin/python -m pytest --noconftest -q --tb=short state-hub/tests/test_server_dryrun_commands.py",
|
||||
"passed": 2,
|
||||
"duration_seconds": 0.7
|
||||
},
|
||||
"server_dryrun_status": "passed_no_force_no_live_writes"
|
||||
}
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
# Exact receiver-first rollout proposal — revision 4
|
||||
|
||||
Stable proposal ID: `STATE-WP-0095-T06-cluster-frozen-receiving-r1`.
|
||||
Status: pending supervisor review; no live action approved or performed.
|
||||
This remains the same trial across all retained source/preflight refinements.
|
||||
|
||||
Promote State Hub API, MCP and its normal migration hook on railiance01 to
|
||||
`forgejo.coulomb.social/coulomb/state-hub:main-51bc70d@sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015` through the ordinary owner
|
||||
Helm path. The purpose is to preserve exactly three frozen cluster workplan
|
||||
UUIDs and 15 existing task UUIDs when later ordinary cluster receiving resumes.
|
||||
Keep the registrar refusal guard until the deployed receiver is verified.
|
||||
|
||||
Runtime source is 51bc70d1ff8f25450a8650d8e50caf053093a02e; current readiness
|
||||
source is 086d79a2736e34b916bd7de3c8a65e2ea38a3d64. The readiness commit changes
|
||||
Make/test/workplan only; it is not another application image. CI task 12624
|
||||
succeeded. [Actual public image inspection](/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-17/statehub-public-image-inspection.json)
|
||||
binds 22 layers, 233 selected code-file hashes,86 package metadata records, build
|
||||
ID 51bc70d and selected receiver/migration hashes to the approved image digest.
|
||||
Floating dependency origin remains unknown; no hermetic/full-app claim is made.
|
||||
|
||||
The full deployed 7d99282→51bc70d image change includes inbox-feed migration
|
||||
c4d5e6f7a8b9, backfill/index/NOT NULL changes, triggers and a shared transaction
|
||||
advisory lock, plus the other reviewed runtime changes in [the source closure](../r2/full-image-review-notes.json).
|
||||
[Actual disposable migration compatibility](/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-17/migration-compat-r1-result.json)
|
||||
passed all ten SQL-shape oracles; [independent exact cleanup](/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-17/migration-compat-r1-cleanup.json)
|
||||
passed. The 0.0055s synthetic timing is not a production lock/runtime estimate.
|
||||
|
||||
[Exact digest-pinned reuse-values server dry-run](exact-reuse-values-dryrun-result-4-pinned-package.json)
|
||||
passed against the exact pinned chart package: eight object identities unchanged and only API/MCP/migration Job image
|
||||
paths differ. Hooks did not execute; no raw Helm values/release contents or
|
||||
logs were retained. [Source-chart versus exact-package parity](chart-package-render-parity.json)
|
||||
independently matches all eight intended object/spec hashes and image references.
|
||||
Four helper control tests passed. Initial metadata-filter
|
||||
refusal and successful tag-only predecessor remain retained. Existing Make
|
||||
Secret-template preflight now passes with exactly scoped SSA dry-run and no
|
||||
force or Secret value changes; the original correct admission refusal remains.
|
||||
|
||||
## Exact proposed owner command and artifact
|
||||
|
||||
The local packaged chart is [state-hub-0.1.0.tgz](state-hub-0.1.0.tgz),
|
||||
SHA256 `b5c0663d830fc8d3b65080f237a0be8d01f8b2f7fec9dc33aeba91b1b6b281d4`. Its [file closure](chart-package-manifest.json) is frozen.
|
||||
No remote staging has occurred. After exact supervisor approval, the normal
|
||||
owner path stages only this public chart in the fresh private directory below,
|
||||
checks its SHA256, then invokes this command. Abort if path already exists,
|
||||
archive/image identity differs, release baseline changed or fresh headroom fails.
|
||||
|
||||
```sh
|
||||
ssh railiance01 'test ! -e /tmp/statehub-frozen-receiver-b5c0663d830f && install -d -m 0700 /tmp/statehub-frozen-receiver-b5c0663d830f'
|
||||
scp /home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/state-hub-0.1.0.tgz railiance01:/tmp/statehub-frozen-receiver-b5c0663d830f/state-hub-0.1.0.tgz
|
||||
ssh railiance01 'sha256sum /tmp/statehub-frozen-receiver-b5c0663d830f/state-hub-0.1.0.tgz'
|
||||
ssh railiance01 'KUBECONFIG=/etc/rancher/k3s/k3s.yaml helm -n state-hub upgrade state-hub /tmp/statehub-frozen-receiver-b5c0663d830f/state-hub-0.1.0.tgz --reuse-values --set-string image.tag=main-51bc70d@sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015 --atomic --timeout 3m'
|
||||
```
|
||||
|
||||
The hash comparison is an explicit stop condition, not an unchecked display.
|
||||
These are proposed privileged commands only, not commands run by this packet.
|
||||
The private directory/archive are owned by this attempt and can be removed via
|
||||
the same exact path after verification/recovery; no broad /tmp cleanup.
|
||||
No force, reset-values, live Secret write, guard change or direct API UUID repair
|
||||
belongs to this scope. The ordinary live upgrade runs its normal migration hook;
|
||||
the read-only dry-run explicitly disabled hook execution.
|
||||
|
||||
## Verification, conditional failure handling and rollback limits
|
||||
|
||||
Fresh metadata at 2026-10-16T23:43:51Z confirms railiance01 node 92.205.62.239,
|
||||
Helm 75 deployed, API/MCP Ready 1 each with observed generations, and no existing
|
||||
migration Job. Both running imageIDs are
|
||||
`forgejo.coulomb.social/coulomb/state-hub@sha256:b128ac983a1045acb2ec245e439846204a924c413d1bbc3b710b6f3fafe39313`.
|
||||
Fresh headroom is 420m/ok. Existing normal `/state/health` projection confirms
|
||||
primary/railiance01 and applied=expected=b3c4d5e6f7a8, without database exec,
|
||||
DSN access or credential retrieval. See [the fresh baseline](fresh-public-baseline.json).
|
||||
Refresh target/headroom/release/image/schema and prior Job UID again if these
|
||||
facts become stale or change before an approved trial. The rollback baseline
|
||||
remains the freshly confirmed Helm 75/main-7d99282 identity. Capture the new trial Job UID/image/release and its owned Pod UIDs/IPs.
|
||||
Verify actual delivered digest, receiver module hash, expected schema, health,
|
||||
both API/MCP Ready and full historical row preservation. Refusal probes must
|
||||
roll back transactions and produce no committed probe writes.
|
||||
|
||||
**The migration Job has no activeDeadlineSeconds. Helm's three-minute timeout
|
||||
and atomic application rollback do not stop an active Job, undo schema changes
|
||||
or bound outage.** Approval must also explicitly cover cancellation of only the
|
||||
new exact trial Job UID after failed/timed-out Helm if still active, with UID
|
||||
precondition, checked image/ownership, foreground propagation and observation of
|
||||
only its bound owned Pods. See [the exact recovery limits](MIGRATION-JOB-RECOVERY.md).
|
||||
|
||||
Database quiescence is not implied by Pod absence. An existing private owner
|
||||
path must bind the trial's backend identities and verify those connections,
|
||||
transactions and locks gone, without query text, values, secrets or a new
|
||||
credential grant. Availability of that mapping is currently unknown. If UID,
|
||||
connection mapping, privilege or quiescence is unknown, STOP for attended
|
||||
Kubernetes/database-owner recovery. No broad backend cancellation, finalizer
|
||||
removal, blanket deletion or new runtime broker is authorized by this proposal.
|
||||
|
||||
After verified quiescence and actual-schema assessment, image-only rollback may
|
||||
use the freshly confirmed prior release through the normal owner path:
|
||||
|
||||
```sh
|
||||
ssh railiance01 'KUBECONFIG=/etc/rancher/k3s/k3s.yaml helm -n state-hub rollback state-hub 75 --no-hooks --wait --timeout 3m'
|
||||
```
|
||||
|
||||
Revision 75 is conditional on the fresh baseline still matching; otherwise stop
|
||||
and revise. No automatic Alembic downgrade/old-data restore: committed additive
|
||||
schema and feed data remain. Verify old application health/compatibility and
|
||||
historical rows on the actual retained schema. Mixed/unknown state requires
|
||||
attended owner recovery, not a success claim. Any already admitted registrar
|
||||
must first be re-fenced before removing receiver support.
|
||||
|
||||
## Cost, risk and authority
|
||||
|
||||
Attributable EUR execution cost and credible loss exposure are unknown and
|
||||
unpriced. Existing infrastructure avoids a new resource purchase, but operator
|
||||
recovery time, coordination outage, migration locks/data compatibility and
|
||||
floating build provenance remain meaningful risks. There is no zero-cost
|
||||
claim, EUR budget reservation, autopilot grant or three-minute outage promise.
|
||||
Bernd Worsch must explicitly disposition this exact proposal and its conditional
|
||||
recovery scope. Source/synthetic readiness is not approval or promotion evidence.
|
||||
|
||||
Subsequent registrar admission and ordinary cluster publication remain dependent
|
||||
on actual delivered receiving proof. TLS recovery and owner-native selected
|
||||
registration/private admission under NK49T35/T36/T33 remain outstanding.
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
# Migration Job failure and recovery supplement — revision 4
|
||||
|
||||
Stable proposal ID `STATE-WP-0095-T06-cluster-frozen-receiving-r1`.
|
||||
This is a further revision of the same trial. Frozen R1/R2/R3 and actual failed
|
||||
preparation outcomes stay retained. There is no supervisor approval or live
|
||||
execution represented here; this is pending proposal metadata.
|
||||
|
||||
The current Helm migration hook Job has no activeDeadlineSeconds and retains
|
||||
failed Jobs with `before-hook-creation,hook-succeeded`. The ordinary
|
||||
`--atomic --timeout 3m` bounds the Helm wait only. It neither bounds migration
|
||||
lifetime/outage nor rolls the database back. An active hook may outlive failed
|
||||
Helm and continue holding locks. No chart modification is proposed here.
|
||||
|
||||
Any approval of this exact trial must explicitly include the following scoped
|
||||
failure handling; cancellation is conditional, not performed in preparation:
|
||||
|
||||
1. Retain the preflight release/image revision and any preexisting exact Job UID.
|
||||
Record trial start and the new state-hub/state-hub-migrate Job UID, creation
|
||||
timestamp, release/hook ownership and exact approved image as soon as the
|
||||
trial Job is observable. Capture its owned Pod UIDs/IPs and ownerReferences.
|
||||
A reused name, old UID, foreign ownership, unexpected image, ambiguous origin
|
||||
or missing mapping refuses automatic cancellation; escalate to the owner.
|
||||
2. If Helm fails/times out and this exact admitted trial Job or its owned Pods
|
||||
remain active, re-read UID/image/ownership immediately. Use the normal
|
||||
Kubernetes owner path to delete only this Job with an exact UID precondition
|
||||
and foreground propagation. Include cancellation and observation of only its
|
||||
already bound owned Pods in the approval. Never delete by name alone after
|
||||
drift, cancel another release, remove a finalizer, disable guards or issue
|
||||
blanket Pod/namespace deletion. Verify controller cannot recreate the trial
|
||||
Pod and all bound Job/Pod UIDs are gone or terminated. Preserve safe failure
|
||||
metadata and cancellation/termination receipts.
|
||||
3. Pod disappearance alone is not database quiescence. Through the existing
|
||||
private database-owner execution path, bind migration connections to the
|
||||
captured trial Pod/IP and start window, and retain only backend PID plus
|
||||
backend-start identity, transaction/state and lock-count metadata. Never
|
||||
select query text, SQL parameter values, credentials, connection strings or
|
||||
Secret contents. Verify those exact connections/transactions and their locks
|
||||
absent after cancellation. Source NAT/pooling, recycled addresses, missing
|
||||
pre-observation or insufficient access can make that binding unknown; do not
|
||||
call it quiescent in that case. Retain the refusal and stop for attended
|
||||
database-owner recovery. No automatic broad pg_cancel/terminate_backend is
|
||||
included; such an intervention needs its own exact owner disposition.
|
||||
4. Only after verified migration quiescence assess actual schema head and health
|
||||
and decide image-only rollback to the freshly verified prior release. Helm
|
||||
may already have reverted application resources; verify actual state rather
|
||||
than replaying blindly. The additive c4d5e6f7a8b9 schema and feed data remain
|
||||
installed if migration committed. Never run automatic Alembic downgrade or
|
||||
restore older production bytes over current data. If state is mixed or
|
||||
unknown, retain evidence and require attended recovery; do not claim success.
|
||||
5. Keep normal cluster sync fenced by the existing registrar refusal until
|
||||
receiving is delivered and verified. Before removing receiving support after
|
||||
registrar admission, fence cluster sync and restore that refusal first.
|
||||
|
||||
The synthetic migration fixture proves a small SQL compatibility case and exact
|
||||
cleanup only. It does not prove production migration timing, concurrent lock
|
||||
behavior, session identity mapping, backup/PITR, full application compatibility
|
||||
or this cancellation path. Root's exact values-preserving dry-run and fresh
|
||||
headroom/release/schema observations remain required before approval. Record
|
||||
these unknowns and the recovery operator in the final supervisor disposition.
|
||||
Costs and credible EUR loss exposure remain unpriced; there is no autopilot
|
||||
budget/risk grant or three-minute outage claim.
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"archive_sha256": "sha256:b5c0663d830fc8d3b65080f237a0be8d01f8b2f7fec9dc33aeba91b1b6b281d4",
|
||||
"archive_bytes": 8815,
|
||||
"files": [
|
||||
{
|
||||
"path": "state-hub/Chart.yaml",
|
||||
"sha256": "sha256:d714e2c5cfd5f437deb60c45d641b9576dbc211a487094fca90732d88c7ee9cc"
|
||||
},
|
||||
{
|
||||
"path": "state-hub/values.yaml",
|
||||
"sha256": "sha256:d56509456ef0f1d2ad933d943547132aee5229125f1fd8842e45dc611b309699"
|
||||
},
|
||||
{
|
||||
"path": "state-hub/templates/_helpers.tpl",
|
||||
"sha256": "sha256:972754d466cd1457998ac350e855c9b12b2a5e2407751e0b72c2e5264bbc8ed0"
|
||||
},
|
||||
{
|
||||
"path": "state-hub/templates/classification-configmap.yaml",
|
||||
"sha256": "sha256:301c12fec3e9046639c5c80fd607c6210c82ffe81cd442c4b10ddb357087d501"
|
||||
},
|
||||
{
|
||||
"path": "state-hub/templates/configmap.yaml",
|
||||
"sha256": "sha256:451491a63d33766faf1a7c14647dd435d8a947e6a8e224fc40053e29077ef0cd"
|
||||
},
|
||||
{
|
||||
"path": "state-hub/templates/deployment.yaml",
|
||||
"sha256": "sha256:09a0f784d245c585cace26265ec1c9faa71f1221be899ad94ee45c0d729da8df"
|
||||
},
|
||||
{
|
||||
"path": "state-hub/templates/ingress.yaml",
|
||||
"sha256": "sha256:5c6d842007676ceedc7db18bb94bdb7c811fe357aeb99709dc985af9e0e898bd"
|
||||
},
|
||||
{
|
||||
"path": "state-hub/templates/mcp-deployment.yaml",
|
||||
"sha256": "sha256:b59017b21fc76db3bd9f1cf56cbaf9948d6e6466df8b7415d1abf732512d1872"
|
||||
},
|
||||
{
|
||||
"path": "state-hub/templates/mcp-service.yaml",
|
||||
"sha256": "sha256:906cc583daedf4ad9c207e627b3b1d259d2619fa6643be89746dc0dc27025a7a"
|
||||
},
|
||||
{
|
||||
"path": "state-hub/templates/migrate-job.yaml",
|
||||
"sha256": "sha256:2c907abe41a426e78ce7c5bfa631a41fb322687f4238ec9f3d9dec813d0f4c79"
|
||||
},
|
||||
{
|
||||
"path": "state-hub/templates/namespace.yaml",
|
||||
"sha256": "sha256:7fb0c6c87767c3cab0999173d7778cc621aab0498acd1937c3d02614b7037176"
|
||||
},
|
||||
{
|
||||
"path": "state-hub/templates/service.yaml",
|
||||
"sha256": "sha256:f26936071cda5f0ef775625f3284b9c416dacebfccec1d984d5c46c5e756609f"
|
||||
},
|
||||
{
|
||||
"path": "state-hub/templates/serviceaccount.yaml",
|
||||
"sha256": "sha256:48349a38dc4376ede81c798256b2bd520b5e3c390b052217b49630cbdff719f3"
|
||||
},
|
||||
{
|
||||
"path": "state-hub/PROMOTE.md",
|
||||
"sha256": "sha256:891fe255c0c186f72da8626b974417e348e1fec2eb875697e1d5cf469da3cb6e"
|
||||
},
|
||||
{
|
||||
"path": "state-hub/files/repo-classification.allowed.yaml",
|
||||
"sha256": "sha256:9c36fbd5308b19695f9f05d86f8e315bbeccdd267575ce4e2fccf6fb2ea82e32"
|
||||
}
|
||||
],
|
||||
"intended_remote_private_directory": "/tmp/statehub-frozen-receiver-b5c0663d830f",
|
||||
"remote_staging_performed": false
|
||||
}
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
{
|
||||
"schema": "receiver.source-chart-vs-exact-package-parity.v1",
|
||||
"status": "passed",
|
||||
"source_chart_result_sha256": "sha256:3bc7aab8b98a8a8fefcacab49757e072937f1a2976a23449c20bb93203085d77",
|
||||
"packaged_chart_result_sha256": "sha256:73f8ff4094a929c2ec87e28487aa0bc73faa6a02d9377a9ccaad40295d1a084d",
|
||||
"chart_archive_sha256": "sha256:b5c0663d830fc8d3b65080f237a0be8d01f8b2f7fec9dc33aeba91b1b6b281d4",
|
||||
"source_chart_images_only": true,
|
||||
"packaged_chart_images_only": true,
|
||||
"packaged_changed_objects": 3,
|
||||
"objects": [
|
||||
{
|
||||
"identity": [
|
||||
"apps/v1",
|
||||
"Deployment",
|
||||
"state-hub",
|
||||
"state-hub"
|
||||
],
|
||||
"present_in_both": true,
|
||||
"intended_object_hash_matches": true,
|
||||
"intended_spec_hash_matches": true,
|
||||
"images_match": true
|
||||
},
|
||||
{
|
||||
"identity": [
|
||||
"apps/v1",
|
||||
"Deployment",
|
||||
"state-hub",
|
||||
"state-hub-mcp"
|
||||
],
|
||||
"present_in_both": true,
|
||||
"intended_object_hash_matches": true,
|
||||
"intended_spec_hash_matches": true,
|
||||
"images_match": true
|
||||
},
|
||||
{
|
||||
"identity": [
|
||||
"batch/v1",
|
||||
"Job",
|
||||
"state-hub",
|
||||
"state-hub-migrate"
|
||||
],
|
||||
"present_in_both": true,
|
||||
"intended_object_hash_matches": true,
|
||||
"intended_spec_hash_matches": true,
|
||||
"images_match": true
|
||||
},
|
||||
{
|
||||
"identity": [
|
||||
"v1",
|
||||
"ConfigMap",
|
||||
"state-hub",
|
||||
"state-hub-classification-allowed"
|
||||
],
|
||||
"present_in_both": true,
|
||||
"intended_object_hash_matches": true,
|
||||
"intended_spec_hash_matches": true,
|
||||
"images_match": true
|
||||
},
|
||||
{
|
||||
"identity": [
|
||||
"v1",
|
||||
"ConfigMap",
|
||||
"state-hub",
|
||||
"state-hub-config"
|
||||
],
|
||||
"present_in_both": true,
|
||||
"intended_object_hash_matches": true,
|
||||
"intended_spec_hash_matches": true,
|
||||
"images_match": true
|
||||
},
|
||||
{
|
||||
"identity": [
|
||||
"v1",
|
||||
"Service",
|
||||
"state-hub",
|
||||
"state-hub"
|
||||
],
|
||||
"present_in_both": true,
|
||||
"intended_object_hash_matches": true,
|
||||
"intended_spec_hash_matches": true,
|
||||
"images_match": true
|
||||
},
|
||||
{
|
||||
"identity": [
|
||||
"v1",
|
||||
"Service",
|
||||
"state-hub",
|
||||
"state-hub-mcp"
|
||||
],
|
||||
"present_in_both": true,
|
||||
"intended_object_hash_matches": true,
|
||||
"intended_spec_hash_matches": true,
|
||||
"images_match": true
|
||||
},
|
||||
{
|
||||
"identity": [
|
||||
"v1",
|
||||
"ServiceAccount",
|
||||
"state-hub",
|
||||
"state-hub"
|
||||
],
|
||||
"present_in_both": true,
|
||||
"intended_object_hash_matches": true,
|
||||
"intended_spec_hash_matches": true,
|
||||
"images_match": true
|
||||
}
|
||||
],
|
||||
"production_mutations": false
|
||||
}
|
||||
|
|
@ -0,0 +1,135 @@
|
|||
{
|
||||
"schema": "statehub.exact-reuse-values-readonly-diff.v1",
|
||||
"status": "passed_images_only",
|
||||
"dryrun_argv": [
|
||||
"helm",
|
||||
"--kubeconfig",
|
||||
"/home/worsch/.kube/config-railiance01",
|
||||
"-n",
|
||||
"state-hub",
|
||||
"upgrade",
|
||||
"state-hub",
|
||||
"deploy/railiance/apps/charts/state-hub",
|
||||
"--reuse-values",
|
||||
"--set-string",
|
||||
"image.tag=main-51bc70d",
|
||||
"--dry-run=server",
|
||||
"--hide-secret",
|
||||
"--no-hooks",
|
||||
"--timeout",
|
||||
"3m"
|
||||
],
|
||||
"production_mutations": false,
|
||||
"hooks_executed": false,
|
||||
"raw_helm_values_release_content_logs_retained": false,
|
||||
"limitations": [
|
||||
"Dry-run admission/render only, not an actual image pull/migration/deployment.",
|
||||
"Helm timeout does not stop a later live migration Job; exact scoped cancellation/quiescence remains required."
|
||||
],
|
||||
"stage": "exact_upgrade_server_dryrun",
|
||||
"objects": [
|
||||
{
|
||||
"api_version": "apps/v1",
|
||||
"kind": "Deployment",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub",
|
||||
"intended_images": [
|
||||
"forgejo.coulomb.social/coulomb/state-hub:main-51bc70d"
|
||||
],
|
||||
"intended_spec_sha256": "sha256:31832c3561806a80344ade835c92d5c01259d808cf4112ba2daf0b3a407d2625",
|
||||
"baseline_object_sha256": "sha256:25ef5a48aac77f327c1cbe51714694d1a78ba6124826b2ac4e372b768fb3ee80",
|
||||
"intended_object_sha256": "sha256:e7820e9f9d21765f11acc8d68a5712249e39913cc7552f19d4a436d939aa9842",
|
||||
"changed_paths": [
|
||||
"/spec/template/spec/containers/0/image"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api_version": "apps/v1",
|
||||
"kind": "Deployment",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-mcp",
|
||||
"intended_images": [
|
||||
"forgejo.coulomb.social/coulomb/state-hub:main-51bc70d"
|
||||
],
|
||||
"intended_spec_sha256": "sha256:499751411c67065a183ad73f5043bc39e3b15519861162cd8aac97eb9e166178",
|
||||
"baseline_object_sha256": "sha256:c1a6b1eb987da62c72386c893894da7a25927800a47057fbad5888acf31136f9",
|
||||
"intended_object_sha256": "sha256:0a773486258bf88ce828bd2fade69635edfc04bb088619b8d430e7ba136df1a0",
|
||||
"changed_paths": [
|
||||
"/spec/template/spec/containers/0/image"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api_version": "batch/v1",
|
||||
"kind": "Job",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-migrate",
|
||||
"intended_images": [
|
||||
"forgejo.coulomb.social/coulomb/state-hub:main-51bc70d"
|
||||
],
|
||||
"intended_spec_sha256": "sha256:2cf9bf6d1f65fd2b0e4f52bf363c5601a2079c5803b5e5eaf7d9c38c28e909af",
|
||||
"baseline_object_sha256": "sha256:99a97fae3a9d6a6b12cd1a5adb7819fe0bda22560aacd24351fb0c4014827147",
|
||||
"intended_object_sha256": "sha256:60a8b9e41f0a09834a9e3c98220b195b48c4342a8939d544ef001487be063385",
|
||||
"changed_paths": [
|
||||
"/spec/template/spec/containers/0/image"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "ConfigMap",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-classification-allowed",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
|
||||
"baseline_object_sha256": "sha256:924d16a0a6b4ba8a46b59f0990dcc2adc6dd813cf5d7d83bdb389844068d7cfd",
|
||||
"intended_object_sha256": "sha256:924d16a0a6b4ba8a46b59f0990dcc2adc6dd813cf5d7d83bdb389844068d7cfd",
|
||||
"changed_paths": []
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "ConfigMap",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-config",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
|
||||
"baseline_object_sha256": "sha256:26707b20933b4f6de78f9059c0efec6df7f0e90c8f1a67db6d2f1ac72e674560",
|
||||
"intended_object_sha256": "sha256:26707b20933b4f6de78f9059c0efec6df7f0e90c8f1a67db6d2f1ac72e674560",
|
||||
"changed_paths": []
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "Service",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:da5895e6aee1f619d16c07dafd4342cf7ec8f9de0944a84979c624a4e9eea22a",
|
||||
"baseline_object_sha256": "sha256:62098bbc3ef6265e072f416ecb11de85d59fce7e2e0d22b2616bd233e720dafe",
|
||||
"intended_object_sha256": "sha256:62098bbc3ef6265e072f416ecb11de85d59fce7e2e0d22b2616bd233e720dafe",
|
||||
"changed_paths": []
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "Service",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-mcp",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:4e04175b03bcd75833109d6843e282cee79d73eae2bc85e36097264b832ba26f",
|
||||
"baseline_object_sha256": "sha256:ab096d239c9cd72e6177a260d9b4d548a7d5b7c0a285c3a11b7267193e336bba",
|
||||
"intended_object_sha256": "sha256:ab096d239c9cd72e6177a260d9b4d548a7d5b7c0a285c3a11b7267193e336bba",
|
||||
"changed_paths": []
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "ServiceAccount",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
|
||||
"baseline_object_sha256": "sha256:750594b51a534d603f50640d02a3c4eec79cc52fe07d5f442102d37b7299adb8",
|
||||
"intended_object_sha256": "sha256:750594b51a534d603f50640d02a3c4eec79cc52fe07d5f442102d37b7299adb8",
|
||||
"changed_paths": []
|
||||
}
|
||||
],
|
||||
"changed_object_count": 3,
|
||||
"intended_diff_only_images": true,
|
||||
"object_identity_set_unchanged": true
|
||||
}
|
||||
|
|
@ -0,0 +1,135 @@
|
|||
{
|
||||
"schema": "statehub.exact-reuse-values-readonly-diff.v1",
|
||||
"status": "passed_images_only",
|
||||
"dryrun_argv": [
|
||||
"helm",
|
||||
"--kubeconfig",
|
||||
"/home/worsch/.kube/config-railiance01",
|
||||
"-n",
|
||||
"state-hub",
|
||||
"upgrade",
|
||||
"state-hub",
|
||||
"deploy/railiance/apps/charts/state-hub",
|
||||
"--reuse-values",
|
||||
"--set-string",
|
||||
"image.tag=main-51bc70d@sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015",
|
||||
"--dry-run=server",
|
||||
"--hide-secret",
|
||||
"--no-hooks",
|
||||
"--timeout",
|
||||
"3m"
|
||||
],
|
||||
"production_mutations": false,
|
||||
"hooks_executed": false,
|
||||
"raw_helm_values_release_content_logs_retained": false,
|
||||
"limitations": [
|
||||
"Dry-run admission/render only, not an actual image pull/migration/deployment.",
|
||||
"Helm timeout does not stop a later live migration Job; exact scoped cancellation/quiescence remains required."
|
||||
],
|
||||
"stage": "exact_upgrade_server_dryrun",
|
||||
"objects": [
|
||||
{
|
||||
"api_version": "apps/v1",
|
||||
"kind": "Deployment",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub",
|
||||
"intended_images": [
|
||||
"forgejo.coulomb.social/coulomb/state-hub:main-51bc70d@sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015"
|
||||
],
|
||||
"intended_spec_sha256": "sha256:2538909a869e66ca9d8104f00be445c1a467de8ea49bc5d4ca21790a35a439d9",
|
||||
"baseline_object_sha256": "sha256:25ef5a48aac77f327c1cbe51714694d1a78ba6124826b2ac4e372b768fb3ee80",
|
||||
"intended_object_sha256": "sha256:01e7278447f3204ec8abfd9a7b5b6be61850995b3e792fc1f97fbc3207536d69",
|
||||
"changed_paths": [
|
||||
"/spec/template/spec/containers/0/image"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api_version": "apps/v1",
|
||||
"kind": "Deployment",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-mcp",
|
||||
"intended_images": [
|
||||
"forgejo.coulomb.social/coulomb/state-hub:main-51bc70d@sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015"
|
||||
],
|
||||
"intended_spec_sha256": "sha256:4caed4f0aed1397ca80d6360d75ea1c9c34eea2670c4bacafc2fb5114bfec4a2",
|
||||
"baseline_object_sha256": "sha256:c1a6b1eb987da62c72386c893894da7a25927800a47057fbad5888acf31136f9",
|
||||
"intended_object_sha256": "sha256:9a4376e004060a4ec2c76784fd50ec6ce05f61b3793f6458625d88122a7b8713",
|
||||
"changed_paths": [
|
||||
"/spec/template/spec/containers/0/image"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api_version": "batch/v1",
|
||||
"kind": "Job",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-migrate",
|
||||
"intended_images": [
|
||||
"forgejo.coulomb.social/coulomb/state-hub:main-51bc70d@sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015"
|
||||
],
|
||||
"intended_spec_sha256": "sha256:8f8760e6b51b38bf576ff34e3038f7339fb86fd2d4796c477641104636770749",
|
||||
"baseline_object_sha256": "sha256:99a97fae3a9d6a6b12cd1a5adb7819fe0bda22560aacd24351fb0c4014827147",
|
||||
"intended_object_sha256": "sha256:6909dca9acd5e1b816491b91b6a32ef6d934e288e2d8d0d3d66fac9fe67468ec",
|
||||
"changed_paths": [
|
||||
"/spec/template/spec/containers/0/image"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "ConfigMap",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-classification-allowed",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
|
||||
"baseline_object_sha256": "sha256:924d16a0a6b4ba8a46b59f0990dcc2adc6dd813cf5d7d83bdb389844068d7cfd",
|
||||
"intended_object_sha256": "sha256:924d16a0a6b4ba8a46b59f0990dcc2adc6dd813cf5d7d83bdb389844068d7cfd",
|
||||
"changed_paths": []
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "ConfigMap",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-config",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
|
||||
"baseline_object_sha256": "sha256:26707b20933b4f6de78f9059c0efec6df7f0e90c8f1a67db6d2f1ac72e674560",
|
||||
"intended_object_sha256": "sha256:26707b20933b4f6de78f9059c0efec6df7f0e90c8f1a67db6d2f1ac72e674560",
|
||||
"changed_paths": []
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "Service",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:da5895e6aee1f619d16c07dafd4342cf7ec8f9de0944a84979c624a4e9eea22a",
|
||||
"baseline_object_sha256": "sha256:62098bbc3ef6265e072f416ecb11de85d59fce7e2e0d22b2616bd233e720dafe",
|
||||
"intended_object_sha256": "sha256:62098bbc3ef6265e072f416ecb11de85d59fce7e2e0d22b2616bd233e720dafe",
|
||||
"changed_paths": []
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "Service",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-mcp",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:4e04175b03bcd75833109d6843e282cee79d73eae2bc85e36097264b832ba26f",
|
||||
"baseline_object_sha256": "sha256:ab096d239c9cd72e6177a260d9b4d548a7d5b7c0a285c3a11b7267193e336bba",
|
||||
"intended_object_sha256": "sha256:ab096d239c9cd72e6177a260d9b4d548a7d5b7c0a285c3a11b7267193e336bba",
|
||||
"changed_paths": []
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "ServiceAccount",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
|
||||
"baseline_object_sha256": "sha256:750594b51a534d603f50640d02a3c4eec79cc52fe07d5f442102d37b7299adb8",
|
||||
"intended_object_sha256": "sha256:750594b51a534d603f50640d02a3c4eec79cc52fe07d5f442102d37b7299adb8",
|
||||
"changed_paths": []
|
||||
}
|
||||
],
|
||||
"changed_object_count": 3,
|
||||
"intended_diff_only_images": true,
|
||||
"object_identity_set_unchanged": true
|
||||
}
|
||||
|
|
@ -0,0 +1,136 @@
|
|||
{
|
||||
"schema": "statehub.exact-reuse-values-readonly-diff.v1",
|
||||
"status": "passed_images_only",
|
||||
"dryrun_argv": [
|
||||
"helm",
|
||||
"--kubeconfig",
|
||||
"/home/worsch/.kube/config-railiance01",
|
||||
"-n",
|
||||
"state-hub",
|
||||
"upgrade",
|
||||
"state-hub",
|
||||
"/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/state-hub-0.1.0.tgz",
|
||||
"--reuse-values",
|
||||
"--set-string",
|
||||
"image.tag=main-51bc70d@sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015",
|
||||
"--dry-run=server",
|
||||
"--hide-secret",
|
||||
"--no-hooks",
|
||||
"--timeout",
|
||||
"3m"
|
||||
],
|
||||
"production_mutations": false,
|
||||
"hooks_executed": false,
|
||||
"raw_helm_values_release_content_logs_retained": false,
|
||||
"limitations": [
|
||||
"Dry-run admission/render only, not an actual image pull/migration/deployment.",
|
||||
"Helm timeout does not stop a later live migration Job; exact scoped cancellation/quiescence remains required."
|
||||
],
|
||||
"chart_archive_sha256": "sha256:b5c0663d830fc8d3b65080f237a0be8d01f8b2f7fec9dc33aeba91b1b6b281d4",
|
||||
"stage": "exact_upgrade_server_dryrun",
|
||||
"objects": [
|
||||
{
|
||||
"api_version": "apps/v1",
|
||||
"kind": "Deployment",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub",
|
||||
"intended_images": [
|
||||
"forgejo.coulomb.social/coulomb/state-hub:main-51bc70d@sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015"
|
||||
],
|
||||
"intended_spec_sha256": "sha256:2538909a869e66ca9d8104f00be445c1a467de8ea49bc5d4ca21790a35a439d9",
|
||||
"baseline_object_sha256": "sha256:25ef5a48aac77f327c1cbe51714694d1a78ba6124826b2ac4e372b768fb3ee80",
|
||||
"intended_object_sha256": "sha256:01e7278447f3204ec8abfd9a7b5b6be61850995b3e792fc1f97fbc3207536d69",
|
||||
"changed_paths": [
|
||||
"/spec/template/spec/containers/0/image"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api_version": "apps/v1",
|
||||
"kind": "Deployment",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-mcp",
|
||||
"intended_images": [
|
||||
"forgejo.coulomb.social/coulomb/state-hub:main-51bc70d@sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015"
|
||||
],
|
||||
"intended_spec_sha256": "sha256:4caed4f0aed1397ca80d6360d75ea1c9c34eea2670c4bacafc2fb5114bfec4a2",
|
||||
"baseline_object_sha256": "sha256:c1a6b1eb987da62c72386c893894da7a25927800a47057fbad5888acf31136f9",
|
||||
"intended_object_sha256": "sha256:9a4376e004060a4ec2c76784fd50ec6ce05f61b3793f6458625d88122a7b8713",
|
||||
"changed_paths": [
|
||||
"/spec/template/spec/containers/0/image"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api_version": "batch/v1",
|
||||
"kind": "Job",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-migrate",
|
||||
"intended_images": [
|
||||
"forgejo.coulomb.social/coulomb/state-hub:main-51bc70d@sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015"
|
||||
],
|
||||
"intended_spec_sha256": "sha256:8f8760e6b51b38bf576ff34e3038f7339fb86fd2d4796c477641104636770749",
|
||||
"baseline_object_sha256": "sha256:99a97fae3a9d6a6b12cd1a5adb7819fe0bda22560aacd24351fb0c4014827147",
|
||||
"intended_object_sha256": "sha256:6909dca9acd5e1b816491b91b6a32ef6d934e288e2d8d0d3d66fac9fe67468ec",
|
||||
"changed_paths": [
|
||||
"/spec/template/spec/containers/0/image"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "ConfigMap",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-classification-allowed",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
|
||||
"baseline_object_sha256": "sha256:924d16a0a6b4ba8a46b59f0990dcc2adc6dd813cf5d7d83bdb389844068d7cfd",
|
||||
"intended_object_sha256": "sha256:924d16a0a6b4ba8a46b59f0990dcc2adc6dd813cf5d7d83bdb389844068d7cfd",
|
||||
"changed_paths": []
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "ConfigMap",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-config",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
|
||||
"baseline_object_sha256": "sha256:26707b20933b4f6de78f9059c0efec6df7f0e90c8f1a67db6d2f1ac72e674560",
|
||||
"intended_object_sha256": "sha256:26707b20933b4f6de78f9059c0efec6df7f0e90c8f1a67db6d2f1ac72e674560",
|
||||
"changed_paths": []
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "Service",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:da5895e6aee1f619d16c07dafd4342cf7ec8f9de0944a84979c624a4e9eea22a",
|
||||
"baseline_object_sha256": "sha256:62098bbc3ef6265e072f416ecb11de85d59fce7e2e0d22b2616bd233e720dafe",
|
||||
"intended_object_sha256": "sha256:62098bbc3ef6265e072f416ecb11de85d59fce7e2e0d22b2616bd233e720dafe",
|
||||
"changed_paths": []
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "Service",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub-mcp",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:4e04175b03bcd75833109d6843e282cee79d73eae2bc85e36097264b832ba26f",
|
||||
"baseline_object_sha256": "sha256:ab096d239c9cd72e6177a260d9b4d548a7d5b7c0a285c3a11b7267193e336bba",
|
||||
"intended_object_sha256": "sha256:ab096d239c9cd72e6177a260d9b4d548a7d5b7c0a285c3a11b7267193e336bba",
|
||||
"changed_paths": []
|
||||
},
|
||||
{
|
||||
"api_version": "v1",
|
||||
"kind": "ServiceAccount",
|
||||
"namespace": "state-hub",
|
||||
"name": "state-hub",
|
||||
"intended_images": [],
|
||||
"intended_spec_sha256": "sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
|
||||
"baseline_object_sha256": "sha256:750594b51a534d603f50640d02a3c4eec79cc52fe07d5f442102d37b7299adb8",
|
||||
"intended_object_sha256": "sha256:750594b51a534d603f50640d02a3c4eec79cc52fe07d5f442102d37b7299adb8",
|
||||
"changed_paths": []
|
||||
}
|
||||
],
|
||||
"changed_object_count": 3,
|
||||
"intended_diff_only_images": true,
|
||||
"object_identity_set_unchanged": true
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"schema": "statehub.exact-reuse-values-readonly-diff.v1",
|
||||
"status": "failed",
|
||||
"dryrun_argv": [
|
||||
"helm",
|
||||
"--kubeconfig",
|
||||
"/home/worsch/.kube/config-railiance01",
|
||||
"-n",
|
||||
"state-hub",
|
||||
"upgrade",
|
||||
"state-hub",
|
||||
"deploy/railiance/apps/charts/state-hub",
|
||||
"--reuse-values",
|
||||
"--set-string",
|
||||
"image.tag=main-51bc70d",
|
||||
"--dry-run=server",
|
||||
"--hide-secret",
|
||||
"--no-hooks",
|
||||
"--timeout",
|
||||
"3m"
|
||||
],
|
||||
"production_mutations": false,
|
||||
"hooks_executed": false,
|
||||
"raw_helm_values_release_content_logs_retained": false,
|
||||
"limitations": [
|
||||
"Dry-run admission/render only, not an actual image pull/migration/deployment.",
|
||||
"Helm timeout does not stop a later live migration Job; exact scoped cancellation/quiescence remains required."
|
||||
],
|
||||
"stage": "exact_upgrade_server_dryrun",
|
||||
"error_class": "Refusal",
|
||||
"error_label": "literal_sensitive_env_refused"
|
||||
}
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
{
|
||||
"observed_at": "2026-10-16T23:43:51.990198+00:00",
|
||||
"production_mutations": false,
|
||||
"secret_values_read": false,
|
||||
"raw_diagnostics_retained": false,
|
||||
"target_node_confirmed": "92.205.62.239",
|
||||
"helm_release": [
|
||||
{
|
||||
"revision": 75,
|
||||
"status": "deployed",
|
||||
"chart": "state-hub-0.1.0",
|
||||
"app_version": "main-5dd3df9",
|
||||
"updated": "2026-10-06T12:02:21.111126728+02:00"
|
||||
}
|
||||
],
|
||||
"deployments": [
|
||||
{
|
||||
"name": "state-hub",
|
||||
"generation": 76,
|
||||
"observed_generation": 76,
|
||||
"ready_replicas": 1,
|
||||
"images": [
|
||||
"forgejo.coulomb.social/coulomb/state-hub:main-7d99282"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "state-hub-mcp",
|
||||
"generation": 48,
|
||||
"observed_generation": 48,
|
||||
"ready_replicas": 1,
|
||||
"images": [
|
||||
"forgejo.coulomb.social/coulomb/state-hub:main-7d99282"
|
||||
]
|
||||
}
|
||||
],
|
||||
"existing_migration_job": {
|
||||
"lookup_exit": 1,
|
||||
"state": "absent"
|
||||
},
|
||||
"headroom_exit": 0,
|
||||
"headroom": {
|
||||
"ok": true,
|
||||
"reasons": [],
|
||||
"notes": [
|
||||
"Aggregate remaining millicores is not a kube-scheduler guarantee.",
|
||||
"Preflight does not lower requests and does not start Helm."
|
||||
],
|
||||
"observed_at": "2026-10-16T23:43:54.278373+00:00",
|
||||
"remaining_cpu_m": 420
|
||||
},
|
||||
"health": {
|
||||
"status": "ok",
|
||||
"instance_role": "primary",
|
||||
"instance_label": "railiance01"
|
||||
},
|
||||
"db_schema": {
|
||||
"source": "normal_owner_public_health_projection",
|
||||
"status": "ok",
|
||||
"applied": "b3c4d5e6f7a8",
|
||||
"expected": "b3c4d5e6f7a8"
|
||||
},
|
||||
"schema": "receiver-fresh-public-baseline.v1",
|
||||
"workload_image_identity": [
|
||||
{
|
||||
"pod_name": "state-hub-5d977977f9-bd2bs",
|
||||
"pod_uid": "160a2d7c-dba2-4a5c-983d-442f78cd1151",
|
||||
"containers": [
|
||||
{
|
||||
"name": "state-hub",
|
||||
"image": "forgejo.coulomb.social/coulomb/state-hub:main-7d99282",
|
||||
"image_id": "forgejo.coulomb.social/coulomb/state-hub@sha256:b128ac983a1045acb2ec245e439846204a924c413d1bbc3b710b6f3fafe39313",
|
||||
"ready": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pod_name": "state-hub-mcp-6c4757bb75-jx7f9",
|
||||
"pod_uid": "36e68593-2ce3-474d-aacb-eba5bd04b84b",
|
||||
"containers": [
|
||||
{
|
||||
"name": "state-hub-mcp",
|
||||
"image": "forgejo.coulomb.social/coulomb/state-hub:main-7d99282",
|
||||
"image_id": "forgejo.coulomb.social/coulomb/state-hub@sha256:b128ac983a1045acb2ec245e439846204a924c413d1bbc3b710b6f3fafe39313",
|
||||
"ready": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
"proposal_id": "STATE-WP-0095-T06-cluster-frozen-receiving-r1",
|
||||
"disposition": "pending",
|
||||
"outcome": "pending",
|
||||
"proposal_ref": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/proposal-metadata.json",
|
||||
"original_revision": 1,
|
||||
"original_digest_sha256": "5bef9e7818ce1ebc64b81e300b6b40dcfc710a8625d6e0595534f8284dc2052d",
|
||||
"original_digest": "5bef9e7818ce1ebc64b81e300b6b40dcfc710a8625d6e0595534f8284dc2052d",
|
||||
"current_revision": 4,
|
||||
"current_digest_sha256": "63a02e8296d126c0158b7eb2c4ce79c7eeb6f8d6f61298d473c1065c7557ba32",
|
||||
"target": "railiance01 state-hub release/API/MCP and exact-new-trial migration Job only",
|
||||
"expected_result": "Normal owner image promotion makes exact frozen cluster receiving available; API/MCP ready, expected c4 schema and exact three historical parents/15 tasks preserved; only then is later registrar admission eligible. No original TLS/identity native acceptance is inferred.",
|
||||
"verification_ref": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/FINAL-PROPOSAL.md",
|
||||
"rollback_ref": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/MIGRATION-JOB-RECOVERY.md",
|
||||
"cost_estimate_eur": null,
|
||||
"risk_estimate_eur": null,
|
||||
"cost_estimate": "Unknown attributable execution/network/operator recovery cost on existing infrastructure; no zero-cost claim or budget reservation inferred.",
|
||||
"risk_estimate": "Unpriced production coordination outage, message migration locks/data compatibility, retained active migration Job, uncertain connection/lock mapping and recovery time; three-minute Helm wait is not a bound on outage or DB effects. Explicit supervised risk disposition required.",
|
||||
"supervisor": "Bernd Worsch",
|
||||
"approval_ref": null,
|
||||
"approved_revision": null,
|
||||
"approved_digest_sha256": null,
|
||||
"executed_revision": null,
|
||||
"executed_digest_sha256": null,
|
||||
"refinement_or_rescue": true,
|
||||
"promotion_evidence": false,
|
||||
"reason": "Exact native rollout proposal remains pending. Source preparation, synthetic compatibility and public artifact verification are evidence only; earlier preparation failures and revisions remain one trial.",
|
||||
"revisions": [
|
||||
{
|
||||
"revision": 1,
|
||||
"proposal_ref": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/REVIEW.md",
|
||||
"digest_sha256": "5bef9e7818ce1ebc64b81e300b6b40dcfc710a8625d6e0595534f8284dc2052d",
|
||||
"disposition": "not_submitted_or_unadjudicated",
|
||||
"executed": false
|
||||
},
|
||||
{
|
||||
"revision": 2,
|
||||
"proposal_ref": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r2/REVIEW.md",
|
||||
"digest_sha256": "c8f13ed5d67d4743ea8e81bf720367022c820a060d7b225e84338eab2907493f",
|
||||
"disposition": "not_submitted_or_unadjudicated",
|
||||
"executed": false
|
||||
},
|
||||
{
|
||||
"revision": 3,
|
||||
"proposal_ref": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r3-readiness/ROLLOUT-SUPPLEMENT.md",
|
||||
"digest_sha256": "df2962fd1588784a987e37932bd67f03f6248ea6384cf4bbb74ad1fe2e26be2b",
|
||||
"disposition": "not_submitted_or_unadjudicated",
|
||||
"executed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"schema": "custodian.pending-supervision-addition.v1",
|
||||
"status": "candidate_only_not_applied",
|
||||
"target_record": ".kaizen/agents/custodian-codex/supervision.json",
|
||||
"expected_record_sha256": "407340493ffe584e9a245911d01f60e8f9ec1478f84478388f0210fd0c8b1a6d",
|
||||
"operation": "append_one_proposal_if_ID_absent_and_record_preimage_matches",
|
||||
"entry_ref": "pending-supervision-entry.json",
|
||||
"entry_sha256": "8231ccf6534f9521e7477d9b0d013a0087b7f7173b94a31a396f04e159fbf1d1",
|
||||
"preserve_authority_fields": [
|
||||
"agent_id",
|
||||
"scope",
|
||||
"mode",
|
||||
"supervisor",
|
||||
"runtime_enforcement",
|
||||
"autopilot_grant",
|
||||
"cost_budget_eur",
|
||||
"risk_limit_eur"
|
||||
],
|
||||
"authority_changes": false,
|
||||
"approval_or_execution_inferred": false
|
||||
}
|
||||
|
|
@ -0,0 +1,295 @@
|
|||
{
|
||||
"schema": "custodian.supervised-rollout-proposal.v1",
|
||||
"proposal_id": "STATE-WP-0095-T06-cluster-frozen-receiving-r1",
|
||||
"revision": 4,
|
||||
"status": "prepared_pending_supervisor_review_not_authorized",
|
||||
"prior_revisions_retained": [
|
||||
1,
|
||||
2,
|
||||
3
|
||||
],
|
||||
"original_revision": 1,
|
||||
"original_digest_sha256": "5bef9e7818ce1ebc64b81e300b6b40dcfc710a8625d6e0595534f8284dc2052d",
|
||||
"target": {
|
||||
"host": "railiance01",
|
||||
"node_ip": "92.205.62.239",
|
||||
"namespace": "state-hub",
|
||||
"release": "state-hub",
|
||||
"deployments": [
|
||||
"state-hub",
|
||||
"state-hub-mcp"
|
||||
],
|
||||
"migration_job_name": "state-hub-migrate",
|
||||
"migration_job_uid": "must_capture_exact_new_trial_UID_after_approved_creation_before_any_conditional_cancellation"
|
||||
},
|
||||
"source_revision": "51bc70d1ff8f25450a8650d8e50caf053093a02e",
|
||||
"readiness_source_patch_sha256": "4c52fd5a102df43ceb8e007d93d34efe861a3b321527cf5f3e195e35113c36a0",
|
||||
"image": {
|
||||
"tag": "main-51bc70d",
|
||||
"digest": "sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015",
|
||||
"ci_task": 12624,
|
||||
"ci_status": "success",
|
||||
"selected_source_files": 233,
|
||||
"package_metadata_records": 86,
|
||||
"floating_build_origins": "unknown_observed_bytes_bound_to_manifest",
|
||||
"exact_pull_reference": "forgejo.coulomb.social/coulomb/state-hub:main-51bc70d@sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015"
|
||||
},
|
||||
"expected_result": "Normal owner image promotion makes exact frozen cluster receiving available; API/MCP ready, expected c4 schema and exact three historical parents/15 tasks preserved; only then is later registrar admission eligible. No original TLS/identity native acceptance is inferred.",
|
||||
"verification_ref": "../r3-readiness/ROLLOUT-SUPPLEMENT.md; MIGRATION-JOB-RECOVERY.md",
|
||||
"rollback_ref": "MIGRATION-JOB-RECOVERY.md",
|
||||
"observed_rollback_baseline": {
|
||||
"helm_revision": 75,
|
||||
"image_tag": "main-7d99282",
|
||||
"freshness": "must_refresh_before_trial",
|
||||
"schema_downgrade": "forbidden_automatic",
|
||||
"migration_job_quiescence_required": true,
|
||||
"image_digest": "sha256:b128ac983a1045acb2ec245e439846204a924c413d1bbc3b710b6f3fafe39313",
|
||||
"observed_at": "2026-10-16T23:43:51.990198+00:00",
|
||||
"current_schema": "b3c4d5e6f7a8",
|
||||
"existing_migration_job": "absent",
|
||||
"remaining_cpu_m": 420
|
||||
},
|
||||
"requested_conditional_recovery_scope": [
|
||||
"Exact-new-trial Job UID/image/ownership-bound foreground cancellation if still active after failed Helm, with UID precondition",
|
||||
"Observation of only that bound Job and its owned Pod UIDs and inability to recreate",
|
||||
"Private owner metadata-only verification of bound migration connections/transactions/locks quiescent",
|
||||
"Image-only owner rollback only after quiescence and actual-schema assessment; no automatic schema downgrade"
|
||||
],
|
||||
"explicit_exclusions": [
|
||||
"No deployment before exact supervisor disposition",
|
||||
"No Repo Manager admission before delivered receiver proof",
|
||||
"No Secret value read/write, native credential request or guard change",
|
||||
"No broad backend cancellation, namespace cleanup, finalizer removal or old-data restore",
|
||||
"No owner-native TLS/recovery/private-admission claim"
|
||||
],
|
||||
"cost_estimate_eur": null,
|
||||
"risk_estimate_eur": null,
|
||||
"cost_estimate": "Unknown attributable execution/network/operator recovery cost on existing infrastructure; no zero-cost claim or budget reservation inferred.",
|
||||
"risk_estimate": "Unpriced production coordination outage, message migration locks/data compatibility, retained active migration Job, uncertain connection/lock mapping and recovery time; three-minute Helm wait is not a bound on outage or DB effects. Explicit supervised risk disposition required.",
|
||||
"remaining_readiness": [
|
||||
"Fresh execution-time release/image/schema/headroom and prior/new Job identity baseline",
|
||||
"Exact supervisor disposition including conditional Job cancellation scope, mapping-unknown attended recovery fallback and unpriced risk"
|
||||
],
|
||||
"approval_ref": null,
|
||||
"approved_revision": null,
|
||||
"approved_digest_sha256": null,
|
||||
"executed_revision": null,
|
||||
"executed_digest_sha256": null,
|
||||
"production_execution_started": false,
|
||||
"refinement_or_rescue": true,
|
||||
"promotion_evidence": false,
|
||||
"artifacts": [
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/REVIEW.md",
|
||||
"sha256": "sha256:5bef9e7818ce1ebc64b81e300b6b40dcfc710a8625d6e0595534f8284dc2052d"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r2/REVIEW.md",
|
||||
"sha256": "sha256:c8f13ed5d67d4743ea8e81bf720367022c820a060d7b225e84338eab2907493f"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r3-readiness/ROLLOUT-SUPPLEMENT.md",
|
||||
"sha256": "sha256:df2962fd1588784a987e37932bd67f03f6248ea6384cf4bbb74ad1fe2e26be2b"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r3-readiness/IMAGE-RECEIPT-SUPPLEMENT.md",
|
||||
"sha256": "sha256:dbd5d08cfe9e19499634a7f3de756704697712caa041b05814fc211b90820fe6"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r3-readiness/source-patch-manifest.json",
|
||||
"sha256": "sha256:98211e65bebeee2c25ca75c6b9f0bc45128093baaba02069b6c41a15be32fe74"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/MIGRATION-JOB-RECOVERY.md",
|
||||
"sha256": "sha256:bfbd229bcb534c4f104b40090dba6c2dd0e2e040dce627e923143f81035880bc"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-17/statehub-public-image-inspection.json",
|
||||
"sha256": "sha256:5d182e5b0a3e9462024c0b9a123d631215f1b2d0568f18060b10a310a8251741"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-17/statehub-anonymous-registry-metadata.json",
|
||||
"sha256": "sha256:30f80aeb153bfe33076e2e5b94ae127e97ed38c0e1d033dabfd94934cef8be9a"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-17/migration-compat-r1-result.json",
|
||||
"sha256": "sha256:c290afa92777c4635a5ee06c1bf6c3f28b1a265b6bff6a91f5aee45f799c2923"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-17/migration-compat-r1-cleanup.json",
|
||||
"sha256": "sha256:1d7e0830460c0e2c537027f94242b01661702aec1b2f93aa9041af6eb14cde21"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/FINAL-PROPOSAL.md",
|
||||
"sha256": "sha256:2b2909528d37831bdff783b2ff0d764896ddb624caf743812353f993b401874f"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/chart-package-manifest.json",
|
||||
"sha256": "sha256:5ed8dc93e5e304edfbe159b1da74a19c7ae3709e3cd6418055360efe50b5d730"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/state-hub-0.1.0.tgz",
|
||||
"sha256": "sha256:b5c0663d830fc8d3b65080f237a0be8d01f8b2f7fec9dc33aeba91b1b6b281d4"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/reuse_values_dryrun.py",
|
||||
"sha256": "sha256:17ae578ded53ce1cbf69c15dfd0a6629906548666712351ae0fb9bd5c4e05690"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/test_reuse_values_dryrun.py",
|
||||
"sha256": "sha256:65c2d1306b5c03fcb53351839c5960ae7382b280794642f484a06579076d81f0"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/exact-reuse-values-dryrun-result.json",
|
||||
"sha256": "sha256:0fa4cf5f7dce1cb7ef738b7ed16c7af8530197a36e830c741bfaeb8ea4460c81"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/exact-reuse-values-dryrun-result-2.json",
|
||||
"sha256": "sha256:b2e97bd92ec10ac0b6bb6c00a50643665ecd7d960125cdfb497f4ffcfdc1e78c"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/exact-reuse-values-dryrun-result-3-digest-pinned.json",
|
||||
"sha256": "sha256:3bc7aab8b98a8a8fefcacab49757e072937f1a2976a23449c20bb93203085d77"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/fresh-public-baseline.json",
|
||||
"sha256": "sha256:594cc1ef68599b58b59ed02ddac030ff4ed0d866353140a3a663aaa47c554369"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/exact-reuse-values-dryrun-result-4-pinned-package.json",
|
||||
"sha256": "sha256:73f8ff4094a929c2ec87e28487aa0bc73faa6a02d9377a9ccaad40295d1a084d"
|
||||
},
|
||||
{
|
||||
"path": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/chart-package-render-parity.json",
|
||||
"sha256": "sha256:69dd2c671d933bec502dc05205797cfa637a2cfa17e6d5701118f3bf30f5c488"
|
||||
}
|
||||
],
|
||||
"current_readiness_source_revision": "086d79a2736e34b916bd7de3c8a65e2ea38a3d64",
|
||||
"final_proposal_ref": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/FINAL-PROPOSAL.md",
|
||||
"exact_reuse_values_dryrun": {
|
||||
"status": "passed_images_only",
|
||||
"object_count": 8,
|
||||
"changed_objects": 3,
|
||||
"only_changed_paths": "API/MCP/migration Job container image fields",
|
||||
"result_ref": "docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/exact-reuse-values-dryrun-result-4-pinned-package.json",
|
||||
"hook_execution": false,
|
||||
"pinned_chart_archive_sha256": "sha256:b5c0663d830fc8d3b65080f237a0be8d01f8b2f7fec9dc33aeba91b1b6b281d4",
|
||||
"package_source_chart_parity": "all8identity/object/spec/image_matches"
|
||||
},
|
||||
"chart_package": {
|
||||
"sha256": "sha256:b5c0663d830fc8d3b65080f237a0be8d01f8b2f7fec9dc33aeba91b1b6b281d4",
|
||||
"local_path": "/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/state-hub-0.1.0.tgz",
|
||||
"intended_remote_path": "/tmp/statehub-frozen-receiver-b5c0663d830f/state-hub-0.1.0.tgz",
|
||||
"staged": false
|
||||
},
|
||||
"execution_commands": [
|
||||
[
|
||||
"ssh",
|
||||
"railiance01",
|
||||
"KUBECONFIG=/etc/rancher/k3s/k3s.yaml helm -n state-hub upgrade state-hub /tmp/statehub-frozen-receiver-b5c0663d830f/state-hub-0.1.0.tgz --reuse-values --set-string image.tag=main-51bc70d@sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015 --atomic --timeout 3m"
|
||||
]
|
||||
],
|
||||
"rollback_commands": [
|
||||
[
|
||||
"ssh",
|
||||
"railiance01",
|
||||
"KUBECONFIG=/etc/rancher/k3s/k3s.yaml helm -n state-hub rollback state-hub 75 --no-hooks --wait --timeout 3m"
|
||||
]
|
||||
],
|
||||
"job_timeout_limit": "No activeDeadlineSeconds; Helm timeout/atomic is not Job cancellation, outage bound or schema rollback.",
|
||||
"database_quiescence_mapping_available": "unknown; require existing private owner path or STOP attended owner recovery; no credential grant/framework",
|
||||
"fresh_baseline": {
|
||||
"observed_at": "2026-10-16T23:43:51.990198+00:00",
|
||||
"production_mutations": false,
|
||||
"secret_values_read": false,
|
||||
"raw_diagnostics_retained": false,
|
||||
"target_node_confirmed": "92.205.62.239",
|
||||
"helm_release": [
|
||||
{
|
||||
"revision": 75,
|
||||
"status": "deployed",
|
||||
"chart": "state-hub-0.1.0",
|
||||
"app_version": "main-5dd3df9",
|
||||
"updated": "2026-10-06T12:02:21.111126728+02:00"
|
||||
}
|
||||
],
|
||||
"deployments": [
|
||||
{
|
||||
"name": "state-hub",
|
||||
"generation": 76,
|
||||
"observed_generation": 76,
|
||||
"ready_replicas": 1,
|
||||
"images": [
|
||||
"forgejo.coulomb.social/coulomb/state-hub:main-7d99282"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "state-hub-mcp",
|
||||
"generation": 48,
|
||||
"observed_generation": 48,
|
||||
"ready_replicas": 1,
|
||||
"images": [
|
||||
"forgejo.coulomb.social/coulomb/state-hub:main-7d99282"
|
||||
]
|
||||
}
|
||||
],
|
||||
"existing_migration_job": {
|
||||
"lookup_exit": 1,
|
||||
"state": "absent"
|
||||
},
|
||||
"headroom_exit": 0,
|
||||
"headroom": {
|
||||
"ok": true,
|
||||
"reasons": [],
|
||||
"notes": [
|
||||
"Aggregate remaining millicores is not a kube-scheduler guarantee.",
|
||||
"Preflight does not lower requests and does not start Helm."
|
||||
],
|
||||
"observed_at": "2026-10-16T23:43:54.278373+00:00",
|
||||
"remaining_cpu_m": 420
|
||||
},
|
||||
"health": {
|
||||
"status": "ok",
|
||||
"instance_role": "primary",
|
||||
"instance_label": "railiance01"
|
||||
},
|
||||
"db_schema": {
|
||||
"source": "normal_owner_public_health_projection",
|
||||
"status": "ok",
|
||||
"applied": "b3c4d5e6f7a8",
|
||||
"expected": "b3c4d5e6f7a8"
|
||||
},
|
||||
"schema": "receiver-fresh-public-baseline.v1",
|
||||
"workload_image_identity": [
|
||||
{
|
||||
"pod_name": "state-hub-5d977977f9-bd2bs",
|
||||
"pod_uid": "160a2d7c-dba2-4a5c-983d-442f78cd1151",
|
||||
"containers": [
|
||||
{
|
||||
"name": "state-hub",
|
||||
"image": "forgejo.coulomb.social/coulomb/state-hub:main-7d99282",
|
||||
"image_id": "forgejo.coulomb.social/coulomb/state-hub@sha256:b128ac983a1045acb2ec245e439846204a924c413d1bbc3b710b6f3fafe39313",
|
||||
"ready": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pod_name": "state-hub-mcp-6c4757bb75-jx7f9",
|
||||
"pod_uid": "36e68593-2ce3-474d-aacb-eba5bd04b84b",
|
||||
"containers": [
|
||||
{
|
||||
"name": "state-hub-mcp",
|
||||
"image": "forgejo.coulomb.social/coulomb/state-hub:main-7d99282",
|
||||
"image_id": "forgejo.coulomb.social/coulomb/state-hub@sha256:b128ac983a1045acb2ec245e439846204a924c413d1bbc3b710b6f3fafe39313",
|
||||
"ready": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"read_only_helper_tests": {
|
||||
"passed": 4,
|
||||
"duration_seconds": 0.08,
|
||||
"scope": "isolated --noconftest; exact readonly argv/image/nonimage delta and credential-coordinate negative controls"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,121 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Read-only exact owner Helm reuse-values render/diff; no raw output retained."""
|
||||
import copy
|
||||
import hashlib
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
import re
|
||||
import subprocess
|
||||
import yaml
|
||||
OWNER=Path('/home/worsch/state-hub')
|
||||
KUBE='/home/worsch/.kube/config-railiance01'
|
||||
CHART=str(Path(__file__).resolve().parent/'state-hub-0.1.0.tgz')
|
||||
CHART_SHA256='b5c0663d830fc8d3b65080f237a0be8d01f8b2f7fec9dc33aeba91b1b6b281d4'
|
||||
TAG='main-51bc70d@sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015'
|
||||
HELM=['helm','--kubeconfig',KUBE,'-n','state-hub']
|
||||
DRYRUN=HELM+['upgrade','state-hub',CHART,'--reuse-values','--set-string','image.tag='+TAG,
|
||||
'--dry-run=server','--hide-secret','--no-hooks','--timeout','3m']
|
||||
PUBLIC_COORDINATES={'OPENBAO_K8S_TOKEN_PATH':'/var/run/secrets/openbao/token',
|
||||
'FORGE_READ_SECRET_PATH':'platform/data/workloads/state-hub/forge-derivation',
|
||||
'FORGE_READ_SECRET_KEY':'FORGE_READ_TOKEN'}
|
||||
ALLOWED={'ConfigMap','Deployment','Job','Service','ServiceAccount','Namespace','Ingress'}
|
||||
LIMIT=2*1024*1024
|
||||
class Refusal(RuntimeError):pass
|
||||
|
||||
def digest(obj):return 'sha256:'+hashlib.sha256(json.dumps(obj,sort_keys=True,separators=(',',':')).encode()).hexdigest()
|
||||
|
||||
def parse(raw):
|
||||
if len(raw)>LIMIT:raise Refusal('render_size_refused')
|
||||
result=[]
|
||||
for obj in yaml.safe_load_all(raw):
|
||||
if not obj:continue
|
||||
if not isinstance(obj,dict) or obj.get('kind') not in ALLOWED:raise Refusal('unexpected_or_secret_resource_refused')
|
||||
result.append(obj)
|
||||
return result
|
||||
|
||||
def sections(raw):
|
||||
text=raw.decode()
|
||||
if '\nMANIFEST:\n' not in text:raise Refusal('helm_render_sections_unrecognized')
|
||||
before,manifest=text.split('\nMANIFEST:\n',1)
|
||||
manifest=manifest.split('\nNOTES:',1)[0]
|
||||
hooks=before.split('\nHOOKS:\n',1)[1] if '\nHOOKS:\n' in before else ''
|
||||
return parse(hooks)+parse(manifest)
|
||||
|
||||
def identity(obj):
|
||||
meta=obj.get('metadata') or {}
|
||||
return (obj['apiVersion'],obj['kind'],meta.get('namespace') or ('' if obj['kind']=='Namespace' else 'state-hub'),meta['name'])
|
||||
|
||||
def diff_paths(a,b,prefix=''):
|
||||
if type(a)!=type(b):return [prefix]
|
||||
if isinstance(a,dict):
|
||||
paths=[]
|
||||
for key in sorted(set(a)|set(b)):
|
||||
path=prefix+'/'+key.replace('~','~0').replace('/','~1')
|
||||
paths.extend([path] if key not in a or key not in b else diff_paths(a[key],b[key],path))
|
||||
return paths
|
||||
if isinstance(a,list):
|
||||
if len(a)!=len(b):return [prefix]
|
||||
return [p for i,(x,y) in enumerate(zip(a,b)) for p in diff_paths(x,y,prefix+'/'+str(i))]
|
||||
return [] if a==b else [prefix]
|
||||
|
||||
def compare(old,new):
|
||||
baseline={identity(o):o for o in old};intended={identity(o):o for o in new}
|
||||
if len(baseline)!=len(old) or len(intended)!=len(new):raise Refusal('duplicate_object_identity')
|
||||
rows=[]
|
||||
for key in sorted(set(baseline)|set(intended)):
|
||||
a=baseline.get(key);b=intended.get(key);paths=diff_paths(a,b)
|
||||
images=[]
|
||||
if b and b['kind'] in {'Deployment','Job'}:
|
||||
spec=b.get('spec',{}).get('template',{}).get('spec',{})
|
||||
for container in (spec.get('containers',[])+spec.get('initContainers',[])):
|
||||
image=container.get('image','')
|
||||
if not re.fullmatch(r'forgejo\.coulomb\.social/coulomb/state-hub:main-[0-9a-f]{7}(?:@sha256:[0-9a-f]{64})?',image):raise Refusal('unexpected_image_refused')
|
||||
images.append(image)
|
||||
for env in container.get('env',[]):
|
||||
if 'value' in env and re.search(r'PASSWORD|TOKEN|SECRET|DATABASE_URL',env.get('name',''),re.I):
|
||||
if env.get('name') not in PUBLIC_COORDINATES or env['value']!=PUBLIC_COORDINATES[env['name']]:raise Refusal('literal_sensitive_env_refused')
|
||||
rows.append({'api_version':key[0],'kind':key[1],'namespace':key[2],'name':key[3],
|
||||
'intended_images':images,'intended_spec_sha256':digest(b.get('spec',{})) if b else None,
|
||||
'baseline_object_sha256':digest(a) if a else None,'intended_object_sha256':digest(b) if b else None,
|
||||
'changed_paths':paths})
|
||||
image_path=re.compile(r'^/spec/template/spec/(?:initContainers|containers)/[0-9]+/image$')
|
||||
only_images=all(image_path.fullmatch(p) for row in rows for p in row['changed_paths'])
|
||||
return {'objects':rows,'changed_object_count':sum(bool(r['changed_paths']) for r in rows),
|
||||
'intended_diff_only_images':only_images,'object_identity_set_unchanged':set(baseline)==set(intended)}
|
||||
|
||||
def command(args):
|
||||
env=dict(os.environ);env['KUBECONFIG']=KUBE
|
||||
p=subprocess.run(args,cwd=OWNER,env=env,capture_output=True,timeout=45)
|
||||
if len(p.stdout)>LIMIT:raise Refusal('command_output_size_refused')
|
||||
if p.returncode:
|
||||
lower=p.stderr.decode(errors='replace').lower()
|
||||
label=next((label for marker,label in [('reject-secret-last-applied','secret_annotation_policy_refused'),('forbidden','admission_or_auth_refused'),('cannot patch','patch_validation_refused'),('is invalid','resource_validation_refused'),('timeout','bounded_timeout'),('connection refused','api_unavailable')] if marker in lower),'unknown_refusal')
|
||||
raise Refusal(label)
|
||||
return p.stdout
|
||||
|
||||
def main():
|
||||
result={'schema':'statehub.exact-reuse-values-readonly-diff.v1','status':'failed',
|
||||
'dryrun_argv':DRYRUN,'production_mutations':False,'hooks_executed':False,
|
||||
'raw_helm_values_release_content_logs_retained':False,
|
||||
'limitations':['Dry-run admission/render only, not an actual image pull/migration/deployment.',
|
||||
'Helm timeout does not stop a later live migration Job; exact scoped cancellation/quiescence remains required.']}
|
||||
try:
|
||||
archive=Path(CHART)
|
||||
if archive.is_symlink() or not archive.is_file() or hashlib.sha256(archive.read_bytes()).hexdigest()!=CHART_SHA256:raise Refusal('reviewed_chart_archive_drift')
|
||||
result['chart_archive_sha256']='sha256:'+CHART_SHA256
|
||||
nodes=json.loads(command(['kubectl','--kubeconfig',KUBE,'get','nodes','-o','json']))
|
||||
if not any(a.get('address')=='92.205.62.239' for n in nodes.get('items',[]) for a in n.get('status',{}).get('addresses',[])):raise Refusal('target_identity_refused')
|
||||
result['stage']='baseline_release_manifest'
|
||||
old=parse(command(HELM+['get','manifest','state-hub']))
|
||||
result['stage']='baseline_release_hooks'
|
||||
old+=parse(command(HELM+['get','hooks','state-hub']))
|
||||
result['stage']='exact_upgrade_server_dryrun'
|
||||
new=sections(command(DRYRUN))
|
||||
result.update(compare(old,new));result['status']='passed_images_only' if result['intended_diff_only_images'] and result['object_identity_set_unchanged'] else 'review_nonimage_delta_required'
|
||||
except (Refusal,subprocess.TimeoutExpired,ValueError,yaml.YAMLError) as error:
|
||||
result['error_class']=type(error).__name__
|
||||
result['error_label']=str(error) if isinstance(error,Refusal) else 'bounded_parse_or_command_failure'
|
||||
print(json.dumps(result,indent=2))
|
||||
return int(result['status']!='passed_images_only')
|
||||
if __name__=='__main__':raise SystemExit(main())
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
{
|
||||
"schema": "statehub-final-rollout-review-freeze.v1",
|
||||
"stable_proposal_id": "STATE-WP-0095-T06-cluster-frozen-receiving-r1",
|
||||
"revision": 4,
|
||||
"proposal_metadata_sha256": "63a02e8296d126c0158b7eb2c4ce79c7eeb6f8d6f61298d473c1065c7557ba32",
|
||||
"files": [
|
||||
{
|
||||
"path": "FINAL-PROPOSAL.md",
|
||||
"sha256": "sha256:2b2909528d37831bdff783b2ff0d764896ddb624caf743812353f993b401874f"
|
||||
},
|
||||
{
|
||||
"path": "proposal-metadata.json",
|
||||
"sha256": "sha256:63a02e8296d126c0158b7eb2c4ce79c7eeb6f8d6f61298d473c1065c7557ba32"
|
||||
},
|
||||
{
|
||||
"path": "pending-supervision-entry.json",
|
||||
"sha256": "sha256:8231ccf6534f9521e7477d9b0d013a0087b7f7173b94a31a396f04e159fbf1d1"
|
||||
},
|
||||
{
|
||||
"path": "pending-supervision-record-addition.json",
|
||||
"sha256": "sha256:f7764c916cef5fff39c406909fe195ca3478a8ffafdad22aabe8776458209c41"
|
||||
},
|
||||
{
|
||||
"path": "MIGRATION-JOB-RECOVERY.md",
|
||||
"sha256": "sha256:bfbd229bcb534c4f104b40090dba6c2dd0e2e040dce627e923143f81035880bc"
|
||||
},
|
||||
{
|
||||
"path": "chart-package-manifest.json",
|
||||
"sha256": "sha256:5ed8dc93e5e304edfbe159b1da74a19c7ae3709e3cd6418055360efe50b5d730"
|
||||
},
|
||||
{
|
||||
"path": "state-hub-0.1.0.tgz",
|
||||
"sha256": "sha256:b5c0663d830fc8d3b65080f237a0be8d01f8b2f7fec9dc33aeba91b1b6b281d4"
|
||||
},
|
||||
{
|
||||
"path": "reuse_values_dryrun.py",
|
||||
"sha256": "sha256:17ae578ded53ce1cbf69c15dfd0a6629906548666712351ae0fb9bd5c4e05690"
|
||||
},
|
||||
{
|
||||
"path": "test_reuse_values_dryrun.py",
|
||||
"sha256": "sha256:65c2d1306b5c03fcb53351839c5960ae7382b280794642f484a06579076d81f0"
|
||||
},
|
||||
{
|
||||
"path": "exact-reuse-values-dryrun-result-3-digest-pinned.json",
|
||||
"sha256": "sha256:3bc7aab8b98a8a8fefcacab49757e072937f1a2976a23449c20bb93203085d77"
|
||||
},
|
||||
{
|
||||
"path": "exact-reuse-values-dryrun-result-4-pinned-package.json",
|
||||
"sha256": "sha256:73f8ff4094a929c2ec87e28487aa0bc73faa6a02d9377a9ccaad40295d1a084d"
|
||||
},
|
||||
{
|
||||
"path": "fresh-public-baseline.json",
|
||||
"sha256": "sha256:594cc1ef68599b58b59ed02ddac030ff4ed0d866353140a3a663aaa47c554369"
|
||||
},
|
||||
{
|
||||
"path": "chart-package-render-parity.json",
|
||||
"sha256": "sha256:69dd2c671d933bec502dc05205797cfa637a2cfa17e6d5701118f3bf30f5c488"
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
|
@ -0,0 +1,30 @@
|
|||
import importlib.util
|
||||
from pathlib import Path
|
||||
import copy
|
||||
import pytest
|
||||
spec=importlib.util.spec_from_file_location('reuse_values',Path(__file__).parent/'reuse_values_dryrun.py')
|
||||
mod=importlib.util.module_from_spec(spec);spec.loader.exec_module(mod)
|
||||
def deployment(tag):return {'apiVersion':'apps/v1','kind':'Deployment','metadata':{'name':'state-hub'},'spec':{'template':{'spec':{'containers':[{'name':'api','image':'forgejo.coulomb.social/coulomb/state-hub:'+tag}]}}}}
|
||||
def test_only_images_diff_and_fixed_readonly_command():
|
||||
result=mod.compare([deployment('main-7d99282')],[deployment('main-51bc70d')])
|
||||
assert result['intended_diff_only_images'] and result['object_identity_set_unchanged']
|
||||
assert result['objects'][0]['changed_paths']==['/spec/template/spec/containers/0/image']
|
||||
assert '--dry-run=server' in mod.DRYRUN and '--hide-secret' in mod.DRYRUN and '--no-hooks' in mod.DRYRUN
|
||||
assert '--force' not in mod.DRYRUN and '--install' not in mod.DRYRUN
|
||||
assert '--reuse-values' in mod.DRYRUN
|
||||
|
||||
def test_nonimage_delta_refuses_images_only_claim():
|
||||
new=deployment('main-51bc70d');new['spec']['replicas']=2
|
||||
assert not mod.compare([deployment('main-7d99282')],[new])['intended_diff_only_images']
|
||||
|
||||
def test_secret_and_sensitive_literal_refused():
|
||||
with pytest.raises(mod.Refusal,match='unexpected_or_secret_resource_refused'):mod.parse(b'apiVersion: v1\nkind: Secret\nmetadata: {name: fixture}\n')
|
||||
new=deployment('main-51bc70d');new['spec']['template']['spec']['containers'][0]['env']=[{'name':'DATABASE_URL','value':'synthetic-not-a-credential'}]
|
||||
with pytest.raises(mod.Refusal,match='literal_sensitive_env_refused'):mod.compare([], [new])
|
||||
|
||||
def test_exact_public_credential_coordinates_allowed_without_allowing_values():
|
||||
new=deployment('main-51bc70d');container=new['spec']['template']['spec']['containers'][0]
|
||||
container['env']=[{'name':k,'value':v} for k,v in mod.PUBLIC_COORDINATES.items()]
|
||||
assert mod.compare([new],[new])['intended_diff_only_images']
|
||||
container['env'][0]['value']='synthetic-unbound-value'
|
||||
with pytest.raises(mod.Refusal,match='literal_sensitive_env_refused'):mod.compare([], [new])
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52",
|
||||
"id": "0bf10ce1-2e07-4672-8329-5bf7def089e5",
|
||||
"topic_id": null,
|
||||
"task_id": null,
|
||||
"decision_id": null,
|
||||
"event_type": "note",
|
||||
"summary": "CUST-WP-0080 implementation checkpoint: actual unavailable-scanner shared/Custodian hooks and exact hard-loss cleanup passed; RMGR-WP-0021-T05 published 9ebde0a9 and authoritative retry applied. Generated-fixture SOPS v3.13.3 real crypto compatibility passed65 checks, including4 sealed-FD cases; exact2 test files integrated, publication pending. SECRETS-WP-0015 published c59bbf56 with offline selector preflight; original outage-compatible consumption/native acceptance remains open. RCLUSTER-WP-0018 source prepared, publication correctly refused before mutation by immutable historical UUID guard; receiver-first STATE-WP-0095 successor prepared/tested26 and registrar47, not deployed or activated. PostgreSQL journal80 source tests pass, actual disposable R2 failed safely with cleanup; diagnostic successor pending. All16 TSA gates remain open; no authority promotion, live rollout or credential recovery.",
|
||||
"detail": null,
|
||||
"author": "codex",
|
||||
"session_id": null,
|
||||
"created_at": "2026-10-16T23:18:29.623353Z",
|
||||
"workstream_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52"
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"owner": "railiance-cluster",
|
||||
"base_revision": "cac8eabef5a0d0990a7b0de8f5e2c762666ac7f0",
|
||||
"applied": true,
|
||||
"files": {
|
||||
"tools/public-tls-metadata.py": "sha256:87c167e44f0fcf154c9f2afae2187bebd33e5f220c05f579c1233b58bfe4f30b",
|
||||
"tests/test_public_tls_metadata.py": "sha256:200a5be79dc6a715e22798b63e481431c3afeb2c4d7b71b26375d016a0c45866",
|
||||
"docs/keycape-tls-recovery-boundary.md": "sha256:f4bcb1d1832c566f9c87793ed2a461c8cd8a00859dc4ae66cd3c160d7ceefa70",
|
||||
"workplans/RCLUSTER-WP-0018-keycape-original-tls-recovery.md": "sha256:4a0d616ccbea199053531e82276441be21d0f168a63056a456375e27f58fc9af"
|
||||
},
|
||||
"preexisting_brief_preserved": true,
|
||||
"native_acceptance": false
|
||||
}
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
{
|
||||
"schema": "custodian.completed-deliverable-publication.v1",
|
||||
"native_acceptance": false,
|
||||
"owners": [
|
||||
{
|
||||
"repo": "net-kingdom",
|
||||
"published_head": "70f408ca2389bf3722a91a03832fc6e8587355e5",
|
||||
"remote_exact": true,
|
||||
"workplans": [
|
||||
{
|
||||
"id": "NK-WP-0048",
|
||||
"uuid": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"task_count": 21,
|
||||
"counts": {
|
||||
"done": 15,
|
||||
"wait": 2,
|
||||
"todo": 3,
|
||||
"progress": 1
|
||||
},
|
||||
"all_ids_uuids_statuses_match": true,
|
||||
"source_sha256": "sha256:b737bfae4802c122b21619695a169d7d082672af96314b1709860dd5aff2a60f"
|
||||
},
|
||||
{
|
||||
"id": "NK-WP-0049",
|
||||
"uuid": "17d315f0-829e-57c7-85cc-3a7914152804",
|
||||
"task_count": 37,
|
||||
"counts": {
|
||||
"done": 25,
|
||||
"progress": 4,
|
||||
"wait": 7,
|
||||
"todo": 1
|
||||
},
|
||||
"all_ids_uuids_statuses_match": true,
|
||||
"source_sha256": "sha256:678ec04b73b57c026001791706c05c5d4d5a508a32f17210ae8ad03ab15d53b8"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"repo": "state-hub",
|
||||
"published_head": "086d79a2736e34b916bd7de3c8a65e2ea38a3d64",
|
||||
"remote_exact": true,
|
||||
"workplans": [
|
||||
{
|
||||
"id": "STATE-WP-0095",
|
||||
"uuid": "79579572-8120-5d3b-aca5-dd4aff60d058",
|
||||
"task_count": 8,
|
||||
"counts": {
|
||||
"done": 6,
|
||||
"wait": 2
|
||||
},
|
||||
"all_ids_uuids_statuses_match": true,
|
||||
"source_sha256": "sha256:ef10359cc5974283b5bdbfc602adf14e3c24362adf00640698d2937c6538483a"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"netkingdom_legacy_consistency": {
|
||||
"fail": 0,
|
||||
"automation_error": 0,
|
||||
"warn": 32,
|
||||
"info": 5
|
||||
},
|
||||
"netkingdom_authoritative_projection": {
|
||||
"status": "applied",
|
||||
"commit": "70f408ca2389bf3722a91a03832fc6e8587355e5",
|
||||
"counts": {
|
||||
"created": 0,
|
||||
"updated": 64,
|
||||
"retired": 0,
|
||||
"refused": 0,
|
||||
"released": 0,
|
||||
"created_tasks": 0,
|
||||
"updated_tasks": 2,
|
||||
"cancelled_tasks": 0,
|
||||
"created_edges": 1,
|
||||
"removed_edges": 0,
|
||||
"unresolved_edges": 1,
|
||||
"external_edges": 77
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
{
|
||||
"schema": "custodian.owner-wait-receipts.v1",
|
||||
"new_drivers_or_worker_injection": false,
|
||||
"receipts": [
|
||||
{
|
||||
"case_id": "nk49-t35-rcluster18",
|
||||
"receipt_id": "6c51a699-db1c-414d-9e32-15b9a2714a34",
|
||||
"workplan_id": "17d315f0-829e-57c7-85cc-3a7914152804",
|
||||
"state": "waiting",
|
||||
"detail": {
|
||||
"scenario_type": "cross_owner_wait",
|
||||
"case_id": "nk49-t35-rcluster18",
|
||||
"obligor_workplan_id": "RCLUSTER-WP-0018",
|
||||
"obligor_task_id": "RCLUSTER-WP-0018-T02",
|
||||
"beneficiary_workplan_id": "NK-WP-0049",
|
||||
"beneficiary_task_id": "NK-WP-0049-T35",
|
||||
"flavor": "implementation",
|
||||
"state": "waiting",
|
||||
"reason": "Cluster owner source prepared but unpublished; immutable historical guard requires reviewed receiving rollout first. No central Cluster task binding claimed.",
|
||||
"coordination_context": "CUST-WP-0080",
|
||||
"runtime_worker_injection_enabled": false,
|
||||
"human_gate_never_woken": true,
|
||||
"observer": "codex",
|
||||
"native_acceptance": false
|
||||
},
|
||||
"central_publication": true
|
||||
},
|
||||
{
|
||||
"case_id": "nk49-t36-secrets15",
|
||||
"receipt_id": "8a73a503-7479-426b-b2ad-e88f32e4c7e8",
|
||||
"workplan_id": "17d315f0-829e-57c7-85cc-3a7914152804",
|
||||
"state": "waiting",
|
||||
"detail": {
|
||||
"scenario_type": "cross_owner_wait",
|
||||
"case_id": "nk49-t36-secrets15",
|
||||
"obligor_workplan_id": "SECRETS-WP-0015",
|
||||
"obligor_task_id": "SECRETS-WP-0015-T03",
|
||||
"beneficiary_workplan_id": "NK-WP-0049",
|
||||
"beneficiary_task_id": "NK-WP-0049-T36",
|
||||
"flavor": "implementation",
|
||||
"state": "waiting",
|
||||
"reason": "SECRETS-WP-0015 published c59bbf56 and exact4task/2edge bindings observed; T03 remains todo for outage-compatible consumer preparation, no native assent.",
|
||||
"coordination_context": "CUST-WP-0080",
|
||||
"runtime_worker_injection_enabled": false,
|
||||
"human_gate_never_woken": true,
|
||||
"observer": "codex",
|
||||
"native_acceptance": false
|
||||
},
|
||||
"central_publication": true
|
||||
},
|
||||
{
|
||||
"case_id": "secrets15-nk49-readiness",
|
||||
"receipt_id": "3f905339-a4c9-428e-9cbd-fa490c144c7a",
|
||||
"workplan_id": "68a0642e-4908-5260-89c9-3adce60e6a4d",
|
||||
"state": "waiting",
|
||||
"detail": {
|
||||
"scenario_type": "cross_owner_wait",
|
||||
"case_id": "secrets15-nk49-readiness",
|
||||
"obligor_workplan_id": "NK-WP-0049",
|
||||
"obligor_task_id": "NK-WP-0049-T33",
|
||||
"beneficiary_workplan_id": "SECRETS-WP-0015",
|
||||
"beneficiary_task_id": "SECRETS-WP-0015-T04",
|
||||
"flavor": "implementation",
|
||||
"state": "waiting",
|
||||
"reason": "Foreign source readiness remains incomplete; beneficiary also has a separate attended human gate",
|
||||
"coordination_context": "CUST-WP-0080",
|
||||
"human_gate_never_woken": true,
|
||||
"runtime_worker_injection_enabled": false,
|
||||
"observer": "codex",
|
||||
"native_acceptance": false
|
||||
},
|
||||
"central_publication": true
|
||||
},
|
||||
{
|
||||
"case_id": "cluster-frozen-receiver-before-registrar-r1",
|
||||
"receipt_id": "6f33542c-8318-4a9d-9cbd-9b9d8b2dd664",
|
||||
"workplan_id": "efe0ecb2-2f3f-5f49-baee-b90ad1d353ab",
|
||||
"state": "waiting",
|
||||
"detail": {
|
||||
"scenario_type": "project_driver",
|
||||
"case_id": "cluster-frozen-receiver-before-registrar-r1",
|
||||
"driver_repo": "prj-state-hub-retirement",
|
||||
"driver_workplan_id": "SHR-WP-0001",
|
||||
"beneficiary_workplan_id": "RMGR-WP-0019",
|
||||
"beneficiary_task_id": "RMGR-WP-0019-T05",
|
||||
"obligor_workplan_id": "STATE-WP-0095",
|
||||
"obligor_task_id": "STATE-WP-0095-T06",
|
||||
"flavor": "implementation",
|
||||
"state": "waiting",
|
||||
"reason": "receiver-first reviewed rollout is a human gate; no worker wake",
|
||||
"indirect_beneficiaries": [
|
||||
"RCLUSTER-WP-0018",
|
||||
"NK-WP-0049-T35"
|
||||
],
|
||||
"next_action": "Founder review of pinned51bc70d@c802 image/migration/recovery proposal; no wake, deployment or registrar admission before approved and verified return.",
|
||||
"runtime_worker_injection_enabled": false,
|
||||
"human_gate_never_woken": true,
|
||||
"observer": "codex",
|
||||
"native_acceptance": false
|
||||
},
|
||||
"central_publication": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
{
|
||||
"schema": "custodian.netkingdom-checkpoint.v1",
|
||||
"date": "2026-10-17",
|
||||
"native_target_gates_closed": 0,
|
||||
"historical_candidate_independent_tests": {
|
||||
"state_hub": {
|
||||
"passed": 26,
|
||||
"seconds": 1.66
|
||||
},
|
||||
"repo_manager": {
|
||||
"passed": 47,
|
||||
"seconds": 5.69
|
||||
},
|
||||
"scope": "isolated candidate sources; registrar not activated; no production rollout"
|
||||
},
|
||||
"scanner_publication": {
|
||||
"commit": "9ebde0a9bd60d5c82910494fbe6bd1b891455cee",
|
||||
"initial_sync": "pending_push despite exit 0; retained original receipt",
|
||||
"git_push_followup": "Everything up-to-date",
|
||||
"retry_sync": "applied",
|
||||
"instance_role": "primary",
|
||||
"instance_label": "railiance01",
|
||||
"expected_commit_equals_derived_commit": true,
|
||||
"updated_tasks": [
|
||||
"RMGR-WP-0021-T05"
|
||||
],
|
||||
"refused": 0,
|
||||
"retired": 0,
|
||||
"binding_readback": "verified exact5task IDs/UUIDs/statuses and remoteHEAD"
|
||||
},
|
||||
"secrets_publication": {
|
||||
"commit": "c59bbf568c0be8a72ac593508f48c9b1f61ec4c1",
|
||||
"sync": "applied",
|
||||
"instance_role": "primary",
|
||||
"instance_label": "railiance01",
|
||||
"expected_commit_equals_derived_commit": true,
|
||||
"binding_readback": "verified exact4tasks and2dependencyedges and remoteHEAD"
|
||||
},
|
||||
"cluster_publication": "refused before mutation by historical identity guard; source files prepared, not published",
|
||||
"state_hub_rollout": "not authorized; full deployed-to-candidate closure includes unrelated inbox migration requiring review",
|
||||
"postgres": {
|
||||
"source_tests": 82,
|
||||
"actual_fixture": "passed21oracles",
|
||||
"result": "postgres-r5-result.json",
|
||||
"cleanup": "postgres-r5-cleanup.json",
|
||||
"source_integration": "postgres-followthrough-integration.json",
|
||||
"native_admission": false
|
||||
},
|
||||
"state_hub_source": {
|
||||
"published_commit": "51bc70d1ff8f25450a8650d8e50caf053093a02e",
|
||||
"projection": "applied",
|
||||
"new_tasks": 3,
|
||||
"unresolved_edges": 1,
|
||||
"unresolved_reason": "RMGR-WP-0019-T06 deferred until receiving rollout verified",
|
||||
"production_deployed": false,
|
||||
"image_digest": "sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015",
|
||||
"image_inspection": "verified233selectedfiles86packageMETADATA22layers; noimageexecution",
|
||||
"migration_compatibility": "passed10syntheticold-writeshapeoracles; productiontiming/fullappunverified"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
{
|
||||
"files": {
|
||||
"docs/netkingdom-target-implementation.md": "sha256:bae7ffb6e5a6e03cd2b2801fbd9c5fc24e782a969f1e7a35eca45635e31682dc",
|
||||
"workplans/CUST-WP-0080-netkingdom-security-blueprint-and-gap-closure.md": "sha256:896d9b99d3d2bc2c8e8ffb501b68ee9a29f3768a9c859113df558e334148a2ab",
|
||||
".kaizen/agents/custodian-codex/supervision.json": "sha256:788613168f7d2b1dec4709b7f0533d6bc013405bb259feb7267d77add086e7b2",
|
||||
"docs/changes/netkingdom-target-2026-10-17/coordinator-checkpoint.json": "sha256:54456be86db2b985c98a02e4de930f49ed2c77199ecaa073296a37eb7ba4c091",
|
||||
"docs/changes/netkingdom-target-2026-10-17/verified-results.json": "sha256:23390f010e08b60e9b1e82b7b17b231113bd18632a4eb51d064b8f06c5860c96",
|
||||
"docs/changes/netkingdom-target-2026-10-17/completed-deliverable-publication.json": "sha256:a0e6d2d24ebd4f930fa3310166fa87b96ba025f32cb9e7b2fdb98255c0569677",
|
||||
"docs/changes/netkingdom-target-2026-10-17/coordination-receipts.json": "sha256:e2dfb152f91ac6281839fb9423fdd0e00f30729d04c6d41946b06164e9ff73dc",
|
||||
"docs/changes/netkingdom-target-2026-10-17/pending-proposal-recorded.json": "sha256:ef5ad11c66b24c3848ed406b257848a9c9c149a18c4c3ed77617c6f8cf7373a4",
|
||||
"docs/changes/netkingdom-target-2026-10-17/checkpoint-progress.json": "sha256:6fb29fcf9ad49a5d67ed17e19870ad38cb73f11ba5add8794f2a27ec76869196",
|
||||
"docs/changes/netkingdom-target-2026-10-17/sops-real-regressions.json": "sha256:844d45d10eadadbbb3d5f83f88d75a84d6d9d77f49f7cf895f00482a3124a29b",
|
||||
"docs/changes/netkingdom-target-2026-10-17/sops-source-tool.json": "sha256:7bff389a10fd411381f5f556b42d33a9ac3cf9cdd39478ba00b3fe0703ffb7a7",
|
||||
"docs/changes/netkingdom-target-2026-10-17/r0-sops-real-regressions.json": "sha256:1e61072b4d1380a746c59497fce5fc742cdb17a4e63e86f6786c0d19a5b6249f",
|
||||
"docs/changes/netkingdom-target-2026-10-17/r1-sops-real-regressions.json": "sha256:efc20b602041e9c54820a8d5f0746ece274fc4869ec77ab522bec621e22cc14b",
|
||||
"docs/changes/netkingdom-target-2026-10-17/postgres-r3-cleanup.json": "sha256:0da4fc52decb8de3795a3af2d75af66c3435bae917e54a6ff6cb9107eb7c2850",
|
||||
"docs/changes/netkingdom-target-2026-10-17/postgres-r4-result.json": "sha256:540a4080f57514fde4e07c2fab888456e4d6fbe7b22d016fe4bcce7bbc35e715",
|
||||
"docs/changes/netkingdom-target-2026-10-17/postgres-r4-cleanup.json": "sha256:cfe505a2d58a079edbb5daa08cc43aa1b0af38f0cf2c1f7adc87522693452ab9",
|
||||
"docs/changes/netkingdom-target-2026-10-17/postgres-r5-result.json": "sha256:d72cc5e0788b7be69fc40c641e20680d29a175181334396b5f7fcecc0c0763d9",
|
||||
"docs/changes/netkingdom-target-2026-10-17/postgres-r5-cleanup.json": "sha256:b5b10daaf299df9d2c5bee3370d0123d2360ede1901ff456d8bcd1072f810775",
|
||||
"docs/changes/netkingdom-target-2026-10-17/migration-compat-r1-result.json": "sha256:c290afa92777c4635a5ee06c1bf6c3f28b1a265b6bff6a91f5aee45f799c2923",
|
||||
"docs/changes/netkingdom-target-2026-10-17/migration-compat-r1-cleanup.json": "sha256:1d7e0830460c0e2c537027f94242b01661702aec1b2f93aa9041af6eb14cde21",
|
||||
"docs/changes/netkingdom-target-2026-10-17/statehub-public-image-inspection.json": "sha256:5d182e5b0a3e9462024c0b9a123d631215f1b2d0568f18060b10a310a8251741",
|
||||
"docs/changes/netkingdom-target-2026-10-17/statehub-anonymous-registry-metadata.json": "sha256:30f80aeb153bfe33076e2e5b94ae127e97ed38c0e1d033dabfd94934cef8be9a",
|
||||
"docs/changes/netkingdom-target-2026-10-17/state-hub-source-projection.json": "sha256:84893cbbac99fc0bc23e883b51b8f22ca0116b90d7707a776c39da5f5002702e",
|
||||
"docs/changes/netkingdom-target-2026-10-17/state-hub-readiness-projection.json": "sha256:4d75f0496cbd2c2d186a0b1659deff830f2a1801d16bde62702105dacf47109e",
|
||||
"docs/changes/netkingdom-target-2026-10-17/secrets-engine-projection.json": "sha256:c36888ce738a3dae5e269b1c1742e49cd47355355ae2d3ddd40ada5f3cfed1de",
|
||||
"docs/changes/netkingdom-target-2026-10-17/cluster-integration.json": "sha256:70402112bfe904b6214326847cfc1fe1ce6d7bfb7cd3f997b1a321889f6bf1d8",
|
||||
"docs/changes/netkingdom-target-2026-10-17/netkingdom-projection.json": "sha256:b8bea45567bf8b72d5d8d3952479b3b7877135ce68ff026b440e90bf5eacbe2b",
|
||||
"docs/changes/netkingdom-target-2026-10-17/netkingdom-consistency.json": "sha256:79e78055e1ee1725cf88ca041df09bee551a1aa2404cdc9125fe12de375d772d",
|
||||
"docs/changes/netkingdom-target-2026-10-17/wp49-sops-successor-r1/owner-publication-readback.json": "sha256:fbc223bf65f513d23c48a979cb7c293a86cffd5a292ee1bb23c84885b0edaebd",
|
||||
"docs/changes/netkingdom-target-2026-10-17/scanner-unavailable-r1/namespace-hook-results.json": "sha256:5aaef79c0be4ae3cf721482784b255dde795559363bfb671e64ba6252fec59bc",
|
||||
"docs/changes/netkingdom-target-2026-10-17/scanner-unavailable-r1/namespace-lifecycle-results.json": "sha256:7250def507f30c164499738bb3aa65668c27853319370b34eef6a41685523dc4",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/REVIEW.md": "sha256:5bef9e7818ce1ebc64b81e300b6b40dcfc710a8625d6e0595534f8284dc2052d",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/exact-frozen-source-manifest.json": "sha256:5fa43c1f3511a7d7d22f84e030eaebfcd03af36c976159f28396d9c2422e6f33",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/existing-row-metadata-readback.json": "sha256:a743eb4693043d29eabbf62536b335e2ba9fe521f1362377c8b572c63634b5af",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r2/REVIEW.md": "sha256:c8f13ed5d67d4743ea8e81bf720367022c820a060d7b225e84338eab2907493f",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r2/full-image-review-notes.json": "sha256:6491487afe55b1a2a8fe773a7b700e596489bcc459d755a4071b14ac272edf3b",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r2/deployed-to-current-source-closure.json": "sha256:a8dd674b9740b2d72425acfadb10b00abd7692ccf6b11cf81dbdda4d246c6d21",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r2/canonical-source-readback.json": "sha256:7b32658c4f9815552bafe9bdf3f3842935200bd120e46208a4accf490f6b4111",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r3-readiness/ROLLOUT-SUPPLEMENT.md": "sha256:df2962fd1588784a987e37932bd67f03f6248ea6384cf4bbb74ad1fe2e26be2b",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r3-readiness/IMAGE-RECEIPT-SUPPLEMENT.md": "sha256:dbd5d08cfe9e19499634a7f3de756704697712caa041b05814fc211b90820fe6",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r3-readiness/source-patch-manifest.json": "sha256:98211e65bebeee2c25ca75c6b9f0bc45128093baaba02069b6c41a15be32fe74",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/FINAL-PROPOSAL.md": "sha256:2b2909528d37831bdff783b2ff0d764896ddb624caf743812353f993b401874f",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/proposal-metadata.json": "sha256:63a02e8296d126c0158b7eb2c4ce79c7eeb6f8d6f61298d473c1065c7557ba32",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/pending-supervision-entry.json": "sha256:8231ccf6534f9521e7477d9b0d013a0087b7f7173b94a31a396f04e159fbf1d1",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/pending-supervision-record-addition.json": "sha256:f7764c916cef5fff39c406909fe195ca3478a8ffafdad22aabe8776458209c41",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/MIGRATION-JOB-RECOVERY.md": "sha256:bfbd229bcb534c4f104b40090dba6c2dd0e2e040dce627e923143f81035880bc",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/chart-package-manifest.json": "sha256:5ed8dc93e5e304edfbe159b1da74a19c7ae3709e3cd6418055360efe50b5d730",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/state-hub-0.1.0.tgz": "sha256:b5c0663d830fc8d3b65080f237a0be8d01f8b2f7fec9dc33aeba91b1b6b281d4",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/reuse_values_dryrun.py": "sha256:17ae578ded53ce1cbf69c15dfd0a6629906548666712351ae0fb9bd5c4e05690",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/test_reuse_values_dryrun.py": "sha256:65c2d1306b5c03fcb53351839c5960ae7382b280794642f484a06579076d81f0",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/exact-reuse-values-dryrun-result-3-digest-pinned.json": "sha256:3bc7aab8b98a8a8fefcacab49757e072937f1a2976a23449c20bb93203085d77",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/exact-reuse-values-dryrun-result-4-pinned-package.json": "sha256:73f8ff4094a929c2ec87e28487aa0bc73faa6a02d9377a9ccaad40295d1a084d",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/fresh-public-baseline.json": "sha256:594cc1ef68599b58b59ed02ddac030ff4ed0d866353140a3a663aaa47c554369",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/chart-package-render-parity.json": "sha256:69dd2c671d933bec502dc05205797cfa637a2cfa17e6d5701118f3bf30f5c488",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/review-freeze.json": "sha256:2c929cd3661b7c3f812c2443037199d53b3ff10e9403fde68578737b5711ce8d",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/exact-reuse-values-dryrun-result.json": "sha256:0fa4cf5f7dce1cb7ef738b7ed16c7af8530197a36e830c741bfaeb8ea4460c81",
|
||||
"docs/changes/netkingdom-target-2026-10-16/cluster-historical-publication-r1/revisions/r4-rollout-review/exact-reuse-values-dryrun-result-2.json": "sha256:b2e97bd92ec10ac0b6bb6c00a50643665ecd7d960125cdfb497f4ffcfdc1e78c",
|
||||
"docs/changes/netkingdom-target-2026-10-17/custodian-scanner-refusal.json": "sha256:ecf15f68c91ebaf6c68e7d1266132b0282cb989d28c92007cda7c65e7b4db838",
|
||||
"docs/changes/netkingdom-target-2026-10-17/custodian-scanner-redacted-finding.json": "sha256:4ea90a9b4d8ef6a01906ef9f883ef11a02a3b82574daf022b1c17db6ba9ec145"
|
||||
},
|
||||
"scope": "reviewed implementation/evidence/pending proposal only",
|
||||
"preexisting_staged_brief_and_unrelated_work_excluded": true,
|
||||
"publication_refinement": "Normal scanner blocked one concatenated public workplan/commit field; explicit repo/workplan/source_commit fields preserve exact public IDs and revision bytes. Initial EOF blank line corrected."
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"exit_code": 1,
|
||||
"findings": [
|
||||
{
|
||||
"RuleID": "generic-api-key",
|
||||
"Description": "Detected a Generic API Key, potentially exposing access to various services and sensitive operations.",
|
||||
"StartLine": 37,
|
||||
"EndLine": 37,
|
||||
"File": "docs/changes/netkingdom-target-2026-10-17/verified-results.json"
|
||||
}
|
||||
],
|
||||
"redacted": true
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"status": "normal_commit_refused",
|
||||
"blocked_blob_id": "d95cd53a92aeb55dc8bbeb9858f5aac320746011",
|
||||
"paths": [
|
||||
"docs/changes/netkingdom-target-2026-10-17/verified-results.json"
|
||||
],
|
||||
"scanner_version": "8.30.1",
|
||||
"bypass": false
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"schema": "custodian.fixture-independent-cleanup.v1",
|
||||
"manifest_sha256": "f4ee1144010f2a2207785bc20638bab2e21eeed40edf563d39bb6198257a97ff",
|
||||
"engine_id": "74f93783-6cef-43a8-a3c4-f62586cd3bc1",
|
||||
"session": {
|
||||
"run_id": "e0e48d1986a949a585be1fe5705b1a7e",
|
||||
"containers": [
|
||||
"nk49-kc-e0e48d1986a949a585be1fe5705b1a7e-journal-postgres",
|
||||
"nk49-kc-e0e48d1986a949a585be1fe5705b1a7e-journal-probe"
|
||||
],
|
||||
"label": "net-kingdom.recovery-run=e0e48d1986a949a585be1fe5705b1a7e"
|
||||
},
|
||||
"result_sha256": "sha256:c290afa92777c4635a5ee06c1bf6c3f28b1a265b6bff6a91f5aee45f799c2923",
|
||||
"label_resources_absent": true,
|
||||
"exact_names_absent": true,
|
||||
"production_contacted": false
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"schema": "statehub.synthetic-migration-compat.v1",
|
||||
"status": "synthetic_migration_old_write_shapes_passed",
|
||||
"production_contacted": false,
|
||||
"actual_credentials_used": false,
|
||||
"native_acceptance_claimed": false,
|
||||
"manifest_sha256": "f4ee1144010f2a2207785bc20638bab2e21eeed40edf563d39bb6198257a97ff",
|
||||
"session": {
|
||||
"run_id": "e0e48d1986a949a585be1fe5705b1a7e",
|
||||
"containers": [
|
||||
"nk49-kc-e0e48d1986a949a585be1fe5705b1a7e-journal-postgres",
|
||||
"nk49-kc-e0e48d1986a949a585be1fe5705b1a7e-journal-probe"
|
||||
],
|
||||
"label": "net-kingdom.recovery-run=e0e48d1986a949a585be1fe5705b1a7e"
|
||||
},
|
||||
"stage": "cleanup",
|
||||
"containment_verified_before_private_import": true,
|
||||
"checks": {
|
||||
"only_loopback_no_external_routes": true,
|
||||
"actual_old_model_schema_created": true,
|
||||
"actual_new_migration_sql_applied": true,
|
||||
"legacy_rows_backfilled_one_revision": true,
|
||||
"old_compiled_insert_accepted_on_new_schema": true,
|
||||
"old_compiled_receipt_same_transaction_revision": true,
|
||||
"old_compiled_update_stamped_revision": true,
|
||||
"old_noop_update_revision_unchanged": true,
|
||||
"old_compiled_delete_writes_tombstone": true,
|
||||
"no_application_schema_downgrade": true
|
||||
},
|
||||
"migration_seconds_synthetic_only": 0.0055,
|
||||
"container_cleanup_obligations": [
|
||||
{
|
||||
"container": "nk49-kc-e0e48d1986a949a585be1fe5705b1a7e-journal-probe",
|
||||
"status": "absence_verified"
|
||||
},
|
||||
{
|
||||
"container": "nk49-kc-e0e48d1986a949a585be1fe5705b1a7e-journal-postgres",
|
||||
"status": "absence_verified"
|
||||
}
|
||||
],
|
||||
"container_cleanup_verified": true
|
||||
}
|
||||
|
|
@ -0,0 +1,398 @@
|
|||
{
|
||||
"repo_slug": "net-kingdom",
|
||||
"repo_path": "/home/worsch/net-kingdom",
|
||||
"source_revision": "70f408ca2389bf3722a91a03832fc6e8587355e5",
|
||||
"source_revision_reason": null,
|
||||
"issues": [
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-24",
|
||||
"message": "Repo classification advisory: capability_tag 'security' is not a recommended family tag (allowed, check for synonym)",
|
||||
"file_path": "",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-35",
|
||||
"message": "Repo Manager warning: workplans/: repository uses more than one workplan prefix: ['NET-WP', 'NK-WP']",
|
||||
"file_path": "workplans/",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-33",
|
||||
"message": "WORK-RECORDS.md is missing or stale \u2014 regenerate via fix-consistency (CUST-WP-0061-T04 generated work-record index)",
|
||||
"file_path": "WORK-RECORDS.md",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-37",
|
||||
"message": "Residual workplan 'nk-wp-0011' has no origin/origin_ref provenance (not invented)",
|
||||
"file_path": "workplans/NK-WP-0011-enterprise-federation-saml.md",
|
||||
"db_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'USER-WP-0020' is not linked to State Hub",
|
||||
"file_path": "workplans/NK-WP-0022-railiance01-identity-cutover-and-coulombcore-retirement.md",
|
||||
"db_id": "",
|
||||
"file_value": "USER-WP-0020",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'KEY-WP-0004' is not linked to State Hub",
|
||||
"file_path": "workplans/NK-WP-0022-railiance01-identity-cutover-and-coulombcore-retirement.md",
|
||||
"db_id": "",
|
||||
"file_value": "KEY-WP-0004",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'USER-WP-0020' is not linked to State Hub",
|
||||
"file_path": "workplans/NK-WP-0023-user-engine-portal-platform-integration.md",
|
||||
"db_id": "",
|
||||
"file_value": "USER-WP-0020",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'KEY-WP-0004' is not linked to State Hub",
|
||||
"file_path": "workplans/NK-WP-0023-user-engine-portal-platform-integration.md",
|
||||
"db_id": "",
|
||||
"file_value": "KEY-WP-0004",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'USER-WP-0021' is not linked to State Hub",
|
||||
"file_path": "workplans/NK-WP-0024-user-engine-portal-integration-expansion.md",
|
||||
"db_id": "",
|
||||
"file_value": "USER-WP-0021",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'FLEX-WP-0009' is not linked to State Hub",
|
||||
"file_path": "workplans/NK-WP-0024-user-engine-portal-integration-expansion.md",
|
||||
"db_id": "",
|
||||
"file_value": "FLEX-WP-0009",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'AUDIT-WP-0003' is not linked to State Hub",
|
||||
"file_path": "workplans/NK-WP-0024-user-engine-portal-integration-expansion.md",
|
||||
"db_id": "",
|
||||
"file_value": "AUDIT-WP-0003",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'EMAIL-WP-0004' is not linked to State Hub",
|
||||
"file_path": "workplans/NK-WP-0024-user-engine-portal-integration-expansion.md",
|
||||
"db_id": "",
|
||||
"file_value": "EMAIL-WP-0004",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'USER-WP-0022' is not linked to State Hub",
|
||||
"file_path": "workplans/NK-WP-0025-public-self-registration-and-application-jit.md",
|
||||
"db_id": "",
|
||||
"file_value": "USER-WP-0022",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'KEY-WP-0008' is not linked to State Hub",
|
||||
"file_path": "workplans/NK-WP-0025-public-self-registration-and-application-jit.md",
|
||||
"db_id": "",
|
||||
"file_value": "KEY-WP-0008",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'CSOC-WP-0003' is not linked to State Hub",
|
||||
"file_path": "workplans/NK-WP-0025-public-self-registration-and-application-jit.md",
|
||||
"db_id": "",
|
||||
"file_value": "CSOC-WP-0003",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-37",
|
||||
"message": "Residual workplan 'nk-wp-0027' has no origin/origin_ref provenance (not invented)",
|
||||
"file_path": "workplans/NK-WP-0027-reef-placement-reconciliation.md",
|
||||
"db_id": "965ad365-6b81-50a1-a2a3-2d0c1fcce0b4",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-37",
|
||||
"message": "Residual workplan 'nk-wp-0031' has no origin/origin_ref provenance (not invented)",
|
||||
"file_path": "workplans/NK-WP-0031-deterministic-posture-feedback.md",
|
||||
"db_id": "9d7b04f9-3803-5613-b7a5-8bd606c77f5a",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-37",
|
||||
"message": "Residual workplan 'nk-wp-0040' has no origin/origin_ref provenance (not invented)",
|
||||
"file_path": "workplans/NK-WP-0040-execution-attribution-receipt.md",
|
||||
"db_id": "e2533f3a-aa43-59b3-bff3-8e64b6149487",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Task dependency target 'NK-WP-0048-T21' of task 'NK-WP-0048-T14' is not linked to State Hub",
|
||||
"file_path": "workplans/NK-WP-0048-security-case-types.md#NK-WP-0048-T14",
|
||||
"db_id": "",
|
||||
"file_value": "NK-WP-0048-T21",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-22",
|
||||
"message": "Task description drift 'NK-WP-0048-T14': file content differs from DB (file wins)",
|
||||
"file_path": "workplans/NK-WP-0048-security-case-types.md#NK-WP-0048-T14",
|
||||
"db_id": "fce95440-a25b-5f27-8ef3-a3d182099113",
|
||||
"file_value": "Owner: NetKingdom. Next action: bind the completed T21 PostgreSQL journal to\nan admitted dedicated CNPG consumer through",
|
||||
"db_value": "Owner: NetKingdom. Next action: specify a CNPG-backed journal through the\nexisting `rapp-postgres` database-per-consumer",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-11",
|
||||
"message": "Derived task 'NK-WP-0048-T21' is absent from this projection",
|
||||
"file_path": "workplans/NK-WP-0048-security-case-types.md#NK-WP-0048-T21",
|
||||
"db_id": "afe78e4d-408a-516a-ab92-e212e8a2d11d",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-22",
|
||||
"message": "Task description drift 'NK-WP-0049-T35': file content differs from DB (file wins)",
|
||||
"file_path": "workplans/NK-WP-0049-bootstrap-secret-free-recovery-handoff.md#NK-WP-0049-T35",
|
||||
"db_id": "1bfd1703-589f-5511-bad5-812d860e4a71",
|
||||
"file_value": "**Accountable worker:** NetKingdom codex, coordinating with the source owner of\nIngress/cert-manager/Traefik and the ori",
|
||||
"db_value": "**Accountable worker:** NetKingdom codex, coordinating with the source owner of\nIngress/cert-manager/Traefik and the ori",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-22",
|
||||
"message": "Task description drift 'NK-WP-0049-T36': file content differs from DB (file wins)",
|
||||
"file_path": "workplans/NK-WP-0049-bootstrap-secret-free-recovery-handoff.md#NK-WP-0049-T36",
|
||||
"db_id": "8b72334b-fc27-5707-a189-bad345eaf3bc",
|
||||
"file_value": "**Accountable worker:** NetKingdom codex with KeyCape and the selected existing\nservice consumer's owner. **Next action:",
|
||||
"db_value": "**Accountable worker:** NetKingdom codex with KeyCape and the selected existing\nservice consumer's owner. **Next action:",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-11",
|
||||
"message": "Derived task 'NK-WP-0049-T37' is absent from this projection",
|
||||
"file_path": "workplans/NK-WP-0049-bootstrap-secret-free-recovery-handoff.md#NK-WP-0049-T37",
|
||||
"db_id": "3403e266-d63b-5ce1-b891-3bfeac93d28c",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-22",
|
||||
"message": "Task description drift 'NK-WP-0049-T03': file content differs from DB (file wins)",
|
||||
"file_path": "workplans/NK-WP-0049-bootstrap-secret-free-recovery-handoff.md#NK-WP-0049-T03",
|
||||
"db_id": "d68cd4d3-1ba3-530e-88f9-26ebb8dd6eac",
|
||||
"file_value": "**Accountable worker:** codex. Service/credential-owner acceptance remains with\nthe named owner boundary.\n\nOwner boundar",
|
||||
"db_value": "**Accountable worker:** codex. Service/credential-owner acceptance remains with\nthe named owner boundary.\n\nOwner boundar",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'RAIL-PL-WP-0002' is not linked to State Hub",
|
||||
"file_path": "workplans/archived/260702-NET-WP-0017-it-security-readiness-for-user-onboarding.md",
|
||||
"db_id": "",
|
||||
"file_value": "RAIL-PL-WP-0002",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "INFO",
|
||||
"check_id": "C-08",
|
||||
"message": "Retired DB workstream 'nk-wp-0035@retired-20260908' (id=064c5e8b\u2026, status=archived) has no backing workplan file \u2014 projection tombstone, not live work",
|
||||
"file_path": "",
|
||||
"db_id": "064c5e8b-7852-4d7f-a5fa-e26e406ab8e0",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "INFO",
|
||||
"check_id": "C-08",
|
||||
"message": "Retired DB workstream 'adhoc-2026-08-14@retired-20260827' (id=a5097121\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
|
||||
"file_path": "",
|
||||
"db_id": "a5097121-1461-59f8-81fa-e6ecef527337",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "INFO",
|
||||
"check_id": "C-08",
|
||||
"message": "Retired DB workstream 'adhoc-2026-08-23@retired-20260827' (id=e25ba5fa\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
|
||||
"file_path": "",
|
||||
"db_id": "e25ba5fa-eaae-5039-8d93-a69c6d837fc4",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "INFO",
|
||||
"check_id": "C-08",
|
||||
"message": "Retired DB workstream 'net-kingdom-adhoc-2026-06-14@retired-20260827' (id=c6f3d6bf\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
|
||||
"file_path": "",
|
||||
"db_id": "c6f3d6bf-4916-490d-96ce-092d2776d7e7",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "INFO",
|
||||
"check_id": "C-08",
|
||||
"message": "Retired DB workstream 'net-kingdom-adhoc-2026-07-02@retired-20260827' (id=67c1c7ac\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
|
||||
"file_path": "",
|
||||
"db_id": "67c1c7ac-d8b1-41dc-a81a-4e43f1afd068",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-26",
|
||||
"message": "Workplan id 'NET-WP-0020' uses prefix 'NET-WP' but repo canonical prefix is 'NK-WP' \u2014 new plans must conform",
|
||||
"file_path": "workplans/NET-WP-0020-openbao-unseal-custody-and-ssh-automation.md",
|
||||
"db_id": "",
|
||||
"file_value": "NET-WP-0020",
|
||||
"db_value": "NK-WP",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-26",
|
||||
"message": "Workplan id 'NET-WP-0015' uses prefix 'NET-WP' but repo canonical prefix is 'NK-WP' \u2014 new plans must conform",
|
||||
"file_path": "workplans/archived/260603-NET-WP-0015-platform-root-custody-and-openbao-identity-bootstrap.md",
|
||||
"db_id": "",
|
||||
"file_value": "NET-WP-0015",
|
||||
"db_value": "NK-WP",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-26",
|
||||
"message": "Workplan id 'NET-WP-0016' uses prefix 'NET-WP' but repo canonical prefix is 'NK-WP' \u2014 new plans must conform",
|
||||
"file_path": "workplans/archived/260603-NET-WP-0016-guided-security-bootstrap-experience.md",
|
||||
"db_id": "",
|
||||
"file_value": "NET-WP-0016",
|
||||
"db_value": "NK-WP",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-26",
|
||||
"message": "Workplan id 'NET-WP-0018' uses prefix 'NET-WP' but repo canonical prefix is 'NK-WP' \u2014 new plans must conform",
|
||||
"file_path": "workplans/archived/260604-NET-WP-0018-bootstrap-automation-and-rebuild-readiness.md",
|
||||
"db_id": "",
|
||||
"file_value": "NET-WP-0018",
|
||||
"db_value": "NK-WP",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-26",
|
||||
"message": "Workplan id 'NET-WP-0017' uses prefix 'NET-WP' but repo canonical prefix is 'NK-WP' \u2014 new plans must conform",
|
||||
"file_path": "workplans/archived/260702-NET-WP-0017-it-security-readiness-for-user-onboarding.md",
|
||||
"db_id": "",
|
||||
"file_value": "NET-WP-0017",
|
||||
"db_value": "NK-WP",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-26",
|
||||
"message": "Workplan id 'NET-WP-0019' uses prefix 'NET-WP' but repo canonical prefix is 'NK-WP' \u2014 new plans must conform",
|
||||
"file_path": "workplans/archived/260702-NET-WP-0019-t06-adjacent-user-lifecycle-dry-run-polish.md",
|
||||
"db_id": "",
|
||||
"file_value": "NET-WP-0019",
|
||||
"db_value": "NK-WP",
|
||||
"fixable": false
|
||||
}
|
||||
],
|
||||
"fixes_applied": [
|
||||
"bindings: synced 64/64",
|
||||
"C-17 cleared: pushed 1 backlogged commit(s)",
|
||||
"C-33 fixed: regenerated WORK-RECORDS.md",
|
||||
"C-22 fixed: task fce95440\u2026 description updated",
|
||||
"C-11 fixed: task 'NK-WP-0048-T21' \u2192 afe78e4d\u2026",
|
||||
"C-22 fixed: task 1bfd1703\u2026 description updated",
|
||||
"C-22 fixed: task 8b72334b\u2026 description updated",
|
||||
"C-11 fixed: task 'NK-WP-0049-T37' \u2192 3403e266\u2026",
|
||||
"C-22 fixed: task d68cd4d3\u2026 description updated",
|
||||
"brief: .custodian-brief.md updated",
|
||||
"push: pushed"
|
||||
],
|
||||
"summary": {
|
||||
"fail": 0,
|
||||
"automation_error": 0,
|
||||
"warn": 32,
|
||||
"info": 5
|
||||
},
|
||||
"result": "warn"
|
||||
}
|
||||
|
|
@ -0,0 +1,920 @@
|
|||
{
|
||||
"ok": true,
|
||||
"status": "applied",
|
||||
"repo_slug": "net-kingdom",
|
||||
"commit": "70f408ca2389bf3722a91a03832fc6e8587355e5",
|
||||
"requests": 2,
|
||||
"elapsed_ms": 7516.8,
|
||||
"git": {
|
||||
"upstream": "origin/main",
|
||||
"behind": 0,
|
||||
"ahead": 0
|
||||
},
|
||||
"identifiers": {
|
||||
"schema": "repo-manager.identifier-assignment.v1",
|
||||
"ok": true,
|
||||
"executed": true,
|
||||
"repo": "net-kingdom",
|
||||
"namespace": "helixforge",
|
||||
"assignments": [],
|
||||
"historical_invalid_identifiers": [],
|
||||
"files_changed": []
|
||||
},
|
||||
"receipt": {
|
||||
"schema": "state-hub.repository-projection-reconcile.v1",
|
||||
"instance_role": "primary",
|
||||
"instance_label": "railiance01",
|
||||
"expected_commit": "70f408ca2389bf3722a91a03832fc6e8587355e5",
|
||||
"derived_commit": "70f408ca2389bf3722a91a03832fc6e8587355e5",
|
||||
"outcome": {
|
||||
"schema": "state-hub.projection-reset.v1",
|
||||
"repo_slug": "net-kingdom",
|
||||
"commit": "70f408ca2389bf3722a91a03832fc6e8587355e5",
|
||||
"status": "applied",
|
||||
"counts": {
|
||||
"created": 0,
|
||||
"updated": 64,
|
||||
"retired": 0,
|
||||
"refused": 0,
|
||||
"released": 0,
|
||||
"created_tasks": 0,
|
||||
"updated_tasks": 2,
|
||||
"cancelled_tasks": 0,
|
||||
"created_edges": 1,
|
||||
"removed_edges": 0,
|
||||
"unresolved_edges": 1,
|
||||
"external_edges": 77
|
||||
},
|
||||
"created": [],
|
||||
"updated": [
|
||||
"NET-WP-0015",
|
||||
"NET-WP-0016",
|
||||
"NET-WP-0017",
|
||||
"NET-WP-0018",
|
||||
"NET-WP-0019",
|
||||
"NET-WP-0020",
|
||||
"NK-WP-0001",
|
||||
"NK-WP-0002",
|
||||
"NK-WP-0003",
|
||||
"NK-WP-0004",
|
||||
"NK-WP-0005",
|
||||
"NK-WP-0006",
|
||||
"NK-WP-0007",
|
||||
"NK-WP-0008",
|
||||
"NK-WP-0009",
|
||||
"NK-WP-0010",
|
||||
"NK-WP-0011",
|
||||
"NK-WP-0012",
|
||||
"NK-WP-0013",
|
||||
"NK-WP-0014",
|
||||
"NK-WP-0015",
|
||||
"NK-WP-0016",
|
||||
"NK-WP-0017",
|
||||
"NK-WP-0018",
|
||||
"NK-WP-0019",
|
||||
"NK-WP-0021",
|
||||
"NK-WP-0022",
|
||||
"NK-WP-0023",
|
||||
"NK-WP-0024",
|
||||
"NK-WP-0025",
|
||||
"NK-WP-0026",
|
||||
"NK-WP-0027",
|
||||
"NK-WP-0028",
|
||||
"NK-WP-0029",
|
||||
"NK-WP-0030",
|
||||
"NK-WP-0031",
|
||||
"NK-WP-0032",
|
||||
"NK-WP-0033",
|
||||
"NK-WP-0034",
|
||||
"NK-WP-0035",
|
||||
"NK-WP-0036",
|
||||
"NK-WP-0037",
|
||||
"NK-WP-0038",
|
||||
"NK-WP-0039",
|
||||
"NK-WP-0040",
|
||||
"NK-WP-0041",
|
||||
"NK-WP-0042",
|
||||
"NK-WP-0043",
|
||||
"NK-WP-0044",
|
||||
"NK-WP-0045",
|
||||
"NK-WP-0046",
|
||||
"NK-WP-0047",
|
||||
"NK-WP-0048",
|
||||
"NK-WP-0049",
|
||||
"NK-WP-0050",
|
||||
"NK-WP-0051",
|
||||
"NK-WP-ADHOC-2026-06-14",
|
||||
"NK-WP-ADHOC-2026-07-02",
|
||||
"NK-WP-ADHOC-2026-08-14",
|
||||
"NK-WP-ADHOC-2026-08-23",
|
||||
"NK-WP-ADHOC-2026-10-03",
|
||||
"NK-WP-ADHOC-2026-10-10",
|
||||
"NK-WP-ADHOC-2026-10-11",
|
||||
"NK-WP-ADHOC-2026-10-16"
|
||||
],
|
||||
"retired": [],
|
||||
"released": [],
|
||||
"created_tasks": [],
|
||||
"updated_tasks": [
|
||||
"NK-WP-0048-T21",
|
||||
"NK-WP-0049-T37"
|
||||
],
|
||||
"cancelled_tasks": [],
|
||||
"created_edges": [
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T14",
|
||||
"target": "NK-WP-0048-T21",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "fce95440-a25b-5f27-8ef3-a3d182099113",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "afe78e4d-408a-516a-ab92-e212e8a2d11d"
|
||||
}
|
||||
],
|
||||
"removed_edges": [],
|
||||
"unresolved_edges": [
|
||||
{
|
||||
"workplan": "NK-WP-0006",
|
||||
"from": "NK-WP-0006",
|
||||
"target": "NK-WP-0001",
|
||||
"reason": "missing"
|
||||
}
|
||||
],
|
||||
"external_edges": [
|
||||
{
|
||||
"workplan": "NK-WP-0008",
|
||||
"from": "NK-WP-0008",
|
||||
"target": "NK-WP-0006",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "053c6d96-9396-40c9-a2e5-c36531e7810d",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "2eb8a5e0-4e33-4ed3-8996-a2eec3aad862",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0050",
|
||||
"from": "NK-WP-0050-T03",
|
||||
"target": "RPF-WP-0056-T03",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "06ba98d5-609e-5aaa-9bf7-4c4f4460e377",
|
||||
"from_task_id": "5a3aaf57-de5c-5a03-bc99-9bcf2fc5d95e",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "a82762eb-bb6d-5600-89ca-a81ada2eba9f"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0050",
|
||||
"from": "NK-WP-0050-T03",
|
||||
"target": "NK-WP-0050-T02",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "06ba98d5-609e-5aaa-9bf7-4c4f4460e377",
|
||||
"from_task_id": "5a3aaf57-de5c-5a03-bc99-9bcf2fc5d95e",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "a9dadd07-f136-5dc7-9229-7a9dbb941f0d"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0050",
|
||||
"from": "NK-WP-0050-T02",
|
||||
"target": "NK-WP-0050-T01",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "06ba98d5-609e-5aaa-9bf7-4c4f4460e377",
|
||||
"from_task_id": "a9dadd07-f136-5dc7-9229-7a9dbb941f0d",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "64893d94-9717-5812-b8e3-7cabe095fcdc"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0017",
|
||||
"from": "NK-WP-0017",
|
||||
"target": "NK-WP-0015",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "08398d26-cadf-44bc-97ee-67da790040e6",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "343e035d-41e1-4fc4-b209-6872e4a5fdc8",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011",
|
||||
"target": "NK-WP-0006",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "2eb8a5e0-4e33-4ed3-8996-a2eec3aad862",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011",
|
||||
"target": "NK-WP-0004",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "d9cf7c4b-886b-4cd1-ad7b-99c4e1929c9e",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011",
|
||||
"target": "NK-WP-0003",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "f24cefd4-a09b-4fa1-9b25-94bf783b425e",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011-T03",
|
||||
"target": "NK-WP-0011-T02",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": "32d1411b-10a4-5a8b-8f43-99ac46d83908",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "2fe6f100-3a5d-563e-b033-7d7b846ae487"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011-T07",
|
||||
"target": "NK-WP-0011-T03",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": "38998c68-29bf-50d2-8c8d-0c75184d5833",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "32d1411b-10a4-5a8b-8f43-99ac46d83908"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011-T07",
|
||||
"target": "NK-WP-0011-T04",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": "38998c68-29bf-50d2-8c8d-0c75184d5833",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "6697a994-7343-5ea8-8b37-bc3b921e5a9b"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011-T07",
|
||||
"target": "NK-WP-0011-T05",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": "38998c68-29bf-50d2-8c8d-0c75184d5833",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "d845380d-3dbc-5e59-8f2b-5a4d1b32d89d"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011-T04",
|
||||
"target": "NK-WP-0011-T03",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": "6697a994-7343-5ea8-8b37-bc3b921e5a9b",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "32d1411b-10a4-5a8b-8f43-99ac46d83908"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011-T06",
|
||||
"target": "NK-WP-0011-T03",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": "9cb7fd93-c16e-5102-83ce-195b3aa87446",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "32d1411b-10a4-5a8b-8f43-99ac46d83908"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011-T06",
|
||||
"target": "NK-WP-0011-T04",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": "9cb7fd93-c16e-5102-83ce-195b3aa87446",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "6697a994-7343-5ea8-8b37-bc3b921e5a9b"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011-T06",
|
||||
"target": "NK-WP-0011-T05",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": "9cb7fd93-c16e-5102-83ce-195b3aa87446",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "d845380d-3dbc-5e59-8f2b-5a4d1b32d89d"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011-T05",
|
||||
"target": "NK-WP-0011-T04",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": "d845380d-3dbc-5e59-8f2b-5a4d1b32d89d",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "6697a994-7343-5ea8-8b37-bc3b921e5a9b"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011-T09",
|
||||
"target": "NK-WP-0011-T03",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": "d9dc4292-6b66-5797-9ff9-a1a4a556278e",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "32d1411b-10a4-5a8b-8f43-99ac46d83908"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011-T09",
|
||||
"target": "NK-WP-0011-T07",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": "d9dc4292-6b66-5797-9ff9-a1a4a556278e",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "38998c68-29bf-50d2-8c8d-0c75184d5833"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011-T09",
|
||||
"target": "NK-WP-0011-T08",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": "d9dc4292-6b66-5797-9ff9-a1a4a556278e",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "e5f44ddc-9645-5f61-b84c-da5ab9cccb6d"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011-T08",
|
||||
"target": "NK-WP-0011-T02",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": "e5f44ddc-9645-5f61-b84c-da5ab9cccb6d",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "2fe6f100-3a5d-563e-b033-7d7b846ae487"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0011",
|
||||
"from": "NK-WP-0011-T08",
|
||||
"target": "NK-WP-0011-T03",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "1075448f-d533-5f9e-94b7-c3adfe151a07",
|
||||
"from_task_id": "e5f44ddc-9645-5f61-b84c-da5ab9cccb6d",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "32d1411b-10a4-5a8b-8f43-99ac46d83908"
|
||||
},
|
||||
{
|
||||
"workplan": "NET-WP-0016",
|
||||
"from": "NET-WP-0016",
|
||||
"target": "NET-WP-0015",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "16069174-6698-4855-ad9e-5092c8571f38",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "6b9c25e4-1008-429a-8de6-54361872c0dd",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NET-WP-0016",
|
||||
"from": "NET-WP-0016",
|
||||
"target": "NK-WP-0012",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "16069174-6698-4855-ad9e-5092c8571f38",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "9b8e4afc-eb71-47d9-8750-799a082b320a",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0049",
|
||||
"from": "NK-WP-0049-T18",
|
||||
"target": "NK-WP-0049-T33",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "17d315f0-829e-57c7-85cc-3a7914152804",
|
||||
"from_task_id": "141dd773-c1fa-56c1-a852-bbe2372e5125",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "56c8d469-7a10-5d50-a30e-95cbf3cd4756"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0049",
|
||||
"from": "NK-WP-0049-T18",
|
||||
"target": "NK-WP-0049-T32",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "17d315f0-829e-57c7-85cc-3a7914152804",
|
||||
"from_task_id": "141dd773-c1fa-56c1-a852-bbe2372e5125",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "cd78dbb7-a8f2-5754-8788-6eb1b7d97741"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0049",
|
||||
"from": "NK-WP-0049-T35",
|
||||
"target": "NK-WP-0049-T34",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "17d315f0-829e-57c7-85cc-3a7914152804",
|
||||
"from_task_id": "1bfd1703-589f-5511-bad5-812d860e4a71",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "821b3a56-6f36-5812-abc9-5a00e37cb2e7"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0049",
|
||||
"from": "NK-WP-0049-T33",
|
||||
"target": "NK-WP-0049-T35",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "17d315f0-829e-57c7-85cc-3a7914152804",
|
||||
"from_task_id": "56c8d469-7a10-5d50-a30e-95cbf3cd4756",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "1bfd1703-589f-5511-bad5-812d860e4a71"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0049",
|
||||
"from": "NK-WP-0049-T33",
|
||||
"target": "NK-WP-0049-T34",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "17d315f0-829e-57c7-85cc-3a7914152804",
|
||||
"from_task_id": "56c8d469-7a10-5d50-a30e-95cbf3cd4756",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "821b3a56-6f36-5812-abc9-5a00e37cb2e7"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0049",
|
||||
"from": "NK-WP-0049-T33",
|
||||
"target": "NK-WP-0049-T36",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "17d315f0-829e-57c7-85cc-3a7914152804",
|
||||
"from_task_id": "56c8d469-7a10-5d50-a30e-95cbf3cd4756",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "8b72334b-fc27-5707-a189-bad345eaf3bc"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0049",
|
||||
"from": "NK-WP-0049-T33",
|
||||
"target": "NK-WP-0049-T32",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "17d315f0-829e-57c7-85cc-3a7914152804",
|
||||
"from_task_id": "56c8d469-7a10-5d50-a30e-95cbf3cd4756",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "cd78dbb7-a8f2-5754-8788-6eb1b7d97741"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0049",
|
||||
"from": "NK-WP-0049-T36",
|
||||
"target": "NK-WP-0049-T34",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "17d315f0-829e-57c7-85cc-3a7914152804",
|
||||
"from_task_id": "8b72334b-fc27-5707-a189-bad345eaf3bc",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "821b3a56-6f36-5812-abc9-5a00e37cb2e7"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0049",
|
||||
"from": "NK-WP-0049-T03",
|
||||
"target": "NK-WP-0049-T02",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "17d315f0-829e-57c7-85cc-3a7914152804",
|
||||
"from_task_id": "d68cd4d3-1ba3-530e-88f9-26ebb8dd6eac",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "479d6970-6516-50f5-9436-bb5b56d58aad"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0025",
|
||||
"from": "NK-WP-0025",
|
||||
"target": "NK-WP-0024",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "2412a251-d6b5-5f05-8082-3eb7697c51dc",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "635a73d4-b3cb-5c38-af22-56a6a66beb0e",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0016",
|
||||
"from": "NK-WP-0016",
|
||||
"target": "NK-WP-0015",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "2d592e18-e63d-4856-97a1-f8c3e019e150",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "343e035d-41e1-4fc4-b209-6872e4a5fdc8",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0006",
|
||||
"from": "NK-WP-0006",
|
||||
"target": "NK-WP-0005",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "2eb8a5e0-4e33-4ed3-8996-a2eec3aad862",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "75bc472b-cc0a-48f2-afb6-62b896f7cc19",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0006",
|
||||
"from": "NK-WP-0006",
|
||||
"target": "NK-WP-0004",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "2eb8a5e0-4e33-4ed3-8996-a2eec3aad862",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "d9cf7c4b-886b-4cd1-ad7b-99c4e1929c9e",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0013",
|
||||
"from": "NK-WP-0013",
|
||||
"target": "NK-WP-0006",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "32a54d8e-8633-42a6-8ec1-104842c581c1",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "2eb8a5e0-4e33-4ed3-8996-a2eec3aad862",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0015",
|
||||
"from": "NK-WP-0015",
|
||||
"target": "NK-WP-0014",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "343e035d-41e1-4fc4-b209-6872e4a5fdc8",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "b9bf56bc-7ef6-43eb-badc-fa0f4896c63c",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NET-WP-0017",
|
||||
"from": "NET-WP-0017",
|
||||
"target": "NET-WP-0016",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "385de708-fd59-4bab-a4f4-28c1c476b3ea",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "16069174-6698-4855-ad9e-5092c8571f38",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NET-WP-0017",
|
||||
"from": "NET-WP-0017",
|
||||
"target": "NET-WP-0015",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "385de708-fd59-4bab-a4f4-28c1c476b3ea",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "6b9c25e4-1008-429a-8de6-54361872c0dd",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0007",
|
||||
"from": "NK-WP-0007",
|
||||
"target": "NK-WP-0006",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "3cbc81ec-7ad5-46cf-a4a0-fc5fe9873695",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "2eb8a5e0-4e33-4ed3-8996-a2eec3aad862",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0007",
|
||||
"from": "NK-WP-0007",
|
||||
"target": "NK-WP-0005",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "3cbc81ec-7ad5-46cf-a4a0-fc5fe9873695",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "75bc472b-cc0a-48f2-afb6-62b896f7cc19",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0007",
|
||||
"from": "NK-WP-0007",
|
||||
"target": "NK-WP-0004",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "3cbc81ec-7ad5-46cf-a4a0-fc5fe9873695",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "d9cf7c4b-886b-4cd1-ad7b-99c4e1929c9e",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0024",
|
||||
"from": "NK-WP-0024",
|
||||
"target": "NK-WP-0023",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "635a73d4-b3cb-5c38-af22-56a6a66beb0e",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "fdb3deee-06c3-5d12-91ce-9c50b2ac0618",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NET-WP-0015",
|
||||
"from": "NET-WP-0015",
|
||||
"target": "NK-WP-0006",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "6b9c25e4-1008-429a-8de6-54361872c0dd",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "2eb8a5e0-4e33-4ed3-8996-a2eec3aad862",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NET-WP-0015",
|
||||
"from": "NET-WP-0015",
|
||||
"target": "NK-WP-0012",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "6b9c25e4-1008-429a-8de6-54361872c0dd",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "9b8e4afc-eb71-47d9-8750-799a082b320a",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0018",
|
||||
"from": "NK-WP-0018",
|
||||
"target": "NK-WP-0017",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "6f75035a-e056-4eab-8fdb-00a18bacdf87",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "08398d26-cadf-44bc-97ee-67da790040e6",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0018",
|
||||
"from": "NK-WP-0018",
|
||||
"target": "NK-WP-0016",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "6f75035a-e056-4eab-8fdb-00a18bacdf87",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "2d592e18-e63d-4856-97a1-f8c3e019e150",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0005",
|
||||
"from": "NK-WP-0005",
|
||||
"target": "NK-WP-0004",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "75bc472b-cc0a-48f2-afb6-62b896f7cc19",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "d9cf7c4b-886b-4cd1-ad7b-99c4e1929c9e",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NET-WP-0019",
|
||||
"from": "NET-WP-0019",
|
||||
"target": "NET-WP-0017",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "75d388b6-7ec1-4e1b-8c87-6ff44f953210",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "385de708-fd59-4bab-a4f4-28c1c476b3ea",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NET-WP-0019",
|
||||
"from": "NET-WP-0019",
|
||||
"target": "NET-WP-0018",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "75d388b6-7ec1-4e1b-8c87-6ff44f953210",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "800f9f16-bc44-4bbf-a771-58a630a3b698",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NET-WP-0018",
|
||||
"from": "NET-WP-0018",
|
||||
"target": "NET-WP-0017",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "800f9f16-bc44-4bbf-a771-58a630a3b698",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "385de708-fd59-4bab-a4f4-28c1c476b3ea",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NET-WP-0018",
|
||||
"from": "NET-WP-0018",
|
||||
"target": "NET-WP-0015",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "800f9f16-bc44-4bbf-a771-58a630a3b698",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "6b9c25e4-1008-429a-8de6-54361872c0dd",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0027",
|
||||
"from": "NK-WP-0027-T03",
|
||||
"target": "NK-WP-0027-T02",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "965ad365-6b81-50a1-a2a3-2d0c1fcce0b4",
|
||||
"from_task_id": "e3f0bb0f-0c85-5cb9-a5ab-75f668cd3447",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "5b35b646-a525-55da-852a-6005613d42ea"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0012",
|
||||
"from": "NK-WP-0012",
|
||||
"target": "NK-WP-0006",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "9b8e4afc-eb71-47d9-8750-799a082b320a",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "2eb8a5e0-4e33-4ed3-8996-a2eec3aad862",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0014",
|
||||
"from": "NK-WP-0014",
|
||||
"target": "NK-WP-0013",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "b9bf56bc-7ef6-43eb-badc-fa0f4896c63c",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "32a54d8e-8633-42a6-8ec1-104842c581c1",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0014",
|
||||
"from": "NK-WP-0014",
|
||||
"target": "NK-WP-0012",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "b9bf56bc-7ef6-43eb-badc-fa0f4896c63c",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "9b8e4afc-eb71-47d9-8750-799a082b320a",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0019",
|
||||
"from": "NK-WP-0019",
|
||||
"target": "NK-WP-0018",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "d2daa8b4-8ecf-4377-b382-492e653735f7",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "6f75035a-e056-4eab-8fdb-00a18bacdf87",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0009",
|
||||
"from": "NK-WP-0009",
|
||||
"target": "NK-WP-0008",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "d4d02dbf-3974-502d-8b87-b776fc63e17e",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "053c6d96-9396-40c9-a2e5-c36531e7810d",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0022",
|
||||
"from": "NK-WP-0022",
|
||||
"target": "NK-WP-0023",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "d76ddccc-00c8-548a-b141-2cd660fa38da",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "fdb3deee-06c3-5d12-91ce-9c50b2ac0618",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T07",
|
||||
"target": "NK-WP-0048-T06",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "c3c9c3ae-4f23-5ba7-9e6f-e63bcf29b9f7",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T06",
|
||||
"target": "NK-WP-0048-T09",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "0ee12dfc-8260-5038-bd39-cc7fb4113be0"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T06",
|
||||
"target": "NK-WP-0048-T15",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "1b825705-4848-5edc-832f-b1622cd9bdb7"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T06",
|
||||
"target": "NK-WP-0048-T16",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "200bf500-5084-5ae7-be26-3033fe1f296e"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T06",
|
||||
"target": "NK-WP-0048-T05",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "3d987d3d-0797-538b-86e4-51185a327ae2"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T06",
|
||||
"target": "MASON-WP-0010-T03",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "56cea6be-c613-586c-80cd-125340b374da"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T06",
|
||||
"target": "NK-WP-0048-T12",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "7ce4eee3-cd47-55a9-bfa5-4f1835d4d6fd"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T06",
|
||||
"target": "NK-WP-0048-T20",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "863fcbdb-e246-51ba-87ca-a2f44d01d6f8"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T06",
|
||||
"target": "NK-WP-0048-T17",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "8c3e4baa-a218-5996-af9e-fe1153a46dac"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T06",
|
||||
"target": "NK-WP-0048-T08",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "8e519082-dc8b-5e46-b660-03d03e55dcf6"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T06",
|
||||
"target": "NK-WP-0048-T18",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "9c45da71-fb4c-5f20-9065-90f448f37c64"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T06",
|
||||
"target": "NK-WP-0048-T13",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "b264c10b-565c-5d29-b788-03cf5fbd2883"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T06",
|
||||
"target": "WARDEN-WP-0044-T03",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "bcbf6c91-2c04-5c16-ae8c-5d6c06fd6b89"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T06",
|
||||
"target": "NK-WP-0048-T14",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "fce95440-a25b-5f27-8ef3-a3d182099113"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0048",
|
||||
"from": "NK-WP-0048-T14",
|
||||
"target": "NK-WP-0048-T20",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb",
|
||||
"from_task_id": "fce95440-a25b-5f27-8ef3-a3d182099113",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "863fcbdb-e246-51ba-87ca-a2f44d01d6f8"
|
||||
},
|
||||
{
|
||||
"workplan": "NK-WP-0010",
|
||||
"from": "NK-WP-0010",
|
||||
"target": "NK-WP-0008",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "f4faf8b4-ae57-40cf-a881-6fe66ca6ad74",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "053c6d96-9396-40c9-a2e5-c36531e7810d",
|
||||
"to_task_id": null
|
||||
}
|
||||
],
|
||||
"refused": [],
|
||||
"notes": []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"stable_proposal_id": "STATE-WP-0095-T06-cluster-frozen-receiving-r1",
|
||||
"revision": 4,
|
||||
"digest_sha256": "63a02e8296d126c0158b7eb2c4ce79c7eeb6f8d6f61298d473c1065c7557ba32",
|
||||
"disposition": "pending",
|
||||
"executed": false,
|
||||
"authority_unchanged": true,
|
||||
"record_postimage_sha256": "788613168f7d2b1dec4709b7f0533d6bc013405bb259feb7267d77add086e7b2"
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"schema": "custodian.pg-fixture-independent-cleanup.v1",
|
||||
"manifest_sha256": "78f2b0bbd7639780ca3a3a689310527f31e7e14c1fdb497a48bac4f69bce4093",
|
||||
"engine_id": "74f93783-6cef-43a8-a3c4-f62586cd3bc1",
|
||||
"session": {
|
||||
"run_id": "a20a5eed1ee54968b61e8a1cb2043b30",
|
||||
"containers": [
|
||||
"nk49-kc-a20a5eed1ee54968b61e8a1cb2043b30-journal-postgres",
|
||||
"nk49-kc-a20a5eed1ee54968b61e8a1cb2043b30-journal-probe"
|
||||
],
|
||||
"label": "net-kingdom.recovery-run=a20a5eed1ee54968b61e8a1cb2043b30"
|
||||
},
|
||||
"label_resources_absent": true,
|
||||
"exact_names_absent": true,
|
||||
"production_contacted": false
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"schema": "custodian.fixture-independent-cleanup.v1",
|
||||
"manifest_sha256": "d862780e2954d7103a32294ff67e1bfe5e70b5f33bf66ffe73b8521a76bb362d",
|
||||
"engine_id": "74f93783-6cef-43a8-a3c4-f62586cd3bc1",
|
||||
"session": {
|
||||
"run_id": "ad8c853f4cee4c8586fbadc5571c27a7",
|
||||
"containers": [
|
||||
"nk49-kc-ad8c853f4cee4c8586fbadc5571c27a7-journal-postgres",
|
||||
"nk49-kc-ad8c853f4cee4c8586fbadc5571c27a7-journal-probe"
|
||||
],
|
||||
"label": "net-kingdom.recovery-run=ad8c853f4cee4c8586fbadc5571c27a7"
|
||||
},
|
||||
"result_sha256": "sha256:540a4080f57514fde4e07c2fab888456e4d6fbe7b22d016fe4bcce7bbc35e715",
|
||||
"label_resources_absent": true,
|
||||
"exact_names_absent": true,
|
||||
"production_contacted": false
|
||||
}
|
||||
|
|
@ -0,0 +1,224 @@
|
|||
{
|
||||
"schema": "nk48.synthetic-postgres-journal-result.v1",
|
||||
"status": "failed",
|
||||
"manifest_sha256": "d862780e2954d7103a32294ff67e1bfe5e70b5f33bf66ffe73b8521a76bb362d",
|
||||
"production_contacted": false,
|
||||
"actual_credentials_used": false,
|
||||
"native_acceptance_claimed": false,
|
||||
"session": {
|
||||
"run_id": "ad8c853f4cee4c8586fbadc5571c27a7",
|
||||
"containers": [
|
||||
"nk49-kc-ad8c853f4cee4c8586fbadc5571c27a7-journal-postgres",
|
||||
"nk49-kc-ad8c853f4cee4c8586fbadc5571c27a7-journal-probe"
|
||||
],
|
||||
"label": "net-kingdom.recovery-run=ad8c853f4cee4c8586fbadc5571c27a7"
|
||||
},
|
||||
"driver_stage": "cleanup",
|
||||
"rpc_trace": [
|
||||
{
|
||||
"stage": "anchor_launch",
|
||||
"operation": "run",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "anchor_containment",
|
||||
"operation": "context",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "anchor_containment",
|
||||
"operation": "info",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "anchor_containment",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "anchor_containment",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "postgres_private_import",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "postgres_initdb",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "postgres_launch",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "anchor_identity",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "helper_launch",
|
||||
"operation": "run",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "full_containment",
|
||||
"operation": "context",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "full_containment",
|
||||
"operation": "info",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "full_containment",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "full_containment",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "full_containment",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "helper_interpreter",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "candidate_import",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "bootstrap",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "database_dump",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "restart",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "rm",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "rm",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
}
|
||||
],
|
||||
"postgres_initdb_complete": true,
|
||||
"containment_verified_before_generated_private_import": true,
|
||||
"helper_interpreter_verified_before_candidate_import": true,
|
||||
"helper_psycopg_version": "3.3.6",
|
||||
"checks": {
|
||||
"only_loopback_no_external_routes": true,
|
||||
"actual_postgresql_journal_ensure": true,
|
||||
"explicit_scope_context_retained": true,
|
||||
"confirmed_inventory_excludes_preexisting": true,
|
||||
"runtime_ddl_denied": true
|
||||
},
|
||||
"helper_diagnostics": {
|
||||
"bootstrap": {
|
||||
"status": "passed",
|
||||
"stages": [
|
||||
"probe_entry",
|
||||
"loopback_check",
|
||||
"phase_dispatch",
|
||||
"bootstrap_connect_wait",
|
||||
"bootstrap_connected",
|
||||
"bootstrap_schema",
|
||||
"bootstrap_migration",
|
||||
"bootstrap_epoch_insert",
|
||||
"bootstrap_role_create",
|
||||
"bootstrap_runtime_grants",
|
||||
"bootstrap_checkpoint_init",
|
||||
"bootstrap_directory_init",
|
||||
"bootstrap_ensure",
|
||||
"bootstrap_ensure_readback",
|
||||
"bootstrap_runtime_ddl_refusal",
|
||||
"bootstrap_complete",
|
||||
"phase_complete"
|
||||
]
|
||||
},
|
||||
"restart": {
|
||||
"status": "failed",
|
||||
"stages": [
|
||||
"probe_entry",
|
||||
"loopback_check",
|
||||
"phase_dispatch"
|
||||
],
|
||||
"diagnostic": {
|
||||
"stage": "phase_dispatch",
|
||||
"exception_class": "RuntimeError",
|
||||
"sqlstate": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"psycopg_version": "3.3.6",
|
||||
"driver_failure": {
|
||||
"stage": "restart",
|
||||
"exception_class": "RuntimeError",
|
||||
"sqlstate": null
|
||||
},
|
||||
"container_cleanup_obligations": [
|
||||
{
|
||||
"container": "nk49-kc-ad8c853f4cee4c8586fbadc5571c27a7-journal-probe",
|
||||
"status": "absence_verified"
|
||||
},
|
||||
{
|
||||
"container": "nk49-kc-ad8c853f4cee4c8586fbadc5571c27a7-journal-postgres",
|
||||
"status": "absence_verified"
|
||||
}
|
||||
],
|
||||
"container_cleanup_verified": true
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"schema": "custodian.fixture-independent-cleanup.v1",
|
||||
"manifest_sha256": "d51f90816616848b93bcdc482e10a98d07061deb01eeed9e50700fc6e68b6051",
|
||||
"engine_id": "74f93783-6cef-43a8-a3c4-f62586cd3bc1",
|
||||
"session": {
|
||||
"run_id": "492a7afaec6b43ef92b98eb76025362f",
|
||||
"containers": [
|
||||
"nk49-kc-492a7afaec6b43ef92b98eb76025362f-journal-postgres",
|
||||
"nk49-kc-492a7afaec6b43ef92b98eb76025362f-journal-probe"
|
||||
],
|
||||
"label": "net-kingdom.recovery-run=492a7afaec6b43ef92b98eb76025362f"
|
||||
},
|
||||
"result_sha256": "sha256:d72cc5e0788b7be69fc40c641e20680d29a175181334396b5f7fcecc0c0763d9",
|
||||
"label_resources_absent": true,
|
||||
"exact_names_absent": true,
|
||||
"production_contacted": false
|
||||
}
|
||||
|
|
@ -0,0 +1,300 @@
|
|||
{
|
||||
"schema": "nk48.synthetic-postgres-journal-result.v1",
|
||||
"status": "synthetic_postgres_journal_compatibility_passed",
|
||||
"manifest_sha256": "d51f90816616848b93bcdc482e10a98d07061deb01eeed9e50700fc6e68b6051",
|
||||
"production_contacted": false,
|
||||
"actual_credentials_used": false,
|
||||
"native_acceptance_claimed": false,
|
||||
"session": {
|
||||
"run_id": "492a7afaec6b43ef92b98eb76025362f",
|
||||
"containers": [
|
||||
"nk49-kc-492a7afaec6b43ef92b98eb76025362f-journal-postgres",
|
||||
"nk49-kc-492a7afaec6b43ef92b98eb76025362f-journal-probe"
|
||||
],
|
||||
"label": "net-kingdom.recovery-run=492a7afaec6b43ef92b98eb76025362f"
|
||||
},
|
||||
"driver_stage": "cleanup",
|
||||
"rpc_trace": [
|
||||
{
|
||||
"stage": "anchor_launch",
|
||||
"operation": "run",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "anchor_containment",
|
||||
"operation": "context",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "anchor_containment",
|
||||
"operation": "info",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "anchor_containment",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "anchor_containment",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "postgres_private_import",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "postgres_initdb",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "postgres_launch",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "anchor_identity",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "helper_launch",
|
||||
"operation": "run",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "full_containment",
|
||||
"operation": "context",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "full_containment",
|
||||
"operation": "info",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "full_containment",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "full_containment",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "full_containment",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "helper_interpreter",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "candidate_import",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "bootstrap",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "database_dump",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "restart",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "concurrency",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "fork",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "lost-ack",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "database_restore",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "restored",
|
||||
"operation": "exec",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "rm",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "rm",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"stage": "cleanup",
|
||||
"operation": "container",
|
||||
"status": "completed"
|
||||
}
|
||||
],
|
||||
"postgres_initdb_complete": true,
|
||||
"containment_verified_before_generated_private_import": true,
|
||||
"helper_interpreter_verified_before_candidate_import": true,
|
||||
"helper_psycopg_version": "3.3.6",
|
||||
"checks": {
|
||||
"only_loopback_no_external_routes": true,
|
||||
"actual_postgresql_journal_ensure": true,
|
||||
"explicit_scope_context_retained": true,
|
||||
"confirmed_inventory_excludes_preexisting": true,
|
||||
"runtime_ddl_denied": true,
|
||||
"separate_process_postgres_restart_and_revoke": true,
|
||||
"preexisting_shared_state_preserved": true,
|
||||
"foreign_context_receipt_refused": true,
|
||||
"concurrent_original_reservation_exactly_once": true,
|
||||
"stale_version_update_refused_without_head_advance": true,
|
||||
"concurrent_divergent_clones_same_counter_verified": true,
|
||||
"independent_exact_transition_cas_selects_one_winner": true,
|
||||
"reopened_loser_clone_refused_at_same_counter": true,
|
||||
"lost_checkpoint_ack_retains_pending_reservation": true,
|
||||
"reopened_uncertainty_refuses_ldap_effects": true,
|
||||
"active_fence_survives_process_reopen": true,
|
||||
"lost_synthetic_directory_response_retains_postgres_intent": true,
|
||||
"lost_sql_commit_reply_retains_committed_head": true,
|
||||
"reopened_stale_checkpoint_refuses_continuation": true,
|
||||
"actual_pg_restore_behind_checkpoint_detected": true,
|
||||
"restored_store_cannot_gain_replay_authority": true
|
||||
},
|
||||
"helper_diagnostics": {
|
||||
"bootstrap": {
|
||||
"status": "passed",
|
||||
"stages": [
|
||||
"probe_entry",
|
||||
"loopback_check",
|
||||
"phase_dispatch",
|
||||
"bootstrap_connect_wait",
|
||||
"bootstrap_connected",
|
||||
"bootstrap_schema",
|
||||
"bootstrap_migration",
|
||||
"bootstrap_epoch_insert",
|
||||
"bootstrap_role_create",
|
||||
"bootstrap_runtime_grants",
|
||||
"bootstrap_checkpoint_init",
|
||||
"bootstrap_directory_init",
|
||||
"bootstrap_ensure",
|
||||
"bootstrap_ensure_readback",
|
||||
"bootstrap_runtime_ddl_refusal",
|
||||
"bootstrap_complete",
|
||||
"phase_complete"
|
||||
]
|
||||
},
|
||||
"restart": {
|
||||
"status": "passed",
|
||||
"stages": [
|
||||
"probe_entry",
|
||||
"loopback_check",
|
||||
"phase_dispatch",
|
||||
"restart_load_snapshot",
|
||||
"restart_reopen_store",
|
||||
"restart_replay_ensure",
|
||||
"restart_revoke",
|
||||
"restart_revoke_readback",
|
||||
"restart_prestate_equality",
|
||||
"restart_foreign_context",
|
||||
"restart_complete",
|
||||
"phase_complete"
|
||||
]
|
||||
},
|
||||
"concurrency": {
|
||||
"status": "passed",
|
||||
"stages": [
|
||||
"probe_entry",
|
||||
"loopback_check",
|
||||
"phase_dispatch",
|
||||
"phase_complete"
|
||||
]
|
||||
},
|
||||
"fork": {
|
||||
"status": "passed",
|
||||
"stages": [
|
||||
"probe_entry",
|
||||
"loopback_check",
|
||||
"phase_dispatch",
|
||||
"phase_complete"
|
||||
]
|
||||
},
|
||||
"lost-ack": {
|
||||
"status": "passed",
|
||||
"stages": [
|
||||
"probe_entry",
|
||||
"loopback_check",
|
||||
"phase_dispatch",
|
||||
"phase_complete"
|
||||
]
|
||||
},
|
||||
"restored": {
|
||||
"status": "passed",
|
||||
"stages": [
|
||||
"probe_entry",
|
||||
"loopback_check",
|
||||
"phase_dispatch",
|
||||
"phase_complete"
|
||||
]
|
||||
}
|
||||
},
|
||||
"psycopg_version": "3.3.6",
|
||||
"container_cleanup_obligations": [
|
||||
{
|
||||
"container": "nk49-kc-492a7afaec6b43ef92b98eb76025362f-journal-probe",
|
||||
"status": "absence_verified"
|
||||
},
|
||||
{
|
||||
"container": "nk49-kc-492a7afaec6b43ef92b98eb76025362f-journal-postgres",
|
||||
"status": "absence_verified"
|
||||
}
|
||||
],
|
||||
"container_cleanup_verified": true
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"status": "unverified",
|
||||
"exit_code": 1,
|
||||
"fixed_reason": "namespace_preflight_or_runtime_failed",
|
||||
"private_diagnostics_suppressed": true,
|
||||
"binary_sha256": "sha256:e5bec3346a873ae91d871550f3e698c1aad962aff462a080e40f25fde17fef6b",
|
||||
"driver_sha256": "sha256:384c508e0dc3c1912a0c6218cf5905cf963b7843fbd0f5fae72cfc5cfe462a2a",
|
||||
"namespace_teardown_complete": true,
|
||||
"system_installation": false
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"status": "passed",
|
||||
"exit_code": 0,
|
||||
"count_summary": [
|
||||
"61 passed in 10.95s"
|
||||
],
|
||||
"private_diagnostics_suppressed": true,
|
||||
"generated_material_only": true,
|
||||
"host_custody_mounted": false,
|
||||
"network_routes_absent": true,
|
||||
"binary_sha256": "sha256:e5bec3346a873ae91d871550f3e698c1aad962aff462a080e40f25fde17fef6b",
|
||||
"driver_sha256": "sha256:68d107e81dd619289f66b0f4f4df1e3fec09f7cd039e92457fb92a08ef1fb360",
|
||||
"namespace_teardown_complete": true,
|
||||
"system_installation": false
|
||||
}
|
||||
|
|
@ -0,0 +1,183 @@
|
|||
{
|
||||
"status": "verified",
|
||||
"scope": "two actual configured hooks; generated alternate-index/object fixtures in mount/user/network namespaces",
|
||||
"provider_calls": 0,
|
||||
"real_credentials_read": false,
|
||||
"real_index_opened": false,
|
||||
"source_sha256": "e709c658f779534fcab093207b0a78e49d54fc584c515fdf7ac535ce75f6c400",
|
||||
"scanner_sha256": "88f91962aa2f93ac6ab281d553b9e125f5197bbbce38f9f2437f7299c32e5509",
|
||||
"hook_sha256": "d50cf763dc9814383c6886e30b6650bbbdcb49ddd78889082e3fda3626a2cbfd",
|
||||
"bwrap_sha256": "e318903862396f96de3df57264e0158682b952fd3fb53ac23d876413e7b30f71",
|
||||
"host_scanner_modified": false,
|
||||
"rows": [
|
||||
{
|
||||
"repo": "repo-manager",
|
||||
"case": "clean-control",
|
||||
"status": "clean",
|
||||
"exit_code": 0,
|
||||
"scanned_blobs": 1,
|
||||
"reason": null,
|
||||
"namespace_readback": {
|
||||
"verified": true,
|
||||
"root_identity_preserved": true,
|
||||
"shm_identity_preserved": true,
|
||||
"root_readonly": true,
|
||||
"shm_writable": true,
|
||||
"user_mount_network_namespaces_changed": true,
|
||||
"pid_namespace_preserved": true,
|
||||
"uid_gid_preserved": true,
|
||||
"null_device_readback": {
|
||||
"character_device": true,
|
||||
"host_identity_and_rdev_preserved": true,
|
||||
"read_write_open_verified": true
|
||||
},
|
||||
"source_sha256": "e709c658f779534fcab093207b0a78e49d54fc584c515fdf7ac535ce75f6c400",
|
||||
"hook_sha256": "d50cf763dc9814383c6886e30b6650bbbdcb49ddd78889082e3fda3626a2cbfd",
|
||||
"interpreter_sha256": "e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f",
|
||||
"scanner_view": "pinned-real-scanner"
|
||||
}
|
||||
},
|
||||
{
|
||||
"repo": "repo-manager",
|
||||
"case": "generated-key-control",
|
||||
"status": "blocked",
|
||||
"exit_code": 1,
|
||||
"scanned_blobs": 1,
|
||||
"reason": null,
|
||||
"namespace_readback": {
|
||||
"verified": true,
|
||||
"root_identity_preserved": true,
|
||||
"shm_identity_preserved": true,
|
||||
"root_readonly": true,
|
||||
"shm_writable": true,
|
||||
"user_mount_network_namespaces_changed": true,
|
||||
"pid_namespace_preserved": true,
|
||||
"uid_gid_preserved": true,
|
||||
"null_device_readback": {
|
||||
"character_device": true,
|
||||
"host_identity_and_rdev_preserved": true,
|
||||
"read_write_open_verified": true
|
||||
},
|
||||
"source_sha256": "e709c658f779534fcab093207b0a78e49d54fc584c515fdf7ac535ce75f6c400",
|
||||
"hook_sha256": "d50cf763dc9814383c6886e30b6650bbbdcb49ddd78889082e3fda3626a2cbfd",
|
||||
"interpreter_sha256": "e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f",
|
||||
"scanner_view": "pinned-real-scanner"
|
||||
}
|
||||
},
|
||||
{
|
||||
"repo": "repo-manager",
|
||||
"case": "scanner-unavailable",
|
||||
"status": "unverified",
|
||||
"exit_code": 2,
|
||||
"scanned_blobs": 0,
|
||||
"reason": "scanner-file-refused",
|
||||
"namespace_readback": {
|
||||
"verified": true,
|
||||
"root_identity_preserved": true,
|
||||
"shm_identity_preserved": true,
|
||||
"root_readonly": true,
|
||||
"shm_writable": true,
|
||||
"user_mount_network_namespaces_changed": true,
|
||||
"pid_namespace_preserved": true,
|
||||
"uid_gid_preserved": true,
|
||||
"null_device_readback": {
|
||||
"character_device": true,
|
||||
"host_identity_and_rdev_preserved": true,
|
||||
"read_write_open_verified": true
|
||||
},
|
||||
"source_sha256": "e709c658f779534fcab093207b0a78e49d54fc584c515fdf7ac535ce75f6c400",
|
||||
"hook_sha256": "d50cf763dc9814383c6886e30b6650bbbdcb49ddd78889082e3fda3626a2cbfd",
|
||||
"interpreter_sha256": "e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f",
|
||||
"scanner_view": "empty-0400-shadow"
|
||||
}
|
||||
},
|
||||
{
|
||||
"repo": "the-custodian",
|
||||
"case": "clean-control",
|
||||
"status": "clean",
|
||||
"exit_code": 0,
|
||||
"scanned_blobs": 1,
|
||||
"reason": null,
|
||||
"namespace_readback": {
|
||||
"verified": true,
|
||||
"root_identity_preserved": true,
|
||||
"shm_identity_preserved": true,
|
||||
"root_readonly": true,
|
||||
"shm_writable": true,
|
||||
"user_mount_network_namespaces_changed": true,
|
||||
"pid_namespace_preserved": true,
|
||||
"uid_gid_preserved": true,
|
||||
"null_device_readback": {
|
||||
"character_device": true,
|
||||
"host_identity_and_rdev_preserved": true,
|
||||
"read_write_open_verified": true
|
||||
},
|
||||
"source_sha256": "e709c658f779534fcab093207b0a78e49d54fc584c515fdf7ac535ce75f6c400",
|
||||
"hook_sha256": "d50cf763dc9814383c6886e30b6650bbbdcb49ddd78889082e3fda3626a2cbfd",
|
||||
"interpreter_sha256": "e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f",
|
||||
"scanner_view": "pinned-real-scanner"
|
||||
}
|
||||
},
|
||||
{
|
||||
"repo": "the-custodian",
|
||||
"case": "generated-key-control",
|
||||
"status": "blocked",
|
||||
"exit_code": 1,
|
||||
"scanned_blobs": 1,
|
||||
"reason": null,
|
||||
"namespace_readback": {
|
||||
"verified": true,
|
||||
"root_identity_preserved": true,
|
||||
"shm_identity_preserved": true,
|
||||
"root_readonly": true,
|
||||
"shm_writable": true,
|
||||
"user_mount_network_namespaces_changed": true,
|
||||
"pid_namespace_preserved": true,
|
||||
"uid_gid_preserved": true,
|
||||
"null_device_readback": {
|
||||
"character_device": true,
|
||||
"host_identity_and_rdev_preserved": true,
|
||||
"read_write_open_verified": true
|
||||
},
|
||||
"source_sha256": "e709c658f779534fcab093207b0a78e49d54fc584c515fdf7ac535ce75f6c400",
|
||||
"hook_sha256": "d50cf763dc9814383c6886e30b6650bbbdcb49ddd78889082e3fda3626a2cbfd",
|
||||
"interpreter_sha256": "e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f",
|
||||
"scanner_view": "pinned-real-scanner"
|
||||
}
|
||||
},
|
||||
{
|
||||
"repo": "the-custodian",
|
||||
"case": "scanner-unavailable",
|
||||
"status": "unverified",
|
||||
"exit_code": 2,
|
||||
"scanned_blobs": 0,
|
||||
"reason": "scanner-file-refused",
|
||||
"namespace_readback": {
|
||||
"verified": true,
|
||||
"root_identity_preserved": true,
|
||||
"shm_identity_preserved": true,
|
||||
"root_readonly": true,
|
||||
"shm_writable": true,
|
||||
"user_mount_network_namespaces_changed": true,
|
||||
"pid_namespace_preserved": true,
|
||||
"uid_gid_preserved": true,
|
||||
"null_device_readback": {
|
||||
"character_device": true,
|
||||
"host_identity_and_rdev_preserved": true,
|
||||
"read_write_open_verified": true
|
||||
},
|
||||
"source_sha256": "e709c658f779534fcab093207b0a78e49d54fc584c515fdf7ac535ce75f6c400",
|
||||
"hook_sha256": "d50cf763dc9814383c6886e30b6650bbbdcb49ddd78889082e3fda3626a2cbfd",
|
||||
"interpreter_sha256": "e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f",
|
||||
"scanner_view": "empty-0400-shadow"
|
||||
}
|
||||
}
|
||||
],
|
||||
"fixture_removed": true,
|
||||
"new_scan_storage_absent": true,
|
||||
"real_index_stat_unchanged": true,
|
||||
"real_heads_unchanged": true,
|
||||
"host_scanner_stat_hash_mode_unchanged": true,
|
||||
"hook_source_routing_unchanged": true,
|
||||
"driver_sha256": "ff276bae336a560d365ed1255f9af97b4207294574df9bcf74543dc5c0678e35"
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"status": "verified",
|
||||
"scope": "generated namespace hard-parent-loss process tree only",
|
||||
"real_index_opened": false,
|
||||
"real_credentials_read": false,
|
||||
"provider_calls": 0,
|
||||
"host_scanner_modified": false,
|
||||
"namespace_identity_verified": true,
|
||||
"pre_effect_pidfd_registration_verified": true,
|
||||
"exact_disposable_parent_killed": true,
|
||||
"null_device_readback": {
|
||||
"character_device": true,
|
||||
"host_identity_and_rdev_preserved": true,
|
||||
"read_write_open_verified": true
|
||||
},
|
||||
"bwrap_inner_and_cleanup_observer_death_verified": true,
|
||||
"inner_storage_removed": true,
|
||||
"last_inner_phase": {
|
||||
"phase": "full-readback-published"
|
||||
},
|
||||
"disposable_spawner_returncode": -9,
|
||||
"bwrap_stderr_public": "",
|
||||
"bwrap_stderr_truncated": false,
|
||||
"spawner_stderr_public": "",
|
||||
"spawner_stderr_truncated": false,
|
||||
"fixture_removed": true,
|
||||
"new_scan_storage_absent": true,
|
||||
"driver_sha256": "9c1db89b4379a7e55a72eba58efb3dfdae38d3ce69349d1bc1429465bc8cb5c5"
|
||||
}
|
||||
|
|
@ -0,0 +1,189 @@
|
|||
{
|
||||
"ok": true,
|
||||
"status": "applied",
|
||||
"repo_slug": "secrets-engine",
|
||||
"commit": "c59bbf568c0be8a72ac593508f48c9b1f61ec4c1",
|
||||
"requests": 2,
|
||||
"elapsed_ms": 2970.5,
|
||||
"git": {
|
||||
"upstream": "origin/main",
|
||||
"behind": 0,
|
||||
"ahead": 0
|
||||
},
|
||||
"identifiers": {
|
||||
"schema": "repo-manager.identifier-assignment.v1",
|
||||
"ok": true,
|
||||
"executed": true,
|
||||
"repo": "secrets-engine",
|
||||
"namespace": "helixforge",
|
||||
"assignments": [],
|
||||
"historical_invalid_identifiers": [],
|
||||
"files_changed": []
|
||||
},
|
||||
"receipt": {
|
||||
"schema": "state-hub.repository-projection-reconcile.v1",
|
||||
"instance_role": "primary",
|
||||
"instance_label": "railiance01",
|
||||
"expected_commit": "c59bbf568c0be8a72ac593508f48c9b1f61ec4c1",
|
||||
"derived_commit": "c59bbf568c0be8a72ac593508f48c9b1f61ec4c1",
|
||||
"outcome": {
|
||||
"schema": "state-hub.projection-reset.v1",
|
||||
"repo_slug": "secrets-engine",
|
||||
"commit": "c59bbf568c0be8a72ac593508f48c9b1f61ec4c1",
|
||||
"status": "applied",
|
||||
"counts": {
|
||||
"created": 0,
|
||||
"updated": 17,
|
||||
"retired": 0,
|
||||
"refused": 0,
|
||||
"released": 0,
|
||||
"created_tasks": 0,
|
||||
"updated_tasks": 15,
|
||||
"cancelled_tasks": 0,
|
||||
"created_edges": 2,
|
||||
"removed_edges": 0,
|
||||
"unresolved_edges": 0,
|
||||
"external_edges": 7
|
||||
},
|
||||
"created": [],
|
||||
"updated": [
|
||||
"SECRETS-WP-0001",
|
||||
"SECRETS-WP-0002",
|
||||
"SECRETS-WP-0003",
|
||||
"SECRETS-WP-0004",
|
||||
"SECRETS-WP-0005",
|
||||
"SECRETS-WP-0006",
|
||||
"SECRETS-WP-0007",
|
||||
"SECRETS-WP-0008",
|
||||
"SECRETS-WP-0009",
|
||||
"SECRETS-WP-0010",
|
||||
"SECRETS-WP-0011",
|
||||
"SECRETS-WP-0012",
|
||||
"SECRETS-WP-0013",
|
||||
"SECRETS-WP-0014",
|
||||
"SECRETS-WP-0015",
|
||||
"SECRETS-WP-ADHOC-2026-08-21",
|
||||
"SECRETS-WP-ADHOC-2026-08-23"
|
||||
],
|
||||
"retired": [],
|
||||
"released": [],
|
||||
"created_tasks": [],
|
||||
"updated_tasks": [
|
||||
"SECRETS-WP-0006-T05",
|
||||
"SECRETS-WP-0012-T01",
|
||||
"SECRETS-WP-0012-T02",
|
||||
"SECRETS-WP-0012-T04",
|
||||
"SECRETS-WP-0012-T03",
|
||||
"SECRETS-WP-0013-T01",
|
||||
"SECRETS-WP-0013-T02",
|
||||
"SECRETS-WP-0013-T03",
|
||||
"SECRETS-WP-0014-T01",
|
||||
"SECRETS-WP-0014-T02",
|
||||
"SECRETS-WP-0014-T03",
|
||||
"SECRETS-WP-0015-T01",
|
||||
"SECRETS-WP-0015-T02",
|
||||
"SECRETS-WP-0015-T03",
|
||||
"SECRETS-WP-0015-T04"
|
||||
],
|
||||
"cancelled_tasks": [],
|
||||
"created_edges": [
|
||||
{
|
||||
"workplan": "SECRETS-WP-0015",
|
||||
"from": "SECRETS-WP-0015-T04",
|
||||
"target": "NK-WP-0049-T33",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "68a0642e-4908-5260-89c9-3adce60e6a4d",
|
||||
"from_task_id": "aeec6eb0-39e2-5f7c-8f5d-778133edfc73",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "56c8d469-7a10-5d50-a30e-95cbf3cd4756"
|
||||
},
|
||||
{
|
||||
"workplan": "SECRETS-WP-0015",
|
||||
"from": "SECRETS-WP-0015-T04",
|
||||
"target": "SECRETS-WP-0015-T03",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "68a0642e-4908-5260-89c9-3adce60e6a4d",
|
||||
"from_task_id": "aeec6eb0-39e2-5f7c-8f5d-778133edfc73",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "6262a915-7655-50be-b9f7-481f816d7335"
|
||||
}
|
||||
],
|
||||
"removed_edges": [],
|
||||
"unresolved_edges": [],
|
||||
"external_edges": [
|
||||
{
|
||||
"workplan": "SECRETS-WP-0006",
|
||||
"from": "SECRETS-WP-0006-T06",
|
||||
"target": "SECRETS-WP-0006-T05",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "31f7f8ea-7f73-516c-8877-f03a13f1db82",
|
||||
"from_task_id": "1431edae-5791-5892-8c4b-829419b537d2",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "fb103f1e-2ff7-5de5-9a2c-191a19c43542"
|
||||
},
|
||||
{
|
||||
"workplan": "SECRETS-WP-0013",
|
||||
"from": "SECRETS-WP-0013-T03",
|
||||
"target": "RPF-WP-0035-T12",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "5e38aecc-85ca-5f55-94c6-9fbb08604819",
|
||||
"from_task_id": "5f8f7c41-5921-543f-a7c6-0b1350ea6d82",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "914bf383-c13f-5247-9af0-91d7e3a4784a"
|
||||
},
|
||||
{
|
||||
"workplan": "SECRETS-WP-0013",
|
||||
"from": "SECRETS-WP-0013-T03",
|
||||
"target": "SECRETS-WP-0013-T01",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "5e38aecc-85ca-5f55-94c6-9fbb08604819",
|
||||
"from_task_id": "5f8f7c41-5921-543f-a7c6-0b1350ea6d82",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "b2f0d462-a542-518b-a26b-b7ec07b3c7c1"
|
||||
},
|
||||
{
|
||||
"workplan": "SECRETS-WP-0007",
|
||||
"from": "SECRETS-WP-0007-T07",
|
||||
"target": "SECRETS-WP-0006-T06",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "68a39be1-bd9c-5133-ad64-e7bca892aaf3",
|
||||
"from_task_id": "a0a1dd92-d703-5a95-b488-d895f34d5cf7",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "1431edae-5791-5892-8c4b-829419b537d2"
|
||||
},
|
||||
{
|
||||
"workplan": "SECRETS-WP-0007",
|
||||
"from": "SECRETS-WP-0007-T07",
|
||||
"target": "SECRETS-WP-0006-T05",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "68a39be1-bd9c-5133-ad64-e7bca892aaf3",
|
||||
"from_task_id": "a0a1dd92-d703-5a95-b488-d895f34d5cf7",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "fb103f1e-2ff7-5de5-9a2c-191a19c43542"
|
||||
},
|
||||
{
|
||||
"workplan": "SECRETS-WP-0014",
|
||||
"from": "SECRETS-WP-0014-T03",
|
||||
"target": "SECRETS-WP-0014-T02",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "7252469d-d7a5-5c18-8911-b511b8c6a736",
|
||||
"from_task_id": "85aa4c78-b66d-5201-8e31-0ed50e7eaeec",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "877782e5-045b-5186-8b95-82e25db21a5a"
|
||||
},
|
||||
{
|
||||
"workplan": "SECRETS-WP-0008",
|
||||
"from": "SECRETS-WP-0008-T06",
|
||||
"target": "RPF-WP-0035-T02",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "9c9e5164-b2f5-5ea2-a557-5368d65e9fe0",
|
||||
"from_task_id": "d7bc8bdc-a0f8-5058-a640-374ef9859148",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "e0c82ea9-05a5-537e-8fbf-67534263572e"
|
||||
}
|
||||
],
|
||||
"refused": [],
|
||||
"notes": []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"status": "passed",
|
||||
"exit_code": 0,
|
||||
"count_summary": [
|
||||
"65 passed in 14.85s"
|
||||
],
|
||||
"private_diagnostics_suppressed": true,
|
||||
"generated_material_only": true,
|
||||
"host_custody_mounted": false,
|
||||
"network_routes_absent": true,
|
||||
"binary_sha256": "sha256:e5bec3346a873ae91d871550f3e698c1aad962aff462a080e40f25fde17fef6b",
|
||||
"driver_sha256": "sha256:3082ebce5493f19313dfc276bb068329c4f26f53414d6aa0c10a628bc5ac07f9",
|
||||
"namespace_teardown_complete": true,
|
||||
"system_installation": false
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"version": "3.13.3",
|
||||
"official_release": "https://github.com/getsops/sops/releases/tag/v3.13.3",
|
||||
"binary_sha256": "sha256:e5bec3346a873ae91d871550f3e698c1aad962aff462a080e40f25fde17fef6b",
|
||||
"release_api_asset_digest_matches": true,
|
||||
"release_checksum_matches": true,
|
||||
"sigstore_signature_verified": false,
|
||||
"installed_systemwide": false,
|
||||
"execution": "Only reviewed generated fixtures inside network/host-custody-isolated namespace",
|
||||
"public_source_files": {
|
||||
"Makefile": "sha256:5d2114f6141bb8504c5c780044302126c07958a5732afdb0d0c0218a4f84210e",
|
||||
"sso-mfa/bootstrap/sops-private.py": "sha256:acac68e2936ed38b7d7c9e35eb4619647c99c117a3928a1c5ce704b570906780",
|
||||
"sso-mfa/bootstrap/sops-write.py": "sha256:5a785e9c8e6a40ca9120a668d93992ea5c3115566ada21933536cc2d931f1ddf",
|
||||
"sso-mfa/bootstrap/sops-custody-fd.py": "sha256:df29eaba83ec6b5fc311664dcf4b22d8f3c8ed7274ed8e6c419ada0dcd169c0f",
|
||||
"sso-mfa/bootstrap/sops-custody-unlock.sh": "sha256:86c527a8ae0d0cca66a2345c566b25fbff5bc52c1e22c725548c0fbb2f86a58e",
|
||||
"tests/test_sops_private.py": "sha256:a5ff8d7847cdce151be44cdf4a89385d5e2585cdd59143dee4be3cc6106eb7f5",
|
||||
"tests/test_sops_write.py": "sha256:f832925283e79589b3ce0bded7e50f49bfd4e78620c224549bb7d31a7868fca6"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,204 @@
|
|||
{
|
||||
"ok": true,
|
||||
"status": "applied",
|
||||
"repo_slug": "state-hub",
|
||||
"commit": "086d79a2736e34b916bd7de3c8a65e2ea38a3d64",
|
||||
"requests": 2,
|
||||
"elapsed_ms": 7629.7,
|
||||
"git": {
|
||||
"upstream": "origin/main",
|
||||
"behind": 0,
|
||||
"ahead": 0
|
||||
},
|
||||
"identifiers": {
|
||||
"schema": "repo-manager.identifier-assignment.v1",
|
||||
"ok": true,
|
||||
"executed": true,
|
||||
"repo": "state-hub",
|
||||
"namespace": "helixforge",
|
||||
"assignments": [],
|
||||
"historical_invalid_identifiers": [],
|
||||
"files_changed": []
|
||||
},
|
||||
"receipt": {
|
||||
"schema": "state-hub.repository-projection-reconcile.v1",
|
||||
"instance_role": "primary",
|
||||
"instance_label": "railiance01",
|
||||
"expected_commit": "086d79a2736e34b916bd7de3c8a65e2ea38a3d64",
|
||||
"derived_commit": "086d79a2736e34b916bd7de3c8a65e2ea38a3d64",
|
||||
"outcome": {
|
||||
"schema": "state-hub.projection-reset.v1",
|
||||
"repo_slug": "state-hub",
|
||||
"commit": "086d79a2736e34b916bd7de3c8a65e2ea38a3d64",
|
||||
"status": "applied",
|
||||
"counts": {
|
||||
"created": 0,
|
||||
"updated": 70,
|
||||
"retired": 0,
|
||||
"refused": 0,
|
||||
"released": 0,
|
||||
"created_tasks": 1,
|
||||
"updated_tasks": 0,
|
||||
"cancelled_tasks": 0,
|
||||
"created_edges": 0,
|
||||
"removed_edges": 0,
|
||||
"unresolved_edges": 1,
|
||||
"external_edges": 6
|
||||
},
|
||||
"created": [],
|
||||
"updated": [
|
||||
"CUST-WP-0003",
|
||||
"CUST-WP-0011",
|
||||
"CUST-WP-0012",
|
||||
"CUST-WP-0038",
|
||||
"CUST-WP-0042",
|
||||
"STATE-WP-0043",
|
||||
"STATE-WP-0044",
|
||||
"STATE-WP-0045",
|
||||
"STATE-WP-0046",
|
||||
"STATE-WP-0047",
|
||||
"STATE-WP-0048",
|
||||
"STATE-WP-0049",
|
||||
"STATE-WP-0050",
|
||||
"STATE-WP-0051",
|
||||
"STATE-WP-0052",
|
||||
"STATE-WP-0053",
|
||||
"STATE-WP-0054",
|
||||
"STATE-WP-0055",
|
||||
"STATE-WP-0056",
|
||||
"STATE-WP-0057",
|
||||
"STATE-WP-0058",
|
||||
"STATE-WP-0059",
|
||||
"STATE-WP-0060",
|
||||
"STATE-WP-0061",
|
||||
"STATE-WP-0062",
|
||||
"STATE-WP-0063",
|
||||
"STATE-WP-0064",
|
||||
"STATE-WP-0065",
|
||||
"STATE-WP-0066",
|
||||
"STATE-WP-0067",
|
||||
"STATE-WP-0068",
|
||||
"STATE-WP-0069",
|
||||
"STATE-WP-0070",
|
||||
"STATE-WP-0071",
|
||||
"STATE-WP-0072",
|
||||
"STATE-WP-0073",
|
||||
"STATE-WP-0074",
|
||||
"STATE-WP-0075",
|
||||
"STATE-WP-0076",
|
||||
"STATE-WP-0077",
|
||||
"STATE-WP-0078",
|
||||
"STATE-WP-0079",
|
||||
"STATE-WP-0080",
|
||||
"STATE-WP-0081",
|
||||
"STATE-WP-0082",
|
||||
"STATE-WP-0083",
|
||||
"STATE-WP-0084",
|
||||
"STATE-WP-0085",
|
||||
"STATE-WP-0086",
|
||||
"STATE-WP-0087",
|
||||
"STATE-WP-0088",
|
||||
"STATE-WP-0089",
|
||||
"STATE-WP-0090",
|
||||
"STATE-WP-0091",
|
||||
"STATE-WP-0092",
|
||||
"STATE-WP-0093",
|
||||
"STATE-WP-0094",
|
||||
"STATE-WP-0095",
|
||||
"STATE-WP-0096",
|
||||
"STATE-WP-0097",
|
||||
"STATE-WP-0098",
|
||||
"STATE-WP-ADHOC-2026-06-04",
|
||||
"STATE-WP-ADHOC-2026-07-01",
|
||||
"STATE-WP-ADHOC-2026-08-08",
|
||||
"STATE-WP-ADHOC-2026-08-23",
|
||||
"STATE-WP-ADHOC-2026-08-30",
|
||||
"STATE-WP-ADHOC-2026-09-04",
|
||||
"STATE-WP-ADHOC-2026-09-22",
|
||||
"STATE-WP-ADHOC-2026-10-06",
|
||||
"STATE-WP-ADHOC-2026-10-13"
|
||||
],
|
||||
"retired": [],
|
||||
"released": [],
|
||||
"created_tasks": [
|
||||
"STATE-WP-0095-T08"
|
||||
],
|
||||
"updated_tasks": [],
|
||||
"cancelled_tasks": [],
|
||||
"created_edges": [],
|
||||
"removed_edges": [],
|
||||
"unresolved_edges": [
|
||||
{
|
||||
"workplan": "STATE-WP-0095",
|
||||
"from": "STATE-WP-0095-T07",
|
||||
"target": "RMGR-WP-0019-T06",
|
||||
"reason": "missing"
|
||||
}
|
||||
],
|
||||
"external_edges": [
|
||||
{
|
||||
"workplan": "STATE-WP-0098",
|
||||
"from": "STATE-WP-0098-T04",
|
||||
"target": "HUB-WP-0011-T01",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "0c68970e-295b-57fc-ac70-e472ee3a7bc4",
|
||||
"from_task_id": "077797c8-289b-55ec-9597-28f223891b02",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "588e4b58-4694-513c-8e7a-1fab38fb6ce3"
|
||||
},
|
||||
{
|
||||
"workplan": "CUST-WP-0038",
|
||||
"from": "CUST-WP-0038",
|
||||
"target": "CUST-WP-0011",
|
||||
"relationship_type": "blocks",
|
||||
"from_workplan_id": "ccb87fa4-6381-5f22-b097-6e026f56a9c1",
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "967baafb-d92d-405a-ba0b-0d00d37c4940",
|
||||
"to_task_id": null
|
||||
},
|
||||
{
|
||||
"workplan": "STATE-WP-0079",
|
||||
"from": "STATE-WP-0079-T04",
|
||||
"target": "HUB-WP-0011-T03",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "ed077b62-7048-5752-bf65-f90471f45854",
|
||||
"from_task_id": "3a454438-1955-547f-a491-8eab7cd25710",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "61c727a5-f4b1-54c0-b634-7d71a5416496"
|
||||
},
|
||||
{
|
||||
"workplan": "STATE-WP-0079",
|
||||
"from": "STATE-WP-0079-T04",
|
||||
"target": "HUB-WP-0006-T06",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "ed077b62-7048-5752-bf65-f90471f45854",
|
||||
"from_task_id": "3a454438-1955-547f-a491-8eab7cd25710",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "7c8225f7-03dc-57b0-a668-c3d781bd828a"
|
||||
},
|
||||
{
|
||||
"workplan": "STATE-WP-0079",
|
||||
"from": "STATE-WP-0079-T06",
|
||||
"target": "STATE-WP-0079-T04",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "ed077b62-7048-5752-bf65-f90471f45854",
|
||||
"from_task_id": "9230c99b-af58-5794-9291-452e619a30fa",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "3a454438-1955-547f-a491-8eab7cd25710"
|
||||
},
|
||||
{
|
||||
"workplan": "STATE-WP-0079",
|
||||
"from": "STATE-WP-0079-T06",
|
||||
"target": "STATE-WP-0079-T05",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "ed077b62-7048-5752-bf65-f90471f45854",
|
||||
"from_task_id": "9230c99b-af58-5794-9291-452e619a30fa",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "f6cf8c01-eb59-5ca8-a541-23928d4a000c"
|
||||
}
|
||||
],
|
||||
"refused": [],
|
||||
"notes": []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,236 @@
|
|||
{
|
||||
"ok": true,
|
||||
"status": "applied",
|
||||
"repo_slug": "state-hub",
|
||||
"commit": "51bc70d1ff8f25450a8650d8e50caf053093a02e",
|
||||
"requests": 2,
|
||||
"elapsed_ms": 4559.8,
|
||||
"git": {
|
||||
"upstream": "origin/main",
|
||||
"behind": 0,
|
||||
"ahead": 0
|
||||
},
|
||||
"identifiers": {
|
||||
"schema": "repo-manager.identifier-assignment.v1",
|
||||
"ok": true,
|
||||
"executed": true,
|
||||
"repo": "state-hub",
|
||||
"namespace": "helixforge",
|
||||
"assignments": [],
|
||||
"historical_invalid_identifiers": [],
|
||||
"files_changed": []
|
||||
},
|
||||
"receipt": {
|
||||
"schema": "state-hub.repository-projection-reconcile.v1",
|
||||
"outcome": {
|
||||
"notes": [],
|
||||
"commit": "51bc70d1ff8f25450a8650d8e50caf053093a02e",
|
||||
"counts": {
|
||||
"created": 0,
|
||||
"refused": 0,
|
||||
"retired": 0,
|
||||
"updated": 70,
|
||||
"released": 0,
|
||||
"created_edges": 2,
|
||||
"created_tasks": 3,
|
||||
"removed_edges": 0,
|
||||
"updated_tasks": 8,
|
||||
"external_edges": 6,
|
||||
"cancelled_tasks": 0,
|
||||
"unresolved_edges": 1
|
||||
},
|
||||
"schema": "state-hub.projection-reset.v1",
|
||||
"status": "applied",
|
||||
"created": [],
|
||||
"refused": [],
|
||||
"retired": [],
|
||||
"updated": [
|
||||
"CUST-WP-0003",
|
||||
"CUST-WP-0011",
|
||||
"CUST-WP-0012",
|
||||
"CUST-WP-0038",
|
||||
"CUST-WP-0042",
|
||||
"STATE-WP-0043",
|
||||
"STATE-WP-0044",
|
||||
"STATE-WP-0045",
|
||||
"STATE-WP-0046",
|
||||
"STATE-WP-0047",
|
||||
"STATE-WP-0048",
|
||||
"STATE-WP-0049",
|
||||
"STATE-WP-0050",
|
||||
"STATE-WP-0051",
|
||||
"STATE-WP-0052",
|
||||
"STATE-WP-0053",
|
||||
"STATE-WP-0054",
|
||||
"STATE-WP-0055",
|
||||
"STATE-WP-0056",
|
||||
"STATE-WP-0057",
|
||||
"STATE-WP-0058",
|
||||
"STATE-WP-0059",
|
||||
"STATE-WP-0060",
|
||||
"STATE-WP-0061",
|
||||
"STATE-WP-0062",
|
||||
"STATE-WP-0063",
|
||||
"STATE-WP-0064",
|
||||
"STATE-WP-0065",
|
||||
"STATE-WP-0066",
|
||||
"STATE-WP-0067",
|
||||
"STATE-WP-0068",
|
||||
"STATE-WP-0069",
|
||||
"STATE-WP-0070",
|
||||
"STATE-WP-0071",
|
||||
"STATE-WP-0072",
|
||||
"STATE-WP-0073",
|
||||
"STATE-WP-0074",
|
||||
"STATE-WP-0075",
|
||||
"STATE-WP-0076",
|
||||
"STATE-WP-0077",
|
||||
"STATE-WP-0078",
|
||||
"STATE-WP-0079",
|
||||
"STATE-WP-0080",
|
||||
"STATE-WP-0081",
|
||||
"STATE-WP-0082",
|
||||
"STATE-WP-0083",
|
||||
"STATE-WP-0084",
|
||||
"STATE-WP-0085",
|
||||
"STATE-WP-0086",
|
||||
"STATE-WP-0087",
|
||||
"STATE-WP-0088",
|
||||
"STATE-WP-0089",
|
||||
"STATE-WP-0090",
|
||||
"STATE-WP-0091",
|
||||
"STATE-WP-0092",
|
||||
"STATE-WP-0093",
|
||||
"STATE-WP-0094",
|
||||
"STATE-WP-0095",
|
||||
"STATE-WP-0096",
|
||||
"STATE-WP-0097",
|
||||
"STATE-WP-0098",
|
||||
"STATE-WP-ADHOC-2026-06-04",
|
||||
"STATE-WP-ADHOC-2026-07-01",
|
||||
"STATE-WP-ADHOC-2026-08-08",
|
||||
"STATE-WP-ADHOC-2026-08-23",
|
||||
"STATE-WP-ADHOC-2026-08-30",
|
||||
"STATE-WP-ADHOC-2026-09-04",
|
||||
"STATE-WP-ADHOC-2026-09-22",
|
||||
"STATE-WP-ADHOC-2026-10-06",
|
||||
"STATE-WP-ADHOC-2026-10-13"
|
||||
],
|
||||
"released": [],
|
||||
"repo_slug": "state-hub",
|
||||
"created_edges": [
|
||||
{
|
||||
"from": "STATE-WP-0095-T06",
|
||||
"target": "STATE-WP-0095-T05",
|
||||
"workplan": "STATE-WP-0095",
|
||||
"to_task_id": "339b9a37-181c-5599-9a89-0393e199bd4b",
|
||||
"from_task_id": "6af973b4-1964-5d4d-a2f8-8dbd4c01fda4",
|
||||
"to_workplan_id": null,
|
||||
"from_workplan_id": "79579572-8120-5d3b-aca5-dd4aff60d058",
|
||||
"relationship_type": "starts_after"
|
||||
},
|
||||
{
|
||||
"from": "STATE-WP-0095-T07",
|
||||
"target": "STATE-WP-0095-T06",
|
||||
"workplan": "STATE-WP-0095",
|
||||
"to_task_id": "6af973b4-1964-5d4d-a2f8-8dbd4c01fda4",
|
||||
"from_task_id": "cfd1ea99-e75b-542e-a434-acefb62f3c7d",
|
||||
"to_workplan_id": null,
|
||||
"from_workplan_id": "79579572-8120-5d3b-aca5-dd4aff60d058",
|
||||
"relationship_type": "starts_after"
|
||||
}
|
||||
],
|
||||
"created_tasks": [
|
||||
"STATE-WP-0095-T05",
|
||||
"STATE-WP-0095-T06",
|
||||
"STATE-WP-0095-T07"
|
||||
],
|
||||
"removed_edges": [],
|
||||
"updated_tasks": [
|
||||
"STATE-WP-0079-T06",
|
||||
"STATE-WP-0097-T01",
|
||||
"STATE-WP-0097-T02",
|
||||
"STATE-WP-0098-T01",
|
||||
"STATE-WP-0098-T02",
|
||||
"STATE-WP-0098-T03",
|
||||
"STATE-WP-0098-T05",
|
||||
"STATE-WP-0098-T04"
|
||||
],
|
||||
"external_edges": [
|
||||
{
|
||||
"from": "STATE-WP-0098-T04",
|
||||
"target": "HUB-WP-0011-T01",
|
||||
"workplan": "STATE-WP-0098",
|
||||
"to_task_id": "588e4b58-4694-513c-8e7a-1fab38fb6ce3",
|
||||
"from_task_id": "077797c8-289b-55ec-9597-28f223891b02",
|
||||
"to_workplan_id": null,
|
||||
"from_workplan_id": "0c68970e-295b-57fc-ac70-e472ee3a7bc4",
|
||||
"relationship_type": "starts_after"
|
||||
},
|
||||
{
|
||||
"from": "CUST-WP-0038",
|
||||
"target": "CUST-WP-0011",
|
||||
"workplan": "CUST-WP-0038",
|
||||
"to_task_id": null,
|
||||
"from_task_id": null,
|
||||
"to_workplan_id": "967baafb-d92d-405a-ba0b-0d00d37c4940",
|
||||
"from_workplan_id": "ccb87fa4-6381-5f22-b097-6e026f56a9c1",
|
||||
"relationship_type": "blocks"
|
||||
},
|
||||
{
|
||||
"from": "STATE-WP-0079-T04",
|
||||
"target": "HUB-WP-0011-T03",
|
||||
"workplan": "STATE-WP-0079",
|
||||
"to_task_id": "61c727a5-f4b1-54c0-b634-7d71a5416496",
|
||||
"from_task_id": "3a454438-1955-547f-a491-8eab7cd25710",
|
||||
"to_workplan_id": null,
|
||||
"from_workplan_id": "ed077b62-7048-5752-bf65-f90471f45854",
|
||||
"relationship_type": "starts_after"
|
||||
},
|
||||
{
|
||||
"from": "STATE-WP-0079-T04",
|
||||
"target": "HUB-WP-0006-T06",
|
||||
"workplan": "STATE-WP-0079",
|
||||
"to_task_id": "7c8225f7-03dc-57b0-a668-c3d781bd828a",
|
||||
"from_task_id": "3a454438-1955-547f-a491-8eab7cd25710",
|
||||
"to_workplan_id": null,
|
||||
"from_workplan_id": "ed077b62-7048-5752-bf65-f90471f45854",
|
||||
"relationship_type": "starts_after"
|
||||
},
|
||||
{
|
||||
"from": "STATE-WP-0079-T06",
|
||||
"target": "STATE-WP-0079-T04",
|
||||
"workplan": "STATE-WP-0079",
|
||||
"to_task_id": "3a454438-1955-547f-a491-8eab7cd25710",
|
||||
"from_task_id": "9230c99b-af58-5794-9291-452e619a30fa",
|
||||
"to_workplan_id": null,
|
||||
"from_workplan_id": "ed077b62-7048-5752-bf65-f90471f45854",
|
||||
"relationship_type": "starts_after"
|
||||
},
|
||||
{
|
||||
"from": "STATE-WP-0079-T06",
|
||||
"target": "STATE-WP-0079-T05",
|
||||
"workplan": "STATE-WP-0079",
|
||||
"to_task_id": "f6cf8c01-eb59-5ca8-a541-23928d4a000c",
|
||||
"from_task_id": "9230c99b-af58-5794-9291-452e619a30fa",
|
||||
"to_workplan_id": null,
|
||||
"from_workplan_id": "ed077b62-7048-5752-bf65-f90471f45854",
|
||||
"relationship_type": "starts_after"
|
||||
}
|
||||
],
|
||||
"cancelled_tasks": [],
|
||||
"unresolved_edges": [
|
||||
{
|
||||
"from": "STATE-WP-0095-T07",
|
||||
"reason": "missing",
|
||||
"target": "RMGR-WP-0019-T06",
|
||||
"workplan": "STATE-WP-0095"
|
||||
}
|
||||
]
|
||||
},
|
||||
"instance_role": "primary",
|
||||
"derived_commit": "51bc70d1ff8f25450a8650d8e50caf053093a02e",
|
||||
"instance_label": "railiance01",
|
||||
"expected_commit": "51bc70d1ff8f25450a8650d8e50caf053093a02e"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"schema": "statehub.anonymous-registry-metadata.v1",
|
||||
"tag": "main-51bc70d",
|
||||
"anonymous_protocol_only": true,
|
||||
"credential_files_read": false,
|
||||
"token_retained": false,
|
||||
"status": "verified",
|
||||
"digest": "sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015",
|
||||
"content_type": "application/vnd.docker.distribution.manifest.v2+json"
|
||||
}
|
||||
|
|
@ -0,0 +1,793 @@
|
|||
{
|
||||
"schema": "statehub.public-image-inspection.v1",
|
||||
"status": "verified_selected_image_files",
|
||||
"source_revision": "51bc70d1ff8f25450a8650d8e50caf053093a02e",
|
||||
"image_digest": "sha256:c802690ee1811b3d77df4077936f9cdced1385514e8673fcbc9232b84d645015",
|
||||
"anonymous_protocol_only": true,
|
||||
"token_retained": false,
|
||||
"image_executed": false,
|
||||
"image_installed_or_daemon_pulled": false,
|
||||
"layers": [
|
||||
{
|
||||
"digest": "sha256:304074f06047f3dee0c586de265e0e27b577930bc80dc7f97f3829b188bc4fb0",
|
||||
"compressed_bytes": 30855435,
|
||||
"archive_entries": 3271
|
||||
},
|
||||
{
|
||||
"digest": "sha256:75b6a36c64a1cf3520fc4b4aae4739d5caa8a6a05c27835a920a61784c9c32f8",
|
||||
"compressed_bytes": 1294052,
|
||||
"archive_entries": 553
|
||||
},
|
||||
{
|
||||
"digest": "sha256:6912e23eb44595b44dc6d9882b34f305ad6f6e9667cec70b13e5dbc4f8cd97f4",
|
||||
"compressed_bytes": 12121637,
|
||||
"archive_entries": 1828
|
||||
},
|
||||
{
|
||||
"digest": "sha256:bbc5a12237474ec0b23b5051260d56d6436a24d70d9cad961adebe7a037ed813",
|
||||
"compressed_bytes": 249,
|
||||
"archive_entries": 8
|
||||
},
|
||||
{
|
||||
"digest": "sha256:e16e3995c15e64ae03e700d74eab2389f1151e6bd5d40f55faa047e9124aeb20",
|
||||
"compressed_bytes": 93,
|
||||
"archive_entries": 1
|
||||
},
|
||||
{
|
||||
"digest": "sha256:14568be832d0c877348328755de4e94cf4d0397d03f2161f6995e3b3e756e802",
|
||||
"compressed_bytes": 55305356,
|
||||
"archive_entries": 2898
|
||||
},
|
||||
{
|
||||
"digest": "sha256:9ee1c6feff85c3b9712c7d8343e6c327a8ee1b082f37cefdfa2244b9fdd28406",
|
||||
"compressed_bytes": 147,
|
||||
"archive_entries": 2
|
||||
},
|
||||
{
|
||||
"digest": "sha256:ebd558f7ac93e21ad9d1b273b34da19f4362aba6e0739652fb2b352b71e93ddd",
|
||||
"compressed_bytes": 940,
|
||||
"archive_entries": 2
|
||||
},
|
||||
{
|
||||
"digest": "sha256:4cf8962d334554653d4dbac8b69ee3629718d25536770e3f4e1da9aad1472576",
|
||||
"compressed_bytes": 35703653,
|
||||
"archive_entries": 5471
|
||||
},
|
||||
{
|
||||
"digest": "sha256:adf49866962dd84146dfdd5c8e1ebe60965ad9e1d374b206659fb3f551aa4db1",
|
||||
"compressed_bytes": 597,
|
||||
"archive_entries": 3
|
||||
},
|
||||
{
|
||||
"digest": "sha256:bb45e8a5551018dd964779b61f9eddf72970f21823fa32639480b10f8d235632",
|
||||
"compressed_bytes": 102606,
|
||||
"archive_entries": 143
|
||||
},
|
||||
{
|
||||
"digest": "sha256:8aa5d4c27dc487010452acc9f08389a273d766f8386e9bdd406e8f98f3ab5848",
|
||||
"compressed_bytes": 109560,
|
||||
"archive_entries": 160
|
||||
},
|
||||
{
|
||||
"digest": "sha256:a93f5a86d2946b7252d0371005ddff465dae03333318d521664c7aeca647d07c",
|
||||
"compressed_bytes": 475,
|
||||
"archive_entries": 2
|
||||
},
|
||||
{
|
||||
"digest": "sha256:e8e5c9610abcef120104391811e7a5939e801ad25d8068cb009998bf9dabbbcd",
|
||||
"compressed_bytes": 242510,
|
||||
"archive_entries": 181
|
||||
},
|
||||
{
|
||||
"digest": "sha256:b94a90675a9955fbd9a6820330a5d50315968e9cde39f031e1a4ae18f0c76706",
|
||||
"compressed_bytes": 1678,
|
||||
"archive_entries": 7
|
||||
},
|
||||
{
|
||||
"digest": "sha256:d89910d3cd5c8828cd34b9b71e9c3104fc72bbf7de04edd7df9126e63d0156bc",
|
||||
"compressed_bytes": 36059,
|
||||
"archive_entries": 7
|
||||
},
|
||||
{
|
||||
"digest": "sha256:a2d71c0b3e090631997b3772f236136ae90b4465ec97666434f7820f40ed53e1",
|
||||
"compressed_bytes": 33940,
|
||||
"archive_entries": 63
|
||||
},
|
||||
{
|
||||
"digest": "sha256:77dd1e3a6c5a2dd098d0cc4d4d54df78e4047bd1a5c58a8af504e535b61e283d",
|
||||
"compressed_bytes": 10804,
|
||||
"archive_entries": 8
|
||||
},
|
||||
{
|
||||
"digest": "sha256:b093281106b7c7950be1cf369a34e13dbfee3aecd0ad5373e0ae595dd3785d1c",
|
||||
"compressed_bytes": 2115,
|
||||
"archive_entries": 3
|
||||
},
|
||||
{
|
||||
"digest": "sha256:5589bbbc12cca5f6e2a21338fd713ae73f6214a95177fe0d230e3a841cf71b63",
|
||||
"compressed_bytes": 154164,
|
||||
"archive_entries": 67
|
||||
},
|
||||
{
|
||||
"digest": "sha256:f6b994f6ae4af7bd279ee76ba4c1b1bff62d99045fcceb6d975f19ad213ba19e",
|
||||
"compressed_bytes": 2965,
|
||||
"archive_entries": 7
|
||||
},
|
||||
{
|
||||
"digest": "sha256:a271446fc42551b8cd3409e25e6efd53be7972ee67ce8fbabacc20eb2eb70772",
|
||||
"compressed_bytes": 538,
|
||||
"archive_entries": 4
|
||||
}
|
||||
],
|
||||
"files": {
|
||||
"tmp/.ci-build-id": "sha256:cf947c3985e72e7f41cee1332260567220372fccd076cc320a4a22b2a6301ec4",
|
||||
"tmp/hub-core/hub_core/__init__.py": "sha256:098578bae76f7d97354b8f3dfe8ddc63b15806a46d1691d70ed12d9839d69aec",
|
||||
"tmp/hub-core/hub_core/conformance/__init__.py": "sha256:f7ce0a651913f157e586afd6e953b483add0dd5257ee9f2406c47e8d46ee9587",
|
||||
"tmp/hub-core/hub_core/conformance/harness.py": "sha256:ca870fbbec7b7f5db6521d615fd76dfcbb9e97cbdfb037ffa993851a663b3c40",
|
||||
"tmp/hub-core/hub_core/contracts/__init__.py": "sha256:ffb7a6b79ce15ddd57943bfbc40799e078c6f57c6690018237baa3f3a755ac49",
|
||||
"tmp/hub-core/hub_core/contracts/helixforge_hub_extension/__init__.py": "sha256:32c095a16f777127ec0d2cd5e8373889866b81e9955d01e5adaf9503f6864da4",
|
||||
"tmp/hub-core/hub_core/contracts/helixforge_hub_extension/v0_1_0/__init__.py": "sha256:e176b86b24d79c11f78ad714878bc3fca41c7821654fa766278b697360a41201",
|
||||
"tmp/hub-core/hub_core/contracts/repository_navigation/__init__.py": "sha256:64912fe6673b72c3c0d8a2da28673d58bdf6f4185a1376ffe43d3735350adb60",
|
||||
"tmp/hub-core/hub_core/contracts/repository_navigation/v1_0_0/__init__.py": "sha256:574cf1fee8433e0b11d9475cfbcc3837730b55f6ea1faa4920cba106d959464f",
|
||||
"tmp/hub-core/hub_core/contracts/workload_projection/__init__.py": "sha256:c01198d23571442c1c3a596c7cd16be17dc1a3efdcfe3e8f9725b7dba16fc103",
|
||||
"tmp/hub-core/hub_core/contracts/workload_projection/v1_0_0/__init__.py": "sha256:a9ecfecbf44893d32268288c872cdede0440d2a1373d37a47f69ba8c6431de0d",
|
||||
"tmp/hub-core/hub_core/database.py": "sha256:a7704e97509433e90655b0ea22d5fa626d75b8b6470015ef8b9e5997e7a7f5ea",
|
||||
"tmp/hub-core/hub_core/events.py": "sha256:c7125a242ed638a3ede29129e4ad826cd188cf76239b59a8587a40d182bbd0e7",
|
||||
"tmp/hub-core/hub_core/mcp/__init__.py": "sha256:f97b25193573e56886b66f91cb8c86ef4a39f2100d709869e279e17456959859",
|
||||
"tmp/hub-core/hub_core/mcp/credentials.py": "sha256:f5433d29848bd5a399a5e31695e0d908748e0a0856d26b2d691b667c50c95c34",
|
||||
"tmp/hub-core/hub_core/mcp/server.py": "sha256:fc6a6de0a29ad9b6da176302a7d24e4ba987f667b6a7fb001029f00cb0d0c582",
|
||||
"tmp/hub-core/hub_core/message_identity.py": "sha256:0ab996ba50f236c1342ce72ca8ae6ff28102ef41216972a745f7260e0c93fb24",
|
||||
"tmp/hub-core/hub_core/migrations/__init__.py": "sha256:ccf4820e270c97fd5d4ac02f0c96362a772b8f4d1bcccc3f5e0077b77f575d36",
|
||||
"tmp/hub-core/hub_core/migrations/env.py": "sha256:282e6e1a9e4a3cfdc111887f04dc5c1645307b3943a421852abe1709ce712e57",
|
||||
"tmp/hub-core/hub_core/migrations/roles.py": "sha256:91e85297d296b0c4b9c78b16ae67d3a4707232d8f32b2cac2b2e84f31fa80e89",
|
||||
"tmp/hub-core/hub_core/migrations/versions/0001_core_schema.py": "sha256:c65f076a7b56fb93ee67869e04d922ea396eab72a4c2d2f0dabd706c918aa081",
|
||||
"tmp/hub-core/hub_core/migrations/versions/0002_runtime_ports.py": "sha256:d3ce15463841b3c13eaafdd137a65d4cf2839c0b8e8fddcb2cb2f1adbceb9f00",
|
||||
"tmp/hub-core/hub_core/migrations/versions/0003_repository_navigation.py": "sha256:fb2d2cb5ed10f1760ab789ced8d43c657c1bedc29ba666231a70a18636160902",
|
||||
"tmp/hub-core/hub_core/migrations/versions/0004_workload_projection.py": "sha256:87ce668bfef5cf4aaf0cfd3b48d498f2370f68e06a6e66375e446af6fbbb9c96",
|
||||
"tmp/hub-core/hub_core/migrations/versions/0005_message_identity_aliases.py": "sha256:ec05d2c3cb906b78cdec4d220a7ce09264c38904c792cdad3cd1082e7eace7c0",
|
||||
"tmp/hub-core/hub_core/migrations/versions/0006_outcome_outbox.py": "sha256:05effdf6f258836d1cd223f9d9fc3447d264484021d3a51cfa42517453d613e1",
|
||||
"tmp/hub-core/hub_core/migrations/versions/__init__.py": "sha256:569f6d7e5cc1c17b7b1eee3eec3b82774b745d01ee1dfdf851a5c6f5c337f0bb",
|
||||
"tmp/hub-core/hub_core/models/__init__.py": "sha256:c0b6de4986614a163dbb2467d15882eadbd66800478a50de4d6404198d1f773a",
|
||||
"tmp/hub-core/hub_core/models/agent_message.py": "sha256:23d16eeaffe780f326b08e6c441100e6ae7b4075bbb6421734c06156a87c4375",
|
||||
"tmp/hub-core/hub_core/models/base.py": "sha256:85bb40bde6f4cf8e6c5700a3a016a711fab4adff77c5eb78f89827fe28b9537b",
|
||||
"tmp/hub-core/hub_core/models/capability_catalog.py": "sha256:eebbb31f264821a61662d3c9e8c7eba74f46d7f68b946e35f8127343bf2ff9c4",
|
||||
"tmp/hub-core/hub_core/models/capability_request.py": "sha256:70a867c82aaa061a4e1c671b023d213032464e776226280f99e2ca192e2a6eba",
|
||||
"tmp/hub-core/hub_core/models/domain.py": "sha256:ddf45c37e3c37014ddd9148be01cf104658e1601abba2a8ba96f7680cdb581b3",
|
||||
"tmp/hub-core/hub_core/models/managed_repo.py": "sha256:835c5d44581daf7d7dd95325e3f7fdf0add4d529b83779ed83b5e812dcb3aa61",
|
||||
"tmp/hub-core/hub_core/models/message_identity_alias.py": "sha256:d07d59cd9c9351669e8319727d08bc0e9bb7e0ee36bf8a34c0c258f0b4ea61e4",
|
||||
"tmp/hub-core/hub_core/models/progress_event.py": "sha256:ee750127db2f49c5b9b94773a408f7f965d834b02e6d962220f4bc762309161f",
|
||||
"tmp/hub-core/hub_core/models/tpsc.py": "sha256:cb28cbe3512486adb73c0bce633b3c542a41a64e7ec673e86a5a25ab20d94afe",
|
||||
"tmp/hub-core/hub_core/routers/__init__.py": "sha256:800d1c45f597fcb4970ca7a83acd2b36016006efbdf638e14a3482a954d9046d",
|
||||
"tmp/hub-core/hub_core/routers/capabilities.py": "sha256:18a403ad6ac961bc490543b698e079336f60ef9902a6cd71ef9899076660d5c0",
|
||||
"tmp/hub-core/hub_core/routers/domains.py": "sha256:d4c4061d2ab0d2d6390a10f4f815deb0b93b3979345aee965b666110ba32e6e0",
|
||||
"tmp/hub-core/hub_core/routers/messages.py": "sha256:903bd4f8c8ca599b606cf2229315de21097360816fcda907159dac4f48cee512",
|
||||
"tmp/hub-core/hub_core/routers/policy.py": "sha256:358271263295fdebb5bcb95c3a27bd3ea456964a77bc01c3f784fb7a8754aacf",
|
||||
"tmp/hub-core/hub_core/routers/progress.py": "sha256:680cf4dea00a1734d7d70ef7880acc8fd39f045521baa47f415c17934779d18a",
|
||||
"tmp/hub-core/hub_core/routers/repos.py": "sha256:1bca6c9b2b5bbe172f5b935b763ac1e399b1d403cdc2c463000ae79f843257a2",
|
||||
"tmp/hub-core/hub_core/routers/tpsc.py": "sha256:706815b01be1c0320bf73cf9cff3e9415c1f27b8449ee9e6fea67b12d3042fd1",
|
||||
"tmp/hub-core/hub_core/runtime/__init__.py": "sha256:c522e626373407bf9bcd727dac7bb812cbdc8c3ef5bb6509a74949e5b49ab4c2",
|
||||
"tmp/hub-core/hub_core/runtime/app.py": "sha256:87b077498bbe321c73139e51f7ca689fdc7963a98c4d72a5a3bbcc564f47ee76",
|
||||
"tmp/hub-core/hub_core/runtime/cli.py": "sha256:98ec00f2a12911245827f515877472ae1c37cea65a42454494450ffbe7380e57",
|
||||
"tmp/hub-core/hub_core/runtime/compat.py": "sha256:9f1c4575bb406ae1174da1a005ec16f44ace63768617e11164b44b4051162d0d",
|
||||
"tmp/hub-core/hub_core/runtime/compat_catalogs.py": "sha256:250f61ea39cced32c8cd932c4e770ae8be54ff1cf1e257ee2c82324bde0d7a26",
|
||||
"tmp/hub-core/hub_core/runtime/config.py": "sha256:009b2fc5d1f8fc390d478b01444f610ada91e5fee30534936382be2529a843fc",
|
||||
"tmp/hub-core/hub_core/runtime/inbox_projection.py": "sha256:84499238654310b86f7a97f2817163ff4c4da0dfce562c677294fa3dfef7f398",
|
||||
"tmp/hub-core/hub_core/runtime/migration.py": "sha256:d12731fa581c48bf58deec19405ece977c89d08993b2a2ad047cb1fd17318ea8",
|
||||
"tmp/hub-core/hub_core/runtime/models.py": "sha256:367ca4aa29f59f8e3f59eab22f12782146cf623fa7ac7c22346c794b85a88185",
|
||||
"tmp/hub-core/hub_core/runtime/ports.py": "sha256:ab70a401deae73389761a0e88dc8ee843df00a671fae6919b1f7eed344cfb542",
|
||||
"tmp/hub-core/hub_core/runtime/postgres_store.py": "sha256:9286e7845009b66f00069d67177733dabe372d79986c33ca9b43e00dfa5a2341",
|
||||
"tmp/hub-core/hub_core/runtime/repo_manager_client.py": "sha256:8fa305277c5f3ddfdbe1daf4023ce6c3cde03b5c18c1292dd6aac3fe995aabe1",
|
||||
"tmp/hub-core/hub_core/runtime/repository_navigation.py": "sha256:f3503596781f3e7f7d53dd28dd3aaf563905f1398575b40c8080e2b1b9978b1e",
|
||||
"tmp/hub-core/hub_core/runtime/repository_navigation_routes.py": "sha256:eab78ab418a7b542dcdcab5da023bacc65fb50520853f8d179accb2105e373cf",
|
||||
"tmp/hub-core/hub_core/runtime/store.py": "sha256:2fb78f14bab8df08807322d6f6416745856d69e6001381246abbac879891858d",
|
||||
"tmp/hub-core/hub_core/runtime/tables.py": "sha256:a5ff72a9c54eedcc8bb81330e62ee72578a383a1d03a1acb598c72c96cdfbe9e",
|
||||
"tmp/hub-core/hub_core/runtime/validation.py": "sha256:2add804d95d5d0469d6d8d605fbd1013885da972489a017260c6fddef7b80c79",
|
||||
"tmp/hub-core/hub_core/runtime/workload_projection.py": "sha256:8500260404b0c566a62e51fef63ee320d4e3dafe5e2467f44db884296b9e3bf4",
|
||||
"tmp/hub-core/hub_core/runtime/workload_projection_routes.py": "sha256:5c71189b98867f2f1f7612f47ee69c0ec3ddf836b9b1c7e134b98a2be45791de",
|
||||
"tmp/hub-core/hub_core/schemas/__init__.py": "sha256:dfa2ec2d125f03a532637d2fbef3058ebe1f85c515ff42a930198e164b7812f7",
|
||||
"tmp/hub-core/hub_core/schemas/agent_message.py": "sha256:d6a7f40dc9a3c61be761f4d2e2c08f726fb0a423ef73e273a7cd97c69ae6c6a3",
|
||||
"tmp/hub-core/hub_core/schemas/capability.py": "sha256:949c55cb1f2694de4617ad53dc9cb7bc0e72addd7b9d0f104b93d783e4edc647",
|
||||
"tmp/hub-core/hub_core/schemas/doi.py": "sha256:73d675aecabd5a62ae13184494a4b9db122ad24b3132e1d0e908eef802382f36",
|
||||
"tmp/hub-core/hub_core/schemas/domain.py": "sha256:872a704fea959d2e4d0ff771770a97160457282218f4748ba4f830c489543aac",
|
||||
"tmp/hub-core/hub_core/schemas/managed_repo.py": "sha256:a7ab3b1ab399da81324693dcd5d3feeccb211642b10f11cd3f03c7fe6ba751d4",
|
||||
"tmp/hub-core/hub_core/schemas/policy.py": "sha256:bdaef1640783ac325a050cadf214e731d7c8e5e3a35dbb8f7562d5abbd209a4c",
|
||||
"tmp/hub-core/hub_core/schemas/progress_event.py": "sha256:9ac7b7fd4881d424bfe59c5001554fd7302243e8489d5e777584d11ead1db328",
|
||||
"tmp/hub-core/hub_core/schemas/tpsc.py": "sha256:5640d96a7fa862a468eeb0d6da002697b1f58e4cd675a4603b91e448d4db851e",
|
||||
"tmp/hub-core/hub_core/security/__init__.py": "sha256:2754e25ec0f5725c33cb0b4dff1b7d10b364ebd828e609bb5b44eee3309d2d60",
|
||||
"tmp/hub-core/hub_core/security/account_reader.py": "sha256:27019616b84cf030969a8e3c0850b5ae52f336008fd9daa4c26360566e74a39b",
|
||||
"tmp/hub-core/hub_core/security/audit.py": "sha256:94cb85d71f065443c6423871b59d41e929af0441c95928273caf3e38dad8125c",
|
||||
"tmp/hub-core/hub_core/security/boundary.py": "sha256:a1629ac717672276f61015c83f7af6e375bbd8c1234c712dd3d225da307ae0d6",
|
||||
"tmp/hub-core/hub_core/security/browser.py": "sha256:fd474ee4b9611fe8dd2c60111402c2fce67d680a7da3519b5d4a495a6b559b7a",
|
||||
"tmp/hub-core/hub_core/security/config.py": "sha256:7d604f6aeebde393a371ec3e0ab174934e10808c29fb370acba031486e9c02a3",
|
||||
"tmp/hub-core/hub_core/security/context.py": "sha256:1181bbf12ba86bfd5046dab2f3a22a64ee3686be6dd52ab3e843303349b13a52",
|
||||
"tmp/hub-core/hub_core/security/facts.py": "sha256:3de4db38ffd3f86f4918d76f811289cd501be3c28dcba16f5088aa2a2b7529ce",
|
||||
"tmp/hub-core/hub_core/security/identity.py": "sha256:d7a0bab9d59a5f342fdedc9723d818a9d2537a59c6a9415455786af748f912e9",
|
||||
"tmp/hub-core/hub_core/security/policy.py": "sha256:a2370e9ea5b04b1d5a429644d7f81edb1cbe8e15214c23b16cd6f949613eebd6",
|
||||
"tmp/hub-core/hub_core/utils/__init__.py": "sha256:ce4ddb30ccc4fd2c4ee59e8a3c088a12165171af02aea957f17f72cd868e1899",
|
||||
"tmp/hub-core/hub_core/utils/pagination.py": "sha256:366250b85052c7aabc2a2262521d34233124ba3a41026042792f8eda706ecb4f",
|
||||
"tmp/hub-core/hub_core/utils/paths.py": "sha256:988a889be74f0626ca3c27b1d6677bd4a556e35de389c060d07ab64fa1c22fc8",
|
||||
"tmp/hub-core/hub_core/utils/routing.py": "sha256:c94b44c5f1ab723e123503e20e0309f28abeeabea6d51beda79247d99852ad1e",
|
||||
"tmp/hub-core/hub_core/utils/slugs.py": "sha256:eda7a7d18ff21a4d949223b75a2b615a949e615f461152a9cb9a2cf74b491e2d",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/__init__.py": "sha256:098578bae76f7d97354b8f3dfe8ddc63b15806a46d1691d70ed12d9839d69aec",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/conformance/__init__.py": "sha256:f7ce0a651913f157e586afd6e953b483add0dd5257ee9f2406c47e8d46ee9587",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/conformance/harness.py": "sha256:ca870fbbec7b7f5db6521d615fd76dfcbb9e97cbdfb037ffa993851a663b3c40",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/contracts/__init__.py": "sha256:ffb7a6b79ce15ddd57943bfbc40799e078c6f57c6690018237baa3f3a755ac49",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/contracts/helixforge_hub_extension/__init__.py": "sha256:32c095a16f777127ec0d2cd5e8373889866b81e9955d01e5adaf9503f6864da4",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/contracts/helixforge_hub_extension/v0_1_0/__init__.py": "sha256:e176b86b24d79c11f78ad714878bc3fca41c7821654fa766278b697360a41201",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/contracts/repository_navigation/__init__.py": "sha256:64912fe6673b72c3c0d8a2da28673d58bdf6f4185a1376ffe43d3735350adb60",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/contracts/repository_navigation/v1_0_0/__init__.py": "sha256:574cf1fee8433e0b11d9475cfbcc3837730b55f6ea1faa4920cba106d959464f",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/contracts/workload_projection/__init__.py": "sha256:c01198d23571442c1c3a596c7cd16be17dc1a3efdcfe3e8f9725b7dba16fc103",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/contracts/workload_projection/v1_0_0/__init__.py": "sha256:a9ecfecbf44893d32268288c872cdede0440d2a1373d37a47f69ba8c6431de0d",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/database.py": "sha256:a7704e97509433e90655b0ea22d5fa626d75b8b6470015ef8b9e5997e7a7f5ea",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/events.py": "sha256:c7125a242ed638a3ede29129e4ad826cd188cf76239b59a8587a40d182bbd0e7",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/mcp/__init__.py": "sha256:f97b25193573e56886b66f91cb8c86ef4a39f2100d709869e279e17456959859",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/mcp/credentials.py": "sha256:f5433d29848bd5a399a5e31695e0d908748e0a0856d26b2d691b667c50c95c34",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/mcp/server.py": "sha256:fc6a6de0a29ad9b6da176302a7d24e4ba987f667b6a7fb001029f00cb0d0c582",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/message_identity.py": "sha256:0ab996ba50f236c1342ce72ca8ae6ff28102ef41216972a745f7260e0c93fb24",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/migrations/__init__.py": "sha256:ccf4820e270c97fd5d4ac02f0c96362a772b8f4d1bcccc3f5e0077b77f575d36",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/migrations/env.py": "sha256:282e6e1a9e4a3cfdc111887f04dc5c1645307b3943a421852abe1709ce712e57",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/migrations/roles.py": "sha256:91e85297d296b0c4b9c78b16ae67d3a4707232d8f32b2cac2b2e84f31fa80e89",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/migrations/versions/0001_core_schema.py": "sha256:c65f076a7b56fb93ee67869e04d922ea396eab72a4c2d2f0dabd706c918aa081",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/migrations/versions/0002_runtime_ports.py": "sha256:d3ce15463841b3c13eaafdd137a65d4cf2839c0b8e8fddcb2cb2f1adbceb9f00",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/migrations/versions/0003_repository_navigation.py": "sha256:fb2d2cb5ed10f1760ab789ced8d43c657c1bedc29ba666231a70a18636160902",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/migrations/versions/0004_workload_projection.py": "sha256:87ce668bfef5cf4aaf0cfd3b48d498f2370f68e06a6e66375e446af6fbbb9c96",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/migrations/versions/0005_message_identity_aliases.py": "sha256:ec05d2c3cb906b78cdec4d220a7ce09264c38904c792cdad3cd1082e7eace7c0",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/migrations/versions/0006_outcome_outbox.py": "sha256:05effdf6f258836d1cd223f9d9fc3447d264484021d3a51cfa42517453d613e1",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/migrations/versions/__init__.py": "sha256:569f6d7e5cc1c17b7b1eee3eec3b82774b745d01ee1dfdf851a5c6f5c337f0bb",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/models/__init__.py": "sha256:c0b6de4986614a163dbb2467d15882eadbd66800478a50de4d6404198d1f773a",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/models/agent_message.py": "sha256:23d16eeaffe780f326b08e6c441100e6ae7b4075bbb6421734c06156a87c4375",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/models/base.py": "sha256:85bb40bde6f4cf8e6c5700a3a016a711fab4adff77c5eb78f89827fe28b9537b",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/models/capability_catalog.py": "sha256:eebbb31f264821a61662d3c9e8c7eba74f46d7f68b946e35f8127343bf2ff9c4",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/models/capability_request.py": "sha256:70a867c82aaa061a4e1c671b023d213032464e776226280f99e2ca192e2a6eba",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/models/domain.py": "sha256:ddf45c37e3c37014ddd9148be01cf104658e1601abba2a8ba96f7680cdb581b3",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/models/managed_repo.py": "sha256:835c5d44581daf7d7dd95325e3f7fdf0add4d529b83779ed83b5e812dcb3aa61",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/models/message_identity_alias.py": "sha256:d07d59cd9c9351669e8319727d08bc0e9bb7e0ee36bf8a34c0c258f0b4ea61e4",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/models/progress_event.py": "sha256:ee750127db2f49c5b9b94773a408f7f965d834b02e6d962220f4bc762309161f",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/models/tpsc.py": "sha256:cb28cbe3512486adb73c0bce633b3c542a41a64e7ec673e86a5a25ab20d94afe",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/routers/__init__.py": "sha256:800d1c45f597fcb4970ca7a83acd2b36016006efbdf638e14a3482a954d9046d",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/routers/capabilities.py": "sha256:18a403ad6ac961bc490543b698e079336f60ef9902a6cd71ef9899076660d5c0",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/routers/domains.py": "sha256:d4c4061d2ab0d2d6390a10f4f815deb0b93b3979345aee965b666110ba32e6e0",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/routers/messages.py": "sha256:903bd4f8c8ca599b606cf2229315de21097360816fcda907159dac4f48cee512",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/routers/policy.py": "sha256:358271263295fdebb5bcb95c3a27bd3ea456964a77bc01c3f784fb7a8754aacf",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/routers/progress.py": "sha256:680cf4dea00a1734d7d70ef7880acc8fd39f045521baa47f415c17934779d18a",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/routers/repos.py": "sha256:1bca6c9b2b5bbe172f5b935b763ac1e399b1d403cdc2c463000ae79f843257a2",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/routers/tpsc.py": "sha256:706815b01be1c0320bf73cf9cff3e9415c1f27b8449ee9e6fea67b12d3042fd1",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/__init__.py": "sha256:c522e626373407bf9bcd727dac7bb812cbdc8c3ef5bb6509a74949e5b49ab4c2",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/app.py": "sha256:87b077498bbe321c73139e51f7ca689fdc7963a98c4d72a5a3bbcc564f47ee76",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/cli.py": "sha256:98ec00f2a12911245827f515877472ae1c37cea65a42454494450ffbe7380e57",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/compat.py": "sha256:9f1c4575bb406ae1174da1a005ec16f44ace63768617e11164b44b4051162d0d",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/compat_catalogs.py": "sha256:250f61ea39cced32c8cd932c4e770ae8be54ff1cf1e257ee2c82324bde0d7a26",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/config.py": "sha256:009b2fc5d1f8fc390d478b01444f610ada91e5fee30534936382be2529a843fc",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/inbox_projection.py": "sha256:84499238654310b86f7a97f2817163ff4c4da0dfce562c677294fa3dfef7f398",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/migration.py": "sha256:d12731fa581c48bf58deec19405ece977c89d08993b2a2ad047cb1fd17318ea8",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/models.py": "sha256:367ca4aa29f59f8e3f59eab22f12782146cf623fa7ac7c22346c794b85a88185",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/ports.py": "sha256:ab70a401deae73389761a0e88dc8ee843df00a671fae6919b1f7eed344cfb542",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/postgres_store.py": "sha256:9286e7845009b66f00069d67177733dabe372d79986c33ca9b43e00dfa5a2341",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/repo_manager_client.py": "sha256:8fa305277c5f3ddfdbe1daf4023ce6c3cde03b5c18c1292dd6aac3fe995aabe1",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/repository_navigation.py": "sha256:f3503596781f3e7f7d53dd28dd3aaf563905f1398575b40c8080e2b1b9978b1e",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/repository_navigation_routes.py": "sha256:eab78ab418a7b542dcdcab5da023bacc65fb50520853f8d179accb2105e373cf",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/store.py": "sha256:2fb78f14bab8df08807322d6f6416745856d69e6001381246abbac879891858d",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/tables.py": "sha256:a5ff72a9c54eedcc8bb81330e62ee72578a383a1d03a1acb598c72c96cdfbe9e",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/validation.py": "sha256:2add804d95d5d0469d6d8d605fbd1013885da972489a017260c6fddef7b80c79",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/workload_projection.py": "sha256:8500260404b0c566a62e51fef63ee320d4e3dafe5e2467f44db884296b9e3bf4",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/runtime/workload_projection_routes.py": "sha256:5c71189b98867f2f1f7612f47ee69c0ec3ddf836b9b1c7e134b98a2be45791de",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/schemas/__init__.py": "sha256:dfa2ec2d125f03a532637d2fbef3058ebe1f85c515ff42a930198e164b7812f7",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/schemas/agent_message.py": "sha256:d6a7f40dc9a3c61be761f4d2e2c08f726fb0a423ef73e273a7cd97c69ae6c6a3",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/schemas/capability.py": "sha256:949c55cb1f2694de4617ad53dc9cb7bc0e72addd7b9d0f104b93d783e4edc647",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/schemas/doi.py": "sha256:73d675aecabd5a62ae13184494a4b9db122ad24b3132e1d0e908eef802382f36",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/schemas/domain.py": "sha256:872a704fea959d2e4d0ff771770a97160457282218f4748ba4f830c489543aac",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/schemas/managed_repo.py": "sha256:a7ab3b1ab399da81324693dcd5d3feeccb211642b10f11cd3f03c7fe6ba751d4",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/schemas/policy.py": "sha256:bdaef1640783ac325a050cadf214e731d7c8e5e3a35dbb8f7562d5abbd209a4c",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/schemas/progress_event.py": "sha256:9ac7b7fd4881d424bfe59c5001554fd7302243e8489d5e777584d11ead1db328",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/schemas/tpsc.py": "sha256:5640d96a7fa862a468eeb0d6da002697b1f58e4cd675a4603b91e448d4db851e",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/security/__init__.py": "sha256:2754e25ec0f5725c33cb0b4dff1b7d10b364ebd828e609bb5b44eee3309d2d60",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/security/account_reader.py": "sha256:27019616b84cf030969a8e3c0850b5ae52f336008fd9daa4c26360566e74a39b",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/security/audit.py": "sha256:94cb85d71f065443c6423871b59d41e929af0441c95928273caf3e38dad8125c",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/security/boundary.py": "sha256:a1629ac717672276f61015c83f7af6e375bbd8c1234c712dd3d225da307ae0d6",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/security/browser.py": "sha256:fd474ee4b9611fe8dd2c60111402c2fce67d680a7da3519b5d4a495a6b559b7a",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/security/config.py": "sha256:7d604f6aeebde393a371ec3e0ab174934e10808c29fb370acba031486e9c02a3",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/security/context.py": "sha256:1181bbf12ba86bfd5046dab2f3a22a64ee3686be6dd52ab3e843303349b13a52",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/security/facts.py": "sha256:3de4db38ffd3f86f4918d76f811289cd501be3c28dcba16f5088aa2a2b7529ce",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/security/identity.py": "sha256:d7a0bab9d59a5f342fdedc9723d818a9d2537a59c6a9415455786af748f912e9",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/security/policy.py": "sha256:a2370e9ea5b04b1d5a429644d7f81edb1cbe8e15214c23b16cd6f949613eebd6",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/utils/__init__.py": "sha256:ce4ddb30ccc4fd2c4ee59e8a3c088a12165171af02aea957f17f72cd868e1899",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/utils/pagination.py": "sha256:366250b85052c7aabc2a2262521d34233124ba3a41026042792f8eda706ecb4f",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/utils/paths.py": "sha256:988a889be74f0626ca3c27b1d6677bd4a556e35de389c060d07ab64fa1c22fc8",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/utils/routing.py": "sha256:c94b44c5f1ab723e123503e20e0309f28abeeabea6d51beda79247d99852ad1e",
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core/utils/slugs.py": "sha256:eda7a7d18ff21a4d949223b75a2b615a949e615f461152a9cb9a2cf74b491e2d",
|
||||
"app/api/services/historical_projection.py": "sha256:e3c4bf965764b32a6df5d61c71272ee22569df9a9ddae2a3fc3df97ec554e0b2",
|
||||
"app/migrations/versions/0001_initial_schema.py": "sha256:4638ac95fcf60144a01dce209e1ded399a5bd3571c0f8e280c1214a101290fe7",
|
||||
"app/migrations/versions/0b547c153153_add_workstream_dependencies.py": "sha256:a8c778098ba869b68b7b80fbea68242018daddda4a9ca2bf4e155422e51b3a39",
|
||||
"app/migrations/versions/5733434addf4_merge_task_status_canon_and_legacy_.py": "sha256:1e53e544051358364a5ef9768a04ad65f1192f51b419de6b6e8159b74c3cb156",
|
||||
"app/migrations/versions/a0b1c2d3e4f5_memo_notification_receipts.py": "sha256:a8a9323192f727a5884f2af62c5a82828840230ded6eaa870825c7216a396051",
|
||||
"app/migrations/versions/a3b4c5d6e7f8_gems_pass3_sbom_snapshot.py": "sha256:1fbe283ffcc17680152044030104a244fb333a8ba3d0f0c5cd25aec364614d35",
|
||||
"app/migrations/versions/a3f1c2d4e5b6_add_extension_points_and_technical_debt.py": "sha256:59c43530ac927dde007e5e76c4c540f96c40df5563b532008e52d6728630e8ea",
|
||||
"app/migrations/versions/a4d5e6f7b8c9_allow_guarded_slug_rollback.py": "sha256:36de3f5f88328c43dbfd2d153933a2e52216e37e38e75142b1ead0d3870ce59d",
|
||||
"app/migrations/versions/a4v5w6x7y8z0_legacy_meter.py": "sha256:9e51355b5863117aa0f997ed461900f91c32333c2eb785aaa14832164cb58616",
|
||||
"app/migrations/versions/a4v5w6x7y8z9_task_status_canon.py": "sha256:2520c8e7880624f382ef3cf33dc64de4af1c2a88749eed5504f24aa5cf650b4c",
|
||||
"app/migrations/versions/a7c3e9f1b4d2_intake_work_record_entity.py": "sha256:57434af88a59b5050be8ba4a41019cfb1b2b036d37762ff73d14b8ef3af1f28c",
|
||||
"app/migrations/versions/b1c2d3e4f5a6_v0_5_dynamic_domains_and_managed_repos.py": "sha256:f84fca90c96353d48c33765cd078bf104fc826465647641b04d78ff13a52299b",
|
||||
"app/migrations/versions/b3c4d5e6f7a8_workplan_dependency_source_owner.py": "sha256:900a7c711ff32e70c04e2864bcc9a9ce94aad0c72e7dc4010cf8dfdaf8a342f0",
|
||||
"app/migrations/versions/b4c5d6e7f8a9_add_needs_human.py": "sha256:700a35280e37b2c4941e19cb28655bed1a7fe16de607c1935f4e82de57ca1794",
|
||||
"app/migrations/versions/b5e6f7a8c9d0_fabric_snapshot_set_revision.py": "sha256:19f0ad8b663035605e684762ba5f286e8b5d6c3e6f9361c57331e2e540b83798",
|
||||
"app/migrations/versions/b8d4f0a2c6e1_work_record_identifier_aliases.py": "sha256:9c785bd0692b464baed52c8c08455cf7f24c69f34341099fbcf65cc11847ab4f",
|
||||
"app/migrations/versions/c2d3e4f5a6b7_v0_3_contributions.py": "sha256:3101323722e72db70cd7168065136e57447ee515ef9f4d2492e4660735ad6e97",
|
||||
"app/migrations/versions/c4d5e6f7a8b9_inbox_feed_revision.py": "sha256:48f1730037be99b5623e878d7f20a06bec243ce27317fde81c82e16006d7b3ce",
|
||||
"app/migrations/versions/c5d6e7f8a9b0_add_goals.py": "sha256:9ce278579929df0bffad6bc4cf47fc58ad675350897519ef198d29104c180613",
|
||||
"app/migrations/versions/c6f7a8b9d0e1_work_record_flavor.py": "sha256:c7a2eedf6750c8414ab0007388788f52e2b954a47a42ecb5e779b2a31f0e12a1",
|
||||
"app/migrations/versions/c7d8e9f0a1b2_service_catalog.py": "sha256:70cabce13f37c204b4ec007f6aa727c31f0b5c9cbb717d3c3db5e9ba45912a38",
|
||||
"app/migrations/versions/c9e5a1b3d7f2_review_contracts_and_receipts.py": "sha256:7cbc0615c2c05c7cea91841188e471b6344652a5af6fa991a151231705af0374",
|
||||
"app/migrations/versions/d1a2b3c4e5f6_workplan_projection_retirement.py": "sha256:9732342f8324e878352ed4c496d3bf05c9c1d485186ae0c4f29507b995dfd958",
|
||||
"app/migrations/versions/d3e4f5a6b7c8_v0_3_sbom_entries.py": "sha256:090dd86e15ea4737ec3d7523f787ca6ea0ef3143b5060a6743c6e024e319342c",
|
||||
"app/migrations/versions/d6e7f8a9b0c1_sbom_ecosystem_expand.py": "sha256:e08de5e1d90becf24ee995cb6a4652cae117b05e77930aa3cd2d9a1f62b7edea",
|
||||
"app/migrations/versions/d7e8f9a0b1c2_broadcast_receipts_and_notices.py": "sha256:1220d62bcc15a680675fd90d234af3241ad2e1e5b05d173997abb21ce6b95370",
|
||||
"app/migrations/versions/d8e9f0a1b2c3_repo_anchored_classification_spine.py": "sha256:a5247f4079f8e3fe45700b52d5009db60d364c66aa9259f39ebf659d608d9780",
|
||||
"app/migrations/versions/e1f2a3b4c5d6_gems_pass1_domain_fk.py": "sha256:e6dab685b0c991053f447bb335bf12f03f981cf0c409f44df80a4d4d79935bea",
|
||||
"app/migrations/versions/e2b3c4d5f6a7_task_canonical_record_id.py": "sha256:f70c44498b5b13cc05b6bd136381b97e9ea4431597da25f656b6ee43fcfc11a7",
|
||||
"app/migrations/versions/e2f3a4b5c6d7_add_last_state_synced_at_to_repos.py": "sha256:b1e773ad0d6255abefe260066d09989f210fd9bad07f0da2ec4328635339b702",
|
||||
"app/migrations/versions/e8f9a0b1c2d3_task_wait_qualifiers.py": "sha256:ae8e8bee00cc19b3e0f79d888a37a82c556e6ec8827b5bc4a8c2a4e71fd8906a",
|
||||
"app/migrations/versions/e9f0a1b2c3d4_write_idempotency_keys.py": "sha256:428dc61fd07ac2534718c31685dcde68c47f61e2e83ceb28c24b09948436640d",
|
||||
"app/migrations/versions/f0a1b2c3d4e5_suggestions.py": "sha256:0d63e760ffce0f7f1da7c7214fdf102ab33cc3a5f032bd8e314293eea64a542e",
|
||||
"app/migrations/versions/f1a2b3c4d5e6_workplan_file_backing.py": "sha256:8c836da6f0232f218197f51c5e17c64fd1f56dca6552609d88b52f294c69e3d6",
|
||||
"app/migrations/versions/f2a3b4c5d6e7_gems_pass2_workstream_repo_id.py": "sha256:169bc1b77e9e80f7ce5c792278e2c97eadbc0a42368cdb091b60348e1fc9eb3d",
|
||||
"app/migrations/versions/f3a4b5c6d7e8_add_agent_messages.py": "sha256:63ef4f5a7e02cbc591f672f8cd898487e4491a945ace069f434a566c322c53b4",
|
||||
"app/migrations/versions/f3c4d5e6a7b8_repository_rename_identity.py": "sha256:ae4a385ede7e77b67a76a16621e88f67aaee8936e6eae926a67e723a2c85964b",
|
||||
"app/migrations/versions/f9a0b1c2d3e4_task_wait_window.py": "sha256:dc28b7c1d43992c7fd153597ed07231f56896b4e7787f1b95c89b170a1cad5f4",
|
||||
"app/migrations/versions/g4b5c6d7e8f9_add_host_paths_to_repos.py": "sha256:512b3be4f371639510a761c2cc64b575c27135c6407a2c6778f577574c51984b",
|
||||
"app/migrations/versions/h5c6d7e8f9a0_suggestion_workflow.py": "sha256:f6a1cbe438d2c98c51bb45867f56d098c5f537348fe6667e339d133837008103",
|
||||
"app/migrations/versions/i6d7e8f9a0b1_capability_requests.py": "sha256:3b9529237f267b1c2d7a0ab572730577caa930f7293676f6f6d1dbede07ddd53",
|
||||
"app/migrations/versions/j7e8f9a0b1c2_tpsc.py": "sha256:206af55bb3f4572a34381d88bee49631cf65bb25397f8e3f6ba0aaac882436cc",
|
||||
"app/migrations/versions/k8f9a0b1c2d3_doi_cache.py": "sha256:2988362775a02973523d579fc8f69cbdc8dda0a0179987a8351f02847cc9c5d1",
|
||||
"app/migrations/versions/l9g0h1i2j3k4_capability_request_routing_note.py": "sha256:3d6fbc9e824a25d70d31881636f71bd96f3fe91dca6e1abdeccfa43e7746b939",
|
||||
"app/migrations/versions/m0h1i2j3k4l5_capability_request_dispute.py": "sha256:bc13d20c0277ee9fa13fb7466fafb8f0abf0fd58e67755de22697b0ae40aff8d",
|
||||
"app/migrations/versions/n1i2j3k4l5m6_add_git_fingerprint_to_repos.py": "sha256:bb47feceea45f7f3530f998479667405e309e351485cb0e01465f9b90affdf9d",
|
||||
"app/migrations/versions/o2j3k4l5m6n7_add_token_events.py": "sha256:560c0692bcd68d039199d1b15b8524aeb7c63836e87085c4c1976cec00a9797d",
|
||||
"app/migrations/versions/p3k4l5m6n7o8_add_repo_id_to_capability_catalog.py": "sha256:d8bbc8072c0af2ba1ea67510d29dd7737da2709085ea53cd2bdd076d41fdf8e6",
|
||||
"app/migrations/versions/q4l5m6n7o8p9_add_interface_changes.py": "sha256:00c8e8a1f78a7235dd955fe46976b4d6ceaff581e6e67e4ba00d861c73094a3e",
|
||||
"app/migrations/versions/r5m6n7o8p9q0_workstream_status_string.py": "sha256:96fa510bd09e2e0f93bf99effbbbc0747bd490e2441587e755de80631e682cd4",
|
||||
"app/migrations/versions/s6n7o8p9q0r1_workstream_planning_metadata.py": "sha256:f0e7fef728af3f6b3150ed7d86981948aab9c5d3307a3a0b23ff068c246ed2b1",
|
||||
"app/migrations/versions/t7o8p9q0r1s2_perf_indexes.py": "sha256:293e24b31ca75c922588e68d9e12d967c38fb45764b1f5e6ff18ec0fe18fe055",
|
||||
"app/migrations/versions/u8p9q0r1s2t3_workstream_canonical_states.py": "sha256:cff08a8b509e42b3caabd3bf91cea31b87644d54d4451b6c36d06a9d9c1b5011",
|
||||
"app/migrations/versions/v9q0r1s2t3u4_token_event_provenance.py": "sha256:0e0d3f3c518263542fc572582521e0e9b471dd350af5c6d611c76015cb8fba83",
|
||||
"app/migrations/versions/w0r1s2t3u4v5_token_event_legacy_source_ids.py": "sha256:63772a289b35362b34804660ff6c387be52d339b06b80f25559f4b2cc26eb91c",
|
||||
"app/migrations/versions/x1s2t3u4v5w6_workplan_execution_queue.py": "sha256:5ba338e7567ebe1a0b61094f9dea54c6cc9f893d07d449f11d089e262f103344",
|
||||
"app/migrations/versions/y2t3u4v5w6x7_fabric_graph_read_model.py": "sha256:ab0a2ae750310832b4d57dd5867487d69f025e809da4ee199bf064974bb1712e",
|
||||
"app/migrations/versions/z3u4v5w6x7y8_financial_fabric_vnext.py": "sha256:f1a25286cdb801a270ed0b5295a98da75d43622756b3f4a0ed84efc4311f7d75"
|
||||
},
|
||||
"python_package_metadata": {
|
||||
"usr/local/lib/python3.12/site-packages/pip-25.0.1.dist-info/METADATA": {
|
||||
"name": "pip",
|
||||
"version": "25.0.1",
|
||||
"metadata_sha256": "sha256:4fa7318cf30f979db7cec45c12cbbc2b4f88a15f12eefbf59a6291d0a03af926"
|
||||
},
|
||||
"usr/local/lib/python3.12/site-packages/uv-0.13.1.dist-info/METADATA": {
|
||||
"name": "uv",
|
||||
"version": "0.13.1",
|
||||
"metadata_sha256": "sha256:3554d26fcb1db453b54bde82aa3830ddc37179f3ac4394d670361553c02d0cf2"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/aiofile-3.12.3.dist-info/METADATA": {
|
||||
"name": "aiofile",
|
||||
"version": "3.12.3",
|
||||
"metadata_sha256": "sha256:faaa3115c495ac1989aa6bda262b79a6c97e056c83e04afcfc71584a59e3ceb1"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/alembic-1.20.0.dist-info/METADATA": {
|
||||
"name": "alembic",
|
||||
"version": "1.20.0",
|
||||
"metadata_sha256": "sha256:bd32c118c43955c106bfa4255b2fb5ac9db410b0f7255a4cafb14b9e221ff41c"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/annotated_doc-0.0.5.dist-info/METADATA": {
|
||||
"name": "annotated-doc",
|
||||
"version": "0.0.5",
|
||||
"metadata_sha256": "sha256:8c24d70c5d9153d22123353a906042fd7603df2d15c2196290b0f8a962558c46"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/annotated_types-0.8.0.dist-info/METADATA": {
|
||||
"name": "annotated-types",
|
||||
"version": "0.8.0",
|
||||
"metadata_sha256": "sha256:614985b278f601b8ef863f82783b991cc3ada4b89f592eb71c7c48c5f2ef2298"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/anyio-4.15.1.dist-info/METADATA": {
|
||||
"name": "anyio",
|
||||
"version": "4.15.1",
|
||||
"metadata_sha256": "sha256:043aecb571af7189e8a6c528f5d8e32545f1b2cdfaaf761d51e6d5b67ea3ca81"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/asyncpg-0.32.0.dist-info/METADATA": {
|
||||
"name": "asyncpg",
|
||||
"version": "0.32.0",
|
||||
"metadata_sha256": "sha256:10c1e84f762a55c69630704e8a429793dcab1ce5edba7deadb35f40476d502c9"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/attrs-26.1.0.dist-info/METADATA": {
|
||||
"name": "attrs",
|
||||
"version": "26.1.0",
|
||||
"metadata_sha256": "sha256:4cd40e690f23bf37cbcad34efd6758e062df1df07c86833f7e3ce95bf1fa38cc"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/authlib-1.9.1.dist-info/METADATA": {
|
||||
"name": "Authlib",
|
||||
"version": "1.9.1",
|
||||
"metadata_sha256": "sha256:7141e57ccac936724fd004b401d0695e0ae48f32f2aee14d90259a9d4bc4fdbd"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/beartype-0.23.1.dist-info/METADATA": {
|
||||
"name": "beartype",
|
||||
"version": "0.23.1",
|
||||
"metadata_sha256": "sha256:ac75ec7a0bd6407db75c5c1da887798dfd4d5d12099e299602d03baa0ba22986"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/cachetools-7.2.2.dist-info/METADATA": {
|
||||
"name": "cachetools",
|
||||
"version": "7.2.2",
|
||||
"metadata_sha256": "sha256:76bbee4a06789a8c42253966988a07aff8f2f29cb1ae3ff9d6f16d661f01f2d4"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/caio-0.12.9.dist-info/METADATA": {
|
||||
"name": "caio",
|
||||
"version": "0.12.9",
|
||||
"metadata_sha256": "sha256:3128051d993cbf71f589f68b0082167fe1c910b17379d27653b6945ec848c3c8"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/certifi-2026.7.22.dist-info/METADATA": {
|
||||
"name": "certifi",
|
||||
"version": "2026.7.22",
|
||||
"metadata_sha256": "sha256:ef5af1638fbb23676ac3c5777dfcfc2cd9c348fe4172ed5ba3d277655b248090"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/cffi-2.1.1.dist-info/METADATA": {
|
||||
"name": "cffi",
|
||||
"version": "2.1.1",
|
||||
"metadata_sha256": "sha256:558bafb9093a8e790175d9ecff9688382981d744877dad86fd6770db0f4dc918"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/click-8.5.0.dist-info/METADATA": {
|
||||
"name": "click",
|
||||
"version": "8.5.0",
|
||||
"metadata_sha256": "sha256:e87bce0bd194de70dfb8e708e0a6b0483009f25611804eaf87bfeb63e6c20501"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/cryptography-50.0.2.dist-info/METADATA": {
|
||||
"name": "cryptography",
|
||||
"version": "50.0.2",
|
||||
"metadata_sha256": "sha256:047cfc71226409de4318b360aef15c63a2adf609731e3dcf7fe932f14ea042ee"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/cyclopts-5.2.0.dist-info/METADATA": {
|
||||
"name": "cyclopts",
|
||||
"version": "5.2.0",
|
||||
"metadata_sha256": "sha256:a1bcd1e587744ec6f5c5c64126ac03a03fc2468f7c91cd1c44572a5ac11dcb2a"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/dnspython-2.9.0.dist-info/METADATA": {
|
||||
"name": "dnspython",
|
||||
"version": "2.9.0",
|
||||
"metadata_sha256": "sha256:d25dbd09b39758cd5cebe518701012a6278731986cd384fc4a7f25e78f7de929"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/docstring_parser-0.18.0.dist-info/METADATA": {
|
||||
"name": "docstring_parser",
|
||||
"version": "0.18.0",
|
||||
"metadata_sha256": "sha256:cbc42027997fd4b194ae5fd064a4d1e57b92976941d0c26d369561a7c016a333"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/email_validator-2.3.0.dist-info/METADATA": {
|
||||
"name": "email-validator",
|
||||
"version": "2.3.0",
|
||||
"metadata_sha256": "sha256:2a97b81eefcd856bc80b0346f47fa2d800b9a438bf8f9231ae00fe931d5c9fbc"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/exceptiongroup-1.3.1.dist-info/METADATA": {
|
||||
"name": "exceptiongroup",
|
||||
"version": "1.3.1",
|
||||
"metadata_sha256": "sha256:81984a523a2f7a522ad12bea784a8bb85edec0805ebbd0fb4e350169a36dd802"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/fastapi-0.143.3.dist-info/METADATA": {
|
||||
"name": "fastapi",
|
||||
"version": "0.143.3",
|
||||
"metadata_sha256": "sha256:364f68b16f489abe36d621da2fa727f774bec90916cd3325b78e422af3b59a5f"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/fastmcp-4.1.0.dist-info/METADATA": {
|
||||
"name": "fastmcp",
|
||||
"version": "4.1.0",
|
||||
"metadata_sha256": "sha256:cfdcfd24ad904514087ec1735baa54df174f72f570833a16b6074887cfc51fa6"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/fastmcp_slim-4.1.0.dist-info/METADATA": {
|
||||
"name": "fastmcp-slim",
|
||||
"version": "4.1.0",
|
||||
"metadata_sha256": "sha256:e8eca5fbae348ee6dcda0a0f1bf0dffa493e8d4d8763647ee48f4f871e35c998"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/greenlet-3.5.6.dist-info/METADATA": {
|
||||
"name": "greenlet",
|
||||
"version": "3.5.6",
|
||||
"metadata_sha256": "sha256:b9b4cbbc1f3165e50fbc4696c433fe82b8a151fde65eede28fb6ec5efb3e1fab"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/griffelib-2.3.2.dist-info/METADATA": {
|
||||
"name": "griffelib",
|
||||
"version": "2.3.2",
|
||||
"metadata_sha256": "sha256:fd24a68ed08309718d5759b8de3b90392b5804240d94834e6455be110ead34b3"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/h11-0.16.0.dist-info/METADATA": {
|
||||
"name": "h11",
|
||||
"version": "0.16.0",
|
||||
"metadata_sha256": "sha256:28f326098ac09fcba79b8f180f96087c841fe2456215cb7b872a9c7d5cd19d64"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/httpcore-1.0.9.dist-info/METADATA": {
|
||||
"name": "httpcore",
|
||||
"version": "1.0.9",
|
||||
"metadata_sha256": "sha256:fe2d4fda6199128978779e0cf27f3c045c531863fcdd987eacc74f3a18d41c21"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/httpcore2-2.13.1.dist-info/METADATA": {
|
||||
"name": "httpcore2",
|
||||
"version": "2.13.1",
|
||||
"metadata_sha256": "sha256:37a0ea0674e98b7c3a1f99c17d9bb5457de27a0f93c8b6560c9d17d525139abb"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/httptools-0.9.0.dist-info/METADATA": {
|
||||
"name": "httptools",
|
||||
"version": "0.9.0",
|
||||
"metadata_sha256": "sha256:8a743396f45465204e2b44b43cb57ec4a343c423f52604bbaf1777fd438698c9"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/METADATA": {
|
||||
"name": "httpx",
|
||||
"version": "0.28.1",
|
||||
"metadata_sha256": "sha256:febb9b0f8f3e80d57c8199c304f35c4336e8581d1d18d7983c92766b82793b25"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/httpx2-2.13.1.dist-info/METADATA": {
|
||||
"name": "httpx2",
|
||||
"version": "2.13.1",
|
||||
"metadata_sha256": "sha256:b75b03a003b5593e000907cf7239fcc3f688b8f17db4ecff883d11221ea988fc"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/idna-3.20.dist-info/METADATA": {
|
||||
"name": "idna",
|
||||
"version": "3.20",
|
||||
"metadata_sha256": "sha256:dbd8c14c1e4ca1e0c9824a6dbc7cbbf78884f38eb52d91148cd3025f671e4b85"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/jaraco.classes-3.4.0.dist-info/METADATA": {
|
||||
"name": "jaraco.classes",
|
||||
"version": "3.4.0",
|
||||
"metadata_sha256": "sha256:2e6b102232edd45ae1bb8a6b4091fd40cf3201a6bb6fd4bc97c5e8cd765a44b8"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/jaraco_context-6.1.2.dist-info/METADATA": {
|
||||
"name": "jaraco.context",
|
||||
"version": "6.1.2",
|
||||
"metadata_sha256": "sha256:f1b65b60aea229af54e09b17ae0036cf048fe4a6161fa2e7966a8ea5c2321491"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/jaraco_functools-4.6.0.dist-info/METADATA": {
|
||||
"name": "jaraco.functools",
|
||||
"version": "4.6.0",
|
||||
"metadata_sha256": "sha256:6ed3cae5b8eef084c3c7b2385a0a8ac4c8155ab7c729212bea099bee69d5bd6c"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/jeepney-0.9.0.dist-info/METADATA": {
|
||||
"name": "jeepney",
|
||||
"version": "0.9.0",
|
||||
"metadata_sha256": "sha256:b8e6c353e9aaed0ed0144029556417fda23b64f344e718331907054ba05b8c62"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/joserfc-1.7.5.dist-info/METADATA": {
|
||||
"name": "joserfc",
|
||||
"version": "1.7.5",
|
||||
"metadata_sha256": "sha256:17df62bbdc7212bbcda3144e72720a62fc34bbf76c573062939120738545250f"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/jsonref-1.1.0.dist-info/METADATA": {
|
||||
"name": "jsonref",
|
||||
"version": "1.1.0",
|
||||
"metadata_sha256": "sha256:f98db3890394fba23912faab86ad8f70ed564fc8c885298b636b270f28453e43"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/jsonschema-4.26.0.dist-info/METADATA": {
|
||||
"name": "jsonschema",
|
||||
"version": "4.26.0",
|
||||
"metadata_sha256": "sha256:05b189866ca98a96da3934bf6b83687ced3ff85325273b77e16b705f6d8b26d2"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/jsonschema_path-0.5.0.dist-info/METADATA": {
|
||||
"name": "jsonschema-path",
|
||||
"version": "0.5.0",
|
||||
"metadata_sha256": "sha256:cd7e9a4426436980f099d826dbce8f61afa6603b496385fba9a9eb0ad59cdd48"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/jsonschema_specifications-2025.9.1.dist-info/METADATA": {
|
||||
"name": "jsonschema-specifications",
|
||||
"version": "2025.9.1",
|
||||
"metadata_sha256": "sha256:35abd41757f32b4ea24756920ded47b70173d77cbc052a5a6d3ab583b2e8d89d"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/keyring-25.7.0.dist-info/METADATA": {
|
||||
"name": "keyring",
|
||||
"version": "25.7.0",
|
||||
"metadata_sha256": "sha256:bd54de98fede6dc3e1f3cd89b4e37c95d8842a523bdbb9e52ab40edff1837163"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/mako-1.4.3.dist-info/METADATA": {
|
||||
"name": "Mako",
|
||||
"version": "1.4.3",
|
||||
"metadata_sha256": "sha256:39ea65f21e706265428ea6f2925520f419a10f0113a59318192ed38175d8838b"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/markdown_it_py-4.2.0.dist-info/METADATA": {
|
||||
"name": "markdown-it-py",
|
||||
"version": "4.2.0",
|
||||
"metadata_sha256": "sha256:72c36ff516755443b1ecb61e17b2567a990230b49a504b0eb0c42d5f82448a9c"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/markupsafe-3.0.4.dist-info/METADATA": {
|
||||
"name": "MarkupSafe",
|
||||
"version": "3.0.4",
|
||||
"metadata_sha256": "sha256:66767d76388ece15d49d50dafb655891ef5d868715e7128e7f7d737a70b353c4"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/mcp-2.3.0.dist-info/METADATA": {
|
||||
"name": "mcp",
|
||||
"version": "2.3.0",
|
||||
"metadata_sha256": "sha256:a94577513a4fa0cb639c279c1ad6f4d49650872d45f2f4ab9bb2d9c2a505d457"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/mcp_types-2.3.0.dist-info/METADATA": {
|
||||
"name": "mcp-types",
|
||||
"version": "2.3.0",
|
||||
"metadata_sha256": "sha256:eb973e8b7f53d52ab1df9d1f18854ffa84f074f6052e310089e2655961c48ca9"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/mdurl-0.1.2.dist-info/METADATA": {
|
||||
"name": "mdurl",
|
||||
"version": "0.1.2",
|
||||
"metadata_sha256": "sha256:b53b29d48f499367053fda3c81e7ce27d2558380ebbf83e66023b02eb7ddd25d"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/more_itertools-11.2.1.dist-info/METADATA": {
|
||||
"name": "more-itertools",
|
||||
"version": "11.2.1",
|
||||
"metadata_sha256": "sha256:8c558bfab61818450e78db4018281f8f7b22115e681cd53ae1d9d4931be54f15"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/nats_py-2.16.0.dist-info/METADATA": {
|
||||
"name": "nats-py",
|
||||
"version": "2.16.0",
|
||||
"metadata_sha256": "sha256:58ddf3dd698f9026d397e5bb56a0baac723ba221d3dddae0831cfacc75c34255"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/openapi_pydantic-0.6.0.dist-info/METADATA": {
|
||||
"name": "openapi-pydantic",
|
||||
"version": "0.6.0",
|
||||
"metadata_sha256": "sha256:e46a181161c62fa24d7d3d0ff2eaabea3a7b580ad7aa9f70d1f08bd129d46f49"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/opentelemetry_api-1.45.1.dist-info/METADATA": {
|
||||
"name": "opentelemetry-api",
|
||||
"version": "1.45.1",
|
||||
"metadata_sha256": "sha256:5bc71e90cb421be92a43bf5ad5b0f25dccfa2a24ddceaa2877779879962a4c9e"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/packaging-26.3.dist-info/METADATA": {
|
||||
"name": "packaging",
|
||||
"version": "26.3",
|
||||
"metadata_sha256": "sha256:70fdb89fc4d4a9a043bf7372b8972bcc883fddff34ab55e9cf80d73875384763"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/pathable-0.6.0.dist-info/METADATA": {
|
||||
"name": "pathable",
|
||||
"version": "0.6.0",
|
||||
"metadata_sha256": "sha256:c418727931012c2306cb8fa2726d044616c3178c1fc078ce182385dcf2b59922"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/platformdirs-4.13.3.dist-info/METADATA": {
|
||||
"name": "platformdirs",
|
||||
"version": "4.13.3",
|
||||
"metadata_sha256": "sha256:3814840758f662bb98053d08f99085fb77721812258573732b092fd7f2120c30"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/psycopg2_binary-2.9.13.dist-info/METADATA": {
|
||||
"name": "psycopg2-binary",
|
||||
"version": "2.9.13",
|
||||
"metadata_sha256": "sha256:a5267b4520191137e34589704162fce02cfd40efcfeb899c45187c7f6bfea7e5"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/py_key_value_aio-0.4.6.dist-info/METADATA": {
|
||||
"name": "py-key-value-aio",
|
||||
"version": "0.4.6",
|
||||
"metadata_sha256": "sha256:0c1af357b841bc3862e39543faa863346c487be9f2e2ffefba009e957a256bee"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/pycparser-3.11.dist-info/METADATA": {
|
||||
"name": "pycparser",
|
||||
"version": "3.11",
|
||||
"metadata_sha256": "sha256:e3a74c846648bb55f4f907284b745e2003b87b96d9c9d17a8a50cf37804541c9"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/pydantic-2.14.1.dist-info/METADATA": {
|
||||
"name": "pydantic",
|
||||
"version": "2.14.1",
|
||||
"metadata_sha256": "sha256:4d4c8e8d5e6a27d5208f0d7949f25628e6747133034969d4d1399b1ad5394036"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/pydantic_core-2.50.1.dist-info/METADATA": {
|
||||
"name": "pydantic_core",
|
||||
"version": "2.50.1",
|
||||
"metadata_sha256": "sha256:ae6817764b603fa2300cd31b9566ecc33476df46163c4150fffc353121a166f2"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/pydantic_settings-2.16.0.dist-info/METADATA": {
|
||||
"name": "pydantic-settings",
|
||||
"version": "2.16.0",
|
||||
"metadata_sha256": "sha256:470656112388bca95fd7d27b8954fda1f11dd6579563cfb9c0ea0445d1746b77"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/pygments-2.21.0.dist-info/METADATA": {
|
||||
"name": "Pygments",
|
||||
"version": "2.21.0",
|
||||
"metadata_sha256": "sha256:1dde075570136774c706bf0009183a793fe0ee262e4a5590cc6eff8453eedd43"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/pyjwt-2.15.1.dist-info/METADATA": {
|
||||
"name": "PyJWT",
|
||||
"version": "2.15.1",
|
||||
"metadata_sha256": "sha256:1ea0c9f139b8c928276b3628af165955f6f764491448a6ad8f103cdcbb382da3"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/pyperclip-1.11.0.dist-info/METADATA": {
|
||||
"name": "pyperclip",
|
||||
"version": "1.11.0",
|
||||
"metadata_sha256": "sha256:2493839e0751761f27d39aa6d5c5dfd1df839c45da8f328aba4ae4102868b825"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/python_dotenv-1.2.4.dist-info/METADATA": {
|
||||
"name": "python-dotenv",
|
||||
"version": "1.2.4",
|
||||
"metadata_sha256": "sha256:87cfee6042412d48df1100ea7822684988c3f2b79de7a250f4717f4df3026d6f"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/python_multipart-0.0.32.dist-info/METADATA": {
|
||||
"name": "python-multipart",
|
||||
"version": "0.0.32",
|
||||
"metadata_sha256": "sha256:e9d399d7dea5eddf0e4d24b5c24687a82e7e50bf2c2b30f8f8a06a64d887dd86"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/pyyaml-6.0.3.dist-info/METADATA": {
|
||||
"name": "PyYAML",
|
||||
"version": "6.0.3",
|
||||
"metadata_sha256": "sha256:03c3b415ed38d09faedc49360e930769b40c58f68585e6de00e2e4916a858d34"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/referencing-0.37.0.dist-info/METADATA": {
|
||||
"name": "referencing",
|
||||
"version": "0.37.0",
|
||||
"metadata_sha256": "sha256:c93b00e6ab1524fd60848376604c189a114374776475c25a31d57be47b29de6a"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/rich-15.0.0.dist-info/METADATA": {
|
||||
"name": "rich",
|
||||
"version": "15.0.0",
|
||||
"metadata_sha256": "sha256:fad34fc603fac4481bf81f8dd629492fc302c0ec31909c86644751512afb2e3b"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/rich_rst-2.2.0.dist-info/METADATA": {
|
||||
"name": "rich-rst",
|
||||
"version": "2.2.0",
|
||||
"metadata_sha256": "sha256:2cd1f39149e69bd94c4f1c30cb26c763e45689e6d6527b4c23afa1112c48f165"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/rpds_py-2026.9.1.dist-info/METADATA": {
|
||||
"name": "rpds-py",
|
||||
"version": "2026.9.1",
|
||||
"metadata_sha256": "sha256:5d72dca2e387c8d2b4180b68ee87c15b64751e059100a6db58891ec9995445c3"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/secretstorage-3.5.0.dist-info/METADATA": {
|
||||
"name": "SecretStorage",
|
||||
"version": "3.5.0",
|
||||
"metadata_sha256": "sha256:b98e3dc42ff7e9b1bacce60dac2662cd9965fad6e4469fc9483c9eb99998c367"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/sqlalchemy-2.1.5.dist-info/METADATA": {
|
||||
"name": "SQLAlchemy",
|
||||
"version": "2.1.5",
|
||||
"metadata_sha256": "sha256:7f568ea71aecfb29792ccee2c8b1345825e385d54b7e7bba755e445e53b5696f"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/sse_starlette-3.5.0.dist-info/METADATA": {
|
||||
"name": "sse-starlette",
|
||||
"version": "3.5.0",
|
||||
"metadata_sha256": "sha256:6dc401682bdae1a3e1f31b1c320b7f926c354643993840393875ebfc171c9014"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/starlette-1.8.0.dist-info/METADATA": {
|
||||
"name": "starlette",
|
||||
"version": "1.8.0",
|
||||
"metadata_sha256": "sha256:551e8d74d290002521c655b816b27654e49922b88cb474c8d710a893099036f8"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/truststore-0.10.5.dist-info/METADATA": {
|
||||
"name": "truststore",
|
||||
"version": "0.10.5",
|
||||
"metadata_sha256": "sha256:1fd496f290853214e630d96f7163d2dd916f84ebe634b58aa827d6853e8f8610"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/typing_extensions-4.16.0.dist-info/METADATA": {
|
||||
"name": "typing_extensions",
|
||||
"version": "4.16.0",
|
||||
"metadata_sha256": "sha256:b05084ca1d50879865178d9fff9fabeab61bdfb1f361bfbde95421ffc8f9be46"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/typing_inspection-0.4.4.dist-info/METADATA": {
|
||||
"name": "typing-inspection",
|
||||
"version": "0.4.4",
|
||||
"metadata_sha256": "sha256:bad3d9e6342ef6750cf5128ec942327b8bebdce0b6e4d6f67cb15b27ae5118da"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/uncalled_for-0.4.1.dist-info/METADATA": {
|
||||
"name": "uncalled-for",
|
||||
"version": "0.4.1",
|
||||
"metadata_sha256": "sha256:45a21666ddfa8ca8d4e2423c05edaeaa7827686a3ae4fed82b24427854745c2f"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/uvicorn-0.54.0.dist-info/METADATA": {
|
||||
"name": "uvicorn",
|
||||
"version": "0.54.0",
|
||||
"metadata_sha256": "sha256:9399e5ddda3d26e842d6fb5420c38b0857aac568d53badbdc224b3a21339efa8"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/uvloop-0.23.0.dist-info/METADATA": {
|
||||
"name": "uvloop",
|
||||
"version": "0.23.0",
|
||||
"metadata_sha256": "sha256:fe11a50198ffd4d9f1cb20922dc638ad459d5e63e6c615b0c1c69448d3362977"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/watchfiles-1.3.0.dist-info/METADATA": {
|
||||
"name": "watchfiles",
|
||||
"version": "1.3.0",
|
||||
"metadata_sha256": "sha256:1fba87d08d66f10f7515e4817abd4ac7f27abf3300cb33b7ad3f79762987a502"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/websockets-17.2.dist-info/METADATA": {
|
||||
"name": "websockets",
|
||||
"version": "17.2",
|
||||
"metadata_sha256": "sha256:0d5f1279d095e7ba84ef21614af0822dc500ccb2e51b7c3a19eda7159b2dade4"
|
||||
},
|
||||
"app/.venv/lib/python3.12/site-packages/hub_core-0.2.0.dist-info/METADATA": {
|
||||
"name": "hub-core",
|
||||
"version": "0.2.0",
|
||||
"metadata_sha256": "sha256:84a59c6ea36d6d8a0b91b76e52f351a5ce6f2fd9ace8a4c887b51bab05973953"
|
||||
}
|
||||
},
|
||||
"limitations": [
|
||||
"Selected code and package metadata inventory; no full application acceptance or hermetic build provenance.",
|
||||
"Floating dependency origins remain unknown; observed bytes and versions are bound to this immutable image digest."
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
{
|
||||
"schema": "custodian.target-implementation-results.v1",
|
||||
"date": "2026-10-17",
|
||||
"all_sixteen_native_gates_remain_open": true,
|
||||
"source_and_fixture_only": true,
|
||||
"results": {
|
||||
"postgresql": {
|
||||
"owner_commit": "70f408ca2389bf3722a91a03832fc6e8587355e5",
|
||||
"canonical_tests": 82,
|
||||
"actual_SQL_oracles": 21,
|
||||
"LDAP": "synthetic_in_this_fixture",
|
||||
"exact_cleanup": "independently_verified",
|
||||
"source_task": "NK-WP-0048-T21_done",
|
||||
"native_gate": "NK-WP-0048-T14_progress",
|
||||
"retained_failures": [
|
||||
"R2_unknown_helper_subphase",
|
||||
"R3_backend_nested_reference_bug",
|
||||
"R4_snapshot_alias_and_deleted_backing_sets"
|
||||
]
|
||||
},
|
||||
"sops": {
|
||||
"actual_generated_cases": 65,
|
||||
"previously_skipped_cases_now_run": 61,
|
||||
"new_sealed_descriptor_cases": 4,
|
||||
"source_task": "NK-WP-0049-T37_done",
|
||||
"real_owner_recovery": false
|
||||
},
|
||||
"scanner": {
|
||||
"owner_commit": "9ebde0a9bd60d5c82910494fbe6bd1b891455cee",
|
||||
"fixture_checks": 10,
|
||||
"actual_hook_cases": 6,
|
||||
"hard_loss_cleanup": "passed",
|
||||
"source_task": "RMGR-WP-0021-T05_done",
|
||||
"other_tasks": "T03_progress_T04_todo"
|
||||
},
|
||||
"owner_recovery_handoffs": {
|
||||
"published_owner": {
|
||||
"repo": "secrets-engine",
|
||||
"workplan_id": "SECRETS-WP-0015",
|
||||
"source_commit": "c59bbf568c0be8a72ac593508f48c9b1f61ec4c1"
|
||||
},
|
||||
"prepared_owner": {
|
||||
"repo": "railiance-cluster",
|
||||
"workplan_id": "RCLUSTER-WP-0018",
|
||||
"publication": "unpublished_correct_historical_guard"
|
||||
},
|
||||
"native_recovery": false
|
||||
},
|
||||
"receiving": {
|
||||
"runtime_source": "51bc70d1ff8f25450a8650d8e50caf053093a02e",
|
||||
"readiness_source": "086d79a2736e34b916bd7de3c8a65e2ea38a3d64",
|
||||
"independent_receiver_tests": 26,
|
||||
"independent_registrar_tests": 47,
|
||||
"registrar_activated": false,
|
||||
"fixture_migration_oracles": 10,
|
||||
"actual_image_selected_files": 233,
|
||||
"actual_image_package_metadata": 86,
|
||||
"production_deployed": false
|
||||
}
|
||||
},
|
||||
"projection": {
|
||||
"new_publication_task_bindings_verified": 66,
|
||||
"prior_other_owner_bindings_verified": 9,
|
||||
"NK_unresolved": "preexisting_NK-WP-0006_to_missing_NK-WP-0001",
|
||||
"STATE_unresolved": "STATE-WP-0095-T07_to_deferred_RMGR-WP-0019-T06"
|
||||
},
|
||||
"limits": [
|
||||
"No new live rollout approval or runtime authority.",
|
||||
"No original TLS/key recovery, private owner admission, MFA continuity or native CNPG acceptance.",
|
||||
"Floating image dependency origins and real production migration timing remain unknown.",
|
||||
"Helm timeout is not a database or migration Job lifetime bound."
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
{
|
||||
"status": "verified",
|
||||
"scope": "two exact published workplans; read-only Git ls-remote and Hub GET snapshots",
|
||||
"writes_to_source_index_refs_or_Hub": false,
|
||||
"rows": [
|
||||
{
|
||||
"repo": "repo-manager",
|
||||
"published_commit": "9ebde0a9bd60d5c82910494fbe6bd1b891455cee",
|
||||
"remote": {
|
||||
"HEAD": "9ebde0a9bd60d5c82910494fbe6bd1b891455cee",
|
||||
"refs/heads/main": "9ebde0a9bd60d5c82910494fbe6bd1b891455cee",
|
||||
"symbolic_HEAD": "refs/heads/main"
|
||||
},
|
||||
"workplan": {
|
||||
"id": "5aa6f84a-c682-5996-ae26-96daef670833",
|
||||
"slug": "rmgr-wp-0021",
|
||||
"status": "active"
|
||||
},
|
||||
"source_record_id": "RMGR-WP-0021",
|
||||
"tasks": [
|
||||
{
|
||||
"id": "d3d20c18-5a5f-5f8a-b5c4-a22b4b662ebe",
|
||||
"record_id": "RMGR-WP-0021-T01",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"id": "e27817e6-b298-581f-b99a-05ec459be749",
|
||||
"record_id": "RMGR-WP-0021-T02",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"id": "0ab44bd9-00d8-5470-ad45-7350e7868d0a",
|
||||
"record_id": "RMGR-WP-0021-T03",
|
||||
"status": "progress"
|
||||
},
|
||||
{
|
||||
"id": "44272818-db49-58a2-83b1-d2f9e9d5976c",
|
||||
"record_id": "RMGR-WP-0021-T04",
|
||||
"status": "todo"
|
||||
},
|
||||
{
|
||||
"id": "25fbe694-41d8-5232-bce0-4ed362387d5a",
|
||||
"record_id": "RMGR-WP-0021-T05",
|
||||
"status": "done"
|
||||
}
|
||||
],
|
||||
"dependencies": [],
|
||||
"source_file_sha256": "966d15ccdabc8edf98bc58f9422ea190566d05fe4208f4749f59a9731f4e108d",
|
||||
"source_file_unchanged": true,
|
||||
"index_stat_unchanged": true
|
||||
},
|
||||
{
|
||||
"repo": "secrets-engine",
|
||||
"published_commit": "c59bbf568c0be8a72ac593508f48c9b1f61ec4c1",
|
||||
"remote": {
|
||||
"HEAD": "c59bbf568c0be8a72ac593508f48c9b1f61ec4c1",
|
||||
"refs/heads/main": "c59bbf568c0be8a72ac593508f48c9b1f61ec4c1",
|
||||
"symbolic_HEAD": "refs/heads/main"
|
||||
},
|
||||
"workplan": {
|
||||
"id": "68a0642e-4908-5260-89c9-3adce60e6a4d",
|
||||
"slug": "secrets-wp-0015",
|
||||
"status": "ready"
|
||||
},
|
||||
"source_record_id": "SECRETS-WP-0015",
|
||||
"tasks": [
|
||||
{
|
||||
"id": "a3e0e243-edac-5ade-a3d5-f58dac41633a",
|
||||
"record_id": "SECRETS-WP-0015-T01",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"id": "eab3b758-10ce-5464-b5f7-3a152ee1327a",
|
||||
"record_id": "SECRETS-WP-0015-T02",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"id": "6262a915-7655-50be-b9f7-481f816d7335",
|
||||
"record_id": "SECRETS-WP-0015-T03",
|
||||
"status": "todo"
|
||||
},
|
||||
{
|
||||
"id": "aeec6eb0-39e2-5f7c-8f5d-778133edfc73",
|
||||
"record_id": "SECRETS-WP-0015-T04",
|
||||
"status": "wait"
|
||||
}
|
||||
],
|
||||
"dependencies": [
|
||||
{
|
||||
"from_task_id": "aeec6eb0-39e2-5f7c-8f5d-778133edfc73",
|
||||
"to_task_id": "56c8d469-7a10-5d50-a30e-95cbf3cd4756",
|
||||
"relationship_type": "starts_after"
|
||||
},
|
||||
{
|
||||
"from_task_id": "aeec6eb0-39e2-5f7c-8f5d-778133edfc73",
|
||||
"to_task_id": "6262a915-7655-50be-b9f7-481f816d7335",
|
||||
"relationship_type": "starts_after"
|
||||
}
|
||||
],
|
||||
"source_file_sha256": "b3cab4e8d14b3b03179fc72a6e9ce1c0ee840cfa3247c022c1324d60378bde5b",
|
||||
"source_file_unchanged": true,
|
||||
"index_stat_unchanged": true
|
||||
}
|
||||
],
|
||||
"hub_instance": {
|
||||
"status": "ok",
|
||||
"instance_role": "primary",
|
||||
"instance_label": "railiance01"
|
||||
},
|
||||
"verifier_sha256": "ab18c1e934ca66b78d21fc7268b9b989569e2249e434d6688cb9de0083d2fda2"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue