package notify
// Workflows returns the definitions quarry provisions at startup (RFC
// 0011 §7). Each carries exactly one in_app step in this phase; push
// and digest steps join in Phase 3, once notify's webpush provider
// (notify#302) and Digester routing are in place. These are the same
// six workflows docs/running.md used to ask an operator to `curl` by
// hand — this is now the one source, upserted by EnsureWorkflow rather
// than typed. quarry-landing is provisioned ahead of need: nothing
// triggers it yet.
func Workflows() []WorkflowDef {
inApp := func(subject, body string) WorkflowStep {
return WorkflowStep{
StepID: "S1",
Type: "in_app",
ControlValues: map[string]string{
"subject": subject,
"body": body,
},
}
}
return []WorkflowDef{
{
Name: "quarry-mention",
TriggerIdentifier: "quarry-mention",
Steps: []WorkflowStep{inApp(
"{{payload.from}} mentioned you in {{payload.repo}}",
"{{payload.repo}} — {{payload.text}}",
)},
},
{
Name: "quarry-forum-reply",
TriggerIdentifier: "quarry-forum-reply",
Steps: []WorkflowStep{inApp(
"{{payload.from}} replied in {{payload.title}}",
"{{payload.repo}} — {{payload.text}}",
)},
},
{
Name: "quarry-activity",
TriggerIdentifier: "quarry-activity",
Steps: []WorkflowStep{inApp(
"{{payload.summary}}",
"{{payload.repo}} — by {{payload.actor}}",
)},
},
{
Name: "quarry-landing",
TriggerIdentifier: "quarry-landing",
Steps: []WorkflowStep{inApp(
"{{payload.summary}}",
"{{payload.repo}} — {{payload.link}}",
)},
},
{
Name: "quarry-error",
TriggerIdentifier: "quarry-error",
Steps: []WorkflowStep{inApp(
"quarry error on {{payload.surface}}",
"{{payload.path}} — {{payload.summary}}",
)},
},
{
Name: "quarry-slow",
TriggerIdentifier: "quarry-slow",
Steps: []WorkflowStep{inApp(
"slow render: {{payload.path}}",
"{{payload.summary}}",
)},
},
}
}