feat(m9): CLI cached-call retry/discard command group

Adds `cached-call retry` and `cached-call discard` subcommands that relay
to the existing Deployer-gated RetryParkedMessageCommand /
DiscardParkedMessageCommand via the central SiteCallAuditActor → site relay.
ManagementCommandRegistry already covered both types via reflection auto-discovery.
CommandTreeTests updated to include cached-call (group count 16 → 17).
This commit is contained in:
Joseph Doherty
2026-06-18 10:13:56 -04:00
parent 0f04afbdf1
commit efcdd18794
6 changed files with 293 additions and 3 deletions
+34
View File
@@ -1743,6 +1743,40 @@ Site identifiers and connection names are environment-specific; the importer fir
---
### `cached-call` — Retry or discard parked cached-call operations
Manage parked `ExternalSystem.CachedCall` and `Database.CachedWrite` operations at a
site. Both sub-commands relay via the central `SiteCallAuditActor` → site relay and
require the **Deployer** role.
#### `cached-call retry`
Retry a parked cached-call operation at the specified site.
```sh
scadabridge --url <url> cached-call retry --site-id <string> --tracked-operation-id <string>
```
| Option | Required | Description |
|--------|----------|-------------|
| `--site-id` | yes | Site identifier where the operation is parked |
| `--tracked-operation-id` | yes | Tracked operation ID (MessageId) of the parked cached call |
#### `cached-call discard`
Discard a parked cached-call operation at the specified site.
```sh
scadabridge --url <url> cached-call discard --site-id <string> --tracked-operation-id <string>
```
| Option | Required | Description |
|--------|----------|-------------|
| `--site-id` | yes | Site identifier where the operation is parked |
| `--tracked-operation-id` | yes | Tracked operation ID (MessageId) of the parked cached call |
---
## Architecture Notes
The CLI connects to the Central cluster using Akka.NET's `ClusterClient`. It does not join the cluster — it contacts the `ClusterClientReceptionist` on one of the configured Central nodes and sends commands to the `ManagementActor` at path `/user/management`.