A connector is an object that is added to an integration that enables Pandium to provide the necessary encrypted secrets or tokens to the integration and tenant combination. A Pandium connector will respect the authentication needs of partner systems, whether that is an OAuth protocol, a simple API key, or something proprietary or bespoke. An integration script running on the platform will accept the necessary secrets as environment variables at run-time. Secrets are encrypted at rest and in transit and cannot be exported.
In contrast to many integration platforms, Pandium’s connectors do not interact with external APIs beyond authorization, authentication and receiving webhooks. As such, there is no “Pandium version” or “wrapper” around third-party APIs.
For a given integration, connectors can be set per-tenant or globally in the event that one side of an integration is static, such as using a SFTP or cloud storage bucket for all customer accounts.
Conceptually, an integration is a packaged-up application that syncs data between two or more systems. Also referred to as applications, or scripts, they can be one-way or bi-directional and can be run on a schedule or based on a different trigger. Integrations may also be one-to-many, i.e. if a customer has multiple 3rd party accounts syncing to one of your accounts or vice versa.
In Pandium, the integration object can be thought of as the “parent” record for any application on the platform. At a minimum, it is the content and copy required to list a tile within an end user-facing marketplace. More often, it is a combination of all of the components needed to functionally sync data between systems powered by Pandium.
We currently support 2 types of Integrations:
- Internal Integrations are functional apps which sync data between systems. The code that performs the syncs (ETL), determines end-user settings (PANDIUM.yaml) and all associated data are housed on the Pandium cloud. Marketing and marketplace content also live on internal integrations.
- External Integrations allow Pandium customers to highlight integrations or other listings which do not sync data on the Pandium platform. External integrations have marketing content and copy and marketplace activity is tracked by the platform, but there is no ETL running on Pandium. Customers may use external integrations to highlight legacy integrations, “coming soon” or beta (unpublished) apps or types of services that would not be powered by Pandium, like channel partners or agencies.
A tenant is an instance of an installed integration. At its core, a tenant is a unique set of API keys or authentication tokens and the configuration options needed for a sync to successfully run. Depending on your account hierarchy, tenants usually have a one-to-one relationship with one of your application’s accounts installing one integration. Occasionally, multiple tenants may be needed for one parent account installing an integration, such as in the instance of when that parent account has multiple API keys or authentication tokens for different users or sites.
A run is both the actual act of Pandium executing a script, its associated secrets and configs, and also the record of that sync running for a given tenant. Runs have associated logs which are configured by the engineering user of the Pandium platform. Runs will be visible to Pandium admins and customers for up to 30 days. Further look-backs may be available by contacting support.
A release is a version of the code that performs the ETL on Pandium in combination with the PANDIUM.yaml. New releases are generated when the Source Control Integration detects changes in the specified repository. Releases can be made the default for all new installations. Tenants may be updated to new releases in bulk or individually. Releases may be tagged with identifying information to assist with version control.
Source Control is an integration and tenant created by Pandium to help run and provision integration releases. It connects to your repository and every time the integration is run, it will check the code of all existing integrations and create a new release for the integration if the code has changed.