mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-10-18 16:03:24 +00:00
* fix(cli): lint against the checkout's schema, not the published validator Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(cli): mirror the permissioned_as exclusion into agent guidance Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * chore: version windmill-yaml-validator with the release, publish by hand Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * chore: generate schemas with the validator's own yaml parser Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(cli): declare ajv, no longer reaching tests via the validator Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix: fail schema generation on a spec YAML syntax error Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
151 lines
4.7 KiB
YAML
151 lines
4.7 KiB
YAML
type: object
|
|
properties:
|
|
schedule:
|
|
type: string
|
|
description: Cron expression with 6 fields (seconds, minutes, hours, day of month,
|
|
month, day of week). Example '0 0 12 * * *' for daily at noon
|
|
timezone:
|
|
type: string
|
|
description: IANA timezone for the schedule (e.g., 'UTC', 'Europe/Paris', 'America/New_York')
|
|
enabled:
|
|
type: boolean
|
|
description: Whether the schedule is currently active and will trigger jobs
|
|
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
|
|
args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
on_failure:
|
|
type: string
|
|
description: Path to a script or flow to run when the scheduled job fails
|
|
on_failure_times:
|
|
type: number
|
|
description: Number of consecutive failures before the on_failure handler is triggered
|
|
(default 1)
|
|
on_failure_exact:
|
|
type: boolean
|
|
description: If true, trigger on_failure handler only on exactly N failures, not
|
|
on every failure after N
|
|
on_failure_extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
on_recovery:
|
|
type: string
|
|
description: Path to a script or flow to run when the schedule recovers after
|
|
failures
|
|
on_recovery_times:
|
|
type: number
|
|
description: Number of consecutive successes before the on_recovery handler is
|
|
triggered (default 1)
|
|
on_recovery_extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
on_success:
|
|
type: string
|
|
description: Path to a script or flow to run after each successful execution
|
|
on_success_extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
ws_error_handler_muted:
|
|
type: boolean
|
|
description: If true, the workspace-level error handler will not be triggered
|
|
for this schedule's failures
|
|
retry:
|
|
type: object
|
|
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:
|
|
$ref: '#/components/schemas/RetryIf'
|
|
description: Retry configuration for failed module executions
|
|
summary:
|
|
type: string
|
|
description: Short summary describing the purpose of this schedule
|
|
description:
|
|
type: string
|
|
description: Detailed description of what this schedule does
|
|
no_flow_overlap:
|
|
type: boolean
|
|
description: If true, skip this schedule's execution if the previous run is still
|
|
in progress (prevents concurrent runs)
|
|
tag:
|
|
type: string
|
|
description: Worker tag to route jobs to specific worker groups
|
|
paused_until:
|
|
type: string
|
|
description: ISO 8601 datetime until which the schedule is paused. Schedule resumes
|
|
automatically after this time
|
|
cron_version:
|
|
type: string
|
|
description: Cron parser version. Use 'v2' for extended syntax with additional
|
|
features
|
|
dynamic_skip:
|
|
type: string
|
|
description: Path to a script that validates scheduled datetimes. Receives scheduled_for
|
|
datetime and returns boolean to skip (true) or run (false)
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
draft_only:
|
|
type: boolean
|
|
description: 'True when this row is a per-user draft with no deployed
|
|
|
|
schedule at the same path. Frontend renders a "Draft" badge.
|
|
|
|
'
|
|
is_draft:
|
|
type: boolean
|
|
description: 'True when the authed user has a per-user draft at this path
|
|
|
|
(over a deployed row or a synthesized draft-only row).
|
|
|
|
Frontend appends a `*` to the displayed name.
|
|
|
|
'
|
|
inherited_labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: 'Labels inherited from the parent folder, computed at read time.
|
|
Read-only — edit them on the folder.
|
|
|
|
'
|
|
required:
|
|
- schedule
|
|
- script_path
|
|
- timezone
|
|
- is_flow
|
|
- enabled
|