2.1 KiB
id, type, title, domain, repo, status, owner, topic_slug, created, updated, state_hub_workstream_id
| id | type | title | domain | repo | status | owner | topic_slug | created | updated | state_hub_workstream_id |
|---|---|---|---|---|---|---|---|---|---|---|
| ACTIVITY-WP-0017 | workplan | Core Hub ops evidence sink | infotech | activity-core | finished | codex | custodian | 2026-06-27 | 2026-06-27 | 2a073bf4-febf-433e-a721-5daf71760912 |
Core Hub ops evidence sink
Goal
Provide the activity-core side of the Core Hub replacement evidence path for
CORE-WP-0008-T03, without depending on the legacy Haskell Inter-Hub sink and
without placing secret material in activity definitions, logs, State Hub, or
chat.
Task: Add Core Hub interaction-event sink
id: ACTIVITY-WP-0017-T01
status: done
priority: high
state_hub_task_id: "32aab1af-6be5-4b52-afa1-c11f52c65892"
Add a core-hub-interaction-event ops evidence sink that posts sanitized
ops-inventory probe evidence to Core Hub /api/v2/interaction-events, verifies
the created event is visible, and reports only non-secret ids/statuses.
Acceptance:
- runtime token is read through
CORE_HUB_RUNTIME_TOKEN_FILEor a named environment variable, never from workplan content; - sink configuration accepts
CORE_HUB_BASE_URLand a widget id or widget mapping; - emitted metadata reuses the existing compact/sanitized probe evidence path;
- missing Core Hub config skips cleanly with explicit non-secret missing keys;
- tests prove the POST/visibility check and secret non-disclosure.
Verification 2026-06-27: tests/test_ops_evidence_sinks.py passed, and
a disposable local Core Hub runtime accepted an activity-core
core-hub-interaction-event sink emission, then listed the created
ops-endpoint-verified event back through /api/v2/interaction-events.
The verification asserted sanitized metadata did not include response body,
authorization header, URL userinfo, or token query material.
Completed 2026-06-27: implemented the Core Hub interaction-event sink in
activity_core.ops_evidence_sinks with unit coverage for POST/visibility
verification, missing config behavior, and secret non-disclosure. This provides
the direct Core Hub consumer path needed by CORE-WP-0008-T03; deployed use
still requires an approved Core Hub runtime token and widget id/mapping.