Schema for Heimdall Application Input

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

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

title: Application Input
description: Application inputs are used by Heimdall login frontends for application specific input values.

anyOf:
  - $ref: "/skeleton/Empty.schema"
  - $ref: "#/definitions/cleo"
  - $ref: "#/definitions/hospital"
  - $ref: "#/definitions/maxwell"
#end anyOf

definitions:
  cleo:
    title: Cleo
    description: Application input needed by Cleo heimdall application
    type: object
    additionalProperties: false
    anyOf:
      - required: [domain]
      - required: [domain, patient_verification_fields]
      - required: [patient_verification_fields]

    properties:
      domain:
        title: Domain
        description: Domain of the clinic. This is used to identify the clinic to create the session for during authorization flow. This is currently used with clinician authorization flows only (i.e., Auth0, Session exchange).
        type: string
        minLength: 1

      patient_verification_fields:
        title: Verification Fields
        description: An array of verification fields containing key, value pairs of the user's input during patient login.

        type: array
        items:
          type: object
          additionalProperties: false
          required: [key, value]

          properties:
            key:
              title: Key
              description: Key representing the verification type. See [cleo/ClinicSettings.schema](cleo-clinicsettings-generated.html) for more information.

              enum: [identifier, identifier_last_4, verification_token, verification_token_last_4, phone_e164, phone_without_country_code, phone_last_4]

            value:
              title: Value
              description: Patient input for the corresponding `key`. When validating on the backend, it is case insensitive and "space" insensitive.

              type: string
              minLength: 1
          #end properties
      #end patient_verification_fields
    #end properties
  #end cleo

  hospital:
    title: HospitalHeimdallApplication
    description: Application input for `HospitalHeimdallApplication`
    type: object
    additionalProperties: false
    required: [allow_guest]
    properties:
      allow_guest:
        title: Allow Guest
        description: Boolean that indicates whether guest login is allowed or not.

        type: boolean
        default: false
      #end allow_guest

      organization_key:
        title: Organization key
        description: If specified, the authorization flow will only check the user’s identifiable information against the specific hospital’s `DirectoryProfile` and API. Note that this refers to the `Hospital.settings['organization_key']`.

        $ref: "/hospital/ProfileTags.schema#/definitions/Organization Keys"
      #end organization_key

      device_uid:
        title: Device UID
        description: Device UID for public session. If specified, backend will send message to device during authorization flow.

        type: string
      #end device_uid
  #end hospital

  maxwell:
    title: MaxwellApplication
    description: Application input for `MaxwellApplication`
    type: object
    additionalProperties: false
    required: [user_role]
    properties:
      user_role:
        title: User Role
        description: User Role assumed by a clinician user of maxwell application

        type: string
        enum: [doctor, assistant]
      #end user_role
    #end properties
  #end maxwell
#end definitions

[Main Page] [Schema Documentation] [Examples]