Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
The integrations API is a REST API that allows you to integrate your remote data platform with Immuta so that Immuta can manage and enforce access controls on your data.
This task-based guide includes end-to-end instructions for implementing your integration - from authenticating with the API to mapping your users into Immuta so that they can access policy-enforced data. A basic request and payload example is provided for configuring each integration.
These guides provide step-by-step instructions for creating and managing your integration and include configuration setting examples that vary in complexity.
These guides define request and body parameters, response schema, and common error messages.
Private preview: The Amazon S3 integration is available to select accounts. Reach out to your Immuta representative for details.
The Amazon S3 resource allows you to create, configure, and manage your S3 integration. In this integration, Immuta provides coarse-grained access controls for data in S3 by performing permission grants using the Access Grants API so that users don't have to manage individual IAM policies themselves.
Use the /integrations
endpoint to
S3 integration enabled in Immuta; contact your Immuta representative to enable this integration
No location is registered in your AWS Access Grants instance before configuring the integration in Immuta
APPLICATION_ADMIN
Immuta permission to configure the integration
CREATE_S3_DATASOURCE
Immuta permission to register S3 data sources
The AWS account credentials or optional AWS IAM role you provide Immuta when configuring the integration must
have ownership of the buckets Immuta will enforce policies on
have the following permissions to create locations and issue grants:
s3:CreateAccessGrant
s3:CreateAccessGrantsLocation
s3:DeleteAccessGrant
s3:DeleteAccessGrantsLocation
s3:GetAccessGrant
s3:GetAccessGrantsInstance
s3:GetAccessGrantsInstanceForPrefix
s3:GetAccessGrantsInstanceResourcePolicy
s3:GetAccessGrantsLocation
s3:ListAccessGrants
s3:ListAccessGrantsInstances
s3:ListAccessGrantsLocations
iam:PassRole
iam:GetRole
Follow AWS documentation to create an Access Grants instance using the S3 console, AWS CLI, AWS SDKs, or the REST API. AWS supports one Access Grants instance per region per AWS account.
Follow the instructions at the top of the "Register a location" page in AWS documentation to create an AWS IAM role and give the S3 Access Grants service principal access to this role in the resource policy file. You will add this role to your integration configuration in Immuta so that Immuta can register this role with your Access Grants location. The AWS documentation linked above gives a complete policy example, but your policy should include the following permissions:
sts:AssumeRole
sts:SetSourceIdentity
sts:SetContext
Follow the instructions at the top of the "Register a location" page in AWS documentation to create an IAM policy with the following permissions, and attach the policy to the IAM role you created to grant the permissions to the role. The AWS documentation linked above gives a complete example, but the policy should at least include the following permissions:
s3:GetObject
s3:GetObjectVersion
s3:GetObjectAcl
s3:GetObjectVersionAcl
s3:ListMultipartUploadParts
s3:PutObject
s3:PutObjectAcl
s3:PutObjectVersionAcl
s3:DeleteObject
s3:DeleteObjectVersion
s3:AbortMultipartUpload
s3:ListBucket
s3:ListAllMyBuckets
iam:passRole
If you use server-side encryption with AWS Key Management Service (AWS KMS) keys to encrypt your data, the following permissions are required for the IAM role in the policy. If you do not use this feature, do not include these permissions in your IAM policy:
kms:Decrypt
kms:GenerateDataKey
Opt to create an AWS IAM role that Immuta can use to create Access Grants locations and issue grants. This role must have the S3 permissions listed in the permissions section.
This request configures the integration using the AWS access key authentication method.
Copy the request example. The example uses JSON format, but the request also accepts YAML.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
name is the name for the integration that is unique across all Amazon S3 integrations configured in Immuta.
awsAccountId is the ID of your AWS account.
awsRegion is the account's AWS region (such as us-east1
).
awsLocationRole is the AWS IAM role ARN assigned to the base access grants location. This is the role the AWS Access Grants service assumes to vend credentials to the grantee.
awsLocationPath is the base S3 location prefix that Immuta will use for this connection when registering S3 data sources. This path must be unique across all S3 integrations configured in Immuta.
awsAccessKeyId is the AWS access key ID of the AWS account configuring the integration.
awsSecretAccessKey is the AWS secret access key of the AWS account configuring the integration.
This request configures the integration using the automatic authentication method, which searches and obtains credentials using the AWS SDK's default credential provider chain. This method requires a configured IAM role for a service account and is only supported if you're using a self-managed deployment of Immuta. Work with your Immuta representative to customize your deployment and set up an IAM role for a service account that can give Immuta the credentials to set up the integration.
Copy the request example. The example uses JSON format, but the request also accepts YAML.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
name is the name for the integration that is unique across all Amazon S3 integrations configured in Immuta.
awsAccountId is the ID of your AWS account.
awsRegion is the account's AWS region (such as us-east1
).
awsLocationRole is the AWS IAM role ARN assigned to the base access grants location. This is the role the AWS Access Grants service assumes to vend credentials to the grantee.
awsLocationPath is the base S3 location that Immuta will use for this connection when registering S3 data sources. This path must be unique across all S3 integrations configured in Immuta.
See the config object description for parameter definitions, value types, and additional configuration options.
The response returns the status of the S3 integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to get. Alternatively, you can get a list of all integrations and their IDs with the GET /integrations
endpoint.
The response returns an S3 integration configuration. See the response schema reference for details about the response schema. An unsuccessful response returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
The response returns the configuration for all integrations. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to delete.
The response returns the status of the S3 integration configuration that has been deleted. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example. The example uses JSON format, but the request also accepts YAML.
Replace the Immuta URL and API key with your own.
Change the integrationsID to the ID of your S3 integration. This ID can be retrieved with the GET /integrations
request.
Change the dataSources values to your own, where
dataSourceName is the name of your data source.
prefix creates a data source for the prefix, bucket, or object provided in the path. If the data source prefix ends in a wildcard (), it protects all items starting with that prefix. If the data source prefix ends without a wildcard (), it protects a single object.
See the S3 data source payload description for parameter definitions and value types.
The response returns the ID, name, and prefix of the data source. See the response schema reference for details about the response schema. An unsuccessful response returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
The Starburst (Trino) resource allows you to create and manage your Starburst (Trino) integration. In this integration, Immuta policies are translated into Starburst rules and permissions and applied directly to tables within users’ existing catalogs.
Use the /integrations
endpoint to
APPLICATION_ADMIN
Immuta permission
A valid
To configure the Starburst (Trino) integration, complete the following steps:
Copy the request example. The example provided uses JSON format, but the request also accepts YAML.
A successful response includes the validation tests statuses.
Navigate to the Immuta App Settings page and click the Integrations tab.
Click your enabled Starburst (Trino) integration and copy the configuration snippet displayed.
Copy the request example.
Copy the request example.
Copy the request example.
Replace the {id} request parameter with the unique identifier of the integration you want to delete.
Replace the Immuta URL and with your own.
The response returns the status of the Starburst (Trino) integration configuration connection. See the for details about the response schema.
An unsuccessful request returns the status code and an error message. See the for a list of statuses, error messages, and troubleshooting guidance.
Follow the steps in the configure the Immuta system access control plugin in or section to add the configuration in the appropriate immuta-access-control.properties
file to finish configuring your cluster.
Replace the Immuta URL and with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to get. Alternatively, you can get a list of all integrations and their IDs with the .
The response returns a Starburst (Trino) integration configuration and the Immuta API key used to configure the Starburst cluster. See the for details about the response schema. An unsuccessful request returns the status code and an error message. See the for a list of statuses, error messages, and troubleshooting guidance.
Replace the Immuta URL and with your own.
The response returns the configuration for all integrations. See the for details about the response schema. An unsuccessful request returns the status code and an error message. See the for a list of statuses, error messages, and troubleshooting guidance.
Replace the Immuta URL and with your own.
The response returns the status of the Starburst (Trino) integration configuration that has been deleted. See the for details about the response schema. An unsuccessful request returns the status code and an error message. See the for a list of statuses, error messages, and troubleshooting guidance.
In the Snowflake integration, Immuta manages access to Snowflake tables by administering Snowflake row access policies and column masking policies on those tables, allowing users to query tables directly in Snowflake while dynamic policies are enforced.
Use the /integrations
endpoint to
APPLICATION_ADMIN
Immuta permission
Snowflake Enterprise account
Role used to configure, edit, or remove the integration needs to have the following Snowflake privileges:
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
You have two options for configuring your Snowflake integration:
Automatic setup: Grant Immuta one-time use of credentials to automatically configure your Snowflake environment and the integration. When performing an automated installation, Immuta requires temporary, one-time use of credentials with the Snowflake privileges listed in the requirements section.
These permissions will be used to create and configure a new Immuta-managed database within the specified Snowflake instance. The credentials are not stored or saved by Immuta, and Immuta doesn’t retain access to them after initial setup is complete.
You can create a new account for Immuta to use that has these permissions, or you can grant temporary use of a pre-existing account. By default, the pre-existing account with appropriate permissions is ACCOUNTADMIN. If you create a new account, it can be deleted after initial setup is complete.
Manual setup: Run the Immuta script in your Snowflake environment yourself to configure your Snowflake environment and the integration. The specified role used to run the bootstrap needs to have the Snowflake privileges listed in the requirements section.
Known issue
On September 30, 2024, Snowflake released a change to transition away from allowing password-only authentication. To use username and password authentication when configuring a new Snowflake integration, you must use the manual setup option, which provides a script that permits password-only authentication by differentiating it as a legacy service with an additional parameter. Existing integrations will continue to function as-is.
To configure your Snowflake integration using password-only authentication in the automatic setup option, upgrade to Immuta v2024.2.7 or newer. Otherwise, Immuta will return an error.
Select the section below that matches your authentication method.
Copy the request example and replace the values with your own as directed to configure the integration settings. The examples provided use JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
username and password are credentials of a Snowflake account attached to a role with the privileges outlined above. These credentials are not stored; they are used by Immuta to configure the integration.
role is a Snowflake role that has been granted the privileges outlined above.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
username is the system account user that can assume the role to manage the database and administer Snowflake masking and row access policies.
privateKey is your private key. If you are using curl, replace new lines in the private key with a backslash before the new line character: . If you are using another means of configuration, such as a Python script, the should not be added.
connectArgs is used to set PRIV_KEY_FILE_PWD
if the private key is encrypted.
The response returns the status of the Snowflake integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Best practices
The account you create for Immuta should only be used for the integration and should not be used as the credentials for creating data sources in Immuta; doing so will cause issues. Instead, create a separate, dedicated READ-ONLY account for creating and registering data sources within Immuta.
To manually configure the integration, complete the following steps:
Select the section below that matches your authentication method.
Copy the request example and replace the values with your own as directed to generate the script. The examples provided use JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
Username and password authentication example
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
audit specifies whether query audit is enabled for Snowflake. See the object description for child parameters.
workspaces represents an Immuta project workspace configured for Snowflake. See the object description for child parameters.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
username and password are the credentials for the system account that can assume the role to manage the database and administer Snowflake masking and row access policies.
Run the script returned in the response in your Snowflake environment.
Snowflake key pair authentication example
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
audit specifies whether query audit is enabled for Snowflake. See the object description for child parameters.
workspaces represents an Immuta project workspace configured for Snowflake. See the object description for child parameters.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
username is the system account user that can assume the role to manage the database and administer Snowflake masking and row access policies.
privateKey is your private key. If you are using curl, replace new lines in the private key with a backslash before the new line character: . If you are using another means of configuration, such as a Python script, the should not be added.
connectArgs is used to set PRIV_KEY_FILE_PWD
if the private key is encrypted.
Run the script returned in the response in your Snowflake environment.
Snowflake External OAuth authentication example
In this example, Snowflake External OAuth is used to authenticate the system account user, ensuring secure communication between Immuta and Snowflake. To use this authentication method, autoBootstrap
must be false
.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
audit specifies whether query audit is enabled for Snowflake. See the object description for child parameters.
workspaces.enabled specifies whether Immuta project workspaces are enabled for Snowflake.
workspaces.warehouses is a list of warehouses that workspace users have usage privileges on.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
username is the system account user that can act on Snowflake objects and configure the integration.
oAuthClientConfig specifies your provider, client ID, client secret, authority URL, and your encoded public and private keys. See the object description for details about child parameters.
Run the script returned in the response in your Snowflake environment.
Response
The response returns the script for you to run in your environment.
Select the section below that matches your authentication method.
Copy the request example and replace the values with your own as directed to configure the integration settings. The examples provided use JSON format, but the request also accepts YAML. The parameters and values you provide in this payload must match those you provided when generating the script.
See the config object description for parameter definitions, value types, and additional configuration options.
Username and password authentication example
Replace the Immuta URL and API key with your own.
Pass the same payload you sent when generating the script, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
audit specifies whether query audit is enabled for Snowflake. See the object description for child parameters.
workspaces represents an Immuta project workspace configured for Snowflake. See the object description for child parameters.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
username and password are the credentials for the system account that can assume the role to manage the database and administer Snowflake masking and row access policies.
Snowflake key pair authentication example
Replace the Immuta URL and API key with your own.
Pass the same payload you sent when generating the script, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
audit specifies whether query audit is enabled for Snowflake. See the object description for child parameters.
workspaces represents an Immuta project workspace configured for Snowflake. See the object description for child parameters.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
username is the system account user that can assume the role to manage the database and administer Snowflake masking and row access policies.
privateKey is your private key. If you are using curl, replace new lines in the private key with a backslash before the new line character: . If you are using another means of configuration, such as a Python script, the should not be added.
connectArgs is used to set PRIV_KEY_FILE_PWD
if the private key is encrypted.
Snowflake External OAuth authentication example
In this example, Snowflake External OAuth is used to authenticate the system account user, ensuring secure communication between Immuta and Snowflake. To use this authentication method, autoBootstrap
must be false
.
Replace the Immuta URL and API key with your own.
Pass the same payload you sent when generating the script, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
workspaces specifies whether Immuta project workspaces are enabled for Snowflake. See the object description for details about child parameters.
oAuthClientConfig specifies your provider, client ID, client secret, authority URL, and your encoded public and private keys. See the object description for details about child parameters.
The response returns the status of the Snowflake integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to get. Alternatively, you can get a list of all integrations and their IDs with the GET /integrations
endpoint.
The response returns the Snowflake integration configuration. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
The response returns the configuration for all integrations. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
You have two options for updating your integration. Follow the steps that match your initial configuration of autoBootstrap:
automatic update (autoBootstrap is true
)
manual update (autoBootstrap is false
)
Select the section below that matches your authentication method.
Copy the request example and replace the values with your own as directed to update the integration settings. The examples provided use JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
This request updates the configuration to enable query audit in Snowflake.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Change the config values to your own, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
audit specifies whether query audit is enabled for Snowflake. See the object description for child parameters.
username and password are credentials of a Snowflake account attached to a role with the privileges outlined above. These credentials are not stored; they are used by Immuta to enable or disable configuration settings.
role is a Snowflake role that has been granted the privileges outlined above.
This request updates the configuration to enable query audit in Snowflake.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Change the config values to your own, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
audit specifies whether query audit is enabled for Snowflake. See the object description for child parameters.
username is the system account user that can assume the role to manage the database and administer Snowflake masking and row access policies.
privateKey is your private key. If you are using curl, replace new lines in the private key with a backslash before the new line character: . If you are using another means of configuration, such as a Python script, the should not be added.
connectArgs is used to set PRIV_KEY_FILE_PWD
if the private key is encrypted.
The response returns the status of the Snowflake integration configuration. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
To manually update the integration, complete the following steps:
Select the section below that matches your authentication method.
Copy the request example and replace the values with your own as directed to generate the script. The examples provided use JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
Username and password authentication example"
This request updates the configuration to enable query audit in Snowflake.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Change the config values to your own, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
audit specifies whether query audit is enabled for Snowflake. See the object description for child parameters.
workspaces represents an Immuta project workspace configured for Snowflake. See the object description for child parameters.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
username and password are the credentials for the system account that can assume the role to manage the database and administer Snowflake masking and row access policies.
Run the script returned in the response in your Snowflake environment.
Snowflake key pair authentication example
This request updates the configuration to enable query audit in Snowflake.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Change the config values to your own, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
audit specifies whether query audit is enabled for Snowflake. See the object description for child parameters.
workspaces represents an Immuta project workspace configured for Snowflake. See the object description for child parameters.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
username is the system account user that can assume the role to manage the database and administer Snowflake masking and row access policies.
privateKey is your private key. If you are using curl, replace new lines in the private key with a backslash before the new line character: . If you are using another means of configuration, such as a Python script, the should not be added.
connectArgs is used to set PRIV_KEY_FILE_PWD
if the private key is encrypted.
Run the script returned in the response in your Snowflake environment.
Snowflake External OAuth authentication example
This request updates the configuration to disable Snowflake workspaces for the integration.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Change the config values to your own, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
audit specifies whether query audit is enabled for Snowflake. See the object description for child parameters.
workspaces represents an Immuta project workspace configured for Snowflake. See the object description for child parameters.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
username is the system account user that can act on Snowflake objects and configure the integration.
oAuthClientConfig specifies your provider, client ID, client secret, authority URL, and your encoded public and private keys. See the object description for details about child parameters.
Run the script returned in the response in your Snowflake environment.
Response
The response returns the script for you to run in your environment.
Select the section below that matches your authentication method.
Copy the request example and replace the values with your own as directed to update the integration settings. The examples provided use JSON format, but the request also accepts YAML. The payload you provide must match the one you provided when generating the updated script.
See the config object description for parameter definitions, value types, and additional configuration options.
Username and password authentication example
This request updates the configuration to enable query audit in Snowflake.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Pass the same payload you sent when generating the script, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
audit specifies whether query audit is enabled for Snowflake. See the object description for child parameters.
workspaces represents an Immuta project workspace configured for Snowflake. See the object description for child parameters.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
username and password are the credentials for the system account that can assume the role to manage the database and administer Snowflake masking and row access policies.
Snowflake key pair authentication example
This request updates the configuration to enable query audit in Snowflake.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Pass the same payload you sent when generating the script, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
audit specifies whether query audit is enabled for Snowflake. See the object description for child parameters.
workspaces represents an Immuta project workspace configured for Snowflake. See the object description for child parameters.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
username is the system account user that can assume the role to manage the database and administer Snowflake masking and row access policies.
privateKey is your private key. If you are using curl, replace new lines in the private key with a backslash before the new line character: . If you are using another means of configuration, such as a Python script, the should not be added.
connectArgs is used to set PRIV_KEY_FILE_PWD
if the private key is encrypted.
Snowflake External OAuth authentication example
This request updates the configuration to disable Snowflake workspaces and enable Snowflake query audit for the integration.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Pass the same payload you sent when generating the script, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
audit specifies whether query audit is enabled for Snowflake. See the object description for child parameters.
workspaces specifies whether Immuta project workspaces are enabled for Snowflake. See the object description for details about child parameters.
oAuthClientConfig specifies your provider, client ID, client secret, authority URL, and your encoded public and private keys. See the object description for details about child parameters.
The response returns the status of the Snowflake integration configuration. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to delete.
If you set
autoBootstrap to true
when enabling the integration, specify the authenticationType and the credentials you used to configure the integration in the payload, as illustrated in the example. See the Integrations API endpoints guide for details.
autoBootstrap to false
when enabling the integration,
Make the request above without including a payload to remove the integration from Immuta.
Run the generated script in Snowflake.
The response returns the status of the Snowflake integration configuration that has been deleted. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Immuta’s integration with Unity Catalog allows you to manage multiple Databricks workspaces through Unity Catalog while protecting your data with Immuta policies. Instead of manually creating UDFs or granting access to each table in Databricks, you can author your policies in Immuta and have Immuta manage and enforce Unity Catalog access-control policies on your data in Databricks clusters or SQL warehouses.
Use the /integrations
endpoint to
APPLICATION_ADMIN
Immuta permission
A system account user with the following privileges is required for Immuta to manage permissions on objects in the Unity Catalog metastore:
CREATE CATALOG
on the Unity Catalog metastore to create an Immuta-owned catalog and tables
OWNERSHIP
on the Immuta catalog you configure
USE CATALOG
and USE SCHEMA
on all catalogs and schemas with tables managed by Immuta
SELECT
and MODIFY
on all tables in the metastore managed my Immuta
Native query audit:
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
Generate a personal access token for the system account user that Immuta will use to manage policies in Unity Catalog.
Enable Databricks Unity Catalog on the Immuta app settings page:
Click the App Settings icon in the left sidebar.
Scroll to the Global Integrations Settings section and check the Enable Databricks Unity Catalog support in Immuta checkbox. Leave the additional settings in this section with their default values. They are only relevant to the Databricks Spark with Unity Catalog integration and will not have any effect on the Unity Catalog integration.
You have two options for configuring your Databricks Unity Catalog integration:
Automatic setup: When performing an automatic setup, the Databricks personal access token you configure below must be attached to an account with these Databricks permissions for the metastore associated with the specified Databricks workspace. Immuta creates the catalogs, schemas, tables, and functions using the integration's configured personal access token.
Manual setup: Run the Immuta script in Databricks yourself to create the catalog. You can also modify the script to customize your storage location for tables, schemas, or catalogs. The user running the script needs to have the CREATE CATALOG
permission on the workspace metastore. The Databricks personal access token you configure must be attached to an account with the Databricks permissions listed in the requirements section.
Copy the request example, and replace the values with your own as directed to configure the integration settings. The example provided uses JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
workspaceUrl is your Databricks workspace URL.
httpPath is the HTTP path of your Databricks cluster or SQL warehouse.
token is the Databricks personal access token. This is the access token for the Immuta system account user.
catalog is 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.
The response returns the status of the Databricks Unity Catalog integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
To manually configure the integration, complete the following steps:
Copy the request example, and replace the values with your own as directed to configure the integration settings. The example provided uses JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
workspaceUrl is your Databricks workspace URL.
httpPath is the HTTP path of your Databricks cluster or SQL warehouse.
token is the Databricks personal access token. This is the access token for the Immuta system account user.
catalog is 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.
Run the script returned in the response in your Databricks environment.
Response
The response returns the script for you to run in your environment.
Copy the request example, and replace the values with your own as directed to configure the integration settings. The example provided uses JSON format, but the request also accepts YAML. The payload you provide must match the payload sent when generating the script.
See the config object description for parameter definitions, value types, and additional configuration options.
Replace the Immuta URL and API key with your own.
Pass the same payload you sent when generating the script, where
workspaceUrl is your Databricks workspace URL.
httpPath is the HTTP path of your Databricks cluster or SQL warehouse.
token is the Databricks personal access token. This is the access token for the Immuta system account user.
catalog is 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.
The response returns the status of the Databricks Unity Catalog integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to get. Alternatively, you can get a list of all integrations and their IDs with the GET /integrations
endpoint.
The response returns a Databricks Unity Catalog integration configuration. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
The response returns the configuration for all integrations. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
You have two options for updating your integration. Follow the steps that match your initial configuration of autoBootstrap:
automatic update (autoBootstrap is true
)
manual update (autoBootstrap is false
)
Copy the request example, and replace the values with your own as directed to configure the integration settings. The examples provided use JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
This example updates the access token.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Change the config values to your own, where
workspaceUrl is your Databricks workspace URL.
httpPath is the HTTP path of your Databricks cluster or SQL warehouse.
token is the Databricks personal access token. This is the access token for the Immuta system account user.
catalog is 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.
The response returns the status of the Databricks Unity Catalog integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
To manually update the integration, complete the following steps:
Copy the request example, and replace the values with your own as directed to generate the script. The example provided uses JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Change the config values to your own, where
workspaceUrl is your Databricks workspace URL.
httpPath is the HTTP path of your Databricks cluster or SQL warehouse.
token is the Databricks personal access token. This is the access token for the Immuta system account user.
catalog is 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.
Run the script returned in the response in your Databricks environment.
Response
The response returns the script for you to run in your Databricks environment.
Copy the request example, and replace the values with your own as directed to update the integration settings. The example provided uses JSON format, but the request also accepts YAML. The payload you provide must match the payload sent when generating the script.
See the config object description for parameter definitions, value types, and additional configuration options.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Pass the same payload you sent when updating the script, where
workspaceUrl is your Databricks workspace URL.
httpPath is the HTTP path of your Databricks cluster or SQL warehouse.
token is the Databricks personal access token. This is the access token for the Immuta system account user.
catalog is 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.
The response returns the status of the Databricks Unity Catalog integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to delete.
The response returns the status of the Databricks Unity Catalog integration configuration that has been deleted. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
The reference guides in this section define the integrations API endpoints, request and body parameters, and response schema.
The integrations API endpoints allow you to create, update, get, and delete integrations and generate scripts to run in your data platform to manually set up or remove Immuta-managed resources.
Consult this guide for endpoint descriptions and examples.
The integrations API request payloads accept JSON or YAML format, and each integration has parameters and objects specific to the data platform.
Consult this guide for parameter value types, requirements, definitions, and accepted values.
The response returns the status of the integration configuration in JSON format.
Consult this guide for response schema definitions and integration state definitions.
The integrations API uses standard HTTP status codes. Status codes specific to the integrations API are described in this reference guide.
Consult this guide for a list of status codes, integration states, common error messages, and troubleshooting guidance.
Private preview: This integration is available to select accounts. Reach out to your Immuta representative for details.
The Google BigQuery resource allows you to create, configure, and manage your Google BigQuery integration. In this integration, Immuta generates policy-enforced views in your configured Google BigQuery dataset for tables registered as Immuta data sources.
Use the /integrations
endpoint to
APPLICATION_ADMIN
Immuta permission
Google BigQuery integration enabled in Immuta (work with your Immuta representative to enable this integration)
To execute the Immuta script from your command line to create a Google Cloud service account and role, you must be authenticated to the gcloud CLI utility as a user with all of the following roles:
roles/iam.roleAdmin
roles/iam.serviceAccountAdmin
roles/serviceusage.serviceUsageAdmin
Create a Google Cloud service account and role by either using the Google Cloud console or the provided Immuta script.
Copy the request example. The example uses JSON format, but the request also accepts YAML.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
role is the Google Cloud role used to connect to Google BigQuery.
datasetSuffix is the suffix to postfix to the name of each dataset created to store secure views. This string must start with an underscore.
dataset is the name of the BigQuery dataset to provision inside of the project for Immuta metadata storage.
location is the dataset's location, which can be any valid GCP location (such as us-east1
).
credential is the Google BigQuery service account JSON keyfile credential content. See the Google documentation for guidance on generating and downloading this keyfile.
See the config object description for parameter definitions, value types, and additional configuration options.
The response returns the status of the Google BigQuery integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to get. Alternatively, you can get a list of all integrations and their IDs with the GET /integrations
endpoint.
The response returns a Google BigQuery integration configuration. See the response schema reference for details about the response schema. An unsuccessful response returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
The response returns the configuration for all integrations. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example, which updates the private key. The example uses JSON format, but the request also accepts YAML.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Change the config values to your own, where
role is the Google Cloud role used to connect to Google BigQuery.
datasetSuffix is the suffix to postfix to the name of each dataset created to store secure views. This string must start with an underscore.
dataset is the name of the BigQuery dataset to provision inside of the project for Immuta metadata storage.
location is the dataset's location, which can be any valid GCP location (such as us-east1
).
credential is the Google BigQuery service account JSON keyfile credential content. See the Google documentation for guidance on generating and downloading this keyfile.
See the config object description for parameter definitions, value types, and additional configuration options.
The response returns the status of the Google BigQuery integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to delete.
The response returns the status of the Google BigQuery integration configuration that has been deleted. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
The Azure Synapse Analytics resource allows you to create, configure, and manage your Azure Synapse Analytics integration. In this integration, Immuta generates policy-enforced views in a schema in your configured Azure Synapse Analytics Dedicated SQL pool for tables registered as Immuta data sources.
Use the /integrations
endpoint to
APPLICATION_ADMIN
Immuta permission
A running Dedicated SQL pool
Account used to configure or edit the integration must have the Azure Synapse Analytics permission to manage GRANTS
You have two options for configuring your Azure Synapse Analytics integration:
Automatic setup: Grant Immuta one-time use of credentials to automatically configure your Azure Synapse Analytics environment and the integration. When performing an automated installation, Immuta requires temporary, one-time use of credentials with the permission to manage GRANTS
.
Manual setup: Run the Immuta script in your Azure Synapse Analytics environment yourself to configure your environment and the integration. The specified role used to run the bootstrap needs to have the permission to manage GRANTS
.
Copy the request example from one of the sections below, and replace the values with your own as directed to configure the integration settings. The examples provided use JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
host is the URL of your Azure Synapse Analytics account.
schema is the name of the Immuta-managed schema where all your secure views will be created and stored.
database is the name of an existing database where the Immuta system user will store all Immuta-generated schemas and views.
username and password are the username and password of the system account that can act on Azure Synapse Analytics objects and configure the integration.
This request enables impersonation to allow Immuta administrators to grant users permission to query Azure Synapse Analytics data as other Immuta users.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
host is the URL of your Azure Synapse Analytics account.
schema is the name of the Immuta-managed schema where all your secure views will be created and stored.
database is the name of an existing database where the Immuta system user will store all Immuta-generated schemas and views.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
metadataDelimeters are a set of delimiters that Immuta uses to store profile data in Azure Synapse Analytics. See the object description for child parameters.
username and password are the username and password of the system account that can act on Azure Synapse Analytics objects and configure the integration.
The response returns the status of the Azure Synapse Analytics integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
To manually configure the integration, complete the following steps:
Copy the request example from one of the sections below, and replace the values with your own as directed to generate the script. The examples provided use JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
Basic example
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
host is the URL of your Azure Synapse Analytics account.
schema is the name of the Immuta-managed schema where all your secure views will be created and stored.
database is the name of an existing database where the Immuta system user will store all Immuta-generated schemas and views.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
metadataDelimeters are a set of delimiters that Immuta uses to store profile data in Azure Synapse Analytics. See the object description for child parameters.
username and password are the username and password of the system account that can act on Azure Synapse Analytics objects and configure the integration.
Run the script returned in the response in your Azure Synapse Analytics environment.
Complex example
This request enables impersonation to allow Immuta administrators to grant users permission to query Azure Synapse Analytics data as other Immuta users.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
host is the URL of your Azure Synapse Analytics account.
schema is the name of the Immuta-managed schema where all your secure views will be created and stored.
database is the name of an existing database where the Immuta system user will store all Immuta-generated schemas and views.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
metadataDelimeters are a set of delimiters that Immuta uses to store profile data in Azure Synapse Analytics. See the object description for child parameters.
username and password are the username and password of the system account that can act on Azure Synapse Analytics objects and configure the integration.
Run the script returned in the response in your Azure Synapse Analytics environment.
Response
The response returns the script for you to run in your environment.
Copy the request example from one of the sections below, and replace the values with your own as directed to configure the integration settings. The examples provided use JSON format, but the request also accepts YAML. The payload you provide must match the payload sent when generating the first script.
See the config object description for parameter definitions, value types, and additional configuration options.
Basic example
Replace the Immuta URL and API key with your own.
Pass the same payload you sent when generating the first script, where
host is the URL of your Azure Synapse Analytics account.
schema is the name of the Immuta-managed schema where all your secure views will be created and stored.
database is the name of an existing database where the Immuta system user will store all Immuta-generated schemas and views.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
metadataDelimeters are a set of delimiters that Immuta uses to store profile data in Azure Synapse Analytics. See the object description for child parameters.
username and password are the username and password of the system account that can act on Azure Synapse Analytics objects and configure the integration.
Run the script returned in the response in your Azure Synapse Analytics environment.
Complex example
This request enables impersonation to allow Immuta administrators to grant users permission to query Azure Synapse Analytics data as other Immuta users.
Replace the Immuta URL and API key with your own.
Pass the same payload you sent when generating the first script, where
host is the URL of your Azure Synapse Analytics account.
schema is the name of the Immuta-managed schema where all your secure views will be created and stored.
database is the name of an existing database where the Immuta system user will store all Immuta-generated schemas and views.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
metadataDelimeters are a set of delimiters that Immuta uses to store profile data in Azure Synapse Analytics. See the object description for child parameters.
username and password are the username and password of the system account that can act on Azure Synapse Analytics objects and configure the integration.
Run the script returned in the response in your Azure Synapse Analytics environment.
Response
The response returns the script for you to run in your environment.
Copy the request example from one of the sections below, and replace the values with your own as directed to configure the integration settings. The examples provided use JSON format, but the request also accepts YAML. The payload you provide must match the payload sent when generating the scripts.
See the config object description for parameter definitions, value types, and additional configuration options.
Basic example
Replace the Immuta URL and API key with your own.
Pass the same payload you sent when generating the scripts, where
host is the URL of your Azure Synapse Analytics account.
schema is the name of the Immuta-managed schema where all your secure views will be created and stored.
database is the name of an existing database where the Immuta system user will store all Immuta-generated schemas and views.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
metadataDelimeters are a set of delimiters that Immuta uses to store profile data in Azure Synapse Analytics. See the object description for child parameters.
username and password are the username and password of the system account that can act on Azure Synapse Analytics objects and configure the integration.
Complex example
This request enables impersonation to allow Immuta administrators to grant users permission to query Azure Synapse Analytics data as other Immuta users.
Replace the Immuta URL and API key with your own.
Pass the same payload you sent when generating the scripts, where
host is the URL of your Azure Synapse Analytics account.
schema is the name of the Immuta-managed schema where all your secure views will be created and stored.
database is the name of an existing database where the Immuta system user will store all Immuta-generated schemas and views.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
metadataDelimeters are a set of delimiters that Immuta uses to store profile data in Azure Synapse Analytics. See the object description for child parameters.
username and password are the username and password of the system account that can act on Azure Synapse Analytics objects and configure the integration.
The response returns the status of the Azure Synapse Analytics integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to get. Alternatively, you can get a list of all integrations and their IDs with the GET /integrations
endpoint.
The response returns an Azure Synapse Analytics integration configuration. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
The response returns the configuration for all integrations. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
You have two options for updating your integration. Follow the steps that match your initial configuration of autoBootstrap:
automatic update (autoBootstrap is true
)
manual update (autoBootstrap is false
)
Copy the request example, and replace the values with your own as directed to update the integration settings. The example provided uses JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Change the config values to your own, where
host is the URL of your Azure Synapse Analytics account.
schema is the name of the Immuta-managed schema where all your secure views will be created and stored.
database is the name of an existing database where the Immuta system user will store all Immuta-generated schemas and views.
metadataDelimeters are a set of delimiters that Immuta uses to store profile data in Azure Synapse Analytics. See the object description for child parameters.
username and password are the username and password of the system account that can act on Azure Synapse Analytics objects and configure the integration.
The response returns the status of the Azure Synapse Analytics integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
To manually update the integration, complete the following steps:
Copy the request example, and replace the values with your own as directed to generate the script. The example provided uses JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Change the config values to your own, where
host is the URL of your Azure Synapse Analytics account.
schema is the name of the Immuta-managed schema where all your secure views will be created and stored.
database is the name of an existing database where the Immuta system user will store all Immuta-generated schemas and views.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
metadataDelimeters are a set of delimiters that Immuta uses to store profile data in Azure Synapse Analytics. See the object description for child parameters.
username and password are the username and password of the system account that can act on Azure Synapse Analytics objects and configure the integration.
Run the script returned in the response in your Azure Synapse Analytics environment.
Response
The response returns the script for you to run in your environment.
Copy the request example, and replace the values with your own as directed to update the integration settings. The example provided uses JSON format, but the request also accepts YAML. The payload you provide must match the payload sent when generating the updated script.
See the config object description for parameter definitions, value types, and additional configuration options.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Pass the same payload you sent when generating the script, where
host is the URL of your Azure Synapse Analytics account.
schema is the name of the Immuta-managed schema where all your secure views will be created and stored.
database is the name of an existing database where the Immuta system user will store all Immuta-generated schemas and views.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
metadataDelimeters are a set of delimiters that Immuta uses to store profile data in Azure Synapse Analytics. See the object description for child parameters.
username and password are the username and password of the system account that can act on Azure Synapse Analytics objects and configure the integration.
The response returns the status of the Azure Synapse Analytics integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to delete.
If you set
autoBootstrap to true
when enabling the integration, include the credentials you used to configure the integration in the payload, as illustrated in the example.
autoBootstrap to false
when enabling the integration,
use the script post-cleanup endpoint to finish removing Immuta-managed resources from your environment,
make the request above without including a payload to remove the integration from Immuta.
The response returns the status of the Azure Synapse Analytics integration configuration that has been deleted. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
In the Redshift integration, Immuta generates policy-enforced views in your configured Redshift schema for tables registered as Immuta data sources.
Use the /integrations
endpoint to
APPLICATION_ADMIN
Immuta permission
A Redshift cluster with an RA3 node is required for the multi-database integration. You must use a Redshift RA3 instance type because Immuta requires cross-database views, which are only supported in Redshift RA3 instance types. For other instance types, you may configure a single-database integration using one of the Redshift Spectrum options:
Configure the integration with an existing database that contains the external tables. In the steps below, specify an existing database in Redshift as the database
in which Immuta will add the Immuta-managed schemas and views instead of creating a new database.
Create a new database as specified in the steps below, and then re-create all of your external tables in that database.
For automated installations, the credentials provided must be a Superuser or have the ability to create databases and users and modify grants.
Account used to configure or edit the integration must have the following Redshift permissions:
CREATE DATABASE
CREATE USER
REVOKE ALL PRIVILEGES ON DATABASE
GRANT TEMP ON DATABASE
MANAGE GRANTS ON ACCOUNT
You have two options for configuring your Redshift integration:
Automatic setup: Grant Immuta one-time use of credentials to automatically configure your Redshift environment and the integration. When performing an automated installation, Immuta requires temporary, one-time use of credentials with the Redshift permissions listed in the requirements section.
These privileges will be used to create and configure a new Immuta-managed database within the specified Redshift instance. The credentials are not stored or saved by Immuta, and Immuta doesn’t retain access to them after initial setup is complete.
You can create a new account for Immuta to use that has these privileges, or you can grant temporary use of a pre-existing account. By default, the pre-existing account with appropriate privileges is a Superuser. If you create a new account, it can be deleted after initial setup is complete.
Manual setup: Run the Immuta script in your Redshift environment yourself to configure your Redshift environment and the integration. The specified role used to run the bootstrap needs to have the Redshift permissions listed in the requirements section.
Copy the request example from one of the sections below, and replace the values with your own as directed to configure the integration settings. The examples provided use JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
This request specifies userPassword
as the authentication type for the Immuta system user. The username and password provided are credentials for a system account that can manage the database.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
host is the URL of your Redshift account.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
initialDatabase is the name of an existing database in Redshift that Immuta initially connects to and creates the Immuta-managed database.
username and password are the credentials for the system account that can act on Redshift objects and configure the integration.
This request uses Okta as the authentication type for the Immuta system user and enables impersonation to allow Immuta administrators to grant users permission to query Redshift data as other Immuta users.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
host is the URL of your Redshift account.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
initialDatabase is the name of an existing database in Redshift that Immuta initially connects to and creates the Immuta-managed database.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
okta specifies your username, password, appId, idpHost, and role. See the object description for details about child parameters.
The response returns the status of the Redshift integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
To manually configure the integration, complete the following steps:
Copy the request example from one of the sections below, and replace the values with your own as directed to generate the first script. The examples provided use JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
Username and password authentication example
This request specifies userPassword
as the authentication type for the Immuta system user. The username and password provided are credentials for a system account that can manage the database.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
host is the URL of your Redshift account.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
initialDatabase is the name of an existing database in Redshift that Immuta initially connects to and creates the Immuta-managed database.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
username and password are the credentials for the system account that can act on Redshift objects and configure the integration.
Run the script returned in the response in the Redshift initialDatabase specified in the payload.
Okta authentication example
This request uses Okta as the authentication type for the Immuta system user and enables impersonation to allow Immuta administrators to grant users permission to query Redshift data as other Immuta users.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
host is the URL of your Redshift account.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
initialDatabase is the name of an existing database in Redshift that Immuta initially connects to and creates the Immuta-managed database.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
okta specifies your username, password, appId, idpHost, and role. See the object description for details about child parameters.
Run the script returned in the response in the Redshift initialDatabase specified in the payload.
Response
The response returns the script for you to run in the Redshift initialDatabase.
Copy the request example from one of the sections below, and replace the values with your own as directed to configure the integration settings. The examples provided use JSON format, but the request also accepts YAML. The payload you provide must match the payload sent when generating the script.
See the config object description for parameter definitions, value types, and additional configuration options.
Username and password authentication example
This request specifies userPassword
as the authentication type for the Immuta system user. The username and password provided are credentials for a system account that can manage the database.
Replace the Immuta URL and API key with your own.
Pass the same payload you sent when generating the first script, where
host is the URL of your Redshift account.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
initialDatabase is the name of an existing database in Redshift that Immuta initially connects to and creates the Immuta-managed database.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
username and password are the credentials for the system account that can act on Redshift objects and configure the integration.
Run the script returned in the response in the database created by the first script.
Okta authentication example
This request uses Okta as the authentication type for the Immuta system user and enables impersonation to allow Immuta administrators to grant users permission to query Redshift data as other Immuta users.
Replace the Immuta URL and API key with your own.
Pass the same payload you sent when generating the first script, where
host is the URL of your Redshift account.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
initialDatabase is the name of an existing database in Redshift that Immuta initially connects to and creates the Immuta-managed database.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
okta specifies your username, password, appId, idpHost, and role. See the object description for details about child parameters.
Run the script returned in the response in the database created by the first script.
Response
The response returns the script for you to run in the database created by the first script.
Copy the request example from one of the sections below, and replace the values with your own as directed to configure the integration settings. The examples provided use JSON format, but the request also accepts YAML. The payload you provide must match the payload sent when generating the scripts.
See the config object description for parameter definitions, value types, and additional configuration options.
Username and password authentication example
This request specifies userPassword
as the authentication type for the Immuta system user. The username and password provided are credentials for a system account that can manage the database.
Replace the Immuta URL and API key with your own.
Pass the same payload you sent when generating the scripts, where
host is the URL of your Redshift account.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
initialDatabase is the name of an existing database in Redshift that Immuta initially connects to and creates the Immuta-managed database.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
username and password are the credentials for the system account that can act on Redshift objects and configure the integration.
Okta authentication example
This request uses Okta as the authentication type for the Immuta system user and enables impersonation to allow Immuta administrators to grant users permission to query Redshift data as other Immuta users.
Replace the Immuta URL and API key with your own.
Pass the same payload you sent when generating the scripts, where
host is the URL of your Redshift account.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
initialDatabase is the name of an existing database in Redshift that Immuta initially connects to and creates the Immuta-managed database.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
okta specifies your username, password, appId, idpHost, and role. See the object description for details about child parameters.
The response returns the status of the Redshift integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to get. Alternatively, you can get a list of all integrations and their IDs with the GET /integrations
endpoint.
The response returns a Redshift integration configuration. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
The response returns the configuration for all integrations. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
You have two options for updating your integration. Follow the steps that match your initial configuration of autoBootstrap:
automatic update (autoBootstrap is true
)
manual update (autoBootstrap is false
)
Copy the request example, and replace the values with your own as directed to update the integration settings. The example provided uses JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Change the config values to your own, where
host is the URL of your Redshift account.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
initialDatabase is the name of an existing database in Redshift that Immuta initially connects to and creates the Immuta-managed database.
okta specifies your username, password, appId, idpHost, and role. See the object description for details about child parameters.
The response returns the status of the Redshift integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
To manually update the integration, complete the following steps:
Copy the request example, and replace the values with your own as directed to generate the script. The example provided uses JSON format, but the request also accepts YAML.
See the config object description for parameter definitions, value types, and additional configuration options.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Change the config values to your own, where
host is the URL of your Redshift account.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
initialDatabase is the name of an existing database in Redshift that Immuta initially connects to and creates the Immuta-managed database.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
okta specifies your username, password, appId, idpHost, and role. See the object description for details about child parameters.
Run the script returned in the response in your Redshift environment.
Response
The response returns the script for you to run in your Redshift environment.
Copy the request example, and replace the values with your own as directed to update the integration settings. The example provided uses JSON format, but the request also accepts YAML. The payload you provide must match the payload sent when generating the script.
See the config object description for parameter definitions, value types, and additional configuration options.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to update.
Pass the same payload you sent when updating the script, where
host is the URL of your Redshift account.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
initialDatabase is the name of an existing database in Redshift that Immuta initially connects to and creates the Immuta-managed database.
impersonation specifies whether user impersonation is enabled. See the object description for child parameters.
okta specifies your username, password, appId, idpHost, and role. See the object description for details about child parameters.
The response returns the status of the Redshift integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Copy the request example.
Replace the Immuta URL and API key with your own.
Replace the {id} request parameter with the unique identifier of the integration you want to delete.
If you set
autoBootstrap to true
when enabling the integration, specify the authenticationType and the credentials you used to configure the integration in the payload, as illustrated in the example.
autoBootstrap to false
when enabling the integration, use the script cleanup endpoint (for integrations that were not successfully created) or the delete endpoint (for integrations that were successfully created) to remove Immuta-managed resources from your environment. Then, make the request above without including a payload to remove the integration from Immuta.
The response returns the status of the Redshift integration configuration that has been deleted. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
The integrations API is a REST API that allows you to integrate your remote data platform with Immuta so that Immuta can manage and enforce access controls on your data.
To configure an integration using the API, you must have the APPLICATION_ADMIN Immuta permission.
There are two methods for making an authenticated request to the integrations API. Select a tab below for instructions.
Generate your API key on the API Keys tab on your profile page and save the API key somewhere secure.
You will pass this API key in the authorization header when you make a request, as illustrated in the example below:
Generate your API key on the API Keys tab on your profile page and save the API key somewhere secure.
Save your API key in a .json file.
Make the following request to the authentication
endpoint:
You will receive a response that includes your bearer token. Pass that bearer token in the Authorization header when you make a request, as illustrated in the example below:
Use the POST /integrations
endpoint to configure the integration so that Immuta can enforce access controls on tables registered as Immuta data sources. See a section below for a sample request and details about configuring your integration.
Private preview: The Amazon S3 integration is available to select accounts. Reach out to your Immuta representative for details.
Copy the request example.
Replace the values in the request with your Immuta URL and API key or bearer token.
Change the config
values to your own, where
name is the name for the integration that is unique across all Amazon S3 integrations configured in Immuta.
awsAccountId is the ID of your AWS account.
awsRegion is the account's AWS region (such as us-east1
).
awsLocationRole is the AWS IAM role ARN assigned to the base access grants location. This is the role the AWS Access Grants service assumes to vend credentials to the grantee.
awsLocationPath is the base S3 location prefix that Immuta will use for this connection when registering S3 data sources. This path must be unique across all S3 integrations configured in Immuta.
awsAccessKeyId is the AWS access key ID of the AWS account configuring the integration.
awsSecretAccessKey is the AWS secret access key of the AWS account configuring the integration.
Replace the values in the request with your Immuta URL and API key or bearer token, and change the config
values to your own, where
host is the URL of your Azure Synapse Analytics account.
schema is the name of the Immuta-managed schema where all your secure views will be created and stored.
database is the name of an existing database where the Immuta system user will store all Immuta-generated schemas and views.
username and password are the username and password of the system account that can act on Azure Synapse Analytics objects and configure the integration.
The example sets autoBootstrap
to true
, which grants Immuta one-time access to credentials to configure the resources in your Azure Synapse Analytics environment for you. If you set autoBootstrap
to false
, you must manually run the bootstrap script in your Azure Synapse Analytics environment yourself before making the request.
For more configuration examples, see the Configure an Azure Synapse Analytics integration guide. For information about the configuration payload, see the Integration payload reference guide.
Replace the values in the request with your Immuta URL and API key or bearer token, and change the config
values to your own, where
workspaceUrl is your Databricks workspace URL.
httpPath is the HTTP path of your Databricks cluster or SQL warehouse.
token is the Databricks personal access token. This is the access token for the Immuta system account user.
catalog is 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.
For more configuration examples, see the Configure a Databricks Unity Catalog integration guide. For information about the configuration payload, see the Integration payload reference guide.
Private preview: This integration is available to select accounts. Reach out to your Immuta representative for details.
Create a Google Cloud service account and role by either using the Google Cloud console or the provided Immuta script.
Copy the request example. The example uses JSON format, but the request also accepts YAML.
Replace the Immuta URL and API key with your own.
Change the config values to your own, where
role is the Google Cloud role used to connect to Google BigQuery.
datasetSuffix is the suffix to postfix to the name of each dataset created to store secure views. This string must start with an underscore.
dataset is the name of the BigQuery dataset to provision inside of the project for Immuta metadata storage.
location is the dataset's location, which can be any valid GCP location (such as us-east1
).
credential is the Google BigQuery service account JSON keyfile credential content. See the Google documentation for guidance on generating and downloading this keyfile.
For more configuration examples, see the Configure a Google BigQuery integration guide. For information about the configuration payload, see the Integration payload reference guide.
Replace the values in the request with your Immuta URL and API key or bearer token, and change the config
values to your own, where
host is the URL of your Redshift account.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
initialDatabase is the name of an existing database in Redshift that Immuta initially connects to and creates the Immuta-managed database.
authenticationType is the type of authentication to use when connecting to Redshift.
username and password are the credentials for the system account that can act on Redshift objects and configure the integration.
The example sets autoBootstrap
to true
, which grants Immuta one-time access to credentials to configure the resources in your Redshift environment for you. If you set autoBootstrap
to false
, you must manually run the bootstrap script in your Redshift environment yourself before making the request.
For more configuration examples, see the Configure a Redshift integration guide. For information about the configuration payload, see the Integration payload reference guide.
Replace the values in the request with your Immuta URL and API key or bearer token, and change the config values to your own, where
host is the URL of your Snowflake account.
warehouse is the default pool of Snowflake compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
database is the name of a new empty database that the Immuta system user will manage and store metadata in.
authenticationType is the type of authentication to use when connecting to Snowflake.
username and password are the credentials for the system account that can act on Snowflake objects and configure the integration.
The example sets autoBootstrap
to true
, which grants Immuta one-time access to credentials to configure the resources in your Snowflake environment for you. If you set autoBootstrap
to false
, you must manually run the bootstrap script in your Snowflake environment yourself before making the request.
For more configuration examples, see the Configure a Snowflake integration guide. For information about the configuration payload, see the Integration payload reference guide.
Replace the values in the request with your Immuta URL and API key or bearer token.
Navigate to the Immuta App Settings page and click the Integrations tab.
Click your enabled Starburst (Trino) integration and copy the configuration snippet displayed.
Map usernames and create policies before you register your metadata to ensure that policies are enforced on tables and views immediately.
Map usernames to Immuta to ensure Immuta properly enforces policies and audits user queries.
Build global policies in Immuta to enforce access controls:
Register your metadata using the API or Immuta UI:
API how-to guides
UI how-to guide: Create a data source
See the following how-to guides for configuration examples and steps for creating, managing, or disabling your integration:
See the following reference guides for information about the integrations API endpoints, payloads, and responses:
The integrations resource allows you to create, configure, and manage your integration. How Immuta manages and administers policies in your data platform varies by integration.
To configure or manage an integration, users must have the APPLICATION_ADMIN Immuta permission.
Method | Endpoint | Description |
---|---|---|
Gets all integration configurations.
The response returns the configuration for all integrations. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Creates an integration configuration that allows Immuta to manage access policies on data registered in Immuta.
When you connect Immuta to your AWS account, the awsLocationPath
is the base S3 location prefix that Immuta will use for this connection when registering S3 data sources.
This request configures the integration using the AWS access key authentication method.
When you connect Immuta to your Azure Synapse Analytics account, the schema you specify is where all the policy-enforced views will be created and managed by Immuta.
This request creates a Databricks Unity Catalog integration configuration that allows Immuta to administer Unity Catalog policies on data registered in Immuta.
When you connect Immuta to your Google BigQuery account, the dataset you specify is where all the policy-enforced views will be created and managed by Immuta.
When you connect Immuta to your Redshift account, the Immuta system user will use the database you specify to manage and store metadata. The initial database (REDSHIFT_SAMPLE_DATA
, in the request below) is an existing Redshift database that Immuta connects to in order to create the Immuta-managed database (immuta
, in the request below).
This request specifies userPassword
as the authentication type for the Immuta system user. The username and password provided are credentials for a system account that can manage the database.
When you connect Immuta to your Snowflake account, the warehouse you specify is the default pool of compute resources the Immuta system user will use to run queries and perform other Snowflake operations.
This request specifies userPassword
authentication type. The username and password provided are credentials of a Snowflake account attached to a role with these privileges. These credentials are not stored; they are used by Immuta to configure the integration.
When you configure the Starburst (Trino) integration, Immuta generates an API key and configuration snippet on the Immuta app settings page that you will use to configure your Starburst cluster.
The request accepts a JSON or YAML payload with the parameters outlined below.
The response returns the status of the integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Deletes the integration configuration you specify in the request.
For Amazon S3 integrations, Databricks Unity Catalog integrations, Google BigQuery integrations, Starburst (Trino) integrations, or integration configurations with autoBootstrap set to false
, no payload is required to delete the integration.
For the integrations below, the request accepts a JSON or YAML payload when autoBootstrap is set to true
. See the payload description for your integration for parameters and details:
The response returns the status of the integration configuration that has been deleted. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Gets the integration configuration you specify in the request.
The response returns an integration configuration. See the response schema reference for details about the response schema. An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Updates an existing integration configuration.
This request enables user impersonation for the Azure Synapse Analytics integration.
The request below updates the access token.
The request below updates the private key for the Google BigQuery integration.
This request enables user impersonation for the Redshift integration.
This request enables auditing queries run in Snowflake.
The request accepts a JSON or YAML payload with the parameters outlined below.
The response returns the status of the integration configuration connection. See the response schema reference for details about the response schema.
A successful response includes the validation tests statuses.
An unsuccessful request returns the status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Gets the status of the integration specified in the request.
The response returns the status of the specified integration. An unsuccessful request returns the HTTP status code and an error message. See the HTTP status codes and error messages for a list of statuses, error messages, and troubleshooting guidance.
Creates a script to remove Immuta-managed resources from your platform. This endpoint is for Azure Synapse Analytics, Redshift, and Snowflake integrations that were not successfully created and, therefore, do not have an integration ID.
For Azure Synapse Analytics integrations, you must also make a request to the /integrations/scripts/post-cleanup endpoint to create another script that will finish removing Immuta-managed resources from the platform.
The request accepts a JSON or YAML payload with the parameters outlined below.
The response returns the script that you will run in your Azure Synapse Analytics, Redshift, or Snowflake environment.
Once you have run the script,
use the DELETE /integrations/{id}
endpoint to delete your Redshift or Snowflake integration in Immuta:
use the /integrations/scripts/post-cleanup endpoint to create another script that will finish removing Immuta-managed resources from your Azure Synapse Analytics platform.
Creates a script for you to run manually to set up objects and resources for Immuta to manage and enforce access controls on your data. This endpoint is available for Azure Synapse Analytics, Databricks Unity Catalog, Redshift, and Snowflake integrations.
The request accepts a JSON or YAML payload with the parameters outlined below.
The response returns the script that you will run in your Azure Synapse Analytics, Databricks Unity Catalog, Redshift, or Snowflake environment.
Creates a script to remove Immuta-managed resources from your platform. This endpoint is for Azure Synapse Analytics, Redshift, and Snowflake integrations that were successfully created.
The response returns the script that you will run in your Azure Synapse Analytics, Redshift, or Snowflake environment.
Once you have run the script, use the DELETE /integrations/{id}
endpoint to delete your integration in Immuta:
Creates a script for you to run manually to edit objects and resources managed by Immuta in your platform. This endpoint is available for Azure Synapse Analytics, Databricks Unity Catalog, Redshift, and Snowflake integrations.
The request accepts a JSON or YAML payload with the parameters outlined below.
The response returns the script that you will run in your Azure Synapse Analytics, Databricks Unity Catalog, Redshift, or Snowflake environment. Once you have run the script, use the PUT /integrations/{id}
endpoint to finish editing your integration:
Creates the first script for you to run manually to set up objects and resources for Immuta to manage and enforce access controls on your data in Azure Synapse Analytics or Redshift integrations.
The request accepts a JSON or YAML payload with the parameters outlined below.
The response returns the script that you will run in your Azure Synapse Analytics or Redshift environment.
Once you have run this script, use the /integrations/scripts/create endpoint to generate a script to finish creating the Immuta-managed resources in your platform.
Creates a second script to remove the final Immuta-managed resources from your Azure Synapse Analytics platform. This endpoint is for Azure Synapse Analytics integrations that were not successfully created and, therefore, do not have an integration ID.
Before making a request like the one below, you must make a request to the /integrations/scripts/cleanup endpoint to create the first script that will remove the initial Immuta-managed resources from the platform.
The request accepts a JSON or YAML payload with the parameters outlined below.
The response returns the script that you will run in your Azure Synapse Analytics environment.
Once you have run the script, use the DELETE /integrations/{id}
endpoint to delete your integration in Immuta by following the Delete Azure Synapse Analytics integration instructions.
See the following how-to guides for configuration examples and steps for creating, managing, or deleting your integration:
The table below outlines the response schema for all integration configurations.
Property | Description |
---|---|
The status property in the response schema shows the status of the integration. The table below provides definitions for each status and the state of the integration configuration.
Status | Description | State |
---|---|---|
The validationResults object provides details about the status of each test Immuta runs to validate the the integration configuration.
The table below provides the errors and messages for validation tests that fail when configuring or updating the integration.
The table below provides the errors and messages for validation tests that fail when configuring or updating the integration.
The table below provides the errors and messages for validation tests that fail when configuring or updating the integration.
The table below provides the errors and messages for validation tests that fail when configuring or updating the integration.
The table below provides the errors and messages for validation tests that fail when configuring or updating the integration.
The table below provides the errors and messages for validation tests that fail when configuring or updating the integration.
The how-to guides in this section illustrate how to integrate your remote data platform with Immuta so you can manage and enforce access controls on your data.
Private preview: The Amazon S3 integration is available to select accounts. Reach out to your Immuta representative for details.
Immuta's Amazon S3 integration allows users to apply subscription policies to data in S3 to restrict what prefixes, buckets, or objects users can access. To enforce access controls on this data, Immuta creates S3 grants that are administered by S3 Access Grants, an AWS feature that defines access permissions to data in S3.
Follow this guide to configure and manage your Amazon S3 integration. Example requests and responses are provided throughout the guide so that you can quickly copy and update them with your own settings.
In this integration, Immuta generates policy-enforced views in a schema in your configured Azure Synapse Analytics Dedicated SQL pool for tables registered as Immuta data sources.
Follow this guide to configure and manage your Azure Synapse Analytics integration. Example requests and responses are provided throughout the guide so that you can quickly copy and update them with your own settings.
Immuta’s integration with Unity Catalog allows you to manage multiple Databricks workspaces through Unity Catalog while protecting your data with Immuta policies. Instead of manually creating UDFs or granting access to each table in Databricks, you can author your policies in Immuta and have Immuta manage and enforce Unity Catalog access-control policies on your data in Databricks clusters or SQL warehouses.
Follow this guide to configure and manage your Databricks Unity Catalog integration. Example requests and responses are provided throughout the guide so that you can quickly copy and update them with your own settings.
Private preview: This integration is available to select accounts. Reach out to your Immuta representative for details.
In this integration, Immuta generates policy-enforced views in your configured Google BigQuery dataset for tables registered as Immuta data sources.
Follow this guide to configure and manage your Google BigQuery integration. Example requests and responses are provided throughout the guide so that you can quickly copy and update them with your own settings.
Immuta generates policy-enforced views in your configured Redshift schema for tables registered as Immuta data sources.
Follow this guide to configure and manage your Redshift integration. Example requests and responses are provided throughout the guide so that you can quickly copy and update them with your own settings.
Immuta manages access to Snowflake tables by administering Snowflake row access policies and column masking policies on those tables, allowing users to query tables directly in Snowflake while dynamic policies are enforced.
Follow this guide to configure and manage your Snowflake integration. Example requests and responses are provided throughout the guide so that you can quickly copy and update them with your own settings.
Immuta policies are translated into Starburst rules and permissions and applied directly to tables within users’ existing catalogs.
Follow this guide to configure and manage your Starburst (Trino) integration. Example requests and responses are provided throughout the guide so that you can quickly copy and update them with your own settings.
The parameters for configuring an integration in Immuta are outlined in the table below.
Parameter | Description | Required or optional | Default values | Accepted values |
---|
The config object configures the S3 integration. The table below outlines its child parameters.
Parameter | Description | Required or optional | Default values | Accepted values |
---|
The table below outlines the parameters for creating an S3 data source.
The table below outlines the response schema for successful requests.
The config object configures the Azure Synapse Analytics integration. The table below outlines its child parameters.
The impersonation object enables and defines roles for user impersonation for Azure Synapse Analytics. The table below outlines its child parameters.
The credentials you used when configuring your integration are required in the payload when autoBootstrap was set to true
when setting up your integration. For integration configurations with autoBootstrap set to false
, no payload is required when deleting the integration.
The metadataDelimiters object specifies the delimiters that Immuta uses to store profile data in Azure Synapse Analytics. The table below outlines its child parameters.
The config object configures the Databricks Unity Catalog integration. The table below outlines its child parameters.
The groupPattern object excludes the listed group from having data policies applied in the Databricks Unity Catalog integration. This account-level group should be used for privileged users and service accounts that require an unmasked view of data. The table below outlines its child parameters.
The proxyOptions object represents your proxy server configuration in Databricks Unity Catalog. The table below outlines the object's child attributes.
The config object configures the Google BigQuery integration. The table below outlines its child parameters.
The config object configures the Redshift integration. The table below outlines its child parameters.
The authentication type and credentials you used when configuring your integration are required in the payload when autoBootstrap was set to true
when setting up your integration. For integration configurations with autoBootstrap set to false
, no payload is required when deleting the integration.
The impersonation object enables and defines roles for user impersonation for Redshift. The table below outlines its child parameters.
The config object configures the Snowflake integration. The table below outlines its child parameters.
The authentication type and credentials you used when configuring your integration are required in the payload when autoBootstrap was set to true
when setting up your integration. For integration configurations with autoBootstrap set to false
, no payload is required when deleting the integration.
The impersonation object enables and defines roles for user impersonation for Snowflake. The table below outlines its child parameters.
Parameter | Description | Required or optional | Default values | Accepted values |
---|---|---|---|---|
Parameter | Description | Required or optional |
---|---|---|
Parameter | Description | Required or optional |
---|---|---|
Parameter | Description | Required or optional |
---|---|---|
Parameter | Description | Required or optional |
---|---|---|
Parameter | Description | Required or optional | Default values | Accepted values |
---|---|---|---|---|
Parameter | Description | Required or optional |
---|---|---|
Parameter | Description | Required or optional |
---|---|---|
Parameter | Description | Required or optional | Default values | Accepted values |
---|---|---|---|---|
Parameter | Description | Required or optional | Default values | Accepted values |
---|---|---|---|---|
Parameter | Description | Required or optional | Default values | Accepted values |
---|---|---|---|---|
Parameter | Description | Required or optional | Default values | Accepted values |
---|---|---|---|---|
Parameter | Description | Required or optional | Default values | Accepted values |
---|---|---|---|---|
Attribute | Description | Possible values |
---|---|---|
Test name | Description | Message |
---|---|---|
Test name | Description | Message |
---|---|---|
Test name | Description | Message |
---|---|---|
Test name | Description | Message |
---|---|---|
Test name | Description | Message |
---|---|---|
Test name | Description | Message |
---|---|---|
Parameter | Description | Required or optional | Default values | Accepted values |
---|
Property | Description |
---|
Parameter | Description | Required or optional | Default values | Accepted values |
---|
Parameter | Description | Default values | Accepted values |
---|
Parameter | Description | Required or optional | Accepted values |
---|
Parameter | Description | Default values | Accepted values |
---|
Parameter | Description | Required or optional | Default values | Accepted values |
---|
The audit object enables . The table below outlines its child parameter.
Parameter | Description | Default values | Accepted values |
---|
Parameter | Description | Default values | Accepted values |
---|
Parameter | Description | Required or optional | Default values | Accepted values |
---|
Parameter | Description | Required or optional | Default values | Accepted values |
---|
Parameter | Description | Required or optional | Default values | Accepted values |
---|
Parameter | Description | Required or optional | Accepted values |
---|
Parameter | Description | Default values | Accepted values |
---|
The okta object represents your Okta configuration. This object is required if you set okta
as your . The table below outlines its child parameters.
Parameter | Description | Required or optional | Default values | Accepted values |
---|
Parameter | Description | Required or optional | Default values | Accepted values |
---|
The audit object enables . The table below outlines its child parameter.
Parameter | Description | Default values | Accepted values |
---|
Parameter | Description | Required or optional | Accepted values |
---|
Parameter | Description | Default values | Accepted values |
---|
The lineage object enables . When this setting is enabled, Immuta automatically applies tags added to a Snowflake table to its descendant data source columns in Immuta so you can build policies using those tags to restrict access to sensitive data. The table below outlines its child parameters.
Parameter | Description | Required or optional | Default values | Accepted values |
---|
The oAuthClientConfig object represents your OAuth configuration in Snowflake. This object is required if you set oAuthClientCredentials
as your , and you must set autoBootstrap to false
. The table below outlines the object's child parameters.
Parameter | Description | Required or optional | Default values | Accepted values |
---|
The userRolePattern object excludes roles and users from authorization checks in the . The table below outlines its child parameter.
Parameter | Description | Default values | Accepted values |
---|
The workspaces object represents an Immuta project workspace configured for . The table below outlines its child parameters.
Parameter | Description | Default values | Accepted values |
---|
GET
Gets all integration configurations
POST
Creates an integration
DELETE
Deletes a configured integration
GET
Gets an integration configuration
PUT
Updates a configured integration
GET
Gets the status of the specified integration
POST
Creates a script to remove Immuta-managed resources from your platform for integrations that were not successfully created
POST
Creates a script to set up Immuta-managed resources in your platform
POST
Creates a script to remove Immuta-managed resources from your platform for integrations that were successfully configured
POST
Creates a script to edit existing Immuta-managed resources in your platform
POST
Creates the first script to set up Immuta-managed resources in your Azure Synapse Analytics or Redshift platform
POST
Creates the second script to remove Immuta-managed resources from your Azure Synapse Analytics integration if it was not successfully created
type string
The type of integration to configure.
Required
-
Azure Synapse Analytics
Databricks
Google BigQuery
Native S3
Redshift
Snowflake
Trino
autoBootstrap boolean
When true
, Immuta will automatically configure the integration in your Azure Synapse Analytics, Databricks Unity Catalog, Redshift, or Snowflake environment for you. When false
, you must set up your environment manually before configuring the integration with the API. This parameter must be set to false
in the Amazon S3 and Google BigQuery configurations. See the specific how-to guide for configuring your integration for details: Azure Synapse Analytics, Databricks Unity Catalog, Redshift, Snowflake.
Required for all integrations except Starburst (Trino)
-
true
or false
config object
This object specifies the integration settings. See the config object description for your integration for details: Amazon S3, Azure Synapse Analytics, Databricks Unity Catalog, Google BigQuery, Redshift, or Snowflake.
Required for all integrations except Starburst (Trino)
-
-
dryRun boolean
When true
, the integration configuration will not actually be created, and the response returns the validation tests statuses.
Optional
id number
The unique identifier of the integration configuration.
Required
dryRun boolean
When true
, the integration configuration will not actually be deleted, and the response returns the validation tests statuses.
Optional
id number
The unique identifier of the integration configuration.
Required
type string
The type of integration to configure.
Required
-
Azure Synapse Analytics
Databricks
Google BigQuery
Redshift
Snowflake
autoBootstrap boolean
When true
, Immuta will automatically configure the integration in your Azure Synapse Analytics, Databricks Unity Catalog, Redshift, or Snowflake environment for you. When false
, you must set up your environment manually before configuring the integration with the API. This parameter must be set to false
in the Google BigQuery configuration. See the specific how-to guide for configuring other integrations: Azure Synapse Analytics, Databricks Unity Catalog, Redshift, Snowflake.
Required
-
true
or false
config object
This object specifies the integration settings. See the config object description for your integration for details: Azure Synapse Analytics, Databricks Unity Catalog, Google BigQuery, Redshift, or Snowflake.
Required
-
-
dryRun boolean
When true
, the integration configuration will not actually be updated, and the response returns the validation tests statuses.
Optional
id number
The unique identifier of the integration configuration.
Required
type string
The type of integration to clean up.
Required
-
Azure Synapse Analytics
Redshift
Snowflake
autoBootstrap boolean
Set to false
to specify that you will run the script in your environment yourself to clean up the integration resources. See the Azure Synapse Analytics, Redshift, or Snowflake manual setup section for details.
Required
-
false
config object
This object specifies the integration settings. See the config object description for your integration for details: Azure Synapse Analytics, Redshift, or Snowflake.
Required
-
-
type string
The type of integration to configure.
Required
-
Azure Synapse Analytics
Databricks
Redshift
Snowflake
autoBootstrap boolean
Set to false
to specify that you will run the script in your environment yourself to configure the integration. You must run the Immuta script before creating the integration. See the Azure Synapse Analytics, Databricks Unity Catalog, Redshift, or Snowflake manual setup guides for details.
Required
-
false
config object
This object specifies the integration settings. See the config object description for your integration for details: Azure Synapse Analytics, Databricks Unity Catalog, Redshift, or Snowflake.
Required
-
-
type string
The type of integration to configure.
Required
-
Azure Synapse Analytics
Databricks
Redshift
Snowflake
autoBootstrap boolean
Set to false
to specify that you will run the script in your environment yourself to configure the integration. You must run the Immuta script before creating the integration. See the Azure Synapse Analytics, Databricks Unity Catalog, Redshift, or Snowflake manual setup guides for details.
Required
-
false
config object
This object specifies the integration settings. Some settings cannot be changed once an integration is configured. See the config object description for your integration for details: Azure Synapse Analytics, Databricks Unity Catalog, Redshift, or Snowflake.
Required
-
-
type string
The type of integration to configure.
Required
-
Azure Synapse Analytics
Redshift
autoBootstrap boolean
Set to false
to specify that you will run the script in your environment yourself to configure the integration. You must run the Immuta script before creating the integration. See the Azure Synapse Analytics or Redshift manual setup guides for details.
Required
-
false
config object
This object specifies the integration settings. See the config object description of the Azure Synapse Analytics or Redshift integration configuration for details.
Required
-
-
type string
The type of integration to clean up.
Required
-
Azure Synapse Analytics
autoBootstrap boolean
Set to false
to specify that you will run the script in your environment yourself to clean up the integration resources. See the Azure Synapse Analytics manual setup section for details.
Required
-
false
config object
This object specifies the integration settings. See the config object description of Azure Synapse Analytics for details.
Required
-
-
id number
The unique identifier of the integration.
The status of the integration. Statuses include createError
, creating
, deleteError
, deleting
, editError
, editing
, enabled
, migrateError
, and migrating
. See the statuses table below for descriptions.
The results of the validation tests. See the object description for details.
config object
The integration configuration. See the integration configuration payload for Amazon S3, Azure Synapse Analytics, Databricks Unity Catalog, Google BigQuery, Redshift, or Snowflake for details.
createError
Error occurred during creation of the integration.
In use
creating
Integration is in the process of being created and set up.
In use
deleted
Integration is deleted.
Not in use
deleteError
Error occurred while deleting the integration. The integration has been rolled back to the previous state.
In use
deleting
Integration is in the process of being disabled or deleted.
In use
disabled
Integration was force disabled and no cleanup was performed on the native platform.
Not in use
editError
Error occurred while editing the integration. The integration has been rolled back to the previous state.
In use
editing
The integration is in the process of being edited.
In use
enabled
The integration is enabled and active.
In use
migrateError
Error occurred while performing a migration of the integration. The integration has been rolled back to the previous state.
In use
migrating
Migration is being performed on the integration. An example of a migration is a stored procedure update.
In use
recurringValidationError
Validation has failed during the periodic check and the integration may be misconfigured.
In use
status string
Whether or not the connection validation passed.
passed
failed
warning
skipped
validationTests array[]
This array includes the validation tests run on the integration connection.
-
validationTests.name string
The name of the validation test.
See the section corresponding to your integration type for a list of test names and messages:
validationTests.status string
The status of the validation test.
passed
failed
warning
skipped
validationTests.message string
When a test fails, the message provides context and guidance for addressing the failure.
See the section corresponding to your integration type for a list of test names and messages:
There is no existing integration matching this configuration
Verifies that the integration configuration does not match an existing one.
-
The provided integration name is unique across Immuta S3 integrations
Verifies that the name of the integration does not match an existing S3 integration name.
"The Immuta service account does not end with expected value."
The provided access grants location role is a valid ARN format
Verifies that the access grants location role is in the correct format.
"The specified access grants location role is not a valid ARN format."
The provided AWS credentials allow fetching the caller's identity via the AWS STS API
Verifies that the integration can use the AWS STS API to get the caller's identity using the provided credentials.
"Found user ID [], ARN [] using STS."
An AWS Access Grants instance is configured in the provided AWS account and region
Verifies that an Access Grants instance has been created in the specified AWS account and region.
"AccessDenied
: Unable to retrieve the access grants instance for account, region: AWS responded with code [403], name [AccessDenied
] and message [Access Denied] for request ID []."
The provided S3 path exists and Immuta can list prefixes
Verifies that Immuta can access and list prefixes for the provided S3 path.
"Immuta does not have access to the requested path [s3://]. Without access, Immuta will be unable to assist with S3 path discovery during data source creation."
An AWS Access Grants location does not yet exist for the provided path
Verifies that an Access Grants location has not already been registered for the specified S3 path.
"AccessDenied
: Unable to list S3 access grants locations for account [], location scope []: AWS responded with code [403], name [AccessDenied
] and message [Access Denied] for request ID []."
Initial validation: connect
Verifies that Immuta can connect to Azure Synapse Analytics.
"Unable to connect to host."
Initial validation: delimiters test
Verifies that the delimiters are unique.
"Hash delimiter and array delimiter must not have the same value."
Validate automatic: impersonation role does not exist
Verifies that the user impersonation role specified in the request payload does not already exist.
"Impersonation role already exists. If this role can be safely dropped please do so and try again. Alternatively, specify a different role name."
Validate Immuta system user can manage database
Verifies that the specified user can manage the database.
"User does not have permission to manage database."
Basic connection test
Verifies that Immuta can connect to Databricks Unity Catalog.
"Could not connect to host, please confirm you are using valid connection parameters."
Manual catalog setup
Verifies that the catalog and tables used by Immuta are present and have the correct permissions. This test is run when autoBootstrap is false
in the Databricks Unity Catalog integration configuration.
"Encountered an error looking up catalog metadata for catalog."
Metastore validation
Verifies that the Unity Catalog metastore is assigned to the specified workspace.
"No metastore is assigned to workspace."
Basic validation: connection can be made to BigQuery
Verifies that Immuta can connect to Google BigQuery.
"Could not connect to the remote BigQuery connection."
Basic validation: Immuta service account postfix
Verifies that the service account ends with the expected value of @<projectId>.iam.gserviceaccount.com
.
"The Immuta service account does not end with expected value."
Basic validation: non-matching service account in key file
Verifies that the service account matches the one provided in the keyfile.
"The service account does not match the service account in the provided key file."
Basic validation: verify service account not being used for data source connection credentials
Verifies that credentials that have been used to create Google BigQuery data sources are not the same credentials used to configure the Google BigQuery integration.
"Native BigQuery doesn't support the reuse of service accounts for integrations that are currently being used for data sources."
Validate manual: [dataset - create]
Verifies that the custom role assigned to the service account has the permissions to create the dataset.
Message includes a permission warning.
Validate manual: [dataset - delete]
Verifies that the custom role assigned to the service account has the permissions to delete the Immuta-managed dataset.
Message includes a permission warning.
Initialize validation: [dataset - exists]
Verifies that this dataset does not already exist.
"An existing Immuta instance exists. Delete this dataset to continue."
Validate manual: [table - create]
Verifies that the custom role assigned to the service account has the permissions to create Immuta-managed tables.
Message includes a permission warning.
Validate manual: [table - delete]
Verifies that the custom role assigned to the service account has the permissions to delete Immuta-managed tables.
Message includes a permission warning.
Validate manual: [table - get]
Verifies that the custom role assigned to the service account has the permissions to get Immuta-managed tables.
Message includes a permission warning.
Validate manual: [table - insert]
Verifies that the custom role assigned to the service account has the permissions to insert rows in Immuta-managed tables.
Message includes a permission warning.
Validate manual: [table - update]
Verifies that the custom role assigned to the service account has the permissions to update Immuta-managed tables.
Message includes a permission warning.
Initial validation: basic connection test
Verifies that Immuta can connect to Redshift.
"Unable to connect to host."
Validate automatic: database does not exist
Verifies that the database specified in the request payload does not already exist.
"The database already exists. If this database can be safely dropped, please do so and try again. Alternatively, specify a different database name."
Validate automatic: impersonation role does not exist
Verifies that the user impersonation role specified in the request payload does not already exist.
"Impersonation role already exists. If this role can be safely dropped please do so and try again. Alternatively, specify a different role name."
Initial validation: basic connection test
Verifies that Immuta can connect to the Snowflake database.
"Unable to connect to host."
Initial validation: default warehouse access test
Verifies that the default warehouse exists and that the Immuta system account user has permissions to act on the default warehouse specified.
"Unable to access default warehouse. If this was a manual installation, ensure that the user has been granted usage on the specified warehouse."
Initial validation: table grants role prefix is unique
Verifies that the prefix for Snowflake table grants does not already exist. If this prefix already exists, navigate to the Integration Settings section on the Immuta app settings page to disable Snowflake table grants, re-enable it, and then update the role prefix.
"The Snowflake table grants role prefix IMMUTA
is used by another Immuta instance connected to the same Snowflake host. Please update the table grants role prefix for this Immuta instance and try again."
Initial validation: validate access to privileged role
Verifies that the privileged role exists and that it has been assigned to the Immuta system account user.
"User does not have access to the privileged role."
Validate automatic bootstrap user grants
Verifies the credentials of the user executing the Immuta bootstrap script in Snowflake.
-
Validate automatic: database does not exist
Verifies that the database specified in the request payload does not already exist.
"The database already exists. If this database can be safely dropped, please do so and try again. Alternatively, specify a different database name."
Validate automatic: impersonation role does not exist
Verifies that the user impersonation role specified in the request payload does not already exist.
"Impersonation role already exists. If this role can be safely dropped please do so and try again. Alternatively, specify a different role name."
type | The type of integration. | Required | - |
|
integrationId | The unique identifier of the S3 integration. | Required | - | - |
dataSources.dataSourceName | The name of the S3 data source you want to create. | Required | - | - |
dataSources.prefix | The S3 prefix that creates a data source for the prefix, bucket, or object provided in the path. | Required | - | - |
dataSourceId | The unique identifier of the data source. |
prefix | The S3 path of the prefix, bucket, or object used to create the data source. |
dataSourceName | The name of the data source. |
enabled | When |
|
|
role | The name of the user impersonation role. |
| - |
authenticationType | The type of authentication used when originally configuring the Azure Synapse Analytics integration. | Required |
|
username | The username of the system account that configured the integration. | Required if autoBootstrap was | - |
password | The password of the system account that configured the integration. | Required if autoBootstrap was | - |
hashDelimiter | A delimiter used to separate key-value pairs. | ` | ` |
hashKeyDelimiter | A delimiter used to separate a key from its value. |
| - |
arrayDelimiter | A delimiter used to separate array elements. |
| - |
enabled | This setting enables or disables Databricks Unity Catalog query audit. |
|
|
deny | The name of a group in Databricks that will be excluded from having data policies applied. This account-level group should be used for privileged users and service accounts that require an unmasked view of data. |
| - |
host | The hostname of the proxy server. | Required | - | Valid URL hostnames |
port | The port to use when connecting to your proxy server. | Optional |
|
|
username | The username to use with the proxy server. | Optional |
| - |
password | The password to use with the proxy server. | Optional |
| - |
enabled | When |
|
|
role | The name of the user impersonation role. |
| - |
username | The username of the system account that can act on Redshift objects and configure the integration. | Required | - | - |
password | The password of the system account that can act on Redshift objects and configure the integration. | Required | - | - |
appId | The Okta application ID. | Required | - | - |
idpHost | The Okta identity provider host URL. | Required | - | - |
role | The Okta role. | Required | - | - |
enabled | This setting enables or disables Snowflake query audit. |
|
|
enabled | When |
|
|
role | The name of the user impersonation role. |
| - |
enabled | When | Optional |
|
|
lineageConfig | Configures what tables Immuta will ingest lineage history for, the number of rows to ingest per batch, and what tags to propagate. Child parameters include tableFilter, tagFilterRegex, and ingestBatchSize. | Required if enabled is | - | - |
lineageConfig.tableFilter | This child parameter of lineageConfig determines which tables Immuta will ingest lineage for. Use a regular expression that excludes | Optional |
| Regular expression that excludes |
lineageConfig.tagFilterRegex | This child parameter of lineageConfig determines which tags to propagate using lineage. Use a regular expression that excludes | Optional |
| Regular expression that excludes |
lineageConfig.ingestBatchSize | This child parameter of lineageConfig configures the number of rows Immuta ingests per batch when streaming Access History data from your Snowflake instance. | Optional |
| Minimum value of |
exclude | This array is a list of roles and users to exclude from authorization checks. |
| - |
enabled | This setting enables or disables Snowflake project workspaces. If you use Snowflake secure data sharing with Immuta, set this property to |
|
|
warehouses | This array is a list of warehouses workspace users have usage privileges on. |
| - |
type | The type of integration to configure. | Required | - |
|
autoBootstrap | Required for all integrations except Starburst (Trino) | - |
|
config | Required for all integrations except Starburst (Trino) | - | - |
name | A name for the integration that is unique across all Amazon S3 integrations configured in Immuta. | Required | - | - |
awsAccountId | The ID of your AWS account. | Required | - | - |
awsRegion | The AWS region to use. | Required | - | Any valid AWS region (us-east-1, for example) |
awsLocationRole | The AWS IAM role ARN assigned to the base access grants location. This is the role the AWS Access Grants service assumes to vend credentials to the grantee. When a grantee accesses S3 data, the AWS Access Grants service attaches session policies and assumes this role in order to vend scoped down credentials to the grantee. This role needs full access to all paths under the S3 location prefix. | Required | - | - |
awsLocationPath | The base S3 location prefix that Immuta will use for this connection when registering S3 data sources. This path must be unique across all S3 integrations configured in Immuta. | Required | - | - |
awsRoleToAssume | The optional AWS IAM role ARN Immuta assumes when interacting with AWS. | Optional |
| - |
authenticationType | The method used to authenticate with AWS when configuring the S3 integration. | Required | - |
|
awsAccessKeyId | The AWS access key ID for the AWS account configuring the integration. | Required when authenticationType is | - | - |
awsSecretAccessKey | The AWS secret access key for the AWS account configuring the integration. | Required when authenticationType is | - | - |
port | The port to use when connecting to your S3 Access Grants instance. | Optional |
|
|
host | The URL of your Azure Synapse Analytics account. | Required | - | Valid URL hostnames. |
database | Name of an existing database where the Immuta system user will store all Immuta-generated schemas and views. | Required | - | - |
schema | Name of the Immuta-managed schema where all your secure views will be created and stored. | Required | - | - |
authenticationType | The method used to authenticate with Azure Synapse Analytics when configuring the integration. | Required | - |
|
username | The username of the system account that can act on Azure Synapse Analytics objects and configure the integration. | Required | - | - |
password | The password of the system account that can act on Azure Synapse Analytics objects and configure the integration. | Required | - | - |
Optional | - |
port | The port to use when connecting to your Azure Synapse Analytics account host. | Optional |
|
|
Optional | - |
connectArgs | The connection string arguments to pass to the ODBC driver when connecting as the Immuta system user. | Optional | - | - |
port | The port to use when connecting to your Databricks account host. | Optional |
|
|
workspaceUrl | Databricks workspace URL. For example, | Required | - | - |
httpPath | The HTTP path of your Databricks cluster or SQL warehouse. | Required | - | - |
token | The Databricks personal access token. This is the access token for the Immuta system account user. | Required | - | - |
Optional |
| - |
Optional | - |
catalog | 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. | Optional |
| - |
Optional | - | - |
role | Google Cloud role used to connect to Google BigQuery. | Required | - | - |
datasetSuffix | Suffix to postfix to the name of each dataset created to store secure views. This string must start with an underscore. | Required | - | - |
dataset | Name of the BigQuery dataset to provision inside of the project for Immuta metadata storage. | Optional |
| - |
location | The dataset's location. After a dataset is created, the location can't be changed. | Required | - | Any valid GCP location ( |
credential | Required | - | - |
port | The port to use when connecting to your BigQuery account host. | Optional |
|
|
host | The URL of your Redshift account. | Required | - | Valid URL hostnames |
database | Name of a new empty database that the Immuta system user will manage and store metadata in. | Required | - | - |
initialDatabase | Name of the existing database in Redshift that Immuta initially connects to and creates the Immuta-managed database. | Required if autoBootstrap is | - | - |
authenticationType | The type of authentication to use when connecting to Redshift. | Required | - |
|
username | The username of the system account that can act on Redshift objects and configure the integration. | Required if you selected | - | - |
password | The password of the system account that can act on Redshift objects and configure the integration. | Required if you selected | - | - |
Required if you selected | - | - |
databaseUser | The Redshift database username. | Required if you selected | - | - |
accessKeyId | The Redshift access key ID. | Required if you selected | - | - |
secretKey | The Redshift secret key. | Required if you selected | - | - |
sessionToken | The Redshift session token. | Optional if you selected | - | - |
port | The port to use when connecting to your Redshift account host. | Optional |
|
|
Optional | - |
connectArgs | The connection string arguments to pass to the ODBC driver when connecting as the Immuta system user. | Optional | - | - |
authenticationType | The type of authentication used when originally configuring the Redshift integration. | Required if autoBootstrap was |
|
username | The username of the system account that configured the integration. | Required if you selected | - |
password | The password of the system account that configured the integration. | Required if you selected | - |
databaseUser | The Redshift database username. | Required if you selected | - |
accessKeyId | The Redshift access key ID. | Required if you selected | - |
secretKey | The Redshift secret key. | Required if you selected | - |
sessionToken | The Redshift session token. | Optional if you selected | - |
Required if you selected | - |
host | The URL of your Snowflake account. | Required | - | Valid URL hostnames |
warehouse | The default pool of compute resources the Immuta system user will use to run queries and perform other Snowflake operations. | Required | - | - |
database | Name of a new empty database that the Immuta system user will manage and store metadata in. | Required | - | - |
authenticationType | The type of authentication to use when connecting to Snowflake. | Required | - |
|
username | The username of a Snowflake account that can act on Snowflake objects and configure the integration. | Required if you selected | - | - |
password | The password of a Snowflake account that can act on Snowflake objects and configure the integration. | Required if you selected | - | - |
privateKey | 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. | Required if you selected | - | - |
Required if you selected | - | - |
role | The privileged Snowflake role used by the Immuta system account when configuring the Snowflake integration. | Required when autoBootstrap is | - | - |
port | The port to use when connecting to your Snowflake account host. | Optional |
|
|
Optional | - |
Optional | - |
Optional |
| - |
Optional | - |
connectArgs | This parameter is used to set | Optional | - | - |
privilegedConnectArgs | The connection string arguments to pass to the ODBC driver when connecting as the privileged user. | Optional when autoBootstrap is | - | - |
Optional | - | - |
authenticationType | The type of authentication used when originally configuring the integration. | Required if autoBootstrap was |
|
username | The username of the system account that configured the integration. | Required for the Azure Synapse Analytics integration or if you selected | - |
password | The password of the system account that configured the integration. | Required for the Azure Synapse Analytics integration or if you selected | - |
privateKey | 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. | Required if you selected | - |
Required if you selected | - |
role | The privileged Snowflake role used by the Immuta system account when configuring the Snowflake integration. | Required when autoBootstrap is | - |
provider | The identity provider for OAuth, such as Okta. | Required | - | - |
clientId | The client identifier of your registered application. | Required | - | - |
authorityUrl | Authority URL of your identity provider. | Required | - | - |
useCertificate | Specifies whether or not to use a certificate and private key for authenticating with OAuth. | Required | - |
|
publicCertificateThumbprint | Your certificate thumbprint. | Required if useCertificate is | - | - |
oauthPrivateKey | The private key content. | Required if useCertificate is | - | - |
clientSecret | Client secret of the application. | Required if useCertificate is | - | - |
resource | An optional resource to pass to the token provider. | Optional | - | - |
scope | Optional |
| - |
The integrations API returns HTTP status codes, error codes, and messages in JSON format.
The table below provides the HTTP code, the error code, an example message, and troubleshooting guidance for the error.
Code | Text | Description |
---|---|---|
The table below provides the HTTP code, the error code, an example message, and troubleshooting guidance for each error.
Code | Text | Description |
---|---|---|
The table below provides the HTTP code, the error code, an example message, and troubleshooting guidance for each error.
Code | Text | Description |
---|---|---|
The table below provides the HTTP code, the error code, an example message, and troubleshooting guidance for each error.
When true
, Immuta will automatically configure the integration in your Azure Synapse Analytics, Databricks Unity Catalog, Redshift, or Snowflake environment for you. When false
, you must set up your environment manually before configuring the integration with the API. This parameter must be set to false
in the Amazon S3 and Google BigQuery configurations. See the specific how-to guide for configuring your integration for details: , , , .
This object specifies the integration settings. See the config object description for your integration for details: , , , , , or .
object
This object is a set of delimiters that Immuta uses to store profile data in Azure Synapse Analytics. See the for parameters.
See the for default values.
object
Enables user impersonation. See the for parameters.
Disabled by default. See the for parameters.
object
This object allows you to configure your integration to use a proxy server. See the for child attributes.
object
This object enables Databricks Unity Catalog query audit. See the for parameters.
Disabled by default. See the for parameters.
object
This object allows you to exclude groups in Databricks from authorization checks. See the for parameters.
The Google BigQuery service account JSON keyfile credential content. See the for guidance on generating and downloading this keyfile.
object
This object represents your Okta configuration. See the for parameters.
object
Enables user impersonation. See the for parameters.
Disabled by default. See the for parameters.
object
This object represents your Okta configuration. See the for parameters.
object
This object represents your OAuth configuration. To use this authentication method, autoBootstrap must be false
. See the for parameters.
object
This object enables Snowflake query audit. See the for the parameter.
Disabled by default. See the for the parameter.
object
Enables user impersonation. See the for parameters.
Disabled by default. See the for parameters.
object
This object excludes roles and users from authorization checks. See the for parameters.
object
This object represents an Immuta project workspace configured for Snowflake. See the for parameters.
Disabled by default. See the for parameters.
object
Enables Snowflake lineage ingestion so that Immuta can apply tags added to Snowflake tables to their descendant data source columns. See the for parameters.
object
This object represents your OAuth configuration. See the for parameters.
The scope limits the operations and roles allowed in Snowflake by the access token. See the for details about scopes.
Code | Text | Description |
---|---|---|
404
Not found
Example: "No Integration found with ID 5." The request failed because the integration with the given ID was not found. Use the GET /integrations endpoint to list all integration configurations to find the correct ID.
400
Bad request
Example: "Credentials are not required for disable unless the integration was configured automatically. If you need to update your integration credentials, use PUT to update the integration before disabling." The request failed because the payload provided authentication credentials for a manually bootstrapped integration. Remove the authentication credentials from the payload.
400
Bad request
Example: "Integrations that are automatically configured require privileged credentials to disable. Please provide them in your payload." The request failed because the integration was created with autoBootstrap set to true, and privileged credentials were not provided in the request payload to delete the integration. Provide the credentials you used to configure your Azure Synapse Analytics, Redshift, or Snowflake integration.
400
Bad request
Example: "Credentials are not required to disable a Databricks integration. If you need to update your integration credentials, use PUT to update the integration before disabling." The request failed because the payload provided authentication credentials for a Databricks integration. Remove the authentication credentials from the payload.
404
Not found
Example: "No integration found with ID 5." The request failed because the integration with the given ID was not found. Use the GET /integrations endpoint to list all integration configurations to find the correct ID.
409
Conflict
Example: "Unable to edit integration with ID 10 in current state editing." The request failed because the integration is currently being modified or deleted. Use the GET /integrations/{id}/status endpoint to determine when the integration has finished updating. Then, delete the integration.
422
Unprocessable entity
Example: "Unable to delete integration with ID 7, validation failed." The request failed because a validation test failed. See the validation results object documentation for a list of validation test messages and errors to address the issue.
400
Bad Request
Example: "Use PUT /integrations/1 endpoint to update connection information for Snowflake integration on host test-account.snowflakecomputing.com (id = 1) that previously failed to create." The request failed because the integration previously failed to create. The message you receive includes the ID and host of the integration that failed. Use the PUT /integrations/{id} endpoint to update the connection information for that integration to create it.
409
Conflict
Example: "Snowflake integration already exists on test-account.snowflakecomputing.com (id = 1)." The request failed because an integration already exists on the host. Use the integration ID provided in the error message to delete or modify the existing integration. Ensure that the name and config parameters in the new configuration do not conflict with your existing integration.
422
Unprocessable entity
Example: "Validation of prerequisite setup failed. Unable to create integration." The request failed because a validation test failed. See the validation results object documentation for a list of validation test messages and errors to address the issue.
422
Unprocessable entity
Example: "Processing Error: Error trying to get the current metastore info." The request failed because Immuta could not find the Databricks metastore information.
400
Bad request
Example: "Unable to edit integration due to changes of non-editable attribute(s)." The request failed because an attribute was changed that cannot be edited. The error message includes a list of the attributes that the request attempted to change.
404
Not found
Example: "No integration found with ID 5." The request failed because the integration with the given ID was not found. Use the GET /integrations endpoint to list all integration configurations to find the correct ID.
409
Conflict
Example: "Unable to edit integration with ID 10 in current state editing." The request failed because the integration is currently being modified or deleted. Use the GET /integrations/{id}/status endpoint to determine when the integration has finished updating. Then, modify the integration. If the integration has been deleted, use the POST /integrations endpoint to re-create the integration.
422
Unprocessable entity
Example: "Unable to edit integration with ID 7, validation failed." The request failed because a validation test failed. See the validation results object documentation for a list of validation test messages and errors to address the issue.