Transition
A transition defines the change from one state to the next.
Action transitions
Typically a state transition is triggered after an action is executed. Action transtitions have an on property that specifies the action that triggers the transition.
Optionally they can have a by property to specify which actors can trigger the transitions. Multiple transitions can have the same action but with different actors.
Action transitions are evaluated in order. If multiple transitions apply, only the first one is used.
initial:
transitions:
- on: join
goto: ~
- on: start
by: organizer
goto: start
if: !ref length(actors) >= 2
- on: cancel
by: organizer
goto: (canceled){
"initial": {
"transitions": [
{
"on": "join",
"by": "participant",
"goto": null
},
{
"on": "join",
"by": "organizer",
"goto": "start",
"if": { "<ref>": "length(actors) >= 2" }
},
{
"on": "cancel",
"by": "organizer",
"goto": "(canceled)"
}
]
}
}Timeout transitions
Alternatively, state transitions can happen after a specific time. In this case, the transition has after property instead of on.
If multiple timeout transitions are available, the one with the lowest value for after will be used.
initial:
after: 10 days
goto: (expired){
"initial": {
"after": "10 days",
"goto": "(expired)"
}
}Properties
on
onstring
Key of the action that must be performed for this transition to be selected.
by
bystring or array of string
The key of an actor or multiple actors as an array. Only select this transition if the action is performed by this actor / one of these actors.
after
after time
A time after which the transition should be executed. If you specify a timeout using after do not use the on and by property.
The time should be in the form of 'amount unit' in English, eg '10 minutes', '12 hours`, or `1 week`.
goto
goto string
The key of the state where to transition to.
if
ifboolean or function
A boolean that must be true for the transition to be selected. This is typically a <ref> data instruction.
log
loglog definition
Defines the title and description of the log entry added during a state transition.
LogLast updated
Was this helpful?