@echovisionlab/geul-telemetry 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/LICENSE.md +6 -0
  2. package/README.md +38 -0
  3. package/fixtures/audit-records.json +316 -0
  4. package/fixtures/collaboration-checkpoint-entity-types.json +15 -0
  5. package/fixtures/domain-audit-actions.json +132 -0
  6. package/fixtures/domain-audit-wire-parity.json +1751 -0
  7. package/fixtures/http-request-results.json +21 -0
  8. package/fixtures/job-catalog.json +23 -0
  9. package/fixtures/locale-content-audit.json +126 -0
  10. package/fixtures/log-redaction.json +72 -0
  11. package/fixtures/request-record.json +14 -0
  12. package/fixtures/security-access-records.json +61 -0
  13. package/fixtures/service-identities.json +11 -0
  14. package/fixtures/system-catalog.json +28 -0
  15. package/fixtures/translation-job-terminal-catalog.json +45 -0
  16. package/fixtures/translation-settings-fields.json +1 -0
  17. package/package.json +61 -0
  18. package/policy/log-redaction.json +113 -0
  19. package/src/actor.ts +81 -0
  20. package/src/audit/account.ts +206 -0
  21. package/src/audit/actor-policy.ts +63 -0
  22. package/src/audit/artist-label.ts +312 -0
  23. package/src/audit/attributes.ts +107 -0
  24. package/src/audit/builder.ts +25 -0
  25. package/src/audit/catalog.ts +116 -0
  26. package/src/audit/content.ts +723 -0
  27. package/src/audit/email-authoring.ts +220 -0
  28. package/src/audit/file.ts +168 -0
  29. package/src/audit/form.ts +229 -0
  30. package/src/audit/integrations.ts +207 -0
  31. package/src/audit/locale-code.ts +6 -0
  32. package/src/audit/locale-content.ts +358 -0
  33. package/src/audit/member-account.ts +313 -0
  34. package/src/audit/member.ts +171 -0
  35. package/src/audit/program.ts +339 -0
  36. package/src/audit/reference-data.ts +230 -0
  37. package/src/audit/reference-entities.ts +332 -0
  38. package/src/audit/relation-download-policy.ts +292 -0
  39. package/src/audit/release-campaign.ts +422 -0
  40. package/src/audit/series-type.ts +298 -0
  41. package/src/audit/settings.ts +306 -0
  42. package/src/audit/source-locale.ts +337 -0
  43. package/src/audit/types.ts +9 -0
  44. package/src/audit.ts +21 -0
  45. package/src/authentication.ts +183 -0
  46. package/src/error-metadata.ts +11 -0
  47. package/src/index.ts +11 -0
  48. package/src/job.ts +56 -0
  49. package/src/log-attribute-policy.ts +21 -0
  50. package/src/otel.ts +64 -0
  51. package/src/records.ts +1244 -0
  52. package/src/redaction.ts +35 -0
  53. package/src/request-context.ts +73 -0
  54. package/src/request-id.ts +13 -0
  55. package/src/request-result.ts +73 -0
  56. package/src/request.ts +60 -0
  57. package/src/system.ts +355 -0
  58. package/src/trace.ts +13 -0
package/LICENSE.md ADDED
@@ -0,0 +1,6 @@
1
+ Required Notice: Copyright 2026 Echo Vision Lab. All rights reserved.
2
+
3
+ Licensed under the PolyForm Noncommercial License 1.0.0:
4
+ https://polyformproject.org/licenses/noncommercial/1.0.0
5
+
6
+ Commercial use requires a separate license from Echo Vision Lab.
package/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # Geul telemetry
2
+
3
+ Shared logging, tracing, audit, security, request-correlation, and redaction
4
+ contracts for Geul services.
5
+
6
+ - Go module: `github.com/echovisionlab/geul-telemetry`
7
+ - npm package: `@echovisionlab/geul-telemetry`
8
+
9
+ ```sh
10
+ pnpm add @echovisionlab/geul-telemetry
11
+ ```
12
+
13
+ Browser code should import the `/actor`, `/redaction`, or `/trace` subpaths.
14
+ The package root also includes Node request context and is server-only.
15
+
16
+ ## Development
17
+
18
+ ```sh
19
+ corepack enable
20
+ pnpm install --frozen-lockfile
21
+ pnpm format:check
22
+ pnpm lint
23
+ pnpm typecheck
24
+ pnpm test:coverage
25
+ go test -race ./...
26
+ go vet ./...
27
+ ```
28
+
29
+ ## Release
30
+
31
+ One Release Please version and `v*` tag cover both Go and npm consumers. npm
32
+ publication uses GitHub Actions trusted publishing without a repository npm
33
+ token.
34
+
35
+ ## License
36
+
37
+ PolyForm Noncommercial 1.0.0. Commercial use requires a separate license from
38
+ Echo Vision Lab. See [LICENSE.md](LICENSE.md).
@@ -0,0 +1,316 @@
1
+ [
2
+ {
3
+ "audit_id": "00000000-0000-4000-8000-000000000001",
4
+ "occurred_at": "2026-08-09T03:04:05Z",
5
+ "action": "site_settings.updated",
6
+ "request_id": "018f47a2-8a3d-4e17-9d42-6f12c89b1234",
7
+ "actor_kind": "member",
8
+ "actor_member_id": "member-1",
9
+ "target_type": "site_settings",
10
+ "target_id": "1",
11
+ "changed_fields": ["primary_color", "site_title"]
12
+ },
13
+ {
14
+ "audit_id": "00000000-0000-4000-8000-000000000002",
15
+ "occurred_at": "2026-08-09T03:04:05Z",
16
+ "action": "member.updated",
17
+ "actor_kind": "member",
18
+ "actor_member_id": "member-1",
19
+ "target_type": "member",
20
+ "target_id": "member-2",
21
+ "changed_fields": ["role"],
22
+ "previous_role": "user",
23
+ "new_role": "author"
24
+ },
25
+ {
26
+ "audit_id": "00000000-0000-4000-8000-000000000003",
27
+ "occurred_at": "2026-08-09T03:04:05Z",
28
+ "action": "member.updated",
29
+ "actor_kind": "member",
30
+ "actor_member_id": "member-1",
31
+ "target_type": "member",
32
+ "target_id": "member-2",
33
+ "changed_fields": ["status"],
34
+ "previous_state": "active",
35
+ "new_state": "banned"
36
+ },
37
+ {
38
+ "audit_id": "00000000-0000-4000-8000-000000000004",
39
+ "occurred_at": "2026-08-09T03:04:05Z",
40
+ "action": "member.updated",
41
+ "actor_kind": "system",
42
+ "actor_service": "geul-backend",
43
+ "target_type": "member",
44
+ "target_id": "member-2",
45
+ "changed_fields": ["status"],
46
+ "previous_state": "banned",
47
+ "new_state": "active"
48
+ },
49
+ {
50
+ "audit_id": "00000000-0000-4000-8000-000000000005",
51
+ "occurred_at": "2026-08-09T03:04:05Z",
52
+ "action": "post.updated",
53
+ "actor_kind": "system",
54
+ "actor_service": "geul-collab",
55
+ "target_type": "post",
56
+ "target_id": "post-1",
57
+ "changed_fields": ["version"],
58
+ "version_id": "version-1",
59
+ "contributor_member_ids": [
60
+ "1b6bcad2-c90d-49e9-bec7-f9a4ba6b2894",
61
+ "7a7a8fd4-1f69-4e9a-9dc2-2378926ff351"
62
+ ]
63
+ },
64
+ {
65
+ "audit_id": "00000000-0000-4000-8000-000000000006",
66
+ "occurred_at": "2026-08-09T03:04:05Z",
67
+ "action": "page.updated",
68
+ "actor_kind": "system",
69
+ "actor_service": "geul-collab",
70
+ "target_type": "page",
71
+ "target_id": "page-1",
72
+ "changed_fields": ["version"],
73
+ "version_id": "version-1",
74
+ "contributor_member_ids": [
75
+ "1b6bcad2-c90d-49e9-bec7-f9a4ba6b2894",
76
+ "7a7a8fd4-1f69-4e9a-9dc2-2378926ff351"
77
+ ]
78
+ },
79
+ {
80
+ "audit_id": "00000000-0000-4000-8000-000000000007",
81
+ "occurred_at": "2026-08-09T03:04:05Z",
82
+ "action": "work.updated",
83
+ "actor_kind": "system",
84
+ "actor_service": "geul-collab",
85
+ "target_type": "work",
86
+ "target_id": "work-1",
87
+ "changed_fields": ["version"],
88
+ "version_id": "version-1",
89
+ "contributor_member_ids": [
90
+ "1b6bcad2-c90d-49e9-bec7-f9a4ba6b2894",
91
+ "7a7a8fd4-1f69-4e9a-9dc2-2378926ff351"
92
+ ]
93
+ },
94
+ {
95
+ "audit_id": "00000000-0000-4000-8000-000000000008",
96
+ "occurred_at": "2026-08-09T03:04:05Z",
97
+ "action": "post.created",
98
+ "actor_kind": "member",
99
+ "actor_member_id": "member-1",
100
+ "target_type": "post",
101
+ "target_id": "post-1"
102
+ },
103
+ {
104
+ "audit_id": "00000000-0000-4000-8000-000000000009",
105
+ "occurred_at": "2026-08-09T03:04:05Z",
106
+ "action": "page.created",
107
+ "actor_kind": "member",
108
+ "actor_member_id": "member-1",
109
+ "target_type": "page",
110
+ "target_id": "page-1"
111
+ },
112
+ {
113
+ "audit_id": "00000000-0000-4000-8000-00000000000a",
114
+ "occurred_at": "2026-08-09T03:04:05Z",
115
+ "action": "work.created",
116
+ "actor_kind": "member",
117
+ "actor_member_id": "member-1",
118
+ "target_type": "work",
119
+ "target_id": "work-1"
120
+ },
121
+ {
122
+ "audit_id": "00000000-0000-4000-8000-00000000000b",
123
+ "occurred_at": "2026-08-09T03:04:05Z",
124
+ "action": "post.deleted",
125
+ "actor_kind": "member",
126
+ "actor_member_id": "member-1",
127
+ "target_type": "post",
128
+ "target_id": "post-1"
129
+ },
130
+ {
131
+ "audit_id": "00000000-0000-4000-8000-00000000000c",
132
+ "occurred_at": "2026-08-09T03:04:05Z",
133
+ "action": "page.deleted",
134
+ "actor_kind": "member",
135
+ "actor_member_id": "member-1",
136
+ "target_type": "page",
137
+ "target_id": "page-1"
138
+ },
139
+ {
140
+ "audit_id": "00000000-0000-4000-8000-00000000000d",
141
+ "occurred_at": "2026-08-09T03:04:05Z",
142
+ "action": "work.deleted",
143
+ "actor_kind": "member",
144
+ "actor_member_id": "member-1",
145
+ "target_type": "work",
146
+ "target_id": "work-1"
147
+ },
148
+ {
149
+ "audit_id": "00000000-0000-4000-8000-00000000000e",
150
+ "occurred_at": "2026-08-09T03:04:05Z",
151
+ "action": "account.updated",
152
+ "actor_kind": "member",
153
+ "actor_member_id": "member-1",
154
+ "target_type": "account",
155
+ "target_id": "member-1",
156
+ "changed_fields": ["canonical_email"],
157
+ "previous_email": "old@example.test",
158
+ "new_email": "new@example.test"
159
+ },
160
+ {
161
+ "audit_id": "00000000-0000-4000-8000-00000000000f",
162
+ "occurred_at": "2026-08-09T03:04:05Z",
163
+ "action": "account.updated",
164
+ "actor_kind": "member",
165
+ "actor_member_id": "member-1",
166
+ "target_type": "account",
167
+ "target_id": "member-1",
168
+ "changed_fields": ["login_emails"],
169
+ "collection_operation": "added",
170
+ "email": "added@example.test"
171
+ },
172
+ {
173
+ "audit_id": "00000000-0000-4000-8000-000000000010",
174
+ "occurred_at": "2026-08-09T03:04:05Z",
175
+ "action": "account.updated",
176
+ "actor_kind": "member",
177
+ "actor_member_id": "member-1",
178
+ "target_type": "account",
179
+ "target_id": "member-1",
180
+ "changed_fields": ["login_emails"],
181
+ "collection_operation": "removed",
182
+ "email": "removed@example.test"
183
+ },
184
+ {
185
+ "audit_id": "00000000-0000-4000-8000-000000000011",
186
+ "occurred_at": "2026-08-09T03:04:05Z",
187
+ "action": "account.updated",
188
+ "actor_kind": "member",
189
+ "actor_member_id": "member-1",
190
+ "target_type": "account",
191
+ "target_id": "member-1",
192
+ "changed_fields": ["social_logins"],
193
+ "collection_operation": "added",
194
+ "provider": "google",
195
+ "provider_subject": "google-subject"
196
+ },
197
+ {
198
+ "audit_id": "00000000-0000-4000-8000-000000000012",
199
+ "occurred_at": "2026-08-09T03:04:05Z",
200
+ "action": "account.updated",
201
+ "actor_kind": "member",
202
+ "actor_member_id": "member-1",
203
+ "target_type": "account",
204
+ "target_id": "member-1",
205
+ "changed_fields": ["social_logins"],
206
+ "collection_operation": "removed",
207
+ "provider": "github",
208
+ "provider_subject": "github-subject"
209
+ },
210
+ {
211
+ "audit_id": "00000000-0000-4000-8000-000000000013",
212
+ "occurred_at": "2026-08-09T03:04:05Z",
213
+ "action": "account.updated",
214
+ "actor_kind": "member",
215
+ "actor_member_id": "member-1",
216
+ "target_type": "account",
217
+ "target_id": "member-1",
218
+ "changed_fields": ["passkeys"],
219
+ "collection_operation": "added",
220
+ "passkey_ids": ["passkey-1"]
221
+ },
222
+ {
223
+ "audit_id": "00000000-0000-4000-8000-000000000014",
224
+ "occurred_at": "2026-08-09T03:04:05Z",
225
+ "action": "account.updated",
226
+ "actor_kind": "member",
227
+ "actor_member_id": "member-1",
228
+ "target_type": "account",
229
+ "target_id": "member-1",
230
+ "changed_fields": ["passkeys"],
231
+ "collection_operation": "removed",
232
+ "passkey_ids": ["passkey-2"]
233
+ },
234
+ {
235
+ "audit_id": "00000000-0000-4000-8000-000000000015",
236
+ "occurred_at": "2026-08-09T03:04:05Z",
237
+ "action": "account.updated",
238
+ "actor_kind": "member",
239
+ "actor_member_id": "member-1",
240
+ "target_type": "account",
241
+ "target_id": "member-1",
242
+ "changed_fields": ["sessions"],
243
+ "collection_operation": "removed",
244
+ "session_scope": "one",
245
+ "session_ids": ["018f47a2-8a3d-4e17-9d42-6f12c89b1234"]
246
+ },
247
+ {
248
+ "audit_id": "00000000-0000-4000-8000-000000000016",
249
+ "occurred_at": "2026-08-09T03:04:05Z",
250
+ "action": "account.updated",
251
+ "actor_kind": "member",
252
+ "actor_member_id": "member-1",
253
+ "target_type": "account",
254
+ "target_id": "member-1",
255
+ "changed_fields": ["deletion_state"],
256
+ "previous_state": "none",
257
+ "new_state": "confirmation_pending"
258
+ },
259
+ {
260
+ "audit_id": "00000000-0000-4000-8000-000000000017",
261
+ "occurred_at": "2026-08-09T03:04:05Z",
262
+ "action": "account.updated",
263
+ "actor_kind": "member",
264
+ "actor_member_id": "member-1",
265
+ "target_type": "account",
266
+ "target_id": "member-1",
267
+ "changed_fields": ["deletion_state"],
268
+ "previous_state": "confirmation_pending",
269
+ "new_state": "scheduled"
270
+ },
271
+ {
272
+ "audit_id": "00000000-0000-4000-8000-000000000018",
273
+ "occurred_at": "2026-08-09T03:04:05Z",
274
+ "action": "account.updated",
275
+ "actor_kind": "member",
276
+ "actor_member_id": "member-1",
277
+ "target_type": "account",
278
+ "target_id": "member-1",
279
+ "changed_fields": ["deletion_state"],
280
+ "previous_state": "scheduled",
281
+ "new_state": "cancelled"
282
+ },
283
+ {
284
+ "audit_id": "00000000-0000-4000-8000-000000000019",
285
+ "occurred_at": "2026-08-09T03:04:05Z",
286
+ "action": "account.updated",
287
+ "actor_kind": "member",
288
+ "actor_member_id": "member-1",
289
+ "target_type": "account",
290
+ "target_id": "member-1",
291
+ "changed_fields": ["deletion_state"],
292
+ "previous_state": "recovery_confirmation_pending",
293
+ "new_state": "recovered"
294
+ },
295
+ {
296
+ "audit_id": "00000000-0000-4000-8000-00000000001a",
297
+ "occurred_at": "2026-08-09T03:04:05Z",
298
+ "action": "account.deleted",
299
+ "actor_kind": "system",
300
+ "actor_service": "geul-backend",
301
+ "target_type": "account",
302
+ "target_id": "member-1"
303
+ },
304
+ {
305
+ "audit_id": "00000000-0000-4000-8000-00000000001b",
306
+ "occurred_at": "2026-08-09T03:04:05Z",
307
+ "action": "member.updated",
308
+ "request_id": "018f47a2-8a3d-4e17-9d42-6f12c89b1234",
309
+ "actor_kind": "member",
310
+ "actor_member_id": "member-1",
311
+ "target_type": "member",
312
+ "target_id": "member-1",
313
+ "changed_fields": ["nickname", "onboarded"],
314
+ "nickname": "Onboarded Member"
315
+ }
316
+ ]
@@ -0,0 +1,15 @@
1
+ [
2
+ "post",
3
+ "page",
4
+ "work",
5
+ "release",
6
+ "label",
7
+ "artist",
8
+ "campaign",
9
+ "program_event",
10
+ "map_theme",
11
+ "terms_history",
12
+ "privacy_history",
13
+ "form",
14
+ "email_layout"
15
+ ]
@@ -0,0 +1,132 @@
1
+ [
2
+ { "action": "site_settings.updated", "target_type": "site_settings" },
3
+ { "action": "map_theme.created", "target_type": "map_theme" },
4
+ { "action": "map_theme.updated", "target_type": "map_theme" },
5
+ { "action": "map_theme.deleted", "target_type": "map_theme" },
6
+ { "action": "legal_policy.created", "target_type": "legal_policy" },
7
+ { "action": "legal_policy.updated", "target_type": "legal_policy" },
8
+ { "action": "legal_policy.deleted", "target_type": "legal_policy" },
9
+ { "action": "file.created", "target_type": "file" },
10
+ { "action": "file.updated", "target_type": "file" },
11
+ { "action": "file.deleted", "target_type": "file" },
12
+ { "action": "file_folder.created", "target_type": "file_folder" },
13
+ { "action": "file_folder.updated", "target_type": "file_folder" },
14
+ { "action": "file_folder.deleted", "target_type": "file_folder" },
15
+ { "action": "category.created", "target_type": "category" },
16
+ { "action": "category.updated", "target_type": "category" },
17
+ { "action": "category.deleted", "target_type": "category" },
18
+ { "action": "tag.created", "target_type": "tag" },
19
+ { "action": "tag.updated", "target_type": "tag" },
20
+ { "action": "tag.deleted", "target_type": "tag" },
21
+ { "action": "genre.created", "target_type": "genre" },
22
+ { "action": "genre.updated", "target_type": "genre" },
23
+ { "action": "genre.deleted", "target_type": "genre" },
24
+ { "action": "style.created", "target_type": "style" },
25
+ { "action": "style.updated", "target_type": "style" },
26
+ { "action": "style.deleted", "target_type": "style" },
27
+ { "action": "format.created", "target_type": "format" },
28
+ { "action": "format.updated", "target_type": "format" },
29
+ { "action": "format.deleted", "target_type": "format" },
30
+ { "action": "client.created", "target_type": "client" },
31
+ { "action": "client.updated", "target_type": "client" },
32
+ { "action": "client.deleted", "target_type": "client" },
33
+ { "action": "map_place.created", "target_type": "map_place" },
34
+ { "action": "map_place.updated", "target_type": "map_place" },
35
+ { "action": "map_place.deleted", "target_type": "map_place" },
36
+ { "action": "audience_segment.created", "target_type": "audience_segment" },
37
+ { "action": "audience_segment.updated", "target_type": "audience_segment" },
38
+ { "action": "menu.created", "target_type": "menu" },
39
+ { "action": "menu.updated", "target_type": "menu" },
40
+ { "action": "menu.deleted", "target_type": "menu" },
41
+ { "action": "mail_adapter.created", "target_type": "mail_adapter" },
42
+ { "action": "mail_adapter.updated", "target_type": "mail_adapter" },
43
+ { "action": "mail_adapter.deleted", "target_type": "mail_adapter" },
44
+ { "action": "email_suppression.updated", "target_type": "email_suppression" },
45
+ {
46
+ "action": "translation_settings.updated",
47
+ "target_type": "translation_settings"
48
+ },
49
+ {
50
+ "action": "translation_provider.created",
51
+ "target_type": "translation_provider"
52
+ },
53
+ {
54
+ "action": "translation_provider.updated",
55
+ "target_type": "translation_provider"
56
+ },
57
+ {
58
+ "action": "translation_provider.deleted",
59
+ "target_type": "translation_provider"
60
+ },
61
+ { "action": "member.updated", "target_type": "member" },
62
+ { "action": "member_tag.created", "target_type": "member_tag" },
63
+ { "action": "member_tag.deleted", "target_type": "member_tag" },
64
+ { "action": "artist.created", "target_type": "artist" },
65
+ { "action": "artist.updated", "target_type": "artist" },
66
+ { "action": "artist.deleted", "target_type": "artist" },
67
+ { "action": "label.created", "target_type": "label" },
68
+ { "action": "label.updated", "target_type": "label" },
69
+ { "action": "label.deleted", "target_type": "label" },
70
+ { "action": "post_series.created", "target_type": "post_series" },
71
+ { "action": "post_series.updated", "target_type": "post_series" },
72
+ { "action": "post_series.deleted", "target_type": "post_series" },
73
+ {
74
+ "action": "program_event_type.created",
75
+ "target_type": "program_event_type"
76
+ },
77
+ {
78
+ "action": "program_event_type.updated",
79
+ "target_type": "program_event_type"
80
+ },
81
+ {
82
+ "action": "program_event_type.deleted",
83
+ "target_type": "program_event_type"
84
+ },
85
+ { "action": "program_event.created", "target_type": "program_event" },
86
+ { "action": "program_event.updated", "target_type": "program_event" },
87
+ { "action": "program_event.deleted", "target_type": "program_event" },
88
+ {
89
+ "action": "program_event_series.created",
90
+ "target_type": "program_event_series"
91
+ },
92
+ {
93
+ "action": "program_event_series.updated",
94
+ "target_type": "program_event_series"
95
+ },
96
+ {
97
+ "action": "program_event_series.deleted",
98
+ "target_type": "program_event_series"
99
+ },
100
+ { "action": "release.created", "target_type": "release" },
101
+ { "action": "release.updated", "target_type": "release" },
102
+ { "action": "release.deleted", "target_type": "release" },
103
+ { "action": "campaign.created", "target_type": "campaign" },
104
+ { "action": "campaign.updated", "target_type": "campaign" },
105
+ { "action": "campaign.deleted", "target_type": "campaign" },
106
+ { "action": "email_template.created", "target_type": "email_template" },
107
+ { "action": "email_template.updated", "target_type": "email_template" },
108
+ { "action": "email_template.deleted", "target_type": "email_template" },
109
+ { "action": "email_layout.created", "target_type": "email_layout" },
110
+ { "action": "email_layout.updated", "target_type": "email_layout" },
111
+ { "action": "email_layout.deleted", "target_type": "email_layout" },
112
+ {
113
+ "action": "email_event_mapping.updated",
114
+ "target_type": "email_event_mapping"
115
+ },
116
+ { "action": "form.created", "target_type": "form" },
117
+ { "action": "form.updated", "target_type": "form" },
118
+ { "action": "form.deleted", "target_type": "form" },
119
+ { "action": "form_submission.created", "target_type": "form_submission" },
120
+ { "action": "form_submission.deleted", "target_type": "form_submission" },
121
+ { "action": "post.created", "target_type": "post" },
122
+ { "action": "post.updated", "target_type": "post" },
123
+ { "action": "post.deleted", "target_type": "post" },
124
+ { "action": "page.created", "target_type": "page" },
125
+ { "action": "page.updated", "target_type": "page" },
126
+ { "action": "page.deleted", "target_type": "page" },
127
+ { "action": "work.created", "target_type": "work" },
128
+ { "action": "work.updated", "target_type": "work" },
129
+ { "action": "work.deleted", "target_type": "work" },
130
+ { "action": "account.updated", "target_type": "account" },
131
+ { "action": "account.deleted", "target_type": "account" }
132
+ ]