@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.
Files changed (98) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/botid.js +3 -3
  3. package/dist/botid.js.map +1 -1
  4. package/dist/client/abac.d.ts +65 -0
  5. package/dist/client/abac.js +25 -0
  6. package/dist/client/abac.js.map +1 -1
  7. package/dist/client/access-policies.d.ts +84 -2
  8. package/dist/client/access-policies.js +8 -0
  9. package/dist/client/access-policies.js.map +1 -1
  10. package/dist/client/actions.d.ts +1 -1
  11. package/dist/client/actions.js.map +1 -1
  12. package/dist/client/agent-platform.d.ts +294 -0
  13. package/dist/client/agent-platform.js +132 -0
  14. package/dist/client/agent-platform.js.map +1 -0
  15. package/dist/client/app-catalog.d.ts +60 -1
  16. package/dist/client/app-catalog.js +32 -2
  17. package/dist/client/app-catalog.js.map +1 -1
  18. package/dist/client/authz-decisions.d.ts +46 -0
  19. package/dist/client/authz-decisions.js +13 -0
  20. package/dist/client/authz-decisions.js.map +1 -1
  21. package/dist/client/connections.d.ts +12 -0
  22. package/dist/client/connections.js +7 -0
  23. package/dist/client/connections.js.map +1 -1
  24. package/dist/client/desktop-mfa.d.ts +37 -0
  25. package/dist/client/desktop-mfa.js +14 -0
  26. package/dist/client/desktop-mfa.js.map +1 -1
  27. package/dist/client/devices.d.ts +130 -0
  28. package/dist/client/devices.js +54 -0
  29. package/dist/client/devices.js.map +1 -1
  30. package/dist/client/email-templates.d.ts +1 -1
  31. package/dist/client/email-templates.js.map +1 -1
  32. package/dist/client/fga.d.ts +176 -1
  33. package/dist/client/fga.js +41 -1
  34. package/dist/client/fga.js.map +1 -1
  35. package/dist/client/index.d.ts +3782 -2946
  36. package/dist/client/index.js +28 -0
  37. package/dist/client/index.js.map +1 -1
  38. package/dist/client/log-streams.d.ts +1 -1
  39. package/dist/client/mcp-gateways.d.ts +148 -2
  40. package/dist/client/mcp-gateways.js +52 -0
  41. package/dist/client/mcp-gateways.js.map +1 -1
  42. package/dist/client/messaging.d.ts +11 -2
  43. package/dist/client/messaging.js.map +1 -1
  44. package/dist/client/oauth-protocols.d.ts +116 -0
  45. package/dist/client/oauth-protocols.js +54 -0
  46. package/dist/client/oauth-protocols.js.map +1 -0
  47. package/dist/client/oauth-providers.d.ts +4 -4
  48. package/dist/client/org-ldap-connections.d.ts +3 -0
  49. package/dist/client/org-ldap-connections.js.map +1 -1
  50. package/dist/client/organizations.d.ts +14 -0
  51. package/dist/client/organizations.js.map +1 -1
  52. package/dist/client/risk-containment.d.ts +244 -0
  53. package/dist/client/risk-containment.js +120 -0
  54. package/dist/client/risk-containment.js.map +1 -0
  55. package/dist/client/saml-idp.d.ts +183 -0
  56. package/dist/client/saml-idp.js +71 -0
  57. package/dist/client/saml-idp.js.map +1 -0
  58. package/dist/client/scim-provisioning.d.ts +100 -4
  59. package/dist/client/scim-provisioning.js +30 -0
  60. package/dist/client/scim-provisioning.js.map +1 -1
  61. package/dist/client/scim-tokens.d.ts +34 -0
  62. package/dist/client/scim-tokens.js +17 -0
  63. package/dist/client/scim-tokens.js.map +1 -1
  64. package/dist/client/service-connectors.d.ts +1 -1
  65. package/dist/client/ssf.d.ts +29 -0
  66. package/dist/client/ssf.js +17 -0
  67. package/dist/client/ssf.js.map +1 -1
  68. package/dist/client/users.d.ts +9 -0
  69. package/dist/client/users.js +9 -0
  70. package/dist/client/users.js.map +1 -1
  71. package/dist/client/vault.d.ts +54 -0
  72. package/dist/client/vault.js +30 -0
  73. package/dist/client/vault.js.map +1 -1
  74. package/dist/client/vc.d.ts +54 -2
  75. package/dist/client/vc.js +15 -0
  76. package/dist/client/vc.js.map +1 -1
  77. package/dist/client/workflows.d.ts +182 -3
  78. package/dist/client/workflows.js +34 -0
  79. package/dist/client/workflows.js.map +1 -1
  80. package/dist/edge-crypto.d.ts +13 -0
  81. package/dist/edge-crypto.js +46 -0
  82. package/dist/edge-crypto.js.map +1 -0
  83. package/dist/index.d.ts +3 -2
  84. package/dist/index.js +3 -1
  85. package/dist/index.js.map +1 -1
  86. package/dist/oauth-resource.d.ts +30 -3
  87. package/dist/oauth-resource.js +43 -2
  88. package/dist/oauth-resource.js.map +1 -1
  89. package/dist/policy-source.js +4 -4
  90. package/dist/policy-source.js.map +1 -1
  91. package/dist/referral-test-calls.js +8 -8
  92. package/dist/referral-test-calls.js.map +1 -1
  93. package/dist/txn-token.d.ts +36 -0
  94. package/dist/txn-token.js +30 -0
  95. package/dist/txn-token.js.map +1 -0
  96. package/dist/webhooks.js +5 -5
  97. package/dist/webhooks.js.map +1 -1
  98. 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 node_crypto_1 = require("node:crypto");
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, node_crypto_1.randomBytes)(18).toString('base64url'),
58
+ jti: (0, edge_crypto_1.randomBytes)(18).toString('base64url'),
59
59
  }), 'utf8').toString('base64url');
60
- const sig = (0, node_crypto_1.createHmac)('sha256', secret).update(exports.BOTID_ATTESTATION_PREFIX + payload).digest('base64url');
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,6CAAsD;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
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"}
@@ -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
+ }
@@ -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 });
@@ -1 +1 @@
1
- {"version":3,"file":"abac.js","sourceRoot":"","sources":["../../src/client/abac.ts"],"names":[],"mappings":"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"}
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":";;AAmFA,wDAsBC;AAzGD,uCAAgD;AAkFhD,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,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"}
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"}
@@ -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":";;AA8MA,0CAyCC;AAvPD,uCAAgD;AA8MhD,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"}
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"}