Scheduling & Delivery

Cron-driven export scheduling with IANA timezone support, file or webhook delivery, retry with exponential backoff, and retention policies.

ExportJobSpec

FieldTypeDescription
scheduleString7-field cron expression
timezoneStringIANA timezone (e.g. "America/New_York")
sourceExportSourceLive (current state) or Historical (time_range)
entity_filterOptionFilter entities by expression
destinationExportDestinationFile or Webhook
sla_max_latency_secsOption<f64>SLA breach alert threshold

Destinations

  • File: Write to local path. RetentionPolicy enforces max_age_days, max_count, max_size_bytes.
  • Webhook: HTTP POST with configurable auth_header, content_type, and timeout (default 30s).

Retry & Retention

  • RetryPolicy: Exponential backoff via nerve-core::retry. Configurable max attempts and base delay.
  • RetentionPolicy: Enforces max_age_days, max_count, and max_size_bytes. Old files auto-purged.

Example

YAML
exports:
  - id: daily_hvac_report
    schedule: "0 0 6 * * * *"  # 6 AM daily
    timezone: "Australia/Perth"
    source: { type: historical, time_range: "-24h" }
    domain: hvac
    fields: [entity_id, actual_temp, setpoint, comfort_index]
    format: xlsx
    destination:
      type: webhook
      url: "https://reports.internal/upload"
      auth_header: "Bearer ${REPORT_TOKEN}"
    encryption: { type: recipient, public_key: "age1..." }
    sign: true
    retention: { max_age_days: 90, max_count: 100 }

Questions?

Reach out for help with integration, deployment, or custom domain codecs.