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

71 lines
2.9 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: finished
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: done
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.
## Completion 2026-07-02
`make admin-sync-smoke` passed against the freshly deployed
RAIL-BS-WP-0008 runtime: `POST /admin/sync?definitions=true&schedules=true`
returned `ok=true` with `definitions.synced=6`, `schedules.upserted=4`,
`schedules.paused=2`, `deleted_orphans=0`, empty `errors[]`, and the worker
pod identity (`actcore-worker-5b78f85b76-ng54t`, restart_count 0) was
unchanged before and after — proving no-restart admin sync. Non-secret
evidence: State Hub event `4caa288d-830b-4348-9cff-b2d5855cd42d`. The
optional enabled-flip fixture was skipped (no operator fixture supplied);
schedule pause/upsert semantics were exercised by the sync counters. Closes
ACTIVITY-WP-0012-T05.