Links

PANDIUM.yaml

The PANDIUM.yaml provides Pandium with the necessary information in order to build and execute your integration script on our platform. It also defines the configuration options and UI, via the configs section, where your customers will input information vital to the integration run.

Name and Location

When setting up an integration on the Admin Dashboard, you are able to specify the name and location of the file with respect to the root of your integration code repository. If not set, by default we look for a file name PANDIUM.yaml in the root directory.

Structure

All Pandium.yaml files are required to start with the following 5 mappings.
version: 0.4
base: python:3.7 # Node, Ruby, PHP, Java, GO
build: pipenv install
run: pipenv run python -m hubspot2s3
configs: {} # details to follow
  • version: This should be at the top of the file. Currently this should always be set to 0.4.
  • base: Use this property to tell us what language and version you have coded your integration in. Format should be <language>:<version>
    • acceptable values include:closure, node, python, ruby, java, php, .net
    • The version of the language should follow the the language using a colon.
      • Examples python:3.7 or java:11
We strive to support all commonly used languages and at least the long-term supported version of the language if such a version is defined. If you don't see your preferred language or version, please let your Technical Account Manger know and we will work on getting support built out right away.
  • build: This should be set to how you package your code, and get all of its dependency installed. We strive to support all common packing and dependency management tools. This includes pip (python), npm (node), composer (php), maven (java), etc.
  • run: This property tells Pandium how to run your code at run time. This should be the same command you use to invoke your script on you local command line. For example, if you had a script named “main.py” you would use python -m main.py to execute it both locally and on Pandium.

Configs

The configs section fo the pandium.yaml file allow to define the configuration options and UI elements that should be presented to the user when they are creating their Tenant for your Integration. The configs currently support two types of properties: Schema and UiSchema.
To define a config, add a mapping underneath the schema.properties. The mapping is a string to an object. The string is the name of the config and prefixed with PAN_CFG_when injected into the environment at runtime. The only required prop of the object is typeother possible props are specific to the type and none are require.
Below is an example of a Configs specification. The tenant will be presented with the four properties defined under the schema, some of which have defaults. They will be labeled as described under the UISchema. You can also choose if the end users is even presented with an option, or if it is only configurable but an administrator on the Admin Dash.
# ... continuing from above
configs:
schema:
properties:
s3_bucket_name:
type: string
s3_file_name:
type: string
make_contact:
type: boolean
default: true
make_company:
type: boolean
type: object
uischema:
elements:
- label: S3 Bucket Name
scope: '#/properties/s3_bucket_name'
type: Control
- label: S3 File Name
scope: '#/properties/s3_file_name'
type: Control
- label: Make Contact?
scope: '#/properties/make_contact'
type: Control
admin: true
- label: Make Company?
scope: '#/properties/make_company'
type: Control
type: VerticalLayout
In the above examplemake_contact is the name of the config. When presented to the user they will see a checkbox, that is checked, because a the default was set to true. When a Run happens this config will be injected into the environment as PAN_CFG_MAKE_CONTACT. Possible props:
In the above example, num_of_daysis the name of the config. When presented to the user they will see a number selector that is restricted to integers, with the value 0 being presented as the starting value. The user will be able to When a Run happens this config will be injected into the Environment as PAN_CFG_MAKE_CONTACT
In the above example, a_real_numberis the name of the config. When presented to the user they will see a number selector, with the value 1.3333 being presented as the starting value. When a Run happens this config will be injected into the Environment as PAN_CFG_A_REAL_NUMBER
In the above example, i_am_a_normal_stringis the name of the config. When presented to the 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_I_AM_A_NORMAL_STRING