Skip to content

Audit log schema

Each audit log entry is a single-line JSON object. This page describes the format.

Audit log entries are modeled after Elastic Common Schema (ECS). For more general information, refer to Audit Logs.

Log record

JSON
{
  "level": "I",
  "ts": "1766435832.671421000",
  "organization": { "id": "my-tenant" },
  "event": {
    "kind": "event",
    "outcome": "success",
    "category": ["file"],
    "type": ["access"],
    "action": "action-cache-get"
  },
  "error": { "code": "NOT_FOUND" },
  "user": {
    "email": "alice@example.com",
    "roles": ["admin"]
  },
  "source": { "ip": "203.0.113.4" },
  "user_agent": { "original": "grpc-go/1.57.0" }
}

Common fields

Field Type Always present Description
level string Yes Log level. Value is always "I" (info).
ts string Yes Event timestamp as <seconds>.<nanoseconds> since Unix epoch.
organization organization No Present if the event is scoped to a tenant.
event event Yes What happened. See event.
error error No Present when event.outcome is "failure".
user user Yes The principal that triggered the event.
source source No Network source of the request.
user_agent user_agent No Client that sent the request.

Depending on the event action, one or more additional payload fields appear at the top level. See Additional fields.

event

Field Type Description
kind string Value is always "event".
outcome string "success", "failure", or "unknown".
category string[] Elastic Common Schema (ECS) event category. One of "authentication", "file", "iam".
type string[] ECS event type. One of "access", "change", "creation", "deletion". Omitted for authentication events.
action string The specific action that occurred. See Event types.

organization

Field Type Description
id string The tenant identifier (instance_name in the Remote Execution API).

error

Field Type Description
code string The gRPC status code (e.g. "NOT_FOUND") or HTTP status code indicating why the operation failed.

user

Field Type Description
email string The principal's email address. Set to "scim-client" for operations performed via the SCIM API.
roles string[] The principal's roles at the time of the event. May be empty.

source

Field Type Description
ip string Source IP address where the event originated.

user_agent

Field Type Description
original string Raw user agent string from the client.

Additional fields

Additional fields appear at the top level of the log record depending on the event action.

Field Present for Type Description
action-result action-cache-get digest The action result digest that was queried.
files action-cache-upsert, action-cache-delete digest[] The action result and associated output files involved in the operation.
url fetch-fetch-blob url The remote URL that was fetched.
file fetch-fetch-blob, content-addressable-storage-http-get-blob digest The blob that was fetched or accessed.
blobs content-addressable-storage-batch-read-blobs, content-addressable-storage-batch-update-blobs digest[] List of blobs that were read or written.
root content-addressable-storage-get-tree digest The root directory digest of the tree that was read.
scim_user scim-user-create, scim-user-update, scim-user-delete scim_user The SCIM user affected by the operation.

Digest object

Used as items in action-result, file, root, and as elements of the files and blobs arrays. Based on ECS file fields.

Field Type Description
name string File or directory path. Present for output files and directories in action-cache-upsert and action-cache-delete.
type string One of "action-result", "blob", "file", "directory".
size number Size in bytes.
hash.sha256 string SHA-256 hex digest.

url

Based on ECS url fields.

Field Type Description
full string The complete URL that was fetched.

scim_user

Field Type Description
user_name string Username of the affected user.
roles string[] Roles assigned to the user. Present for scim-user-create and scim-user-update; absent for scim-user-delete.

Event details

event.action event.category event.type Description
login authentication A user authenticated and established a web UI session.
logout authentication A user signed out of the web UI.
action-cache-get file access An action result was read from the action cache.
action-cache-upsert file change An action result and its output files were written to the action cache.
action-cache-delete file deletion An action result was deleted from the action cache.
fetch-fetch-blob file change A URL was fetched and its contents were stored in the CAS.
content-addressable-storage-batch-read-blobs file access A batch of blobs was read from the CAS.
content-addressable-storage-batch-update-blobs file change A batch of blobs was written to the CAS.
content-addressable-storage-get-tree file access A directory tree was read from the CAS.
content-addressable-storage-http-get-blob file access A blob was accessed via the HTTP API.
scim-user-create iam creation A user was provisioned via the SCIM API.
scim-user-update iam change A user's attributes or roles were updated via the SCIM API.
scim-user-delete iam deletion A user was deprovisioned via the SCIM API.

Example Audit Logs

Authentication events

login

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
```json
{
  "level": "I",
  "ts": "1766435832.671421000",
  "event": {
    "kind": "event",
    "outcome": "success",
    "category": ["authentication"],
    "action": "login"
  },
  "user": {
    "email": "alice@example.com",
    "roles": ["admin"]
  },
  "source": { "ip": "10.0.1.27" },
  "user_agent": { "original": "Mozilla/5.0 ..." }
}
```

logout

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
```json
{
  "level": "I",
  "ts": "1766435911.000000000",
  "event": {
    "kind": "event",
    "outcome": "success",
    "category": ["authentication"],
    "action": "logout"
  },
  "user": {
    "email": "alice@example.com",
    "roles": ["admin"]
  },
  "source": { "ip": "10.0.1.27" },
  "user_agent": { "original": "Mozilla/5.0 ..." }
}
```

Action cache events

action-cache-get

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
```json
{
  "level": "I",
  "ts": "1766435832.671421000",
  "organization": { "id": "my-tenant" },
  "event": {
    "kind": "event",
    "outcome": "success",
    "category": ["file"],
    "type": ["access"],
    "action": "action-cache-get"
  },
  "action-result": {
    "type": "action-result",
    "size": 512,
    "hash": { "sha256": "409a7f83ac6b31dc8c77e3ec18038f209bd2f545e0f4177c2e2381aa4e067b49" }
  },
  "user": {
    "email": "alice@example.com",
    "roles": ["user"]
  },
  "source": { "ip": "10.0.0.1" },
  "user_agent": { "original": "grpc-go/1.57.0" }
}
```

action-cache-upsert

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
```json
{
  "level": "I",
  "ts": "1766435832.671421000",
  "organization": { "id": "my-tenant" },
  "event": {
    "kind": "event",
    "outcome": "success",
    "category": ["file"],
    "type": ["change"],
    "action": "action-cache-upsert"
  },
  "files": [
    {
      "type": "action-result",
      "size": 512,
      "hash": { "sha256": "409a7f83ac6b31dc8c77e3ec18038f209bd2f545e0f4177c2e2381aa4e067b49" }
    },
    {
      "name": "bazel-out/k8-fastbuild/bin/foo.o",
      "type": "file",
      "size": 8187,
      "hash": { "sha256": "171ae5fcf32ecdd00b9c506ba6ed5aaaac2fea7345fd2a8bd4cd90b4d2fb1e7a" }
    }
  ],
  "user": {
    "email": "alice@example.com",
    "roles": ["user"]
  },
  "source": { "ip": "10.0.0.1" },
  "user_agent": { "original": "grpc-go/1.57.0" }
}
```

Content Addressable Storage events

batch-read-blobs

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
```json
{
  "level": "I",
  "ts": "1766435911.779699000",
  "organization": { "id": "my-tenant" },
  "event": {
    "kind": "event",
    "outcome": "success",
    "category": ["file"],
    "type": ["access"],
    "action": "content-addressable-storage-batch-read-blobs"
  },
  "blobs": [
    {
      "type": "blob",
      "size": 8187,
      "hash": { "sha256": "171ae5fcf32ecdd00b9c506ba6ed5aaaac2fea7345fd2a8bd4cd90b4d2fb1e7a" }
    }
  ],
  "user": {
    "email": "alice@example.com",
    "roles": ["user"]
  },
  "source": { "ip": "10.0.0.1" },
  "user_agent": { "original": "grpc-go/1.57.0" }
}
```

get-tree

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
```json
{
  "level": "I",
  "ts": "1766435911.779699000",
  "organization": { "id": "my-tenant" },
  "event": {
    "kind": "event",
    "outcome": "success",
    "category": ["file"],
    "type": ["access"],
    "action": "content-addressable-storage-get-tree"
  },
  "root": {
    "type": "directory",
    "size": 256,
    "hash": { "sha256": "a3f1c9e2d4b7084f5e6091c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2" }
  },
  "user": {
    "email": "alice@example.com",
    "roles": ["user"]
  },
  "source": { "ip": "10.0.0.1" },
  "user_agent": { "original": "grpc-go/1.57.0" }
}
```

IAM events

scim-user-create

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
```json
{
  "level": "I",
  "ts": "1766435911.779699000",
  "event": {
    "kind": "event",
    "outcome": "success",
    "category": ["iam"],
    "type": ["creation"],
    "action": "scim-user-create"
  },
  "scim_user": {
    "user_name": "alice@example.com",
    "roles": ["user", "viewer"]
  },
  "user": {
    "email": "scim-client",
    "roles": []
  },
  "source": { "ip": "192.168.1.1" },
  "user_agent": { "original": "OKTA SCIM Integration" }
}
```

scim-user-update

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
```json
{
  "level": "I",
  "ts": "1766435911.779699000",
  "event": {
    "kind": "event",
    "outcome": "success",
    "category": ["iam"],
    "type": ["change"],
    "action": "scim-user-update"
  },
  "scim_user": {
    "user_name": "alice@example.com",
    "roles": ["user", "admin"]
  },
  "user": {
    "email": "scim-client",
    "roles": []
  },
  "source": { "ip": "192.168.1.1" },
  "user_agent": { "original": "OKTA SCIM Integration" }
}
```

scim-user-delete

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
```json
{
  "level": "I",
  "ts": "1766435911.779699000",
  "event": {
    "kind": "event",
    "outcome": "success",
    "category": ["iam"],
    "type": ["deletion"],
    "action": "scim-user-delete"
  },
  "scim_user": {
    "user_name": "alice@example.com"
  },
  "user": {
    "email": "scim-client",
    "roles": []
  },
  "source": { "ip": "192.168.1.1" },
  "user_agent": { "original": "OKTA SCIM Integration" }
}
```