Schema for Onform Provider Settings

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

---
$id: https://skeleton.botmd.io/onform/ProviderSettings.schema
$schema: http://json-schema.org/draft-07/schema#4

title: Provider Settings
description: "`ProviderApplication.provider_settings` are used to store provider-specific settings such as API keys."

type: object
additionalProperties: false

anyOf:
  - required: [budibase]
  - required: [calendly]
  - required: [cleo]
  - required: [concerto]
  - required: [formsg]
  - required: [google_form]
  - required: [mandaya]
  - required: [tabular] # Can be optional by being blank
  - required: [typeform]

properties:
  budibase:
    title: Budibase
    description: Settings for Budibase forms.

    $ref: "#/definitions/Budibase"

  calendly:
    title: Calendly
    description: Settings for Calendly forms.

    $ref: "#/definitions/Calendly"

  cleo:
    title: Cleo
    description: Settings for Cleo forms.

    $ref: "#/definitions/Cleo"

  concerto:
    title: Concerto
    description: Settings for Concerto forms.

    $ref: "#/definitions/Concerto"

  formsg:
    title: FormSG
    description: Settings for FormSG forms.

    $ref: "#/definitions/FormSG"

  google_form:
    title: Google Form
    description: Settings for Google Forms.

    $ref: "#/definitions/Google Form"

  mandaya:
    title: Mandaya
    description: Settings for Mandaya forms.

    $ref: "#/definitions/Mandaya"

  tabular:
    title: Tabular Interface
    description: Settings for Tabular interface forms. This can be an empty dictionary.

    $ref: "/scalpel/TabularInterfaceSettings.schema"

  typeform:
    title: Typeform
    description: Settings for Typeform forms.

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

definitions:
  Budibase:
    type: object
    additionalProperties: false
    required: [base_url, minio_url, couchdb_url]

    properties:
      base_url:
        title: Base URL
        description: Base URL for Budibase web application, e.g., `https://ymir.production.botmd.io`.
        type: string
        format: uri
        minLength: 1

      couchdb_url:
        title: CouchDB URL
        description: The CouchDB installation associated with the Budibase deployment. This is used for updating the Budibase forms. Should include auth credentials.
        type: string
        format: uri
        minLength: 1

      minio_url:
        title: Minio URL
        description: The MinIO installation associated with the Budibase deployment. This is used for deleting files from Minio. Should include auth credentials and bucket in the path, e.g., `https://hippocrates-onform:xxxxx@ymir-minio.staging-private.botmd.io/bucket-name`. If bucket is not specified, it will default to `prod-budi-app-assets`.
        type: string
        format: uri
        minLength: 1

      attachment_expiration_days:
        title: Attachment Expiration (Days)
        description: The number of days before we delete the attachments from the MinIO storage. Defaults to 3 days.

        type: integer
        minimum: 1

      webhook_token:
        title: Webhook Token
        description: Webhook token used to authenticate against our endpoints. This token is usually generated by the user. Can be overridden in Form settings and must be set either here or in the form.
        type: string
        minLength: 1
    #end properties
  #end Budibase

  Calendly:
    type: object
    additionalProperties: false
    required: [api_key, signing_key]

    properties:
      api_key:
        title: API key
        description: API key for accessing the Calendly API.

        type: string
        minLength: 1

      signing_key:
        title: Signing key
        description: Signing key used to validate incoming webhook payload.

        type: string
        minLength: 1
    #end properties
  #end Calendly

  Cleo:
    type: object
    additionalProperties: false
    required: [api_key]

    properties:
      api_key:
        title: API key
        description: API key for verifying incoming requests.

        type: string
        minLength: 1
    #end properties
  #end Cleo

  Concerto:
    type: object
    additionalProperties: false
    required: [webhook_token]

    properties:
      webhook_token:
        title: Webhook Token
        description: Webhook token for verifying incoming requests.

        type: string
        minLength: 1

      client_code:
        title: Client Code
        description: Client code of incoming payloads should match this. If left empty, matching will not happen.

        type: string
        minLength: 1
    #end properties
  #end Concerto

  FormSG:
    type: object
    additionalProperties: false
    required: []

    properties:
      admin_email:
        title: Admin Email
        description: Email address for logging in to admin account. Note that the admin email account should forward all emails from `` containing `OTP` in the subject to `formsg@{staging,production}.botmd.io` (or whichever address is configured by the __FormSG OTP__ Ratatoskr application).

        type: string
        format: email

      webhook_url:
        title: Webhook URL
        description: Override the server webhook URL during request integrity check.

        type: string
        format: uri
    #end properties
  #end FormSG

  Google Form:
    type: object
    additionalProperties: false
    required: []

    properties:
      webhook_token:
        title: Webhook Token
        description: Webhook token used to authenticate against our endpoints. This token is usually generated by the user and will match the api token in the code snippet.
        type: string
        minLength: 32
    #end properties
  #end Google Form

  Mandaya:
    type: object
    additionalProperties: false
    required: [api_key]

    properties:
      api_key:
        title: API key
        description: API key for verifying incoming requests.

        type: string
        minLength: 1
    #end properties
  #end Mandaya

  Typeform:
    type: object
    additionalProperties: false
    required: [api_key]

    properties:
      api_key:
        title: API Key
        description: API key for accessing the Typeform API.

        type: string
        minLength: 1

      delete_submissions:
        title: Delete Submissions
        description: Delete submissions that are older than `N` days. If `N=0`, submissions are never deleted. Defaults to `30` days.

        type: integer
        minimum: 0
  #end Typeform
#end definitions

[Main Page] [Schema Documentation] [Examples]