Files
inter-hub/docs/evidence/ops-hub-activity-core-fallback-validation.md

3.5 KiB

Ops Hub Activity-Core Fallback Validation

Date: 2026-06-15

Workplan: IHUB-WP-0022

Validation Result

The State Hub fallback path is implemented and tested in activity-core, but no live fallback event exists in State Hub yet.

Direct query:

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

Observed result on 2026-06-15:

[]

This means Inter-Hub can accept the fallback-first design, but cannot yet cite live ops_inventory_probe evidence as a closure artifact.

What Is Validated

Activity-core local tests 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.

What Is Not Yet Validated

  • No live activity-core worker has posted an ops_inventory_probe event to the local State Hub instance.
  • 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 should not close as fully activated based on the current State Hub state, because no live ops_inventory_probe progress event exists.

Two acceptable closure paths remain:

  1. Fallback-deferred closure: run one disabled/manual activity-core probe, confirm a live non-secret ops_inventory_probe progress event in State Hub, and explicitly record that Inter-Hub submission is deferred until IHUB-WP-0022-T03/T04/T07 complete.
  2. Full Inter-Hub closure: provision OPS_HUB_KEY, deploy OPS_HUB_WIDGET_MAPPING, seed/verify the ops-hub widgets, and submit one accepted Inter-Hub event per activity-core event type.

Until one of those paths is satisfied, Inter-Hub should keep the activity-core closure gate open.

Next Evidence To Capture

  • Progress id for the first live ops_inventory_probe event.
  • Non-secret summary counts from that progress detail.
  • Confirmation that Inter-Hub sink remains skipped cleanly while config is absent or deferred.
  • After ops-hub activation, event ids for one accepted Inter-Hub submission per event type.