Scheduling, events, notifications and retention

Scheduling

Setup enables app.schedule.enabled; source defaults may differ. A fire also requires an enabled schedule, valid target, matching time zone/window/calendar and a healthy SCHEDULER. SKIP ignores missed times; FIRE_ONCE catches up once; CATCH_UP_BOUNDED is bounded by both window and count. Preview outage scenarios before changes to avoid unexpected recovery writes.

Events and notifications

Enabling ingress does not bypass login or EVENT_PUBLISH permission. Use the event plugin for publish/wait/approval configuration. Manage SMTP and secrets in mail-channel pages. app.notify.email.enabled is enabled when absent, but delivery still requires a valid channel and rule. Notification fallback language uses en/zh only.

Retention

Start with app.retention.dry-run=true, review execution/notification/event/app-run/audit periods and expected counts, then decide on actual cleanup in a maintenance window. Deletion requires both enabled=true and dry-run=false. Batch size, interval and maximum batches affect load. Cleanup is not a backup and does not imply deletion of external business files.

Settings in this topic

These are source/implementation defaults; see the complete catalog for setup overrides and provenance.

ID / key Level / type Source defaults Explanation
C026 / app.notification.locale A / enum ${IJOB_NOTIFICATION_LOCALE:en} Default notification language en/zh; separate from UI language.
C028 / app.notification.outbox.scan-interval B / duration ${IJOB_NOTIFICATION_OUTBOX_SCAN_INTERVAL:1s} Notification delivery: Scan interval. Validate against load, recovery or cleanup policy before tuning.
C031 / app.notification.outbox.retry-delay B / duration ${IJOB_NOTIFICATION_OUTBOX_RETRY_DELAY:30s} Notification delivery: Retry delay. Validate against load, recovery or cleanup policy before tuning.
C032 / app.notification.outbox.scan-batch-size B / integer ${IJOB_NOTIFICATION_OUTBOX_SCAN_BATCH_SIZE:100} Notification delivery: Scan batch size. Validate against load, recovery or cleanup policy before tuning.
C033 / app.notification.outbox.max-attempts B / integer ${IJOB_NOTIFICATION_OUTBOX_MAX_ATTEMPTS:5} Notification delivery: Internal processing attempt limit. Validate against load, recovery or cleanup policy before tuning.
C077 / app.schedule.enabled A / boolean ${IJOB_SCHEDULE_ENABLED:false} Global schedule scanner switch; separate from per-schedule enabled state and node roles.
C078 / app.schedule.scan-interval B / duration ${IJOB_SCHEDULE_SCAN_INTERVAL:1s} Schedule scanning: Scan interval. Validate against load, recovery or cleanup policy before tuning.
C079 / app.schedule.initial-delay B / duration ${IJOB_SCHEDULE_INITIAL_DELAY:5s} Schedule scanning: Initial delay. Validate against load, recovery or cleanup policy before tuning.
C080 / app.schedule.scan-batch-size B / integer ${IJOB_SCHEDULE_SCAN_BATCH_SIZE:100} Schedule scanning: Scan batch size. Validate against load, recovery or cleanup policy before tuning.
C081 / app.schedule.max-triggers-per-scan B / integer ${IJOB_SCHEDULE_MAX_TRIGGERS_PER_SCAN:100} Maximum triggers per scan; affects throughput and recovery rate.
C082 / app.schedule.zone-id B / zone-id ${IJOB_SCHEDULE_ZONE_ID:Asia/Shanghai} Default scheduling time zone; distinct from display time zone. Check individual schedules.
C083 / app.schedule.misfire-policy B / enum ${IJOB_SCHEDULE_MISFIRE_POLICY:FIRE_ONCE} Default missed-fire policy SKIP/FIRE_ONCE/CATCH_UP_BOUNDED; may create real catch-up runs.
C084 / app.schedule.misfire-grace B / duration ${IJOB_SCHEDULE_MISFIRE_GRACE:60s} Grace period for missed fires; verify alongside catch-up policy.
C085 / app.schedule.max-catchup-window B / duration ${IJOB_SCHEDULE_MAX_CATCHUP_WINDOW:24h} Maximum catch-up lookback; bounds recovery bursts.
C086 / app.schedule.max-catchup-count B / integer ${IJOB_SCHEDULE_MAX_CATCHUP_COUNT:10} Maximum catch-up count; applies with the lookback window.
C087 / app.event.ingress.enabled A / boolean ${IJOB_EVENT_INGRESS_ENABLED:false} Event ingress API switch; authentication and EVENT_PUBLISH permission still apply.
C091 / app.retention.enabled A / boolean ${IJOB_RETENTION_ENABLED:false} Business-history cleanup switch; review retention windows and backups before enabling.
C092 / app.retention.dry-run A / boolean ${IJOB_RETENTION_DRY_RUN:true} Cleanup dry run; disabling allows actual deletion when cleanup is enabled.
C093 / app.retention.initial-delay B / duration ${IJOB_RETENTION_INITIAL_DELAY:1m} History cleanup: Initial delay. Validate against load, recovery or cleanup policy before tuning.
C094 / app.retention.interval B / duration ${IJOB_RETENTION_INTERVAL:1h} History cleanup: Run interval. Validate against load, recovery or cleanup policy before tuning.
C095 / app.retention.batch-size B / integer ${IJOB_RETENTION_BATCH_SIZE:500} History cleanup: Batch size. Validate against load, recovery or cleanup policy before tuning.
C096 / app.retention.max-batches-per-run B / integer ${IJOB_RETENTION_MAX_BATCHES_PER_RUN:10} History cleanup: Maximum batches per run. Validate against load, recovery or cleanup policy before tuning.
C097 / app.retention.execution A / duration ${IJOB_RETENTION_EXECUTION:90d} Execution history retention duration; applies with cleanup enabled and dry-run settings.
C098 / app.retention.notification A / duration ${IJOB_RETENTION_NOTIFICATION:90d} Notification history retention duration; applies with cleanup enabled and dry-run settings.
C099 / app.retention.event A / duration ${IJOB_RETENTION_EVENT:180d} Event history retention duration; applies with cleanup enabled and dry-run settings.
C100 / app.retention.app-run A / duration ${IJOB_RETENTION_APP_RUN:30d} Node-run history retention duration; applies with cleanup enabled and dry-run settings.
C101 / app.retention.audit A / duration ${IJOB_RETENTION_AUDIT:90d} Audit history retention duration; applies with cleanup enabled and dry-run settings.
C163 / app.notify.email.enabled B / boolean true Email channel implementation switch, enabled when absent; SMTP and credentials belong in mail-channel UI.

Documentation version 1.0.0. Replace sample paths, resources and ports with those of your own environment.