Overwrite Flow
Changed onReplace a flow with a merged graph, keeping the replaced version in history.
This is the deliberate half of the conflict dialog, and it is still guarded. The caller sends the token it reviewed, not the stale one it was refused on and not nothing at all: writing unconditionally here would silently discard a fourth writer who landed while the dialog was open, reopening the lost update the whole feature exists to close. So the meaning is "replace the version I just looked at", and a flow that moved again is refused with a fresh 409.
The archived entry is attributed to whoever last wrote the flow rather than to the caller, because it is their work being replaced -- attributing it here would put the caller's name on someone else's version and defeat the point of keeping it.
The write right is claimed before anything is archived. Archiving first and letting the refusal roll it back does not work: version entries are written in a begin_nested() savepoint that survives the outer rollback, so a refused overwrite left an orphan version in someone's history. Claiming first means a stale caller is turned away before a single row is written.
Request
- The document declares no server URL.
- Auth
- OAuth 2PasswordToken URL: api/v1/login
- or API key in query parameter x-api-key
- or API key in header x-api-key
Path parameters
Headers
Request body
Response
Successful Response
Changes
- info
endpoint added
- info