PlanyDocs
Account and platform

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

FieldAnswers
methodWhat was done, e.g. /plany.playpute.v1.PlayputeService/DeleteGameServer.
resourceWhat it was done to, as a resource name.
account, project, locationWhere. location is empty for changes to the account itself.
actor.principalWho — a user or a service account.
actor.emailTheir email at the time.
actor.ip_address, actor.user_agentWhere from.
actor.credential_idWhich credential was used.
statusWhether it succeeded, and if not, why.
event_timeWhen.

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
CallAnswers
ListAuditEventsThe record, newest first, narrowed by filter.
GetAuditEventOne entry.
SummariseActivityWhat has been happening, aggregated.
VerifyIntegrityProves nothing has been altered or removed.

The filters worth knowing:

Filter onTo answer
resourceEverything that ever happened to this game server.
principalEverything this person or service account did.
credential_idEverything one API key did.
methodEvery call of one kind — every delete of a game server, say.
failures_onlyOnly 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.