generated from coulomb/repo-seed
Record live ops_inventory_probe fallback evidence from activity-core and mark IHUB-WP-0022 T06/T08 done with the activity-core closure handoff on the fallback-deferred path.
119 lines
4.4 KiB
Markdown
119 lines
4.4 KiB
Markdown
# Ops Hub Activity-Core Fallback Validation
|
|
|
|
Date: 2026-06-16
|
|
|
|
Workplan: `IHUB-WP-0022`
|
|
|
|
## Validation Result
|
|
|
|
The State Hub fallback path is implemented, locally tested in activity-core,
|
|
and now verified through a live Railiance01 activity-core manual trigger.
|
|
|
|
Direct query:
|
|
|
|
```text
|
|
GET http://127.0.0.1:8000/progress/?event_type=ops_inventory_probe&limit=20
|
|
```
|
|
|
|
Observed result on 2026-06-16:
|
|
|
|
```json
|
|
[
|
|
{
|
|
"id": "db408146-0310-4ac3-ac77-f73c5a41e070",
|
|
"event_type": "ops_inventory_probe",
|
|
"summary": "Ops inventory probe: 0 ok, 4 degraded, 0 down, 5 skipped",
|
|
"author": "activity-core",
|
|
"created_at": "2026-06-16T05:34:02.711888Z"
|
|
}
|
|
]
|
|
```
|
|
|
|
Railiance also posted verifier evidence note
|
|
`60256e9a-9d1b-44db-8999-738cf03bca2e`, proving that the progress event was
|
|
matched to the exact manual activity-core trigger run:
|
|
|
|
- manual workflow:
|
|
`activity-40d15a87-7ff6-4d8e-992c-37df15f95110:manual-d2daa0e4-2d54-430e-a957-dca0ec9f469d`
|
|
- matched activity-core run id:
|
|
`90e3b112-d1e3-51af-8fb2-cb61f26add17`
|
|
- matched fallback progress:
|
|
`db408146-0310-4ac3-ac77-f73c5a41e070`
|
|
- immutable runtime evidence:
|
|
`api_image_id=sha256:5ff92a8217c450ae06075d00862b6e2a92a83ca09eea18b5a5e96b5d2d728b35`
|
|
|
|
This means Inter-Hub can cite live fallback evidence as the continuity
|
|
artifact for activity-core while the governed Inter-Hub widget/API-key path
|
|
remains explicitly deferred.
|
|
|
|
## What Is Validated
|
|
|
|
Activity-core local tests and the Railiance01 verifier now validate the
|
|
fallback sink shape:
|
|
|
|
- `state-hub-progress` posts one compact `ops_inventory_probe` progress event
|
|
per run.
|
|
- The fallback idempotency key is stable:
|
|
`activity_core_run_id:context_key:ops_inventory_probe`.
|
|
- The posted summary is compact, for example:
|
|
`Ops inventory probe: 1 ok, 0 degraded, 0 down, 1 skipped`.
|
|
- The detail includes `activity_id`, `activity_core_run_id`, `scheduled_for`,
|
|
`source_type`, `context_key`, `idempotency_key`, and a compact `probe`
|
|
payload.
|
|
- The compact probe strips response bodies, authorization headers, credentials,
|
|
URL query strings, and token-like values.
|
|
- Inter-Hub sink config absence is a clean skip with
|
|
`reason = missing_inter_hub_config`.
|
|
- When config is present but submission is not implemented, the result is a
|
|
clean skip with `reason = inter_hub_sink_deferred`.
|
|
- Railiance verifier evidence correlates the State Hub progress event to the
|
|
exact manual activity-core trigger run id instead of accepting any fresh
|
|
`ops_inventory_probe`.
|
|
- The verifier evidence includes immutable runtime identity through the live
|
|
`actcore-api` container image digest.
|
|
|
|
## What Is Not Yet Validated
|
|
|
|
- No live Inter-Hub event has been submitted from activity-core.
|
|
- No production `OPS_HUB_KEY` handoff has been verified.
|
|
- No `OPS_HUB_WIDGET_MAPPING` has been deployed into the activity-core runtime.
|
|
- No per-entity widget mapping has been smoke-tested against production
|
|
ops-hub widgets.
|
|
|
|
## Gaps Compared With Inter-Hub Submission
|
|
|
|
State Hub fallback is useful as continuity evidence, but it is not a full
|
|
replacement for Inter-Hub submission:
|
|
|
|
- It records one compact run summary, not one governed widget event per entity.
|
|
- It cannot attach annotations directly to the affected service or endpoint
|
|
widget.
|
|
- It does not prove ops-hub manifest vocabulary enforcement.
|
|
- It does not prove API consumer, key, rate-limit, or widget mapping behavior.
|
|
- It does not populate Inter-Hub event lists for hub dashboards or downstream
|
|
widget governance workflows.
|
|
|
|
## Closure Recommendation
|
|
|
|
`ACTIVITY-WP-0007/T06` may remain closed using fallback-deferred closure.
|
|
The live fallback path now has non-secret State Hub evidence, and the
|
|
Inter-Hub submission path is explicitly deferred until `IHUB-WP-0022-T03`,
|
|
`IHUB-WP-0022-T04`, and `IHUB-WP-0022-T07` complete.
|
|
|
|
This is not full Inter-Hub activation. The remaining full activation path is:
|
|
|
|
1. Provision `OPS_HUB_KEY`.
|
|
2. Deploy `OPS_HUB_WIDGET_MAPPING`.
|
|
3. Seed and verify the ops-hub widgets.
|
|
4. Submit one accepted Inter-Hub event per activity-core event type.
|
|
|
|
Until that path is satisfied, Inter-Hub should keep its own per-entity intake
|
|
tasks open, but it does not need to hold the activity-core closure gate open.
|
|
|
|
## Next Evidence To Capture
|
|
|
|
- Confirmation that Inter-Hub sink remains skipped cleanly while config is
|
|
absent or deferred in the deployed runtime.
|
|
- After ops-hub activation, event ids for one accepted Inter-Hub submission per
|
|
event type.
|