OBLETHdocs

Audit log

See who changed what in the gateway's configuration, and when, from the dashboard or the Management API.

3 min readUpdated for v2.4.0Edit on GitHub

RecordsEvery change made through the Management API
Read itAudit in the dashboard, or GET /api/v1/audit
KeptIn Postgres, append-only

Find a change

Open Audit. Each change reads as a sentence that names what changed and links to its page, newest first and grouped by day. A run of the same change by the same person within a minute folds into one line, such as "changed 3 models". Deleted things keep their names, taken from the log's own records.

The Audit page: tiles for changes in 7 days, people, the most changed kind and deletions, above filters and a day-by-day list of changes written as sentences

  • Search by a name, an id, or what changed.
  • Filter by time (24 hours, 7 days, 30 days or all), by who (Anyone or one person), and by kind (Anything or one kind of thing). The filters are kept in the address, so a filtered view can be shared.
  • Open a line's details to see which fields changed from what to what, with the raw JSON behind Raw JSON.
  • Load older pages back through the whole log.
  • Export downloads the current view as CSV.

A model's Audit log link opens the log filtered to that model.

Who is recorded

ActorMeaning
An email addressThe signed-in dashboard or portal user who made the change
systemThe Slurm provisioner, for changes it makes itself
adminA Management API call that named no actor. The dashboard shows it as "admin token"

Callers name the actor with the x-obleth-audit-actor header. The dashboard sends the signed-in user's email on every write, including those made from live pages such as Fairshare. A script calling the Management API can set the header to attribute its changes, or leave it out to record admin.

Read it through the API

curl "http://localhost:9180/api/v1/audit?entity_type=tenant&since=2026-09-01T00:00:00Z&limit=200" \
  -H "Authorization: Bearer $OBLETH_ADMIN_TOKEN"

Rows come back newest first. Each has id, ts, actor, action, entity_type, entity_id and detail, a JSON object with the specifics of the change.

ParameterMeaning
limitRows to return. Default 100, at most 1,000
actorAn exact actor, such as an email or admin
entity_type, entity_idThe kind of thing and its id
actionOne action, or several separated by commas
since, untilRFC 3339 times; since is inclusive, until exclusive
qFree text over actor, action, entity id and detail
before_idPage back from this row id

The rows are stored in the Postgres audit_log table. See Postgres schema.

What is not recorded

Secrets stay out of the log: a model's upstream key is not recorded when the model is created, and configuration backups record only entity counts (and, for a restore, the source's export time, gateway version and warnings), never the backup itself, which carries secrets and key hashes. See Backup and restore.

Data-plane traffic is not audited here. Requests are in Request logs.

Recorded actions
Entity typeActions
tenantcreate_tenant, update_tenant, delete_tenant, update_quota, update_weight, update_tenant_group, set_tenant_status, set_tenant_budget, set_tenant_schedule, set_tenant_allowlist, set_tenant_guardrails, set_tenant_compression, set_tenant_synthetic, enable_tenant_tracing, disable_tenant_tracing
fairshare_groupcreate_fairshare_group, update_fairshare_group_weight
api_keycreate_key, update_key, delete_key, move_key, enable_key, disable_key, enable_key_tracing, disable_key_tracing
modelcreate_model, update_model, delete_model, activate_model, set_model_status, set_model_capacity, set_model_capacity_mode, set_model_weight, set_model_cache, set_model_reliability, set_model_knowledge_collections, update_model_health_config, autotune_model, apply_autotune_capacity, clear_lost_replicas
model_endpointcreate_model_endpoint, update_model_endpoint, delete_model_endpoint
managed_modelput_managed_model, delete_managed_model, clear_provision_error
model_replicacreate_replica, patch_replica, restart_replica, delete_replica
mcp_servercreate_mcp_server, update_mcp_server, delete_mcp_server
recipecreate_recipe, update_recipe, delete_recipe
knowledge_collectioncreate_knowledge_collection, update_knowledge_collection, delete_knowledge_collection, reindex_knowledge_collection
knowledge_documentupload_knowledge_document, delete_knowledge_document, reindex_knowledge_document
settingsset_alert_settings, set_auto_router_settings, set_boon_settings, set_charo_settings, set_energy_settings, set_knowledge_settings, set_slurm_settings, set_usage_retention
usagecompact_usage
gatewayset_capacity, export_backup, restore_backup, export_models, import_models, resync_resolver_cache