Schema for Bifrost Connection Settings

From ConnectionSettings.schema.yaml (bifrost/ConnectionSettings.schema)

---
$id: https://skeleton.botmd.io/bifrost/ConnectionSettings.schema
$schema: http://json-schema.org/draft-07/schema#

title: Connection Settings
description: Connection settings contain the inforamtion that the connections are initiaited with.

type: object
additionalProperties: false
required: []

properties:
  cron:
    $ref: "#/definitions/cron"
  google_sheets:
    $ref: "#/definitions/google_sheets"
  kronos:
    $ref: "#/definitions/kronos"
  moneta:
    $ref: "#/definitions/moneta"
  onform:
    $ref: "#/definitions/onform"
  ratatoskr:
    $ref: "#/definitions/ratatoskr"
#end properties

definitions:
  cron:
    title: Cron
    description: Cron connection settings.
    type: object

  google_sheets:
    title: Google Sheets
    description: Google Sheets connection settings.

    type: object
    properties:
      credentials:
        title: Google Credentials.
        description: Google service account credentials in JSON format used with `Credentials.from_service_account_info`. It can be found in `https://console.cloud.google.com/apis/credentials`.

        type: object
        additionalProperties: true

      url:
        title: URL
        description: The URL of the Google Sheet used by the connection. The sheet should be shared with the service account e-mail in the `credentials`.
        type: string

        format: uri
      #end properties
  #end google_sheets

  kronos:
    title: Kronos
    description: Kronos connection settings.

    type: object
    required: []
    additionalProperties: false

    properties:
      oneoffs:
        title: Oneoffs
        description: Array of datetimes for one off schedules.

        type: array
        minItems: 1
        items:
          type: string
          format: date-time
      #end oneoffs

      recurring_crons:
        title: Recurring Crons
        description: Array of recurring crons.

        type: array
        minItems: 1
        items:
          type: object
          required: [expression]
          additionalProperties: false

          properties:
            expression:
              title: Expression
              description: Cron expression. See examples on [https://crontab.guru/](Crontab Guru). We use [https://github.com/kiorky/croniter](croniter) for cron expression parsing.

              type: string

            day_or:
              title: Day Or
              description: Used to control how croniter handles day and day_of_week entries. Default option is the cron behaviour, which connects those values using OR. If the switch is set to False, the values are connected using AND. This behaves like fcron and enables you to e.g. define a job that executes each 2nd friday of a month by setting the days of month and the weekday.

              type: boolean

            tz:
              title: Timezone
              description: Timezone for the cron expression. Defaults to UTC.

              type: string
          #end properties
        #end items
      #end recurring_crons
    #end properties
  #end kronos

  moneta:
    title: Moneta
    description: Moneta connection settings.

    type: object
    properties:
      providers:
        title: Providers.
        description: Moneta providers UIDs used by this connection. There are multiple providers and they can be referred to by their `uid`.

        type: array
        uniqueItems: true
        items:
          type: string
          minLength: 1
    #end properties
  #end moneta

  onform:
    title: Onform
    description: Onform connection settings.

    type: object
    properties:
      forms:
        title: Forms.
        description: The Onform V2 forms used by this connection. There are multiple forms and they can be referred to by either `uid` or `provider_id`.

        type: array
        uniqueItems: true
        items:
          type: string
          minLength: 1
    #end properties
  #end onform

  ratatoskr:
    title: Ratatoskr
    description: Ratatoskr connection settings.

    type: object
    properties:
      provider_application:
        title: Provider Application.
        description: The Ratatoskr `ProviderApplication` used by this connection. It can be either `uid` or `name`.
        type: string
        minLength: 1
    #end properties
  #end ratatoskr
#end definitions

[Main Page] [Schema Documentation] [Examples]