@atlasauth/backend 0.24.0 → 0.26.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 (201) hide show
  1. package/CHANGELOG.md +39 -1
  2. package/dist/client/abac.d.ts +521 -0
  3. package/dist/client/abac.js +146 -0
  4. package/dist/client/abac.js.map +1 -0
  5. package/dist/client/access-policies.d.ts +100 -0
  6. package/dist/client/access-policies.js +29 -0
  7. package/dist/client/access-policies.js.map +1 -0
  8. package/dist/client/action-gallery.d.ts +1 -1
  9. package/dist/client/action-gallery.js.map +1 -1
  10. package/dist/client/actions.d.ts +129 -6
  11. package/dist/client/actions.js +4 -0
  12. package/dist/client/actions.js.map +1 -1
  13. package/dist/client/analytics-reports.d.ts +215 -0
  14. package/dist/client/analytics-reports.js +56 -0
  15. package/dist/client/analytics-reports.js.map +1 -0
  16. package/dist/client/app-catalog.d.ts +74 -0
  17. package/dist/client/app-catalog.js +30 -0
  18. package/dist/client/app-catalog.js.map +1 -0
  19. package/dist/client/attack-protection.d.ts +10 -0
  20. package/dist/client/attack-protection.js +8 -0
  21. package/dist/client/attack-protection.js.map +1 -1
  22. package/dist/client/audit-events.d.ts +71 -0
  23. package/dist/client/audit-events.js +28 -0
  24. package/dist/client/audit-events.js.map +1 -1
  25. package/dist/client/authz-decisions.d.ts +108 -0
  26. package/dist/client/authz-decisions.js +40 -0
  27. package/dist/client/authz-decisions.js.map +1 -0
  28. package/dist/client/connections.d.ts +507 -0
  29. package/dist/client/connections.js +164 -0
  30. package/dist/client/connections.js.map +1 -0
  31. package/dist/client/credentials.d.ts +8 -0
  32. package/dist/client/credentials.js.map +1 -1
  33. package/dist/client/custom-oauth-providers.d.ts +15 -0
  34. package/dist/client/custom-oauth-providers.js.map +1 -1
  35. package/dist/client/delegated-ui-proxy.d.ts +25 -0
  36. package/dist/client/delegated-ui-proxy.js +46 -0
  37. package/dist/client/delegated-ui-proxy.js.map +1 -0
  38. package/dist/client/desktop-mfa.d.ts +104 -0
  39. package/dist/client/desktop-mfa.js +44 -0
  40. package/dist/client/desktop-mfa.js.map +1 -0
  41. package/dist/client/devices.d.ts +44 -0
  42. package/dist/client/devices.js +26 -0
  43. package/dist/client/devices.js.map +1 -0
  44. package/dist/client/email-templates.d.ts +1 -1
  45. package/dist/client/email-templates.js.map +1 -1
  46. package/dist/client/fga.d.ts +125 -4
  47. package/dist/client/fga.js +40 -0
  48. package/dist/client/fga.js.map +1 -1
  49. package/dist/client/flags.d.ts +101 -0
  50. package/dist/client/flags.js +104 -0
  51. package/dist/client/flags.js.map +1 -0
  52. package/dist/client/groups.d.ts +146 -0
  53. package/dist/client/groups.js +67 -0
  54. package/dist/client/groups.js.map +1 -0
  55. package/dist/client/identity-verification.d.ts +62 -0
  56. package/dist/client/identity-verification.js +39 -0
  57. package/dist/client/identity-verification.js.map +1 -0
  58. package/dist/client/iga.d.ts +436 -0
  59. package/dist/client/iga.js +82 -0
  60. package/dist/client/iga.js.map +1 -0
  61. package/dist/client/index.d.ts +1433 -4
  62. package/dist/client/index.js +96 -0
  63. package/dist/client/index.js.map +1 -1
  64. package/dist/client/journeys.d.ts +108 -0
  65. package/dist/client/journeys.js +35 -0
  66. package/dist/client/journeys.js.map +1 -0
  67. package/dist/client/least-privilege.d.ts +95 -0
  68. package/dist/client/least-privilege.js +28 -0
  69. package/dist/client/least-privilege.js.map +1 -0
  70. package/dist/client/log-streams.d.ts +1 -1
  71. package/dist/client/managed-grants.d.ts +52 -0
  72. package/dist/client/managed-grants.js +28 -0
  73. package/dist/client/managed-grants.js.map +1 -0
  74. package/dist/client/marketing.d.ts +67 -0
  75. package/dist/client/marketing.js +26 -0
  76. package/dist/client/marketing.js.map +1 -0
  77. package/dist/client/mcp-gateways.d.ts +126 -0
  78. package/dist/client/mcp-gateways.js +47 -0
  79. package/dist/client/mcp-gateways.js.map +1 -0
  80. package/dist/client/messaging.d.ts +14 -3
  81. package/dist/client/messaging.js.map +1 -1
  82. package/dist/client/mfa-factors.d.ts +120 -0
  83. package/dist/client/mfa-factors.js +73 -0
  84. package/dist/client/mfa-factors.js.map +1 -0
  85. package/dist/client/migrations.d.ts +1 -1
  86. package/dist/client/migrations.js.map +1 -1
  87. package/dist/client/network-acls.d.ts +6 -1
  88. package/dist/client/network-acls.js.map +1 -1
  89. package/dist/client/network-zones.d.ts +56 -0
  90. package/dist/client/network-zones.js +29 -0
  91. package/dist/client/network-zones.js.map +1 -0
  92. package/dist/client/notifications.d.ts +1 -1
  93. package/dist/client/notifications.js.map +1 -1
  94. package/dist/client/oauth-clients.d.ts +187 -3
  95. package/dist/client/oauth-clients.js +64 -0
  96. package/dist/client/oauth-clients.js.map +1 -1
  97. package/dist/client/openfga.d.ts +90 -3
  98. package/dist/client/openfga.js +27 -1
  99. package/dist/client/openfga.js.map +1 -1
  100. package/dist/client/org-role-grants.d.ts +57 -0
  101. package/dist/client/org-role-grants.js +40 -0
  102. package/dist/client/org-role-grants.js.map +1 -0
  103. package/dist/client/organizations.d.ts +52 -0
  104. package/dist/client/organizations.js +44 -0
  105. package/dist/client/organizations.js.map +1 -1
  106. package/dist/client/page-templates.d.ts +78 -0
  107. package/dist/client/page-templates.js +31 -0
  108. package/dist/client/page-templates.js.map +1 -0
  109. package/dist/client/passkey-api.d.ts +73 -0
  110. package/dist/client/passkey-api.js +34 -0
  111. package/dist/client/passkey-api.js.map +1 -0
  112. package/dist/client/policy-bundles.d.ts +105 -0
  113. package/dist/client/policy-bundles.js +38 -0
  114. package/dist/client/policy-bundles.js.map +1 -0
  115. package/dist/client/resources.d.ts +150 -0
  116. package/dist/client/resources.js +73 -0
  117. package/dist/client/resources.js.map +1 -0
  118. package/dist/client/risk-based-mfa.d.ts +147 -0
  119. package/dist/client/risk-based-mfa.js +30 -0
  120. package/dist/client/risk-based-mfa.js.map +1 -1
  121. package/dist/client/roles.d.ts +4 -0
  122. package/dist/client/roles.js.map +1 -1
  123. package/dist/client/service-connectors.d.ts +83 -0
  124. package/dist/client/service-connectors.js +33 -0
  125. package/dist/client/service-connectors.js.map +1 -0
  126. package/dist/client/ssf.d.ts +112 -0
  127. package/dist/client/ssf.js +49 -0
  128. package/dist/client/ssf.js.map +1 -0
  129. package/dist/client/sso-onboarding.d.ts +6 -0
  130. package/dist/client/sso-onboarding.js.map +1 -1
  131. package/dist/client/users.d.ts +302 -0
  132. package/dist/client/users.js +125 -0
  133. package/dist/client/users.js.map +1 -1
  134. package/dist/client/vault.d.ts +85 -0
  135. package/dist/client/vault.js +50 -0
  136. package/dist/client/vault.js.map +1 -0
  137. package/dist/client/vc.d.ts +136 -0
  138. package/dist/client/vc.js +43 -0
  139. package/dist/client/vc.js.map +1 -0
  140. package/dist/client/webhooks.d.ts +31 -2
  141. package/dist/client/webhooks.js.map +1 -1
  142. package/dist/client/workflows.d.ts +131 -0
  143. package/dist/client/workflows.js +36 -0
  144. package/dist/client/workflows.js.map +1 -0
  145. package/dist/index.d.ts +5 -0
  146. package/dist/index.js +11 -2
  147. package/dist/index.js.map +1 -1
  148. package/dist/magic-did.d.ts +5 -0
  149. package/dist/magic-did.js +49 -0
  150. package/dist/magic-did.js.map +1 -0
  151. package/dist/migration-bridge.d.ts +9 -0
  152. package/dist/migration-bridge.js +28 -2
  153. package/dist/migration-bridge.js.map +1 -1
  154. package/dist/migration-presets-g3.d.ts +2 -0
  155. package/dist/migration-presets-g3.js +254 -0
  156. package/dist/migration-presets-g3.js.map +1 -0
  157. package/dist/migration-presets-g4/authentik.d.ts +14 -0
  158. package/dist/migration-presets-g4/authentik.js +37 -0
  159. package/dist/migration-presets-g4/authentik.js.map +1 -0
  160. package/dist/migration-presets-g4/fusionauth.d.ts +2 -0
  161. package/dist/migration-presets-g4/fusionauth.js +52 -0
  162. package/dist/migration-presets-g4/fusionauth.js.map +1 -0
  163. package/dist/migration-presets-g4/hanko.d.ts +12 -0
  164. package/dist/migration-presets-g4/hanko.js +46 -0
  165. package/dist/migration-presets-g4/hanko.js.map +1 -0
  166. package/dist/migration-presets-g4/keycloak.d.ts +16 -0
  167. package/dist/migration-presets-g4/keycloak.js +37 -0
  168. package/dist/migration-presets-g4/keycloak.js.map +1 -0
  169. package/dist/migration-presets-g4/logto.d.ts +12 -0
  170. package/dist/migration-presets-g4/logto.js +35 -0
  171. package/dist/migration-presets-g4/logto.js.map +1 -0
  172. package/dist/migration-presets-g4/ory.d.ts +2 -0
  173. package/dist/migration-presets-g4/ory.js +67 -0
  174. package/dist/migration-presets-g4/ory.js.map +1 -0
  175. package/dist/migration-presets-g4/supertokens.d.ts +13 -0
  176. package/dist/migration-presets-g4/supertokens.js +35 -0
  177. package/dist/migration-presets-g4/supertokens.js.map +1 -0
  178. package/dist/migration-presets-g4/zitadel.d.ts +2 -0
  179. package/dist/migration-presets-g4/zitadel.js +36 -0
  180. package/dist/migration-presets-g4/zitadel.js.map +1 -0
  181. package/dist/migration-presets-g4.d.ts +10 -0
  182. package/dist/migration-presets-g4.js +30 -0
  183. package/dist/migration-presets-g4.js.map +1 -0
  184. package/dist/migration-presets.d.ts +6 -0
  185. package/dist/migration-presets.js +102 -6
  186. package/dist/migration-presets.js.map +1 -1
  187. package/dist/policy-bundle.d.ts +110 -0
  188. package/dist/policy-bundle.js +289 -0
  189. package/dist/policy-bundle.js.map +1 -0
  190. package/dist/request-auth.d.ts +32 -0
  191. package/dist/request-auth.js +72 -0
  192. package/dist/request-auth.js.map +1 -0
  193. package/dist/uma.d.ts +77 -0
  194. package/dist/uma.js +95 -0
  195. package/dist/uma.js.map +1 -0
  196. package/dist/verify.d.ts +2 -0
  197. package/dist/verify.js.map +1 -1
  198. package/dist/workos-session.d.ts +30 -0
  199. package/dist/workos-session.js +123 -0
  200. package/dist/workos-session.js.map +1 -0
  201. package/package.json +2 -2
@@ -0,0 +1,215 @@
1
+ import { type RequestFn } from './request';
2
+ import type { DeletedObject } from './types';
3
+ /** The window every analytics read takes: `from`/`to` (epoch ms or ISO 8601) or `days`, at most 180. */
4
+ export interface AnalyticsParams {
5
+ from?: number | string;
6
+ to?: number | string;
7
+ days?: number;
8
+ granularity?: 'day' | 'week' | 'month';
9
+ /** Only members of this organization (not available for failures). */
10
+ organization_id?: string;
11
+ }
12
+ export interface AnalyticsReport<Row> {
13
+ object: string;
14
+ window: {
15
+ from: number;
16
+ to: number;
17
+ granularity: string;
18
+ organization_id: string | null;
19
+ };
20
+ data: Row[];
21
+ [meta: string]: unknown;
22
+ }
23
+ export interface FunnelRow {
24
+ method: string;
25
+ started: number;
26
+ completed: number;
27
+ abandoned: number;
28
+ in_progress: number;
29
+ needs_first_factor: number;
30
+ needs_second_factor: number;
31
+ needs_email_verification: number;
32
+ completion_rate: number;
33
+ }
34
+ export interface JourneyFunnelRow {
35
+ step: string;
36
+ held: number;
37
+ completed: number;
38
+ applied: number;
39
+ denied: number;
40
+ completion_rate: number;
41
+ }
42
+ export interface FailureRow {
43
+ phase: string;
44
+ reason: string;
45
+ method: string;
46
+ count: number;
47
+ share: number;
48
+ }
49
+ export interface BreakdownRow {
50
+ value: string;
51
+ count: number;
52
+ share: number;
53
+ }
54
+ export interface ActiveUsersRow {
55
+ bucket: string;
56
+ active_users: number;
57
+ new_users: number;
58
+ returning_users: number;
59
+ sign_ins: number;
60
+ }
61
+ export interface PasskeyAdoptionRow {
62
+ bucket: string;
63
+ passkey_sign_ins: number;
64
+ sign_ins: number;
65
+ passkey_share: number;
66
+ }
67
+ export interface InactiveUserRow {
68
+ user_id: string;
69
+ email: string | null;
70
+ last_sign_in_at: string | null;
71
+ created_at: string;
72
+ }
73
+ export interface MfaCoverageRow {
74
+ protection: string;
75
+ users: number;
76
+ share: number;
77
+ }
78
+ export interface AccessByAppRow {
79
+ client_id: string;
80
+ name: string;
81
+ users: number;
82
+ active_grants: number;
83
+ users_in_window: number;
84
+ }
85
+ export type AlertMetric = 'sign_in_success_rate' | 'failed_passkey_ratio' | 'failed_sign_ins' | 'sign_in_p95_seconds' | 'api_usage_spike' | 'unused_permissions';
86
+ export type UsageSubjectType = 'api_key' | 'end_user_api_key' | 'organization';
87
+ /** One key's or organization's API usage against its 7-day hourly baseline. */
88
+ export interface ApiUsageSubject {
89
+ type: UsageSubjectType;
90
+ id: string;
91
+ current: number;
92
+ current_per_hour: number;
93
+ baseline_per_hour: number;
94
+ /** current_per_hour / baseline_per_hour (the baseline is floored at 1 request an hour). */
95
+ ratio: number;
96
+ error_rate: number;
97
+ }
98
+ export interface AnalyticsAlertRule {
99
+ object: 'analytics_alert_rule';
100
+ id: string;
101
+ name: string;
102
+ metric: AlertMetric;
103
+ comparator: 'lt' | 'gt';
104
+ threshold: number;
105
+ window_minutes: number;
106
+ min_sample: number;
107
+ cooldown_minutes: number;
108
+ email_contacts: string[];
109
+ webhook_url: string | null;
110
+ has_webhook_secret: boolean;
111
+ enabled: boolean;
112
+ subject_type: UsageSubjectType | null;
113
+ subject_id: string | null;
114
+ ssf: boolean;
115
+ state: 'ok' | 'firing';
116
+ last_value: number | null;
117
+ last_evaluated_at: number | null;
118
+ last_triggered_at: number | null;
119
+ last_error: string | null;
120
+ created_at: number;
121
+ }
122
+ export interface AnalyticsAlertRuleInput {
123
+ name: string;
124
+ metric: AlertMetric;
125
+ comparator: 'lt' | 'gt';
126
+ threshold: number;
127
+ /** 5 to 1440 (default 60). */
128
+ window_minutes?: number;
129
+ /** Ratios and latency are not evaluated on fewer observations (default 20). */
130
+ min_sample?: number;
131
+ /** Minutes between notifications while the rule stays firing (default 60). */
132
+ cooldown_minutes?: number;
133
+ email_contacts?: string[];
134
+ /** A public HTTPS endpoint; the body is signed like any Atlas webhook. */
135
+ webhook_url?: string | null;
136
+ enabled?: boolean;
137
+ /** api_usage_spike: which kind of subject to watch (null = all). */
138
+ subject_type?: UsageSubjectType | null;
139
+ /** api_usage_spike: one key or organization (needs subject_type). */
140
+ subject_id?: string | null;
141
+ /** Also raise a Shared Signals event when the rule fires. */
142
+ ssf?: boolean;
143
+ }
144
+ export declare function analyticsResource(request: RequestFn): {
145
+ /** Where sign-in (or sign-up) attempts end, per method. */
146
+ funnel: (params?: AnalyticsParams & {
147
+ kind?: "sign_in" | "sign_up";
148
+ }) => Promise<AnalyticsReport<FunnelRow>>;
149
+ /** What happened at each step of a sign-in journey. */
150
+ journeyFunnel: (params: Omit<AnalyticsParams, "organization_id"> & {
151
+ journey_id: string;
152
+ }) => Promise<AnalyticsReport<JourneyFunnelRow>>;
153
+ /** Failed attempts by reason and method. */
154
+ failures: (params?: Omit<AnalyticsParams, "organization_id">) => Promise<AnalyticsReport<FailureRow>>;
155
+ /** Sign-ins by method, device, browser, os or country. */
156
+ breakdown: (params?: AnalyticsParams & {
157
+ dimension?: "method" | "device" | "browser" | "os" | "country";
158
+ }) => Promise<AnalyticsReport<BreakdownRow>>;
159
+ /** DAU/WAU/MAU and a series, with new vs returning users. */
160
+ activeUsers: (params?: AnalyticsParams) => Promise<AnalyticsReport<ActiveUsersRow>>;
161
+ passkeyAdoption: (params?: AnalyticsParams) => Promise<AnalyticsReport<PasskeyAdoptionRow>>;
162
+ /** API usage per secret key, end-user API key or organization against its own baseline, highest ratio first. */
163
+ apiUsage: (params?: {
164
+ subject_type?: UsageSubjectType;
165
+ subject_id?: string;
166
+ window_minutes?: number;
167
+ }) => Promise<{
168
+ object: "api_usage";
169
+ window_minutes: number;
170
+ baseline_hours: number;
171
+ generated_at: number;
172
+ data: ApiUsageSubject[];
173
+ }>;
174
+ reports: {
175
+ inactiveUsers: (params?: AnalyticsParams & {
176
+ inactive_days?: number;
177
+ limit?: number;
178
+ starting_after?: string;
179
+ }) => Promise<AnalyticsReport<InactiveUserRow>>;
180
+ mfaCoverage: (params?: AnalyticsParams) => Promise<AnalyticsReport<MfaCoverageRow>>;
181
+ accessByApp: (params?: AnalyticsParams) => Promise<AnalyticsReport<AccessByAppRow>>;
182
+ };
183
+ /**
184
+ * Any analytics read as CSV text, e.g. `exportCsv('breakdown', { dimension: 'country' })`.
185
+ * For Parquet call the same path with `format=parquet` over HTTP (a binary body).
186
+ */
187
+ exportCsv: (report: "funnel" | "failures" | "breakdown" | "active_users" | "passkey_adoption" | "reports/inactive_users" | "reports/mfa_coverage" | "reports/access_by_app", params?: object) => Promise<string>;
188
+ alertRules: {
189
+ list(): Promise<{
190
+ object: "list";
191
+ data: AnalyticsAlertRule[];
192
+ has_more: boolean;
193
+ }>;
194
+ get(id: string): Promise<AnalyticsAlertRule>;
195
+ /** A webhook rule's `webhook_secret` is in this response only. */
196
+ create(body: AnalyticsAlertRuleInput, idempotencyKey?: string): Promise<AnalyticsAlertRule & {
197
+ webhook_secret?: string;
198
+ }>;
199
+ update(id: string, body: Partial<AnalyticsAlertRuleInput>): Promise<AnalyticsAlertRule & {
200
+ webhook_secret?: string;
201
+ }>;
202
+ delete(id: string): Promise<DeletedObject>;
203
+ /** Measure now; `notify: true` also sends the rule's email and webhook. */
204
+ test(id: string, body?: {
205
+ notify?: boolean;
206
+ }): Promise<{
207
+ object: "analytics_alert_test";
208
+ value: number | null;
209
+ sample: number;
210
+ subject: ApiUsageSubject | null;
211
+ notified: boolean;
212
+ error: string | null;
213
+ }>;
214
+ };
215
+ };
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.analyticsResource = analyticsResource;
4
+ const request_1 = require("./request");
5
+ function analyticsResource(request) {
6
+ const read = (path, params) => request({ method: 'GET', path, query: { ...params } });
7
+ const csv = (path, params) => request({ method: 'GET', path, query: { ...params, format: 'csv' }, raw: true });
8
+ return {
9
+ /** Where sign-in (or sign-up) attempts end, per method. */
10
+ funnel: (params = {}) => read('/v1/analytics/funnel', params),
11
+ /** What happened at each step of a sign-in journey. */
12
+ journeyFunnel: (params) => read('/v1/analytics/journey_funnel', params),
13
+ /** Failed attempts by reason and method. */
14
+ failures: (params = {}) => read('/v1/analytics/failures', params),
15
+ /** Sign-ins by method, device, browser, os or country. */
16
+ breakdown: (params = {}) => read('/v1/analytics/breakdown', params),
17
+ /** DAU/WAU/MAU and a series, with new vs returning users. */
18
+ activeUsers: (params = {}) => read('/v1/analytics/active_users', params),
19
+ passkeyAdoption: (params = {}) => read('/v1/analytics/passkey_adoption', params),
20
+ /** API usage per secret key, end-user API key or organization against its own baseline, highest ratio first. */
21
+ apiUsage: (params = {}) => request({ method: 'GET', path: '/v1/analytics/api_usage', query: { ...params } }),
22
+ reports: {
23
+ inactiveUsers: (params = {}) => read('/v1/analytics/reports/inactive_users', params),
24
+ mfaCoverage: (params = {}) => read('/v1/analytics/reports/mfa_coverage', params),
25
+ accessByApp: (params = {}) => read('/v1/analytics/reports/access_by_app', params),
26
+ },
27
+ /**
28
+ * Any analytics read as CSV text, e.g. `exportCsv('breakdown', { dimension: 'country' })`.
29
+ * For Parquet call the same path with `format=parquet` over HTTP (a binary body).
30
+ */
31
+ exportCsv: (report, params = {}) => csv(`/v1/analytics/${report}`, params),
32
+ alertRules: {
33
+ list() {
34
+ return request({ method: 'GET', path: '/v1/analytics/alert_rules' });
35
+ },
36
+ get(id) {
37
+ return request({ method: 'GET', path: `/v1/analytics/alert_rules/${(0, request_1.enc)(id)}` });
38
+ },
39
+ /** A webhook rule's `webhook_secret` is in this response only. */
40
+ create(body, idempotencyKey) {
41
+ return request({ method: 'POST', path: '/v1/analytics/alert_rules', body, idempotencyKey });
42
+ },
43
+ update(id, body) {
44
+ return request({ method: 'PATCH', path: `/v1/analytics/alert_rules/${(0, request_1.enc)(id)}`, body });
45
+ },
46
+ delete(id) {
47
+ return request({ method: 'DELETE', path: `/v1/analytics/alert_rules/${(0, request_1.enc)(id)}` });
48
+ },
49
+ /** Measure now; `notify: true` also sends the rule's email and webhook. */
50
+ test(id, body = {}) {
51
+ return request({ method: 'POST', path: `/v1/analytics/alert_rules/${(0, request_1.enc)(id)}/test`, body });
52
+ },
53
+ },
54
+ };
55
+ }
56
+ //# sourceMappingURL=analytics-reports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics-reports.js","sourceRoot":"","sources":["../../src/client/analytics-reports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { type RequestFn } from './request';
2
+ export interface AppPreset {
3
+ object: 'app_preset';
4
+ id: string;
5
+ protocol: 'saml' | 'oidc';
6
+ name: string;
7
+ category: string;
8
+ icon_domain: string;
9
+ /** False: the values could not be confirmed in the vendor's docs; check them against the app's SSO settings. */
10
+ verified: boolean;
11
+ /** The vendor SSO documentation the values come from. */
12
+ source_url: string | null;
13
+ params: Array<{
14
+ key: string;
15
+ label: string;
16
+ }>;
17
+ }
18
+ /** Who may open an installed app; `assigned` admits only the listed users, groups, organizations and roles. */
19
+ export interface AppAssignment {
20
+ mode: 'everyone' | 'assigned';
21
+ user_ids?: string[];
22
+ /** Instance group ids or slugs (members of child groups count). */
23
+ groups?: string[];
24
+ organizations?: string[];
25
+ /** Organization role keys. */
26
+ roles?: string[];
27
+ }
28
+ export interface InstalledApp {
29
+ object: 'installed_app';
30
+ id: string;
31
+ protocol: 'saml' | 'oidc';
32
+ name: string;
33
+ preset_id: string | null;
34
+ entity_id: string | null;
35
+ acs_url: string | null;
36
+ client_id: string | null;
37
+ launch_url: string | null;
38
+ allowed_email_domains: string[];
39
+ assignment: Required<AppAssignment>;
40
+ }
41
+ export interface InstallAppBody {
42
+ params?: Record<string, string>;
43
+ installed_id?: string;
44
+ name?: string;
45
+ allowed_email_domains?: string[];
46
+ assignment?: AppAssignment;
47
+ }
48
+ /** The app catalog: SAML and OpenID Connect presets, installs, and who may open each app. */
49
+ export declare function appCatalogResource(request: RequestFn): {
50
+ /** `GET /v1/app_catalog` — every preset with its protocol and parameters. */
51
+ presets(): Promise<{
52
+ object: "list";
53
+ data: AppPreset[];
54
+ }>;
55
+ /** `GET /v1/app_catalog/installed` */
56
+ installed(): Promise<{
57
+ object: "list";
58
+ data: InstalledApp[];
59
+ }>;
60
+ /** `POST /v1/app_catalog/:presetId/install` — an OIDC app's `client_secret` is in this response only. */
61
+ install(presetId: string, body?: InstallAppBody, idempotencyKey?: string): Promise<InstalledApp & {
62
+ client_secret?: string;
63
+ redirect_uri?: string;
64
+ issuer?: string;
65
+ }>;
66
+ /** `PATCH /v1/app_catalog/installed/:id` — name, allowed_email_domains, assignment. */
67
+ update(id: string, body: Pick<InstallAppBody, "name" | "allowed_email_domains" | "assignment">): Promise<InstalledApp>;
68
+ /** `DELETE /v1/app_catalog/installed/:id` */
69
+ uninstall(id: string): Promise<{
70
+ object: "installed_app";
71
+ id: string;
72
+ deleted: true;
73
+ }>;
74
+ };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.appCatalogResource = appCatalogResource;
4
+ const request_1 = require("./request");
5
+ /** The app catalog: SAML and OpenID Connect presets, installs, and who may open each app. */
6
+ function appCatalogResource(request) {
7
+ return {
8
+ /** `GET /v1/app_catalog` — every preset with its protocol and parameters. */
9
+ presets() {
10
+ return request({ method: 'GET', path: '/v1/app_catalog' });
11
+ },
12
+ /** `GET /v1/app_catalog/installed` */
13
+ installed() {
14
+ return request({ method: 'GET', path: '/v1/app_catalog/installed' });
15
+ },
16
+ /** `POST /v1/app_catalog/:presetId/install` — an OIDC app's `client_secret` is in this response only. */
17
+ install(presetId, body = {}, idempotencyKey) {
18
+ return request({ method: 'POST', path: `/v1/app_catalog/${(0, request_1.enc)(presetId)}/install`, body, idempotencyKey });
19
+ },
20
+ /** `PATCH /v1/app_catalog/installed/:id` — name, allowed_email_domains, assignment. */
21
+ update(id, body) {
22
+ return request({ method: 'PATCH', path: `/v1/app_catalog/installed/${(0, request_1.enc)(id)}`, body });
23
+ },
24
+ /** `DELETE /v1/app_catalog/installed/:id` */
25
+ uninstall(id) {
26
+ return request({ method: 'DELETE', path: `/v1/app_catalog/installed/${(0, request_1.enc)(id)}` });
27
+ },
28
+ };
29
+ }
30
+ //# sourceMappingURL=app-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-catalog.js","sourceRoot":"","sources":["../../src/client/app-catalog.ts"],"names":[],"mappings":";;AAkDA,gDAuBC;AAzED,uCAAgD;AAiDhD,6FAA6F;AAC7F,SAAgB,kBAAkB,CAAC,OAAkB;IACnD,OAAO;QACL,6EAA6E;QAC7E,OAAO;YACL,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,sCAAsC;QACtC,SAAS;YACP,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,yGAAyG;QACzG,OAAO,CAAC,QAAgB,EAAE,OAAuB,EAAE,EAAE,cAAuB;YAC1E,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,IAAA,aAAG,EAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC7G,CAAC;QACD,uFAAuF;QACvF,MAAM,CAAC,EAAU,EAAE,IAA2E;YAC5F,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,6BAA6B,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,6CAA6C;QAC7C,SAAS,CAAC,EAAU;YAClB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,6BAA6B,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACrF,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -70,4 +70,14 @@ export interface UpdateAttackProtectionBody {
70
70
  export declare function attackProtectionResource(request: RequestFn): {
71
71
  get(): Promise<AttackProtection>;
72
72
  update(body: UpdateAttackProtectionBody): Promise<AttackProtection>;
73
+ /** Store the Play Integrity response-decryption key (base64 AES-256) for app attestation. Write-only. */
74
+ /** Store the Play Integrity decryption key (default) or, with kind 'devicecheck', the Apple DeviceCheck .p8 key. Write-only. */
75
+ setAppAttestationSecret(secret: string, kind?: "play_integrity" | "devicecheck"): Promise<{
76
+ object: "app_attestation_secret";
77
+ set: true;
78
+ }>;
79
+ removeAppAttestationSecret(kind?: "play_integrity" | "devicecheck"): Promise<{
80
+ object: "app_attestation_secret";
81
+ deleted: true;
82
+ }>;
73
83
  };
@@ -9,6 +9,14 @@ function attackProtectionResource(request) {
9
9
  update(body) {
10
10
  return request({ method: 'PATCH', path: '/v1/attack_protection', body });
11
11
  },
12
+ /** Store the Play Integrity response-decryption key (base64 AES-256) for app attestation. Write-only. */
13
+ /** Store the Play Integrity decryption key (default) or, with kind 'devicecheck', the Apple DeviceCheck .p8 key. Write-only. */
14
+ setAppAttestationSecret(secret, kind = 'play_integrity') {
15
+ return request({ method: 'PUT', path: '/v1/attack_protection/app_attestation_secret', body: { secret, kind } });
16
+ },
17
+ removeAppAttestationSecret(kind = 'play_integrity') {
18
+ return request({ method: 'DELETE', path: '/v1/attack_protection/app_attestation_secret', query: { kind } });
19
+ },
12
20
  };
13
21
  }
14
22
  //# sourceMappingURL=attack-protection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attack-protection.js","sourceRoot":"","sources":["../../src/client/attack-protection.ts"],"names":[],"mappings":";;AA8DA,4DASC;AATD,SAAgB,wBAAwB,CAAC,OAAkB;IACzD,OAAO;QACL,GAAG;YACD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,CAAC,IAAgC;YACrC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"attack-protection.js","sourceRoot":"","sources":["../../src/client/attack-protection.ts"],"names":[],"mappings":";;AA8DA,4DAiBC;AAjBD,SAAgB,wBAAwB,CAAC,OAAkB;IACzD,OAAO;QACL,GAAG;YACD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,CAAC,IAAgC;YACrC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,yGAAyG;QACzG,gIAAgI;QAChI,uBAAuB,CAAC,MAAc,EAAE,OAAyC,gBAAgB;YAC/F,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,8CAA8C,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAClH,CAAC;QACD,0BAA0B,CAAC,OAAyC,gBAAgB;YAClF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,8CAA8C,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9G,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -25,6 +25,8 @@ export interface CustomAuditEvent {
25
25
  /** When it happened in your system (epoch ms). */
26
26
  occurred_at: number;
27
27
  metadata: unknown;
28
+ /** The registered schema version this event satisfied; null when its action has no schema. */
29
+ schema_version?: number | null;
28
30
  /** When Atlas received it (epoch ms). */
29
31
  created_at: number;
30
32
  }
@@ -45,6 +47,8 @@ export interface CreateCustomAuditEventBody {
45
47
  occurred_at?: number;
46
48
  /** Non-secret structured context. */
47
49
  metadata?: Record<string, unknown>;
50
+ /** Pin to a registered schema version; default the latest active one for the action. */
51
+ schema_version?: number;
48
52
  }
49
53
  /** Shared filters of the list and export endpoints. */
50
54
  export interface CustomAuditEventFilters {
@@ -101,3 +105,70 @@ export declare function auditEventsResource(request: RequestFn): {
101
105
  deleted: number;
102
106
  }>;
103
107
  };
108
+ /** A registered audit event schema: what an action's events must look like. */
109
+ export interface AuditEventSchema {
110
+ object: 'audit_event_schema';
111
+ id: string;
112
+ action: string;
113
+ version: number;
114
+ description: string | null;
115
+ /** Allowed `target.type` values (empty = any). */
116
+ target_types: string[];
117
+ /** Allowed `actor.type` values (empty = any). */
118
+ actor_types: string[];
119
+ /** A JSON Schema the event's metadata must satisfy. */
120
+ metadata_schema: Record<string, unknown>;
121
+ status: 'active' | 'deprecated';
122
+ created_at: number;
123
+ }
124
+ export interface RegisterAuditEventSchemaBody {
125
+ action: string;
126
+ /** Defaults to the next version for the action; a version is immutable. */
127
+ version?: number;
128
+ description?: string;
129
+ target_types?: string[];
130
+ actor_types?: string[];
131
+ metadata_schema?: Record<string, unknown>;
132
+ }
133
+ export declare function auditEventSchemasResource(request: RequestFn): {
134
+ list(): Promise<{
135
+ object: "list";
136
+ data: AuditEventSchema[];
137
+ has_more: false;
138
+ }>;
139
+ get(id: string): Promise<AuditEventSchema>;
140
+ /** Events with this action are validated against it from now on. Change a schema by registering a new version. */
141
+ register(body: RegisterAuditEventSchemaBody): Promise<AuditEventSchema>;
142
+ update(id: string, body: {
143
+ description?: string | null;
144
+ status?: "active" | "deprecated";
145
+ }): Promise<AuditEventSchema>;
146
+ delete(id: string): Promise<{
147
+ object: "audit_event_schema";
148
+ id: string;
149
+ deleted: true;
150
+ }>;
151
+ /** Blank fields of one event (`actor_id`, `target_id`, `target_name`, `metadata.<path>`); logged, never deleted. */
152
+ redact(eventId: string, body: {
153
+ fields: string[];
154
+ reason: string;
155
+ }): Promise<{
156
+ object: "audit_event_redaction";
157
+ event_id: string;
158
+ redacted: string[];
159
+ unchanged: string[];
160
+ reason: string;
161
+ }>;
162
+ redactions(eventId: string): Promise<{
163
+ object: "list";
164
+ data: Array<{
165
+ id: string;
166
+ event_id: string;
167
+ fields: string[];
168
+ reason: string;
169
+ redacted_by: string | null;
170
+ created_at: number;
171
+ }>;
172
+ has_more: false;
173
+ }>;
174
+ };
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.auditEventsResource = auditEventsResource;
4
+ exports.auditEventSchemasResource = auditEventSchemasResource;
4
5
  function auditEventsResource(request) {
5
6
  return {
6
7
  create(body, idempotencyKey) {
@@ -40,4 +41,31 @@ function auditEventsResource(request) {
40
41
  },
41
42
  };
42
43
  }
44
+ function auditEventSchemasResource(request) {
45
+ return {
46
+ list() {
47
+ return request({ method: 'GET', path: '/v1/audit_event_schemas' });
48
+ },
49
+ get(id) {
50
+ return request({ method: 'GET', path: `/v1/audit_event_schemas/${encodeURIComponent(id)}` });
51
+ },
52
+ /** Events with this action are validated against it from now on. Change a schema by registering a new version. */
53
+ register(body) {
54
+ return request({ method: 'POST', path: '/v1/audit_event_schemas', body });
55
+ },
56
+ update(id, body) {
57
+ return request({ method: 'PATCH', path: `/v1/audit_event_schemas/${encodeURIComponent(id)}`, body });
58
+ },
59
+ delete(id) {
60
+ return request({ method: 'DELETE', path: `/v1/audit_event_schemas/${encodeURIComponent(id)}` });
61
+ },
62
+ /** Blank fields of one event (`actor_id`, `target_id`, `target_name`, `metadata.<path>`); logged, never deleted. */
63
+ redact(eventId, body) {
64
+ return request({ method: 'POST', path: `/v1/audit_events/${encodeURIComponent(eventId)}/redact`, body });
65
+ },
66
+ redactions(eventId) {
67
+ return request({ method: 'GET', path: `/v1/audit_events/${encodeURIComponent(eventId)}/redactions` });
68
+ },
69
+ };
70
+ }
43
71
  //# sourceMappingURL=audit-events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit-events.js","sourceRoot":"","sources":["../../src/client/audit-events.ts"],"names":[],"mappings":";;AAoEA,kDA2CC;AA3CD,SAAgB,mBAAmB,CAAC,OAAkB;IACpD,OAAO;QACL,MAAM,CAAC,IAAgC,EAAE,cAAuB;YAC9D,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,kFAAkF;QAClF,WAAW,CACT,MAAoC,EACpC,cAAuB;YAEvB,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,wBAAwB;gBAC9B,IAAI,EAAE,EAAE,MAAM,EAAE;gBAChB,cAAc;aACf,CAAC,CAAC;QACL,CAAC;QACD,sCAAsC;QACtC,IAAI,CAAC,SAAsC,EAAE;YAC3C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;QACD;;;WAGG;QACH,MAAM,CAAC,SAAwC,EAAE;YAC/C,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,yBAAyB;gBAC/B,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE;gBACpB,GAAG,EAAE,IAAI;aACV,CAAC,CAAC;QACL,CAAC;QACD;;;WAGG;QACH,SAAS,CACP,SAAwD,EAAE;YAE1D,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"audit-events.js","sourceRoot":"","sources":["../../src/client/audit-events.ts"],"names":[],"mappings":";;AAwEA,kDA2CC;AA6BD,8DA0BC;AAlGD,SAAgB,mBAAmB,CAAC,OAAkB;IACpD,OAAO;QACL,MAAM,CAAC,IAAgC,EAAE,cAAuB;YAC9D,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,kFAAkF;QAClF,WAAW,CACT,MAAoC,EACpC,cAAuB;YAEvB,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,wBAAwB;gBAC9B,IAAI,EAAE,EAAE,MAAM,EAAE;gBAChB,cAAc;aACf,CAAC,CAAC;QACL,CAAC;QACD,sCAAsC;QACtC,IAAI,CAAC,SAAsC,EAAE;YAC3C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;QACD;;;WAGG;QACH,MAAM,CAAC,SAAwC,EAAE;YAC/C,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,yBAAyB;gBAC/B,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE;gBACpB,GAAG,EAAE,IAAI;aACV,CAAC,CAAC;QACL,CAAC;QACD;;;WAGG;QACH,SAAS,CACP,SAAwD,EAAE;YAE1D,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC;KACF,CAAC;AACJ,CAAC;AA6BD,SAAgB,yBAAyB,CAAC,OAAkB;IAC1D,OAAO;QACL,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,GAAG,CAAC,EAAU;YACZ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,2BAA2B,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,kHAAkH;QAClH,QAAQ,CAAC,IAAkC;YACzC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,CAAC,EAAU,EAAE,IAAuE;YACxF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,2BAA2B,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,MAAM,CAAC,EAAU;YACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAClG,CAAC;QACD,oHAAoH;QACpH,MAAM,CAAC,OAAe,EAAE,IAA0C;YAChE,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3G,CAAC;QACD,UAAU,CAAC,OAAe;YACxB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QACxG,CAAC;KACF,CAAC;AACJ,CAAC"}