2026-07-31 · The audit log now records API and admin actions
Every change made with an API key or from the dashboard is written to the audit log. Before this, only scheduler jobs were recorded.
The audit log now records API and admin actions
The audit log kept only one kind of entry: work done by our scheduler. Changes you made with an API key were not written. Neither were changes made in the dashboard.
This is fixed. Every change is recorded from today.
What you will see
GET /v1/audit-log returns rows it never returned before.
Each row says who made the change:
api— somebody used one of your API keys.admin— a person used the dashboard.system— a QuotaStack job did it, such as a renewal or an expiry sweep.
The actor_type filter now works for all three. It returned nothing for api and admin before, because no row held those values.
What went wrong
The actor_type column accepts three values: api, admin, and system. Our code wrote api_key and admin_user instead. The database rejected every one of those rows.
The code then threw the error away. Your API call still returned 200, so nothing looked wrong.
Two more fields failed the same way. Some changes sent an empty environment, and dashboard sign-ins sent an empty tenant. Both are now filled in.
History is not filled in
Rows for changes made before today do not exist. They were rejected, not stored somewhere else. We cannot rebuild them.
Treat the audit log as complete from 31 July 2026 onward.
One smaller change
GET /v1/audit-log?actor_type= now returns 400 when the value is not one of the three. It returned 500 before.
Loading…