Schema for Heimdall Provider Input

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

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

title: Provider Input
description: Provider inputs are used by Heimdall login frontends for provider specific input values. These are usually things like access tokens and secret credentials generated by the authentication provider.

type: object
additionalProperties: false
anyOf:
  - required: [access_token]
  - required: [jwt]
  - required: [session]
  - required: [token]
  - required: [maxicare_card_no, maxicare_clinic_domain, maxicare_dob]
  - required: [native_session, web_session]
  - required: [identifiable_information]
  - required: [sgid_session]
  - required: [sgid_authorize]
  - required: [chemocalc_nric]

properties:
  access_token:
    title: Access Token
    description: Access tokens are usually generated by third party services which the backend can use to authenticate. This is used by `Auth0Provider` and `PublicServiceProvider`.
    type: string

    minLength: 1
  #end access_token

  native_session:
    title: "QRCodeProvider: Native Session"
    description: The current session token held by the native device. This is used by `QRCodeProvider`.
    type: string

    minLength: 32
  #end native_session

  web_session:
    title: "QRCodeProvider: Web Session"
    description: The pre-generated session token requested by the web device. This is usually enccoded within the QR code and generated by the web client. This is used by `QRCodeProvider`.
    type: string

    minLength: 32
  #end native_session

  jwt:
    title: JWT
    description: JWT tokens are usually generated by third party services which the backend can use to authenticate. This is used by `LegacyJWTProvider`.
    type: string

    minLength: 1
  #end jwt

  session:
    title: Session
    description: A valid Heimdal session UID often used for session exchange. This is used by `CleoClinicianProvider`.
    type: string

    minLength: 32
  #end session

  sgid_authorize:
    title: SGID Authorize
    description: Authorize against `SGIDProvider` instead of application. This is used by `SGIDProvider`.
    type: boolean
  #end sgid_authorize

  sgid_session:
    title: Sgid Session
    description: A valid Heimdall session UID with scoope `sgid` used for session exchange.
    type: string

    minLength: 32
  #end sgid_session

  chemocalc_nric:
    title: Chemocalc NRIC
    description: NRIC that is used by `ChemocalcHeimdallProvider`.
    type: string
    minLength: 1

  maxicare_card_no:
    title: Maxicare Card No
    description: Maxicare Card No that is used by `MaxicareHeimdallProvider`
    type: string
    minLength: 1

  maxicare_clinic_domain:
    title: Maxicare clinic domain
    description: Maxicare clinc domain that is used by `MaxicareHeimdallProvider`
    type: string
    minLength: 1

  maxicare_dob:
    title: Maxicare Member DOB
    description: Maxicare's member DOB for verification
    type: string
    format: date

  token:
    title: Token
    description: Tokens are usually generated by third party services which the backend can use to authenticate. This is used by `InternalServiceProvider` and `CleoPatientProvider`.
    type: string

    minLength: 1
  #end token

  identifiable_information:
    title: Identifiable Information
    description: Identifiable information for `OTPProvider` to verify OTP.

    $ref: "/governess/IdentifiableInformation.schema"
  #end identifiable_information
#end properties

[Main Page] [Schema Documentation] [Examples]