The enhanced onboarding API is a REST API which allows users to register a Databricks Unity Catalog to Immuta with a single set of credentials rather than configuring an integration and creating data sources separately. Then Immuta can manage and enforce access controls on your data through that host. To manage your host, see the Manage a host reference guide.
The following permissions and personas are used in the registration process:
Immuta permission: CREATE_DATA_SOURCE
Databricks privileges for the user registering the host and running the script:
Account or workspace admin
CREATE CATALOG
privilege on the Unity Catalog metastore to create an Immuta-owned catalog and tables
Databricks privileges for the service principal you create:
OWNER
privilege on the Immuta catalog you configure.
OWNER
privilege on catalogs with schemas and tables registered as Immuta data sources so that Immuta can administer Unity Catalog row-level and column-level security controls. This privilege can be applied by granting OWNER
on a catalog to a Databricks group that includes the Immuta service principal to allow for multiple owners. If the OWNER
privilege cannot be applied at the catalog- or schema-level, each table registered as an Immuta data source must individually have the OWNER
privilege granted to the Immuta service principal.
USE CATALOG
and USE SCHEMA
on parent catalogs and schemas of tables registered as Immuta data sources so that the Immuta service principal can interact with those tables.
SELECT
and MODIFY
on all tables registered as Immuta data sources so that the Immuta service principal can grant and revoke access to tables and apply Unity Catalog row- and column-level security controls.
USE CATALOG
on the system
catalog for native query audit.
USE SCHEMA
on the system.access
schema for native query audit.
SELECT
on the following system tables for native query audit:
system.access.audit
system.access.table_lineage
system.access.column_lineage
Unity Catalog metastore created and attached to a Databricks workspace. See the Databricks Unity Catalog reference guide for information on workspaces and catalog isolation support with Immuta.
Unity Catalog enabled on your Databricks cluster or SQL warehouse. All SQL warehouses have Unity Catalog enabled if your workspace is attached to a Unity Catalog metastore. Immuta recommends linking a SQL warehouse to your Immuta tenant rather than a cluster for both performance and availability reasons.
Complete the following steps to register a Databricks Unity Catalog host:
Create a service principal in Databricks Unity Catalog with the proper Databricks privileges for Immuta to use to manage policies in Unity Catalog.
Set up Unity Catalog system tables for native query audit.
Use the /integrations/scripts/create
endpoint to receive a script.
Run the script in Databricks Unity Catalog.
Use the /data/connection
endpoint to finish registering your host in Immuta.
Create a Databricks service principal with the Databricks privileges outlined above and set up with personal access token (PAT) authentication.
The Immuta service principal you create requires specific Databricks privileges to connect to Databricks to create the integration catalog, configure the necessary procedures and functions, and maintain state between Databricks and Immuta.
Enable native query audit by completing these steps in Unity Catalog:
Grant the service principal from step 1 access to the Databricks Unity Catalog system tables. For Databricks Unity Catalog audit to work, Immuta must have, at minimum, the following access.
USE CATALOG
on the system
catalog
USE SCHEMA
on the system.access
schema
SELECT
on the following system tables:
system.access.audit
system.access.table_lineage
system.access.column_lineage
POST
/integrations/scripts/create
Using the example request, update the <placeholder_values>
with your connection details.
Copy the config
object to use later in the setup process.
Run the request.
Copy the returned script and use it in the next step.
Find descriptions of the editable attributes in the table below and of the full payload in the Integration configuration payload reference guide.
Payload parameters
The previous step will return a script. Copy the script and run it in your Databricks Unity Catalog environment as a user with the privileges listed in the requirements section.
The script will use the service principal that will authenticate using the personal access token (PAT) that you specified. Additionally, the script will create the catalog you specified.
POST
/data/connection
Copy the request and update the <placeholder_values>
with your connection details. Note that the connection details here should match the ones used when generating the script. Then submit the request.
Find descriptions of the editable attributes in the table below and of the full payload in the Databricks Unity Catalog host payload table. All values should be included and those you should not edit are noted.
Test run
Opt to test and validate the create connection payload using a dry run:
POST
/data/connection/test
Attribute | Description | Required |
---|---|---|
Attribute | Description | Required |
---|---|---|
Attribute | Description |
---|---|
config.workspaceUrl string
Your Databricks workspace URL.
Yes
config.httpPath string
The HTTP path of your Databricks cluster or SQL warehouse.
Yes
config.token string
The Databricks personal access token for the service principal created in step one for Immuta.
Yes
config.catalog string
The name of the Databricks catalog Immuta will create to store internal entitlements and other user data specific to Immuta. This catalog will only be readable for the Immuta service principal and should not be granted to other users. The catalog name may only contain letters, numbers, and underscores and cannot start with a number.
Yes
config.audit object
This object enables Databricks Unity Catalog query audit.
No
config.audit.enabled boolean
If true
, Databricks Unity Catalog query audit is enabled. Set to true
for the recommended configuration.
No
connectionKey string
A unique name for the host connection.
Yes
connection object
Configuration attributes that should match the values used when getting the script from the integration endpoint.
Yes
connection.technology string
The technology backing the new host.
Yes
connection.hostname string
Your Databricks workspace URL. This is the same as host
and workspaceURL.
Yes
connection.port integer
The port to use when connecting to your Databricks account host. Defaults to 443
.
Yes
connection.httpPath string
The HTTP path of your Databricks cluster or SQL warehouse.
Yes
connection.authenticationType string
The authentication type to connect to the host. Make sure this auth type is the same used when requesting the script.
Yes
connection.token string
The Databricks personal access token for the service principal created in step one for Immuta.
Yes
settings array
Specifications of the host's settings, including active status.
No
settings.isActive boolean
When false
, data objects will be inactive by default when created in Immuta. Set to false
for the recommended configuration.
No
options array
Specification of the host's default behavior for object crawls.
No
options.forceRecursiveCrawl boolean
If false
, only active objects will be crawled. If true
, both active and inactive data objects will be crawled; any child objects from inactive objects will be set as inactive. Set to true
for the recommended configuration.
No
nativeIntegration object
Configuration attributes that should match the values used when getting the script from the integration endpoint.
Yes
nativeIntegration.type string
Same as connection.technology
Yes
nativeIntegration.autoBootstrap boolean
Use the same setting as the script generation.
Yes
nativeIntegration.unityCatalog boolean
Use the same setting as the script generation.
Yes
nativeIntegration.config.authenticationType string
Same as connection.authenticationType
Yes
nativeIntegration.config.token string
Same as connection.token
Yes
nativeIntegration.config.host string
Same as connection.hostname
Yes
nativeIntegration.config.port integer
Same as connection.port
Yes
nativeIntegration.config.catalog string
Use the same setting as the script generation.
Yes
nativeIntegration.config.audit object
Use the same setting as the script generation.
Yes
nativeIntegration.config.workspaceIds array
Use the same setting as the script generation.
No
nativeIntegration.config.enableNativeQueryParsing boolean
Use the same setting as the script generation.
No
nativeIntegration.config.groupPattern object
Use the same setting as the script generation.
No
nativeIntegration.config.jobConfig.workspaceDirectoryPath string
Use the same setting as the script generation.
No
nativeIntegration.config.jobConfig.jobClusterId string
Use the same setting as the script generation.
No
objectPath string
The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the associated connectionKey
.
bulkId string
A bulk ID that can be used to search for the status of background jobs triggered by this request.
The enhanced onboarding API is a REST API which allows users to register a Snowflake to Immuta with a single set of credentials rather than configuring an integration and creating data sources separately. Then Immuta can manage and enforce access controls on your data through that host. To manage your host, see the Manage a host reference guide.
The following permissions and personas are used in the registration process:
Immuta permission: CREATE_DATA_SOURCE
Snowflake permissions for the user registering the host and running the script:
CREATE DATABASE ON ACCOUNT WITH GRANT OPTION
CREATE ROLE ON ACCOUNT WITH GRANT OPTION
CREATE USER ON ACCOUNT WITH GRANT OPTION
MANAGE GRANTS ON ACCOUNT WITH GRANT OPTION
APPLY MASKING POLICY ON ACCOUNT WITH GRANT OPTION
APPLY ROW ACCESS POLICY ON ACCOUNT WITH GRANT OPTION
REFERENCES
on all tables
USAGE
on the schema and database to register data sources
Snowflake permissions for the new Immuta system account that is created:
APPLY MASKING POLICY ON ACCOUNT
APPLY ROW ACCESS POLICY ON ACCOUNT
Additional grants associated with the IMMUTA
database
Complete the following steps to register a Snowflake host:
Use the /integrations/scripts/create
endpoint to receive a script.
Run the script in Snowflake.
Use the /data/connection
endpoint to finish registering your host in Immuta.
POST
/integrations/scripts/create
Using the example request, update the <placeholder_values>
with your connection details.
Copy the config
object to use later in the setup process.
Run the request.
Copy the returned script and use it in the next step.
Find descriptions of the editable attributes in the table below and of the full payload in the Integration configuration payload reference guide.
Payload parameters
Payload parameters
Payload parameters
Payload parameters
Using your generated script, run it in your Snowflake environment as a user with the permissions listed in the requirements section.
The script will create an Immuta system user that will authenticate using the credentials you specified in the script generation. This new system user will have the permissions listed above. Additionally, the script will create the database you specified in the earlier step.
POST
/data/connection
Using the tabs below, copy the request and update the <placeholder_values>
with your connection details. The connection
details here should match the ones used when generating the script, and the payload from the script generation should be pasted exactly into nativeIntegration
. Then submit the request.
Find descriptions of the editable attributes in the table below and of the full payload in the Host registration payloads reference guide. The recommended setting values are included in the example.
Test run
Opt to test and validate the create connection payload using a dry run:
POST
/data/connection/test
Payload parameters
Payload parameters
Payload parameters
Payload parameters
Example response
Data API reference guide
This section details the /data
v1 API, which allows users to register a to Immuta with a single set of credentials rather than configuring an integration and creating data sources separately.
Required Immuta permission: CREATE_DATA_SOURCE
You can register a host from the following technologies to Immuta using supported authentication methods:
Username and password
Key pair
Snowflake OAuth
Databricks Unity Catalog host
To register a host, you must follow this process:
Run the /integrations/scripts/create
endpoint to receive a script.
Run the script in your native host, either Snowflake or Databricks Unity Catalog.
Run the /data/connection
endpoint to finish registering your host in Immuta.
Data API reference guide
This page details the /data
v1 API, which allows users to register a host to Immuta with a single set of credentials rather than configuring an integration and creating data sources separately. For a how-to on registering a host, see the .
Method | Endpoint | Description |
---|
GET
/data/connection/{connectionKey}
Search for a host using a connection key.
Required Immuta permission: CREATE_DATA_SOURCE
, APPLICATION_ADMIN
, or Infrastructure Admin or Data Owner within the hierarchy
Attribute | Description | Required |
---|
GET
/data/object/{objectPath}
Search for a specific data object using the object path.
Required Immuta permission: CREATE_DATA_SOURCE
, APPLICATION_ADMIN
, or INFRASTRUCTURE_ADMIN
or DATA_OWNER
within the hierarchy
POST
/data/object/search/{objectPath}
Search for the children of the object defined in the objectPath. Or search all top-level data objects (hosts) if the objectPath is omitted.
Required Immuta permission: CREATE_DATA_SOURCE
, APPLICATION_ADMIN
, or INFRASTRUCTURE_ADMIN
or DATA_OWNER
within the hierarchy
PUT
/data/connection/{connectionKey}
Update the connection information for the specified host. Partial updates are not supported.
Required Immuta permission: INFRASTRUCTURE_ADMIN
on the host
What can be updated?
POST
/data/crawl/{objectPath}
Trigger an ad hoc crawl starting at the specified object. Note: A crawl cannot happen at the table level.
Required Immuta permission: INFRASTRUCTURE_ADMIN
or DATA_OWNER
on the object
PUT
/data/settings/{objectPath}
Update the settings through overrides for the specified data object. All changes will trickle down to child objects as new overrides; however, existing overrides on child objects will still be respected. Data owners and infrastructure admins cannot be removed, only added. To remove data owners and infrastructure admins, edit the settings at the host level.
Required Immuta permission: INFRASTRUCTURE_ADMIN
on the object
DELETE
/data/object/{objectPath}
Delete the given object and all its child objects. For example, if you delete a database, all its schemas and tables will also be deleted.
Required Immuta permission: INFRASTRUCTURE_ADMIN
or DATA_OWNER
on the object
Attribute | Description | Required |
---|---|---|
Attribute | Description | Required |
---|---|---|
Attribute | Description | Required |
---|---|---|
Attribute | Description | Required |
---|---|---|
Attribute | Description | Required |
---|---|---|
Attribute | Description | Required |
---|---|---|
Attribute | Description | Required |
---|---|---|
Attribute | Description | Required |
---|---|---|
Attribute | Description |
---|---|
Attribute | Description |
---|
Attribute | Description | Required |
---|
Attribute | Desciription |
---|
Attribute | Description | Required |
---|
Attribute | Description | Required |
---|
Attribute | Description |
---|
Using this endpoint, you can only update connection information. To update other integration details, use the endpoint.
Attribute | Description | Required |
---|
The connection parameters differ based on your backing technology. See the for details about the payloads.
Attribute | Description |
---|
Attribute | Description | Required |
---|
Attribute | Description | Required |
---|
Attribute | Description |
---|
Attribute | Description | Required |
---|
Attribute | Description | Required |
---|
Attribute | Description |
---|
See the to delete a host and all its data objects.
Attribute | Description | Required |
---|
Attribute | Description |
---|
config.host string
The URL of your Snowflake account.
Yes
config.warehouse string
The default pool of compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
Yes
config.database string
Name of a new empty database that the Immuta system user will manage and store metadata in.
Yes
config.username string
The new username of the system account that can act on Snowflake objects and configure the host. The system account will be created by the script in step two.
Yes
config.password string
The password of the system account that can act on Snowflake objects and configure the host. The system account will be created by the script in step two.
Yes
config.audit object
This object enables Snowflake query audit.
No
config.audit.enabled boolean
If true
, Snowflake query audit is enabled. Set to true
for the recommended configuration.
No
config.workspaces object
This object represents an Immuta project workspace configured for Snowflake.
No
config.workspaces.enabled boolean
If true
, Snowflake project workspaces are enabled. If you use Snowflake table grants, set to false
because table grants and project workspaces cannot be used together. Set to false
for the recommended configuration.
No
config.impersonation object
This object enables user impersonation.
No
config.impersonation.enabled boolean
If true
, user impersonation is enabled. If you use Snowflake low row access policy mode, set to false
because that mode and impersonation cannot be used together.
No
config.lineage object
This object enables Snowflake lineage ingestion.
No
config.lineage.enabled boolean
If true
, Snowflake lineage is enabled. Set false
for the recommended configuration.
No
config.userRolePattern object
This object excludes roles and users from authorization checks.
No
config.userRolePattern.exclude array
This array is a list of roles and users to exclude from authorization checks. The roles and users will not have policies applied to them when querying Immuta protected Snowflake tables.
No
config.host string
The URL of your Snowflake account.
Yes
config.warehouse string
The default pool of compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
Yes
config.database string
Name of a new empty database that the Immuta system user will manage and store metadata in.
Yes
config.username string
The username of the system account that can act on Snowflake objects and configure the host.
Yes
config.privateKey string
The private key. Replace new lines in the private key with a backslash before the new line character: "\n". If you are using another means of configuration, such as a Python script, the "\n" should not be added.
Yes
config.audit object
This object enables Snowflake query audit.
No
config.audit.enabled boolean
If true
, Snowflake query audit is enabled. Set to true
for the recommended configuration.
No
config.workspaces object
This object represents an Immuta project workspace configured for Snowflake.
No
config.workspaces.enabled boolean
If true
, Snowflake project workspaces are enabled. If you use Snowflake table grants, set to false
because table grants and project workspaces cannot be used together. Set to false
for the recommended configuration.
No
config.impersonation object
This object enables user impersonation.
No
config.impersonation.enabled boolean
If true
, user impersonation is enabled. If you use Snowflake low row access policy mode, set to false
because that mode and impersonation cannot be used together.
No
config.lineage object
This object enables Snowflake lineage ingestion.
No
config.lineage.enabled boolean
If true
, Snowflake lineage is enabled. Set false
for the recommended configuration.
No
config.userRolePattern object
This object excludes roles and users from authorization checks.
No
config.userRolePattern.exclude array
This array is a list of roles and users to exclude from authorization checks. The roles and users will not have policies applied to them when querying Immuta protected Snowflake tables.
No
config.host string
The URL of your Snowflake account.
Yes
config.warehouse string
The default pool of compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
Yes
config.database string
Name of a new empty database that the Immuta system user will manage and store metadata in.
Yes
config.oAuthClientConfig.provider string
The identity provider for OAuth, such as Okta.
Yes
config.oAuthClientConfig.clientId string
The client identifier of your registered application.
Yes
config.oAuthClientConfig.authorityUrl string
Authority URL of your identity provider.
Yes
config.oAuthClientConfig.publicCertificateThumbprint string
Your certificate thumbprint.
Yes
config.oAuthClientConfig.oauthPrivateKey string
The private key. Replace new lines in the private key with a backslash before the new line character: "\n". If you are using another means of configuration, such as a Python script, the "\n" should not be added.
Yes
config.audit object
This object enables Snowflake query audit.
No
config.audit.enabled boolean
If true
, Snowflake query audit is enabled. Set to true
for the recommended configuration.
No
config.workspaces object
This object represents an Immuta project workspace configured for Snowflake.
No
config.workspaces.enabled boolean
If true
, Snowflake project workspaces are enabled. If you use Snowflake table grants, set to false
because table grants and project workspaces cannot be used together. Set to false
for the recommended configuration.
No
config.impersonation object
This object enables user impersonation.
No
config.impersonation.enabled boolean
If true
, user impersonation is enabled. If you use Snowflake low row access policy mode, set to false
because that mode and impersonation cannot be used together.
No
config.lineage object
This object enables Snowflake lineage ingestion.
No
config.lineage.enabled boolean
If true
, Snowflake lineage is enabled. Set false
for the recommended configuration.
No
config.userRolePattern object
This object excludes roles and users from authorization checks.
No
config.userRolePattern.exclude array
This array is a list of roles and users to exclude from authorization checks. The roles and users will not have policies applied to them when querying Immuta protected Snowflake tables.
No
config.host string
The URL of your Snowflake account.
Yes
config.warehouse string
The default pool of compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
Yes
config.database string
Name of a new empty database that the Immuta system user will manage and store metadata in.
Yes
config.oAuthClientConfig.provider string
The identity provider for OAuth, such as Okta.
Yes
config.oAuthClientConfig.clientId string
The client identifier of your registered application.
Yes
config.oAuthClientConfig.authorityUrl string
Authority URL of your identity provider.
Yes
config.oAuthClientConfig.clientSecret string
Client secret of the application.
Yes
config.audit object
This object enables Snowflake query audit.
No
config.audit.enabled boolean
If true
, Snowflake query audit is enabled. Set to true
for the recommended configuration.
No
config.workspace object
This object represents an Immuta project workspace configured for Snowflake.
No
config.workspaces.enabled boolean
If true
, Snowflake project workspaces are enabled. If you use Snowflake table grants, set to false
because table grants and project workspaces cannot be used together. Set to false
for the recommended configuration.
No
config.impersonation object
This object enables user impersonation.
No
config.impersonation.enabled boolean
If true
, user impersonation is enabled. If you use Snowflake low row access policy mode, set to false
because that mode and impersonation cannot be used together.
No
config.lineage object
This object enables Snowflake lineage ingestion.
No
config.lineage.enabled boolean
If true
, Snowflake lineage is enabled. Set false
for the recommended configuration.
No
config.userRolePattern object
This object excludes roles and users from authorization checks.
No
config.userRolePattern array
This array is a list of roles and users to exclude from authorization checks. The roles and users will not have policies applied to them when querying Immuta protected Snowflake tables.
No
connectionKey string
A unique name for the host connection.
Yes
connection object
Configuration attributes that should match the values used when getting the script from the integration endpoint.
Yes
connection.hostname string
The URL of your Snowflake account. This should be the same as nativeIntegration.config.host
.
Yes
connection.port integer
The port to use when registering your Snowflake account host. Defaults to 443
.
Yes
connection.warehouse string
The default pool of compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
Yes
connection.role string
The privileged Snowflake role used by the Immuta system account when configuring the Snowflake host. At minimum, it must be able to see the data that Immuta will govern.
Yes
connection.username string
The username of the system account that can act on Snowflake objects and configure the host.
Yes
connection.password string
The password of the system account that can act on Snowflake objects and configure the host.
Yes
settings array
Specifications of the host's settings, including active status.
No
settings.isActive boolean
When false
, data objects will be inactive by default when created in Immuta. Set to false
for the recommended configuration.
No
options.forceRecursiveCrawl boolean
If false
, only active objects will be crawled. If true
, both active and inactive data objects will be crawled; any child objects from inactive objects will be set as inactive. Set to true
for the recommended configuration.
No
nativeIntegration object
Configuration attributes that should match the values used when getting the script from the integration endpoint. See the table above for descriptions.
Yes
connectionKey string
A unique name for the host connection.
Yes
connection object
Configuration attributes that should match the values used when getting the script from the integration endpoint.
Yes
connection.hostname string
The URL of your Snowflake account. This is the same as host
.
Yes
connection.port integer
The port to use when registering your Snowflake account host. Defaults to 443
.
Yes
connection.warehouse string
The default pool of compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
Yes
connection.role string
The privileged Snowflake role used by the Immuta system account when configuring the Snowflake host. At minimum, it must be able to see the data that Immuta will govern.
Yes
connection.username string
The username of the system account that can act on Snowflake objects and configure the host.
Yes
connection.privateKeyPassword string
The Snowflake private key password. Required if the private key is encrypted.
No
connection.privateKey.userFilename string
The name of your private key file on your machine.
Yes
connection.privateKey.content string
The private key. Replace new lines in the private key with a backslash before the new line character: "\n". If you are using another means of configuration, such as a Python script, the "\n" should not be added. This is the same as config.privateKey
.
Yes
settings array
Specifications of the host's settings, including active status.
No
settings.isActive boolean
If false
, data objects will be inactive by default when created in Immuta. Set to false
for the recommended configuration.
No
options.forceRecursiveCrawl boolean
If false
, only active objects will be crawled. If true
, both active and inactive data objects will be crawled; any child objects from inactive objects will be set as inactive. Set to true
for the recommended configuration.
No
nativeIntegration object
Configuration attributes that should match the values used when getting the script from the integration endpoint.
Yes
nativeIntegration.config.username string
Same as connection.username
Yes
nativeIntegration.config.privateKeyPassword string
Same as connection.privateKeyPassword
No
nativeIntegration.config.privateKey.keyName string
Same as connection.keyName
Yes
nativeIntegration.config.privateKey.userFilename string
Same as connection.userFilename
Yes
nativeIntegration.config.privateKey.content string
Same as connection.content
Yes
nativeIntegration.config.host string
Same as connection.hostname
Yes
nativeIntegration.config.port integer
Same as connection.port
Yes
nativeIntegration.config.warehouse string
Same as connection.warehouse
Yes
nativeIntegration.config.database string
Use the same setting as the script generation.
Yes
nativeIntegration.config.impersonation object
Use the same setting as the script generation.
Yes
nativeIntegration.config.audit object
Use the same setting as the script generation.
Yes
nativeIntegration.config.workspaces object
Use the same setting as the script generation.
Yes
nativeIntegration.config.lineage object
Use the same setting as the script generation.
Yes
nativeIntegration.userRolePattern object
Use the same setting as the script generation.
Yes
connectionKey string
A unique name for the host connection.
Yes
connection object
Configuration attributes that should match the values used when getting the script from the integration endpoint.
Yes
connection.hostname string
The URL of your Snowflake account. This is the same as host
.
Yes
connection.port integer
The port to use when registering your Snowflake account host. Defaults to 443
.
Yes
connection.warehouse string
The default pool of compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
Yes
connection.role string
The privileged Snowflake role used by the Immuta system account when configuring the Snowflake host. At minimum, it must be able to see the data that Immuta will govern.
Yes
connection.oAuthClientConfig.clientId string
The client identifier of your registered application.
Yes
connection.oAuthClientConfig.authorityUrl string
Authority URL of your identity provider.
Yes
connection.oAuthClientConfig.publicCertificateThumbprint string
Your certificate thumbprint.
Yes
connection.oAuthClientConfig.resource string
An optional resource to pass to the token provider.
No
connection.oAuthClientConfig.oauthPrivateKey.userFilename string
The name of your private key file on your machine.
Yes
connection.oAuthClientConfig.oauthPrivateKey.content string
The private key. Replace new lines in the private key with a backslash before the new line character: "\n". If you are using another means of configuration, such as a Python script, the "\n" should not be added. This is the same as config.oauthPrivateKey
in the script request.
Yes
settings array
Specifications of the host's settings, including active status.
No
settings.isActive boolean
When false
, data objects will be inactive by default when created in Immuta. Set to false
for the recommended configuration.
No
options.forceRecursiveCrawl boolean
If false
, only active objects will be crawled. If true
, both active and inactive data objects will be crawled; any child objects from inactive objects will be set as inactive. Set to true
for the recommended configuration.
No
nativeIntegration object
Configuration attributes that should match the values used when getting the script from the integration endpoint.
Yes
nativeIntegration.config.oAuthClientConfig.clientId string
Same as connection.oAuthClientConfig.clientId
Yes
nativeIntegration.config.oAuthClientConfig.authorityUrl string
Same as connection.oAuthClientConfig.authorityUrl
Yes
nativeIntegration.config.oAuthClientConfig.publicCertificateThumbprint string
Same as connection.oAuthClientConfig.publicCertificateThumbprint
Yes
nativeIntegration.config.oAuthClientConfig.resource string
Same as connection.oAuthClientConfig.resource
No
nativeIntegration.config.oAuthClientConfig.oauthPrivateKey.userFilename string
Same as connection.oAuthClientConfig.oauthPrivateKey.userFilename
Yes
nativeIntegration.config.oAuthClientConfig.oauthPrivateKey.content string
Same as connection.oAuthClientConfig.oauthPrivateKey.content
Yes
nativeIntegration.config.host string
Same as connection.hostname
Yes
nativeIntegration.config.port integer
Same as connection.port
Yes
nativeIntegration.config.warehouse string
Same as connection.warehouse
Yes
nativeIntegration.config.database string
Use the same setting as the script generation.
Yes
nativeIntegration.config.impersonation object
Use the same setting as the script generation.
Yes
nativeIntegration.config.audit object
Use the same setting as the script generation.
Yes
nativeIntegration.config.workspaces object
Use the same setting as the script generation.
Yes
nativeIntegration.config.lineage object
Use the same setting as the script generation.
Yes
nativeIntegration.userRolePattern object
Use the same setting as the script generation.
Yes
connectionKey string
A unique name for the host connection.
Yes
connection object
Configuration attributes that should match the values used when getting the script from the integration endpoint.
Yes
connection.hostname string
The URL of your Snowflake account. This is the same as host
.
Yes
connection.port integer
The port to use when registering your Snowflake account host. Defaults to 443
.
Yes
connection.warehouse string
The default pool of compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
Yes
connection.role string
The privileged Snowflake role used by the Immuta system account when configuring the Snowflake host. At minimum, it must be able to see the data that Immuta will govern.
Yes
connection.oAuthClientConfig.clientId string
The client identifier of your registered application.
Yes
connection.oAuthClientConfig.authorityUrl string
Authority URL of your identity provider.
Yes
connection.oAuthClientConfig.clientSecret string
Client secret of the application.
Yes
connection.oAuthClientConfig.resource string
An optional resource to pass to the token provider.
No
settings array
Specifications of the host's settings, including active status.
No
settings.isActive boolean
When false
, data objects will be inactive by default when created in Immuta. Set to false
for the recommended configuration
No
options.forceRecursiveCrawl boolean
If false
, only active objects will be crawled. If true
, both active and inactive data objects will be crawled; any child objects from inactive objects will be set as inactive. Set to true
for the recommended configuration.
No
nativeIntegration object
Configuration attributes that should match the values used when getting the script from the integration endpoint.
Yes
nativeIntegration.config.oAuthClientConfig.clientId string
Same as connection.oAuthClientConfig.clientId
Yes
nativeIntegration.config.oAuthClientConfig.authorityUrl string
Same as connection.oAuthClientConfig.authorityUrl
Yes
nativeIntegration.config.oAuthClientConfig.resource string
Same as connection.oAuthClientConfig.resource
No
nativeIntegration.config.oAuthClientConfig.clientSecret string
Same as connection.oAuthClientConfig.clientSecret
Yes
nativeIntegration.config.host string
Same as connection.hostname
Yes
nativeIntegration.config.port integer
Same as connection.port
Yes
nativeIntegration.config.warehouse string
Same as connection.warehouse
Yes
nativeIntegration.config.database string
Use the same setting as the script generation.
Yes
nativeIntegration.config.impersonation object
Use the same setting as the script generation.
Yes
nativeIntegration.config.audit object
Use the same setting as the script generation.
Yes
nativeIntegration.config.workspaces object
Use the same setting as the script generation.
Yes
nativeIntegration.config.lineage object
Use the same setting as the script generation.
Yes
nativeIntegration.userRolePattern object
Use the same setting as the script generation.
Yes
objectPath string
The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element will be the associated connectionKey
.
bulkId string
A bulk ID that can be used to search for the status of background jobs triggered by this request.
connectionKey | The key to uniquely identify the host connection. |
connection | Integration-specific connection information (i.e., hostname, authentication type, warehouse, etc.) |
createdAt | The time the host was registered in Immuta. |
createdBy | The ID of the user who registered the host. |
creator.id | The ID of the user who registered the host. |
creator.name | The name of the user who registered the host. |
creator.email | The email of the user who registered the host. |
updatedAt | The time the host was updated in Immuta. |
updatedBy | The ID of the user who updated the host. |
updater.id | The ID of the user who updated the host. |
updater.name | The name of the user who updated the host. |
updater.email | The email of the user who updated the host. |
nativeIntegrationId | The ID of the native integration backing the host. |
objectPath | The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the |
technology | The technology that the object comes from: |
state | Whether the object is currently |
settings | Specifications of the host's settings, including active status, new children status, infrastructure admins, and data owners. |
overrides | Specifications of the data object's settings that differ from its parents' settings. |
dataSourceId | The ID of the data source if it is a table object that is active. |
createdAt | The time the data object was created in Immuta. |
lastCrawled | The time the data object was last crawled during object sync. |
remoteId | The ID of the remote data object. |
sortField | The field to sort the search results. | No |
sortOrder | Denotes whether to sort the results in ascending ( | No |
offset | Use in combination with | No |
limit | Limits the number of results displayed per page. | No |
searchText | A partial, case-insensitive search on name. | No |
count | The number of results for your search. |
hits.objectPath | The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the |
hits.technology | The technology that the object comes from (i.e., Snowflake, Databricks, etc.). |
hits.state | Whether the object is currently |
hits.settings | Specifications of the host's settings, including active status, new children status, infrastructure admins, and data owners. |
hits.overrides | Specifications of the data object's settings that differ from its parents' settings. |
hits.dataSourceId | The ID of the data source if it is a table object that is active. |
hits.createdAt | The time the data object was created in Immuta. |
hits.lastCrawled | The time the data object was last crawled during object sync. |
hits.remoteId | The ID of the remote data object. |
connectionKey | The key to uniquely identify the host connection. This is the same as the display name of the host in the Immuta UI. | Yes |
objectPath | The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the |
bulkId | A bulk ID that can be used to search for the status of background jobs triggered by this request. |
forceRecursive | If | No. |
objectPath | The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the |
bulkId | A bulk ID that can be used to search for the status of background jobs triggered by this request. |
overrides | A list of settings configured differently from the parent object's settings. |
overrides.isActive | If |
overrides.activateNewChildren | If |
overrides.infrastructureAdmins | A list of the users and groups that are infrastructure admins on the host. These users can crawl the host, edit the connection, and delete data objects. |
overrides.infrastructureAdmins.id | The ID of the user or group to make infrastructure admin. |
overrides.infrastructureAdmins.type | The type to make infrastructure admin. Options are |
overrides.dataOwners | A list of users and groups that are data owners on the host. These users will be data owners for all the data sources under the data object they are assigned to. |
overrides.dataOwners.id | The ID of the user or group to make data owner. |
overrides.dataOwners.type | The type to make data owner. Options are |
objectPath | The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the |
technology | The backing technology of the host. Options are |
state | Whether the object is currently |
settings | Specifications of the host's settings, including active status, new children status, infrastructure admins, and data owners. |
overrides | Specifications of the data object's settings that differ from its parents' settings. |
dataSourceId | The ID of the data source if it is a table object that is active. |
createdAt | The time the data object was created in Immuta. |
lastCrawled | The time the data object was last crawled during object sync. |
remoteId | The ID of the remote data object. |
bulkId | A bulk ID that can be used to search for the status of background jobs triggered by this request. |
objectPath | The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the |
childCount | The number of child objects of the data object that were deleted. |
GET | Search for a host using a connection key |
GET | Search for a specific data object |
POST | Search for the child objects of the data object defined in the objectPath or search all top-level data objects (hosts) if the objectPath is omitted |
PUT | Update the connection information for the specified host |
POST | Trigger an ad hoc crawl starting at the specified data object |
PUT | Update the settings through overrides for the specified data object |
DELETE | Delete the given data object and all its child objects |
connectionKey | The key to uniquely identify the host connection. This is the same as the display name of the host in the Immuta UI. | Yes |
objectPath | Yes |
objectPath | Yes |
objectPath | Yes |
objectPath | Yes |
objectPath | Yes |
To deregister a host from Immuta, do the following:
POST
/integrations/{id}/scripts/delete
Creates a script to remove Immuta-managed resources from your data platform.
Required Immuta permission: APPLICATION_ADMIN
Attribute | Description | Required |
---|---|---|
The response returns the script that you will run in your Databricks Unity Catalog or Snowflake environment. Copy it for later.
DELETE
/data/object/{connectionKey}
Delete the given host and all its child objects.
Required Immuta permission: INFRASTRUCTURE_ADMIN
or DATA_OWNER
on the object
Using the copied generated cleanup script from earlier, run it in your Snowflake or Databricks Unity Catalog environment as a privileged user.
The script will remove any objects that were initially created during the Register a host process.
The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the and all names should be separated by forward slashes (/
). For example, yourConnectionKey/yourDatabase/yourSchema
.
The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the and all names should be separated by forward slashes (/
). For example, yourConnectionKey/yourDatabase/yourSchema
.
The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the and all names should be separated by forward slashes (/
). For example, yourConnectionKey/yourDatabase/yourSchema
.
The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the and all names should be separated by forward slashes (/
). For example, yourConnectionKey/yourDatabase/yourSchema
.
The list of names that uniquely identify the path to a data object in the remote platform's hierarchy. The first element should be the and all names should be separated by forward slashes (/
). For example, yourConnectionKey/yourDatabase/yourSchema
.
Attribute | Description | Required |
---|---|---|
Attribute | Description |
---|---|
id integer
The integration ID. Use the GET /integrations
endpoint to list all your integrations and their IDs.
Yes
connectionKey string
The key to uniquely identify the host connection. This is the same as the display name of the host in the Immuta UI.
Yes
connectionKey string
The key to uniquely identify the host connection.
childCount integer
The number of child objects of the data object that were deleted.