@atlasauth/backend 0.24.0 → 0.25.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.
- package/CHANGELOG.md +7 -0
- package/dist/client/abac.d.ts +132 -0
- package/dist/client/abac.js +48 -0
- package/dist/client/abac.js.map +1 -0
- package/dist/client/access-policies.d.ts +100 -0
- package/dist/client/access-policies.js +29 -0
- package/dist/client/access-policies.js.map +1 -0
- package/dist/client/action-gallery.d.ts +1 -1
- package/dist/client/action-gallery.js.map +1 -1
- package/dist/client/actions.d.ts +129 -6
- package/dist/client/actions.js +4 -0
- package/dist/client/actions.js.map +1 -1
- package/dist/client/analytics-reports.d.ts +215 -0
- package/dist/client/analytics-reports.js +56 -0
- package/dist/client/analytics-reports.js.map +1 -0
- package/dist/client/app-catalog.d.ts +74 -0
- package/dist/client/app-catalog.js +30 -0
- package/dist/client/app-catalog.js.map +1 -0
- package/dist/client/attack-protection.d.ts +10 -0
- package/dist/client/attack-protection.js +8 -0
- package/dist/client/attack-protection.js.map +1 -1
- package/dist/client/audit-events.d.ts +71 -0
- package/dist/client/audit-events.js +28 -0
- package/dist/client/audit-events.js.map +1 -1
- package/dist/client/credentials.d.ts +8 -0
- package/dist/client/credentials.js.map +1 -1
- package/dist/client/delegated-ui-proxy.d.ts +25 -0
- package/dist/client/delegated-ui-proxy.js +46 -0
- package/dist/client/delegated-ui-proxy.js.map +1 -0
- package/dist/client/devices.d.ts +44 -0
- package/dist/client/devices.js +26 -0
- package/dist/client/devices.js.map +1 -0
- package/dist/client/email-templates.d.ts +1 -1
- package/dist/client/email-templates.js.map +1 -1
- package/dist/client/flags.d.ts +101 -0
- package/dist/client/flags.js +104 -0
- package/dist/client/flags.js.map +1 -0
- package/dist/client/groups.d.ts +146 -0
- package/dist/client/groups.js +67 -0
- package/dist/client/groups.js.map +1 -0
- package/dist/client/identity-verification.d.ts +62 -0
- package/dist/client/identity-verification.js +39 -0
- package/dist/client/identity-verification.js.map +1 -0
- package/dist/client/index.d.ts +943 -2
- package/dist/client/index.js +73 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/journeys.d.ts +108 -0
- package/dist/client/journeys.js +35 -0
- package/dist/client/journeys.js.map +1 -0
- package/dist/client/log-streams.d.ts +1 -1
- package/dist/client/marketing.d.ts +67 -0
- package/dist/client/marketing.js +26 -0
- package/dist/client/marketing.js.map +1 -0
- package/dist/client/mcp-gateways.d.ts +54 -0
- package/dist/client/mcp-gateways.js +25 -0
- package/dist/client/mcp-gateways.js.map +1 -0
- package/dist/client/messaging.d.ts +14 -3
- package/dist/client/messaging.js.map +1 -1
- package/dist/client/mfa-factors.d.ts +120 -0
- package/dist/client/mfa-factors.js +73 -0
- package/dist/client/mfa-factors.js.map +1 -0
- package/dist/client/migrations.d.ts +1 -1
- package/dist/client/migrations.js.map +1 -1
- package/dist/client/network-acls.d.ts +6 -1
- package/dist/client/network-acls.js.map +1 -1
- package/dist/client/network-zones.d.ts +56 -0
- package/dist/client/network-zones.js +29 -0
- package/dist/client/network-zones.js.map +1 -0
- package/dist/client/notifications.d.ts +1 -1
- package/dist/client/notifications.js.map +1 -1
- package/dist/client/oauth-clients.d.ts +183 -3
- package/dist/client/oauth-clients.js +64 -0
- package/dist/client/oauth-clients.js.map +1 -1
- package/dist/client/org-role-grants.d.ts +57 -0
- package/dist/client/org-role-grants.js +40 -0
- package/dist/client/org-role-grants.js.map +1 -0
- package/dist/client/organizations.d.ts +52 -0
- package/dist/client/organizations.js +44 -0
- package/dist/client/organizations.js.map +1 -1
- package/dist/client/page-templates.d.ts +78 -0
- package/dist/client/page-templates.js +31 -0
- package/dist/client/page-templates.js.map +1 -0
- package/dist/client/passkey-api.d.ts +73 -0
- package/dist/client/passkey-api.js +34 -0
- package/dist/client/passkey-api.js.map +1 -0
- package/dist/client/resources.d.ts +149 -0
- package/dist/client/resources.js +73 -0
- package/dist/client/resources.js.map +1 -0
- package/dist/client/risk-based-mfa.d.ts +147 -0
- package/dist/client/risk-based-mfa.js +30 -0
- package/dist/client/risk-based-mfa.js.map +1 -1
- package/dist/client/roles.d.ts +4 -0
- package/dist/client/roles.js.map +1 -1
- package/dist/client/service-connectors.d.ts +83 -0
- package/dist/client/service-connectors.js +33 -0
- package/dist/client/service-connectors.js.map +1 -0
- package/dist/client/ssf.d.ts +111 -0
- package/dist/client/ssf.js +49 -0
- package/dist/client/ssf.js.map +1 -0
- package/dist/client/sso-onboarding.d.ts +6 -0
- package/dist/client/sso-onboarding.js.map +1 -1
- package/dist/client/users.d.ts +302 -0
- package/dist/client/users.js +125 -0
- package/dist/client/users.js.map +1 -1
- package/dist/client/vault.d.ts +85 -0
- package/dist/client/vault.js +50 -0
- package/dist/client/vault.js.map +1 -0
- package/dist/client/vc.d.ts +128 -0
- package/dist/client/vc.js +43 -0
- package/dist/client/vc.js.map +1 -0
- package/dist/client/webhooks.d.ts +31 -2
- package/dist/client/webhooks.js.map +1 -1
- package/dist/client/workflows.d.ts +131 -0
- package/dist/client/workflows.js +36 -0
- package/dist/client/workflows.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/magic-did.d.ts +5 -0
- package/dist/magic-did.js +49 -0
- package/dist/magic-did.js.map +1 -0
- package/dist/migration-bridge.d.ts +9 -0
- package/dist/migration-bridge.js +28 -2
- package/dist/migration-bridge.js.map +1 -1
- package/dist/migration-presets-g3.d.ts +2 -0
- package/dist/migration-presets-g3.js +254 -0
- package/dist/migration-presets-g3.js.map +1 -0
- package/dist/migration-presets-g4/authentik.d.ts +14 -0
- package/dist/migration-presets-g4/authentik.js +37 -0
- package/dist/migration-presets-g4/authentik.js.map +1 -0
- package/dist/migration-presets-g4/fusionauth.d.ts +2 -0
- package/dist/migration-presets-g4/fusionauth.js +52 -0
- package/dist/migration-presets-g4/fusionauth.js.map +1 -0
- package/dist/migration-presets-g4/hanko.d.ts +12 -0
- package/dist/migration-presets-g4/hanko.js +46 -0
- package/dist/migration-presets-g4/hanko.js.map +1 -0
- package/dist/migration-presets-g4/keycloak.d.ts +16 -0
- package/dist/migration-presets-g4/keycloak.js +37 -0
- package/dist/migration-presets-g4/keycloak.js.map +1 -0
- package/dist/migration-presets-g4/logto.d.ts +12 -0
- package/dist/migration-presets-g4/logto.js +35 -0
- package/dist/migration-presets-g4/logto.js.map +1 -0
- package/dist/migration-presets-g4/ory.d.ts +2 -0
- package/dist/migration-presets-g4/ory.js +67 -0
- package/dist/migration-presets-g4/ory.js.map +1 -0
- package/dist/migration-presets-g4/supertokens.d.ts +13 -0
- package/dist/migration-presets-g4/supertokens.js +35 -0
- package/dist/migration-presets-g4/supertokens.js.map +1 -0
- package/dist/migration-presets-g4/zitadel.d.ts +2 -0
- package/dist/migration-presets-g4/zitadel.js +36 -0
- package/dist/migration-presets-g4/zitadel.js.map +1 -0
- package/dist/migration-presets-g4.d.ts +10 -0
- package/dist/migration-presets-g4.js +30 -0
- package/dist/migration-presets-g4.js.map +1 -0
- package/dist/migration-presets.d.ts +6 -0
- package/dist/migration-presets.js +102 -6
- package/dist/migration-presets.js.map +1 -1
- package/dist/request-auth.d.ts +32 -0
- package/dist/request-auth.js +72 -0
- package/dist/request-auth.js.map +1 -0
- package/dist/verify.d.ts +2 -0
- package/dist/verify.js.map +1 -1
- package/dist/workos-session.d.ts +30 -0
- package/dist/workos-session.js +123 -0
- package/dist/workos-session.js.map +1 -0
- package/package.json +1 -1
|
@@ -18,9 +18,9 @@ import { type RequestFn } from './request';
|
|
|
18
18
|
* stored secret) stays. So a from-address change need not re-enter the API key.
|
|
19
19
|
*/
|
|
20
20
|
/** Email transports accepted by `PUT /v1/messaging_providers/email`. */
|
|
21
|
-
export type EmailTransport = 'resend' | 'ses' | 'smtp' | 'brevo' | 'mailgun';
|
|
21
|
+
export type EmailTransport = 'resend' | 'ses' | 'smtp' | 'brevo' | 'mailgun' | 'webhook';
|
|
22
22
|
/** SMS transports accepted by `PUT /v1/messaging_providers/sms`. */
|
|
23
|
-
export type SmsTransport = 'twilio' | 'vonage' | 'messagebird' | 'plivo' | 'telnyx' | 'sinch' | 'infobip' | 'clicksend' | 'bandwidth' | 'aws_sns';
|
|
23
|
+
export type SmsTransport = 'twilio' | 'vonage' | 'messagebird' | 'plivo' | 'telnyx' | 'sinch' | 'infobip' | 'clicksend' | 'bandwidth' | 'aws_sns' | 'webhook';
|
|
24
24
|
export type MessagingTransport = EmailTransport | SmsTransport;
|
|
25
25
|
/** Sender number or ID for an SMS provider. `from_address` on the request takes precedence. */
|
|
26
26
|
interface SmsFrom {
|
|
@@ -150,6 +150,15 @@ export interface AwsSnsConfig extends SmsFrom {
|
|
|
150
150
|
/** STS session token, only for temporary credentials. Write-only: never returned. */
|
|
151
151
|
session_token?: string;
|
|
152
152
|
}
|
|
153
|
+
/** Your own delivery endpoint: Atlas POSTs each message, Standard Webhooks signed. */
|
|
154
|
+
export interface WebhookConfig {
|
|
155
|
+
/** Your HTTPS endpoint (port 443). Required on first setup. */
|
|
156
|
+
url: string;
|
|
157
|
+
/** Signing secret (`whsec_…` base64 or any string). Required on first setup. Write-only: never returned. */
|
|
158
|
+
signing_secret: string;
|
|
159
|
+
/** Email only. `rendered` (default) sends the final subject/text/html; `raw` sends the template name and variables. */
|
|
160
|
+
payload?: 'rendered' | 'raw';
|
|
161
|
+
}
|
|
153
162
|
/** The `config` shape for each transport, keyed by transport. */
|
|
154
163
|
export interface MessagingTransportConfigs {
|
|
155
164
|
resend: ResendConfig;
|
|
@@ -167,6 +176,7 @@ export interface MessagingTransportConfigs {
|
|
|
167
176
|
clicksend: ClicksendConfig;
|
|
168
177
|
bandwidth: BandwidthConfig;
|
|
169
178
|
aws_sns: AwsSnsConfig;
|
|
179
|
+
webhook: WebhookConfig;
|
|
170
180
|
}
|
|
171
181
|
/** The write-only (secret) keys of each transport — never present in a response. */
|
|
172
182
|
export interface MessagingSecretKeys {
|
|
@@ -185,6 +195,7 @@ export interface MessagingSecretKeys {
|
|
|
185
195
|
clicksend: 'api_key';
|
|
186
196
|
bandwidth: 'password';
|
|
187
197
|
aws_sns: 'secret_access_key' | 'session_token';
|
|
198
|
+
webhook: 'signing_secret';
|
|
188
199
|
}
|
|
189
200
|
interface ProviderBodyBase<T extends MessagingTransport> {
|
|
190
201
|
transport: T;
|
|
@@ -413,7 +424,7 @@ export type EnableDevelopmentEmailBody = {
|
|
|
413
424
|
provider_id: string;
|
|
414
425
|
from_address?: string;
|
|
415
426
|
} | {
|
|
416
|
-
transport: 'resend' | 'ses' | 'smtp' | 'brevo' | 'mailgun';
|
|
427
|
+
transport: 'resend' | 'ses' | 'smtp' | 'brevo' | 'mailgun' | 'webhook';
|
|
417
428
|
config?: Record<string, string>;
|
|
418
429
|
from_address?: string;
|
|
419
430
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/client/messaging.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/client/messaging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { type RequestFn } from './request';
|
|
2
|
+
/** An existing second factor to import with a user (`atlas.users.create({ mfa })`). */
|
|
3
|
+
export interface ImportedMfa {
|
|
4
|
+
/** An authenticator-app secret. SHA1, SHA256 or SHA512; 6 or 8 digits; 30 or 60 second step. */
|
|
5
|
+
totp?: {
|
|
6
|
+
secret_base32: string;
|
|
7
|
+
algorithm?: 'SHA1' | 'SHA256' | 'SHA512';
|
|
8
|
+
digits?: 6 | 8;
|
|
9
|
+
period?: 30 | 60;
|
|
10
|
+
verified_at?: number | string;
|
|
11
|
+
};
|
|
12
|
+
/** A counter-based (HOTP) token. Give `totp` or `hotp`, not both. */
|
|
13
|
+
hotp?: {
|
|
14
|
+
secret_base32: string;
|
|
15
|
+
algorithm?: 'SHA1' | 'SHA256' | 'SHA512';
|
|
16
|
+
digits?: 6 | 8;
|
|
17
|
+
/** The next counter the token will produce. Default 0. */
|
|
18
|
+
counter?: number;
|
|
19
|
+
verified_at?: number | string;
|
|
20
|
+
};
|
|
21
|
+
/** Plaintext recovery codes; they are hashed on import. */
|
|
22
|
+
backup_codes?: string[];
|
|
23
|
+
}
|
|
24
|
+
export type SmartCardMappingKind = 'san_email' | 'san_upn' | 'subject_cn' | 'serial' | 'fingerprint';
|
|
25
|
+
export interface Yubikey {
|
|
26
|
+
object: 'yubikey';
|
|
27
|
+
id: string;
|
|
28
|
+
public_id: string;
|
|
29
|
+
label: string | null;
|
|
30
|
+
user_id: string | null;
|
|
31
|
+
has_private_id: boolean;
|
|
32
|
+
last_counter: number | null;
|
|
33
|
+
created_at: number;
|
|
34
|
+
}
|
|
35
|
+
export interface SmartCardMapping {
|
|
36
|
+
object: 'smartcard_mapping';
|
|
37
|
+
id: string;
|
|
38
|
+
user_id: string;
|
|
39
|
+
kind: SmartCardMappingKind;
|
|
40
|
+
value: string;
|
|
41
|
+
label: string | null;
|
|
42
|
+
last_used_at: number | null;
|
|
43
|
+
created_at: number;
|
|
44
|
+
}
|
|
45
|
+
type SecretSet<T extends string> = {
|
|
46
|
+
object: T;
|
|
47
|
+
set: true;
|
|
48
|
+
};
|
|
49
|
+
type SecretDeleted<T extends string> = {
|
|
50
|
+
object: T;
|
|
51
|
+
deleted: true;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* The additional authentication factors: the write-only BYOK secrets (Yubico cloud, Duo, the
|
|
55
|
+
* smart card proxy), the self-held Yubico OTP key registry, smart card certificate mappings and
|
|
56
|
+
* the admin reset for security questions. Turn the factors on in the auth config (`mfa.factors`,
|
|
57
|
+
* `mfa.hotp`, `mfa.yubikey`, `mfa.duo`, `mfa.smartCard`, `mfa.securityQuestions`).
|
|
58
|
+
*/
|
|
59
|
+
export declare function mfaFactorsResource(request: RequestFn): {
|
|
60
|
+
/** Store the Yubico cloud API secret key (base64). Write-only. */
|
|
61
|
+
setYubicoSecret(secret: string): Promise<SecretSet<"yubico_secret">>;
|
|
62
|
+
removeYubicoSecret(): Promise<SecretDeleted<"yubico_secret">>;
|
|
63
|
+
/** Store the Duo client secret. Write-only. */
|
|
64
|
+
setDuoSecret(secret: string): Promise<SecretSet<"duo_secret">>;
|
|
65
|
+
removeDuoSecret(): Promise<SecretDeleted<"duo_secret">>;
|
|
66
|
+
/** Ask Duo whether the configured integration key, stored secret and API host are accepted. */
|
|
67
|
+
duoHealthCheck(): Promise<{
|
|
68
|
+
object: "duo_health_check";
|
|
69
|
+
ok: boolean;
|
|
70
|
+
message: string;
|
|
71
|
+
}>;
|
|
72
|
+
/** Store the shared secret your TLS proxy sends so Atlas trusts its certificate headers. Write-only. */
|
|
73
|
+
setSmartCardSecret(secret: string): Promise<SecretSet<"smart_card_secret">>;
|
|
74
|
+
removeSmartCardSecret(): Promise<SecretDeleted<"smart_card_secret">>;
|
|
75
|
+
yubikeys: {
|
|
76
|
+
/** Registered self-held YubiKeys. The AES keys are never returned. */
|
|
77
|
+
list(): Promise<{
|
|
78
|
+
object: "list";
|
|
79
|
+
data: Yubikey[];
|
|
80
|
+
}>;
|
|
81
|
+
/** Register a YubiKey's AES key for self-held Yubico OTP. `userId` assigns it; otherwise the first user to enrol it claims it. */
|
|
82
|
+
register(body: {
|
|
83
|
+
publicId: string;
|
|
84
|
+
aesKey: string;
|
|
85
|
+
privateId?: string;
|
|
86
|
+
label?: string;
|
|
87
|
+
userId?: string;
|
|
88
|
+
}): Promise<Yubikey>;
|
|
89
|
+
remove(id: string): Promise<{
|
|
90
|
+
object: "yubikey";
|
|
91
|
+
id: string;
|
|
92
|
+
deleted: true;
|
|
93
|
+
}>;
|
|
94
|
+
};
|
|
95
|
+
smartCardMappings: {
|
|
96
|
+
list(userId: string): Promise<{
|
|
97
|
+
object: "list";
|
|
98
|
+
data: SmartCardMapping[];
|
|
99
|
+
}>;
|
|
100
|
+
/** Pre-register the certificate attribute that signs a user in. A `serial` needs the certificate's `issuer` DN. */
|
|
101
|
+
add(userId: string, body: {
|
|
102
|
+
kind: SmartCardMappingKind;
|
|
103
|
+
value: string;
|
|
104
|
+
issuer?: string;
|
|
105
|
+
label?: string;
|
|
106
|
+
}): Promise<SmartCardMapping>;
|
|
107
|
+
remove(userId: string, mappingId: string): Promise<{
|
|
108
|
+
object: "smartcard_mapping";
|
|
109
|
+
id: string;
|
|
110
|
+
deleted: true;
|
|
111
|
+
}>;
|
|
112
|
+
};
|
|
113
|
+
/** Clear a user's security-question answers (and any lockout). */
|
|
114
|
+
resetSecurityQuestions(userId: string): Promise<{
|
|
115
|
+
object: "security_questions";
|
|
116
|
+
user_id: string;
|
|
117
|
+
deleted: boolean;
|
|
118
|
+
}>;
|
|
119
|
+
};
|
|
120
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mfaFactorsResource = mfaFactorsResource;
|
|
4
|
+
const request_1 = require("./request");
|
|
5
|
+
/**
|
|
6
|
+
* The additional authentication factors: the write-only BYOK secrets (Yubico cloud, Duo, the
|
|
7
|
+
* smart card proxy), the self-held Yubico OTP key registry, smart card certificate mappings and
|
|
8
|
+
* the admin reset for security questions. Turn the factors on in the auth config (`mfa.factors`,
|
|
9
|
+
* `mfa.hotp`, `mfa.yubikey`, `mfa.duo`, `mfa.smartCard`, `mfa.securityQuestions`).
|
|
10
|
+
*/
|
|
11
|
+
function mfaFactorsResource(request) {
|
|
12
|
+
return {
|
|
13
|
+
/** Store the Yubico cloud API secret key (base64). Write-only. */
|
|
14
|
+
setYubicoSecret(secret) {
|
|
15
|
+
return request({ method: 'PUT', path: '/v1/instance/yubico_secret', body: { secret } });
|
|
16
|
+
},
|
|
17
|
+
removeYubicoSecret() {
|
|
18
|
+
return request({ method: 'DELETE', path: '/v1/instance/yubico_secret' });
|
|
19
|
+
},
|
|
20
|
+
/** Store the Duo client secret. Write-only. */
|
|
21
|
+
setDuoSecret(secret) {
|
|
22
|
+
return request({ method: 'PUT', path: '/v1/instance/duo_secret', body: { secret } });
|
|
23
|
+
},
|
|
24
|
+
removeDuoSecret() {
|
|
25
|
+
return request({ method: 'DELETE', path: '/v1/instance/duo_secret' });
|
|
26
|
+
},
|
|
27
|
+
/** Ask Duo whether the configured integration key, stored secret and API host are accepted. */
|
|
28
|
+
duoHealthCheck() {
|
|
29
|
+
return request({ method: 'POST', path: '/v1/instance/duo_health_check' });
|
|
30
|
+
},
|
|
31
|
+
/** Store the shared secret your TLS proxy sends so Atlas trusts its certificate headers. Write-only. */
|
|
32
|
+
setSmartCardSecret(secret) {
|
|
33
|
+
return request({ method: 'PUT', path: '/v1/instance/smart_card_secret', body: { secret } });
|
|
34
|
+
},
|
|
35
|
+
removeSmartCardSecret() {
|
|
36
|
+
return request({ method: 'DELETE', path: '/v1/instance/smart_card_secret' });
|
|
37
|
+
},
|
|
38
|
+
yubikeys: {
|
|
39
|
+
/** Registered self-held YubiKeys. The AES keys are never returned. */
|
|
40
|
+
list() {
|
|
41
|
+
return request({ method: 'GET', path: '/v1/yubikeys' });
|
|
42
|
+
},
|
|
43
|
+
/** Register a YubiKey's AES key for self-held Yubico OTP. `userId` assigns it; otherwise the first user to enrol it claims it. */
|
|
44
|
+
register(body) {
|
|
45
|
+
return request({
|
|
46
|
+
method: 'POST',
|
|
47
|
+
path: '/v1/yubikeys',
|
|
48
|
+
body: { public_id: body.publicId, aes_key: body.aesKey, private_id: body.privateId, label: body.label, user_id: body.userId },
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
remove(id) {
|
|
52
|
+
return request({ method: 'DELETE', path: `/v1/yubikeys/${(0, request_1.enc)(id)}` });
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
smartCardMappings: {
|
|
56
|
+
list(userId) {
|
|
57
|
+
return request({ method: 'GET', path: `/v1/users/${(0, request_1.enc)(userId)}/smartcard_mappings` });
|
|
58
|
+
},
|
|
59
|
+
/** Pre-register the certificate attribute that signs a user in. A `serial` needs the certificate's `issuer` DN. */
|
|
60
|
+
add(userId, body) {
|
|
61
|
+
return request({ method: 'POST', path: `/v1/users/${(0, request_1.enc)(userId)}/smartcard_mappings`, body });
|
|
62
|
+
},
|
|
63
|
+
remove(userId, mappingId) {
|
|
64
|
+
return request({ method: 'DELETE', path: `/v1/users/${(0, request_1.enc)(userId)}/smartcard_mappings/${(0, request_1.enc)(mappingId)}` });
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
/** Clear a user's security-question answers (and any lockout). */
|
|
68
|
+
resetSecurityQuestions(userId) {
|
|
69
|
+
return request({ method: 'DELETE', path: `/v1/users/${(0, request_1.enc)(userId)}/security_questions` });
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=mfa-factors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mfa-factors.js","sourceRoot":"","sources":["../../src/client/mfa-factors.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import type { CursorPage, CursorParams } from './types';
|
|
|
14
14
|
* (a vendor JWT preset, or imported sessions).
|
|
15
15
|
* sources `/v1/migrations/sources` — what each source supports.
|
|
16
16
|
*/
|
|
17
|
-
export type MigrationSourceId = 'better_auth' | 'auth0' | 'clerk' | 'cognito' | 'firebase' | 'supabase' | 'workos' | 'authjs' | 'okta' | 'stytch' | 'keycloak' | 'fusionauth' | 'kinde' | 'descope' | 'lucia' | 'ory' | 'frontegg' | 'custom';
|
|
17
|
+
export type MigrationSourceId = 'better_auth' | 'auth0' | 'clerk' | 'cognito' | 'firebase' | 'supabase' | 'workos' | 'authjs' | 'okta' | 'stytch' | 'keycloak' | 'fusionauth' | 'kinde' | 'descope' | 'lucia' | 'ory' | 'frontegg' | 'propelauth' | 'magic' | 'userfront' | 'corbado' | 'custom';
|
|
18
18
|
export type MigrationImportStatus = 'uploading' | 'analyzing' | 'ready' | 'invalid' | 'queued' | 'applying' | 'completed' | 'failed';
|
|
19
19
|
export interface MigrationImportKey {
|
|
20
20
|
object: 'migration_import_key';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/client/migrations.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/client/migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,8 @@ export interface NetworkAcl {
|
|
|
12
12
|
action: NetworkAclAction;
|
|
13
13
|
/** A single IP or CIDR range; refused at write time if malformed. */
|
|
14
14
|
cidr: string;
|
|
15
|
+
/** The network zone this rule matches instead of `cidr`. */
|
|
16
|
+
zone_id: string | null;
|
|
15
17
|
description: string | null;
|
|
16
18
|
priority: number;
|
|
17
19
|
enabled: boolean;
|
|
@@ -20,7 +22,9 @@ export interface NetworkAcl {
|
|
|
20
22
|
}
|
|
21
23
|
export interface CreateNetworkAclBody {
|
|
22
24
|
action: NetworkAclAction;
|
|
23
|
-
|
|
25
|
+
/** A CIDR or address — or send `zone_id` instead (one of the two). */
|
|
26
|
+
cidr?: string;
|
|
27
|
+
zone_id?: string;
|
|
24
28
|
description?: string | null;
|
|
25
29
|
priority?: number;
|
|
26
30
|
enabled?: boolean;
|
|
@@ -28,6 +32,7 @@ export interface CreateNetworkAclBody {
|
|
|
28
32
|
export interface UpdateNetworkAclBody {
|
|
29
33
|
action?: NetworkAclAction;
|
|
30
34
|
cidr?: string;
|
|
35
|
+
zone_id?: string | null;
|
|
31
36
|
description?: string | null;
|
|
32
37
|
priority?: number;
|
|
33
38
|
enabled?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-acls.js","sourceRoot":"","sources":["../../src/client/network-acls.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"network-acls.js","sourceRoot":"","sources":["../../src/client/network-acls.ts"],"names":[],"mappings":";;AAgDA,kDAmBC;AAnED,uCAAgD;AA4ChD;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,OAAkB;IACpD,OAAO;QACL,qDAAqD;QACrD,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,GAAG,CAAC,EAAU;YACZ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,CAAC,IAA0B,EAAE,cAAuB;YACxD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,CAAC,EAAU,EAAE,IAA0B;YAC3C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,CAAC,EAAU;YACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type RequestFn } from './request';
|
|
2
|
+
import type { ListPage } from './types';
|
|
3
|
+
export type NetworkZoneAnonymizer = 'tor' | 'datacenter' | 'vpn';
|
|
4
|
+
/**
|
|
5
|
+
* A reusable network zone: a union of CIDR ranges, ISO countries, ASNs and
|
|
6
|
+
* anonymizer classes. Network ACL rules reference one by `zone_id`.
|
|
7
|
+
*/
|
|
8
|
+
export interface NetworkZone {
|
|
9
|
+
object: 'network_zone';
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
description: string | null;
|
|
13
|
+
cidrs: string[];
|
|
14
|
+
countries: string[];
|
|
15
|
+
asns: number[];
|
|
16
|
+
anonymizers: NetworkZoneAnonymizer[];
|
|
17
|
+
enabled: boolean;
|
|
18
|
+
created_at: number;
|
|
19
|
+
updated_at: number;
|
|
20
|
+
}
|
|
21
|
+
export interface CreateNetworkZoneBody {
|
|
22
|
+
name: string;
|
|
23
|
+
description?: string | null;
|
|
24
|
+
cidrs?: string[];
|
|
25
|
+
countries?: string[];
|
|
26
|
+
asns?: number[];
|
|
27
|
+
anonymizers?: NetworkZoneAnonymizer[];
|
|
28
|
+
enabled?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export type UpdateNetworkZoneBody = Partial<CreateNetworkZoneBody>;
|
|
31
|
+
export interface NetworkZoneCheck {
|
|
32
|
+
object: 'network_zone_check';
|
|
33
|
+
zone_id: string;
|
|
34
|
+
ip: string;
|
|
35
|
+
matches: boolean;
|
|
36
|
+
facts: {
|
|
37
|
+
country: string | null;
|
|
38
|
+
asn: number | null;
|
|
39
|
+
tor: boolean | null;
|
|
40
|
+
datacenter: boolean | null;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/** CRUD over the instance's network zones, plus a what-if `check` for one address. */
|
|
44
|
+
export declare function networkZonesResource(request: RequestFn): {
|
|
45
|
+
list(): Promise<ListPage<NetworkZone>>;
|
|
46
|
+
get(id: string): Promise<NetworkZone>;
|
|
47
|
+
create(body: CreateNetworkZoneBody, idempotencyKey?: string): Promise<NetworkZone>;
|
|
48
|
+
update(id: string, body: UpdateNetworkZoneBody): Promise<NetworkZone>;
|
|
49
|
+
delete(id: string): Promise<{
|
|
50
|
+
object: "network_zone";
|
|
51
|
+
id: string;
|
|
52
|
+
deleted: true;
|
|
53
|
+
}>;
|
|
54
|
+
/** Does `ip` fall inside the zone? Returns the resolved facts too. */
|
|
55
|
+
check(id: string, ip: string): Promise<NetworkZoneCheck>;
|
|
56
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.networkZonesResource = networkZonesResource;
|
|
4
|
+
const request_1 = require("./request");
|
|
5
|
+
/** CRUD over the instance's network zones, plus a what-if `check` for one address. */
|
|
6
|
+
function networkZonesResource(request) {
|
|
7
|
+
return {
|
|
8
|
+
list() {
|
|
9
|
+
return request({ method: 'GET', path: '/v1/network_zones' });
|
|
10
|
+
},
|
|
11
|
+
get(id) {
|
|
12
|
+
return request({ method: 'GET', path: `/v1/network_zones/${(0, request_1.enc)(id)}` });
|
|
13
|
+
},
|
|
14
|
+
create(body, idempotencyKey) {
|
|
15
|
+
return request({ method: 'POST', path: '/v1/network_zones', body, idempotencyKey });
|
|
16
|
+
},
|
|
17
|
+
update(id, body) {
|
|
18
|
+
return request({ method: 'PATCH', path: `/v1/network_zones/${(0, request_1.enc)(id)}`, body });
|
|
19
|
+
},
|
|
20
|
+
delete(id) {
|
|
21
|
+
return request({ method: 'DELETE', path: `/v1/network_zones/${(0, request_1.enc)(id)}` });
|
|
22
|
+
},
|
|
23
|
+
/** Does `ip` fall inside the zone? Returns the resolved facts too. */
|
|
24
|
+
check(id, ip) {
|
|
25
|
+
return request({ method: 'POST', path: `/v1/network_zones/${(0, request_1.enc)(id)}/check`, body: { ip } });
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=network-zones.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-zones.js","sourceRoot":"","sources":["../../src/client/network-zones.ts"],"names":[],"mappings":";;AA4CA,oDAsBC;AAlED,uCAAgD;AA2ChD,sFAAsF;AACtF,SAAgB,oBAAoB,CAAC,OAAkB;IACrD,OAAO;QACL,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,GAAG,CAAC,EAAU;YACZ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,CAAC,IAA2B,EAAE,cAAuB;YACzD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,CAAC,EAAU,EAAE,IAA2B;YAC5C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,CAAC,EAAU;YACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,sEAAsE;QACtE,KAAK,CAAC,EAAU,EAAE,EAAU;YAC1B,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,IAAA,aAAG,EAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/F,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type RequestFn } from './request';
|
|
2
2
|
/** Built-in notification templates `send` falls back to when no tenant template has the name. */
|
|
3
|
-
export type BuiltInNotificationTemplate = 'new_device' | 'unattended_access' | 'password_changed' | 'mfa_changed' | 'email_changed';
|
|
3
|
+
export type BuiltInNotificationTemplate = 'new_device' | 'unattended_access' | 'password_changed' | 'mfa_changed' | 'email_changed' | 'phone_changed' | 'identity_linked' | 'identity_unlinked' | 'passkey_added' | 'passkey_removed' | 'recovery_codes_regenerated' | 'factor_removed' | 'device_key_added' | 'device_key_removed' | 'risk_alert';
|
|
4
4
|
export interface SendNotificationBody {
|
|
5
5
|
/** The end-user to notify. */
|
|
6
6
|
user_id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/client/notifications.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/client/notifications.ts"],"names":[],"mappings":";;AA4EA,sDAqDC;AAjID,uCAAgD;AA4EhD,SAAgB,qBAAqB,CAAC,OAAkB;IACtD,OAAO;QACL,2FAA2F;QAC3F,IAAI,CAAC,IAA0B,EAAE,cAAuB;YACtD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,UAAU,EAAE;YACV,IAAI;gBACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,4CAA4C;YAC5C,MAAM,CAAC,IAAoC;gBACzC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,CAAC,GAAW,EAAE,IAAuB;gBACzC,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,+BAA+B,IAAA,aAAG,EAAC,GAAG,CAAC,EAAE;oBAC/C,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YACD,yDAAyD;YACzD,MAAM,CACJ,GAAW;gBAEX,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,+BAA+B,IAAA,aAAG,EAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YACxF,CAAC;SACF;QACD,SAAS,EAAE;YACT,IAAI;gBACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,iCAAiC;YACjC,MAAM,CAAC,IAAoC;gBACzC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,GAAG,CAAC,IAAY;gBACd,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,8BAA8B,IAAA,aAAG,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,CAAC,IAAY,EAAE,IAAoC;gBACvD,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,8BAA8B,IAAA,aAAG,EAAC,IAAI,CAAC,EAAE;oBAC/C,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CACJ,IAAY;gBAEZ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,8BAA8B,IAAA,aAAG,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACxF,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
|