@atlasauth/backend 0.23.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 +14 -0
- package/dist/auth0-session.d.ts +23 -0
- package/dist/auth0-session.js +80 -0
- package/dist/auth0-session.js.map +1 -0
- package/dist/better-auth.d.ts +4 -8
- package/dist/better-auth.js +42 -150
- package/dist/better-auth.js.map +1 -1
- 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 +997 -2
- package/dist/client/index.js +77 -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 +286 -0
- package/dist/client/migrations.js +103 -0
- package/dist/client/migrations.js.map +1 -0
- 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/framework-bridge.d.ts +98 -0
- package/dist/framework-bridge.js +264 -0
- package/dist/framework-bridge.js.map +1 -0
- package/dist/framework-sessions.d.ts +147 -0
- package/dist/framework-sessions.js +544 -0
- package/dist/framework-sessions.js.map +1 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.js +19 -2
- package/dist/index.js.map +1 -1
- package/dist/legacy-issuer-presets.d.ts +85 -0
- package/dist/legacy-issuer-presets.js +165 -0
- package/dist/legacy-issuer-presets.js.map +1 -0
- package/dist/legacy-issuers.d.ts +16 -2
- package/dist/legacy-issuers.js +16 -1
- package/dist/legacy-issuers.js.map +1 -1
- package/dist/legacy-verify.d.ts +103 -0
- package/dist/legacy-verify.js +244 -0
- package/dist/legacy-verify.js.map +1 -0
- 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 +162 -0
- package/dist/migration-bridge.js +354 -0
- package/dist/migration-bridge.js.map +1 -0
- 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 +156 -0
- package/dist/migration-presets.js +536 -0
- package/dist/migration-presets.js.map +1 -0
- 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
|
@@ -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"}
|
|
@@ -1,6 +1,46 @@
|
|
|
1
1
|
import { type ProvisioningFields, type ProvisioningInput, type ProvisioningMetadata } from './compliance';
|
|
2
2
|
import { type RequestFn } from './request';
|
|
3
3
|
import type { ListPage } from './types';
|
|
4
|
+
export interface TrustedIssuer {
|
|
5
|
+
object: 'oauth_trusted_issuer';
|
|
6
|
+
id: string;
|
|
7
|
+
client_id: string;
|
|
8
|
+
issuer: string;
|
|
9
|
+
jwks: {
|
|
10
|
+
keys: unknown[];
|
|
11
|
+
} | null;
|
|
12
|
+
jwks_uri: string | null;
|
|
13
|
+
subject_mapping: 'user_id' | 'external_id' | 'email';
|
|
14
|
+
workload_kind: 'generic' | 'spiffe' | 'kubernetes' | 'github_actions' | 'gcp' | 'azure';
|
|
15
|
+
purpose: 'user_assertion' | 'client_auth' | 'both';
|
|
16
|
+
subject_pattern: string | null;
|
|
17
|
+
required_claims: Record<string, string> | null;
|
|
18
|
+
audiences: string[] | null;
|
|
19
|
+
created_at: number;
|
|
20
|
+
}
|
|
21
|
+
export interface TrustedIssuerInput {
|
|
22
|
+
issuer?: string;
|
|
23
|
+
jwks?: {
|
|
24
|
+
keys: unknown[];
|
|
25
|
+
};
|
|
26
|
+
jwks_uri?: string;
|
|
27
|
+
subject_mapping?: 'user_id' | 'external_id' | 'email';
|
|
28
|
+
workload_kind?: TrustedIssuer['workload_kind'];
|
|
29
|
+
tenant_id?: string;
|
|
30
|
+
purpose?: TrustedIssuer['purpose'];
|
|
31
|
+
subject_pattern?: string;
|
|
32
|
+
required_claims?: Record<string, string>;
|
|
33
|
+
audiences?: string[];
|
|
34
|
+
}
|
|
35
|
+
export interface WorkloadPreset {
|
|
36
|
+
object: 'workload_identity_preset';
|
|
37
|
+
kind: string;
|
|
38
|
+
title: string;
|
|
39
|
+
issuer: string | null;
|
|
40
|
+
jwks_uri: string | null;
|
|
41
|
+
subject_example: string;
|
|
42
|
+
notes: string;
|
|
43
|
+
}
|
|
4
44
|
export interface OAuthClient extends ProvisioningFields {
|
|
5
45
|
object: 'oauth_client';
|
|
6
46
|
id: string;
|
|
@@ -10,7 +50,7 @@ export interface OAuthClient extends ProvisioningFields {
|
|
|
10
50
|
redirect_uris: string[];
|
|
11
51
|
allowed_scopes: string[];
|
|
12
52
|
grant_types: string[];
|
|
13
|
-
token_endpoint_auth_method: 'client_secret_basic' | 'client_secret_post' | 'none';
|
|
53
|
+
token_endpoint_auth_method: 'client_secret_basic' | 'client_secret_post' | 'none' | 'private_key_jwt' | 'workload_jwt';
|
|
14
54
|
secret_prefix: string | null;
|
|
15
55
|
/**
|
|
16
56
|
* After a rotation with overlap: when the previous secret stops working (epoch
|
|
@@ -160,7 +200,7 @@ export interface CreateOAuthClientBody extends ProvisioningInput, OAuthClientLog
|
|
|
160
200
|
redirect_uris: string[];
|
|
161
201
|
allowed_scopes?: string[];
|
|
162
202
|
grant_types?: string[];
|
|
163
|
-
token_endpoint_auth_method?: 'client_secret_basic' | 'client_secret_post' | 'none';
|
|
203
|
+
token_endpoint_auth_method?: 'client_secret_basic' | 'client_secret_post' | 'none' | 'workload_jwt';
|
|
164
204
|
logo_url?: string;
|
|
165
205
|
first_party?: boolean;
|
|
166
206
|
/** How long the issued secret authenticates, in seconds; omit for no expiry. */
|
|
@@ -174,7 +214,7 @@ export interface UpdateOAuthClientBody extends OAuthClientLogoutFields, OAuthCli
|
|
|
174
214
|
name?: string;
|
|
175
215
|
redirect_uris?: string[];
|
|
176
216
|
allowed_scopes?: string[];
|
|
177
|
-
token_endpoint_auth_method?: 'client_secret_basic' | 'client_secret_post' | 'none';
|
|
217
|
+
token_endpoint_auth_method?: 'client_secret_basic' | 'client_secret_post' | 'none' | 'workload_jwt';
|
|
178
218
|
logo_url?: string | null;
|
|
179
219
|
first_party?: boolean;
|
|
180
220
|
/** Refuse every OAuth flow for this client without deleting it. */
|
|
@@ -280,10 +320,50 @@ export declare function oauthClientsResource(request: RequestFn): {
|
|
|
280
320
|
deleted: true;
|
|
281
321
|
note: string;
|
|
282
322
|
}>;
|
|
323
|
+
/**
|
|
324
|
+
* Per-application settings: allowed sign-in methods, hosted-page branding,
|
|
325
|
+
* the user-claim allow-list for ID tokens and userinfo, and writable traits.
|
|
326
|
+
*/
|
|
327
|
+
appSettings: {
|
|
328
|
+
/** `GET /v1/oauth_clients/:id/app_settings` */
|
|
329
|
+
get(id: string): Promise<OAuthClientAppSettings>;
|
|
330
|
+
/** `PATCH /v1/oauth_clients/:id/app_settings` — fields sent replace the stored ones; null clears. */
|
|
331
|
+
update(id: string, body: OAuthClientAppSettingsPatch): Promise<OAuthClientAppSettings>;
|
|
332
|
+
};
|
|
283
333
|
/** The client's back-channel logout delivery log, newest first. */
|
|
284
334
|
listBackchannelDeliveries(id: string, query?: BackchannelDeliveriesQuery): Promise<BackchannelLogoutDeliveryPage>;
|
|
285
335
|
/** Send a test back-channel logout now and return what the receiver answered. */
|
|
286
336
|
testBackchannelLogout(id: string): Promise<BackchannelLogoutTest>;
|
|
337
|
+
/** Set (or clear with null) the URLs of your own sign-in and consent pages for a client. */
|
|
338
|
+
setDelegatedUi(id: string, body: {
|
|
339
|
+
login_url?: string | null;
|
|
340
|
+
consent_url?: string | null;
|
|
341
|
+
}): Promise<{
|
|
342
|
+
object: "oauth_client_delegated_ui";
|
|
343
|
+
client_id: string;
|
|
344
|
+
login_url: string | null;
|
|
345
|
+
consent_url: string | null;
|
|
346
|
+
}>;
|
|
347
|
+
/** Delegated login: read, accept or reject the `login_challenge` your sign-in page received. */
|
|
348
|
+
loginRequests: {
|
|
349
|
+
get(loginChallenge: string): Promise<DelegatedLoginRequest>;
|
|
350
|
+
accept(loginChallenge: string, body: {
|
|
351
|
+
subject: string;
|
|
352
|
+
remember?: boolean;
|
|
353
|
+
amr?: string[];
|
|
354
|
+
acr?: string;
|
|
355
|
+
}): Promise<DelegatedRedirect>;
|
|
356
|
+
reject(loginChallenge: string, body?: DelegatedReject): Promise<DelegatedRedirect>;
|
|
357
|
+
};
|
|
358
|
+
/** Delegated consent: read, accept or reject the `consent_challenge` your consent page received. */
|
|
359
|
+
consentRequests: {
|
|
360
|
+
get(consentChallenge: string): Promise<DelegatedConsentRequest>;
|
|
361
|
+
accept(consentChallenge: string, body?: {
|
|
362
|
+
grant_scope?: string[];
|
|
363
|
+
remember?: boolean;
|
|
364
|
+
}): Promise<DelegatedRedirect>;
|
|
365
|
+
reject(consentChallenge: string, body?: DelegatedReject): Promise<DelegatedRedirect>;
|
|
366
|
+
};
|
|
287
367
|
/** RFC 7591 §3 initial access tokens for dynamic client registration. */
|
|
288
368
|
initialAccessTokens: {
|
|
289
369
|
list(): Promise<ListPage<OAuthInitialAccessToken>>;
|
|
@@ -294,6 +374,26 @@ export declare function oauthClientsResource(request: RequestFn): {
|
|
|
294
374
|
}>;
|
|
295
375
|
revoke(id: string): Promise<OAuthInitialAccessToken>;
|
|
296
376
|
};
|
|
377
|
+
/** Issuers whose signed tokens this client accepts (jwt-bearer grant, workload identity). */
|
|
378
|
+
trustedIssuers: {
|
|
379
|
+
list(clientId: string): Promise<ListPage<TrustedIssuer>>;
|
|
380
|
+
create(clientId: string, body: TrustedIssuerInput): Promise<TrustedIssuer>;
|
|
381
|
+
delete(clientId: string, issuerId: string): Promise<{
|
|
382
|
+
object: "oauth_trusted_issuer";
|
|
383
|
+
id: string;
|
|
384
|
+
deleted: true;
|
|
385
|
+
}>;
|
|
386
|
+
};
|
|
387
|
+
/** Workload identity federation helpers (SPIFFE, Kubernetes, GitHub Actions, GCP, Azure). */
|
|
388
|
+
workloadIdentity: {
|
|
389
|
+
presets(): Promise<ListPage<WorkloadPreset>>;
|
|
390
|
+
cloudTrust(query: {
|
|
391
|
+
provider: "aws" | "gcp" | "azure";
|
|
392
|
+
audience: string;
|
|
393
|
+
subject: string;
|
|
394
|
+
tenant_id?: string;
|
|
395
|
+
}): Promise<Record<string, unknown>>;
|
|
396
|
+
};
|
|
297
397
|
grants: {
|
|
298
398
|
list(clientId: string): Promise<ListPage<ClientGrant>>;
|
|
299
399
|
create(clientId: string, body: {
|
|
@@ -307,3 +407,83 @@ export declare function oauthClientsResource(request: RequestFn): {
|
|
|
307
407
|
}>;
|
|
308
408
|
};
|
|
309
409
|
};
|
|
410
|
+
export interface OAuthClientAppBranding {
|
|
411
|
+
heading?: string | null;
|
|
412
|
+
subheading?: string | null;
|
|
413
|
+
logo_url?: string | null;
|
|
414
|
+
primary_color?: string | null;
|
|
415
|
+
}
|
|
416
|
+
export interface OAuthClientAppSettingsPatch {
|
|
417
|
+
/** Method names (password, passkey, oauth_google, ...) or the families oauth and enterprise_sso. */
|
|
418
|
+
allowed_sign_in_methods?: string[] | null;
|
|
419
|
+
branding?: OAuthClientAppBranding | null;
|
|
420
|
+
/** User claims the app receives in ID tokens and userinfo; protocol claims always pass. */
|
|
421
|
+
claims_allowlist?: string[] | null;
|
|
422
|
+
/** Traits a session from this app may change. */
|
|
423
|
+
writable_traits?: string[] | null;
|
|
424
|
+
/** Overrides of the instance's risk-based MFA for sign-ins to this app. */
|
|
425
|
+
risk?: OAuthClientAppRisk | null;
|
|
426
|
+
}
|
|
427
|
+
export type OAuthClientRiskLevelAction = 'default' | 'allow' | 'notify' | 'mfa' | 'block';
|
|
428
|
+
export interface OAuthClientAppRisk {
|
|
429
|
+
enabled?: boolean | null;
|
|
430
|
+
mode?: 'enforce' | 'audit' | null;
|
|
431
|
+
step_up_threshold?: 'low' | 'medium' | 'high' | null;
|
|
432
|
+
on_high_risk_no_factor?: 'allow' | 'block' | 'require_enroll' | null;
|
|
433
|
+
level_actions?: {
|
|
434
|
+
medium?: OAuthClientRiskLevelAction | null;
|
|
435
|
+
high?: OAuthClientRiskLevelAction | null;
|
|
436
|
+
} | null;
|
|
437
|
+
/** The refresh-time check for sessions that came from this app. */
|
|
438
|
+
mid_session?: {
|
|
439
|
+
enabled?: boolean | null;
|
|
440
|
+
action?: 'revoke' | 'notify' | 'audit' | null;
|
|
441
|
+
} | null;
|
|
442
|
+
}
|
|
443
|
+
export interface OAuthClientAppSettings {
|
|
444
|
+
object: 'app_settings';
|
|
445
|
+
client_id: string;
|
|
446
|
+
allowed_sign_in_methods: string[] | null;
|
|
447
|
+
branding: Required<OAuthClientAppBranding> | null;
|
|
448
|
+
claims_allowlist: string[] | null;
|
|
449
|
+
writable_traits: string[] | null;
|
|
450
|
+
risk: OAuthClientAppRisk | null;
|
|
451
|
+
}
|
|
452
|
+
export interface DelegatedClientRef {
|
|
453
|
+
id: string;
|
|
454
|
+
client_id: string;
|
|
455
|
+
name: string;
|
|
456
|
+
first_party?: boolean;
|
|
457
|
+
}
|
|
458
|
+
export interface DelegatedLoginRequest {
|
|
459
|
+
object: 'oauth_login_request';
|
|
460
|
+
client: DelegatedClientRef;
|
|
461
|
+
requested_scope: string[];
|
|
462
|
+
audience: string | null;
|
|
463
|
+
page: 'sign-in' | 'sign-up';
|
|
464
|
+
/** The Atlas user already signed in on this browser, if any. */
|
|
465
|
+
session_subject: string | null;
|
|
466
|
+
ui_locales: string | null;
|
|
467
|
+
login_hint: string | null;
|
|
468
|
+
expires_at: number;
|
|
469
|
+
}
|
|
470
|
+
export interface DelegatedConsentRequest {
|
|
471
|
+
object: 'oauth_consent_request';
|
|
472
|
+
subject: string;
|
|
473
|
+
client: DelegatedClientRef;
|
|
474
|
+
requested_scope: string[];
|
|
475
|
+
audience: string | null;
|
|
476
|
+
authorization_details: unknown[];
|
|
477
|
+
organization_id: string | null;
|
|
478
|
+
redirect_uri: string;
|
|
479
|
+
expires_at: number;
|
|
480
|
+
}
|
|
481
|
+
export interface DelegatedRedirect {
|
|
482
|
+
object: 'oauth_login_redirect' | 'oauth_consent_redirect';
|
|
483
|
+
/** Send the end user's browser here next. */
|
|
484
|
+
redirect_to: string;
|
|
485
|
+
}
|
|
486
|
+
export interface DelegatedReject {
|
|
487
|
+
error?: 'access_denied' | 'login_required' | 'interaction_required' | 'consent_required' | 'account_selection_required' | 'unauthorized_client' | 'temporarily_unavailable' | 'server_error';
|
|
488
|
+
error_description?: string;
|
|
489
|
+
}
|
|
@@ -37,6 +37,20 @@ function oauthClientsResource(request) {
|
|
|
37
37
|
delete(id) {
|
|
38
38
|
return request({ method: 'DELETE', path: `/v1/oauth_clients/${(0, request_1.enc)(id)}` });
|
|
39
39
|
},
|
|
40
|
+
/**
|
|
41
|
+
* Per-application settings: allowed sign-in methods, hosted-page branding,
|
|
42
|
+
* the user-claim allow-list for ID tokens and userinfo, and writable traits.
|
|
43
|
+
*/
|
|
44
|
+
appSettings: {
|
|
45
|
+
/** `GET /v1/oauth_clients/:id/app_settings` */
|
|
46
|
+
get(id) {
|
|
47
|
+
return request({ method: 'GET', path: `/v1/oauth_clients/${(0, request_1.enc)(id)}/app_settings` });
|
|
48
|
+
},
|
|
49
|
+
/** `PATCH /v1/oauth_clients/:id/app_settings` — fields sent replace the stored ones; null clears. */
|
|
50
|
+
update(id, body) {
|
|
51
|
+
return request({ method: 'PATCH', path: `/v1/oauth_clients/${(0, request_1.enc)(id)}/app_settings`, body });
|
|
52
|
+
},
|
|
53
|
+
},
|
|
40
54
|
/** The client's back-channel logout delivery log, newest first. */
|
|
41
55
|
listBackchannelDeliveries(id, query = {}) {
|
|
42
56
|
return request({
|
|
@@ -49,6 +63,34 @@ function oauthClientsResource(request) {
|
|
|
49
63
|
testBackchannelLogout(id) {
|
|
50
64
|
return request({ method: 'POST', path: `/v1/oauth_clients/${(0, request_1.enc)(id)}/backchannel_logout/test` });
|
|
51
65
|
},
|
|
66
|
+
/** Set (or clear with null) the URLs of your own sign-in and consent pages for a client. */
|
|
67
|
+
setDelegatedUi(id, body) {
|
|
68
|
+
return request({ method: 'PUT', path: `/v1/oauth_clients/${(0, request_1.enc)(id)}/delegated_ui`, body });
|
|
69
|
+
},
|
|
70
|
+
/** Delegated login: read, accept or reject the `login_challenge` your sign-in page received. */
|
|
71
|
+
loginRequests: {
|
|
72
|
+
get(loginChallenge) {
|
|
73
|
+
return request({ method: 'GET', path: '/v1/oauth_login_requests', query: { login_challenge: loginChallenge } });
|
|
74
|
+
},
|
|
75
|
+
accept(loginChallenge, body) {
|
|
76
|
+
return request({ method: 'PUT', path: '/v1/oauth_login_requests/accept', query: { login_challenge: loginChallenge }, body });
|
|
77
|
+
},
|
|
78
|
+
reject(loginChallenge, body = {}) {
|
|
79
|
+
return request({ method: 'PUT', path: '/v1/oauth_login_requests/reject', query: { login_challenge: loginChallenge }, body });
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
/** Delegated consent: read, accept or reject the `consent_challenge` your consent page received. */
|
|
83
|
+
consentRequests: {
|
|
84
|
+
get(consentChallenge) {
|
|
85
|
+
return request({ method: 'GET', path: '/v1/oauth_consent_requests', query: { consent_challenge: consentChallenge } });
|
|
86
|
+
},
|
|
87
|
+
accept(consentChallenge, body = {}) {
|
|
88
|
+
return request({ method: 'PUT', path: '/v1/oauth_consent_requests/accept', query: { consent_challenge: consentChallenge }, body });
|
|
89
|
+
},
|
|
90
|
+
reject(consentChallenge, body = {}) {
|
|
91
|
+
return request({ method: 'PUT', path: '/v1/oauth_consent_requests/reject', query: { consent_challenge: consentChallenge }, body });
|
|
92
|
+
},
|
|
93
|
+
},
|
|
52
94
|
/** RFC 7591 §3 initial access tokens for dynamic client registration. */
|
|
53
95
|
initialAccessTokens: {
|
|
54
96
|
list() {
|
|
@@ -62,6 +104,28 @@ function oauthClientsResource(request) {
|
|
|
62
104
|
return request({ method: 'DELETE', path: `/v1/oauth_initial_access_tokens/${(0, request_1.enc)(id)}` });
|
|
63
105
|
},
|
|
64
106
|
},
|
|
107
|
+
/** Issuers whose signed tokens this client accepts (jwt-bearer grant, workload identity). */
|
|
108
|
+
trustedIssuers: {
|
|
109
|
+
list(clientId) {
|
|
110
|
+
return request({ method: 'GET', path: `/v1/oauth_clients/${(0, request_1.enc)(clientId)}/trusted_issuers` });
|
|
111
|
+
},
|
|
112
|
+
create(clientId, body) {
|
|
113
|
+
return request({ method: 'POST', path: `/v1/oauth_clients/${(0, request_1.enc)(clientId)}/trusted_issuers`, body });
|
|
114
|
+
},
|
|
115
|
+
delete(clientId, issuerId) {
|
|
116
|
+
return request({ method: 'DELETE', path: `/v1/oauth_clients/${(0, request_1.enc)(clientId)}/trusted_issuers/${(0, request_1.enc)(issuerId)}` });
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
/** Workload identity federation helpers (SPIFFE, Kubernetes, GitHub Actions, GCP, Azure). */
|
|
120
|
+
workloadIdentity: {
|
|
121
|
+
presets() {
|
|
122
|
+
return request({ method: 'GET', path: '/v1/workload_identity/presets' });
|
|
123
|
+
},
|
|
124
|
+
cloudTrust(query) {
|
|
125
|
+
const qs = new URLSearchParams(query).toString();
|
|
126
|
+
return request({ method: 'GET', path: `/v1/workload_identity/cloud_trust?${qs}` });
|
|
127
|
+
},
|
|
128
|
+
},
|
|
65
129
|
grants: {
|
|
66
130
|
list(clientId) {
|
|
67
131
|
return request({ method: 'GET', path: `/v1/oauth_clients/${(0, request_1.enc)(clientId)}/grants` });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-clients.js","sourceRoot":"","sources":["../../src/client/oauth-clients.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"oauth-clients.js","sourceRoot":"","sources":["../../src/client/oauth-clients.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type RequestFn } from './request';
|
|
2
|
+
import type { ListPage } from './types';
|
|
3
|
+
export interface OrgRoleGrant {
|
|
4
|
+
object: 'org_role_grant';
|
|
5
|
+
id: string;
|
|
6
|
+
grantor_org_id: string;
|
|
7
|
+
grantee_org_id: string;
|
|
8
|
+
role_keys: string[];
|
|
9
|
+
status: 'active' | 'revoked';
|
|
10
|
+
created_at: number;
|
|
11
|
+
revoked_at: number | null;
|
|
12
|
+
}
|
|
13
|
+
export interface OrgRoleDelegation {
|
|
14
|
+
object: 'org_role_delegation';
|
|
15
|
+
id: string;
|
|
16
|
+
grant_id: string;
|
|
17
|
+
user_id: string;
|
|
18
|
+
role_key: string;
|
|
19
|
+
created_at: number;
|
|
20
|
+
}
|
|
21
|
+
export interface EffectiveDelegatedRole {
|
|
22
|
+
organization_id: string;
|
|
23
|
+
grant_id: string;
|
|
24
|
+
role_key: string;
|
|
25
|
+
permissions: string[];
|
|
26
|
+
}
|
|
27
|
+
export declare function orgRoleGrantsResource(request: RequestFn): {
|
|
28
|
+
list(query?: {
|
|
29
|
+
grantor_org_id?: string;
|
|
30
|
+
grantee_org_id?: string;
|
|
31
|
+
status?: "active";
|
|
32
|
+
}): Promise<ListPage<OrgRoleGrant>>;
|
|
33
|
+
create(body: {
|
|
34
|
+
grantor_org_id: string;
|
|
35
|
+
grantee_org_id: string;
|
|
36
|
+
role_keys: string[];
|
|
37
|
+
}): Promise<OrgRoleGrant>;
|
|
38
|
+
get(id: string): Promise<OrgRoleGrant>;
|
|
39
|
+
update(id: string, body: {
|
|
40
|
+
role_keys: string[];
|
|
41
|
+
}): Promise<OrgRoleGrant>;
|
|
42
|
+
revoke(id: string): Promise<OrgRoleGrant>;
|
|
43
|
+
listDelegations(id: string): Promise<ListPage<OrgRoleDelegation>>;
|
|
44
|
+
delegate(id: string, body: {
|
|
45
|
+
user_id: string;
|
|
46
|
+
role_key: string;
|
|
47
|
+
}): Promise<OrgRoleDelegation>;
|
|
48
|
+
undelegate(id: string, delegationId: string): Promise<{
|
|
49
|
+
object: "org_role_delegation";
|
|
50
|
+
id: string;
|
|
51
|
+
deleted: true;
|
|
52
|
+
}>;
|
|
53
|
+
effective(query: {
|
|
54
|
+
user_id: string;
|
|
55
|
+
organization_id?: string;
|
|
56
|
+
}): Promise<ListPage<EffectiveDelegatedRole>>;
|
|
57
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.orgRoleGrantsResource = orgRoleGrantsResource;
|
|
4
|
+
const request_1 = require("./request");
|
|
5
|
+
const qs = (query) => {
|
|
6
|
+
const q = new URLSearchParams(Object.entries(query).filter((e) => e[1] !== undefined)).toString();
|
|
7
|
+
return q ? `?${q}` : '';
|
|
8
|
+
};
|
|
9
|
+
function orgRoleGrantsResource(request) {
|
|
10
|
+
return {
|
|
11
|
+
list(query = {}) {
|
|
12
|
+
return request({ method: 'GET', path: `/v1/org_role_grants${qs(query)}` });
|
|
13
|
+
},
|
|
14
|
+
create(body) {
|
|
15
|
+
return request({ method: 'POST', path: '/v1/org_role_grants', body });
|
|
16
|
+
},
|
|
17
|
+
get(id) {
|
|
18
|
+
return request({ method: 'GET', path: `/v1/org_role_grants/${(0, request_1.enc)(id)}` });
|
|
19
|
+
},
|
|
20
|
+
update(id, body) {
|
|
21
|
+
return request({ method: 'PATCH', path: `/v1/org_role_grants/${(0, request_1.enc)(id)}`, body });
|
|
22
|
+
},
|
|
23
|
+
revoke(id) {
|
|
24
|
+
return request({ method: 'DELETE', path: `/v1/org_role_grants/${(0, request_1.enc)(id)}` });
|
|
25
|
+
},
|
|
26
|
+
listDelegations(id) {
|
|
27
|
+
return request({ method: 'GET', path: `/v1/org_role_grants/${(0, request_1.enc)(id)}/delegations` });
|
|
28
|
+
},
|
|
29
|
+
delegate(id, body) {
|
|
30
|
+
return request({ method: 'POST', path: `/v1/org_role_grants/${(0, request_1.enc)(id)}/delegations`, body });
|
|
31
|
+
},
|
|
32
|
+
undelegate(id, delegationId) {
|
|
33
|
+
return request({ method: 'DELETE', path: `/v1/org_role_grants/${(0, request_1.enc)(id)}/delegations/${(0, request_1.enc)(delegationId)}` });
|
|
34
|
+
},
|
|
35
|
+
effective(query) {
|
|
36
|
+
return request({ method: 'GET', path: `/v1/org_role_grants/effective${qs(query)}` });
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=org-role-grants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-role-grants.js","sourceRoot":"","sources":["../../src/client/org-role-grants.ts"],"names":[],"mappings":";;AAmCA,sDA8BC;AAjED,uCAAgD;AA8BhD,MAAM,EAAE,GAAG,CAAC,KAAyC,EAAE,EAAE;IACvD,MAAM,CAAC,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzH,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1B,CAAC,CAAC;AAEF,SAAgB,qBAAqB,CAAC,OAAkB;IACtD,OAAO;QACL,IAAI,CAAC,QAAiF,EAAE;YACtF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,CAAC,IAA6E;YAClF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,GAAG,CAAC,EAAU;YACZ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,CAAC,EAAU,EAAE,IAA6B;YAC9C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,CAAC,EAAU;YACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,eAAe,CAAC,EAAU;YACxB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,QAAQ,CAAC,EAAU,EAAE,IAA2C;YAC9D,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,UAAU,CAAC,EAAU,EAAE,YAAoB;YACzC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,EAAE,CAAC,gBAAgB,IAAA,aAAG,EAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;QAChH,CAAC;QACD,SAAS,CAAC,KAAoD;YAC5D,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC;KACF,CAAC;AACJ,CAAC"}
|