Activity
A record of every change anybody made on your account.
Every change made on your account is recorded: what was done, to what, by whom, from where, when, and whether it succeeded. Reads are not recorded — changes are.
This is not a log. Logs are for diagnosis. This answers "who deleted the production world, and were they allowed to" — a question asked months later by somebody who needs an answer they can rely on.
What an entry carries
| Field | Answers |
|---|---|
method | What was done, e.g. /plany.playpute.v1.PlayputeService/DeleteGameServer. |
resource | What it was done to, as a resource name. |
account, project, location | Where. location is empty for changes to the account itself. |
actor.principal | Who — a user or a service account. |
actor.email | Their email at the time. |
actor.ip_address, actor.user_agent | Where from. |
actor.credential_id | Which credential was used. |
status | Whether it succeeded, and if not, why. |
event_time | When. |
Failed attempts are recorded too. A run of PERMISSION_DENIED from one credential is
the clearest sign that somebody is trying doors.
credential_id turns "an API key may have leaked" from a panic into a query:
everything that key ever did, in one filter.
The email is kept as it was at the time. A user can be renamed or removed, and an entry should keep naming the person who actually did it.
Reading it
Activity → filter by person, service, time, or only refused calls| Call | Answers |
|---|---|
ListAuditEvents | The record, newest first, narrowed by filter. |
GetAuditEvent | One entry. |
SummariseActivity | What has been happening, aggregated. |
VerifyIntegrity | Proves nothing has been altered or removed. |
The filters worth knowing:
| Filter on | To answer |
|---|---|
resource | Everything that ever happened to this game server. |
principal | Everything this person or service account did. |
credential_id | Everything one API key did. |
method | Every call of one kind — every delete of a game server, say. |
failures_only | Only calls that were refused or failed. |
project, location, service and time_range narrow any of these further.
Nothing can be edited or removed
Not by you, not by your team, and not through any Plany API. Entries cannot be edited
or removed, and VerifyIntegrity proves it — which is what makes the record usable as
evidence rather than as a table somebody could have changed. In the console it is
Activity → Verify now.
Verifying is the account owner's to do. An administrator can read the record but not verify it, because an administrator is one of the people it might be evidence about.
Passwords and credentials are never recorded
Sensitive values — passwords, secret values, tokens, keys — are removed from a request before its entry is written.
Every region, one record
Your account's activity is one record wherever the change was made. location says
which region.