Schema for Heimdall Provider-Application Settings

From ProviderApplicationSettings.schema.yaml (heimdall/ProviderApplicationSettings.schema)

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

title: Provider-Application Settings
description: >-
  `ProviderApplication.settings` are usually settings required by frontend for handling authentication.
  As this will be provided to the frontend (sometimes without authentication), we should not store any secrets in here.
  Common fields stored here are `id`s, logos, color themes, etc.

type: object
additionalProperties: false
properties:
  auth0:
    $ref: "#/definitions/auth0"

  azure:
    $ref: "#/definitions/azure"

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

definitions:
  auth0:
    title: Auth0Provider
    description: ProviderApplication settings for `Auth0Provider`.

    type: object
    additionalProperties: false
    required: [domain, clientId, connection]
    properties:
      domain:
        title: Domain
        description: Your Auth0 account domain (ex. `auth.botmd.io`).

        type: string
        format: hostname
      #end domain

      clientId:
        title: Client ID
        description: Your Auth0 client ID.

        type: string
        minLength: 1
      #end client_id

      connection:
        title: Connection
        description: Specifies how to send the code/link to the user. Value must be either `email` or `sms`.

        type: string
        enum: [email, sms]
      #end connection

      options:
        title: Lock options
        description: Options to customize [Lock](https://auth0.com/docs/libraries/lock/lock-configuration).

        type: object
    #end properties
  #end auth0

  azure:
    title: AzureADProvider
    description: Provider settings for 'AzureADProvider'
    type: object
    required: [clientId]
    properties:
      clientId:
        title: Client ID
        description: The Azure AD client ID.
        type: string
        minLength: 1

  qrcode:
    title: QRCodeProvider
    description: Provider settings for `QRCodeProvider`.

    type: object
    additionalProperties: false
    required: [url]
    properties:
      url:
        title: URL
        description: The URL to use for generating the QR code. This URL will include a `${web_session}` which should be replaced with the pre-generated web session UID. It is usually `botmd://hospital/qrcodeLogin?session=${web_session}`.
        type: string
        format: uri
      #end url
    #end properties
  #end qrcode
#end definitions

[Main Page] [Schema Documentation] [Examples]