Audit API Reference Guide
This page describes the audit endpoint API.
The audit API allows users to programmatically search for audit records in Immuta.
Note
Additional fields may be included in some responses you receive; however, these attributes are for internal purposes and are therefore undocumented.
Workflow
- Search all audit records.
- Retrieve a specific audit record.
- Search for recent activities using the API key.
- Search for queries for a specific data source.
Search for audit records
Endpoint
| Method | Path | Purpose | 
|---|---|---|
| GET | /audit | Search for audit records. | 
Query Parameters
| Attribute | Description | Required | 
|---|---|---|
| dataSourceId | array[integer]The data source ID. | No | 
| projectId | array[integer]The project ID. | No | 
| profileId | array[integer]The user profile ID. | No | 
| recordType | array[integer]The type of audit event being captured. This also corresponds to the additional information in the record field. | No | 
| outcome | Array[integer] | No | 
| minDate | timestampThe minimum date. | No | 
| maxDate | timestampThe maximum date. | No | 
| blobId | stringThe blob ID. | No | 
| purpose | integer | No | 
| offset | integerUsed in combination withsizeto fetch pages. | No | 
| size | integerPages results by default;sizeis the number of results to return per page. Default50 | No | 
| sortField | stringSorts results by field. DefaultdateTime | No | 
| sortOrder | stringSorts results by order, which must beascordesc. Defaultdesc | No | 
Response Parameters
| Attribute | Description | 
|---|---|
| hits | metadataDetails regarding the returned list of audits. | 
Request example
The following request searches for all audit records.
curl \
    --request GET \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    https://your-immuta-url.com/audit?size=2&sortField=dateTime&sortOrder=desc
Response example
{
  "hits": [
    {
      "dateTime": "1632756753272",
      "dataSourceName": null,
      "projectName": null,
      "recordType": "auditQuery",
      "blobId": null,
      "userId": "first.last@immuta.com",
      "profileId": 2,
      "purposeIds": null,
      "success": true,
      "failureReason": null,
      "id": "480d9d3f-4128-445d-8eec-3cccb34f9935",
      "fingerprintVersionName": null,
      "email": "first.last@immuta.com"
    },
    {
      "dateTime": "1632755783628",
      "dataSourceName": null,
      "projectName": null,
      "recordType": "authenticate",
      "blobId": null,
      "userId": "first.last@immuta.com",
      "profileId": 2,
      "purposeIds": null,
      "success": true,
      "failureReason": null,
      "id": "d143719b-6af9-4af3-aa99-8055be40e877",
      "fingerprintVersionName": null,
      "email": "first.last@immuta.com"
    }
  ],
}
Retrieve a specific audit record
Endpoint
| Method | Path | Purpose | 
|---|---|---|
| GET | /audit/{recordId} | Retrieve a specific audit record. | 
Query Parameters
| Attribute | Description | Required | 
|---|---|---|
| recordId | stringThe audit record ID. | Yes | 
Response Parameters
| Attribute | Description | 
|---|---|
| hits | metadataDetails regarding the returned audit record. | 
Request example
The following request retrieves a specific audit record.
curl \
    --request GET \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    https://your-immuta-url.com/audit/480d9d3f-4128-445d-8eec-3cccb34f9935
Response Example
{
  "id": "480d9d3f-4128-445d-8eec-3cccb34f9935",
  "dateTime": "1632756753272",
  "month": 1460,
  "profileId": 2,
  "userId": "first.last@immuta.com",
  "dataSourceId": null,
  "dataSourceName": null,
  "projectId": null,
  "projectName": null,
  "purposeIds": null,
  "policyId": null,
  "policyName": null,
  "fingerprintVersionId": null,
  "fingerprintVersionName": null,
  "count": 1,
  "recordType": "auditQuery",
  "success": true,
  "failureReason": null,
  "failureDetails": null,
  "subscriptionState": null,
  "accessedId": null,
  "accessedIdType": null,
  "accessedIamId": null,
  "accessedUserId": null,
  "groupAccessType": null,
  "groupIamId": null,
  "accessedGroupId": null,
  "component": "audit",
  "accessType": null,
  "blobId": null,
  "query": null,
  "queryId": null,
  "extra": {
    "params": {
      "size": 50,
      "sortField": "dateTime",
      "sortOrder": "desc",
      "offset": 0
    }
  },
  "dataSourceSchemaName": null,
  "dataSourceTableName": null,
  "featureKey": null,
  "sqlUser": null,
  "action": null,
  "blobSize": null,
  "hardDelete": null,
  "keyAction": null,
  "keyId": null,
  "keyIamId": null,
  "keyUserId": null,
  "createdAt": "2021-09-27T15:32:33.274Z",
  "updatedAt": "2021-09-27T15:32:33.274Z"
}
Query for activity by API key
Endpoint
| Method | Path | Purpose | 
|---|---|---|
| GET | /audit/apikey/activity | Queries for the recent activity using the API key. | 
Query Parameters
| Attribute | Description | Required | 
|---|---|---|
| recordId | stringThe audit record ID. | Yes | 
Response Parameters
| Attribute | Description | 
|---|---|
| value | metadataregarding the recent activity. | 
Request example
The following request queries for the recent activity using the API key.
curl \
    --request GET \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    https://your-immuta-url.com/audit/apikey/activity?keyid=650&count=1
Response example
{
  "id": "480d9d3f-4128-445d-8eec-3cccb34f9935",
  "dateTime": "1632756753272",
  "month": 1460,
  "profileId": 2,
  "userId": "first.last@immuta.com",
  "dataSourceId": null,
  "dataSourceName": null,
  "projectId": null,
  "projectName": null,
  "purposeIds": null,
  "policyId": null,
  "policyName": null,
  "fingerprintVersionId": null,
  "fingerprintVersionName": null,
  "count": 1,
  "recordType": "auditQuery",
  "success": true,
  "failureReason": null,
  "failureDetails": null,
  "subscriptionState": null,
  "accessedId": null,
  "accessedIdType": null,
  "accessedIamId": null,
  "accessedUserId": null,
  "groupAccessType": null,
  "groupIamId": null,
  "accessedGroupId": null,
  "component": "audit",
  "accessType": null,
  "blobId": null,
  "query": null,
  "queryId": null,
  "extra": {
    "params": {
      "size": 50,
      "sortField": "dateTime",
      "sortOrder": "desc",
      "offset": 0
    }
  },
  "dataSourceSchemaName": null,
  "dataSourceTableName": null,
  "featureKey": null,
  "sqlUser": null,
  "action": null,
  "blobSize": null,
  "hardDelete": null,
  "keyAction": null,
  "keyId": null,
  "keyIamId": null,
  "keyUserId": null,
  "createdAt": "2021-09-27T15:32:33.274Z",
  "updatedAt": "2021-09-27T15:32:33.274Z"
}
Search for query list by data source
Endpoint
| Method | Path | Purpose | 
|---|---|---|
| GET | /audit/queries/dataSource/{dataSourceId}/mine | Returns the list of the current user's distinct queries for the specified data source. | 
Query Parameters
| Attribute | Description | Required | 
|---|---|---|
| dataSourceId | array[integer]The data source ID. | Yes | 
| offset | integerUsed in combination withsizeto fetch pages. | No | 
| size | integerPages results by default;sizeis the number of results to return per page. Default50 | No | 
| sortField | stringSorts results by field. DefaultdateTime | No | 
| sortOrder | stringSorts results by order, which must beascordesc. Defaultdesc | No | 
Response Parameters
| Attribute | Description | 
|---|---|
| auditId | array[integer]The audit ID. | 
| query | stringThe query run for the data source. | 
| lastRun | integerThe date and time the query was last run in Unix. | 
| timesRun | integerThe number of times the audit has been run. | 
| name | stringThe name of the query. | 
Request example
The following request returns the list of the current user's distinct queries.
curl \
    --request GET \
    --header "Content-Type: application/json" \
    --header "Authorization: Bearer dea464c07bd07300095caa8" \
    https://your-immuta-url.com/audit/queries/dataSource/23/mine?size=10&sortField=lastrun&sortOrder=desc
Response example
{
  "hits": [
    {
      "auditId": "ff264e8e-2ccc-468f-9129-bb0995c9cdf5",
      "query": "select * from \"public\".\"foobar\"",
      "lastrun": "1631627763345",
      "timesrun": "5",
      "name": "Name"
    },
    {
      "auditId": "f722042f-f0f3-4c83-bd33-7672892d918f",
      "query": "SELECT * FROM \"public\".\"foobar\" LIMIT 100",
      "lastrun": "1631200121550",
      "timesrun": "3",
      "name": null
    }
  ],
  "count": 2
}