notify flows: refuse unknown placeholders and require the revision read on every save
This commit is contained in:
parent
7795da44f8
commit
ada364a482
7 changed files with 203 additions and 57 deletions
|
|
@ -83,8 +83,9 @@ switched off, and the custom flows. Only the controller writes it, through
|
|||
compare-and-set. The controller answers 400 unless every flow passes the tree
|
||||
check above and reads only what exists: a source event from `issues`,
|
||||
`issue_assign`, `pull_request` or `pull_request_assign`, and condition and
|
||||
recipient fields from the event's field list. A `PUT` that carries the
|
||||
`revision` it read gets 409 when another write landed since. Swarm UI's
|
||||
recipient fields from the event's field list. The same goes for the `{field}`
|
||||
placeholders in a todo's key and text. A `PUT` must carry the `revision` it read, `0` for no
|
||||
document, and gets 409 when the stored revision is another. Swarm UI's
|
||||
[`/notifications`](ui.md#notification-flows) page shows the document and
|
||||
switches built-ins.
|
||||
|
||||
|
|
|
|||
|
|
@ -226,8 +226,10 @@ restores it. Each **custom** flow shows its name and whether it's on. Every
|
|||
flow draws as an indented tree: the forge events it starts from, the
|
||||
conditions under it, and the todo each branch ends in.
|
||||
|
||||
The page edits nothing else. Add custom flows with `PUT /api/notify/flows`.
|
||||
A switch sends the whole flows document with the revision the page read, so if
|
||||
A switch sends the whole flows document with the revision the page read, `0` if
|
||||
it read no document. The controller refuses it when the stored revision is
|
||||
another, including a document written since the page read none, and the page
|
||||
shows why. Reload to switch against the current document.
|
||||
another change landed since, the controller refuses it and the page shows why.
|
||||
|
||||
### Sending a message to an agent
|
||||
|
|
|
|||
Loading…
Reference in a new issue