generated from coulomb/repo-seed
113 lines
4.9 KiB
Markdown
113 lines
4.9 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: done
|
|
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.
|
|
|
|
|
|
## Progress 2026-07-02 — activity-core deployed sink smoke passed
|
|
|
|
T04 closed. Ran activity-core's real `persist_ops_inventory_evidence` /
|
|
`_post_core_hub_interaction_event` code (activity-core checkout) against the
|
|
deployed Core Hub staging API through the `core-hub-staging-coulombcore`
|
|
ops-bridge tunnel, with an approved runtime token (dedicated API consumer
|
|
`6cfcbc56`, key prefix `ch_ztkSv9PK`, stored in a workstation 0600 file, never
|
|
logged) and widget mapping to widget `6768aaa2-11dc-4e11-88ef-d6fc57047514`.
|
|
|
|
Result: sink returned `status=posted`, event
|
|
`ae43db56-902d-411a-a495-25acd464fdd8` (`ops-endpoint-verified`); server-side
|
|
`GET /api/v2/interaction-events?widgetId=...` confirms the event persisted
|
|
(widget event count 3, containment true). This proves the activity-core client
|
|
body shape is accepted by deployed Core Hub — the last consumer-smoke gap from
|
|
T03/T04 is closed on real deployed runtime evidence.
|