Files
social-app/docs/protocols/models/automation-jobs.md
T

1.4 KiB

Automation Jobs Model Protocol

Scope

This document defines the automation_jobs data contract used by backend API payloads, scheduler computation, and Flutter settings pages.

Canonical Fields

  • id: UUID
  • owner_id: UUID
  • title: string
  • bootstrap_key: string | null (引导配置键,用于标识预设任务模板)
  • config: object
    • input_template: string
    • enabled_tools: string[]
    • context: object
      • source: latest_chat
      • window_mode: day | number
      • window_count: int
    • schedule: object
      • type: daily | weekly
      • run_at: object
        • hour: int (0-23)
        • minute: int (0-59)
      • weekdays: int[] (only for weekly; Monday=1 ... Sunday=7)
  • timezone: IANA timezone string
  • next_run_at: timestamptz (UTC), scheduler due cursor
  • last_run_at: timestamptz | null
  • status: active | disabled
  • created_at: timestamptz
  • updated_at: timestamptz

Scheduling Semantics

  • Scheduler scans only by next_run_at <= now_utc.
  • Scheduler calculates subsequent next_run_at from config.schedule + timezone.
  • run_at and schedule_type top-level columns are deprecated and removed.

Compatibility Strategy

  • Strategy: migration-required change.
  • Existing rows must be migrated by backfilling config.schedule from legacy run_at/schedule_type before dropping those columns.
  • Clients must send schedule data through config.schedule only.