Skip to main content
Pulumi logo Pulumi logo
  1. Docs
  2. Administration
  3. Reference
  4. Audit log formats

Audit log formats

    The fields carried by each format Pulumi Cloud writes an audit log export in. Consult these when you parse an exported log or map it into a SIEM. For how to produce an export, see the audit log guides.

    JSON format

    JSON is the format the audit log REST API returns by default. Each response carries a page of events and a continuation token for the next page:

    {
      "auditLogEvents": [
        {
          "timestamp": 1756400000,
          "sourceIP": "203.0.113.42",
          "event": "stack-update-started",
          "description": "A stack update started.",
          "user": {
            "name": "Alex Rivera",
            "githubLogin": "arivera",
            "avatarUrl": "https://avatars.githubusercontent.com/u/1234567"
          },
          "tokenName": "ci-deploy"
        },
        {
          "timestamp": 1756399820,
          "sourceIP": "198.51.100.7",
          "event": "member-added",
          "description": "A member was added to an organization.",
          "user": {
            "name": "Dana Okonkwo",
            "githubLogin": "dokonkwo",
            "avatarUrl": "https://avatars.githubusercontent.com/u/7654321"
          },
          "reqOrgAdmin": true
        }
      ],
      "continuationToken": "eyJ0aW1lc3RhbXAiOjE3NTYzOTk5MDB9"
    }
    

    Each event carries the following fields. Only timestamp, sourceIP, event, description, and user are always present; the rest appear when they apply to the event.

    FieldDescription
    timestampUnix epoch timestamp (seconds) when the event occurred
    sourceIPIP address of the client that triggered the event
    eventthe audit event type identifier (for example, stack-update-started, member-added)
    descriptionhuman-readable description of the event
    userthe user who performed the action (display name, login, and avatar URL)
    tokenIDID of the access token used to authenticate, if applicable
    tokenNamename of the access token used to authenticate, if applicable
    reqOrgAdminwhether the action required the organization ADMIN role
    reqStackAdminwhether the action required stack admin privileges
    authFailurewhether this event represents a failed authentication attempt
    actorNamedisplay name of the non-human actor (for example, a deploy token name) that triggered the event
    actorUrnPulumi URN of the non-human actor that triggered the event

    CSV format

    The CSV (comma separated values) format is composed of the following fields:

    Timestamp, Name, Login, Event, Description, SourceIP, RequireOrgAdmin, RequireStackAdmin, AuthenticationFailure
    
    FieldDescription
    Timestampthe Unix timestamp of when the event was recorded
    Namename of the user invoking the event
    Loginusername of the user invoking the event
    Eventthe name of the event
    Descriptiondetailed description of the event that occurred
    SourceIPIP Address of the client originating the request to invoke this event
    RequireOrgAdminindicates whether the event required organizational admin level permissions, the value will either be “true” or “false”
    RequireStackAdminindicates whether the event required stack admin level permissions, the value will either be “true” or “false”
    AuthenticationFailureindicates whether the event occurred due to an authentication failure, the value will either be “true” or “false”

    CEF format

    CEF (common event format) is an audit and logging event format supported by a wide range of SIEM (security information and event management) systems.

    The format is as follows:

    MMM dd hh:mm:ss host CEF:Version|Device Vendor|Device Product|Device Version|Device Event Class ID|Name|Severity|[Extension]
    

    The following fields are part of the standard header defined by CEF:

    Device Vendor, Device Product, Device Version: these are strings that uniquely identify the sending device

    Device Event Class ID: string or integer identifying the type of event reported

    Name: a human readable description of the event

    Severity: severity level reflecting the importance of the event

    Extensions: the extensions field is collection of key-value pairs. These keys come from a pre-defined set as well as some keys that we have defined on our own. The following is a list of the keys we are setting on the extension field.

    Pre-defined keys by the CEF standard:

    KeyDescription
    dvchostidentifies the device host name.
    rtidentifies the time at which the event related to the activity was received.
    srcidentifies the source that an event refers to in an IP network.
    suseridentifies the source user by user name.

    Custom defined keys:

    KeyDescription
    orgIDthe ID of the organization this event belongs to.
    userIDthe ID of the user who invoked this event.
    requireOrgAdminindicates whether the event required organizational admin level permissions, the value will either be “true” or “false”
    requireStackAdminindicates whether the event required stack admin level permissions, the value will either be “true” or “false”
    authenticationFailureindicates whether the event occurred due to an authentication failure, the value will either be “true” or “false”

      The infrastructure as code platform for any cloud.