# Palantir-provided drivers for JDBC sources
You can connect your Foundry enrollment to various external sources using a JDBC driver that appears as Foundry sources in Data Connection. These sources are wrappers around JDBC drivers that allow for customization, and they come with recommended and required properties and links to official documentation.
If you want to upload your own JDBC driver to Foundry, review the documentation on configuring [a custom JDBC driver](../../available-connectors/custom-jdbc-sources/index.md)
Use [syncs](#configure-foundry-provided-driver-syncs) to read data from external systems into Foundry. Some CData connectors also support [table exports](#export-data-with-cdata-connectors) to write rows from Foundry datasets to external systems.
## Setup
1. Open the Data Connection application and select **+New Source** in the upper right corner of the screen.
2. Find your specific source from the listed options. [View a complete list of Foundry-provided drivers.](#available-drivers)
3. Choose to run the source capabilities on a [Foundry worker](../../data-connection/core-concepts/index.md#foundry-worker) or on an [agent worker](../../data-connection/core-concepts/index.md#agent-worker).
4. Select **Documentation ↗** to review official documentation for the driver source.

5. Follow the additional configuration prompts to continue the setup of your connector using the information in the sections below.
## Configuration options
|Parameter |Required? |Description |
|--- |--- |--- |
|`URL` |Yes |The JDBC URL that is used by the driver. Comes pre-populated with a template that may need to be modified to ensure correct behavior. Refer to the source system's documentation for the JDBC URL format, and review the [Java documentation ↗](https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html) for additional information. |
|`JDBC properties` |Yes |Lists out all required and recommended properties that the driver needs. Hovering over a required or recommended property will allow you to navigate to the official documentation. You can add any additional properties by choosing the **+ Add property** button. |
| | | |
### JDBC properties
You can add [properties ↗](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Properties.html) to your JDBC connection to configure behavior. Certain properties are mandatory for a particular driver. These mandatory properties are populated by default and must be set before you can save your source. You can also view recommended properties that you can add by selecting **+Add property** and viewing the **Recommended** section.
Hover over the name of a `Required` or `Recommended` property to visit the official documentation page for the selected driver.

## Configure Foundry-provided driver syncs
### SQL queries
A single SQL query can be executed per sync. This query should produce a table of data as an output, which will be saved to the output dataset in Foundry.
Exceptionally, this query can invoke stored procedures that produce data as a result. [Read below](#stored-procedures) for more details.

## Configuration options for CData-provided drivers
Many of the Foundry-provided drivers are developed by [CData ↗](https://www.cdata.com/drivers/). CData provides full documentation for each driver including, in-depth instructions for generating credentials on the source system. You can navigate to these instructions from the documentation page for any CData driver.
The sections below contain information about CData-specific configuration options that can help you successfully connect to external systems.
### Export data with CData connectors
Use [table exports](../../data-connection/export-overview/index.md#table-exports) to add rows from a Foundry dataset to an existing external table. Table export support varies by connector; check the connector's documentation for availability.
CData table exports support only [export modes without truncation](../../data-connection/export-overview/index.md#table-export-modes) and do not support updates, deletes, or upserts by key. Before exporting production data, review the [table export requirements and limitations](../../data-connection/export-overview/index.md#special-considerations-for-table-exports) and test one row against a non-production target.
For a Foundry-worker source, use a validated, connector-specific [code-based connectivity option](../../data-connection/core-concepts/index.md#use-in-code) for more complex operations. Follow the connector's documentation for supported operations and authentication.
### Automatically perform test connection on source exploration
By default, CData drivers defer performing the connection until actual queries are made. This can result in mistaken assumptions around source exploration, since the display of static metadata tables stored in the driver may lead you to think that exploration was successful, when in reality the connection to the underlying system was not successful due to missing credentials, missing egress policies, or other issues.
You can force the driver to perform a no-operation test connection, even when only exploring the source, by setting the **ConnectOnOpen** JDBC property to `true`. This is recommended to ensure that all connection issues are uncovered when exploring the source.
:::callout{theme="warning"}
`ConnectOnOpen: true` can not be used alongside [OAuth 2.0 authentication](#oauth-20-authentication).
`ConnectOnOpen: true` can be the reason the connection fails when the credentials used to connect are very scoped down and are not allowed to perform the no-operation command used for the test connection.
:::

### Certificate authentication
Many CData drivers support certificate authentication, in particular for Azure-based systems.
To connect using a certificate, you must define the following JDBC properties in addition to the connection-specific configuration requirements:
* **AuthScheme:** `AzureServicePrincipalCert`
* **OAuthJWTCertType:** `PFXBLOB`
* **OAuthJWTCert:** `base64-encoded_cert/pfx/pem_file_content`
* (Optional) **OAuthJWTCertPassword:** `password_for_the_cert/pfx/pem_file`
To transform the certificate file into Base64 format on a Windows machine, use the following command: `[Convert]::ToBase64String([IO.File]::ReadAllBytes("\path\to\file.pfx"))`

### Stored procedures
Some CData drivers connecting to file-based source systems like [Amazon Marketplace](../../available-connectors/amazon-marketplace/index.md) or [Microsoft OneDrive](../../available-connectors/microsoft-onedrive/index.md) rely on the ability to invoke stored procedures to ingest data.

Running the stored procedure will produce a table where the file content is stored as a Base64 encoded string. You can decode it in a downstream data transformation, for example in Pipeline Builder using a [Base64 decode](../../pb-functions-expression/base64DecodeV1/index.md) board.
### OAuth 2.0 authentication
Some CData drivers support [OAuth 2.0 ↗](https://oauth.net/2/) authorization code grant flow. This enables secure connections to external systems by allowing users to authenticate with their own credentials and perform actions on their behalf. The [list of available drivers](#available-drivers) details which ones support OAuth 2.0 authentication.
:::callout{theme="warning"}
OAuth 2.0 authentication is only supported when running the source on a [Foundry worker](../../data-connection/core-concepts/index.md#foundry-worker). Sources running on an [agent worker](../../data-connection/core-concepts/index.md#agent-worker) do not support OAuth 2.0 authentication.
:::
To use OAuth 2.0 authentication:
1. Add the **CallbackUrl** JDBC property to the source configuration. The property value will auto-fill with a URL of the form `https:///workspace/oauth2-clients/callback`.
2. In the external system, register a custom OAuth application and provide the callback URL.
* The specifics of how to register a custom OAuth application will depend on each external system. For [GitHub ↗](https://github.com/), for example, navigate to **Settings > Developer Settings > OAuth Apps**. Then select **New OAuth App**.
3. Copy the generated **OAuth client id** and **OAuth client secret** and paste them in your source configuration JDBC properties.

4. Once the configuration is saved, navigate to the source overview page. Select **Authorize** in the top banner labeled **Authorization required to start using this source** to start the OAuth flow.

You can renew or revoke authorization from the right-side panel on the source overview page.

:::callout{theme="warning"}
Starting, renewing, or revoking the OAuth flow requires the `Owner` role on the source by default. Users with only `Viewer` or `Editor` will see a permission denied error when selecting **Authorize**. If you need to grant these operations without granting full `Owner` permissions, define a custom role that includes the source administration operations.
:::
## Available drivers
| Driver | Supports OAuth 2.0 Authentication |
|---|---|
| [Act! CRM](../../available-connectors/act!-crm/index.md) | FALSE |
| [Act-On](../../available-connectors/act-on/index.md) | TRUE |
| [ActiveCampaign](../../available-connectors/activecampaign/index.md) | FALSE |
| [Acumatica](../../available-connectors/acumatica/index.md) | FALSE |
| [Adobe Analytics](../../available-connectors/adobe-analytics/index.md) | TRUE |
| [Adobe Commerce](../../available-connectors/adobe-commerce/index.md) | FALSE |
| [ADP](../../available-connectors/adp/index.md) | TRUE |
| [Airtable](../../available-connectors/airtable/index.md) | TRUE |
| [AlloyDB](../../available-connectors/alloydb/index.md) | FALSE |
| [Amazon DynamoDB](../../available-connectors/amazon-dynamodb/index.md) | FALSE |
| [Amazon Marketplace](../../available-connectors/amazon-marketplace/index.md) | TRUE |
| [Apache CouchDB](../../available-connectors/apache-couchdb/index.md) | FALSE |
| [Apache HBase](../../available-connectors/apache-hbase/index.md) | FALSE |
| [Apache Hive](../../available-connectors/apache-hive/index.md) | FALSE |
| [Apache Phoenix](../../available-connectors/apache-phoenix/index.md) | FALSE |
| [Authorize.Net](../../available-connectors/authorize-net/index.md) | FALSE |
| [Avalara](../../available-connectors/avalara/index.md) | FALSE |
| [Azure Active Directory](../../available-connectors/azure-active-directory/index.md) | FALSE |
| [Azure Cosmos DB](../../available-connectors/azure-cosmos-db/index.md) | TRUE |
| [Azure Data Catalog](../../available-connectors/azure-data-catalog/index.md) | TRUE |
| [Azure DevOps](../../available-connectors/azure-devops/index.md) | TRUE |
| [Azure Synapse](../../available-connectors/azure-synapse/index.md) | TRUE |
| [Azure Table Storage](../../available-connectors/azure-table-storage/index.md) | TRUE |
| [Basecamp](../../available-connectors/basecamp/index.md) | TRUE |
| [BigCommerce](../../available-connectors/bigcommerce/index.md) | TRUE |
| [Blackbaud Raisers Edge NXT](../../available-connectors/blackbaud-raisers-edge-nxt/index.md) | TRUE |
| [Bugzilla](../../available-connectors/bugzilla/index.md) | FALSE |
| [Bullhorn CRM](../../available-connectors/bullhorn-crm/index.md) | TRUE |
| [Cassandra](../../available-connectors/cassandra/index.md) | FALSE |
| [Certinia](../../available-connectors/certinia/index.md) | TRUE |
| [Cloudant](../../available-connectors/cloudant/index.md) | TRUE |
| [CockroachDB](../../available-connectors/cockroachdb/index.md) | FALSE |
| [Confluence](../../available-connectors/confluence/index.md) | TRUE |
| [Couchbase](../../available-connectors/couchbase/index.md) | FALSE |
| [Databricks](../../available-connectors/databricks/index.md) | FALSE |
| [DocuSign](../../available-connectors/docusign/index.md) | TRUE |
| [Domino](../../available-connectors/domino/index.md) | TRUE |
| [eBay](../../available-connectors/ebay/index.md) | TRUE |
| [eBay Analytics](../../available-connectors/ebay-analytics/index.md) | TRUE |
| [EnterpriseDB](../../available-connectors/enterprisedb/index.md) | FALSE |
| [Epicor Kinetic](../../available-connectors/epicor-kinetic/index.md) | TRUE |
| [Exact Online](../../available-connectors/exact-online/index.md) | TRUE |
| [Facebook](../../available-connectors/facebook/index.md) | TRUE |
| [Facebook Ads](../../available-connectors/facebook-ads/index.md) | TRUE |
| [FreshBooks](../../available-connectors/freshbooks/index.md) | TRUE |
| [Freshdesk](../../available-connectors/freshdesk/index.md) | FALSE |
| [GitHub](../../available-connectors/github/index.md) | TRUE |
| [Gmail](../../available-connectors/gmail/index.md) | TRUE |
| Google Ad Manager | FALSE |
| Google Ads | FALSE |
| Google Analytics | FALSE |
| Google Calendar | FALSE |
| [Google Campaign Manager](../../available-connectors/google-campaign-manager/index.md) | TRUE |
| [Google Contacts](../../available-connectors/google-contacts/index.md) | TRUE |
| [Google Data Catalog](../../available-connectors/google-data-catalog/index.md) | TRUE |
| [Google Directory](../../available-connectors/google-directory/index.md) | TRUE |
| [Google Drive](../../available-connectors/google-drive/index.md) | TRUE |
| [Google Search](../../available-connectors/google-search/index.md) | FALSE |
| [Google Spanner](../../available-connectors/google-spanner/index.md) | TRUE |
| [GraphQL](../../available-connectors/graphql/index.md) | TRUE |
| [Greenplum](../../available-connectors/greenplum/index.md) | FALSE |
| [Highrise](../../available-connectors/highrise/index.md) | TRUE |
| [IBM Cloud Data Engine](../../available-connectors/ibm-cloud-data-engine/index.md) | TRUE |
| [IBM Cloud Object Storage](../../available-connectors/ibm-cloud-object-storage/index.md) | TRUE |
| [Instagram](../../available-connectors/instagram/index.md) | TRUE |
| [Jira Service Management](../../available-connectors/jira-service-management/index.md) | TRUE |
| [Kintone](../../available-connectors/kintone/index.md) | FALSE |
| [LDAP](../../available-connectors/ldap/index.md) | FALSE |
| [LinkedIn](../../available-connectors/linkedin/index.md) | TRUE |
| [LinkedIn Marketing Solutions](../../available-connectors/linkedin-marketing-solutions/index.md) | TRUE |
| [Mailchimp](../../available-connectors/mailchimp/index.md) | TRUE |
| [Marketo](../../available-connectors/marketo/index.md) | TRUE |
| [MarkLogic](../../available-connectors/marklogic/index.md) | FALSE |
| [Microsoft Access](../../available-connectors/microsoft-access/index.md) | FALSE |
| [Microsoft Ads](../../available-connectors/microsoft-ads/index.md) | TRUE |
| [Microsoft Bing](../../available-connectors/microsoft-bing/index.md) | FALSE |
| [Microsoft Dataverse](../../available-connectors/microsoft-dataverse/index.md) | FALSE |
| [Microsoft Dynamics 365](../../available-connectors/microsoft-dynamics-365/index.md) | TRUE |
| [Microsoft Dynamics 365 Business Central](../../available-connectors/microsoft-dynamics-365-business-central/index.md) | TRUE |
| [Microsoft Dynamics CRM](../../available-connectors/microsoft-dynamics-crm/index.md) | TRUE |
| [Microsoft Dynamics GP](../../available-connectors/microsoft-dynamics-gp/index.md) | FALSE |
| [Microsoft Dynamics NAV](../../available-connectors/microsoft-dynamics-nav/index.md) | FALSE |
| [Microsoft Excel](../../available-connectors/microsoft-excel/index.md) | TRUE |
| [Microsoft Excel Online](../../available-connectors/microsoft-excel-online/index.md) | TRUE |
| [Microsoft Exchange](../../available-connectors/microsoft-exchange/index.md) | TRUE |
| [Microsoft Office 365](../../available-connectors/microsoft-office-365/index.md) | TRUE |
| [Microsoft OneDrive](../../available-connectors/microsoft-onedrive/index.md) | TRUE |
| [Microsoft OneNote](../../available-connectors/microsoft-onenote/index.md) | TRUE |
| [Microsoft Planner](../../available-connectors/microsoft-planner/index.md) | TRUE |
| [Microsoft Power BI® XMLA](../../available-connectors/microsoft-power-bi-xmla/index.md) | TRUE |
| [Microsoft Project](../../available-connectors/microsoft-project/index.md) | TRUE |
| [Microsoft SharePoint](../../available-connectors/microsoft-sharepoint/index.md) | TRUE |
| [Microsoft SharePoint Excel](../../available-connectors/microsoft-sharepoint-excel/index.md) | FALSE |
| [Microsoft SQL Server](../../available-connectors/microsoft-sql-server/index.md) | FALSE |
| [Microsoft SQL Server Analysis Services](../../available-connectors/microsoft-sql-server-analysis-services/index.md) | FALSE |
| [Microsoft Teams](../../available-connectors/microsoft-teams/index.md) | TRUE |
| [Monday](../../available-connectors/monday/index.md) | TRUE |
| [MYOB](../../available-connectors/myob/index.md) | TRUE |
| [OData](../../available-connectors/odata/index.md) | TRUE |
| [Odoo](../../available-connectors/odoo/index.md) | FALSE |
| [Oracle](../../available-connectors/oracle/index.md) | FALSE |
| [Oracle Eloqua](../../available-connectors/oracle-eloqua/index.md) | TRUE |
| [Oracle Fusion Cloud Financials](../../available-connectors/oracle-fusion-cloud-financials/index.md) | FALSE |
| [Oracle Fusion Cloud HCM](../../available-connectors/oracle-fusion-cloud-hcm/index.md) | FALSE |
| [Oracle Fusion Cloud SCM](../../available-connectors/oracle-fusion-cloud-scm/index.md) | FALSE |
| [Oracle Sales](../../available-connectors/oracle-sales/index.md) | FALSE |
| [Oracle Service Cloud](../../available-connectors/oracle-service-cloud/index.md) | FALSE |
| [Outreach](../../available-connectors/outreach/index.md) | TRUE |
| [Paylocity](../../available-connectors/paylocity/index.md) | TRUE |
| [PayPal](../../available-connectors/paypal/index.md) | TRUE |
| [Pinterest](../../available-connectors/pinterest/index.md) | TRUE |
| [Pipedrive](../../available-connectors/pipedrive/index.md) | TRUE |
| [Presto](../../available-connectors/presto/index.md) | FALSE |
| [Quickbase](../../available-connectors/quickbase/index.md) | FALSE |
| [QuickBooks Desktop](../../available-connectors/quickbooks-desktop/index.md) | FALSE |
| [QuickBooks Online](../../available-connectors/quickbooks-online/index.md) | TRUE |
| [QuickBooks POS](../../available-connectors/quickbooks-pos/index.md) | FALSE |
| [Raisers Edge NXT](../../available-connectors/raisers-edge-nxt/index.md) | TRUE |
| [Reckon](../../available-connectors/reckon/index.md) | FALSE |
| [Reckon Accounts Hosted](../../available-connectors/reckon-accounts-hosted/index.md) | TRUE |
| [Redis](../../available-connectors/redis/index.md) | FALSE |
| Redshift | FALSE |
| [RSS](../../available-connectors/rss/index.md) | FALSE |
| [Sage 200](../../available-connectors/sage-200/index.md) | TRUE |
| [Sage 300](../../available-connectors/sage-300/index.md) | FALSE |
| [Sage 50 UK](../../available-connectors/sage-50-uk/index.md) | FALSE |
| [Sage Business Cloud Accounting](../../available-connectors/sage-business-cloud-accounting/index.md) | TRUE |
| [Salesforce Marketing Cloud](../../available-connectors/salesforce-marketing-cloud/index.md) | TRUE |
| [Salesforce Marketing Cloud Account Engagement](../../available-connectors/salesforce-marketing-cloud-account-engagement/index.md) | TRUE |
| [Salesloft](../../available-connectors/salesloft/index.md) | TRUE |
| [SAP Ariba Procurement](../../available-connectors/sap-ariba-procurement/index.md) | FALSE |
| [SAP Business One](../../available-connectors/sap-business-one/index.md) | FALSE |
| [SAP BusinessObjects BI](../../available-connectors/sap-businessobjects-bi/index.md) | FALSE |
| [SAP ByDesign](../../available-connectors/sap-bydesign/index.md) | FALSE |
| [SAP Cloud for Customer](../../available-connectors/sap-cloud-for-customer/index.md) | TRUE |
| [SAP Concur](../../available-connectors/sap-concur/index.md) | TRUE |
| [SAP Fieldglass](../../available-connectors/sap-fieldglass/index.md) | TRUE |
| [SAP HANA XSA](../../available-connectors/sap-hana-xsa/index.md) | TRUE |
| [SAP SuccessFactors](../../available-connectors/sap-successfactors/index.md) | TRUE |
| [SAS Data Sets](../../available-connectors/sas-data-sets/index.md) | TRUE |
| [SAS Xpt](../../available-connectors/sas-xpt/index.md) | TRUE |
| [SendGrid](../../available-connectors/sendgrid/index.md) | FALSE |
| ServiceNow | FALSE |
| [ShipStation](../../available-connectors/shipstation/index.md) | FALSE |
| [Shopify](../../available-connectors/shopify/index.md) | TRUE |
| [SingleStore](../../available-connectors/singlestore/index.md) | TRUE |
| [Slack](../../available-connectors/slack/index.md) | FALSE |
| [Smartsheet](../../available-connectors/smartsheet/index.md) | TRUE |
| [Snapchat Ads](../../available-connectors/snapchat-ads/index.md) | TRUE |
| [Snowflake](../../available-connectors/snowflake/index.md) | FALSE |
| [Spark SQL](../../available-connectors/spark-sql/index.md) | FALSE |
| [Splunk](../../available-connectors/splunk/index.md) | FALSE |
| [Square](../../available-connectors/square/index.md) | TRUE |
| [Streak](../../available-connectors/streak/index.md) | FALSE |
| [Stripe](../../available-connectors/stripe/index.md) | TRUE |
| [SugarCRM](../../available-connectors/sugarcrm/index.md) | TRUE |
| [SuiteCRM](../../available-connectors/suitecrm/index.md) | TRUE |
| [SurveyMonkey](../../available-connectors/surveymonkey/index.md) | TRUE |
| [SybaseIQ](../../available-connectors/sybaseiq/index.md) | FALSE |
| [Tableau CRM Analytics](../../available-connectors/tableau-crm-analytics/index.md) | TRUE |
| [Tally](../../available-connectors/tally/index.md) | FALSE |
| [TaxJar](../../available-connectors/taxjar/index.md) | FALSE |
| [Trello](../../available-connectors/trello/index.md) | TRUE |
| [TSheets](../../available-connectors/tsheets/index.md) | TRUE |
| [Twilio](../../available-connectors/twilio/index.md) | FALSE |
| [Twitter Ads](../../available-connectors/twitter-ads/index.md) | TRUE |
| [Veeva Vault](../../available-connectors/veeva-vault/index.md) | TRUE |
| [Wave Financial](../../available-connectors/wave-financial/index.md) | TRUE |
| [WooCommerce](../../available-connectors/woocommerce/index.md) | TRUE |
| [WordPress](../../available-connectors/wordpress/index.md) | TRUE |
| Workday | FALSE |
| [xBase](../../available-connectors/xbase/index.md) | FALSE |
| [Xero](../../available-connectors/xero/index.md) | TRUE |
| [Xero WorkflowMax](../../available-connectors/xero-workflowmax/index.md) | TRUE |
| [YouTube Analytics](../../available-connectors/youtube-analytics/index.md) | TRUE |
| [Zendesk](../../available-connectors/zendesk/index.md) | TRUE |
| [Zoho Books](../../available-connectors/zoho-books/index.md) | TRUE |
| [Zoho Creator](../../available-connectors/zoho-creator/index.md) | TRUE |
| [Zoho CRM](../../available-connectors/zoho-crm/index.md) | TRUE |
| [Zoho Inventory](../../available-connectors/zoho-inventory/index.md) | TRUE |
| [Zoho Projects](../../available-connectors/zoho-projects/index.md) | TRUE |
| [Zuora](../../available-connectors/zuora/index.md) | TRUE |