From ProviderSettings.schema.yaml (heimdall/ProviderSettings.schema
)
---
$id: https://skeleton.botmd.io/heimdall/ProviderSettings.schema
$schema: http://json-schema.org/draft-07/schema#
title: Provider Settings
description: >-
`ProviderApplication.provider_settings` are used by backend to communicate with the authentication providers.
This field will not be exposed to frontend.
type: object
additionalProperties: false
properties:
azure:
$ref: "#/definitions/azure"
auth0:
$ref: "#/definitions/auth0"
sgid:
$ref: "#/definitions/sgid"
otp:
$ref: "#/definitions/otp"
maxicare:
$ref: "#/definitions/maxicare"
public_service:
$ref: "#/definitions/public_service"
#end properties
definitions:
azure:
title: AzureProvider
description: Provider settings for `AzureProvider`.
type: object
required: [api_url]
properties:
api_url:
title:
description: The identity provider root URL (ex. `graph.microsoft.com/v2`).
type: string
#end api_url
auth0:
title: Auth0Provider
description: Provider settings for `Auth0Provider`.
type: object
additionalProperties: false
required: [domain, client_id, client_secret]
properties:
domain:
title: Domain
description: Your Auth0 account domain (ex. `auth.botmd.io`).
type: string
format: hostname
#end domain
client_id:
title: Client ID
description: Your Auth0 client ID.
type: string
minLength: 1
#end client_id
client_secret:
title: Client Secret
description: Auth0 client secret for using the Auth0 management API.
type: string
minLength: 1
#end properties
#end auth0
sgid:
title: SgidProvider
description: Provider Settings for 'SgidProvider'
type: object
additionalProperties: false
required: [client_id, client_secret, private_key, scope]
properties:
client_id:
title: Client ID
description: Client id obtained from sgid developer portal.
type: string
minLength: 1
client_secret:
title: Client Secret
description: Client secret obtained from sgid developer portal.
type: string
minLength: 1
private_key:
title: Private Key
description: Private key obtained from sgid developer portal.
type: string
minLength: 1
scope:
title: Scope
description: Scope for Sgid. "openid" must be provided as a scope.
type: string
minLength: 1
session_as_identifier:
titile: Session as identifier
description: Use session as identifier for heimdall application. Defaults to `false`.
type: boolean
otp:
title: OTPProvider
description: Provider Settings for 'OTPProvider'
type: object
additionalProperties: false
required: [ratatoskr_providers]
properties:
ratatoskr_providers:
title: Ratatoskr Providers
description: Ratatoskr providers to use for delivering OTP.
type: array
minItems: 1
items:
type: object
additionalProperties: false
anyOf:
- required: [ii_type, uid]
- required: [ii_type, name]
properties:
ii_type:
title: Identifiable Information Type
description: The II type to use this provider with.
enum: [phone, email]
uid:
title: UID
description: The Ratatoskr provider application UID.
type: string
minLength: 1
name:
title: Name
description: The Ratatoskr provider application name.
type: string
minLength: 1
#end properties
#end ratatoskr_providers
otp_settings:
title: OTP Settings
description: Settings for configuring the `pyotp.TOTP` object.
type: object
required: []
additionalProperties: false
properties:
secret:
title: Secret (Hex)
description: Hexadecimal secret key for generating and verifying OTPs. Defaults to `settings.HEIMDALL_HMAC_KEY`.
type: string
pattern: "^[a-z0-9]{64}$"
#end secret
digits:
title: Digits
description: Number of OTP digits.
type: integer
minimum: 4
#end digits
name:
title: Name
description: Name of OTP application. Defaults to `OTP (<environment>)`.
type: string
minLength: 1
#end name
issuer:
title: Issuer
description: Issuer of OTP application. Defaults to `Bot MD`.
type: string
minLength: 1
#end issuer
interval:
title: Interval
description: Interval that the OTP is valid for. Since we are doing a time-based thing with validity window size of 1 interval, this means that the OTP may sometimes be valid for up to `2 * interval` seconds; other times it could be valid for only `interval` seconds. Defaults to `300`.
type: integer
minimum: 1
#end interval
#end otp_settings
#end otp
maxicare:
title: CleoMaxicareProvider
description: Provider Settings for 'CleoMaxicareProvider'
type: object
required: [token]
properties:
token:
title: Token
description: Token that used for validate access.
type: string
minLength: 1
url:
title: URL
description: URL of Maxicare service
type: string
format: uri
public_service:
title: PublicServiceProvider
description: Provider Settings for 'PublicServiceProvider'
type: object
additionalProperties: false
required: [access_token]
properties:
access_token:
title: Access Token
description: Token that used for validate access.
type: string
minLength: 1
#end public_service
#end definitions