title: PLUGIN_ADMIN.SCHEDULER form: validation: loose fields: scheduler_tabs: type: tabs active: 1 fields: status_tab: type: tab title: PLUGIN_ADMIN.SCHEDULER_STATUS fields: status_title: type: section title: PLUGIN_ADMIN.SCHEDULER_STATUS underline: true status: type: cronstatus validate: type: commalist webhook_status_override: type: display label: content: | markdown: false status_enhanced: type: display label: content: | modern_health: type: display label: Health Status content: |
Checking health...
markdown: false trigger_methods: type: display label: Active Triggers content: |
Checking triggers...
markdown: false jobs_tab: type: tab title: PLUGIN_ADMIN.SCHEDULER_JOBS fields: jobs_title: type: section title: PLUGIN_ADMIN.SCHEDULER_JOBS underline: true custom_jobs: type: list style: vertical label: classes: cron-job-list compact key: id fields: .id: type: key label: ID placeholder: 'process-name' validate: required: true pattern: '[a-zа-я0-9_\-]+' max: 20 message: 'ID must be lowercase with dashes/underscores only and less than 20 characters' .command: type: text label: PLUGIN_ADMIN.COMMAND placeholder: 'ls' validate: required: true .args: type: text label: PLUGIN_ADMIN.EXTRA_ARGUMENTS placeholder: '-lah' .at: type: text wrapper_classes: cron-selector label: PLUGIN_ADMIN.SCHEDULER_RUNAT help: PLUGIN_ADMIN.SCHEDULER_RUNAT_HELP placeholder: '* * * * *' validate: required: true .output: type: text label: PLUGIN_ADMIN.SCHEDULER_OUTPUT help: PLUGIN_ADMIN.SCHEDULER_OUTPUT_HELP placeholder: 'logs/ls-cron.out' .output_mode: type: select label: PLUGIN_ADMIN.SCHEDULER_OUTPUT_TYPE help: PLUGIN_ADMIN.SCHEDULER_OUTPUT_TYPE_HELP default: append options: append: Append overwrite: Overwrite .email: type: text label: PLUGIN_ADMIN.SCHEDULER_EMAIL help: PLUGIN_ADMIN.SCHEDULER_EMAIL_HELP placeholder: 'notifications@yoursite.com' modern_tab: type: tab title: Advanced Features fields: workers_section: type: section title: Worker Configuration underline: true fields: modern.workers: type: number label: Concurrent Workers help: Number of jobs that can run simultaneously (1 = sequential) default: 4 size: x-small append: workers validate: type: int min: 1 max: 10 retry_section: type: section title: Retry Configuration underline: true fields: modern.retry.enabled: type: toggle label: Enable Job Retry help: Automatically retry failed jobs highlight: 1 default: 1 options: 1: PLUGIN_ADMIN.ENABLED 0: PLUGIN_ADMIN.DISABLED validate: type: bool modern.retry.max_attempts: type: number label: Maximum Retry Attempts help: Maximum number of times to retry a failed job default: 3 size: x-small append: retries validate: type: int min: 1 max: 10 modern.retry.backoff: type: select label: Retry Backoff Strategy help: How to calculate delay between retries default: exponential options: linear: Linear (fixed delay) exponential: Exponential (increasing delay) queue_section: type: section title: Queue Configuration underline: true fields: modern.queue.path: type: text label: Queue Storage Path help: Where to store queued jobs default: 'user-data://scheduler/queue' placeholder: 'user-data://scheduler/queue' modern.queue.max_size: type: number label: Maximum Queue Size help: Maximum number of jobs that can be queued default: 1000 size: x-small append: jobs validate: type: int min: 100 max: 10000 history_section: type: section title: Job History underline: true fields: modern.history.enabled: type: toggle label: Enable Job History help: Track execution history for all jobs highlight: 1 default: 1 options: 1: PLUGIN_ADMIN.ENABLED 0: PLUGIN_ADMIN.DISABLED validate: type: bool modern.history.retention_days: type: number label: History Retention (days) help: How long to keep job history default: 30 size: x-small append: days validate: type: int min: 1 max: 365 webhook_section: type: section title: Webhook Configuration underline: true fields: webhook_plugin_status: type: webhook-status label: modern.webhook.enabled: type: toggle label: Enable Webhook Triggers help: Allow triggering scheduler via HTTP webhook highlight: 0 default: 0 options: 1: PLUGIN_ADMIN.ENABLED 0: PLUGIN_ADMIN.DISABLED validate: type: bool modern.webhook.token: type: text label: Webhook Security Token help: Secret token for authenticating webhook requests. Keep this secret! placeholder: 'Click Generate to create a secure token' autocomplete: 'off' webhook_token_generate: type: display label: content: |
markdown: false modern.webhook.path: type: text label: Webhook Path help: URL path for webhook endpoint default: '/scheduler/webhook' placeholder: '/scheduler/webhook' health_section: type: section title: Health Check Configuration underline: true fields: modern.health.enabled: type: toggle label: Enable Health Check help: Provide health status endpoint for monitoring highlight: 1 default: 1 options: 1: PLUGIN_ADMIN.ENABLED 0: PLUGIN_ADMIN.DISABLED validate: type: bool modern.health.path: type: text label: Health Check Path help: URL path for health check endpoint default: '/scheduler/health' placeholder: '/scheduler/health' webhook_usage: type: section title: Usage Examples underline: true fields: webhook_examples: type: display label: content: |

How to use webhooks:

Copy
Copy
Copy

GitHub Actions example:

- name: Trigger Scheduler
                                                  run: |
                                                    curl -X POST ${{ secrets.SITE_URL }}/scheduler/webhook \
                                                      -H "Authorization: Bearer ${{ secrets.WEBHOOK_TOKEN }}"
markdown: false