railiance-cluster/workplans/RAIL-BS-WP-0009-activity-core-admin-sync-smoke.md

57 lines
2.2 KiB
Markdown
Raw Normal View History

---
id: RAIL-BS-WP-0009
type: workplan
title: "activity-core no-restart admin-sync smoke (ACTIVITY-WP-0012-T05)"
domain: financials
repo: railiance-cluster
status: active
owner: railiance-cluster
topic_slug: railiance
created: "2026-07-01"
updated: "2026-07-02"
state_hub_workstream_id: "2c9e8e96-ec6a-433c-9e6d-0efbcd18679e"
---
# activity-core no-restart admin-sync smoke (ACTIVITY-WP-0012-T05)
## Context
Inbox message `aa8b7986` (activity-core, 2026-06-18): activity-core commit
`3e93567` implements ACTIVITY-WP-0012 T01T04 (shared sync_service,
`POST /admin/sync`, explicit schedule upsert/pause/orphan-delete counts,
worker startup reuse, runbook docs; 192 tests passed). T05 is the
cluster-owned smoke: prove admin sync works **without** worker
SIGTERM/pod restart.
The deploy precondition is covered by RAIL-BS-WP-0008-T01 (main at
`bf877b7``3e93567`), so run this after that reconcile.
## Run the no-restart admin-sync smoke
```task
id: RAIL-BS-WP-0009-T01
status: wait
priority: medium
state_hub_task_id: "60f3387d-3d14-42a9-b8a3-725a86468510"
```
After RAIL-BS-WP-0008-T01 is deployed, without restarting the worker:
1. Change or use a customer ActivityDefinition enabled-flip/rename fixture.
2. Call `POST /admin/sync?definitions=true&schedules=true` from the operator
path.
3. Confirm the new Temporal schedule is active and the retired/disabled
schedule is paused or deleted per sync semantics.
4. Confirm event-triggered definitions still fire normally.
5. Record non-secret evidence in the State Hub. Response JSON should include
`definitions.synced`, `schedules.upserted`, `schedules.paused`,
`schedules.deleted_orphans`, and `errors[]`.
2026-07-02: Added `make admin-sync-smoke` / `bin/railiance admin-sync-smoke`
as the repeatable operator path. It captures the worker pod UID/restart count,
optionally runs an operator-supplied enabled-flip/rename fixture via
`ACTIVITY_CORE_ADMIN_SYNC_FIXTURE_COMMAND`, calls
`POST /admin/sync?definitions=true&schedules=true`, verifies the expected
response counters and empty `errors[]`, rechecks that the same worker pod did
not restart, and posts non-secret State Hub evidence. T01 stays `wait` until
RAIL-BS-WP-0008-T01 is deployed and the smoke is run on railiance01.