id | string | Unique identifier (UUIDv7). |
project_id | string | The project this job belongs to. |
group_id | string | Optional ID of the JobGroup for logical organization. |
name | string | Human-readable name of the job. |
slug | string | URL-friendly identifier, unique within a project. |
description | string | Optional detailed description. |
cron | string | 5-field cron expression for automatic scheduling. |
cron_overlap_policy | string | Behavior when a cron tick fires with active runs: allow (default), skip, or cancel_running. See Scheduling. |
payload_schema | json | JSON Schema to validate incoming trigger payloads. |
tags | map[string]string | Key-value pairs for filtering and metadata. |
endpoint_url | string | The primary HTTP URL where the job payload is sent. |
fallback_endpoint_url | string | Optional URL used if the primary endpoint fails. |
max_attempts | int | Maximum number of retry attempts (default: 3). |
timeout_secs | int | Maximum execution time in seconds (default: 300). |
max_concurrency | int | Per-job limit on simultaneous executing runs. |
execution_window_cron | string | Cron-like expression defining when the job is allowed to run. |
timezone | string | Timezone for cron scheduling (e.g., “UTC”, “America/New_York”). |
rate_limit_max | int | Maximum number of runs allowed in the rate limit window. |
rate_limit_window_secs | int | The window size for rate limiting in seconds. |
max_concurrency_per_key | int | Per-key concurrency limit. When set with a run’s concurrency_key, limits concurrent active runs sharing the same key. |
rate_limit_keys | []RateLimitKey | Named rate limit configurations. Each entry has name, max, and window_secs. |
default_run_metadata | map[string]string | Default metadata key-value pairs applied to every run created for this job. |
dedup_window_secs | int | Window for deduplicating identical trigger requests. |
enabled | bool | Whether the job is active and can be triggered. |
webhook_url | string | URL to notify when a run reaches a terminal state. |
webhook_secret | string | Secret used to sign webhook payloads (HMAC-SHA256). |
run_ttl_secs | int | Time-to-live for runs before they are considered expired. |
retry_strategy | string | Strategy: exponential, linear, fixed, or custom. |
retry_delays_secs | []int | Array of delays for the custom retry strategy. |
poison_pill_threshold | *int | Consecutive identical errors before auto-quarantine to DLQ. null or 0 disables. See Resilience. |
environment_id | string | The environment (e.g., Staging, Production) this job is bound to. |
version | int | Auto-incrementing version number (starts at 1). |
version_id | string | Unique nanoid for this version (ver_k8f2m9x1p3). Changes on every update. |
version_policy | string | How queued runs interact with updates: pin (default), latest, or minor. See Versioning. |
backwards_compatible | bool | Whether the current version is backwards compatible with the previous version. |
created_by | string | Actor ID who created the job (user ID or apikey:<id>). |
updated_by | string | Actor ID who last updated the job. |
on_complete_trigger_workflow | string | Optional workflow slug to auto-trigger when a run completes successfully. |
on_complete_payload_mapping | json | Optional JSON mapping to extract fields from the run result as the triggered workflow’s payload. Uses dot-notation paths (e.g., {"user_id": "result.user.id"}). |
created_at | time.Time | Timestamp when the job was created. |
updated_at | time.Time | Timestamp of the last update. |