Files
Kill_LIFE/workflows/workflow.schema.json
2026-03-07 19:09:36 +01:00

175 lines
3.5 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://electron-rare.github.io/Kill_LIFE/workflows/workflow.schema.json",
"title": "Kill_LIFE Workflow",
"type": "object",
"required": [
"id",
"title",
"category",
"version",
"status",
"execution_modes",
"viewport",
"nodes",
"edges"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{1,63}$"
},
"title": {
"type": "string",
"minLength": 3
},
"category": {
"type": "string",
"minLength": 2
},
"version": {
"type": "integer",
"minimum": 1
},
"status": {
"type": "string",
"enum": [
"draft",
"ready",
"archived"
]
},
"description": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"execution_modes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"local",
"github"
]
},
"minItems": 1
},
"viewport": {
"type": "object",
"required": [
"width",
"height"
],
"properties": {
"width": {
"type": "number",
"minimum": 640
},
"height": {
"type": "number",
"minimum": 480
}
},
"additionalProperties": false
},
"nodes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type",
"label",
"x",
"y"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{1,63}$"
},
"type": {
"type": "string"
},
"label": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string"
},
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"runner": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"none",
"local-action",
"github-dispatch"
]
},
"action": {
"type": "string"
},
"workflow_file": {
"type": "string"
},
"ref": {
"type": "string"
},
"inputs": {
"type": "object"
}
},
"additionalProperties": true
},
"config": {
"type": "object"
}
},
"additionalProperties": true
}
},
"edges": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"source",
"target"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{1,63}$"
},
"source": {
"type": "string"
},
"target": {
"type": "string"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}