Projects API reference guide
Nonecurl \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
--data @example-payload.json \
https://demo.immuta.com/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"
}{
"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": []
}curl \
--request GET \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
https://demo.immuta.com/project{
"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 [email protected]: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 [email protected]: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
}curl \
--request GET \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
https://demo.immuta.com/project/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": []
}curl \
--request PUT \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
--data @example-payload.json \
https://demo.immuta.com/project/2{
"name": "Documentation Project",
"deleted": false
}{
"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 [email protected]:1433/example.",
"documentation": "This is an automatically generated project that collects data sources under the schema, medical_records, from [email protected]: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": []
}curl \
--request GET \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
https://demo.immuta.com/project/2/activity?size=1{
"count": 40,
"activities": [
{
"modelType": "project",
"modelId": "2",
"createdAt": "2021-07-29T20:56:11.856Z",
"notificationType": "projectUpdated",
"metadata": {
"fields": [
"deleted",
"purposes"
],
"projectName": "test",
"approvedPurposeCount": 0,
"deniedPurposesCount": 0,
"requestedPurposeCount": 0,
"newPurposesAddedCount": 2
},
"read": false,
"id": 191,
"updatedAt": "2021-07-29T20:56:11.856Z",
"actionBy": {
"id": 2,
"name": "John Doe",
"email": "[email protected]"
},
"targetUser": {
"id": 2,
"name": "John Doe",
"email": "[email protected]"
}
}
],
"unread": 40,
"next": "191_2021-07-29T20:56:11.856Z"
}curl \
--request GET \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
https://demo.immuta.com/project/2/checkEqualizationState{
"equalizationState": "recommended"
}curl \
--request GET \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
https://demo.immuta.com/project/2/members{
"count": 1,
"members": [
{
"profile": 2,
"name": "John Doe",
"iamid": "bim",
"userid": "[email protected]",
"email": "[email protected]",
"type": "user",
"approved": true,
"state": "owner",
"systemGenerated": false,
"lastExternalRefresh": "2021-07-30T17:49:55.050Z",
"subscriptionId": 5,
"createdAt": "2021-05-19T22:50:44.206Z",
"updatedAt": "2021-07-19T20:47:53.069Z",
"approvals": [],
"currentUserCanApprove": false
}
]
}curl \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
--data @example-payload.json \
https://demo.immuta.com/project/1/checkEqualizedAuths{
"conditionsObj": {
"operator": "and",
"conditions": [
{
"type": "groups",
"group": {
"id": 1,
"name": "View Masked Values"
}
}
]
}
}{
"validSet": true,
"usersMissingAuths": {}
}curl \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
--data @example-payload.json \
https:demo.immuta.com/project/1/members{
"profileId": 3,
"state": "subscribed",
}{
"subscriptionId": 18,
"state": "subscribed",
"approved": true
}curl \
--request PUT \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
--data @example-payload.json \
https://demo.immuta.com/project/3/members/2{
"state": "subscribed"
}{
"state": "subscribed",
"expiration": null
}curl \
--request GET \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
https://demo.immuta.com/project/2/dataSources{
"count": 3,
"dataSources": [
{
"addedBy": "John Doe",
"dataSourceName": "Fake Medical Claims 2017",
"policyHandlerType": "Builder",
"addedOn": "2021-06-25T19:11:03.230Z",
"dataSourceId": 8,
"addedByProfile": 2,
"deleted": false,
"subscriptionType": "policy",
"subscriptionStatus": "owner",
"subscriptionPolicy": {
"type": "subscription",
"exceptions": {
"operator": "or",
"conditions": [
{
"type": "groups",
"group": {
"name": "HR Department"
}
},
{
"type": "authorizations",
"authorization": {
"auth": "Manager",
"value": "Receiving Surveys"
}
}
]
},
"shareResponsibility": false,
"automaticSubscription": true
},
"connectionString": "[email protected]:1433/example",
"blobHandlerType": "Snowflake",
"derivedInThisProject": false
},
{
"addedBy": "John Doe",
"dataSourceName": "Tpc Randomized",
"policyHandlerType": "Builder",
"addedOn": "2021-06-25T22:26:38.170Z",
"dataSourceId": 6,
"addedByProfile": 2,
"deleted": false,
"subscriptionType": "policy",
"subscriptionStatus": "owner",
"subscriptionPolicy": {
"type": "subscription",
"exceptions": {
"operator": "and",
"conditions": [
{
"type": "groups",
"group": {
"name": "HR"
}
}
]
},
"shareResponsibility": false,
"automaticSubscription": true
},
"connectionString": "[email protected]:1433/example",
"blobHandlerType": "Azure Synapse Analytics",
"derivedInThisProject": false
},
{
"addedBy": "John Doe",
"dataSourceName": "Tpc Web Sales",
"policyHandlerType": "None",
"addedOn": "2021-06-25T19:11:03.226Z",
"dataSourceId": 7,
"addedByProfile": 2,
"deleted": false,
"subscriptionType": "manual",
"subscriptionStatus": "owner",
"subscriptionPolicy": null,
"connectionString": "[email protected]:1433/example",
"blobHandlerType": "Azure Synapse Analytics",
"derivedInThisProject": false
}
]
}curl \
--request DELETE \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
https://demo.immuta.com/project/2/dataSources?ids=8{
"success": [
{
"id": 8,
"name": "Fake Medical Claims 2017",
"blobHandlerType": "Snowflake"
}
],
"inError": []
}curl \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
--data @example-payload.json \
https://demo.immuta.com/project/1/dataSources{
"dataSourceIds": [
2
]
}{
"success": [
{
"id": 2,
"name": "Credit Payments Bank Deposits",
"blobHandlerType": "Snowflake"
}
],
"inError": []
}curl \
--request PUT \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
--data @example-payload.json \
https://demo.immuta.com/project/1/dataSources/1curl \
--request DELETE \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
https://demo.immuta.com/project/5/unsubscribecurl \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
https://demo.immuta.com/project/current/1curl \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
https://demo.immuta.com/project/current/nullcurl \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
--data @example-payload.json \
https://demo.immuta.com/project/1/members/1/acknowledge{}{
"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."
}
]
}curl \
--request DELETE \
--header "Content-Type: application/json" \
--header "Authorization: Bearer dea464c07bd07300095caa8" \
https://demo.immuta.com/project/4{
"hardDelete": true
}