@atlasauth/backend 0.26.0 → 0.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/botid.js +3 -3
- package/dist/botid.js.map +1 -1
- package/dist/client/abac.d.ts +65 -0
- package/dist/client/abac.js +25 -0
- package/dist/client/abac.js.map +1 -1
- package/dist/client/access-policies.d.ts +84 -2
- package/dist/client/access-policies.js +8 -0
- package/dist/client/access-policies.js.map +1 -1
- package/dist/client/actions.d.ts +1 -1
- package/dist/client/actions.js.map +1 -1
- package/dist/client/agent-platform.d.ts +294 -0
- package/dist/client/agent-platform.js +132 -0
- package/dist/client/agent-platform.js.map +1 -0
- package/dist/client/app-catalog.d.ts +60 -1
- package/dist/client/app-catalog.js +32 -2
- package/dist/client/app-catalog.js.map +1 -1
- package/dist/client/authz-decisions.d.ts +46 -0
- package/dist/client/authz-decisions.js +13 -0
- package/dist/client/authz-decisions.js.map +1 -1
- package/dist/client/connections.d.ts +12 -0
- package/dist/client/connections.js +7 -0
- package/dist/client/connections.js.map +1 -1
- package/dist/client/desktop-mfa.d.ts +37 -0
- package/dist/client/desktop-mfa.js +14 -0
- package/dist/client/desktop-mfa.js.map +1 -1
- package/dist/client/devices.d.ts +130 -0
- package/dist/client/devices.js +54 -0
- package/dist/client/devices.js.map +1 -1
- package/dist/client/email-templates.d.ts +1 -1
- package/dist/client/email-templates.js.map +1 -1
- package/dist/client/fga.d.ts +176 -1
- package/dist/client/fga.js +41 -1
- package/dist/client/fga.js.map +1 -1
- package/dist/client/index.d.ts +3782 -2946
- package/dist/client/index.js +28 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/log-streams.d.ts +1 -1
- package/dist/client/mcp-gateways.d.ts +148 -2
- package/dist/client/mcp-gateways.js +52 -0
- package/dist/client/mcp-gateways.js.map +1 -1
- package/dist/client/messaging.d.ts +11 -2
- package/dist/client/messaging.js.map +1 -1
- package/dist/client/oauth-protocols.d.ts +116 -0
- package/dist/client/oauth-protocols.js +54 -0
- package/dist/client/oauth-protocols.js.map +1 -0
- package/dist/client/oauth-providers.d.ts +4 -4
- package/dist/client/org-ldap-connections.d.ts +3 -0
- package/dist/client/org-ldap-connections.js.map +1 -1
- package/dist/client/organizations.d.ts +14 -0
- package/dist/client/organizations.js.map +1 -1
- package/dist/client/risk-containment.d.ts +244 -0
- package/dist/client/risk-containment.js +120 -0
- package/dist/client/risk-containment.js.map +1 -0
- package/dist/client/saml-idp.d.ts +183 -0
- package/dist/client/saml-idp.js +71 -0
- package/dist/client/saml-idp.js.map +1 -0
- package/dist/client/scim-provisioning.d.ts +100 -4
- package/dist/client/scim-provisioning.js +30 -0
- package/dist/client/scim-provisioning.js.map +1 -1
- package/dist/client/scim-tokens.d.ts +34 -0
- package/dist/client/scim-tokens.js +17 -0
- package/dist/client/scim-tokens.js.map +1 -1
- package/dist/client/service-connectors.d.ts +1 -1
- package/dist/client/ssf.d.ts +29 -0
- package/dist/client/ssf.js +17 -0
- package/dist/client/ssf.js.map +1 -1
- package/dist/client/users.d.ts +9 -0
- package/dist/client/users.js +9 -0
- package/dist/client/users.js.map +1 -1
- package/dist/client/vault.d.ts +54 -0
- package/dist/client/vault.js +30 -0
- package/dist/client/vault.js.map +1 -1
- package/dist/client/vc.d.ts +54 -2
- package/dist/client/vc.js +15 -0
- package/dist/client/vc.js.map +1 -1
- package/dist/client/workflows.d.ts +182 -3
- package/dist/client/workflows.js +34 -0
- package/dist/client/workflows.js.map +1 -1
- package/dist/edge-crypto.d.ts +13 -0
- package/dist/edge-crypto.js +46 -0
- package/dist/edge-crypto.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/oauth-resource.d.ts +30 -3
- package/dist/oauth-resource.js +43 -2
- package/dist/oauth-resource.js.map +1 -1
- package/dist/policy-source.js +4 -4
- package/dist/policy-source.js.map +1 -1
- package/dist/referral-test-calls.js +8 -8
- package/dist/referral-test-calls.js.map +1 -1
- package/dist/txn-token.d.ts +36 -0
- package/dist/txn-token.js +30 -0
- package/dist/txn-token.js.map +1 -0
- package/dist/webhooks.js +5 -5
- package/dist/webhooks.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlasauth/backend changelog
|
|
2
2
|
|
|
3
|
+
## 0.27.1 — 2026-10-28
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- The package entry no longer imports `node:crypto`: webhook, policy-feed, bot-id and referral signing use @noble/hashes and Web Crypto, so it bundles for edge and worker runtimes (Next.js 15 edge middleware). Public API unchanged.
|
|
8
|
+
|
|
9
|
+
## 0.27.0 — 2026-10-28
|
|
10
|
+
|
|
11
|
+
- SAML IdP (service providers, artifacts, attribute queries), WS-Federation, outbound provisioning connectors, SCIM custom resources and cloud access targets
|
|
12
|
+
- OpenID provider: per-client signing/encryption, op key rotation, token-exchange profiles, refresh-token search and bulk revoke, federation resolve, verifiable-credential deferred issuance and presentation requests; `requireAcr`/`maxAge` step-up on access-token verification and `verifyTransactionToken`
|
|
13
|
+
- Conditional access depth: report-only and impact replay, device assurance policies and pull integrations, risky users, containment, temporary access passes, email risk, authenticator policies
|
|
14
|
+
- Workflows, chat integrations (Slack/Teams approvals), eligible access and activation, staged and recurring reviews, bundles, administrative units, organization application access and B2B connections
|
|
15
|
+
- MCP gateway v2 (upstreams, packs, pins, user auth), connection actions and triggers, agent lifecycle and reviews, telemetry export
|
|
16
|
+
- Authorization: tuple expiry, decision points, Cedar JSON and token authorization, FGA assertions/materializations/bulk import, customer-managed keys, coupons, credits, user merge, audit retention
|
|
17
|
+
- Device-bound SSO registrations; SMTP2GO email transport
|
|
18
|
+
|
|
3
19
|
## 0.26.0 — 2026-10-27
|
|
4
20
|
|
|
5
21
|
### Added
|
package/dist/botid.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BOTID_SECRET_MIN_LENGTH = exports.BOTID_ATTESTATION_MAX_TTL_SECONDS = exports.BOTID_ATTESTATION_PREFIX = void 0;
|
|
4
4
|
exports.createBotIdAttestation = createBotIdAttestation;
|
|
5
5
|
exports.botIdAttestationHandler = botIdAttestationHandler;
|
|
6
|
-
const
|
|
6
|
+
const edge_crypto_1 = require("./edge-crypto");
|
|
7
7
|
/**
|
|
8
8
|
* Vercel BotID for Atlas — the server half that runs on YOUR Vercel deployment.
|
|
9
9
|
*
|
|
@@ -55,9 +55,9 @@ function createBotIdAttestation(options) {
|
|
|
55
55
|
verified_bot: verdict.isVerifiedBot === true,
|
|
56
56
|
iat,
|
|
57
57
|
exp: iat + ttl,
|
|
58
|
-
jti: (0,
|
|
58
|
+
jti: (0, edge_crypto_1.randomBytes)(18).toString('base64url'),
|
|
59
59
|
}), 'utf8').toString('base64url');
|
|
60
|
-
const sig = (0,
|
|
60
|
+
const sig = (0, edge_crypto_1.createHmac)('sha256', secret).update(exports.BOTID_ATTESTATION_PREFIX + payload).digest('base64url');
|
|
61
61
|
return `${exports.BOTID_ATTESTATION_PREFIX}${payload}.${sig}`;
|
|
62
62
|
}
|
|
63
63
|
/**
|
package/dist/botid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"botid.js","sourceRoot":"","sources":["../src/botid.ts"],"names":[],"mappings":";;;AA8DA,wDAoBC;AAiBD,0DAiBC;AApHD
|
|
1
|
+
{"version":3,"file":"botid.js","sourceRoot":"","sources":["../src/botid.ts"],"names":[],"mappings":";;;AA8DA,wDAoBC;AAiBD,0DAiBC;AApHD,+CAAwD;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,4CAA4C;AAC/B,QAAA,wBAAwB,GAAG,iBAAiB,CAAC;AAE1D,yEAAyE;AAC5D,QAAA,iCAAiC,GAAG,GAAG,CAAC;AAErD,+CAA+C;AAClC,QAAA,uBAAuB,GAAG,EAAE,CAAC;AAoB1C;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,OAAsC;IAC3E,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACpC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,+BAAuB,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,iDAAiD,+BAAuB,cAAc,CAAC,CAAC;IAC1G,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,yCAAiC,CAAC,CAAC;IAC3G,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,IAAI,CAAC,SAAS,CAAC;QACb,CAAC,EAAE,CAAC;QACJ,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,KAAK;QAC/B,YAAY,EAAE,OAAO,CAAC,aAAa,KAAK,IAAI;QAC5C,GAAG;QACH,GAAG,EAAE,GAAG,GAAG,GAAG;QACd,GAAG,EAAE,IAAA,yBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;KAC3C,CAAC,EACF,MAAM,CACP,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxB,MAAM,GAAG,GAAG,IAAA,wBAAU,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,gCAAwB,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACxG,OAAO,GAAG,gCAAwB,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC;AACxD,CAAC;AAWD;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAC,OAAuC;IAC7E,OAAO,KAAK,IAAI,EAAE;QAChB,IAAI,OAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,EAAE;gBAClE,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE;aAC7E,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,GAAG,sBAAsB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1G,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;YAC7C,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE;SAC7E,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/client/abac.d.ts
CHANGED
|
@@ -64,6 +64,11 @@ export interface AbacDecision {
|
|
|
64
64
|
decision: 'allow' | 'deny';
|
|
65
65
|
reasons: string[];
|
|
66
66
|
errors: string[];
|
|
67
|
+
/** `@annotations` of the policies that decided it, when any carry them. */
|
|
68
|
+
annotations?: Array<{
|
|
69
|
+
policy: string;
|
|
70
|
+
annotations: Record<string, string>;
|
|
71
|
+
}>;
|
|
67
72
|
}
|
|
68
73
|
export interface AbacCoverageClause {
|
|
69
74
|
kind: 'when' | 'unless';
|
|
@@ -410,6 +415,51 @@ export declare function abacResource(request: RequestFn): {
|
|
|
410
415
|
source?: string;
|
|
411
416
|
tests?: AbacPolicyTestCase[];
|
|
412
417
|
}): Promise<AbacTestRun>;
|
|
418
|
+
/** Cedar JSON policy format: export policy text, import JSON (optionally creating the policy with `name`). */
|
|
419
|
+
cedar: {
|
|
420
|
+
export(source: string): Promise<{
|
|
421
|
+
object: "cedar_json_policies";
|
|
422
|
+
policies: Array<Record<string, unknown>>;
|
|
423
|
+
}>;
|
|
424
|
+
import(body: {
|
|
425
|
+
policies: Array<Record<string, unknown>>;
|
|
426
|
+
name?: string;
|
|
427
|
+
fga_store_id?: string | null;
|
|
428
|
+
}): Promise<{
|
|
429
|
+
object: "cedar_source";
|
|
430
|
+
source: string;
|
|
431
|
+
policies: number;
|
|
432
|
+
} | AbacPolicy>;
|
|
433
|
+
forPolicy(id: string): Promise<{
|
|
434
|
+
object: "cedar_json_policies";
|
|
435
|
+
policies: Array<Record<string, unknown>>;
|
|
436
|
+
}>;
|
|
437
|
+
};
|
|
438
|
+
/** How access-token claims become a policy principal and its parents (used by {@link authorizeToken}). */
|
|
439
|
+
tokenMapping: {
|
|
440
|
+
get(): Promise<AbacTokenMapping>;
|
|
441
|
+
put(body: Partial<Omit<AbacTokenMapping, "object">>): Promise<AbacTokenMapping>;
|
|
442
|
+
};
|
|
443
|
+
/** Decide for the principal an access token stands for (verified first; an invalid token is a 401). */
|
|
444
|
+
authorizeToken(body: {
|
|
445
|
+
access_token: string;
|
|
446
|
+
action: string;
|
|
447
|
+
resource: {
|
|
448
|
+
type: string;
|
|
449
|
+
id: string;
|
|
450
|
+
attributes?: Record<string, unknown>;
|
|
451
|
+
};
|
|
452
|
+
context?: Record<string, unknown>;
|
|
453
|
+
entities?: AbacEntity[];
|
|
454
|
+
policy_ids?: string[];
|
|
455
|
+
}): Promise<AbacDecision & {
|
|
456
|
+
principal: {
|
|
457
|
+
type: string;
|
|
458
|
+
id: string;
|
|
459
|
+
parents: string[];
|
|
460
|
+
};
|
|
461
|
+
issuer: "atlas" | "trusted";
|
|
462
|
+
}>;
|
|
413
463
|
/** May `principal` perform `action` on `resource`? */
|
|
414
464
|
evaluate(body: AbacEvaluateBody): Promise<AbacDecision>;
|
|
415
465
|
/**
|
|
@@ -519,3 +569,18 @@ export declare function abacResource(request: RequestFn): {
|
|
|
519
569
|
}>;
|
|
520
570
|
};
|
|
521
571
|
export { FilterCompileError, evalFilter, filterToDrizzle, filterToPrisma, filterToSql, type DrizzleOps, type DrizzleOptions, type Filter, type FilterRows, type PrismaOptions, type SqlColumn, type SqlDialect, type SqlFragment, type SqlOptions, } from '@atlasauth/authz';
|
|
572
|
+
export interface AbacTokenMapping {
|
|
573
|
+
object: 'abac_token_mapping';
|
|
574
|
+
principal_type: string;
|
|
575
|
+
id_claim: string;
|
|
576
|
+
parents: Array<{
|
|
577
|
+
claim: string;
|
|
578
|
+
type: string;
|
|
579
|
+
}>;
|
|
580
|
+
attribute_claims: string[];
|
|
581
|
+
trusted_issuers: Array<{
|
|
582
|
+
issuer: string;
|
|
583
|
+
jwks_uri: string;
|
|
584
|
+
audience?: string;
|
|
585
|
+
}>;
|
|
586
|
+
}
|
package/dist/client/abac.js
CHANGED
|
@@ -28,6 +28,31 @@ function abacResource(request) {
|
|
|
28
28
|
test(id, body = {}) {
|
|
29
29
|
return request({ method: 'POST', path: `/v1/abac_policies/${(0, request_1.enc)(id)}/test`, body });
|
|
30
30
|
},
|
|
31
|
+
/** Cedar JSON policy format: export policy text, import JSON (optionally creating the policy with `name`). */
|
|
32
|
+
cedar: {
|
|
33
|
+
export(source) {
|
|
34
|
+
return request({ method: 'POST', path: '/v1/abac/cedar/export', body: { source } });
|
|
35
|
+
},
|
|
36
|
+
import(body) {
|
|
37
|
+
return request({ method: 'POST', path: '/v1/abac/cedar/import', body });
|
|
38
|
+
},
|
|
39
|
+
forPolicy(id) {
|
|
40
|
+
return request({ method: 'GET', path: `/v1/abac_policies/${(0, request_1.enc)(id)}/cedar_json` });
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
/** How access-token claims become a policy principal and its parents (used by {@link authorizeToken}). */
|
|
44
|
+
tokenMapping: {
|
|
45
|
+
get() {
|
|
46
|
+
return request({ method: 'GET', path: '/v1/abac/token_mapping' });
|
|
47
|
+
},
|
|
48
|
+
put(body) {
|
|
49
|
+
return request({ method: 'PUT', path: '/v1/abac/token_mapping', body });
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
/** Decide for the principal an access token stands for (verified first; an invalid token is a 401). */
|
|
53
|
+
authorizeToken(body) {
|
|
54
|
+
return request({ method: 'POST', path: '/v1/abac/authorize_token', body });
|
|
55
|
+
},
|
|
31
56
|
/** May `principal` perform `action` on `resource`? */
|
|
32
57
|
evaluate(body) {
|
|
33
58
|
return request({ method: 'POST', path: '/v1/abac/evaluate', body });
|
package/dist/client/abac.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abac.js","sourceRoot":"","sources":["../../src/client/abac.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"abac.js","sourceRoot":"","sources":["../../src/client/abac.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import { type RequestFn } from './request';
|
|
2
2
|
import type { ListPage } from './types';
|
|
3
3
|
export type AccessPolicyStage = 'sign_in' | 'authorize' | 'token';
|
|
4
|
-
export type AccessPolicyGrantType = 'allow' | 'block' | 'require_mfa' | 'require_acr' | 'require_policy_acceptance' | 'require_action';
|
|
4
|
+
export type AccessPolicyGrantType = 'allow' | 'block' | 'require_mfa' | 'require_acr' | 'require_policy_acceptance' | 'require_action' | 'require_auth_strength' | 'require_device_bound_session' | 'require_password_change' | 'sign_in_frequency' | 'persistent_session' | 'max_session_age';
|
|
5
|
+
export type AccessPolicyMode = 'enforce' | 'report_only';
|
|
6
|
+
export type AccessPolicyTarget = 'user' | 'machine' | 'agent';
|
|
7
|
+
export type AccessClientType = 'browser' | 'native' | 'legacy' | 'device_code' | 'ciba' | 'machine' | 'agent';
|
|
5
8
|
export interface AccessPolicyGrant {
|
|
6
9
|
type: AccessPolicyGrantType;
|
|
7
|
-
/** require_acr: the acr; require_policy_acceptance: the policy key; require_action: the action name. */
|
|
10
|
+
/** require_acr: the acr; require_policy_acceptance: the policy key; require_action: the action name; require_auth_strength: mfa | passwordless | phishing_resistant. */
|
|
8
11
|
value?: string;
|
|
12
|
+
/** sign_in_frequency / max_session_age: the limit in seconds (60 to 31536000). */
|
|
13
|
+
seconds?: number;
|
|
14
|
+
/** persistent_session: false forbids a remembered session. */
|
|
15
|
+
allow?: boolean;
|
|
9
16
|
}
|
|
10
17
|
/** Every present condition must match; an absent one matches anything. */
|
|
11
18
|
export interface AccessPolicyConditions {
|
|
@@ -28,6 +35,21 @@ export interface AccessPolicyConditions {
|
|
|
28
35
|
end: string;
|
|
29
36
|
timezone?: string;
|
|
30
37
|
};
|
|
38
|
+
devicePlatforms?: string[];
|
|
39
|
+
osVersion?: {
|
|
40
|
+
min?: string;
|
|
41
|
+
max?: string;
|
|
42
|
+
};
|
|
43
|
+
clientTypes?: AccessClientType[];
|
|
44
|
+
userAttributes?: Array<{
|
|
45
|
+
key: string;
|
|
46
|
+
op: 'eq' | 'neq' | 'in' | 'not_in' | 'contains' | 'exists';
|
|
47
|
+
value?: unknown;
|
|
48
|
+
}>;
|
|
49
|
+
userRiskLevels?: Array<'low' | 'medium' | 'high'>;
|
|
50
|
+
signInRiskLevels?: Array<'low' | 'medium' | 'high'>;
|
|
51
|
+
/** Machine identity or agent ids (targets machine / agent). */
|
|
52
|
+
principalIds?: string[];
|
|
31
53
|
}
|
|
32
54
|
/** A conditional-access policy, evaluated at sign-in, /authorize and token issuance. */
|
|
33
55
|
export interface AccessPolicy {
|
|
@@ -40,6 +62,9 @@ export interface AccessPolicy {
|
|
|
40
62
|
stages: AccessPolicyStage[];
|
|
41
63
|
conditions: AccessPolicyConditions;
|
|
42
64
|
grants: AccessPolicyGrant[];
|
|
65
|
+
/** `report_only` never denies; it records `access_policy.would_block`. */
|
|
66
|
+
mode: AccessPolicyMode;
|
|
67
|
+
targets: AccessPolicyTarget[];
|
|
43
68
|
created_at: number;
|
|
44
69
|
updated_at: number;
|
|
45
70
|
}
|
|
@@ -51,6 +76,8 @@ export interface CreateAccessPolicyBody {
|
|
|
51
76
|
stages?: AccessPolicyStage[];
|
|
52
77
|
conditions?: AccessPolicyConditions;
|
|
53
78
|
grants: AccessPolicyGrant[];
|
|
79
|
+
mode?: AccessPolicyMode;
|
|
80
|
+
targets?: AccessPolicyTarget[];
|
|
54
81
|
}
|
|
55
82
|
export type UpdateAccessPolicyBody = Partial<CreateAccessPolicyBody>;
|
|
56
83
|
export interface SimulateAccessBody {
|
|
@@ -70,6 +97,42 @@ export interface SimulateAccessBody {
|
|
|
70
97
|
acr?: string[];
|
|
71
98
|
/** Epoch ms; default now. */
|
|
72
99
|
now?: number;
|
|
100
|
+
target_type?: AccessPolicyTarget;
|
|
101
|
+
principal_id?: string;
|
|
102
|
+
device_platform?: string;
|
|
103
|
+
os_version?: string;
|
|
104
|
+
client_type?: AccessClientType;
|
|
105
|
+
user_attributes?: Record<string, unknown>;
|
|
106
|
+
user_risk_level?: 'low' | 'medium' | 'high';
|
|
107
|
+
last_auth_age_seconds?: number;
|
|
108
|
+
session_age_seconds?: number;
|
|
109
|
+
device_bound_session?: boolean;
|
|
110
|
+
}
|
|
111
|
+
export interface AccessPolicyImpact {
|
|
112
|
+
object: 'access_policy_impact';
|
|
113
|
+
days: number;
|
|
114
|
+
evaluated: number;
|
|
115
|
+
would_allow: number;
|
|
116
|
+
would_step_up: number;
|
|
117
|
+
would_block: number;
|
|
118
|
+
distinct_users: number;
|
|
119
|
+
affected_users: number;
|
|
120
|
+
samples: Array<{
|
|
121
|
+
user_id: string | null;
|
|
122
|
+
stage: string;
|
|
123
|
+
outcome: string;
|
|
124
|
+
unmet: string[];
|
|
125
|
+
at: number;
|
|
126
|
+
}>;
|
|
127
|
+
}
|
|
128
|
+
export interface AccessPolicyInsights {
|
|
129
|
+
object: 'access_policy_insights';
|
|
130
|
+
days: number;
|
|
131
|
+
evaluated: number;
|
|
132
|
+
would_block: number;
|
|
133
|
+
would_step_up: number;
|
|
134
|
+
by_policy: Record<string, number>;
|
|
135
|
+
by_day: Record<string, number>;
|
|
73
136
|
}
|
|
74
137
|
export interface AccessPolicySimulation {
|
|
75
138
|
object: 'access_policy_simulation';
|
|
@@ -81,8 +144,18 @@ export interface AccessPolicySimulation {
|
|
|
81
144
|
acr: string[];
|
|
82
145
|
policy_acceptance: string[];
|
|
83
146
|
actions: string[];
|
|
147
|
+
auth_strength: 'mfa' | 'passwordless' | 'phishing_resistant' | null;
|
|
148
|
+
sign_in_frequency_seconds: number | null;
|
|
149
|
+
max_session_age_seconds: number | null;
|
|
150
|
+
persistent_session: boolean;
|
|
151
|
+
device_bound_session: boolean;
|
|
84
152
|
};
|
|
85
153
|
unmet: string[];
|
|
154
|
+
report_only: {
|
|
155
|
+
decision: 'allow' | 'block' | 'step_up';
|
|
156
|
+
matched: string[];
|
|
157
|
+
blocked_by: string | null;
|
|
158
|
+
} | null;
|
|
86
159
|
}
|
|
87
160
|
/** CRUD over conditional-access policies, plus a what-if `simulate`. */
|
|
88
161
|
export declare function accessPoliciesResource(request: RequestFn): {
|
|
@@ -95,6 +168,15 @@ export declare function accessPoliciesResource(request: RequestFn): {
|
|
|
95
168
|
id: string;
|
|
96
169
|
deleted: true;
|
|
97
170
|
}>;
|
|
171
|
+
/** Replay a draft policy against recent sampled sign-ins: how many would be allowed, stepped up or blocked. */
|
|
172
|
+
impact(body: {
|
|
173
|
+
draft: CreateAccessPolicyBody | Record<string, unknown>;
|
|
174
|
+
days?: number;
|
|
175
|
+
}): Promise<AccessPolicyImpact>;
|
|
176
|
+
/** How often report-only policies would have intervened. */
|
|
177
|
+
insights(query?: {
|
|
178
|
+
days?: number;
|
|
179
|
+
}): Promise<AccessPolicyInsights>;
|
|
98
180
|
/** What would the policies decide for this request? */
|
|
99
181
|
simulate(body: SimulateAccessBody): Promise<AccessPolicySimulation>;
|
|
100
182
|
};
|
|
@@ -20,6 +20,14 @@ function accessPoliciesResource(request) {
|
|
|
20
20
|
delete(id) {
|
|
21
21
|
return request({ method: 'DELETE', path: `/v1/access_policies/${(0, request_1.enc)(id)}` });
|
|
22
22
|
},
|
|
23
|
+
/** Replay a draft policy against recent sampled sign-ins: how many would be allowed, stepped up or blocked. */
|
|
24
|
+
impact(body) {
|
|
25
|
+
return request({ method: 'POST', path: '/v1/access_policies/impact', body });
|
|
26
|
+
},
|
|
27
|
+
/** How often report-only policies would have intervened. */
|
|
28
|
+
insights(query = {}) {
|
|
29
|
+
return request({ method: 'GET', path: `/v1/access_policies/insights${query.days ? `?days=${query.days}` : ''}` });
|
|
30
|
+
},
|
|
23
31
|
/** What would the policies decide for this request? */
|
|
24
32
|
simulate(body) {
|
|
25
33
|
return request({ method: 'POST', path: '/v1/access_policies/simulate', body });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-policies.js","sourceRoot":"","sources":["../../src/client/access-policies.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"access-policies.js","sourceRoot":"","sources":["../../src/client/access-policies.ts"],"names":[],"mappings":";;AA8JA,wDA8BC;AA5LD,uCAAgD;AA6JhD,wEAAwE;AACxE,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,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,IAA4B,EAAE,cAAuB;YAC1D,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,CAAC,EAAU,EAAE,IAA4B;YAC7C,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,+GAA+G;QAC/G,MAAM,CAAC,IAAgF;YACrF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,4DAA4D;QAC5D,QAAQ,CAAC,QAA2B,EAAE;YACpC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,+BAA+B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACpH,CAAC;QACD,uDAAuD;QACvD,QAAQ,CAAC,IAAwB;YAC/B,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC,CAAC;QACjF,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/client/actions.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type RequestFn } from './request';
|
|
2
2
|
import type { ListPage } from './types';
|
|
3
3
|
/** The fixed point in the auth pipeline an action runs at. */
|
|
4
|
-
export type ActionTrigger = 'post_login' | 'pre_user_registration' | 'post_user_registration' | 'pre_organization_create' | 'pre_member_add' | 'pre_invitation_create' | 'pre_authentication' | 'pre_token' | 'post_token_exchange' | 'pre_user_update' | 'mfa_verification_attempt' | 'password_verification_attempt' | 'account_link_decision' | 'billing_plan_selected' | 'post_change_password' | 'post_password_reset' | 'post_user_update' | 'post_email_verified' | 'post_mfa_enroll' | 'post_mfa_remove' | 'post_logout' | 'org_membership_changed' | 'custom_challenge_create' | 'custom_challenge_verify' | 'workflow_step';
|
|
4
|
+
export type ActionTrigger = 'post_login' | 'pre_user_registration' | 'post_user_registration' | 'pre_organization_create' | 'pre_member_add' | 'pre_invitation_create' | 'pre_authentication' | 'pre_token' | 'post_token_exchange' | 'custom_token_exchange' | 'pre_user_update' | 'mfa_verification_attempt' | 'password_verification_attempt' | 'account_link_decision' | 'billing_plan_selected' | 'post_change_password' | 'post_password_reset' | 'post_user_update' | 'post_email_verified' | 'post_mfa_enroll' | 'post_mfa_remove' | 'post_logout' | 'org_membership_changed' | 'custom_challenge_create' | 'custom_challenge_verify' | 'workflow_step';
|
|
5
5
|
/**
|
|
6
6
|
* Tenant code run in the hardened isolate at a trigger. Secret VALUES are
|
|
7
7
|
* write-only and never returned — a read reports only `secret_names`. Timestamps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/client/actions.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/client/actions.ts"],"names":[],"mappings":";;AA+MA,0CAyCC;AAxPD,uCAAgD;AA+MhD,SAAgB,eAAe,CAAC,OAAkB;IAChD,OAAO;QACL,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,CAAC,IAAsB,EAAE,cAAuB;YACpD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,GAAG,CAAC,EAAU;YACZ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,CAAC,EAAU,EAAE,IAAsB;YACvC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,CAAC,EAAU;YACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,2EAA2E;QAC3E,IAAI,CAAC,EAAU,EAAE,QAAyB,EAAE;YAC1C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,IAAA,aAAG,EAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,0EAA0E;QAC1E,KAAK,CACH,EAAU,EACV,QAAqJ,EAAE;YAEvJ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,IAAA,aAAG,EAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,oDAAoD;QACpD,WAAW,CAAC,OAAsB;YAChC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wBAAwB,IAAA,aAAG,EAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,+CAA+C;QAC/C,WAAW,CAAC,OAAsB,EAAE,SAAmB;YACrD,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,wBAAwB,IAAA,aAAG,EAAC,OAAO,CAAC,EAAE;gBAC5C,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;aAChC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|