Skip to content

Commit f2b4595

Browse files
committed
PR feedback
1 parent e1a9fbb commit f2b4595

File tree

3 files changed

+29
-24
lines changed

3 files changed

+29
-24
lines changed

docs/admin/audit-logs.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ We track the following resources:
1111

1212
| <b>Resource<b> | |
1313
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
14-
| GitSSHKey | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>public_key</td><td>true</td></tr><tr><td>user_id</td><td>true</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>private_key</td><td>true</td></tr></tbody></table> |
15-
| WorkspaceBuild | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>job_id</td><td>false</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>daily_cost</td><td>false</td></tr><tr><td>template_version_id</td><td>true</td></tr><tr><td>build_number</td><td>false</td></tr><tr><td>initiator_id</td><td>false</td></tr><tr><td>provisioner_state</td><td>false</td></tr><tr><td>reason</td><td>false</td></tr><tr><td>workspace_id</td><td>false</td></tr><tr><td>transition</td><td>false</td></tr><tr><td>id</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>deadline</td><td>false</td></tr></tbody></table> |
16-
| User | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>created_at</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>deleted</td><td>true</td></tr><tr><td>hashed_password</td><td>true</td></tr><tr><td>login_type</td><td>false</td></tr><tr><td>username</td><td>true</td></tr><tr><td>avatar_url</td><td>false</td></tr><tr><td>last_seen_at</td><td>false</td></tr><tr><td>id</td><td>true</td></tr><tr><td>rbac_roles</td><td>true</td></tr><tr><td>email</td><td>true</td></tr><tr><td>status</td><td>true</td></tr></tbody></table> |
14+
| User | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>rbac_roles</td><td>true</td></tr><tr><td>last_seen_at</td><td>false</td></tr><tr><td>hashed_password</td><td>true</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>login_type</td><td>false</td></tr><tr><td>deleted</td><td>true</td></tr><tr><td>status</td><td>true</td></tr><tr><td>avatar_url</td><td>false</td></tr><tr><td>email</td><td>true</td></tr><tr><td>username</td><td>true</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>id</td><td>true</td></tr></tbody></table> |
15+
| Workspace | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>created_at</td><td>false</td></tr><tr><td>owner_id</td><td>true</td></tr><tr><td>id</td><td>true</td></tr><tr><td>name</td><td>true</td></tr><tr><td>ttl</td><td>true</td></tr><tr><td>last_used_at</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>organization_id</td><td>false</td></tr><tr><td>template_id</td><td>true</td></tr><tr><td>deleted</td><td>false</td></tr><tr><td>autostart_schedule</td><td>true</td></tr></tbody></table> |
16+
| GitSSHKey | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>user_id</td><td>true</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>private_key</td><td>true</td></tr><tr><td>public_key</td><td>true</td></tr></tbody></table> |
17+
| Organization | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>name</td><td>true</td></tr><tr><td>description</td><td>true</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>id</td><td>true</td></tr></tbody></table> |
1718
| AuditableGroup | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>quota_allowance</td><td>true</td></tr><tr><td>members</td><td>true</td></tr><tr><td>id</td><td>true</td></tr><tr><td>name</td><td>true</td></tr><tr><td>organization_id</td><td>false</td></tr><tr><td>avatar_url</td><td>true</td></tr></tbody></table> |
18-
| Organization | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>created_at</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>id</td><td>true</td></tr><tr><td>name</td><td>true</td></tr><tr><td>description</td><td>true</td></tr></tbody></table> |
19-
| Template | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>allow_user_cancel_workspace_jobs</td><td>true</td></tr><tr><td>provisioner</td><td>true</td></tr><tr><td>description</td><td>true</td></tr><tr><td>group_acl</td><td>true</td></tr><tr><td>user_acl</td><td>true</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>icon</td><td>true</td></tr><tr><td>created_by</td><td>true</td></tr><tr><td>deleted</td><td>false</td></tr><tr><td>default_ttl</td><td>true</td></tr><tr><td>name</td><td>true</td></tr><tr><td>id</td><td>true</td></tr><tr><td>min_autostart_interval</td><td>true</td></tr><tr><td>organization_id</td><td>false</td></tr><tr><td>display_name</td><td>true</td></tr><tr><td>is_private</td><td>true</td></tr><tr><td>active_version_id</td><td>true</td></tr></tbody></table> |
20-
| OrganizationMember | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>created_at</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>roles</td><td>true</td></tr><tr><td>user_id</td><td>true</td></tr><tr><td>organization_id</td><td>true</td></tr></tbody></table> |
21-
| TemplateVersion | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>created_by</td><td>true</td></tr><tr><td>id</td><td>true</td></tr><tr><td>readme</td><td>true</td></tr><tr><td>job_id</td><td>false</td></tr><tr><td>organization_id</td><td>false</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>name</td><td>true</td></tr><tr><td>template_id</td><td>true</td></tr></tbody></table> |
22-
| Workspace | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>template_id</td><td>true</td></tr><tr><td>name</td><td>true</td></tr><tr><td>autostart_schedule</td><td>true</td></tr><tr><td>id</td><td>true</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>ttl</td><td>true</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>owner_id</td><td>true</td></tr><tr><td>last_used_at</td><td>false</td></tr><tr><td>deleted</td><td>false</td></tr><tr><td>organization_id</td><td>false</td></tr></tbody></table> |
19+
| Template | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>user_acl</td><td>true</td></tr><tr><td>id</td><td>true</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>name</td><td>true</td></tr><tr><td>created_by</td><td>true</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>active_version_id</td><td>true</td></tr><tr><td>group_acl</td><td>true</td></tr><tr><td>provisioner</td><td>true</td></tr><tr><td>organization_id</td><td>false</td></tr><tr><td>display_name</td><td>true</td></tr><tr><td>default_ttl</td><td>true</td></tr><tr><td>description</td><td>true</td></tr><tr><td>min_autostart_interval</td><td>true</td></tr><tr><td>deleted</td><td>false</td></tr><tr><td>is_private</td><td>true</td></tr><tr><td>allow_user_cancel_workspace_jobs</td><td>true</td></tr><tr><td>icon</td><td>true</td></tr></tbody></table> |
20+
| WorkspaceBuild | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>updated_at</td><td>false</td></tr><tr><td>template_version_id</td><td>true</td></tr><tr><td>transition</td><td>false</td></tr><tr><td>provisioner_state</td><td>false</td></tr><tr><td>reason</td><td>false</td></tr><tr><td>id</td><td>false</td></tr><tr><td>daily_cost</td><td>false</td></tr><tr><td>deadline</td><td>false</td></tr><tr><td>initiator_id</td><td>false</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>workspace_id</td><td>false</td></tr><tr><td>job_id</td><td>false</td></tr><tr><td>build_number</td><td>false</td></tr></tbody></table> |
21+
| TemplateVersion | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>created_at</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>organization_id</td><td>false</td></tr><tr><td>template_id</td><td>true</td></tr><tr><td>name</td><td>true</td></tr><tr><td>readme</td><td>true</td></tr><tr><td>created_by</td><td>true</td></tr><tr><td>id</td><td>true</td></tr><tr><td>job_id</td><td>false</td></tr></tbody></table> |
22+
| OrganizationMember | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>roles</td><td>true</td></tr><tr><td>user_id</td><td>true</td></tr><tr><td>organization_id</td><td>true</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr></tbody></table> |
2323

2424
<!-- End generated by 'make docs/admin/audit-logs.md'. -->
2525

scripts/auditdocgen/main.go

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,28 @@ var (
2121
generatorSuffix = []byte("<!-- End generated by 'make docs/admin/audit-logs.md'. -->")
2222
)
2323

24+
/*
25+
*
26+
AuditableResourcesMap is derived from audit.AuditableResources
27+
and has the following structure:
28+
29+
{
30+
friendlyResourceName: {
31+
fieldName1: isTracked,
32+
fieldName2: isTracked,
33+
...
34+
},
35+
...
36+
}
37+
*/
2438
type AuditableResourcesMap map[string]map[string]bool
2539

2640
func main() {
2741
flag.StringVar(&auditDocFile, "audit-doc-file", "docs/admin/audit-logs.md", "Path to audit log doc file")
2842
flag.BoolVar(&dryRun, "dry-run", false, "Dry run")
2943
flag.Parse()
3044

31-
auditableResourcesMap, err := readAuditableResources()
32-
if err != nil {
33-
log.Fatal("can't read auditableResources: ", err)
34-
}
45+
auditableResourcesMap := readAuditableResources()
3546

3647
doc, err := readAuditDoc()
3748
if err != nil {
@@ -56,7 +67,7 @@ func main() {
5667

5768
// Transforms audit.AuditableResources to AuditableResourcesMap,
5869
// which uses friendlier language.
59-
func readAuditableResources() (AuditableResourcesMap, error) {
70+
func readAuditableResources() AuditableResourcesMap {
6071
auditableResourcesMap := make(AuditableResourcesMap)
6172

6273
for resourceName, resourceFields := range audit.AuditableResources {
@@ -68,10 +79,9 @@ func readAuditableResources() (AuditableResourcesMap, error) {
6879
}
6980
}
7081

71-
return auditableResourcesMap, nil
82+
return auditableResourcesMap
7283
}
7384

74-
// Reads the content of docs/admin/audit-logs.md
7585
func readAuditDoc() ([]byte, error) {
7686
doc, err := os.ReadFile(auditDocFile)
7787
if err != nil {
@@ -103,10 +113,10 @@ func updateAuditDoc(doc []byte, auditableResourcesMap AuditableResourcesMap) ([]
103113
buffer.WriteString("|--|-----------------|\n")
104114

105115
for resourceName, resourceFields := range auditableResourcesMap {
106-
buffer.Write([]byte("|" + resourceName + "|<table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody>"))
116+
buffer.WriteString("|" + resourceName + "|<table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody>")
107117

108118
for fieldName, isTracked := range resourceFields {
109-
buffer.Write([]byte("<tr><td>" + fieldName + "</td><td>" + strconv.FormatBool(isTracked) + "</td></tr>"))
119+
buffer.WriteString("<tr><td>" + fieldName + "</td><td>" + strconv.FormatBool(isTracked) + "</td></tr>")
110120
}
111121

112122
buffer.WriteString("</tbody></table>\n")
@@ -117,13 +127,8 @@ func updateAuditDoc(doc []byte, auditableResourcesMap AuditableResourcesMap) ([]
117127
return buffer.Bytes(), nil
118128
}
119129

120-
// Updates docs/admin/audit-logs.md with new table content
121130
func writeAuditDoc(doc []byte) error {
122131
// G306: Expect WriteFile permissions to be 0600 or less
123132
/* #nosec G306 */
124-
err := os.WriteFile(auditDocFile, doc, 0644)
125-
if err != nil {
126-
return err
127-
}
128-
return nil
133+
return os.WriteFile(auditDocFile, doc, 0644)
129134
}

scripts/check_unstaged.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ set -euo pipefail
55
source "$(dirname "${BASH_SOURCE[0]}")/lib.sh"
66
cdroot
77

8-
FILES="$(git ls-files --other --modified --exclude-standard)"
8+
FILES="$(git ls-files --other --modified --exclude-standard --exclude=“scripts/auditdocgen/main.go”)"
99
if [[ "$FILES" != "" ]]; then
1010
mapfile -t files <<<"$FILES"
1111

0 commit comments

Comments
 (0)