featurebase-node 0.14.0 → 0.14.1

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 (61) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/client.d.mts +12 -0
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +12 -0
  5. package/client.d.ts.map +1 -1
  6. package/client.js +21 -1
  7. package/client.js.map +1 -1
  8. package/client.mjs +21 -1
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/audit-logs.d.mts +233 -0
  12. package/resources/audit-logs.d.mts.map +1 -0
  13. package/resources/audit-logs.d.ts +233 -0
  14. package/resources/audit-logs.d.ts.map +1 -0
  15. package/resources/audit-logs.js +122 -0
  16. package/resources/audit-logs.js.map +1 -0
  17. package/resources/audit-logs.mjs +118 -0
  18. package/resources/audit-logs.mjs.map +1 -0
  19. package/resources/index.d.mts +2 -0
  20. package/resources/index.d.mts.map +1 -1
  21. package/resources/index.d.ts +2 -0
  22. package/resources/index.d.ts.map +1 -1
  23. package/resources/index.js +5 -1
  24. package/resources/index.js.map +1 -1
  25. package/resources/index.mjs +2 -0
  26. package/resources/index.mjs.map +1 -1
  27. package/resources/organization/admins.d.mts +10 -0
  28. package/resources/organization/admins.d.mts.map +1 -1
  29. package/resources/organization/admins.d.ts +10 -0
  30. package/resources/organization/admins.d.ts.map +1 -1
  31. package/resources/organization/admins.js +2 -0
  32. package/resources/organization/admins.js.map +1 -1
  33. package/resources/organization/admins.mjs +2 -0
  34. package/resources/organization/admins.mjs.map +1 -1
  35. package/resources/reports.d.mts +641 -0
  36. package/resources/reports.d.mts.map +1 -0
  37. package/resources/reports.d.ts +641 -0
  38. package/resources/reports.d.ts.map +1 -0
  39. package/resources/reports.js +238 -0
  40. package/resources/reports.js.map +1 -0
  41. package/resources/reports.mjs +234 -0
  42. package/resources/reports.mjs.map +1 -0
  43. package/resources/webhooks.d.mts +5 -3
  44. package/resources/webhooks.d.mts.map +1 -1
  45. package/resources/webhooks.d.ts +5 -3
  46. package/resources/webhooks.d.ts.map +1 -1
  47. package/resources/webhooks.js +2 -0
  48. package/resources/webhooks.js.map +1 -1
  49. package/resources/webhooks.mjs +2 -0
  50. package/resources/webhooks.mjs.map +1 -1
  51. package/src/client.ts +73 -1
  52. package/src/resources/audit-logs.ts +607 -0
  53. package/src/resources/index.ts +26 -0
  54. package/src/resources/organization/admins.ts +12 -0
  55. package/src/resources/reports.ts +908 -0
  56. package/src/resources/webhooks.ts +5 -0
  57. package/src/version.ts +1 -1
  58. package/version.d.mts +1 -1
  59. package/version.d.ts +1 -1
  60. package/version.js +1 -1
  61. package/version.mjs +1 -1
@@ -0,0 +1,233 @@
1
+ import { APIResource } from "../core/resource.mjs";
2
+ import { CursorPage, type CursorPageParams, PagePromise } from "../core/pagination.mjs";
3
+ import { RequestOptions } from "../internal/request-options.mjs";
4
+ /**
5
+ * Audit logs provide a chronological record of significant admin actions in your organization. Use them for security auditing, compliance reporting, and tracking workspace changes.
6
+ */
7
+ export declare class AuditLogs extends APIResource {
8
+ /**
9
+ * Returns a list of audit log events in your organization using cursor-based
10
+ * pagination (newest first).
11
+ *
12
+ * ### Query Parameters
13
+ *
14
+ * - `limit` - Number of events to return (1-100, default 10)
15
+ * - `cursor` - Cursor from a previous response for pagination
16
+ * - `action` - Filter by action type (e.g. `webhook.deleted`,
17
+ * `security.sso_enabled`)
18
+ * - `domain` - Filter by domain/category (e.g. `security`, `messenger`)
19
+ * - `startDate` - Filter events created on or after this ISO 8601 datetime
20
+ * - `endDate` - Filter events created on or before this ISO 8601 datetime
21
+ *
22
+ * ### Filtering by Action
23
+ *
24
+ * The `action` parameter filters by event type. Each action follows the
25
+ * `{domain}.{verb}` convention. See the `action` enum in this schema for the full
26
+ * list of supported values.
27
+ *
28
+ * **Examples:**
29
+ *
30
+ * - `?action=security.sso_enabled` — only SSO enablement events
31
+ * - `?action=webhook.deleted` — only webhook deletion events
32
+ *
33
+ * ### Filtering by Domain
34
+ *
35
+ * Use the `domain` parameter to narrow results to one category of audit event.
36
+ *
37
+ * **Examples:**
38
+ *
39
+ * - `?domain=security` — only security-related audit events
40
+ * - `?domain=messenger` — only messenger-related audit events
41
+ *
42
+ * ### Filtering by Date Range
43
+ *
44
+ * Use `startDate` and `endDate` together or individually to narrow results to a
45
+ * time window.
46
+ *
47
+ * **Examples:**
48
+ *
49
+ * - `?startDate=2025-01-01T00:00:00Z&endDate=2025-01-31T23:59:59Z` — January 2025
50
+ * only
51
+ * - `?startDate=2025-06-01T00:00:00Z` — from June 1st onward
52
+ *
53
+ * ### Pagination
54
+ *
55
+ * Results are ordered by `createdAt` descending (newest first). Use the
56
+ * `nextCursor` value from each response as the `cursor` parameter in the next
57
+ * request to paginate forward.
58
+ *
59
+ * ```
60
+ * GET /v2/audit-logs?limit=20
61
+ * → { "nextCursor": "eyJ..." }
62
+ *
63
+ * GET /v2/audit-logs?limit=20&cursor=eyJ...
64
+ * → { "nextCursor": null } ← no more results
65
+ * ```
66
+ *
67
+ * ### Metadata
68
+ *
69
+ * The `metadata` field contains event-specific details (e.g. before/after state
70
+ * for updates). Its shape depends on the `action` type and is not strictly modeled
71
+ * in the schema — treat it as a free-form object.
72
+ *
73
+ * ### Response Format
74
+ *
75
+ * Returns a list object with:
76
+ *
77
+ * - `object` - Always `"list"`
78
+ * - `data` - Array of audit log objects
79
+ * - `nextCursor` - Cursor for the next page, or `null` if no more results
80
+ *
81
+ * ### Audit Log Object
82
+ *
83
+ * Each audit log includes:
84
+ *
85
+ * - `id` - Unique event identifier (UUID)
86
+ * - `correlationId` - Groups related events from a single operation (e.g. bulk
87
+ * import)
88
+ * - `action` - What happened (e.g. `webhook.deleted`)
89
+ * - `domain` - Category the action belongs to (e.g. `integrations`)
90
+ * - `description` - Human-readable description
91
+ * - `actor` - Who performed the action (id, type, email, name, apiKey)
92
+ * - `resource` - What was affected (type, id, name)
93
+ * - `request` - Request context (ipAddress, userAgent)
94
+ * - `metadata` - Event-specific payload
95
+ * - `createdAt` - When the event occurred
96
+ *
97
+ * ### Version Availability
98
+ *
99
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
100
+ */
101
+ list(params?: AuditLogListParams | null | undefined, options?: RequestOptions): PagePromise<AuditLogListResponsesCursorPage, AuditLogListResponse>;
102
+ }
103
+ export type AuditLogListResponsesCursorPage = CursorPage<AuditLogListResponse>;
104
+ export interface AuditLogListResponse {
105
+ /**
106
+ * Unique event identifier
107
+ */
108
+ id: string;
109
+ /**
110
+ * The type of action that was performed
111
+ */
112
+ action: 'auth.login' | 'auth.logout' | 'auth.login_failed' | 'auth.password_reset_requested' | 'auth.password_changed' | 'auth.mfa_enabled' | 'auth.mfa_disabled' | 'auth.sso_login' | 'auth.password_reset_completed' | 'auth.unauthorized_method' | 'auth.recovery_code_regenerated' | 'auth.sso_enforcement_blocked' | 'auth.sso_enforcement_session_invalidated' | 'auth.managed_account_link_blocked' | 'auth.cross_org_invite_accepted' | 'auth.sso_enforcement_shadow' | 'teammate.invited' | 'teammate.joined' | 'teammate.removed' | 'teammate.email_changed' | 'teammate.name_changed' | 'teammate.seat_changed' | 'teammate.deactivated' | 'teammate.invite_changed' | 'teammate.invite_deleted' | 'teammate.scim_provisioned' | 'teammate.scim_deprovisioned' | 'teammate.scim_unlinked' | 'teammate.scim_relinked' | 'teammate.scim_operation_blocked' | 'teammate.scim_seat_capacity_blocked' | 'teammate.scim_email_updated' | 'teammate.scim_exclusion_list_updated' | 'teammate.restored' | 'teammate.scim_restored' | 'teammate.scim_auto_claimed' | 'teammate.scim_claim_role_preserved' | 'teammate.permanently_removed' | 'member.role_changed' | 'organization.owner_transferred' | 'article.created' | 'article.updated' | 'article.published' | 'article.unpublished' | 'article.deleted' | 'changelog.created' | 'changelog.published' | 'changelog.deleted' | 'changelog.unpublished' | 'settings.name_changed' | 'settings.branding_updated' | 'settings.custom_domain_changed' | 'settings.language_changed' | 'settings.timezone_changed' | 'settings.email_settings_changed' | 'settings.help_center_updated' | 'settings.moderation_changed' | 'settings.voting_changed' | 'settings.statuses_updated' | 'settings.boards_updated' | 'settings.privacy_changed' | 'settings.subdomain_changed' | 'settings.subdomain_change_requested' | 'settings.grace_period_changed' | 'security.scim_override_blocked' | 'security.sso_enabled' | 'security.sso_disabled' | 'security.sso_configured' | 'security.sso_jit_provisioning_blocked' | 'security.directory_sync_enabled' | 'security.directory_sync_disabled' | 'security.directory_sync_reconciled' | 'security.two_factor_enforced' | 'security.auth_method_changed' | 'security.ip_allowlist_changed' | 'security.ip_allowlist_blocked' | 'security.identity_verification_changed' | 'security.sso_url_changed' | 'security.sso_jit_provisioning_changed' | 'security.sso_enforcement_enabled' | 'security.sso_enforcement_disabled' | 'security.dsync_group_mappings_changed' | 'security.dsync_mapping_priority_changed' | 'security.user_banned' | 'security.user_unbanned' | 'integration.installed' | 'integration.uninstalled' | 'integration.configured' | 'webhook.created' | 'webhook.updated' | 'webhook.deleted' | 'webhook.secret_rotated' | 'api_key.created' | 'api_key.regenerated' | 'api_key.deleted' | 'organization.deletion_scheduled' | 'organization.deletion_cancelled' | 'data.export_initiated' | 'data.import_initiated' | 'data.bulk_delete' | 'data.user_data_deleted' | 'data.csv_exported' | 'billing.plan_changed' | 'billing.plan_cancelled' | 'billing.seat_limit_changed' | 'billing.seat_activated' | 'workflow.created' | 'workflow.activated' | 'workflow.deactivated' | 'workflow.deleted' | 'workflow.updated' | 'messenger.look_and_feel_changed' | 'messenger.spaces_changed' | 'messenger.language_changed' | 'messenger.platform_availability_changed' | 'messenger.search_browse_changed' | 'messenger.email_collection_changed' | 'messenger.welcome_message_changed' | 'messenger.launcher_changed' | 'messenger.inbound_conversations_changed' | 'messenger.office_hours_changed' | 'messenger.identity_verification_changed' | 'messenger.privacy_policy_changed' | 'brand.created' | 'brand.updated' | 'brand.deleted' | 'brand.messenger_look_and_feel_changed' | 'brand.messenger_launcher_changed' | 'brand.messenger_welcome_message_changed' | 'brand.messenger_privacy_policy_changed' | 'brand.default_changed' | 'ai_agent.enabled' | 'ai_agent.disabled' | 'ai_agent.identity_changed' | 'ai_agent.customization_changed' | 'ai_agent.guidance_changed' | 'ai_agent.multilingual_changed' | 'ai_agent.data_context_changed' | 'email.sending_address_created' | 'email.sending_address_updated' | 'email.sending_address_deleted' | 'email.domain_registered' | 'email.domain_deleted' | 'email.reply_to_changed' | 'email.ignored_address_added' | 'email.ignored_address_removed';
113
+ actor: AuditLogListResponse.Actor;
114
+ /**
115
+ * Groups related events from a single operation (e.g. bulk import)
116
+ */
117
+ correlationId: string | null;
118
+ /**
119
+ * ISO 8601 timestamp of when the event occurred
120
+ */
121
+ createdAt: string;
122
+ /**
123
+ * Pre-rendered human-readable description of the event
124
+ */
125
+ description: string;
126
+ /**
127
+ * The domain/category the action belongs to
128
+ */
129
+ domain: 'authentication' | 'team_management' | 'permissions' | 'articles' | 'changelog' | 'workspace_settings' | 'security' | 'integrations' | 'data_management' | 'billing' | 'workflows' | 'messenger' | 'brands' | 'ai_agent' | 'email_config';
130
+ /**
131
+ * Event-specific payload with before/after state when applicable. The shape of
132
+ * this object depends on the action type.
133
+ */
134
+ metadata: {
135
+ [key: string]: unknown;
136
+ };
137
+ /**
138
+ * Object type identifier
139
+ */
140
+ object: 'audit_log';
141
+ request: AuditLogListResponse.Request;
142
+ resource: AuditLogListResponse.Resource;
143
+ }
144
+ export declare namespace AuditLogListResponse {
145
+ interface Actor {
146
+ /**
147
+ * Featurebase user ID of the actor, or null for system actors
148
+ */
149
+ id: string | null;
150
+ /**
151
+ * API key that authenticated the request, or null for dashboard sessions
152
+ */
153
+ apiKey: Actor.APIKey | null;
154
+ /**
155
+ * Email address of the actor
156
+ */
157
+ email: string;
158
+ /**
159
+ * Display name of the actor
160
+ */
161
+ name: string | null;
162
+ /**
163
+ * The type of actor that performed the action
164
+ */
165
+ type: 'admin' | 'system' | 'api_key' | 'integration';
166
+ }
167
+ namespace Actor {
168
+ /**
169
+ * API key that authenticated the request, or null for dashboard sessions
170
+ */
171
+ interface APIKey {
172
+ /**
173
+ * API key ID
174
+ */
175
+ id: string;
176
+ /**
177
+ * API key name
178
+ */
179
+ name: string;
180
+ }
181
+ }
182
+ interface Request {
183
+ /**
184
+ * IP address the request originated from
185
+ */
186
+ ipAddress: string | null;
187
+ /**
188
+ * User-Agent header from the request
189
+ */
190
+ userAgent: string | null;
191
+ }
192
+ interface Resource {
193
+ /**
194
+ * ID of the affected resource, or null for organization-level events
195
+ */
196
+ id: string | null;
197
+ /**
198
+ * Display name of the affected resource
199
+ */
200
+ name: string | null;
201
+ /**
202
+ * Type of the affected resource
203
+ */
204
+ type: string;
205
+ }
206
+ }
207
+ export interface AuditLogListParams extends CursorPageParams {
208
+ /**
209
+ * Query param: Filter audit logs by action type
210
+ */
211
+ action?: 'auth.login' | 'auth.logout' | 'auth.login_failed' | 'auth.password_reset_requested' | 'auth.password_changed' | 'auth.mfa_enabled' | 'auth.mfa_disabled' | 'auth.sso_login' | 'auth.password_reset_completed' | 'auth.unauthorized_method' | 'auth.recovery_code_regenerated' | 'auth.sso_enforcement_blocked' | 'auth.sso_enforcement_session_invalidated' | 'auth.managed_account_link_blocked' | 'auth.cross_org_invite_accepted' | 'auth.sso_enforcement_shadow' | 'teammate.invited' | 'teammate.joined' | 'teammate.removed' | 'teammate.email_changed' | 'teammate.name_changed' | 'teammate.seat_changed' | 'teammate.deactivated' | 'teammate.invite_changed' | 'teammate.invite_deleted' | 'teammate.scim_provisioned' | 'teammate.scim_deprovisioned' | 'teammate.scim_unlinked' | 'teammate.scim_relinked' | 'teammate.scim_operation_blocked' | 'teammate.scim_seat_capacity_blocked' | 'teammate.scim_email_updated' | 'teammate.scim_exclusion_list_updated' | 'teammate.restored' | 'teammate.scim_restored' | 'teammate.scim_auto_claimed' | 'teammate.scim_claim_role_preserved' | 'teammate.permanently_removed' | 'member.role_changed' | 'organization.owner_transferred' | 'article.created' | 'article.updated' | 'article.published' | 'article.unpublished' | 'article.deleted' | 'changelog.created' | 'changelog.published' | 'changelog.deleted' | 'changelog.unpublished' | 'settings.name_changed' | 'settings.branding_updated' | 'settings.custom_domain_changed' | 'settings.language_changed' | 'settings.timezone_changed' | 'settings.email_settings_changed' | 'settings.help_center_updated' | 'settings.moderation_changed' | 'settings.voting_changed' | 'settings.statuses_updated' | 'settings.boards_updated' | 'settings.privacy_changed' | 'settings.subdomain_changed' | 'settings.subdomain_change_requested' | 'settings.grace_period_changed' | 'security.scim_override_blocked' | 'security.sso_enabled' | 'security.sso_disabled' | 'security.sso_configured' | 'security.sso_jit_provisioning_blocked' | 'security.directory_sync_enabled' | 'security.directory_sync_disabled' | 'security.directory_sync_reconciled' | 'security.two_factor_enforced' | 'security.auth_method_changed' | 'security.ip_allowlist_changed' | 'security.ip_allowlist_blocked' | 'security.identity_verification_changed' | 'security.sso_url_changed' | 'security.sso_jit_provisioning_changed' | 'security.sso_enforcement_enabled' | 'security.sso_enforcement_disabled' | 'security.dsync_group_mappings_changed' | 'security.dsync_mapping_priority_changed' | 'security.user_banned' | 'security.user_unbanned' | 'integration.installed' | 'integration.uninstalled' | 'integration.configured' | 'webhook.created' | 'webhook.updated' | 'webhook.deleted' | 'webhook.secret_rotated' | 'api_key.created' | 'api_key.regenerated' | 'api_key.deleted' | 'organization.deletion_scheduled' | 'organization.deletion_cancelled' | 'data.export_initiated' | 'data.import_initiated' | 'data.bulk_delete' | 'data.user_data_deleted' | 'data.csv_exported' | 'billing.plan_changed' | 'billing.plan_cancelled' | 'billing.seat_limit_changed' | 'billing.seat_activated' | 'workflow.created' | 'workflow.activated' | 'workflow.deactivated' | 'workflow.deleted' | 'workflow.updated' | 'messenger.look_and_feel_changed' | 'messenger.spaces_changed' | 'messenger.language_changed' | 'messenger.platform_availability_changed' | 'messenger.search_browse_changed' | 'messenger.email_collection_changed' | 'messenger.welcome_message_changed' | 'messenger.launcher_changed' | 'messenger.inbound_conversations_changed' | 'messenger.office_hours_changed' | 'messenger.identity_verification_changed' | 'messenger.privacy_policy_changed' | 'brand.created' | 'brand.updated' | 'brand.deleted' | 'brand.messenger_look_and_feel_changed' | 'brand.messenger_launcher_changed' | 'brand.messenger_welcome_message_changed' | 'brand.messenger_privacy_policy_changed' | 'brand.default_changed' | 'ai_agent.enabled' | 'ai_agent.disabled' | 'ai_agent.identity_changed' | 'ai_agent.customization_changed' | 'ai_agent.guidance_changed' | 'ai_agent.multilingual_changed' | 'ai_agent.data_context_changed' | 'email.sending_address_created' | 'email.sending_address_updated' | 'email.sending_address_deleted' | 'email.domain_registered' | 'email.domain_deleted' | 'email.reply_to_changed' | 'email.ignored_address_added' | 'email.ignored_address_removed';
212
+ /**
213
+ * Query param: Filter audit logs by domain/category
214
+ */
215
+ domain?: 'authentication' | 'team_management' | 'permissions' | 'articles' | 'changelog' | 'workspace_settings' | 'security' | 'integrations' | 'data_management' | 'billing' | 'workflows' | 'messenger' | 'brands' | 'ai_agent' | 'email_config';
216
+ /**
217
+ * Query param: Filter events created on or before this ISO 8601 datetime
218
+ */
219
+ endDate?: string | null;
220
+ /**
221
+ * Query param: Filter events created on or after this ISO 8601 datetime
222
+ */
223
+ startDate?: string | null;
224
+ /**
225
+ * Header param: API version for this request. Defaults to your organization's
226
+ * configured API version if not specified.
227
+ */
228
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
229
+ }
230
+ export declare namespace AuditLogs {
231
+ export { type AuditLogListResponse as AuditLogListResponse, type AuditLogListResponsesCursorPage as AuditLogListResponsesCursorPage, type AuditLogListParams as AuditLogListParams, };
232
+ }
233
+ //# sourceMappingURL=audit-logs.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-logs.d.mts","sourceRoot":"","sources":["../src/resources/audit-logs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,233 @@
1
+ import { APIResource } from "../core/resource.js";
2
+ import { CursorPage, type CursorPageParams, PagePromise } from "../core/pagination.js";
3
+ import { RequestOptions } from "../internal/request-options.js";
4
+ /**
5
+ * Audit logs provide a chronological record of significant admin actions in your organization. Use them for security auditing, compliance reporting, and tracking workspace changes.
6
+ */
7
+ export declare class AuditLogs extends APIResource {
8
+ /**
9
+ * Returns a list of audit log events in your organization using cursor-based
10
+ * pagination (newest first).
11
+ *
12
+ * ### Query Parameters
13
+ *
14
+ * - `limit` - Number of events to return (1-100, default 10)
15
+ * - `cursor` - Cursor from a previous response for pagination
16
+ * - `action` - Filter by action type (e.g. `webhook.deleted`,
17
+ * `security.sso_enabled`)
18
+ * - `domain` - Filter by domain/category (e.g. `security`, `messenger`)
19
+ * - `startDate` - Filter events created on or after this ISO 8601 datetime
20
+ * - `endDate` - Filter events created on or before this ISO 8601 datetime
21
+ *
22
+ * ### Filtering by Action
23
+ *
24
+ * The `action` parameter filters by event type. Each action follows the
25
+ * `{domain}.{verb}` convention. See the `action` enum in this schema for the full
26
+ * list of supported values.
27
+ *
28
+ * **Examples:**
29
+ *
30
+ * - `?action=security.sso_enabled` — only SSO enablement events
31
+ * - `?action=webhook.deleted` — only webhook deletion events
32
+ *
33
+ * ### Filtering by Domain
34
+ *
35
+ * Use the `domain` parameter to narrow results to one category of audit event.
36
+ *
37
+ * **Examples:**
38
+ *
39
+ * - `?domain=security` — only security-related audit events
40
+ * - `?domain=messenger` — only messenger-related audit events
41
+ *
42
+ * ### Filtering by Date Range
43
+ *
44
+ * Use `startDate` and `endDate` together or individually to narrow results to a
45
+ * time window.
46
+ *
47
+ * **Examples:**
48
+ *
49
+ * - `?startDate=2025-01-01T00:00:00Z&endDate=2025-01-31T23:59:59Z` — January 2025
50
+ * only
51
+ * - `?startDate=2025-06-01T00:00:00Z` — from June 1st onward
52
+ *
53
+ * ### Pagination
54
+ *
55
+ * Results are ordered by `createdAt` descending (newest first). Use the
56
+ * `nextCursor` value from each response as the `cursor` parameter in the next
57
+ * request to paginate forward.
58
+ *
59
+ * ```
60
+ * GET /v2/audit-logs?limit=20
61
+ * → { "nextCursor": "eyJ..." }
62
+ *
63
+ * GET /v2/audit-logs?limit=20&cursor=eyJ...
64
+ * → { "nextCursor": null } ← no more results
65
+ * ```
66
+ *
67
+ * ### Metadata
68
+ *
69
+ * The `metadata` field contains event-specific details (e.g. before/after state
70
+ * for updates). Its shape depends on the `action` type and is not strictly modeled
71
+ * in the schema — treat it as a free-form object.
72
+ *
73
+ * ### Response Format
74
+ *
75
+ * Returns a list object with:
76
+ *
77
+ * - `object` - Always `"list"`
78
+ * - `data` - Array of audit log objects
79
+ * - `nextCursor` - Cursor for the next page, or `null` if no more results
80
+ *
81
+ * ### Audit Log Object
82
+ *
83
+ * Each audit log includes:
84
+ *
85
+ * - `id` - Unique event identifier (UUID)
86
+ * - `correlationId` - Groups related events from a single operation (e.g. bulk
87
+ * import)
88
+ * - `action` - What happened (e.g. `webhook.deleted`)
89
+ * - `domain` - Category the action belongs to (e.g. `integrations`)
90
+ * - `description` - Human-readable description
91
+ * - `actor` - Who performed the action (id, type, email, name, apiKey)
92
+ * - `resource` - What was affected (type, id, name)
93
+ * - `request` - Request context (ipAddress, userAgent)
94
+ * - `metadata` - Event-specific payload
95
+ * - `createdAt` - When the event occurred
96
+ *
97
+ * ### Version Availability
98
+ *
99
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
100
+ */
101
+ list(params?: AuditLogListParams | null | undefined, options?: RequestOptions): PagePromise<AuditLogListResponsesCursorPage, AuditLogListResponse>;
102
+ }
103
+ export type AuditLogListResponsesCursorPage = CursorPage<AuditLogListResponse>;
104
+ export interface AuditLogListResponse {
105
+ /**
106
+ * Unique event identifier
107
+ */
108
+ id: string;
109
+ /**
110
+ * The type of action that was performed
111
+ */
112
+ action: 'auth.login' | 'auth.logout' | 'auth.login_failed' | 'auth.password_reset_requested' | 'auth.password_changed' | 'auth.mfa_enabled' | 'auth.mfa_disabled' | 'auth.sso_login' | 'auth.password_reset_completed' | 'auth.unauthorized_method' | 'auth.recovery_code_regenerated' | 'auth.sso_enforcement_blocked' | 'auth.sso_enforcement_session_invalidated' | 'auth.managed_account_link_blocked' | 'auth.cross_org_invite_accepted' | 'auth.sso_enforcement_shadow' | 'teammate.invited' | 'teammate.joined' | 'teammate.removed' | 'teammate.email_changed' | 'teammate.name_changed' | 'teammate.seat_changed' | 'teammate.deactivated' | 'teammate.invite_changed' | 'teammate.invite_deleted' | 'teammate.scim_provisioned' | 'teammate.scim_deprovisioned' | 'teammate.scim_unlinked' | 'teammate.scim_relinked' | 'teammate.scim_operation_blocked' | 'teammate.scim_seat_capacity_blocked' | 'teammate.scim_email_updated' | 'teammate.scim_exclusion_list_updated' | 'teammate.restored' | 'teammate.scim_restored' | 'teammate.scim_auto_claimed' | 'teammate.scim_claim_role_preserved' | 'teammate.permanently_removed' | 'member.role_changed' | 'organization.owner_transferred' | 'article.created' | 'article.updated' | 'article.published' | 'article.unpublished' | 'article.deleted' | 'changelog.created' | 'changelog.published' | 'changelog.deleted' | 'changelog.unpublished' | 'settings.name_changed' | 'settings.branding_updated' | 'settings.custom_domain_changed' | 'settings.language_changed' | 'settings.timezone_changed' | 'settings.email_settings_changed' | 'settings.help_center_updated' | 'settings.moderation_changed' | 'settings.voting_changed' | 'settings.statuses_updated' | 'settings.boards_updated' | 'settings.privacy_changed' | 'settings.subdomain_changed' | 'settings.subdomain_change_requested' | 'settings.grace_period_changed' | 'security.scim_override_blocked' | 'security.sso_enabled' | 'security.sso_disabled' | 'security.sso_configured' | 'security.sso_jit_provisioning_blocked' | 'security.directory_sync_enabled' | 'security.directory_sync_disabled' | 'security.directory_sync_reconciled' | 'security.two_factor_enforced' | 'security.auth_method_changed' | 'security.ip_allowlist_changed' | 'security.ip_allowlist_blocked' | 'security.identity_verification_changed' | 'security.sso_url_changed' | 'security.sso_jit_provisioning_changed' | 'security.sso_enforcement_enabled' | 'security.sso_enforcement_disabled' | 'security.dsync_group_mappings_changed' | 'security.dsync_mapping_priority_changed' | 'security.user_banned' | 'security.user_unbanned' | 'integration.installed' | 'integration.uninstalled' | 'integration.configured' | 'webhook.created' | 'webhook.updated' | 'webhook.deleted' | 'webhook.secret_rotated' | 'api_key.created' | 'api_key.regenerated' | 'api_key.deleted' | 'organization.deletion_scheduled' | 'organization.deletion_cancelled' | 'data.export_initiated' | 'data.import_initiated' | 'data.bulk_delete' | 'data.user_data_deleted' | 'data.csv_exported' | 'billing.plan_changed' | 'billing.plan_cancelled' | 'billing.seat_limit_changed' | 'billing.seat_activated' | 'workflow.created' | 'workflow.activated' | 'workflow.deactivated' | 'workflow.deleted' | 'workflow.updated' | 'messenger.look_and_feel_changed' | 'messenger.spaces_changed' | 'messenger.language_changed' | 'messenger.platform_availability_changed' | 'messenger.search_browse_changed' | 'messenger.email_collection_changed' | 'messenger.welcome_message_changed' | 'messenger.launcher_changed' | 'messenger.inbound_conversations_changed' | 'messenger.office_hours_changed' | 'messenger.identity_verification_changed' | 'messenger.privacy_policy_changed' | 'brand.created' | 'brand.updated' | 'brand.deleted' | 'brand.messenger_look_and_feel_changed' | 'brand.messenger_launcher_changed' | 'brand.messenger_welcome_message_changed' | 'brand.messenger_privacy_policy_changed' | 'brand.default_changed' | 'ai_agent.enabled' | 'ai_agent.disabled' | 'ai_agent.identity_changed' | 'ai_agent.customization_changed' | 'ai_agent.guidance_changed' | 'ai_agent.multilingual_changed' | 'ai_agent.data_context_changed' | 'email.sending_address_created' | 'email.sending_address_updated' | 'email.sending_address_deleted' | 'email.domain_registered' | 'email.domain_deleted' | 'email.reply_to_changed' | 'email.ignored_address_added' | 'email.ignored_address_removed';
113
+ actor: AuditLogListResponse.Actor;
114
+ /**
115
+ * Groups related events from a single operation (e.g. bulk import)
116
+ */
117
+ correlationId: string | null;
118
+ /**
119
+ * ISO 8601 timestamp of when the event occurred
120
+ */
121
+ createdAt: string;
122
+ /**
123
+ * Pre-rendered human-readable description of the event
124
+ */
125
+ description: string;
126
+ /**
127
+ * The domain/category the action belongs to
128
+ */
129
+ domain: 'authentication' | 'team_management' | 'permissions' | 'articles' | 'changelog' | 'workspace_settings' | 'security' | 'integrations' | 'data_management' | 'billing' | 'workflows' | 'messenger' | 'brands' | 'ai_agent' | 'email_config';
130
+ /**
131
+ * Event-specific payload with before/after state when applicable. The shape of
132
+ * this object depends on the action type.
133
+ */
134
+ metadata: {
135
+ [key: string]: unknown;
136
+ };
137
+ /**
138
+ * Object type identifier
139
+ */
140
+ object: 'audit_log';
141
+ request: AuditLogListResponse.Request;
142
+ resource: AuditLogListResponse.Resource;
143
+ }
144
+ export declare namespace AuditLogListResponse {
145
+ interface Actor {
146
+ /**
147
+ * Featurebase user ID of the actor, or null for system actors
148
+ */
149
+ id: string | null;
150
+ /**
151
+ * API key that authenticated the request, or null for dashboard sessions
152
+ */
153
+ apiKey: Actor.APIKey | null;
154
+ /**
155
+ * Email address of the actor
156
+ */
157
+ email: string;
158
+ /**
159
+ * Display name of the actor
160
+ */
161
+ name: string | null;
162
+ /**
163
+ * The type of actor that performed the action
164
+ */
165
+ type: 'admin' | 'system' | 'api_key' | 'integration';
166
+ }
167
+ namespace Actor {
168
+ /**
169
+ * API key that authenticated the request, or null for dashboard sessions
170
+ */
171
+ interface APIKey {
172
+ /**
173
+ * API key ID
174
+ */
175
+ id: string;
176
+ /**
177
+ * API key name
178
+ */
179
+ name: string;
180
+ }
181
+ }
182
+ interface Request {
183
+ /**
184
+ * IP address the request originated from
185
+ */
186
+ ipAddress: string | null;
187
+ /**
188
+ * User-Agent header from the request
189
+ */
190
+ userAgent: string | null;
191
+ }
192
+ interface Resource {
193
+ /**
194
+ * ID of the affected resource, or null for organization-level events
195
+ */
196
+ id: string | null;
197
+ /**
198
+ * Display name of the affected resource
199
+ */
200
+ name: string | null;
201
+ /**
202
+ * Type of the affected resource
203
+ */
204
+ type: string;
205
+ }
206
+ }
207
+ export interface AuditLogListParams extends CursorPageParams {
208
+ /**
209
+ * Query param: Filter audit logs by action type
210
+ */
211
+ action?: 'auth.login' | 'auth.logout' | 'auth.login_failed' | 'auth.password_reset_requested' | 'auth.password_changed' | 'auth.mfa_enabled' | 'auth.mfa_disabled' | 'auth.sso_login' | 'auth.password_reset_completed' | 'auth.unauthorized_method' | 'auth.recovery_code_regenerated' | 'auth.sso_enforcement_blocked' | 'auth.sso_enforcement_session_invalidated' | 'auth.managed_account_link_blocked' | 'auth.cross_org_invite_accepted' | 'auth.sso_enforcement_shadow' | 'teammate.invited' | 'teammate.joined' | 'teammate.removed' | 'teammate.email_changed' | 'teammate.name_changed' | 'teammate.seat_changed' | 'teammate.deactivated' | 'teammate.invite_changed' | 'teammate.invite_deleted' | 'teammate.scim_provisioned' | 'teammate.scim_deprovisioned' | 'teammate.scim_unlinked' | 'teammate.scim_relinked' | 'teammate.scim_operation_blocked' | 'teammate.scim_seat_capacity_blocked' | 'teammate.scim_email_updated' | 'teammate.scim_exclusion_list_updated' | 'teammate.restored' | 'teammate.scim_restored' | 'teammate.scim_auto_claimed' | 'teammate.scim_claim_role_preserved' | 'teammate.permanently_removed' | 'member.role_changed' | 'organization.owner_transferred' | 'article.created' | 'article.updated' | 'article.published' | 'article.unpublished' | 'article.deleted' | 'changelog.created' | 'changelog.published' | 'changelog.deleted' | 'changelog.unpublished' | 'settings.name_changed' | 'settings.branding_updated' | 'settings.custom_domain_changed' | 'settings.language_changed' | 'settings.timezone_changed' | 'settings.email_settings_changed' | 'settings.help_center_updated' | 'settings.moderation_changed' | 'settings.voting_changed' | 'settings.statuses_updated' | 'settings.boards_updated' | 'settings.privacy_changed' | 'settings.subdomain_changed' | 'settings.subdomain_change_requested' | 'settings.grace_period_changed' | 'security.scim_override_blocked' | 'security.sso_enabled' | 'security.sso_disabled' | 'security.sso_configured' | 'security.sso_jit_provisioning_blocked' | 'security.directory_sync_enabled' | 'security.directory_sync_disabled' | 'security.directory_sync_reconciled' | 'security.two_factor_enforced' | 'security.auth_method_changed' | 'security.ip_allowlist_changed' | 'security.ip_allowlist_blocked' | 'security.identity_verification_changed' | 'security.sso_url_changed' | 'security.sso_jit_provisioning_changed' | 'security.sso_enforcement_enabled' | 'security.sso_enforcement_disabled' | 'security.dsync_group_mappings_changed' | 'security.dsync_mapping_priority_changed' | 'security.user_banned' | 'security.user_unbanned' | 'integration.installed' | 'integration.uninstalled' | 'integration.configured' | 'webhook.created' | 'webhook.updated' | 'webhook.deleted' | 'webhook.secret_rotated' | 'api_key.created' | 'api_key.regenerated' | 'api_key.deleted' | 'organization.deletion_scheduled' | 'organization.deletion_cancelled' | 'data.export_initiated' | 'data.import_initiated' | 'data.bulk_delete' | 'data.user_data_deleted' | 'data.csv_exported' | 'billing.plan_changed' | 'billing.plan_cancelled' | 'billing.seat_limit_changed' | 'billing.seat_activated' | 'workflow.created' | 'workflow.activated' | 'workflow.deactivated' | 'workflow.deleted' | 'workflow.updated' | 'messenger.look_and_feel_changed' | 'messenger.spaces_changed' | 'messenger.language_changed' | 'messenger.platform_availability_changed' | 'messenger.search_browse_changed' | 'messenger.email_collection_changed' | 'messenger.welcome_message_changed' | 'messenger.launcher_changed' | 'messenger.inbound_conversations_changed' | 'messenger.office_hours_changed' | 'messenger.identity_verification_changed' | 'messenger.privacy_policy_changed' | 'brand.created' | 'brand.updated' | 'brand.deleted' | 'brand.messenger_look_and_feel_changed' | 'brand.messenger_launcher_changed' | 'brand.messenger_welcome_message_changed' | 'brand.messenger_privacy_policy_changed' | 'brand.default_changed' | 'ai_agent.enabled' | 'ai_agent.disabled' | 'ai_agent.identity_changed' | 'ai_agent.customization_changed' | 'ai_agent.guidance_changed' | 'ai_agent.multilingual_changed' | 'ai_agent.data_context_changed' | 'email.sending_address_created' | 'email.sending_address_updated' | 'email.sending_address_deleted' | 'email.domain_registered' | 'email.domain_deleted' | 'email.reply_to_changed' | 'email.ignored_address_added' | 'email.ignored_address_removed';
212
+ /**
213
+ * Query param: Filter audit logs by domain/category
214
+ */
215
+ domain?: 'authentication' | 'team_management' | 'permissions' | 'articles' | 'changelog' | 'workspace_settings' | 'security' | 'integrations' | 'data_management' | 'billing' | 'workflows' | 'messenger' | 'brands' | 'ai_agent' | 'email_config';
216
+ /**
217
+ * Query param: Filter events created on or before this ISO 8601 datetime
218
+ */
219
+ endDate?: string | null;
220
+ /**
221
+ * Query param: Filter events created on or after this ISO 8601 datetime
222
+ */
223
+ startDate?: string | null;
224
+ /**
225
+ * Header param: API version for this request. Defaults to your organization's
226
+ * configured API version if not specified.
227
+ */
228
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
229
+ }
230
+ export declare namespace AuditLogs {
231
+ export { type AuditLogListResponse as AuditLogListResponse, type AuditLogListResponsesCursorPage as AuditLogListResponsesCursorPage, type AuditLogListParams as AuditLogListParams, };
232
+ }
233
+ //# sourceMappingURL=audit-logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-logs.d.ts","sourceRoot":"","sources":["../src/resources/audit-logs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AuditLogs = void 0;
5
+ const resource_1 = require("../core/resource.js");
6
+ const pagination_1 = require("../core/pagination.js");
7
+ const headers_1 = require("../internal/headers.js");
8
+ /**
9
+ * Audit logs provide a chronological record of significant admin actions in your organization. Use them for security auditing, compliance reporting, and tracking workspace changes.
10
+ */
11
+ class AuditLogs extends resource_1.APIResource {
12
+ /**
13
+ * Returns a list of audit log events in your organization using cursor-based
14
+ * pagination (newest first).
15
+ *
16
+ * ### Query Parameters
17
+ *
18
+ * - `limit` - Number of events to return (1-100, default 10)
19
+ * - `cursor` - Cursor from a previous response for pagination
20
+ * - `action` - Filter by action type (e.g. `webhook.deleted`,
21
+ * `security.sso_enabled`)
22
+ * - `domain` - Filter by domain/category (e.g. `security`, `messenger`)
23
+ * - `startDate` - Filter events created on or after this ISO 8601 datetime
24
+ * - `endDate` - Filter events created on or before this ISO 8601 datetime
25
+ *
26
+ * ### Filtering by Action
27
+ *
28
+ * The `action` parameter filters by event type. Each action follows the
29
+ * `{domain}.{verb}` convention. See the `action` enum in this schema for the full
30
+ * list of supported values.
31
+ *
32
+ * **Examples:**
33
+ *
34
+ * - `?action=security.sso_enabled` — only SSO enablement events
35
+ * - `?action=webhook.deleted` — only webhook deletion events
36
+ *
37
+ * ### Filtering by Domain
38
+ *
39
+ * Use the `domain` parameter to narrow results to one category of audit event.
40
+ *
41
+ * **Examples:**
42
+ *
43
+ * - `?domain=security` — only security-related audit events
44
+ * - `?domain=messenger` — only messenger-related audit events
45
+ *
46
+ * ### Filtering by Date Range
47
+ *
48
+ * Use `startDate` and `endDate` together or individually to narrow results to a
49
+ * time window.
50
+ *
51
+ * **Examples:**
52
+ *
53
+ * - `?startDate=2025-01-01T00:00:00Z&endDate=2025-01-31T23:59:59Z` — January 2025
54
+ * only
55
+ * - `?startDate=2025-06-01T00:00:00Z` — from June 1st onward
56
+ *
57
+ * ### Pagination
58
+ *
59
+ * Results are ordered by `createdAt` descending (newest first). Use the
60
+ * `nextCursor` value from each response as the `cursor` parameter in the next
61
+ * request to paginate forward.
62
+ *
63
+ * ```
64
+ * GET /v2/audit-logs?limit=20
65
+ * → { "nextCursor": "eyJ..." }
66
+ *
67
+ * GET /v2/audit-logs?limit=20&cursor=eyJ...
68
+ * → { "nextCursor": null } ← no more results
69
+ * ```
70
+ *
71
+ * ### Metadata
72
+ *
73
+ * The `metadata` field contains event-specific details (e.g. before/after state
74
+ * for updates). Its shape depends on the `action` type and is not strictly modeled
75
+ * in the schema — treat it as a free-form object.
76
+ *
77
+ * ### Response Format
78
+ *
79
+ * Returns a list object with:
80
+ *
81
+ * - `object` - Always `"list"`
82
+ * - `data` - Array of audit log objects
83
+ * - `nextCursor` - Cursor for the next page, or `null` if no more results
84
+ *
85
+ * ### Audit Log Object
86
+ *
87
+ * Each audit log includes:
88
+ *
89
+ * - `id` - Unique event identifier (UUID)
90
+ * - `correlationId` - Groups related events from a single operation (e.g. bulk
91
+ * import)
92
+ * - `action` - What happened (e.g. `webhook.deleted`)
93
+ * - `domain` - Category the action belongs to (e.g. `integrations`)
94
+ * - `description` - Human-readable description
95
+ * - `actor` - Who performed the action (id, type, email, name, apiKey)
96
+ * - `resource` - What was affected (type, id, name)
97
+ * - `request` - Request context (ipAddress, userAgent)
98
+ * - `metadata` - Event-specific payload
99
+ * - `createdAt` - When the event occurred
100
+ *
101
+ * ### Version Availability
102
+ *
103
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
104
+ */
105
+ list(params = {}, options) {
106
+ const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
107
+ return this._client.getAPIList('/v2/audit-logs', (pagination_1.CursorPage), {
108
+ query,
109
+ ...options,
110
+ headers: (0, headers_1.buildHeaders)([
111
+ {
112
+ ...(featurebaseVersion?.toString() != null ?
113
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
114
+ : undefined),
115
+ },
116
+ options?.headers,
117
+ ]),
118
+ });
119
+ }
120
+ }
121
+ exports.AuditLogs = AuditLogs;
122
+ //# sourceMappingURL=audit-logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-logs.js","sourceRoot":"","sources":["../src/resources/audit-logs.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAC/C,sDAAoF;AACpF,oDAAmD;AAGnD;;GAEG;AACH,MAAa,SAAU,SAAQ,sBAAW;IACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4FG;IACH,IAAI,CACF,SAAgD,EAAE,EAClD,OAAwB;QAExB,MAAM,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QAC7E,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAA,uBAAgC,CAAA,EAAE;YACjF,KAAK;YACL,GAAG,OAAO;YACV,OAAO,EAAE,IAAA,sBAAY,EAAC;gBACpB;oBACE,GAAG,CAAC,kBAAkB,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC;wBAC1C,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE;wBAC3D,CAAC,CAAC,SAAS,CAAC;iBACb;gBACD,OAAO,EAAE,OAAO;aACjB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;CACF;AAhHD,8BAgHC"}