Skip to main content

Activity

The Activity log is the account-wide audit trail. Every state-changing action — service deploys, env-var edits, member invitations, custom domain changes, token issuance — is captured the moment it happens, with the actor, action, target, IP address, and user agent on the row.

It's the same log compliance reviews ask for and the first thing to check when you're trying to figure out who changed what.

What gets logged​

Every row has a structured action + module pair so the log is filterable and stable across UI changes. The action set is intentionally small; the module set covers every customer-owned resource type.

ModuleTypical actions
AccountCreate, Update, AddUser, RemoveUser, UpdateUserRole
ProjectCreate, Update, Delete, AddMember, RemoveMember
EnvironmentCreate, Update, Delete
ServiceCreate, Update, Delete, Deploy, Start, Stop, Rollback
DeploymentCreate, Update, UpdateCustomDomain, AddDomain, RemoveDomain
API tokenCreate, Revoke
DatastoreCreate, Update, Delete (Postgres / Valkey / RabbitMQ)
Alert ruleCreate, Update, Delete, Triggered

This is a representative list, not the complete enum. The full set of action and module values is what the API will return when you filter — use the API filter examples below to discover what's available in your account.

Each entry follows the {Action}{Module} title pattern (CreateService, DeleteEnvironment, RollbackService, UpdateDeploymentCustomDomain, etc.), making rows easy to grep, easy to filter, and stable across UI changes.

What's on every entry​

FieldWhat it is
idUUID of the activity row.
created_atRFC 3339 timestamp, UTC.
account_idThe account the action targeted.
actorStructured {kind, id, display_name, email_masked}. kind is user, api_token, or system. Captured at write time so audit rows survive renames and token revocations.
actionThe operation — Create, Update, Delete, Deploy, Rollback, etc.
moduleThe resource type — Service, Project, Environment, Account, Deployment, etc.
titleThe {Action}{Module} join — convenient for filters and search.
remarksHuman-readable summary (e.g. Service example created).
project_idSet when the action is project-scoped, null when account-scoped.
ip_addressOriginating IP when the action came over a request. null for system events.
user_agentUA string for request-origin events.
linkOptional URL pointing at the affected resource.

actor, ip_address, and user_agent exist for forensic audit — the audit row is immutable, so you can trace an action back to its origin even after the user has changed their name or revoked the token they used.

How to read it​

Open the console, then click Activity in the left navigation. The view shows account-wide activity by default — every action across every project. Use the filters at the top to narrow to a specific project, module, action, or actor.

Activity tab in the console with the account-wide audit logActivity tab in the console with the account-wide audit log

Each row shows the actor's display name, the {Action}{Module} title, a human-readable remark, and the timestamp.

Activity Filter modal with module, action, and actor controlsActivity Filter modal with module, action, and actor controls

For project-scoped activity, open the project and look at the Activity panel on the bottom-left of the project overview — same data, pre-filtered to that project.

Honest limits​

  • Activity is account-scoped. There's no cross-account audit view today — even for users who belong to multiple accounts.
  • The action/module enum can evolve. New resource types and operations add to the set as the platform ships features. Filter against what the API returns rather than caching a static list.
  • ip_address and user_agent may be null — they're populated for request-origin events. System-initiated actions (scheduled tasks, platform reconcilers) don't carry an IP or UA.
  • actor is null on rows older than the structured-actor migration. Pre-migration entries fall back to the legacy user_id field.
  • Retention isn't customer-configurable. Default retention applies to every account; contact support if you need a longer window for compliance reasons.
  • There's no real-time push. Activity is polled, not streamed. Use the API filter parameters to build the cadence that fits your audit pipeline.
  • Deletes are recorded, not reversible. The log captures the Delete* action, but the underlying resource is gone — activity is a forensic record, not an undo history.

What's next​

  • API keys — how to scope and rotate the token used for programmatic activity queries.
  • Service actions — what each Action on a Service row corresponds to in the deploy lifecycle.
  • Security → Access controls — who in your account can read the activity log and who can edit the resources it tracks.
  • Status — separate page for platform-side incidents. Customer activity is yours; platform health is shared.