schema.md
For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to page URLs; this page is available as Markdown.
Schema
The PANDIUM.yaml’s schema properties are a collection of string to object mappings that determine the name and type of each configuration in the connection settings page. The object to which the property name is mapped must contain the type prop. Pandium currently supports the following types, many of which can take additional props:
Boolean
bool_input:
type: boolean
default: true
In this example bool_input is the name of the config. When presented to the end user, they will see a checkbox that is checked because the default is set to true. When a run happens this config will be injected into the environment as PAN_CFG_BOOL_INPUT.
| prop | values | note |
|---|---|---|
| default | true or false |
Integer
integer_input:
type: integer
default: 0
min: -1
max: 10
In this example, integer_input is the name of the config. When presented to the end user, they will see a number selector that is restricted to integers, with the value 0 being presented as the starting value. The end user will be able to enter an integer between -1 and 10. When a run happens, this config will be injected into the Environment as PAN_CFG_INTEGER_INPUT.
| prop | values | note |
|---|---|---|
| default | an integer | |
| min | an integer | negatives allowed |
| max | an integer |
Number
number_input:
type: number
default: 1.3333333
In the above example, number_input is the name of the config. When presented to the Integration Hub user, they will see a number selector with the value 1.3333 presented as the starting value. When a Run happens this config will be injected into the Environment as PAN_CFG_NUMBER_INPUT.
| prop | values | note |
|---|---|---|
| default | any number | |
| min | any number | negatives allowed |
| max | any number |
String
string_input:
type: string
In the above example, string_input is the name of the config. When presented to the Integration Hub user, they will see a text box that is empty being the starting value. When a Run happens this config will be injected into the Environment as PAN_CFG_STRING_INPUT.
| prop | values | note |
|---|---|---|
| default | any valid unicode string | |
| format | null || "date" || "time" || "date-time" | when null or undefined control renders as a text box. date renders as a date picker time renders as a time picker and date-time renders a date and time control. |
| enum | an array of values | if you add an enum to the control, it will render as a dropdown. |
Enum
string_enum_input:
enum:
- option 1
- option 2
- option 3
type: string
In the above example, string_enum_input is the name of the config. When presented to the Integration Hub user, they will see a select box allowing them to choose between the given enum values. When a Run happens this config will be injected into the Environment as PAN_CFG_STRING_ENUM_INPUT.
Labeled Enum
labeled_enum:
type: string
oneOf:
- title: Option 1 label
const: option1
- title: Option 2 label
const: option2
- title: Option 2 label
const: option2
In the above example, labeled_enum is the name of the config. When presented to the Integration Hub user, they will see a select box with labeled values. When a Run happens this config will be injected into the Environment as PAN_CFG LABELED_ENUM.
How the Integration Hub user will see this when combined with UISchema
Array/Object
array_input:
type: array
items:
type: object
properties:
date:
type: string
format: date
enum:
enum:
- foo
- bar
type: string
message:
type: string
maxLength: 5
In the above example, array_inputis the name of the config. When presented to the user they will see a line with a combination of the three properties that make up each object in the list, the UI allows them to add or remove objects to the array. When a Run happens this config will be injected into the Environment as PAN_CFG_ARRAY_INPUT
Multi-Select Enum
string_enum_multi_input:
items:
options:
- label: Option 1 label
value: option1
- label: Option 2 label
value: option2
- label: Option 2 label
value: option2
| prop | value | note |
|---|---|---|
| items | options: a list of objects where each has a label and value |
File Upload
file_upload:
type: string
In the above example, file_upload is the name of the config. When presented to the Integration Hub or Marketplace user, they will see an option to import a CSV file . When a Run happens this config will be injected into the Environment as PAN_CFG_FILE_UPLOAD.
The value for the file_upload config is a base64 encoded CSV file, so you will simply need to decode this in your integration should you choose to use it.
How the Integration Hub user will see this when combined with UISchema
{% hint style="info" %} Note: Like all the schema property types described here, the configuration’s property must be referenced in the scope of a uischema element for it to be displayed on the connection settings page. Unlike other schema property types, the UISschema element type for a multi select uischema must be MultiSelectControl, rather than Control. To learn more about how the UISchema determines how the configurations are displayed review this article. {% endhint %}
Putting it all together
schema:
type: object
properties:
bool_input:
type: boolean
default: true
array_input:
type: array
items:
type: object
properties:
date:
type: string
format: date
enum:
enum:
- foo
- bar
type: string
message:
type: string
maxLength: 5
number_input:
type: number
default: 1.3333333
string_input:
type: string
integer_input:
max: 10
min: -1
type: integer
default: 0
string_enum_input:
enum:
- option 1
- option 2
- option 3
type: string