**Source URL:** https://general.veevavault.dev/quality/integrations/references/integration-components.md

# Integration Components

Vault comes with a broad range of components to suit the different types and patterns of integration.

The common integration components are:

* [Vault API](#API)

* [VAPIL (Vault API Library)](#VAPIL)

* [VQL (Vault Query Language)](#VQL)

* [MDL (Metadata Definition Language)](#MDL)

* [Vault File Staging](#FSS)

* [Vault Loader](#Loader)

* [Configuration Migration Packages](#Config_Migration)

* [Web Tabs and Web Sections](#WebTabs_Sections)

<SiteConditional sites="commercial,medical" id="integrations-external-doc-viewer"></SiteConditional>

* [Web Actions](#Web_Actions)

* [Web Jobs](#Web_Jobs)

* [Vault Java SDK](#SDK)

* [Spark Messaging and HTTP Callout](#Spark_HTTP_Callout)

* [SAML 2.0](#SAML_2.0)

* [OAuth 2.0 / OpenID Connect](#OAuth_OpenID)

## Vault API {#vault-api}

Vault API provides an extensive set of interfaces for pushing data into and pulling data from Vault. It also supports bulk and asynchronous processing. Learn more about [Vault API](/vault-api) and the list of features in the [latest version of API](/vault-api/api-reference/26.1).

## VAPIL (Vault API Library) {#vapil-vault-api-library}

VAPIL (Vault API Library) is an open-source Java library for Vault API that includes coverage for all Platform APIs. Support for this is handled through our [Developer Community](/library/references/developer-resources). Learn more about [VAPIL](/library/references/developer-resources/#VAPIL_Resources).

## VQL (Vault Query Language) {#vql-vault-query-language}

VQL (Vault Query Language) is used to access, retrieve, filter, and interact with Vault data, by running queries against the [Query API](/vault-api/api-reference/26.1/vault-query-language-vql), using an SQL-like language that is tailored to Vault. VQL queries provide an efficient way to retrieve Vault data in bulk for integrations through a single API call. Learn more about [VQL](/vql/).

## MDL (Metadata Definition Language) {#mdl-metadata-definition-language}

MDL (Metadata Definition Language) is used to manage Vault configuration. Like DDL (Data Definition Language) in databases, you can use MDL to create, describe (read), update, and drop (delete) Vault components that make up its configuration. Learn more about [MDL](/mdl).

## Vault File Staging {#vault-file-staging}

Each Vault comes with its own file staging, which is a temporary storage area for files you’re uploading to or extracting from Vault and is widely used in integrations. Learn more about [Vault's file staging](https://platform.veevavault.help/en/gr/38653).

## Vault Loader {#vault-loader}

Vault Loader allows you to load data to your Vault or extract data from your Vault in bulk. Loader is particularly useful during integrations and migrations where large numbers of records are being transferred. Due to the automatic nature of integrations Vault Loader is typically used via the API. Learn more about [Vault Loader](https://platform.veevavault.help/en/gr/26597) and the [Loader API](/vault-api/api-reference/26.1/vault-loader).

## Configuration Migration Packages {#configuration-migration-packages}

Configuration migration packages allow the migration of configuration changes or test data between two Vaults, by exporting configuration data in a Vault Package File (VPK) and then importing it into another Vault. This feature is particularly useful when your organization needs to configure and test in a sandbox Vault, and then move those configurations into a production Vault. Learn more about [Configuration Migration Packages](https://platform.veevavault.help/en/gr/36919).

## Web Tabs and Web Sections {#web-tabs-and-web-sections}

For integrations where there is a need to embed content from an external website or service within the Vault user interface this can be done by configuring Web Tabs, which are a type of [Custom Tab](https://platform.veevavault.help/en/gr/23516). The page associated with the specified URL is displayed in an iframe within a Tab within the Vault UI. For further context it’s also possible to pass details of the Vault, session, and user parameters, that can in turn be used to make [Vault API](#API) calls back to Vault, to retrieve further context-sensitive business data. For an example of using Web Tabs and passing the Vault session ID, see [Vault Kanban Board Demo](https://github.com/veeva/Vault-Kanban-Board).

[Web Sections](/mdl/documentation/guides/creating-web-sections) also provide the ability to embed content from external websites, but in this case from within Object Record Sections within [Object Type Page Layouts](https://platform.veevavault.help/en/gr/26387).

<SiteConditional sites="commercial,medical" id="integrations-external-doc-viewer"></SiteConditional>

## Web Actions {#web-actions}

Admins may add web actions to the document or object record Actions menu. Web actions can invoke context-sensitive business logic or integrate with external systems and web sites. Learn more about [web actions](https://platform.veevavault.help/en/gr/21270).

## Web Jobs {#web-jobs}

For integrations where there is a need to call an external URL from within a job without creating code, this can be done by configuring a web job. Learn more about [defining jobs to call external URLs](https://platform.veevavault.help/en/gr/22897#how_to_define_external_url_calljobs).

## Vault Java SDK {#vault-java-sdk}

The Vault Java SDK is a powerful tool in the Vault Platform, allowing developers to extend Vault by implementing custom code such as triggers, actions, jobs, Spark messages and processors to be able to implement SDK integrations. Learn more about [Vault Java SDK](/vault-sdk/).

## Spark Messaging and HTTP Callout {#spark-messaging-and-http-callout}

With the Vault Java SDK, you can build custom Vault SDK integrations to automate business processes across different Vaults or with an external system. Spark messaging allows your Vault to send messages from a Vault extension, and HTTP callout allows you to callback for any data you need. These operations perform asynchronously, allowing performant and seamless integration. Learn more about [SDK integrations](/vault-sdk/sdk-integrations/).

## SAML 2.0 {#saml-20}

When Single Sign-on (SSO) is enabled for a user, Vault does not validate that user’s password. Instead, Vault relies on an external identity provider to authenticate users. Vault [supports SSO](https://platform.veevavault.help/en/gr/13982#supported_sso_types) using Security Assertion Markup Language (SAML) 2.0 for both Service Provider (SP) and Identity Provider (IdP) initiated profiles. Learn more about [Configuring SAML Profiles](https://platform.veevavault.help/en/gr/43346).

## OAuth 2.0 / OpenID Connect {#oauth-20--openid-connect}

Client applications that authenticate using enterprise authentication servers can authenticate user accounts using an OAuth 2.0 / Open ID Connect access token to obtain a Vault Session ID. To enable this it’s necessary to first [Configure an OAuth 2.0 / OpenID Connect Profile](https://platform.veevavault.help/en/gr/43329) in Vault. The user can then log in using the [OAuth 2.0 / OpenID Connect API](/vault-api/api-reference/26.1/authentication/oauth-20-openid-connect).



---

**Previous:** [Integration Types](/quality/integrations/references/integration-types)  
**Next:** [Integration Best Practices](/quality/integrations/references/integration-best-practices)