@atlasauth/backend 0.14.1 → 0.16.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 (80) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/access-control.d.ts +53 -0
  3. package/dist/access-control.js +46 -0
  4. package/dist/access-control.js.map +1 -0
  5. package/dist/algs.d.ts +7 -0
  6. package/dist/algs.js +11 -0
  7. package/dist/algs.js.map +1 -0
  8. package/dist/botid.d.ts +70 -0
  9. package/dist/botid.js +88 -0
  10. package/dist/botid.js.map +1 -0
  11. package/dist/client/action-gallery.d.ts +215 -0
  12. package/dist/client/action-gallery.js +66 -0
  13. package/dist/client/action-gallery.js.map +1 -0
  14. package/dist/client/actions.d.ts +21 -0
  15. package/dist/client/actions.js.map +1 -1
  16. package/dist/client/api-keys.d.ts +49 -4
  17. package/dist/client/api-keys.js +6 -2
  18. package/dist/client/api-keys.js.map +1 -1
  19. package/dist/client/app-roles.d.ts +76 -0
  20. package/dist/client/app-roles.js +39 -0
  21. package/dist/client/app-roles.js.map +1 -0
  22. package/dist/client/attack-protection.d.ts +33 -1
  23. package/dist/client/attack-protection.js.map +1 -1
  24. package/dist/client/billing-plans.d.ts +93 -0
  25. package/dist/client/billing-plans.js +31 -0
  26. package/dist/client/billing-plans.js.map +1 -1
  27. package/dist/client/custom-oauth-providers.d.ts +243 -0
  28. package/dist/client/custom-oauth-providers.js +60 -0
  29. package/dist/client/custom-oauth-providers.js.map +1 -0
  30. package/dist/client/email-templates.d.ts +1 -1
  31. package/dist/client/email-templates.js.map +1 -1
  32. package/dist/client/index.d.ts +157 -3
  33. package/dist/client/index.js +11 -0
  34. package/dist/client/index.js.map +1 -1
  35. package/dist/client/instance-security.d.ts +104 -0
  36. package/dist/client/instance-security.js +28 -0
  37. package/dist/client/instance-security.js.map +1 -1
  38. package/dist/client/notifications.d.ts +1 -1
  39. package/dist/client/notifications.js.map +1 -1
  40. package/dist/client/oauth-clients.d.ts +84 -2
  41. package/dist/client/oauth-clients.js +13 -0
  42. package/dist/client/oauth-clients.js.map +1 -1
  43. package/dist/client/referrals.d.ts +1 -1
  44. package/dist/client/resource-servers.d.ts +34 -5
  45. package/dist/client/resource-servers.js.map +1 -1
  46. package/dist/client/risk-based-mfa.d.ts +3 -0
  47. package/dist/client/risk-based-mfa.js.map +1 -1
  48. package/dist/client/scim-tokens.d.ts +18 -0
  49. package/dist/client/scim-tokens.js +4 -0
  50. package/dist/client/scim-tokens.js.map +1 -1
  51. package/dist/client/sessions.d.ts +16 -0
  52. package/dist/client/sessions.js +15 -0
  53. package/dist/client/sessions.js.map +1 -1
  54. package/dist/client/sso-connections.d.ts +105 -0
  55. package/dist/client/sso-connections.js +29 -0
  56. package/dist/client/sso-connections.js.map +1 -1
  57. package/dist/client/users.d.ts +40 -4
  58. package/dist/client/users.js +8 -3
  59. package/dist/client/users.js.map +1 -1
  60. package/dist/index.d.ts +4 -0
  61. package/dist/index.js +18 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/logout-token.d.ts +1 -1
  64. package/dist/logout-token.js +3 -2
  65. package/dist/logout-token.js.map +1 -1
  66. package/dist/oauth-resource.d.ts +225 -0
  67. package/dist/oauth-resource.js +469 -0
  68. package/dist/oauth-resource.js.map +1 -0
  69. package/dist/oidc.d.ts +1 -1
  70. package/dist/oidc.js +5 -3
  71. package/dist/oidc.js.map +1 -1
  72. package/dist/referral-test-calls.d.ts +7 -7
  73. package/dist/referral-test-calls.js +2 -2
  74. package/dist/testing.d.ts +6 -4
  75. package/dist/testing.js +7 -6
  76. package/dist/testing.js.map +1 -1
  77. package/dist/verify.d.ts +11 -0
  78. package/dist/verify.js +15 -1
  79. package/dist/verify.js.map +1 -1
  80. package/package.json +3 -3
@@ -0,0 +1,243 @@
1
+ import { type RequestFn } from './request';
2
+ import type { ListPage } from './types';
3
+ /**
4
+ * Custom (generic) OAuth 2.0 / OpenID Connect login providers — your own
5
+ * upstream identity provider, with Atlas as the relying party. Configure the
6
+ * endpoints (or just an OIDC issuer), the token-endpoint client authentication
7
+ * (incl. private_key_jwt with an Atlas-held key), a declarative profile
8
+ * mapping, upstream logout and third-party initiated login. The provider then
9
+ * signs users in like any built-in one: `provider: <provider_key>`.
10
+ */
11
+ /** A claim path, a `{{template}}`, or a rule. */
12
+ export type ProfileMappingExpr = string | {
13
+ /** A path, or paths tried in order (the first non-empty wins). */
14
+ from?: string | string[];
15
+ template?: string;
16
+ /** A constant. */
17
+ value?: string | number | boolean | null;
18
+ transforms?: Array<'lowercase' | 'uppercase' | 'trim' | 'first' | 'last' | 'compact' | 'unique' | 'to_string' | 'to_number' | 'to_boolean' | {
19
+ split: string;
20
+ } | {
21
+ join: string;
22
+ } | {
23
+ index: number;
24
+ } | {
25
+ replace: {
26
+ find: string;
27
+ with: string;
28
+ };
29
+ } | {
30
+ prefix: string;
31
+ } | {
32
+ suffix: string;
33
+ } | {
34
+ default: string | number | boolean | null;
35
+ }>;
36
+ };
37
+ export interface ProfileMapping {
38
+ fields?: Partial<Record<'id' | 'email' | 'email_verified' | 'first_name' | 'last_name' | 'full_name' | 'username' | 'image_url' | 'phone_number' | 'external_id', ProfileMappingExpr>>;
39
+ public_metadata?: Record<string, ProfileMappingExpr>;
40
+ private_metadata?: Record<string, ProfileMappingExpr>;
41
+ /** Re-apply names, image and metadata on every sign-in (default: at account creation). */
42
+ update_on_sign_in?: boolean;
43
+ }
44
+ export type TokenEndpointAuthMethod = 'client_secret_basic' | 'client_secret_post' | 'client_secret_jwt' | 'private_key_jwt' | 'none';
45
+ export interface UpstreamLogoutSettings {
46
+ /** On Atlas sign-out, hand back the provider end-session URL to send the browser to. */
47
+ rp_initiated?: boolean;
48
+ post_logout_redirect_url?: string | null;
49
+ /** Accept OIDC Back-Channel Logout tokens and end the matching Atlas sessions. */
50
+ backchannel?: boolean;
51
+ /** Accept OIDC Front-Channel Logout (the provider frames frontchannel_logout_uri). */
52
+ frontchannel?: boolean;
53
+ /** Front-channel: require iss + sid (default true). */
54
+ frontchannel_session_required?: boolean;
55
+ end_session_endpoint?: string | null;
56
+ }
57
+ export interface IdpInitiatedLoginSettings {
58
+ enabled?: boolean;
59
+ /** Exact URLs or bare origins a third-party initiated login may land on. */
60
+ allowed_targets?: string[];
61
+ default_target?: string | null;
62
+ }
63
+ export interface UpstreamSigningKey {
64
+ object: 'upstream_signing_key';
65
+ kid: string;
66
+ alg: 'RS256' | 'PS256' | 'ES256';
67
+ status: 'active' | 'retiring' | 'retired';
68
+ public_jwk: Record<string, unknown>;
69
+ created_at: number;
70
+ retired_at: number | null;
71
+ }
72
+ export interface UpstreamUrls {
73
+ /** Register at the provider as the client JWKS URL (private_key_jwt). */
74
+ client_jwks_uri: string;
75
+ backchannel_logout_uri: string;
76
+ frontchannel_logout_uri: string;
77
+ post_logout_redirect_uri: string;
78
+ initiate_login_uri: string;
79
+ }
80
+ export interface CustomOAuthProviderSettings {
81
+ display_name?: string;
82
+ icon_url?: string | null;
83
+ protocol?: 'oidc' | 'oauth2';
84
+ issuer?: string | null;
85
+ discovery_url?: string | null;
86
+ authorization_endpoint?: string | null;
87
+ token_endpoint?: string | null;
88
+ userinfo_endpoint?: string | null;
89
+ jwks_uri?: string | null;
90
+ end_session_endpoint?: string | null;
91
+ scopes?: string[];
92
+ scope_separator?: ' ' | ',' | '+';
93
+ pkce?: boolean;
94
+ authorization_params?: Record<string, string> | null;
95
+ token_params?: Record<string, string> | null;
96
+ userinfo_auth?: 'header' | 'query';
97
+ token_endpoint_auth_method?: TokenEndpointAuthMethod;
98
+ client_assertion_audience?: string | null;
99
+ profile_source?: 'merged' | 'userinfo' | 'id_token';
100
+ profile_mapping?: ProfileMapping | null;
101
+ logout?: UpstreamLogoutSettings | null;
102
+ idp_initiated_login?: IdpInitiatedLoginSettings | null;
103
+ client_id?: string;
104
+ /** Write-only; never returned. */
105
+ client_secret?: string;
106
+ enabled?: boolean;
107
+ allow_sign_in?: boolean;
108
+ allow_sign_up?: boolean;
109
+ }
110
+ export interface CreateCustomOAuthProviderBody extends CustomOAuthProviderSettings {
111
+ provider_key: string;
112
+ display_name: string;
113
+ }
114
+ export interface CustomOAuthProvider extends UpstreamUrls {
115
+ object: 'custom_oauth_provider';
116
+ id: string;
117
+ provider_key: string;
118
+ display_name: string;
119
+ icon_url: string | null;
120
+ protocol: 'oidc' | 'oauth2';
121
+ issuer: string | null;
122
+ discovery_url: string | null;
123
+ authorization_endpoint: string | null;
124
+ token_endpoint: string | null;
125
+ userinfo_endpoint: string | null;
126
+ jwks_uri: string | null;
127
+ end_session_endpoint: string | null;
128
+ scopes: string[];
129
+ scope_separator: ' ' | ',' | '+';
130
+ pkce: boolean;
131
+ authorization_params: Record<string, string>;
132
+ token_params: Record<string, string>;
133
+ userinfo_auth: 'header' | 'query';
134
+ token_endpoint_auth_method: TokenEndpointAuthMethod;
135
+ client_assertion_audience: string | null;
136
+ profile_source: 'merged' | 'userinfo' | 'id_token';
137
+ profile_mapping: Required<ProfileMapping> | null;
138
+ logout: Required<UpstreamLogoutSettings>;
139
+ idp_initiated_login: Required<IdpInitiatedLoginSettings>;
140
+ client_id: string | null;
141
+ has_secret: boolean;
142
+ enabled: boolean;
143
+ allow_sign_in: boolean;
144
+ allow_sign_up: boolean;
145
+ /** Register at the provider as the redirect / callback URI. */
146
+ redirect_uri: string;
147
+ signing_keys: UpstreamSigningKey[];
148
+ created_at: number;
149
+ updated_at: number;
150
+ }
151
+ export interface ProfileMappingPreviewBody {
152
+ profile_mapping?: ProfileMapping;
153
+ userinfo?: Record<string, unknown>;
154
+ id_token_claims?: Record<string, unknown>;
155
+ /** A sample id_token — decoded, not verified. */
156
+ id_token?: string;
157
+ }
158
+ export interface ProfileMappingPreview {
159
+ object: 'profile_mapping_preview';
160
+ profile: {
161
+ id: string | null;
162
+ email: string | null;
163
+ email_verified: boolean;
164
+ first_name: string | null;
165
+ last_name: string | null;
166
+ username: string | null;
167
+ image_url: string | null;
168
+ phone_number: string | null;
169
+ external_id: string | null;
170
+ public_metadata: Record<string, unknown>;
171
+ private_metadata: Record<string, unknown>;
172
+ };
173
+ trace: Record<string, {
174
+ value: unknown;
175
+ source: string | null;
176
+ }>;
177
+ warnings: string[];
178
+ }
179
+ export interface OidcDiscoveryResult {
180
+ object: 'oidc_discovery';
181
+ issuer: string;
182
+ authorization_endpoint: string;
183
+ token_endpoint: string;
184
+ userinfo_endpoint: string | null;
185
+ jwks_uri: string;
186
+ end_session_endpoint: string | null;
187
+ scopes_supported: string[];
188
+ claims_supported: string[];
189
+ token_endpoint_auth_methods_supported: string[];
190
+ token_endpoint_auth_signing_alg_values_supported: string[];
191
+ code_challenge_methods_supported: string[];
192
+ backchannel_logout_supported: boolean;
193
+ backchannel_logout_session_supported: boolean;
194
+ }
195
+ /** The signing-key operations shared by custom providers and OIDC connections. */
196
+ export declare function upstreamSigningKeys(request: RequestFn, base: string): {
197
+ list(): Promise<ListPage<UpstreamSigningKey>>;
198
+ /** Generate a new active key; the previous one turns `retiring` (still published). */
199
+ rotate(body?: {
200
+ alg?: "RS256" | "PS256" | "ES256";
201
+ }, idempotencyKey?: string): Promise<UpstreamSigningKey>;
202
+ /** Retire a non-active key (it leaves the JWKS). */
203
+ retire(kid: string): Promise<{
204
+ object: "upstream_signing_key";
205
+ kid: string;
206
+ status: "retired";
207
+ }>;
208
+ };
209
+ export declare function customOAuthProvidersResource(request: RequestFn): {
210
+ list(): Promise<ListPage<CustomOAuthProvider>>;
211
+ get(id: string): Promise<CustomOAuthProvider>;
212
+ create(body: CreateCustomOAuthProviderBody, idempotencyKey?: string): Promise<CustomOAuthProvider>;
213
+ update(id: string, body: CustomOAuthProviderSettings, idempotencyKey?: string): Promise<CustomOAuthProvider>;
214
+ delete(id: string): Promise<{
215
+ object: "custom_oauth_provider";
216
+ id: string;
217
+ provider_key: string;
218
+ deleted: true;
219
+ }>;
220
+ /** Fetch + validate an issuer's OpenID configuration (for autofill). */
221
+ discover(body: {
222
+ issuer: string;
223
+ discovery_url?: string;
224
+ }): Promise<OidcDiscoveryResult>;
225
+ /**
226
+ * Run a mapping against a pasted sample. With `id`, the provider's stored
227
+ * mapping is used unless the body carries one.
228
+ */
229
+ previewProfileMapping(body: ProfileMappingPreviewBody, id?: string): Promise<ProfileMappingPreview>;
230
+ signingKeys(id: string): {
231
+ list(): Promise<ListPage<UpstreamSigningKey>>;
232
+ /** Generate a new active key; the previous one turns `retiring` (still published). */
233
+ rotate(body?: {
234
+ alg?: "RS256" | "PS256" | "ES256";
235
+ }, idempotencyKey?: string): Promise<UpstreamSigningKey>;
236
+ /** Retire a non-active key (it leaves the JWKS). */
237
+ retire(kid: string): Promise<{
238
+ object: "upstream_signing_key";
239
+ kid: string;
240
+ status: "retired";
241
+ }>;
242
+ };
243
+ };
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.upstreamSigningKeys = upstreamSigningKeys;
4
+ exports.customOAuthProvidersResource = customOAuthProvidersResource;
5
+ const request_1 = require("./request");
6
+ /** The signing-key operations shared by custom providers and OIDC connections. */
7
+ function upstreamSigningKeys(request, base) {
8
+ return {
9
+ list() {
10
+ return request({ method: 'GET', path: `${base}/signing_keys` });
11
+ },
12
+ /** Generate a new active key; the previous one turns `retiring` (still published). */
13
+ rotate(body = {}, idempotencyKey) {
14
+ return request({ method: 'POST', path: `${base}/signing_keys`, body, idempotencyKey });
15
+ },
16
+ /** Retire a non-active key (it leaves the JWKS). */
17
+ retire(kid) {
18
+ return request({ method: 'POST', path: `${base}/signing_keys/${(0, request_1.enc)(kid)}/retire` });
19
+ },
20
+ };
21
+ }
22
+ function customOAuthProvidersResource(request) {
23
+ const base = (id) => `/v1/custom_oauth_providers/${(0, request_1.enc)(id)}`;
24
+ return {
25
+ list() {
26
+ return request({ method: 'GET', path: '/v1/custom_oauth_providers' });
27
+ },
28
+ get(id) {
29
+ return request({ method: 'GET', path: base(id) });
30
+ },
31
+ create(body, idempotencyKey) {
32
+ return request({ method: 'POST', path: '/v1/custom_oauth_providers', body, idempotencyKey });
33
+ },
34
+ update(id, body, idempotencyKey) {
35
+ return request({ method: 'PATCH', path: base(id), body, idempotencyKey });
36
+ },
37
+ delete(id) {
38
+ return request({ method: 'DELETE', path: base(id) });
39
+ },
40
+ /** Fetch + validate an issuer's OpenID configuration (for autofill). */
41
+ discover(body) {
42
+ return request({ method: 'POST', path: '/v1/custom_oauth_providers/discover', body });
43
+ },
44
+ /**
45
+ * Run a mapping against a pasted sample. With `id`, the provider's stored
46
+ * mapping is used unless the body carries one.
47
+ */
48
+ previewProfileMapping(body, id) {
49
+ return request({
50
+ method: 'POST',
51
+ path: id ? `${base(id)}/profile_mapping/preview` : '/v1/custom_oauth_providers/profile_mapping/preview',
52
+ body,
53
+ });
54
+ },
55
+ signingKeys(id) {
56
+ return upstreamSigningKeys(request, base(id));
57
+ },
58
+ };
59
+ }
60
+ //# sourceMappingURL=custom-oauth-providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-oauth-providers.js","sourceRoot":"","sources":["../../src/client/custom-oauth-providers.ts"],"names":[],"mappings":";;AAqOA,kDAcC;AAED,oEAqCC;AA1RD,uCAAgD;AAoOhD,kFAAkF;AAClF,SAAgB,mBAAmB,CAAC,OAAkB,EAAE,IAAY;IAClE,OAAO;QACL,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,sFAAsF;QACtF,MAAM,CAAC,OAA8C,EAAE,EAAE,cAAuB;YAC9E,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,oDAAoD;QACpD,MAAM,CAAC,GAAW;YAChB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,iBAAiB,IAAA,aAAG,EAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QACtF,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAgB,4BAA4B,CAAC,OAAkB;IAC7D,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,8BAA8B,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,CAAC;IACrE,OAAO;QACL,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,GAAG,CAAC,EAAU;YACZ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,CAAC,IAAmC,EAAE,cAAuB;YACjE,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,MAAM,CAAC,EAAU,EAAE,IAAiC,EAAE,cAAuB;YAC3E,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,CAAC,EAAU;YACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,wEAAwE;QACxE,QAAQ,CAAC,IAAgD;YACvD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qCAAqC,EAAE,IAAI,EAAE,CAAC,CAAC;QACxF,CAAC;QACD;;;WAGG;QACH,qBAAqB,CAAC,IAA+B,EAAE,EAAW;YAChE,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,oDAAoD;gBACvG,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QACD,WAAW,CAAC,EAAU;YACpB,OAAO,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { type RequestFn } from './request';
2
2
  import type { ListPage } from './types';
3
3
  /** The transactional email a template drives. */
4
- export type EmailTemplateName = 'verification_code' | 'magic_link' | 'password_reset' | 'password_changed' | 'account_exists_notice' | 'organization_invitation' | 'new_device_sign_in' | 'session_revoked_token_reuse' | 'account_locked' | 'account_secured' | 'team_member_added' | 'team_role_changed';
4
+ export type EmailTemplateName = 'verification_code' | 'magic_link' | 'password_reset' | 'password_changed' | 'account_exists_notice' | 'organization_invitation' | 'new_device_sign_in' | 'session_revoked_token_reuse' | 'account_locked' | 'account_secured' | 'team_member_added' | 'team_role_changed' | 'email_changed' | 'verification_link' | 'password_reset_link' | 'account_reactivated';
5
5
  /** The customizable body of a template: a subject line and a text body. */
6
6
  export interface EmailTemplateBody {
7
7
  subject?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"email-templates.js","sourceRoot":"","sources":["../../src/client/email-templates.ts"],"names":[],"mappings":";;AAyDA,wDAkBC;AA3ED,uCAAgD;AAyDhD,SAAgB,sBAAsB,CAAC,OAAkB;IACvD,OAAO;QACL,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,2EAA2E;QAC3E,OAAO,CAAC,IAAY,EAAE,OAA0B,EAAE;YAChD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,2DAA2D;QAC3D,MAAM,CAAC,IAAY,EAAE,IAAuB;YAC1C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,8BAA8B;QAC9B,MAAM,CAAC,IAAY;YACjB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"email-templates.js","sourceRoot":"","sources":["../../src/client/email-templates.ts"],"names":[],"mappings":";;AA6DA,wDAkBC;AA/ED,uCAAgD;AA6DhD,SAAgB,sBAAsB,CAAC,OAAkB;IACvD,OAAO;QACL,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,2EAA2E;QAC3E,OAAO,CAAC,IAAY,EAAE,OAA0B,EAAE;YAChD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,2DAA2D;QAC3D,MAAM,CAAC,IAAY,EAAE,IAAuB;YAC1C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,8BAA8B;QAC9B,MAAM,CAAC,IAAY;YACjB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -12,13 +12,20 @@ import type { RequestFn } from './request';
12
12
  export declare function createAtlasClient(config: AtlasClientConfig): AtlasClient;
13
13
  declare function buildNamespaces(request: RequestFn): {
14
14
  users: {
15
- list(params?: import("./users").ListUsersParams): Promise<import("./types").CursorPage<import("./users").User>>;
15
+ list(params?: import("./users").ListUsersParams): Promise<import("./types").CursorPage<import("./users").User> & {
16
+ total_count?: number;
17
+ }>;
16
18
  get(id: string): Promise<import("./users").User>;
17
19
  create(body: import("./users").CreateUserBody, idempotencyKey?: string): Promise<import("./users").User>;
18
20
  update(id: string, body: import("./users").UpdateUserBody): Promise<import("./users").User>;
19
21
  setExternalId(id: string, externalId: string | null): Promise<import("./users").User>;
20
22
  replaceMetadata(id: string, body: import("./users").ReplaceUserMetadataBody): Promise<import("./users").User>;
21
- ban(id: string): Promise<import("./users").User>;
23
+ ban(id: string, body?: {
24
+ reason?: string;
25
+ note?: string;
26
+ expires_in_seconds?: number;
27
+ expires_at?: number;
28
+ }): Promise<import("./users").User>;
22
29
  unban(id: string): Promise<import("./users").User>;
23
30
  lock(id: string, body?: {
24
31
  duration_in_seconds?: number;
@@ -173,6 +180,8 @@ declare function buildNamespaces(request: RequestFn): {
173
180
  id: string;
174
181
  status: "revoked";
175
182
  }>;
183
+ setCustomData(id: string, customData: Record<string, unknown> | null): Promise<import("./sessions").Session>;
184
+ updateCustomData(id: string, patch: Record<string, unknown>): Promise<import("./sessions").Session>;
176
185
  touch(id: string): Promise<import("./sessions").TouchedSession>;
177
186
  getToken(id: string, template: string): Promise<import("./sessions").SessionTemplateToken>;
178
187
  };
@@ -354,6 +363,14 @@ declare function buildNamespaces(request: RequestFn): {
354
363
  }>;
355
364
  listBackchannelDeliveries(id: string, query?: import("./oauth-clients").BackchannelDeliveriesQuery): Promise<import("./oauth-clients").BackchannelLogoutDeliveryPage>;
356
365
  testBackchannelLogout(id: string): Promise<import("./oauth-clients").BackchannelLogoutTest>;
366
+ initialAccessTokens: {
367
+ list(): Promise<import("./types").ListPage<import("./oauth-clients").OAuthInitialAccessToken>>;
368
+ create(body?: import("./oauth-clients").CreateInitialAccessTokenBody): Promise<import("./oauth-clients").OAuthInitialAccessToken & {
369
+ token: string;
370
+ note: string;
371
+ }>;
372
+ revoke(id: string): Promise<import("./oauth-clients").OAuthInitialAccessToken>;
373
+ };
357
374
  grants: {
358
375
  list(clientId: string): Promise<import("./types").ListPage<import("./oauth-clients").ClientGrant>>;
359
376
  create(clientId: string, body: {
@@ -388,11 +405,28 @@ declare function buildNamespaces(request: RequestFn): {
388
405
  id: string;
389
406
  deleted: true;
390
407
  }>;
408
+ previewProfileMapping(id: string, body: import("./custom-oauth-providers").ProfileMappingPreviewBody): Promise<import("./custom-oauth-providers").ProfileMappingPreview>;
409
+ signingKeys(id: string): {
410
+ list(): Promise<import("./types").ListPage<import("./custom-oauth-providers").UpstreamSigningKey>>;
411
+ rotate(body?: {
412
+ alg?: "RS256" | "PS256" | "ES256";
413
+ }, idempotencyKey?: string): Promise<import("./custom-oauth-providers").UpstreamSigningKey>;
414
+ retire(kid: string): Promise<{
415
+ object: "upstream_signing_key";
416
+ kid: string;
417
+ status: "retired";
418
+ }>;
419
+ };
391
420
  samlMetadata(id: string): Promise<import("./sso-connections").SamlMetadata>;
421
+ getSamlEncryptionKey(id: string): Promise<import("./sso-connections").SamlEncryptionKey>;
422
+ createSamlEncryptionKey(id: string, idempotencyKey?: string): Promise<import("./sso-connections").SamlEncryptionKey>;
423
+ retirePreviousSamlEncryptionKey(id: string): Promise<import("./sso-connections").SamlEncryptionKey>;
424
+ deleteSamlEncryptionKey(id: string): Promise<import("./sso-connections").SamlEncryptionKey>;
392
425
  };
393
426
  scimTokens: {
394
427
  list(): Promise<import("./types").ListPage<import("./scim-tokens").ScimToken>>;
395
428
  create(body: import("./scim-tokens").CreateScimTokenBody, idempotencyKey?: string): Promise<import("./scim-tokens").ScimTokenWithSecret>;
429
+ update(id: string, body: import("./scim-tokens").UpdateScimTokenBody): Promise<import("./scim-tokens").ScimToken>;
396
430
  revoke(id: string): Promise<{
397
431
  object: "scim_token";
398
432
  id: string;
@@ -530,7 +564,9 @@ declare function buildNamespaces(request: RequestFn): {
530
564
  subject_id?: string;
531
565
  }): Promise<import("./types").ListPage<import("./api-keys").ApiKey>>;
532
566
  create(body: import("./api-keys").CreateApiKeyBody, idempotencyKey?: string): Promise<import("./api-keys").ApiKeyWithSecret>;
533
- verify(secret: string): Promise<import("./api-keys").ApiKeyVerification>;
567
+ verify(secret: string, options?: {
568
+ required_scopes?: string[];
569
+ }): Promise<import("./api-keys").ApiKeyVerification>;
534
570
  get(id: string): Promise<import("./api-keys").ApiKey>;
535
571
  update(id: string, body: import("./api-keys").UpdateApiKeyBody): Promise<import("./api-keys").ApiKey>;
536
572
  delete(id: string): Promise<{
@@ -543,6 +579,28 @@ declare function buildNamespaces(request: RequestFn): {
543
579
  mintToken(body: import("./api-keys").MintApiKeyTokenBody): Promise<import("./api-keys").ApiKeyToken>;
544
580
  listRevoked(query?: import("./api-keys").ListRevokedApiKeysQuery): Promise<import("./types").CursorPage<import("./api-keys").RevokedApiKeyRef>>;
545
581
  };
582
+ appRoles: {
583
+ list(): Promise<import("./types").ListPage<import("./app-roles").AppRole>>;
584
+ create(body: import("./app-roles").CreateAppRoleBody): Promise<import("./app-roles").AppRole>;
585
+ get(idOrKey: string): Promise<import("./app-roles").AppRole>;
586
+ update(idOrKey: string, body: import("./app-roles").UpdateAppRoleBody): Promise<import("./app-roles").AppRole>;
587
+ delete(idOrKey: string): Promise<{
588
+ object: "app_role";
589
+ id: string;
590
+ deleted: true;
591
+ }>;
592
+ listUsers(idOrKey: string, query?: {
593
+ limit?: number;
594
+ offset?: number;
595
+ }): Promise<import("./types").ListPage<{
596
+ object: "user_app_role";
597
+ user_id: string;
598
+ role: string;
599
+ }>>;
600
+ getForUser(userId: string): Promise<import("./app-roles").UserAppRoles>;
601
+ setForUser(userId: string, body: import("./app-roles").SetUserAppRolesBody): Promise<import("./app-roles").UserAppRoles>;
602
+ removeFromUser(userId: string, idOrKey: string): Promise<import("./app-roles").UserAppRoles>;
603
+ };
546
604
  machines: {
547
605
  list(query?: import("./machines").ListMachinesQuery): Promise<import("./machines").MachineListPage>;
548
606
  create(body: import("./machines").CreateMachineBody, idempotencyKey?: string): Promise<import("./machines").MachineWithSecret>;
@@ -813,6 +871,35 @@ declare function buildNamespaces(request: RequestFn): {
813
871
  getBindings(trigger: import("./actions").ActionTrigger): Promise<import("./actions").ActionBindingList>;
814
872
  setBindings(trigger: import("./actions").ActionTrigger, actionIds: string[]): Promise<import("./actions").ActionBindingList>;
815
873
  };
874
+ actionGallery: {
875
+ list(filter?: import("./action-gallery").ActionGalleryFilter): Promise<import("./types").ListPage<import("./action-gallery").ActionGalleryEntry>>;
876
+ get(slug: string): Promise<import("./action-gallery").ActionGalleryDetail>;
877
+ install(slug: string, body?: import("./action-gallery").InstallTemplateBody, idempotencyKey?: string): Promise<import("./action-gallery").ActionGalleryInstallResult>;
878
+ installs(): Promise<import("./types").ListPage<import("./action-gallery").ActionGalleryInstallation>>;
879
+ update(actionId: string, body?: {
880
+ secrets?: Record<string, string>;
881
+ }): Promise<import("./action-gallery").ActionGalleryUpdateResult>;
882
+ };
883
+ actionTemplates: {
884
+ list(): Promise<import("./types").ListPage<import("./action-gallery").ActionTemplate>>;
885
+ create(body: import("./action-gallery").CreateActionTemplateBody, idempotencyKey?: string): Promise<import("./action-gallery").ActionTemplate>;
886
+ get(id: string): Promise<import("./action-gallery").ActionTemplate>;
887
+ update(id: string, body: import("./action-gallery").ActionTemplateListing): Promise<import("./action-gallery").ActionTemplate>;
888
+ delete(id: string): Promise<{
889
+ object: "action_template";
890
+ id: string;
891
+ deleted: true;
892
+ }>;
893
+ addVersion(id: string, body: import("./action-gallery").NewTemplateVersion): Promise<import("./action-gallery").ActionTemplateVersion>;
894
+ submitVersion(id: string, version: string): Promise<import("./action-gallery").ActionTemplateVersion>;
895
+ deleteVersion(id: string, version: string): Promise<{
896
+ object: "action_template_version";
897
+ version: string;
898
+ deleted: true;
899
+ }>;
900
+ publish(id: string): Promise<import("./action-gallery").ActionTemplate>;
901
+ unlist(id: string): Promise<import("./action-gallery").ActionTemplate>;
902
+ };
816
903
  billing: {
817
904
  listPlans(): Promise<import("./types").ListPage<import("./billing-plans").BillingPlan>>;
818
905
  createPlan(body: import("./billing-plans").CreateBillingPlanBody, idempotencyKey?: string): Promise<import("./billing-plans").BillingPlan>;
@@ -824,6 +911,18 @@ declare function buildNamespaces(request: RequestFn): {
824
911
  deleted: true;
825
912
  }>;
826
913
  listSubscriptions(params?: import("./billing-plans").ListSubscriptionsParams): Promise<import("./types").ListPage<import("./billing-plans").BillingSubscription>>;
914
+ getSubscription(id: string): Promise<import("./billing-plans").BillingSubscription>;
915
+ changeSubscription(id: string, body: import("./billing-plans").ChangeBillingSubscriptionBody): Promise<import("./billing-plans").BillingSubscription & {
916
+ scheduled: boolean;
917
+ }>;
918
+ cancelSubscription(id: string, body?: {
919
+ immediately?: boolean;
920
+ }): Promise<import("./billing-plans").BillingSubscription>;
921
+ restoreSubscription(id: string): Promise<import("./billing-plans").BillingSubscription>;
922
+ syncPlanEntitlements(id: string): Promise<import("./billing-plans").BillingPlan>;
923
+ getSettings(): Promise<import("./billing-plans").BillingSettings>;
924
+ updateSettings(body: import("./billing-plans").UpdateBillingSettingsBody): Promise<import("./billing-plans").BillingSettings>;
925
+ checkFeature(body: import("./billing-plans").CheckBillingFeatureBody): Promise<import("./billing-plans").BillingFeatureCheck>;
827
926
  importSubscription(body: import("./billing-plans").ImportBillingSubscriptionBody, idempotencyKey?: string): Promise<import("./billing-plans").BillingSubscription>;
828
927
  reportUsage(body: import("./billing-plans").ReportBillingUsageBody): Promise<import("./billing-plans").BillingUsageReport>;
829
928
  syncSeats(subjectType: "user" | "org", subjectId: string): Promise<import("./billing-plans").BillingSeatSync>;
@@ -931,10 +1030,26 @@ declare function buildNamespaces(request: RequestFn): {
931
1030
  };
932
1031
  };
933
1032
  instanceSecurity: {
1033
+ listSigningKeys(): Promise<{
1034
+ object: "list";
1035
+ data: import("./instance-security").SigningKey[];
1036
+ }>;
1037
+ rotateSigningKey(body?: import("./instance-security").RotateSigningKeyBody): Promise<import("./instance-security").SigningKeyRotation>;
1038
+ getSigningKeyProvider(): Promise<import("./instance-security").SigningKeyProviderSettings>;
1039
+ setSigningKeyProvider(body: import("./instance-security").SetSigningKeyProviderBody): Promise<import("./instance-security").SigningKeyProviderSettings & {
1040
+ rotation: import("./instance-security").SigningKeyRotation;
1041
+ }>;
1042
+ removeSigningKeyProvider(body?: import("./instance-security").RotateSigningKeyBody): Promise<{
1043
+ object: "signing_key_provider";
1044
+ provider: "local";
1045
+ deleted: true;
1046
+ rotation: import("./instance-security").SigningKeyRotation | null;
1047
+ }>;
934
1048
  get(): Promise<import("./instance-security").InstanceSecurity>;
935
1049
  update(body: import("./instance-security").UpdateInstanceSecurityBody): Promise<import("./instance-security").InstanceSecurityResult>;
936
1050
  setCaptchaSecret(body: {
937
1051
  secret: string;
1052
+ provider?: string;
938
1053
  }): Promise<{
939
1054
  object: "captcha_secret";
940
1055
  provider: string;
@@ -945,6 +1060,14 @@ declare function buildNamespaces(request: RequestFn): {
945
1060
  provider: string;
946
1061
  deleted: true;
947
1062
  }>;
1063
+ setWalletRpcSecret(body: {
1064
+ chain_id: number;
1065
+ url: string;
1066
+ }): Promise<{
1067
+ object: "wallet_rpc_secret";
1068
+ chain_id: number;
1069
+ set: boolean;
1070
+ }>;
948
1071
  setKerberosSecret(body: {
949
1072
  secret: string;
950
1073
  }): Promise<{
@@ -1123,6 +1246,34 @@ declare function buildNamespaces(request: RequestFn): {
1123
1246
  data: import("./connectors").ConnectorDirectoryEntry[];
1124
1247
  }>;
1125
1248
  };
1249
+ customOAuthProviders: {
1250
+ list(): Promise<import("./types").ListPage<import("./custom-oauth-providers").CustomOAuthProvider>>;
1251
+ get(id: string): Promise<import("./custom-oauth-providers").CustomOAuthProvider>;
1252
+ create(body: import("./custom-oauth-providers").CreateCustomOAuthProviderBody, idempotencyKey?: string): Promise<import("./custom-oauth-providers").CustomOAuthProvider>;
1253
+ update(id: string, body: import("./custom-oauth-providers").CustomOAuthProviderSettings, idempotencyKey?: string): Promise<import("./custom-oauth-providers").CustomOAuthProvider>;
1254
+ delete(id: string): Promise<{
1255
+ object: "custom_oauth_provider";
1256
+ id: string;
1257
+ provider_key: string;
1258
+ deleted: true;
1259
+ }>;
1260
+ discover(body: {
1261
+ issuer: string;
1262
+ discovery_url?: string;
1263
+ }): Promise<import("./custom-oauth-providers").OidcDiscoveryResult>;
1264
+ previewProfileMapping(body: import("./custom-oauth-providers").ProfileMappingPreviewBody, id?: string): Promise<import("./custom-oauth-providers").ProfileMappingPreview>;
1265
+ signingKeys(id: string): {
1266
+ list(): Promise<import("./types").ListPage<import("./custom-oauth-providers").UpstreamSigningKey>>;
1267
+ rotate(body?: {
1268
+ alg?: "RS256" | "PS256" | "ES256";
1269
+ }, idempotencyKey?: string): Promise<import("./custom-oauth-providers").UpstreamSigningKey>;
1270
+ retire(kid: string): Promise<{
1271
+ object: "upstream_signing_key";
1272
+ kid: string;
1273
+ status: "retired";
1274
+ }>;
1275
+ };
1276
+ };
1126
1277
  notifications: {
1127
1278
  send(body: import("./notifications").SendNotificationBody, idempotencyKey?: string): Promise<import("./notifications").SentNotification>;
1128
1279
  categories: {
@@ -1307,6 +1458,7 @@ export * from './users';
1307
1458
  export * from './sessions';
1308
1459
  export * from './organizations';
1309
1460
  export * from './roles';
1461
+ export * from './app-roles';
1310
1462
  export * from './oauth-clients';
1311
1463
  export * from './resource-servers';
1312
1464
  export * from './sso-connections';
@@ -1338,6 +1490,7 @@ export * from './email-templates';
1338
1490
  export * from './sms-templates';
1339
1491
  export * from './localizations';
1340
1492
  export * from './actions';
1493
+ export * from './action-gallery';
1341
1494
  export * from './billing-plans';
1342
1495
  export * from './messaging';
1343
1496
  export * from './import-export';
@@ -1357,6 +1510,7 @@ export * from './organization-settings-schema';
1357
1510
  export * from './email-addresses';
1358
1511
  export * from './openfga';
1359
1512
  export * from './connectors';
1513
+ export * from './custom-oauth-providers';
1360
1514
  export * from './notifications';
1361
1515
  export * from './audit-events';
1362
1516
  export * from './activity';