mirror of
https://github.com/domfelipe/vibeflow-n8n.git
synced 2026-08-07 10:16:40 +00:00
Rebuild Vibeflow as an n8n safety gate
This commit is contained in:
parent
79fc67166a
commit
febec32131
101 changed files with 2405 additions and 3557 deletions
|
|
@ -1,171 +0,0 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://example.com/vibeflow-n8n/schemas/plan.schema.json",
|
||||
"title": "Vibeflow n8n Plan",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"plan_version",
|
||||
"objective",
|
||||
"trigger",
|
||||
"systems",
|
||||
"steps",
|
||||
"credentials",
|
||||
"assumptions",
|
||||
"validation"
|
||||
],
|
||||
"properties": {
|
||||
"plan_version": {
|
||||
"type": "string"
|
||||
},
|
||||
"workflow_name": {
|
||||
"type": "string"
|
||||
},
|
||||
"objective": {
|
||||
"type": "string"
|
||||
},
|
||||
"trigger": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"type",
|
||||
"summary"
|
||||
],
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string"
|
||||
},
|
||||
"summary": {
|
||||
"type": "string"
|
||||
},
|
||||
"schedule": {
|
||||
"type": "string"
|
||||
},
|
||||
"input_shape": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"systems": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"minItems": 1
|
||||
},
|
||||
"steps": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"id",
|
||||
"name",
|
||||
"action"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"action": {
|
||||
"type": "string"
|
||||
},
|
||||
"depends_on": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"notes": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
},
|
||||
"branching": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"condition",
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"condition": {
|
||||
"type": "string"
|
||||
},
|
||||
"path": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
},
|
||||
"credentials": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"system",
|
||||
"status"
|
||||
],
|
||||
"properties": {
|
||||
"system": {
|
||||
"type": "string"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"required",
|
||||
"optional",
|
||||
"configured",
|
||||
"placeholder"
|
||||
]
|
||||
},
|
||||
"notes": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
},
|
||||
"assumptions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"risks": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"validation": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"checks"
|
||||
],
|
||||
"properties": {
|
||||
"checks": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"manual_steps": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
50
schemas/vibeflow-config.schema.json
Normal file
50
schemas/vibeflow-config.schema.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://github.com/domfelipe/vibeflow-n8n/schemas/vibeflow-config.schema.json",
|
||||
"title": "Vibeflow configuration",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"$schema": { "type": "string" },
|
||||
"rules": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"VF001": { "$ref": "#/$defs/severity" },
|
||||
"VF002": { "$ref": "#/$defs/severity" },
|
||||
"VF003": { "$ref": "#/$defs/severity" },
|
||||
"VF004": { "$ref": "#/$defs/severity" },
|
||||
"VF005": { "$ref": "#/$defs/severity" },
|
||||
"VF006": { "$ref": "#/$defs/severity" },
|
||||
"VF007": { "$ref": "#/$defs/severity" },
|
||||
"VF008": { "$ref": "#/$defs/severity" },
|
||||
"VF009": { "$ref": "#/$defs/severity" }
|
||||
}
|
||||
},
|
||||
"terms": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"killSwitch": { "$ref": "#/$defs/terms" },
|
||||
"humanHandoff": { "$ref": "#/$defs/terms" },
|
||||
"idempotency": { "$ref": "#/$defs/terms" }
|
||||
}
|
||||
},
|
||||
"bannedNodeTypes": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "minLength": 1, "maxLength": 200 },
|
||||
"maxItems": 1000,
|
||||
"uniqueItems": true
|
||||
}
|
||||
},
|
||||
"$defs": {
|
||||
"severity": { "enum": ["error", "warning", "off"] },
|
||||
"terms": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "minLength": 1, "maxLength": 100 },
|
||||
"minItems": 1,
|
||||
"maxItems": 100,
|
||||
"uniqueItems": true
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue