Manage Data Sources
Additional fields may be included in some responses you receive; however, these attributes are for internal purposes and are therefore undocumented.
Endpoints and methods
POST
Sync the data policies and grants for data sources in the remote data platform.
PUT
Trigger the schema monitoring job for the specified detection group, or all groups if no ID is given.
GET
Refresh tags from an external catalog on a data source. The external catalog must be linked to the data source.
GET
Get all of the recent policy activities for a given data source.
DELETE
Delete a data source. This will perform a soft delete on the first call and a hard delete the second time.
PUT /dataSource/{dataSourceId}
PUT /dataSource/{dataSourceId}The /dataSource/{dataSourceId} endpoint cannot be used for connection-backed data sources when updating deleted or name. To complete these actions on any connection-backed data sources, use the /data endpoint.
Update a data source.
Required: The global GOVERNANCE permission or be the data source owner
Payload example
Path parameters
dataSourceId
integer The data source ID.
Yes
Payload parameters
blobHandler
object Blob handler configuration for the data source (for example, url, optional ca, and manualDictionary).
No
blobHandlerType
string Describes the type of underlying blob handler that will be used with this data source (e.g., MS SQL).
No
recordFormat
string The data format of blobs in the data source, such as json, xml, html, or jpeg.
No
type
string The type of data source: queryable (metadata is dynamically queried).
No
name
string The name of the data source. It must be unique within the Immuta tenant.
No
sqlTableName
string A string that represents this data source's table in Immuta.
No
organization
string The organization that owns the data source.
No
category
string The category of the data source.
No
description
string The description of the data source.
No
hasExamples
boolean When true, the data source contains examples.
No
Response
Returns a data source object for the updated data source.
private
boolean When false, the data source will be publicly available in the Immuta UI.
blobHandler
object Blob handler configuration for the data source (for example, url, optional ca, and manualDictionary).
blobHandlerType
string Describes the type of underlying blob handler that will be used with this data source (e.g., MS SQL).
recordFormat
string The data format of blobs in the data source, such as json, xml, html, or jpeg.
type
string The type of data source: queryable (metadata is dynamically queried).
name
string The name of the data source. It must be unique within the Immuta tenant.
sqlTableName
string A string that represents this data source's table in Immuta.
organization
string The organization that owns the data source.
description
string The description of the data source.
policyHandler
object The policy handler details and policies enforced on the data source.
subscriptionPolicy
object Details about the subscription policy enforced on the data source, including policy type and approvals/exceptions.
PUT /dataSource/bulk/{type}
PUT /dataSource/bulk/{type}The dataSource/bulk/{type} endpoint cannot be used with connection-backed data sources when bulk updating delete, restore or disable. To complete these actions on any connection-backed data sources, use the /data endpoint.
Update data sources.
Required: The global GOVERNANCE permission or be the data source owner for all data sources included in the payload
Payload example
Path parameters
type
string The action to perform on the data sources: add-users, disable, restore, delete, or tags.
Yes
Payload parameters
ids
array[integer] The IDs of the data sources to update.
Yes
update
array[object] Only required for add-users (includes metadata about the users' profiles: id and state) and tags (includes metadata about the tags: name and source) types.
No
Response
Returns an ID to track the jobs created to update the data sources.
bulkId
string The ID of the bulk data source update.
jobsCreated
integer The number of jobs created.
POST /dataSource/bulkRefreshViews
POST /dataSource/bulkRefreshViewsSync the data policies and grants for data sources in the remote data platform.
Required: The global GOVERNANCE permission or be the data source owner for all data sources included in the payload
Payload example
Payload parameters
dataSourceIds
array[integer] The IDs of the data sources to sync the policies.
Yes
PUT /dataSource/detectRemoteChanges
PUT /dataSource/detectRemoteChangesThe /dataSource/detectRemoteChanges endpoint cannot be used with connection-backed data sources. For any connection-backed data sources, use the /data/crawl/{objectPath} endpoint.
Trigger the schema monitoring job for the specified detection group, or all groups if no payload parameters are given.
Required: The global GOVERNANCE permission or be the data source owner for all data sources included in the payload
Payload example
The tabs below illustrate payloads for triggering schema monitoring on a host, database, or table. The request will run schema monitoring for all databases registered under the hostname provided in the payload.
The request will run schema monitoring for all databases registered under the hostname provided in the payload.
The request will run schema monitoring on the database provided in the payload. If data sources were initially registered via the V2 API, this request will locate new schemas that contain tables Immuta has the ability to access, and Immuta will create a new schema project associated with these newly discovered schemas and create data sources for each table located. If data sources were initially registered via the V1 API, this request will only update the columns and tables of registered schema and tables of the specified database; it will not register any new schemas.
The request will run column detection and update the columns on the table specified in the payload.
Payload parameters
dataSourceIds
array[integer] The data source IDs to run the column detection job on. Leave empty to run this job globally on all data sources. This parameter cannot be included in the payload if schemaEvolutionId or any combination of hostname, database, port, or table is included.
No
hostname
string The hostname of the data sources. This parameter cannot be included in the payload if dataSourceIds or schemaEvolutionId is included.
No
port
integer The port used to connect the data sources to Immuta. This parameter cannot be included in the payload if dataSourceIds or schemaEvolutionId is included.
No
database
string The database name. This runs schema monitoring on the database provided. If data sources were initially registered via the V2 API, including this parameter will locate new schemas that contain tables Immuta has the ability to access, and Immuta will create a new schema project associated with these newly discovered schemas and create data sources for each table located. If data sources were initially registered via the V1 API, including this parameter will only update the columns and tables of registered schema and tables of the specified database; it will not register any new schemas. This parameter cannot be included in the payload if dataSourceIds or schemaEvolutionId is included.
No
table
string The table name. This will run column detection to just update the columns in this table. This parameter cannot be included in the payload if dataSourceIds or schemaEvolutionId is included.
No
schemaEvolutionId
integer The ID of the schema to run the schema monitoring job on. This will run on all tables associated with the specified ID. The schema ID can be found in the response body of /dataSource/{dataSourceId}. This parameter cannot be included in the payload if dataSourceIds or any combination of hostname, database, port, or table is included.
No
skipColumnDetection
boolean When true, Immuta will only pull new tables from the source server. This parameter can only be paired with schemaEvolutionId.
No
overrides.httpPath
string If Databricks ephemeral overrides are configured, provide the alternative HTTP path to trigger schema monitoring on that ephemeral cluster.
No
Response
Returns details about the schema monitoring and column detection jobs created.
schemaDetection
object Includes details about the resulting schema detection jobs.
columnDetection
object Includes details about the resulting column detection jobs.
bulkId
string The unique identifier of the jobs running schema monitoring and column detection.
Responses may include bulkId, schemaDetection, or columnDetection objects, depending on the payload.
The tabs below illustrate the example response for each example payload provided above.
GET /dataSource/{dataSourceId}/test
GET /dataSource/{dataSourceId}/testRefreshes the data source health checks and refreshes tags from an external catalog on a data source. The external catalog must be linked to the data source.
Required: The global GOVERNANCE permission or be the data source owner
Path parameters
dataSourceId
integer The data source ID.
Yes
Response
Returns health check details for the specified data source.
blob
object Indicates whether or not the blob was successfully crawled.
columnEvolution
object Indicates whether or not the job run to check for columns added or removed from the data source passed and when it was last run.
externalCatalog
object Indicates whether or not the external catalog was successfully linked to the data source.
fingerprint
object Indicates whether or not the fingerprint job was successful (passed) and when it was last run. The fingerprint captures summary statistics of a Snowflake data source.
framework
object Indicates whether or not the classification was successfully run on the data source to determine its sensitivity.
globalPolicy
object Indicates whether or not global policies were successfully applied to the data source.
highCardinality
object Indicates whether or not the job run to calculate the data source's high cardinality column passed and when it was last run.
schemaEvolution
object Indicates whether or not the job run to check if a new table had been added in the remote database passed and when it was last run. If a new table was added, Immuta automatically creates a new data source. Correspondingly, if a remote table is removed, that data source will be disabled in the console.
sdd
object Indicates whether or not identification was successfully run on the data source.
sql
object Indicates whether or not the SQL query run to check the data source's health passed and when it was last run.
stats
object Indicates whether or not the job run to calculate the number of rows in the data source passed and when it was last run.
GET /dataSource/blobHandlerTypes
GET /dataSource/blobHandlerTypesRetrieve all blob handlers the current user is allowed to create.
Response
Returns blob handler types the current user can create.
name
string The name of the blob handler.
baseUrl
string The base URL for the data source.
config
array Includes information about the connection configuration.
port
integer The port number.
driver
string The name of the driver.
GET /dataSource/byPurposes
GET /dataSource/byPurposesGet data sources that match a set of purposes.
Query parameters
purposes
array[string] The purposes to filter the data sources by.
Yes
excludedProjects
array[integer] Excludes data sources associated with specified project IDs.
No
Response
Returns data sources that match the requested purposes.
id
integer The data source ID.
name
array The name of the data source.
policyId
integer The policy ID.
restrictions
array Details regarding the operator (and or or) and purposes.
GET /dataSource/rpc/mine
GET /dataSource/rpc/mineRetrieves all the data sources the current user has access to.
Response
Returns data sources the current user can access.
id
integer The data source ID.
name
string The data source name.
type
string The type of data source: queryable.
sqlTableName
string The name of the table in Immuta.
sqlSchemaName
string The name of the schema in Immuta.
blobHandlerType
string The type of handler, such as Snowflake.
sparkUseJDBC
boolean When true, uses a JDBC driver.
GET /dataSource/{dataSourceId}/activities
GET /dataSource/{dataSourceId}/activitiesGet all of the recent policy activities for a given data source.
Required: The data source must be publicly visible, you must own the data source, or you must have access to see the data source through the GOVERNANCE permission or a subscription policy
Path parameters
dataSourceId
integer The data source ID.
Yes
Query parameters
offset
integer The number of results to skip (for paging).
No
size
integer The number of results to return per page.
No
Response
Returns recent policy activity for the specified data source.
count
integer The number of results.
activities
array Includes details about the policy and the data source, including the policy and data source type, when the activity notification was triggered, and whether or not the policy change was triggered by a Global policy.
actionBy
array Details about who triggered the action.
targetUser
array Information about the user who received the notification.
GET /dataSource/{dataSourceId}/contacts
GET /dataSource/{dataSourceId}/contactsGets the profiles for the data source owners and experts.
Path parameters
dataSourceId
integer The data source ID.
Yes
Response
Returns owner and expert profiles for the specified data source.
id
integer The data source ID.
state
string The user's data source role, such as owner or subscribed.
name
string The user's name.
string The user's email.
profile
integer The user's profile ID.
GET /dataSource/{dataSourceId}/tags
GET /dataSource/{dataSourceId}/tagsGet the tags for a data source.
Required: The data source must be publicly visible, you must own the data source, or you must have access to see the data source through the GOVERNANCE permission or a subscription policy
Path parameters
dataSourceId
integer The data source ID.
Yes
Query parameters
blobId
string Returns the tags for the specified blob.
No
blobTagsOnly
boolean When true, will only display blob tags associated with a data source.
No
Response
Returns tags for the specified data source.
tags
array Includes details about the tags, such as the name, source, and the profile ID of the user who added the tag.
DELETE /dataSource/{dataSourceId}
DELETE /dataSource/{dataSourceId}The /dataSource/{dataSourceId} endpoint cannot be used with connection-backed data sources. For any connection-backed data sources, use the /data/object/{objectPath} endpoint.
Delete a data source. This will perform a soft delete on the first call and a hard delete the second time.
Required: The global GOVERNANCE permission or be the data source owner
Path parameters
dataSourceId
integer The data source ID.
Yes
Response
Returns delete status details for the specified data source.
success
boolean If true, the request to disable or delete the data source was successful.
id
integer The data source ID.
schemaEvolutionId
integer The schema evolution ID.
name
string The data source name.
disabled
boolean If true, the data source is disabled.
handlerDeleteErrorMessage
string The delete error message.
DELETE /dataSource/tasks/{taskId}
DELETE /dataSource/tasks/{taskId}Delete the specified task.
Path parameters
taskId
integer Target task ID.
Yes
Response
Returns details for the deleted task.
id
integer The deleted task ID.
state
string The state of the deleted task, such as pending.
type
string The type of deleted task, such as columnAdded.
targetNames
array[string] The names of users who received the request.
targetEmails
array[string] The emails of users who received the request.
requester
metadata Details regarding the requesting profile.
dataSource
metadata details regarding the data source.
metadata
array Details about the deleted task.
DELETE /dataSource/{dataSourceId}/unsubscribe
DELETE /dataSource/{dataSourceId}/unsubscribeUnsubscribe from a data source.
Path parameters
dataSourceId
integer The data source ID.
Yes
Response
Returns subscription status for the requesting user.
success
boolean If true, the requesting user is unsubscribed from the data source.
Last updated
Was this helpful?

