Skip to main content

Audit log

Every change made through G8 is written to an audit log: who did what, to which object, when, and with what result. Sign-ins and the daily deletion of old request records are written there too.

Who may open it​

The Audit log of an environment needs the view permission of Audit log in that environment (audit.view). The Environment administrator holds it, and a custom role can carry it. The Platform audit log needs the permission to view the platform audit log (platform_audit.view), which only the Platform administrator holds.

An Editor or a Viewer does not see the audit log in the menu. Opening it by address shows a page that names their role and says who may open the log.

Two logs​

LogWhereWhat it holds
Audit logIn the menu under Audit log, in each environmentEvery change to the gateway objects of that environment, and every change to the environment itself.
Platform audit logUnder Platform audit logEverything, across environments: users, roles, the directory, environments, sign-ins, and the rows of every environment with an Environment column.

A change to the environment itself belongs to that environment, so it shows in both logs. That covers its settings, its protection and every connection test of a saved environment. A connection test made in the form that adds an environment shows in the platform log only, because the environment does not exist yet.

The audit log of an environment: the filter bar, the time presets and the table of events with actor, action, target and result.

What a row shows​

Each row has a Time, an Actor, an Action and a Target. The actor is a local user, an Active Directory user, a service account, or the system.

Some rows are written by the server itself, with the system as their actor and the part of the server that wrote them as their source. A sign-in is one of them, and its row names Sign-in as its source. The directory's own checks name Directory, and the daily cleanup of old rows and request records names Retention.

The result badge says how the action ended.

BadgeMeaning
SuccessThe change was made.
DeniedThe actor's role did not allow it. Nothing changed.
FailedThe change was attempted and failed.
In progressA change to a gateway object was started less than a minute ago and the gateway has not answered yet.
Outcome unknownThe row was written before the gateway was called, and the completion of the change was never recorded. The gateway may or may not hold the change, so open the object and compare it before repeating the change. When the gateway's answer is lost, the server reads the object back and completes the row as success or failure instead, so a row stays here only when the server itself never completed it.

Open a row for the detail: the Request id, the IP address, the Permission the action needed, and the Related events from the same request. A change shows Before and after, the object before and after. The detail notes: Secrets are masked in the audit log.

Finding a row​

Type in the filter box to search by actor, target or name, and narrow by actor, action and result. The time presets are Last hour, Last 24 hours, Last 7 days and Last 30 days. The platform log also filters by environment.

Export​

Export CSV downloads the rows the current filter matches as a CSV file. An export stops at a hundred thousand rows; narrow the filter when the log says the match is larger. Every export is itself written to the log.

How long rows are kept​

Audit rows are kept for 365 days unless the server is configured otherwise. The number of days is G8_AUDIT_RETENTION_DAYS, an environment variable of the G8 server. There is no setting for it in the console. Removing an environment keeps its audit rows.

Every action​

Each row names its action. The platform actions are the server's own catalog, the gateway writes are one per object kind and verb, and the second column is what the console shows for each. Both lists are read from the product when the site is built.

ActionShown as
auth.login_succeededSigned in
auth.login_failedSign-in failed
auth.logoutSigned out
auth.lockoutAccount locked
auth.password_changedPassword changed
session.revokedSession revoked
bootstrap.admin_createdFirst administrator created
user.createdUser created
user.updatedUser updated
user.disabledUser disabled
user.enabledUser enabled
user.deletedUser deleted
user.password_resetPassword reset
user.provisioned_jitUser provisioned from the directory
assignment.grantedAccess granted
assignment.revokedAccess revoked
role.createdRole created
role.updatedRole updated
role.deletedRole deleted
service_account.createdService account created
service_account.updatedService account updated
service_account.disabledService account disabled
service_account.enabledService account enabled
service_account.deletedService account deleted
service_account.token_createdToken created
service_account.token_revokedToken revoked
environment.protected_changedEnvironment protection changed
environment.createdEnvironment added
environment.updatedEnvironment updated
environment.deletedEnvironment deleted
environment.testedConnection test
directory.updatedDirectory connection updated
directory.testDirectory connection tested
directory.group_mapping_addedGroup mapping added
directory.group_mapping_removedGroup mapping removed
directory.membership_resyncMemberships resynced
directory.unreachableDirectory unreachable
access.deniedAccess denied
audit.prunedAudit log pruned
audit.exportedAudit log exported
traffic.retention_changedRetention of request records changed
traffic.prunedRequest records deleted by retention
traffic.writer_testedWriter account of request records tested
traffic.exportedRequest records exported
traffic.body_viewedBody of a request record viewed
alert_rule.createdAlert rule created
alert_rule.updatedAlert rule updated
alert_rule.deletedAlert rule deleted
alert_rule.enabledAlert rule enabled
alert_rule.disabledAlert rule disabled
alert_rule.mutedAlert rule muted
alert_rule.unmutedAlert rule unmuted
alert_channel.createdAlert channel added
alert_channel.updatedAlert channel updated
alert_channel.deletedAlert channel deleted
alert_channel.testedAlert channel tested
alert_smtp.updatedMail relay for alerts saved
alert_smtp.deletedMail relay for alerts removed
alert_smtp.testedMail relay for alerts tested
alerts.prunedAlert history deleted by retention
Gateway objectcreatedupdateddeleted
consumerConsumer createdConsumer updatedConsumer deleted
consumer_groupConsumer group createdConsumer group updatedConsumer group deleted
credentialCredential createdCredential updatedCredential deleted
global_ruleGlobal rule createdGlobal rule updatedGlobal rule deleted
graphql_cost_decorationCost decoration createdCost decoration updatedCost decoration deleted
plugin_configPlugin config createdPlugin config updatedPlugin config deleted
plugin_metadataEnvironment-wide settings createdEnvironment-wide settings updatedEnvironment-wide settings reset
protoProto createdProto updatedProto deleted
routeRoute createdRoute updatedRoute deleted
secretSecret createdSecret updatedSecret deleted
serviceService createdService updatedService deleted
sslCertificate createdCertificate updatedCertificate deleted
stream_routeStream route createdStream route updatedStream route deleted
upstreamUpstream createdUpstream updatedUpstream deleted
G8 dev