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