Schema for Kronos Provider Settings

From ProviderSettings.schema.yaml (kronos/ProviderSettings.schema)

---
$id: https://skeleton.botmd.io/kronos/ProviderSettings.schema
$schema: https://json-schema.org/draft-07/schema

title: Provider Settings
description: >-
  `Provider.settings` are used to store task provider-specific settings.

type: object
required: []
additionalProperties: false

properties:
  retry_strategy:
    $ref: "#/definitions/retry_strategy"
  #end retry_strategy

  execution:
    $ref: "#/definitions/execution"
  #end execution

  anydesk:
    $ref: "#/definitions/anydesk"
  #end anydesk
#end properties

definitions:
  retry_strategy:
    title: Retry Strategy
    description: >-
      The retry strategy determines what to do in the event of an unsuccessful execution.
      After each attempt failure, `k`, we wait for `2^k * retry_backoff * jitter` seconds before trying the next attempt.

      The default retry strategy is no retrying.

    type: object
    required: [max_retries]
    additionalProperties: false

    properties:
      max_retries:
        title: Max Retries
        description: Maximum number of attempts at retrying. A `max_retries` of `2` implies that there will be at most 3 executions of the task. Note that this is required and must be an integer so unlimited retries are not possible.

        type: integer
        minimum: 0
        maximum: 5
      #end max_retries

      retry_backoff:
        title: Retry Backoff
        description: The backoff factor. Defaults to `1`.

        type: number
        exclusiveMinimum: 0
        maximum: 600

      retry_backoff_max:
        title: Retry Backoff Max
        description: The maximum wait time regardless of retries and jitters. Defaults to `600`.

        type: number
        exclusiveMinimum: 0
        maximum: 3600

      retry_jitter:
        title: Retry Jitter
        description: If `true`, a uniform random multiplier between 0.75 and 1.25 will be multiplied to the wait time to avoid herd issues. Defaults to `true`.

        type: boolean
  #end retry_strategy

  execution:
    title: Execution
    description: These settings are used during execution to monitor the health and performance of kronos tasks.

    type: object
    required: []
    additionalProperties: false

    properties:
      delete_if_no_next_execution:
        title: Delete If No Next Execution
        description: Delete the task if the task has no more next execution. Defaults to `true`.
        type: boolean

      fail_if_queued_too_long:
        title: Fail If Queued Too Long
        description: Fail if the task spent longer than `failif_queued_too_long` seconds in the `QUEUED` status. This is useful is the task has a "freshness" requirement. Defaults to infinite time.
        type: number
        exclusiveMinimum: 0

      warn_if_queued_too_long:
        title: Warn If Queued Too Long
        description: Warn if the task spent longer than `warn_if_queued_too_long` seconds in the `QUEUED` status. Defaults to `60` seconds.
        type: number
        exclusiveMinimum: 0

      warn_if_execute_too_long:
        title: Warn If Execute Too Long
        description: Warn if the task spent longer than `warn_if_execute_too_long` seconds in the `EXECUTE` status. Defaults to `60` seconds.
        type: number
        exclusiveMinimum: 0

      log_critical_if_failed:
        title: Log Critical If Failed
        description: Legacy option replaced by `report_incident_if_failed`.
        type: boolean

      report_incident_if_failed:
        title: Report Incident If Failed
        description: Reports an incident when the task execution failed and there are no more retries available. Defaults to `false`.
        type: boolean

      max_concurrent_executions:
        title: Max Concurrent Executions
        description: Maximum number of concurrent executions of the same task. When the maximum concurrent executions is reached, the task will be skipped with a warning message. Defaults to `0`, meaning unlimited concurrent executions.
        type: integer
        minimum: 0

      default_queue:
        title: Default Queue
        description: Default queue to use for the task. Defaults to `long`.
        enum: [long, short]

      time_limit:
        title: Time Limit
        description: Overrides the default time limit (in seconds) for the task. Defaults to `0`, meaning use default.
        type: integer
        minimum: 0
    #end properties
  #end execution

  anydesk:
    title: AnyDesk
    description: Settings for the AnyDesk healthcheck provider.

    type: object
    required: [license_id, api_key, heartbeat_key, client_ids]
    additionalProperties: false

    properties:
      license_id:
        title: License ID
        description: The AnyDesk license ID.
        type: string
        minLength: 1

      api_key:
        title: API Key
        description: The AnyDesk API key.
        type: string
        minLength: 1

      heartbeat_key:
        title: Heartbeat Key
        description: The key of the BetterUptime heartbeat to use. The heartbeat will only be sent if all the monitored clients are online.
        type: string
        minLength: 1

      client_ids:
        title: Client IDS
        description: IDs of AnyDesk clients to monitor.
        type: array
        items:
          type: string
          minLength: 1
    #end properties
  #end anydesk
#end definitions

[Main Page] [Schema Documentation] [Examples]