2026-07-02 00:02:36 +02:00
|
|
|
|
---
|
|
|
|
|
|
id: RAIL-BS-WP-0009
|
|
|
|
|
|
type: workplan
|
|
|
|
|
|
title: "activity-core no-restart admin-sync smoke (ACTIVITY-WP-0012-T05)"
|
|
|
|
|
|
domain: financials
|
|
|
|
|
|
repo: railiance-cluster
|
2026-07-02 00:09:13 +02:00
|
|
|
|
status: active
|
2026-07-02 00:02:36 +02:00
|
|
|
|
owner: railiance-cluster
|
|
|
|
|
|
topic_slug: railiance
|
|
|
|
|
|
created: "2026-07-01"
|
2026-07-02 10:44:06 +02:00
|
|
|
|
updated: "2026-07-02"
|
2026-07-02 00:09:13 +02:00
|
|
|
|
state_hub_workstream_id: "2c9e8e96-ec6a-433c-9e6d-0efbcd18679e"
|
2026-07-02 00:02:36 +02:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# 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 T01–T04 (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
|
2026-07-02 00:09:13 +02:00
|
|
|
|
state_hub_task_id: "60f3387d-3d14-42a9-b8a3-725a86468510"
|
2026-07-02 00:02:36 +02:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
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 10:44:06 +02:00
|
|
|
|
|
|
|
|
|
|
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.
|