UNPKG

windmill-yaml-validator

Version:

YAML validator for Windmill flow, schedule, and trigger files

152 lines (151 loc) 5.96 kB
{ "type": "object", "properties": { "script_path": { "type": "string", "description": "Path to the script or flow to execute when triggered" }, "is_flow": { "type": "boolean", "description": "True if script_path points to a flow, false if it points to a script" }, "labels": { "type": "array", "items": { "type": "string" }, "default": [] }, "draft_only": { "description": "True when this row is a per-user draft with no deployed\ntrigger at the same path. Set by list endpoints when\n`include_draft_only=true` synthesizes the row from the\ndraft. Frontend renders a \"Draft\" badge.\n", "type": "boolean" }, "is_draft": { "description": "True when the authed user has a per-user draft at this path\n(over a deployed row or a synthesized draft-only row).\nFrontend appends a `*` to the displayed name.\n", "type": "boolean" }, "gcp_resource_path": { "type": "string", "description": "Path to the GCP resource containing service account credentials for authentication." }, "topic_id": { "type": "string", "description": "Google Cloud Pub/Sub topic ID to subscribe to." }, "subscription_id": { "type": "string", "description": "Google Cloud Pub/Sub subscription ID." }, "delivery_type": { "type": "string", "enum": [ "push", "pull" ], "description": "Delivery mode for messages. 'push' for HTTP push delivery where messages are sent to a webhook endpoint, 'pull' for polling where the trigger actively fetches messages." }, "delivery_config": { "type": "object", "description": "Configuration for push delivery mode.", "properties": { "audience": { "type": "string", "description": "The audience claim for OIDC tokens used in push authentication." }, "authenticate": { "type": "boolean", "description": "If true, push messages will include OIDC authentication tokens." } }, "required": [ "authenticate", "base_endpoint" ], "nullable": true }, "subscription_mode": { "type": "string", "enum": [ "existing", "create_update" ], "description": "The mode of subscription. 'existing' means using an existing GCP subscription, while 'create_update' involves creating or updating a new subscription." }, "error_handler_path": { "type": "string", "description": "Path to a script or flow to run when the triggered job fails." }, "error_handler_args": { "type": "object", "description": "Arguments to pass to the error handler.", "additionalProperties": true }, "retry": { "type": "object", "description": "Retry configuration for failed executions.", "properties": { "constant": { "type": "object", "description": "Retry with constant delay between attempts", "properties": { "attempts": { "type": "integer", "description": "Number of retry attempts" }, "seconds": { "type": "integer", "description": "Seconds to wait between retries" } } }, "exponential": { "type": "object", "description": "Retry with exponential backoff (delay doubles each time)", "properties": { "attempts": { "type": "integer", "description": "Number of retry attempts" }, "multiplier": { "type": "integer", "description": "Multiplier for exponential backoff" }, "seconds": { "type": "integer", "minimum": 1, "description": "Initial delay in seconds" }, "random_factor": { "type": "integer", "minimum": 0, "maximum": 100, "description": "Random jitter percentage (0-100) to avoid thundering herd" } } }, "retry_if": { "type": "object", "description": "Conditional retry based on error or result", "properties": { "expr": { "type": "string", "description": "JavaScript expression that returns true to retry. Has access to 'result' and 'error' variables" } }, "required": [ "expr" ] } } } }, "required": [ "script_path", "is_flow", "gcp_resource_path", "topic_id", "subscription_id", "delivery_type", "subscription_mode" ] }