docs(delmia): document at-least-once failover semantics + DelmiaRecipeDownload idempotency requirement
Manual verification (task step 3) skipped: this worktree cannot reach a live environment to fetch the deployed DelmiaRecipeDownload script via `scadabridge api-method get`. Documents only the mandated contract per PLAN-06 Task 23; verifying the deployed script against it is deferred to whoever has live environment access. Claude-Session: https://claude.ai/code/session_01MtdgwpEeCUn6cUA5f1LMPj
This commit is contained in:
@@ -47,6 +47,13 @@ Each API method definition includes:
|
||||
- **Implementation Script**: C# script that executes when the method is called. Stored **inline** in the method definition. Follows standard C# authoring patterns but has no template inheritance — it is a standalone script tied to this method.
|
||||
- **Timeout**: Configurable per method. Defines the maximum time the method is allowed to execute (including any routed calls to sites) before returning a timeout error to the caller.
|
||||
|
||||
> **Authoring note — idempotent methods for at-least-once callers**: some external callers retry
|
||||
> on their own connect-failure/timeout failover loop and cannot tell "the first attempt actually
|
||||
> succeeded" from "the first attempt was lost" — e.g. the `DelmiaRecipeDownload` method backing
|
||||
> `DelmiaNotifier` (see `docs/plans/2026-06-26-delmia-recipe-notifier-design.md`, "Delivery
|
||||
> semantics: at-least-once"). Implementation scripts for such methods must be idempotent on their
|
||||
> natural key so a duplicate delivery returns the same result without double-applying side effects.
|
||||
|
||||
### Management
|
||||
- Managed by users with the **Designer** role via the Central UI.
|
||||
- All method definition changes are audit logged.
|
||||
|
||||
Reference in New Issue
Block a user