Skip to main content
A Data Source is a reusable connection to an external database, data service, or object store. You configure the connection once, and practitioners query it from a Workspace, Job, or app without handling hostnames, ports, or drivers, and write results back to a Domino Dataset. Admins can expose a Data Source to everyone in the deployment. When a practitioner creates a Data Source, they must name the users or organizations that can access it.

Create a Data Source

1

Open the Data Source wizard

Go to Manage Resources > Data Sources, then click Connect to External Data.
2

Configure the connection

Select your Data Source, then enter the configuration details for accessing it. The details vary depending on the Data Source type.
3

Select the credential type

End users cannot access or extract Service Account credentials, nor can they manage user-level permissions on such Data Sources. Domino stores Data Source credentials in the Domino secret store, which is backed by HashiCorp Vault.
OAuth authentication is not supported for Service Accounts. The Data Source itself does not distinguish end users, because the same credentials authenticate every query.
4

Enter and test the credentials

Enter your credentials for Data Source authentication, then click Test Credentials to verify that authentication works, or click Skip for Now to continue.
5

Set access and finish

Select whether Everyone can use this Data Source or just Specific users or organizations, then click Finish Setup.

Authentication methods

Data Sources support multiple authentication methods to meet different security requirements. Which methods are available depends on the Data Source type, and you choose which of them your organization can use. Enable OAuth or IAM for more secure connections than credentials, enable several methods at once when different teams need different ones, and require certificate authentication where enterprise security standards demand it. Enabling a method takes one configuration record, and requires the SysAdmin role.
1

Open the configuration records

In the Admin panel, go to Platform settings > Configuration records, then click Add Record.
2

Add the authentication configuration

Add a key for your Data Source type. The Data Source authentication section of the configuration records reference lists the key for each type.Enter the value as comma-separated authentication types, for example certauth,basic,oauth for PostgreSQL with certificate support, or basic for IBM DB2 with basic authentication only.
The first value becomes the default authentication method for all users. Put your preferred method first.
Click Create.
3

Complete any additional setup

OAuth and IAM need configuration outside this page. See IAM authentication for AWS Data Sources and OAuth for Snowflake.
To remove a method, go to Platform settings > Configuration records, click the edit icon next to the relevant configuration record, remove the method from the list of values, and click Save.

IAM authentication for AWS Data Sources

You can enable users to create Data Sources that authenticate with AWS Identity and Access Management (IAM) for these Data Source types:
IAM-authenticated connections can be used only to execute Jobs and Workspaces. Other execution types, such as scheduled Jobs and Domino endpoints, require basic authentication.
To set up IAM authentication:
  1. Configure single sign-on (SSO).
  2. Configure AWS credential propagation.
  3. Add IAM to the available authentication options for one or more of the supported Data Source types. In the Admin application, go to Platform settings > Configuration records and click Add Record.
  4. Enter one of the following keys with the value AWSIAMRole or Basic, AWSIAMRole:
    • com.cerebro.domino.datasource.MySQLConfig.enabledAuthTypes
    • com.cerebro.domino.datasource.PostgreSQLConfig.enabledAuthTypes
    • com.cerebro.domino.datasource.RedshiftConfig.enabledAuthTypes
    • com.cerebro.domino.datasource.S3Config.enabledAuthTypes
    See the configuration reference for details about the supported configurations.
  5. Click Create.

OAuth for Snowflake

OAuth-backed Snowflake Data Sources authenticate and query Snowflake with a JSON Web Token (JWT). Once it is set up, users can select OAuth when they create a Snowflake Data Source. When an OAuth-configured Snowflake Data Source is queried in a Domino execution, the dominodatalab-data library uses the Domino JWT token to authenticate against the underlying Snowflake database. No extra user action is needed. Setup has two halves. First, an External OAuth Security Integration in your Snowflake account dictates what values Snowflake expects the token to carry. Second, Keycloak mappers propagate those values into the Domino JWT access token.
OAuth is not supported for Service Accounts. OAuth-authenticated connections can be used for any execution type except Domino endpoints.
Because authentication depends on the Domino JWT token propagating the correct values in the context of an execution, you cannot verify successful authentication when you create a Data Source. The green checkmark that appears when you create a Data Source does not guarantee that authentication succeeds. To confirm successful value propagation in a Domino JWT token, use the dominodatalab-data library to query data from an OAuth Data Source in a Domino execution, such as a Workspace.

Configure the Snowflake security integration

To set up an External OAuth Security Integration in Snowflake, see the Snowflake external OAuth documentation. Get familiar with the Snowflake terminology and the values that Snowflake needs in the token; correct spelling of the values is critical. The following is a sample command to create a base security integration that allows all account roles to authenticate. Use it as a starting point for a configuration that fits your security needs.
Find the value for these keys:
  • external_oauth_issuer in Keycloak’s Realm Settings > OpenID Endpoint Configuration > Issuer
  • external_oauth_rsa_public_key in Keycloak’s Realm Settings > Keys > Public Key from RS256
The configured security integration (desc security integration <external_oauth_name>) should look similar to the following:
Snowflake security integration description output showing the configured external OAuth keys.

Configure Keycloak

Keycloak passes the values that the Snowflake security integration expects by way of mappers in the domino-play client. Each mapper is set to add to access token, which creates a key-value entry in the Domino JWT token keyed on Token Claim Name. The value depends on the mapper type. A hardcoded-claim mapper takes a value that propagates equally to all users. A user-attribute mapper takes a User Attribute name, reads that attribute from each Keycloak user, and propagates its value, so you can vary the token per user.
1

Open the Keycloak client scopes

Go to the Keycloak admin console at https://<domino-domain>/auth/, then click Domino Realm > Clients.
Keycloak client dashboard listing the realm clients.
From the lookup list, click domino-play, then click Client scopes > domino-play-dedicated.
Keycloak client scopes tab for the domino-play client.
Keycloak Mappers tab for the domino-play-dedicated client scope.
2

Add the mappers

Click Mappers > Add mapper > By configuration, choose a mapper from the listed mappings, and configure it.
Keycloak Add mapper by configuration dialog.
Keycloak mapper configuration form.
The definitions in Keycloak mapper reference match the base Snowflake security integration above. For the scp claim, use the prepopulated Scope Claim Aggregator mapper. You can write your mappers differently, as long as they conform to the requirements of the Snowflake security integration.Keycloak propagates the values the mappers produce into the JWT token that authenticates against the External OAuth Security Integration you created in Snowflake.
3

Add the user attributes

If you added a mapper that requires a user attribute, add that attribute at Users > View All Users > <user ID> > Attributes. You can automate this to create further roles and mappers.
Keycloak user attributes tab showing a custom attribute.
4

Enable OAuth for Snowflake in Domino

Go to Platform settings > Configuration records, click Advanced settings, then click Add Record. Enter the com.cerebro.domino.datasource.SnowflakeConfig.enabledAuthTypes key with the comma-separated values OAuth and KeyPair. Order matters: the first value becomes the default authentication method for all users. Click Create.

Keycloak mapper reference

Keycloak mapper configuration for the scp claim.
Keycloak mapper configuration for the issuer claim.
Keycloak mapper configuration for the audience claim.
Keycloak mapper configuration for the user mapping claim.
This mapper pairs with the security integration above, which sets external_oauth_token_user_mapping_claim='preferred_username_snowflake' and so instructs Snowflake to read the value of the preferred_username_snowflake key.
Keycloak mapper configuration for the preferred username claim.
Keycloak mapper configuration for the RSA public key claim.
Keycloak mapper configuration for the Snowflake user mapping attribute claim.

Test the OAuth configuration

The user attributes SCP, external_oauth_audience_list, and preferred_username_snowflake must be present in the Domino user JWT token. There are two ways to inject them:
  • Locally in Keycloak, for quick testing. Add the user attributes manually under the Keycloak user.
  • Through SAML attributes, for enterprise-level implementations. Passing the user attributes from the identity provider as SAML attributes is the recommended approach. When SAML attributes include the user attributes, additional mappers extract them and make them available to the domino-play client.
Configure three identity-provider user attribute mappers:
  1. Go to Domino realm > Identity providers > Identity provider > Mappers.
  2. For Mapper type, select Attribute importer.
  3. In Attribute Name and User Attribute Name, add the user attributes to pass to the domino-play client, for example SCP, external_oauth_audience_list, and preferred_username_snowflake.
Keycloak identity provider mapper configured as an attribute importer.
To confirm that OAuth works with your Snowflake Data Source, register a Snowflake Data Source, select OAuth as the authentication type, open an execution, and query data from the registered Data Source.
To get the token itself, make a GET request to the Domino API proxy by running curl $DOMINO_API_PROXY/access-token in an execution, such as a Workspace terminal or a Job script. Paste the token into jwt.io to see which values Keycloak propagated into the Domino JWT token.

Starburst-powered Data Sources

Starburst-powered Data Sources cover MongoDB, Palantir Foundry, tabular S3 with AWS Glue, Starburst JDBC, and Teradata. Only an admin can create them, because each one needs a restart of the Starburst cluster in Domino. For additional support in working with Starburst, contact your Domino representative.

Enable Starburst

To enable Starburst-powered Data Sources in your Domino instance, add the following block to domino.yaml and agent.yaml.

Create a Starburst-powered Data Source

Every type starts at Manage Resources > Data Sources > Connect to External Data and ends with a cluster restart. Expand the type you are configuring for the fields it asks for.
Create a Data Source for MongoDB that your Domino users can access.Prerequisites:
  • Starburst is enabled in the deployment. See Enable Starburst.
  • Network connectivity between MongoDB and your Domino deployment.
  • Domino has enabled this feature. If you do not see this Data Source type in your deployment, contact your Customer Success Manager.
To create the Data Source:
  1. Go to Manage Resources > Data Sources.
  2. Click Connect to External Data.
  3. In the New Data Source window, select MongoDB.
  4. Enter your MongoDB hostname or IP address.
  5. Optional: Enter the Port.
  6. Enter a Name and Description for this Data Source.
  7. Click Next twice.
  8. Enter your MongoDB credentials.
  9. Click Next.
  10. Select whether Everyone can access this Data Source or just Specific users or organizations.
  11. Click Finish Setup. Domino alerts you to restart the cluster.
  12. Click Click here to trigger a restart, then click Restart Cluster to confirm. The restart takes approximately 5 to 10 minutes. When it completes, Domino users can use the MongoDB Data Source.
Create a Data Source for Palantir Foundry that your Domino users can access.Prerequisites:
  • Starburst is enabled in the deployment. See Enable Starburst.
  • Network connectivity between Palantir and your Domino deployment.
  • Domino has enabled this feature. If you do not see this Data Source type in your deployment, contact your Customer Success Manager.
To create the Data Source:
  1. Go to Manage Resources > Data Sources.
  2. Click Connect to External Data.
  3. In the New Data Source window, select Palantir.
  4. Enter a Name, Description, and the Palantir hostname or IP address. Optionally, enter the Port.
  5. Select Individual or Service Account as the credential type.
  6. Select Client Credentials or OAuth Token for authenticating to Palantir.
    Individual credentials can only use OAuth Tokens to authenticate.
  7. Enter your Palantir credentials.
  8. Select whether Everyone can access this Data Source or just Specific users or organizations.
  9. Domino alerts you to restart the cluster. Click Click here to trigger a restart > Restart Cluster. The restart takes approximately 5 to 10 minutes. When it completes, Domino users can use the Palantir Data Source.
Get Palantir client credentials. To connect with a Service Account, retrieve your Palantir client ID and client secret:
  1. Go to your Palantir instance.
  2. Go to Control Panel > Third-party applications. An existing Domino integration appears here.
  3. Next to the Domino integration, select Actions > Manage application to find your client ID.
If no Domino integration exists, register Domino as a third-party application. Choose Confidential client as the client type and save the client secret, because Palantir does not show it again. If the integration already exists and you cannot see the client secret, contact your Palantir administrator.Generate a Palantir OAuth token. To connect with an OAuth token, generate a new Palantir token.
Only Service Accounts are supported for tabular S3 with AWS Glue.Prerequisites:
  • Starburst is enabled in the deployment. See Enable Starburst.
  • Network connectivity between S3 and your Domino deployment.
  • Domino has enabled this feature. If you do not see this Data Source type in your deployment, contact your Customer Success Manager.
To create the Data Source:
  1. Go to Manage Resources > Data Sources.
  2. Click Connect to External Data.
  3. In the New Data Source window, select Tabular S3 with AWS Glue.
  4. Enter your S3 account ID, database, and region.
  5. Enter a name for this Data Source.
  6. Click Next. In the Credential Type screen, Service Account is preselected. Individual accounts are not supported for this Data Source type.
  7. Click Next.
  8. Enter your S3 service account access key ID and secret access key.
  9. Click Next.
  10. Select whether Everyone can access this Data Source or just Specific users or organizations.
  11. Click Finish Setup. Domino alerts you to restart the cluster.
  12. Click Click here to trigger a restart, then click Restart Cluster to confirm. The restart takes approximately 5 to 10 minutes.
Starburst JDBC extends Domino Data Sources to any Starburst-JDBC data entity. IBM DB2, IBM Netezza, and SAP HANA are enabled by default.Prerequisites:
  • Starburst is enabled in the deployment. See Enable Starburst.
  • Network connectivity between the data platform and your Domino deployment.
To create the Data Source:
  1. Go to Manage Resources > Data Sources.
  2. Click Connect to External Data.
  3. Select the data entity you want to connect to under Powered by Starburst JDBC.
  4. Enter the connection parameters.
  5. Enter the Data Source Name and, optionally, a Description that explains the purpose of the Data Source to others.
  6. Select the credential type.
  7. Optionally, enter your credentials. You can enter these later.
  8. Click Next.
  9. Select whether Everyone can access this Data Source or just Specific users or organizations.
  10. Click Finish Setup. Domino alerts you to restart the cluster and provides a link to trigger it.
To connect to a data entity that is not enabled by default, see Add Starburst JDBC data entities.
Create a Data Source for Teradata that your Domino users can access.Prerequisites:
  • Starburst is enabled in the deployment. See Enable Starburst.
  • Network connectivity between Teradata and your Domino deployment.
  • Domino has enabled this feature. If you do not see this Data Source type in your deployment, contact your Customer Success Manager.
To create the Data Source:
  1. Go to Manage Resources > Data Sources.
  2. Click Connect to External Data.
  3. In the New Data Source window, select Teradata.
  4. Enter your Teradata hostname or IP address.
  5. Enter a name for this Data Source.
  6. Click Next.
  7. Select the credential type.
  8. Optionally, enter your Teradata credentials. You can enter these later.
  9. Click Next.
  10. Select whether Everyone can access this Data Source or just Specific users or organizations.
  11. Click Finish Setup. Domino alerts you to restart the cluster.
  12. Click Click here to trigger a restart, then click Restart Cluster to confirm. The restart takes approximately 5 to 10 minutes.
Users must specify the database name in their queries, as in this example where td_demo is the database name and yellow_cab is the table name:

Add Starburst JDBC data entities

Not every JDBC-powered data entity is available by default. You can enable ClickHouse, Druid, Greenplum, MariaDB, Ignite, SingleStore (MemSQL), Synapse, Vertica, and the generic JDBC capability that Starburst provides.
You may need to contact your Customer Success engineer for assistance to add some additional JDBC data entities.
  1. Go to Admin > Platform settings > Configuration records.
  2. Add or edit the com.cerebro.domino.datasource.starburstJdbc.enabledConnectors config option.
  3. Add a comma-separated list of data-entity names as the value:
  4. Restart the Domino services to apply the new setting, following the prompt on the admin page.
The newly added data entity then appears in the drop-down list.

Restart the Starburst cluster

Restart the Starburst cluster in Domino after actions including, but not limited to:
  • Creating a Data Source
  • Updating a Data Source configuration
  • Updating credentials
Domino notifies you to restart your Starburst cluster and provides a link to trigger the restart. The restart takes approximately 5 to 10 minutes and disrupts executions that interact with Starburst-powered Data Sources, so plan it for a window when none are running.
Domino prompt to restart the Starburst cluster after a Data Source change.

Starburst limitations

  • Your Domino representative must enable this feature. If you do not see these Data Source types in your deployment, contact your Customer Success engineer.
  • In a hybrid deployment, Starburst-powered Data Sources are only available from the local Data Plane.

Data Plane accessibility

Data Planes in a Domino Nexus hybrid deployment have caveats around which of them can reach a Data Source. You can disable adding a Data Source in remote Workspaces by setting the EnableAddingDataSourcesInRemoteWorkspaces feature flag to false.