Platform management

Activity Feed Export data reference

Reference for Activity Feed Export file paths, manifests, and OCSF event fields.

Activity Feed Export writes gzip-compressed newline-delimited JSON (NDJSON) event files and a JSON manifest for each completed export window. Event records use Open Cybersecurity Schema Framework (OCSF) version 1.9.0. The manifest has its own schema version, currently 1.

Object paths

Paths are relative to the bucket root or the optional folder configured for the destination:

YOUR_ORGANIZATION_ID is your organization ID. YYYY-MM-DD is the UTC date of the window start. WINDOW_START_MICROSECONDS is the window start as Unix microseconds. Manifest schema version 1 lists at most one event file per window.

Manifest fields

Every completed window has a manifest, including windows with no exported records. Its fields are:

  • RequiredschemaVersion

    integer

    Manifest schema version. Currently 1; independent of the OCSF version.

  • RequiredorganizationId

    string

    Organization whose activity is exported.

  • RequiredwindowStart

    string

    Start of the ingest-time window, inclusive, as a UTC RFC 3339 timestamp.

  • RequiredwindowEnd

    string

    End of the ingest-time window, exclusive, as a UTC RFC 3339 timestamp.

  • RequiredeventCount

    integer

    Total number of exported records across the listed files.

  • Requiredfiles

    array<object>

    Event files for the window. Empty when no records were exported.

Each entry in files has these fields:

  • Requiredname

    string

    Filename relative to the manifest's directory.

  • RequiredfileFormat

    string

    ndjson: each decompressed line contains one JSON event.

  • Requiredcompression

    string

    gzip.

  • RequiredeventCount

    integer

    Number of event records in this file.

  • RequiredsizeBytes

    integer

    Size of the compressed file in bytes.

  • Requiredsha256

    string

    SHA-256 digest of the compressed bytes, encoded as 64 lowercase hexadecimal characters.

This manifest lists one file containing one exported event:

With no exported records, eventCount is 0 and files is empty:

Completion and integrity

The manifest arrives after the event files it lists. Treat an event file without its manifest as an incomplete window. For a completed window, the file event counts add up to the manifest's eventCount.

You can compare the compressed file sizes and SHA-256 digests with the manifest and count the decompressed NDJSON records. The digest detects corruption; it is not a cryptographic signature or a guarantee of tamper evidence.

The manifest counts exported records, not all source activity. Records that cannot be converted can be omitted while the rest of the window completes. The manifest has no omitted-record count.

Example event

This synthetic Entity Management record illustrates the exported JSON shape. Each decompressed NDJSON line contains one record; indentation is shown here for readability.

OCSF event mapping

For standard field definitions, required attributes, and allowed values, see the OCSF 1.9.0 schema browser. Sanity maps recorded actions to these event classes:

Sanity sets category_uid to 3 (Identity and Access Management) and severity to Informational (severity_id: 1).

The export derives status from the source action: the failed verb maps to Failure (status_id: 2); other supported verbs map to Success (status_id: 1). The status is not an independently measured execution outcome. message contains the source description when available.

The export maps selected source fields into OCSF. It does not copy the original Activity Log record in full, preserve arbitrary source metadata, or include an unmapped object. The original action string is not a separate exported field. Before-and-after values are not provided.

Event metadata

The metadata object has these fields:

  • Requiredversion

    string

    OCSF schema version, 1.9.0.

  • Requireduid

    string

    Stable Activity Log event ID. Use this value to deduplicate records.

  • Requiredtenant_uid

    string

    Organization ID.

  • Source correlation ID, when present. No correlation across other log products is guaranteed.

  • Requiredproduct

    object

    Source product: name and vendor_name are Sanity; url_string is https://www.sanity.io.

Actor and target identities

actor.user identifies the person or service performing the action. The managed user identifies the person affected by a User Management event. Sanity includes available identifiers, names, and email addresses; unavailable identity fields are omitted. A Sanity service actor uses uid: "sanity-system" and type: "Service".

An entity has type_id: 99 (Other), a descriptive type, and a name, uid, or both. Some actions identify only a resource type, not a unique resource. An iam_role has a uid (role slug), a name (display name), or both.

Time windows and duplicates

Hourly windows group records by when Sanity received them. The OCSF time field preserves the original event timestamp in Unix milliseconds, so an older event can appear in a later delivery window. A missing original timestamp is represented as 0.

Consumers must tolerate duplicate and out-of-order records, including during recovery. Use metadata.uid to identify the same event across deliveries. Connecting a destination does not provide a self-service historical export.

To configure automated delivery, see Export activity to Google Cloud Storage.

Was this page helpful?