array This enables a Snowflake workspace for the project and details the schema, hostname, and warehouse.
No
allowMaskedJoins
boolean If true, masked joins will be allowed.
No
subscriptionPolicy
array[object] A policy object for the Subscription Policy on the project. Details include type, exceptions, conditions, allowDiscovery, and automaticSubscription. If this is not set, it will be the default manual.
No
subscriptionType
string The type of subscription policy on the project. The type can be automatic (which allows anyone to subscribe), approval (which requires the subscriber to be manually approved), policy (which only allows users with specific groups or attributes to subscribe), or manual (which requires users to be manually added).
No
equalization
array Details the policy conditions of the equalization, including the configured (or recommended) user groups and attributes.
No
workspace
array Information on native workspaces in the project.
No
type
string The type of Immuta project, either user created project (user) or system generated project (schema).
No
createdAt
timestamp Date of the project creation.
No
updatedAt
timestamp Date of the most recent update.
No
Response parameters
Attribute
Description
id
integer Project ID.
projectKey
string Name of the project.
name
string Name of the project.
status
string (Statuses are open or closed.)
description
string Project description.
documentation
string Project documentation.
tags
array Project tags.
purposes
array Project purposes.
stagedPurposes
array Project purposes staged for approval.
deleted
boolean If true, the project has been deleted.
snowflake
array If a Snowflake workspace has been enabled for the project, this attribute will detail the schema, hostname, and warehouse.
allowMaskedJoins
boolean If true, masked joins are allowed.
subscriptionPolicy
array[object] A policy object for the Subscription Policy on the project. Details include type, exceptions, conditions, allowDiscovery, and automaticSubscription.
subscriptionType
string The type of subscription policy on the project. The type can be automatic (which allows anyone to subscribe), approval (which requires the subscriber to be manually approved), policy (which only allows users with specific groups or attributes to subscribe), or manual (which requires users to be manually added).
equalization
array Details the policy conditions of the equalization, including the configured (or recommended) user groups and attributes.
workspace
array Information on native workspaces in the project.
type
string The type of Immuta project, either user created project (user) or system generated project (schema).
createdAt
timestamp Date of the project creation.
updatedAt
timestamp Date of the most recent update.
workspaceWarnings
string This message describes issues with the created workspace.
Example request
This example request with the payload below will create a new project.
This example payload will create a new project named API Project.
{"id":4,"projectKey":"api project","name":"API Project","status":"open","description":"project created with api","deleted":false,"allowMaskedJoins":false,"createdAt":"2021-09-10","updatedAt":"2021-09-10"}
Example response
{"id":4,"projectKey":"api project","name":"API Project","status":"open","description":"project created with api","documentation":"# API Project","deleted":false,"allowMaskedJoins":false,"subscriptionType":"manual","subscriptionPolicy":null,"equalization":null,"workspace":null,"snowflake":null,"type":null,"schema":null,"createdBy":2,"updatedBy":2,"createdAt":"2021-09-10T00:00:00.000Z","updatedAt":"2021-09-10T00:00:00.000Z","schemaEvolutionId":null,"purposes": [],"stagedPurposes": []}
integer Used in combination with size to fetch pages. The default is 0.
No
size
integer The number of results to return per page.
No
sortField
string Used to sort results by field.
No
sortOrder
string Sorts results by order, which must be asc or desc. The default is asc.
No
subscription
array[string] Filters projects by subscription types, which must be automatic, approval, or policy.
No
status
array[string] Filters projects based on their status: open or closed.
No
searchText
string Searches text. By default this will filter projects by name, description, documentation, category, and organization.
No
tag
array[string] Filters projects by tags associated with the projects.
No
nameOnly
boolean If true, searchText will only filter by project name, allowing you to retrieve specific projects. The default is false.
No
isEqualized
boolean If true, only equalized projects will be included.
No
snowflake
boolean If true, only projects with a Snowflake workspace will be included.
No
dataSourceId
integer Filters projects by whether they have the data source associated with the data source ID.
No
mode
integer Specifies the query mode, which must be 0 (FULL), 1 (COUNT), 4 (TAG), 5 (MIN_MAX), or 6 (STATUS).
No
Response parameters
Attribute
Description
count
integer Number of projects found.
hits
array Details about each project listed.
id
integer The project ID.
projectKey
string Name of the project.
name
string Name of the project.
status
string Statuses are open or closed.
description
string Project description.
documentation
string Project documentation.
tags
array Project tags.
purposes
array Project purposes.
stagedPurposes
array Project purposes staged for approval.
deleted
boolean If true, the project has been deleted.
snowflake
array If a Snowflake workspace has been enabled for the project, this attribute will detail the schema, hostname, and warehouse.
allowMaskedJoins
boolean If true, masked joins are allowed.
subscriptionPolicy
array[object] A policy object for the Subscription Policy on the project. Details include type, exceptions, conditions, allowDiscovery, and automaticSubscription.
subscriptionType
string The type of subscription policy on the project. The type can be automatic (which allows anyone to subscribe), approval (which requires the subscriber to be manually approved), policy (which only allows users with specific groups or attributes to subscribe), or manual (which requires users to be manually added).
equalization
array Details the policy conditions of the equalization, including the configured (or recommended) user groups and attributes.
workspace
array Information on native workspaces in the project.
type
string The type of Immuta project, either user created project (user) or system generated project (schema).
createdAt
timestamp Date of the project creation.
updatedAt
timestamp Date of the most recent update.
acknowledgeRequired
boolean When true, the requesting user has not yet agreed to the project acknowledgement.
subscriptionId
integer The project member's subscription ID.
subscribedAsUser
boolean If true, the user running the request is currently subscribed.
subscriptionStatus
string Subscription status of the user running the request.
filterId
integer Corresponds with the ID of the project.
facets
array Facets (categories) relevant to the search.
Request example
This example request gets a list of all of the projects.
{"hits": [ {"id":8,"name":"Improving Employee Onboarding and Retention","status":"open","description":null,"deleted":false,"updatedAt":"2021-07-14T23:14:46.210Z","subscriptionPolicy":null,"createdAt":"2021-07-14T23:13:53.752Z","filterId":8,"subscriptionType":"manual","isEqualized":false,"acknowledgeRequired":false,"subscriptionStatus":"not_subscribed","purposeCount":1,"hasDeletedPurposes":false,"workspace":null,"type":null,"allowMaskedJoins":false }, {"id":4,"name":"Medical Records","status":"open", "description": "This project contains all data sources under the schema, medical_records, from immuta@example.database.sample.net:1433/example.",
"deleted":false,"updatedAt":"2021-06-22T23:24:58.766Z","subscriptionPolicy":null,"createdAt":"2021-06-22T23:24:58.766Z","filterId":4,"subscriptionType":"manual","isEqualized":false,"acknowledgeRequired":false,"subscriptionStatus":"owner","purposeCount":0,"hasDeletedPurposes":false,"workspace":null,"type":"Schema","allowMaskedJoins":false }, {"id":6,"name":"sample123","status":"open","description":null,"deleted":false,"updatedAt":"2021-07-12T21:32:37.020Z","subscriptionPolicy":null,"createdAt":"2021-07-12T21:32:37.012Z","filterId":6,"subscriptionType":"manual","isEqualized":false,"acknowledgeRequired":false,"subscriptionStatus":"not_subscribed","purposeCount":1,"hasDeletedPurposes":false,"workspace":null,"type":null,"allowMaskedJoins":false }, {"id":2,"name":"test","status":"open","description":null,"deleted":false,"updatedAt":"2021-07-19T20:48:00.758Z","subscriptionPolicy":null,"createdAt":"2021-05-19T22:50:44.190Z","filterId":2,"subscriptionType":"manual","isEqualized":false,"acknowledgeRequired":false,"subscriptionStatus":"owner","purposeCount":2,"hasDeletedPurposes":false,"workspace":null,"type":null,"allowMaskedJoins":false }, {"id":3,"name":"Tpc","status":"open", "description": "This project contains all data sources under the schema, tpc, from immuta@example.database.sample.net:1433/example.",
"deleted":false,"updatedAt":"2021-05-20T16:29:09.679Z","subscriptionPolicy":null,"createdAt":"2021-05-20T16:29:09.679Z","filterId":3,"subscriptionType":"manual","isEqualized":false,"acknowledgeRequired":false,"subscriptionStatus":"owner","purposeCount":0,"hasDeletedPurposes":false,"workspace":null,"type":"Schema","allowMaskedJoins":false } ],"facets": {},"count":5}
Search for projects by ID
GET/project/{projectId}
Get the project with the given ID.
Query parameters
Attribute
Description
Required
projectId
integer The project ID.
Yes
checkForSqlAccount
booleanDefault is true.
No
Response parameters
Attribute
Description
id
integer Project ID.
projectKey
string Name of the project.
name
string Name of the project.
status
string Statuses are open or closed.
description
string Project description.
documentation
string Project documentation.
tags
array Project tags.
purposes
array Project purposes.
stagedPurposes
array Project purposes staged for approval.
deleted
boolean If true, the project has been deleted.
snowflake
array If a Snowflake workspace has been enabled for the project, this attribute will detail the schema, hostname, and warehouse.
allowMaskedJoins
boolean If true, masked joins are allowed.
subscriptionPolicy
array[object] A policy object for the Subscription Policy on the project. Details include type, exceptions, conditions, allowDiscovery, and automaticSubscription.
subscriptionType
string The type of subscription policy on the project. The type can be automatic (which allows anyone to subscribe), approval (which requires the subscriber to be manually approved), policy (which only allows users with specific groups or attributes to subscribe), or manual (which requires users to be manually added).
equalization
array Details the policy conditions of the equalization, including the configured (or recommended) user groups and attributes.
workspace
array Information on native workspaces in the project.
type
string The type of Immuta project, either user created project (user) or system generated project (schema).
createdAt
timestamp Date of the project creation.
updatedAt
timestamp Date of the most recent update.
acknowledgeRequired
boolean When true, the requesting user has not yet agreed to the project acknowledgement.
subscriptionId
integer The project member's subscription ID.
subscribedAsUser
boolean If true, the user running the request is currently subscribed.
subscriptionStatus
string Subscription status of the user running the request.
Example request
This example gets the project object for the project with the ID 2.
{"id":2,"projectKey":"test","name":"test","status":"open","description":null,"documentation":"# test\n\n12345","deleted":true,"allowMaskedJoins":true,"subscriptionType":"manual","subscriptionPolicy":null,"equalization":null,"workspace":null,"snowflake":null,"type":null,"schema":null,"createdBy":2,"updatedBy":2,"createdAt":"2021-05-19T22:50:44.190Z","updatedAt":"2021-07-29T18:30:04.066Z","schemaEvolutionId":null,"subscribedAsUser":true,"subscriptionId":5,"acknowledgeRequired":false,"subscriptionStatus":"owner","requestedState":"owner","approved":true,"subscriptionExpiration":null,"filterId":2,"purposeCount":null,"purposes": [ {"id":8,"name":"Analyzing Onboarding and Job Satisfaction","acknowledgement":null, "description": "Data can only be accessed for analyzing the effectiveness of current onboarding practices and trends in employee job satisfaction reasons for data access must be approved by a compliance committee.",
"addedByProfile":2,"displayAcknowledgement":true,"deleted":false,"systemGenerated":false,"policyMetadata":null,"createdAt":"2021-07-07T19:56:06.360Z","updatedAt":"2021-07-07T19:56:06.360Z","createdBy":2 }, {"id":4,"name":"Use Case Outside De-identification", "acknowledgement": "I agree to use the data associated with this project for the stated purpose of the project, and for that purpose only, as listed in the project's homepage, and to refrain from sharing that data outside of the project or Immuta. In the event that I discover risks that I believe could lead to unauthorized access, I agree to immediately notify the project owner or governance team and take immediate action t address and mitigate such risks.",
"description":null,"addedByProfile":1,"displayAcknowledgement":true,"deleted":false,"systemGenerated":true,"policyMetadata":null,"createdAt":"2021-05-19T20:32:03.437Z","updatedAt":"2021-07-28T14:17:22.690Z","createdBy":2 } ],"stagedPurposes": [],"tags": []}
boolean If true, the data sources in the project will be deleted.
No
Payload parameters
Attribute
Description
Required
type
string The type of Immuta project, either user created project (user) or system generated project (schema).
No
name
string The project's new name.
No
description
string The project's new description.
No
documentation
string The project's new documentation.
No
status
string Accepted statuses are open or closed.
No
subscriptionType
string The type of subscription policy on the project. The type can be automatic (which allows anyone to subscribe), approval (which requires the subscriber to be manually approved), policy (which only allows users with specific groups or attributes to subscribe), or manual (which requires users to be manually added).
No
tags
array The project's new tags.
No
purposes
array The project's new purposes.
No
stagedPurposes
array The project's new purposes staged for approval.
No
deleted
boolean If true, the project will be deleted.
No
snowflake
array This enables a Snowflake workspace for the project and details the schema, hostname, and warehouse.
No
allowMaskedJoins
boolean If true, masked joins will be allowed.
No
subscriptionPolicy
array[object] A policy object for the Subscription Policy on the project. Details include type, exceptions, conditions, allowDiscovery, and automaticSubscription. If this is not set, it will be the default manual.
No
equalization
array Details the policy conditions of the equalization, including the configured (or recommended) user groups and attributes.
No
workspace
array Information on native workspaces in the project.
No
Response parameters
Attribute
Description
id
integer Project ID.
projectKey
string Name of the project.
name
string Name of the project.
status
string Statuses are open or closed.
description
string Project description.
documentation
string Project documentation.
tags
array Project tags.
purposes
array Project purposes.
stagedPurposes
array Project purposes staged for approval.
deleted
boolean If true, the project will be deleted.
snowflake
array If a Snowflake workspace has been enabled for the project, this attribute will detail the schema, hostname, and warehouse.
allowMaskedJoins
boolean If true, masked joins will be allowed.
subscriptionPolicy
array[object] A policy object for the Subscription Policy on the project. Details include type, exceptions, conditions, allowDiscovery, and automaticSubscription.
subscriptionType
string The type of subscription policy on the project. The type can be automatic (which allows anyone to subscribe), approval (which requires the subscriber to be manually approved), policy (which only allows users with specific groups or attributes to subscribe), or manual (which requires users to be manually added).
equalization
array Details the policy conditions of the equalization, including the configured (or recommended) user groups and attributes.
workspace
array Information on native workspaces in the project.
type
string The type of Immuta project, either user created project (user) or system generated project (schema).
createdAt
timestamp Date of the project creation.
updatedAt
timestamp Date of the most recent update.
workspaceWarnings
string This message describes issues with the created workspace.
Example request
This example request with the payload below will update the project with the project ID 2.
This example payload will update the project to be named Documentation Project.
{"name":"Documentation Project","deleted":false}
Example response
{"workspace":null,"createdBy":2,"updatedBy":2,"schemaEvolutionId":1,"projectKey":"Medical Records","name":"Documentation Project","status":"open", "description": "This project contains all data sources under the schema, medical_records, from immuta@example.database.sample.net:1433/example.",
"documentation": "This is an automatically generated project that collects data sources under the schema, medical_records, from immuta@example.database.sample.net:1433/example. When data sources in this schema are added to the system, they will automatically be added to this project.",
"deleted":false,"allowMaskedJoins":false,"subscriptionType":"manual","subscriptionPolicy":null,"equalization":null,"snowflake":null,"type":"Schema","schema":"medical_records","id":2,"createdAt":"2021-08-24T15:44:29.477Z","updatedAt":"2021-09-10T21:49:00.678Z","purposeCount":0,"tags": [],"projectPurposes": [],"stagedPurposes": [],"purposes": [],"workspaceWarnings": []}
View project activity by project ID
GET/project/{projectId}/activity
Get all of the recent activity for a given project.
Query parameters
Attribute
Description
Required
projectId
integer The project ID.
Yes
offset
integer Used in combination with size to fetch pages.
No
size
integer Used to select the number of activities.
No
Response parameters
Attribute
Description
count
integer The total number of actions.
activities
array The id, modelType, modelId, notificationType, actionsBy, targetUser, targetGroup, additionalText, array, createdAt, updatedAt, and read for each action listed.
id
integer The activity ID.
modelType
string The Immuta feature the activity is attached to.
modelId
string The ID of the Immuta feature the activity is attached to.
notificationType
string The type of activity or notification, such as modelCreated, modelUserAdded, or projectUpdated.
actionBy
array The user data for the user who took the action.
targetUser
array The user data for the user who the action was directed towards.
targetGroup
array The group data for the group who the action was directed towards.
metadata
array Details about the action. For example, if the notificationType was modelCreated, the metadata attribute would include the project name.
createdAt
timestamp Date the action was taken.
updatedAt
timestamp Date of the most recent activity on the action.
read
boolean If true, the activity has been viewed.
unread
integer The number of unviewed activities on that project.
Example request
This example gets one activity for the project with the project ID 2.
integer Used in combination with size to fetch pages.
No
size
integer The number of results to return per page.
No
sortField
string Sorts results by field. The default is name.
No
sortOrder
string Sorts results by order, which must be asc or desc. The default is asc.
No
searchText
string Searches text of member names.
No
approved
boolean Filters results based on whether or not members' subscription status has been approved.
No
checkDataSources
boolean When true, will check if users' meet the compliance requirements set on data sources within the project.
No
expandGroups
boolean
No
Response parameters
Attribute
Description
count
integer The number of members in the project.
members
array The profile, name, iamId, userId, email, type, approved, state, systemGenerated, lastExternalRefresh, subscriptionId, createdAt, updatedAt, approvals, currentUserCanApprove, and compliance for each member result.
profile
integer The user's profile ID.
name
string The user's name.
iamId
string The ID of the IAM, which is configured on the App Settings page.
userId
string The user's Immuta username.
email
string The user's email.
type
string The type of Immuta project, either user created project (user) or system generated project (schema).
approved
boolean When true, the members' subscription status has been approved.
state
string The user's relationship to the project. Options include owner, not_subscribed, pending, subscribed, and expert.
systemGenerated
boolean When true, the user is a system generated account.
lastExternalRefresh
timestamp The date of the last time this user's information was updated from an external IAM.
subscriptionId
integer The project member's subscription ID.
createdAt
timestamp The date that this user was created in Immuta.
updatedAt
timestamp The date of the most recent update of the user.
approvals
array Details on how this new member will fit into the project's approval process.
compliance
array Details about the compliance requirements of the project, including missingDataSources and invalidSubscriptions.
Example request
This request gets all of the members of the project with the project ID 2.
integer Used in combination with size to fetch pages.
No
searchText
string Searches text of the data source names.
No
size
integer The number of results to return per page.
No
sortField
string Used to sort results by field. Options include addedBy, addedOn, and dataSourceName. The default is dataSourceName.
No
sortOrder
string Sorts results by order, which must be asc or desc. The default is asc.
No
unsubscribed
boolean If true, filters by unsubscribed status (includes data sources with a pending subscription). If false, filters by subscribed status.
No
subscription
string Searches based on the subscription status of the user. Options include not_subscribed, owner, pending, or subscribed.
No
Response parameters
Attribute
Description
count
integer The total number of data sources in the project.
dataSources
array[object] An array of data source objects that includes addedBy, dataSourceName, policyHandlerType, addedOn, dataSourceId, addedByProfile, deleted, subscriptionType, subscriptionStatus, subscriptionPolicy, connectionString, blobHandlerType, and derivedThisProject values for each data source.
addedBy
string The user who added the data source to the project.
dataSourceName
string The name of the data source.
policyHandlerType
string
addedOn
timestamp The date the data source was added to the project.
dataSourceId
integer The data source ID.
addedByProfile
integer The profile ID of the user who added the data source to the project.
deleted
boolean If true, the data source has been deleted.
subscriptionType
string The type of subscription policy on the project. The type can be automatic (which allows anyone to subscribe), approval (which requires the subscriber to be manually approved), policy (which only allows users with specific groups or attributes to subscribe), or manual (which requires users to be manually added).
subscriptionStatus
string
subscriptionPolicy
array[object] A policy object for the Subscription Policy on the data source. Details include type, exceptions, conditions, allowDiscovery, and automaticSubscription.
connectionString
string The data source connection string.
blobHandlerType
string The data platform.
derivedInThisProject
boolean If true, this data source was created as a derived data source in this project.
Example request
This example gets the data source details for all of the data sources of the project with the project ID 2.
Updates the reason for adding a data source to a project.
Query parameters
Attribute
Description
Required
projectId
integer The project ID.
Yes
dataSourceId
integer The data source ID.
Yes
Request example
This example request with the payload below will update the reason that the data source with the data source ID 1 was added to the project with the project ID 1.
[ {"author": {"id":2,"name":"John Doe","email":"john.doe@immuta.com" },"body":"This is a discussion for Blue Team","resolved":false,"id":2,"createdAt":"2021-09-1T22:47:21.553Z","updatedAt":"2021-09-1T22:47:21.553Z","models": [ {"modelType":"project","modelId":"1","modelName":"demo" } ],"totalreplies":0,"lastreply":"0001-01-01T00:00:00.000Z","public":true }, {"author": {"id":2,"name":"John Doe","email":"john.doe@immuta.com" },"body":"This is a discussion for Red Team","resolved":false,"id":1,"createdAt":"2021-09-1T22:47:02.203Z","updatedAt":"2021-09-1T22:47:02.203Z","models": [ {"modelType":"project","modelId":"1","modelName":"demo" } ],"totalreplies":0,"lastreply":"0001-01-01T00:00:00.000Z","public":true }]
Add a comment to a project
POST/project/{projectId}/comments
Add a comment to the project.
Query Parameters
Attribute
Description
Required
projectId
integer The project ID.
Yes
Payload Parameters
Attribute
Description
Required
body
string The body of the new comment.
Yes
dataSource
integer The data source the new comment will be attached to.
No
Response Parameters
Attribute
Description
author
integer The ID of the author of the new comment.
body
string The body of the new comment.
parentId
integer If the comment is a reply to another, this is the ID of the parent comment. This value will be null for comments that are not replies.
resolved
boolean If true, the comment has been marked resolved.
id
integer The ID of the comment within the project.
createdAt
timestamp The timestamp of the date the comment was created.
updatedAt
timestamp The timestamp of the date the comment was most recently updated.
Example request
This example request with the payload below writes a new comment for the project with the project ID 1 stating Comment made in the API.
{"author":2,"body":"Comment made in the API","parentId":null,"resolved":false,"id":3,"createdAt":"2021-09-1T02:13:24.363Z","updatedAt":"2021-09-1T02:13:24.363Z"}
Count the project's comments
GET/project/{projectId}/comments/count
Count the comments for a project.
Query Parameters
Attribute
Description
Required
projectId
integer The project ID.
Yes
dataSources
integer The data source IDs; comments will be counted for the data source IDs specified here.
No
resolved
boolean If true, the comment has been resolved.
No
Response Parameters
Attribute
Description
modelId
integer The project ID.
modelType
string The type of Immuta feature. This should say project.
count
integer The total number of comments on that project.
Example request
This example counts the comments on the project with the project ID 2.
{"author":2,"parentId":null,"resolved":false,"body":"This is a discussion for Red Team","id":1,"createdAt":"2021-09-1T22:47:02.203Z","updatedAt":"2021-09-1T22:47:02.203Z"}
[ {"author": {"id":2,"name":"John Doe","email":"john.doe@immuta.com" },"body":"This is a reply from the Blue Team.","parentId":2,"resolved":false,"id":4,"createdAt":"2021-09-1T01:00:35.104Z","updatedAt":"2021-09-1T01:00:35.104Z","totalreplies":0,"public":true }]
Delete a project comment
DELETE/project/{projectId}/comments/{commentId}
Delete a project comment. Deleting a project comment will delete the replies to that comment as well.
Query Parameters
Attribute
Description
Required
projectId
integer The project ID.
Yes
commentId
integer The comment ID.
Yes
Example request
This example deletes the comment with the comment ID 1 on the project with the project ID 1.
{
"acknowledgeRequired": false,
"purposes": [
{
"id": 1,
"name": "Re-identification Prohibited",
"acknowledgement": "I agree to use the data associated with this project for the stated purpose of the project, and for that purpose only, as listed in the project's homepage, and to refrain from sharing that data outside of the project or Immuta. I also agree not to re-identify or take any steps to re-identify the individuals whose personal information is contained in the data sources attached to the project. In the event that these individuals have been identified or that I discover risks that I believe could lead to their identification, I agree to immediately notify the project owner or governance team and take immediate action to address and mitigate such risks. I further agree to refrain from contacting any individuals who might be identified."
}
]
}
Delete project by ID
DELETE/project/{projectId}
Delete the project with the given ID.
Query parameters
Attribute
Description
Required
projectId
integer The project ID.
Yes
Response parameters
Attribute
Description
hardDelete
boolean If true, the project was permanently deleted.
Example request
This example request will delete the project with the project ID 4.