Skip to content
This repository was archived by the owner on Apr 14, 2023. It is now read-only.

Commit 47b2e64

Browse files
author
Stephen Barlow
authored
Merge pull request #1304 from apollographql/sb/audit-enums
Add enum values for audit log reports
2 parents a8e2844 + 01912e9 commit 47b2e64

File tree

2 files changed

+100
-25
lines changed

2 files changed

+100
-25
lines changed

studio-docs/source/audit-log.md

Lines changed: 100 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,112 @@ sidebar_title: Audit log (enterprise only)
44
description: Download a log of all material events that have occured in your account
55
---
66

7-
As of July 2021, [Studio Enterprise](http://apollographql.com/pricing) offers an audit log of all material events that have ocurred in your organization. You can find the interface to request an export of auditable events under the **Audit** tab of your organization's homepage:
7+
Organizations with a [Studio Enterprise plan](http://apollographql.com/pricing) can export and download an audit log of all material events that have occurred in the organization over a given timeframe. You can find the interface to request an export of auditable events under the **Audit** tab of your organization's homepage:
88

99
<img src="https://user-images.githubusercontent.com/5922187/127679934-e862077a-0ce0-4e3a-89db-ad9e621111ff.png" class="screenshot" alt="Apollo Studio audit log" />
1010

11-
## How it works
11+
> Audit log data is available from July 2021 onward.
1212
13-
Actions taken in your organization appear in exported logs about 10-15 minutes after they occur. When creating an audit export, you can specify a **time range** and filter actions taken by a specific **user**, or actions taken on a specific **graph**. If you need to export a log with a complex filter, please contact us at [[email protected]](mailto:[email protected]).
13+
## Creating an audit log export
1414

15-
Audit exports sometimes take a few minutes to process. When an export is ready, Studio emails you a link to it, and you can also find that link in the audit exports table. Audit export files are available to download for 30 days.
15+
> Only [Organization Admins](./org/members/#organization-wide-member-roles) can request audit exports.
1616
17-
Only **Organization Admins** can request audit exports.
17+
When creating an audit log export, you specify a **time range**, along with optional filters to limit actions to a particular **user** or **graph**:
1818

19-
## Audited events
19+
<img src="./img/audit-log-create.jpg" class="screenshot" alt="Apollo Studio audit log" width="400" />
2020

21-
All material changes to your Studio account are logged in the audit log. This includes:
22-
- Graph Changes
23-
- Graphs created and deleted
24-
- Graph titles, descriptions, or avatars changed
25-
- API keys created, renamed, or deleted
26-
- Datadog configuration changed
27-
- Hidden/visible property changed
28-
- Graph role overrides changed
29-
- Variants created
21+
> If you need to export a log with more complex filters, please email **[email protected]**.
3022
31-
- User Changes
32-
- User added to or removed from org
33-
- User role changed in org
34-
- Beta features toggled on/off
35-
- User API keys created, renamed, or deleted
36-
- Password changed or password reset attempted
37-
- Avatar or email changed
38-
- Submitted a support ticket
39-
- Email verified
40-
- User deleted
23+
Exports sometimes take a few minutes to process. When an export is ready, Studio emails you a link to its CSV file, and you can also find that link in the audit exports table. Audit export files are available to download for 30 days.
24+
25+
Note that it takes about 10 to 15 minutes before a performed action can appear in an exported audit log.
26+
27+
## Reading an audit log
28+
29+
An exported audit log is a CSV file in which each row represents a material change to your Studio organization. Columns contain the following information:
30+
31+
| Column | Description |
32+
|--------|-------------|
33+
| **Timestamp** | The time when the action occurred. |
34+
| **Action** | The type of action that occurred. Possible values are listed in [Audited actions](#audited-actions). |
35+
| **Resource_ID** | The ID of the resource that was acted on. |
36+
| **Resource_Type** | The type of resource that was acted on. Possible values are listed in [Resource types](#resource-types). |
37+
| **Details** | A JSON object containing details of the action that occurred. The fields of this object vary depending on the action. |
38+
| **Actor_ID** | The Studio ID of the actor that performed the action. |
39+
| **Actor_Type** | The type of actor that performed the action. This is most commonly `USER` (an authenticated user) or `GRAPH` (a tool such as the Rover CLI using a graph API key). |
40+
| **Effective_Role** | The [organizational role](/org/members/#organization-wide-member-roles) of the actor that performed the action, indicating its corresponding [permissions](/org/members/#role-permissions). |
41+
| **Actor_Email** | The actor's email address, if the actor is a `USER`. |
42+
| **Actor_Name** | The actor's name, if the actor is a `USER`. |
43+
| **Graph_ID** | The ID of the Studio graph that the action pertains to, if any. |
44+
45+
## Resource types
46+
47+
An audit log's **Resource_Type** column indicates what type of resource each action was performed _on_. Possible values are listed below.
48+
49+
| Resource type | Description |
50+
|---------------|-------------|
51+
| `ACCOUNT` | A Studio [organization](./org/organizations/). |
52+
| `USER` | A Studio user. |
53+
| `GRAPH` | A Studio [graph](./org/graphs/). |
54+
| `GRAPH_VARIANT` | A graph [variant](./org/graphs/#managing-variants). |
55+
| `GRAPH_API_KEY` | A graph [API key](./api-keys/). |
56+
| `USER_API_KEY` | A user [API key](./api-keys/). |
57+
| `ZENDESK_TICKET` | An Apollo support ticket. |
58+
| `AUDIT_JOB` | The generation of an audit log export. |
59+
| `EMAIL_SETTINGS` | A user's marketing email settings. |
60+
| `ACCOUNT_INVITATION` | An invitation for a user to join an organization. |
61+
62+
## Audited actions
63+
64+
The **Action** column of an audit log indicates the type of each action that was performed. Possible values are listed below.
65+
66+
> If your audit log includes an action type that is _not_ listed below and you have questions about it, please contact **[email protected]**.
67+
68+
### Generic actions
69+
70+
These actions are applied to a variety of [resource types](#resource-types), including graphs, variants, and API keys.
71+
72+
| Action type | Description |
73+
|-------------|-------------|
74+
| `CREATE` | Creates a resource of the corresponding resource type. |
75+
| `UPDATE` | Modifies an existing resource of the corresponding resource type. |
76+
| `SOFT_DELETE` | Deletes a resource of the corresponding resource type, but the resource is still recoverable if necessary. |
77+
| `UNDO_SOFT_DELETE` | Recovers a resource from a previous `SOFT_DELETE`. |
78+
| `DELETE` | Permanently deletes a resource of the corresponding resource type. |
79+
| `CONFIG_CHANGE` | Modifies a resource's configuration, such as changing a variant's endpoint URL. Many different configuration changes use this action type. |
80+
| `API_KEY` | Creates, renames, or deletes an API key. This action type is deprecated in favor of `CREATE`, `UPDATE`, and `DELETE`, but it still appears alongside those action types in audit logs. |
81+
82+
### Federated graphs
83+
84+
| Action type | Description |
85+
|-------------|-------------|
86+
| `IMPLEMENTING_SERVICE_UPSERT` | Adds a new subgraph to a federated graph. |
87+
| `IMPLEMENTING_SERVICE_REMOVE` | Removes a subgraph from a federated graph. |
88+
89+
### Organization members
90+
91+
| Action type | Description |
92+
|-------------|-------------|
93+
| `JOIN_ACCOUNT` | Adds a user to an organization. |
94+
| `LEAVE_ACCOUNT` | Removes a user from an organization. |
95+
| `CHANGE_ROLE` | Changes a user's [organizational role](/org/members/#organization-wide-member-roles). |
96+
| `OVERRIDE_GRAPH_ROLE` | [Overrides a user's role](/org/members/#graph-specific-member-roles) for a single graph. |
97+
98+
### Studio features
99+
100+
| Action type | Description |
101+
|-------------|-------------|
102+
| `IGNORE_OPERATION_IN_CHECKS` | Ignores a particular GraphQL operation when running [schema checks](./schema-checks/). |
103+
| `MARK_CHANGES_SAFE_FOR_OPERATION` | Marks a particular set of changes as safe when running [schema checks](./schema-checks/). |
104+
| `REGISTER_OPERATION` | Adds a GraphQL operation to the [operation registry](./operation-registry/). |
105+
| `TOGGLE_DATADOG` | Enables or disables [Datadog metrics forwarding](./metrics/datadog-integration/). |
106+
107+
### Studio plan
108+
109+
| Action type | Description |
110+
|-------------|-------------|
111+
| `CURRENT_BILLING_SUBSCRIPTION_CHANGE` | Changes an organization's active Studio plan. |
112+
| `BILLING_PERIOD_CHANGE` | Changes a Studio plan's billing period. |
113+
| `CANCEL_STUDIO_SUBSCRIPTION` | Cancels a Studio plan (the plan remains active through the current billing period, after which the `TERMINATE_STUDIO_SUBSCRIPTION` action occurs). |
114+
| `TERMINATE_STUDIO_SUBSCRIPTION` | Terminates an organization's canceled plan at the end of the current billing period. |
115+
| `REACTIVATE_STUDIO_SUBSCRIPTION` | Reactivates a previously canceled Studio plan. |
178 KB
Loading

0 commit comments

Comments
 (0)