This repository was archived by the owner on Mar 25, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathbeemflow.schema.json
More file actions
98 lines (98 loc) · 2.53 KB
/
beemflow.schema.json
File metadata and controls
98 lines (98 loc) · 2.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "BeemFlow Flow Schema",
"type": "object",
"required": ["name", "on", "steps"],
"properties": {
"name": { "type": "string" },
"description": { "type": "string" },
"version": { "type": "string" },
"on": {},
"cron": {
"type": "string",
"pattern": "^[0-9*/,-]+ [0-9*/,-]+ [0-9*/,-]+ [0-9*/,-]+ [0-9*/,-]+ [0-9*/,-]+$"
},
"vars": { "type": "object" },
"steps": {
"type": "array",
"items": { "$ref": "#/definitions/step" }
},
"catch": {
"type": "array",
"items": { "$ref": "#/definitions/step" }
}
},
"definitions": {
"step": {
"type": "object",
"required": ["id"],
"properties": {
"id": {"type": "string"},
"use": {"type": "string"},
"with": {"type": "object"},
"depends_on": {"type": "array", "items": {"type": "string"}},
"parallel": { "type": "boolean" },
"if": {"type": "string"},
"foreach": {"type": "string"},
"as": {"type": "string"},
"do": {"type": "array", "items": {"$ref": "#/definitions/step"}},
"retry": {"$ref": "#/definitions/retry"},
"await_event": {"$ref": "#/definitions/await_event"},
"wait": {"$ref": "#/definitions/wait"},
"steps": {
"type": "array",
"items": { "$ref": "#/definitions/step" }
}
},
"anyOf": [
{
"required": ["use"]
},
{
"properties": {
"parallel": { "const": true },
"steps": { "minItems": 1 }
},
"required": ["parallel", "steps"]
},
{
"properties": {
"foreach": { "type": "string" },
"do": { "minItems": 1 }
},
"required": ["foreach", "do"]
},
{
"required": ["await_event"]
},
{
"required": ["wait"]
}
]
},
"retry": {
"type": "object",
"properties": {
"attempts": {"type": "integer"},
"delay_sec": {"type": "integer"}
},
"required": ["attempts", "delay_sec"]
},
"await_event": {
"type": "object",
"properties": {
"source": {"type": "string"},
"match": {"type": "object"},
"timeout": {"type": "string"}
},
"required": ["source", "match"]
},
"wait": {
"type": "object",
"properties": {
"seconds": {"type": "integer"},
"until": {"type": "string"}
}
}
}
}