Files
inter-hub/docs/evidence/ops-hub-activity-core-fallback-validation.md
tegwick e8e8187946 docs: close ops-hub evidence intake T06 and T08 with live validation
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.
2026-06-21 16:11:42 +02:00

4.4 KiB

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:

GET http://127.0.0.1:8000/progress/?event_type=ops_inventory_probe&limit=20

Observed result on 2026-06-16:

[
  {
    "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.