This repository has been archived on 2026-07-08. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
core-hub/workplans/CORE-WP-0004-interhub-compatibility-and-consumer-smoke.md

96 lines
4.0 KiB
Markdown

---
id: CORE-WP-0004
type: workplan
title: "Implement Inter-Hub compatibility and consumer smokes"
domain: infotech
repo: core-hub
status: active
owner: codex
topic_slug: custodian
created: "2026-06-27"
updated: "2026-06-27"
state_hub_workstream_id: "ef13b0e9-f626-4d2c-9e00-ccb4906c3a3d"
---
# Implement Inter-Hub compatibility and consumer smokes
Preserve the Inter-Hub `/api/v2` behavior required by current consumers while Core Hub-native contracts mature.
## Public Registry Compatibility
```task
id: CORE-WP-0004-T01
status: done
priority: high
state_hub_task_id: "4e24ab14-d5cf-4466-8287-21eaf075cb44"
```
Result 2026-06-27: Aligned catalog/docs/OpenAPI behavior with the active ops-hub gate. Static catalogs and docs are public; hub registry/bootstrap data is protected. `/api/v2/openapi.json` now includes the unprefixed path aliases expected by ops-hub gate checks. Local gate probe passed against Core Hub.
## Protected Bootstrap Compatibility
```task
id: CORE-WP-0004-T02
status: done
priority: high
state_hub_task_id: "87073ee7-0213-4eed-881a-b18ab764ae65"
```
Result 2026-06-27: Replaced placeholders with persistence-backed protected routes for hubs, manifests, API consumers, API keys, widgets, interaction events, and hub registry. Runtime API keys are generated display-once and stored hashed. The real `ops-hub/scripts/ops-hub-bootstrap-api.py` passed against local Core Hub, creating ops-hub, an active manifest, API consumer, runtime key, 14 widgets, and one readiness event.
## ops-hub Smoke
```task
id: CORE-WP-0004-T03
status: done
priority: high
state_hub_task_id: "2d18f575-135b-4ba8-9537-6920d0c61e1b"
```
2026-06-27: Local smoke passed with a throwaway operator token and SQLite smoke DB. Remaining closure requires deployed Core Hub runtime plus approved credential routing. No secrets in logs, workplans, or chat.
2026-06-27 continuation: `CORE-WP-0008-T02` owns the deployed API smoke harness that should close this task once it passes against a deployed Core Hub runtime.
## activity-core Smoke
```task
id: CORE-WP-0004-T04
status: wait
priority: medium
state_hub_task_id: "c3d1c153-0059-470c-bb2d-0b14f2d77b94"
```
Waiting on a deployed Core Hub runtime or an explicit State Hub fallback decision for the transition path.
2026-06-27 continuation: `CORE-WP-0008-T03` owns the activity-core Core Hub sink or explicit fallback decision.
2026-06-27 continuation update: `CORE-WP-0008-T03` and `ACTIVITY-WP-0017`
implemented and locally proved the direct activity-core -> Core Hub
interaction-event sink. This removes the consumer implementation blocker;
this task still waits for a deployed Core Hub runtime plus approved runtime
token and widget mapping before it can be marked done.
## Progress 2026-07-02 — deployed staging smoke passed
Core Hub staging is live on the CoulombCore cluster (operator-approved
decision set: CoulombCore + generated staging Secrets + Gitea registry):
namespace `core-hub-staging`, image `gitea.coulomb.social/coulomb/core-hub:3ed8531`,
dedicated `core_hub_staging` database on apps-pg (namespace labeled
`railiance.io/postgres-client=apps-pg` to satisfy the default-deny
NetworkPolicy), Alembic migrate job `Completed`, API rolled out healthy.
T03 closed: `core_hub_deployed_smoke` ran in-cluster (token via
`secretKeyRef`, never leaving the namespace) — run `20260702143544-6c8f18`,
`ok=true`, 10/10 checks (health, ready, OpenAPI, four public catalogs,
protected-401s, operator auth) plus the full ops-hub bootstrap sequence:
hub `6798723a`, activated manifest, API consumer key prefix `ch_N0ZhsXIbD`,
widget, interaction event `21d09f99` (`ops-endpoint-verified`), hub registry
containing both. Two fixes landed en route: `psycopg2-binary` added to main
deps (migrations image lacked the sync driver — commit `3ed8531`) and the
NetworkPolicy label requirement documented above.
T04 remaining (unchanged owner): run the ACTIVITY-WP-0017 activity-core sink
against this deployed staging API with an approved runtime token and widget
mapping. The deployed-runtime precondition is now met.