@atlasauth/backend 0.26.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/client/abac.d.ts +65 -0
  3. package/dist/client/abac.js +25 -0
  4. package/dist/client/abac.js.map +1 -1
  5. package/dist/client/access-policies.d.ts +84 -2
  6. package/dist/client/access-policies.js +8 -0
  7. package/dist/client/access-policies.js.map +1 -1
  8. package/dist/client/actions.d.ts +1 -1
  9. package/dist/client/actions.js.map +1 -1
  10. package/dist/client/agent-platform.d.ts +294 -0
  11. package/dist/client/agent-platform.js +132 -0
  12. package/dist/client/agent-platform.js.map +1 -0
  13. package/dist/client/app-catalog.d.ts +60 -1
  14. package/dist/client/app-catalog.js +32 -2
  15. package/dist/client/app-catalog.js.map +1 -1
  16. package/dist/client/authz-decisions.d.ts +46 -0
  17. package/dist/client/authz-decisions.js +13 -0
  18. package/dist/client/authz-decisions.js.map +1 -1
  19. package/dist/client/connections.d.ts +12 -0
  20. package/dist/client/connections.js +7 -0
  21. package/dist/client/connections.js.map +1 -1
  22. package/dist/client/desktop-mfa.d.ts +37 -0
  23. package/dist/client/desktop-mfa.js +14 -0
  24. package/dist/client/desktop-mfa.js.map +1 -1
  25. package/dist/client/devices.d.ts +130 -0
  26. package/dist/client/devices.js +54 -0
  27. package/dist/client/devices.js.map +1 -1
  28. package/dist/client/email-templates.d.ts +1 -1
  29. package/dist/client/email-templates.js.map +1 -1
  30. package/dist/client/fga.d.ts +176 -1
  31. package/dist/client/fga.js +41 -1
  32. package/dist/client/fga.js.map +1 -1
  33. package/dist/client/index.d.ts +3782 -2946
  34. package/dist/client/index.js +28 -0
  35. package/dist/client/index.js.map +1 -1
  36. package/dist/client/log-streams.d.ts +1 -1
  37. package/dist/client/mcp-gateways.d.ts +148 -2
  38. package/dist/client/mcp-gateways.js +52 -0
  39. package/dist/client/mcp-gateways.js.map +1 -1
  40. package/dist/client/messaging.d.ts +11 -2
  41. package/dist/client/messaging.js.map +1 -1
  42. package/dist/client/oauth-protocols.d.ts +116 -0
  43. package/dist/client/oauth-protocols.js +54 -0
  44. package/dist/client/oauth-protocols.js.map +1 -0
  45. package/dist/client/oauth-providers.d.ts +4 -4
  46. package/dist/client/org-ldap-connections.d.ts +3 -0
  47. package/dist/client/org-ldap-connections.js.map +1 -1
  48. package/dist/client/organizations.d.ts +14 -0
  49. package/dist/client/organizations.js.map +1 -1
  50. package/dist/client/risk-containment.d.ts +244 -0
  51. package/dist/client/risk-containment.js +120 -0
  52. package/dist/client/risk-containment.js.map +1 -0
  53. package/dist/client/saml-idp.d.ts +183 -0
  54. package/dist/client/saml-idp.js +71 -0
  55. package/dist/client/saml-idp.js.map +1 -0
  56. package/dist/client/scim-provisioning.d.ts +100 -4
  57. package/dist/client/scim-provisioning.js +30 -0
  58. package/dist/client/scim-provisioning.js.map +1 -1
  59. package/dist/client/scim-tokens.d.ts +34 -0
  60. package/dist/client/scim-tokens.js +17 -0
  61. package/dist/client/scim-tokens.js.map +1 -1
  62. package/dist/client/service-connectors.d.ts +1 -1
  63. package/dist/client/ssf.d.ts +29 -0
  64. package/dist/client/ssf.js +17 -0
  65. package/dist/client/ssf.js.map +1 -1
  66. package/dist/client/users.d.ts +9 -0
  67. package/dist/client/users.js +9 -0
  68. package/dist/client/users.js.map +1 -1
  69. package/dist/client/vault.d.ts +54 -0
  70. package/dist/client/vault.js +30 -0
  71. package/dist/client/vault.js.map +1 -1
  72. package/dist/client/vc.d.ts +54 -2
  73. package/dist/client/vc.js +15 -0
  74. package/dist/client/vc.js.map +1 -1
  75. package/dist/client/workflows.d.ts +182 -3
  76. package/dist/client/workflows.js +34 -0
  77. package/dist/client/workflows.js.map +1 -1
  78. package/dist/index.d.ts +3 -2
  79. package/dist/index.js +3 -1
  80. package/dist/index.js.map +1 -1
  81. package/dist/oauth-resource.d.ts +30 -3
  82. package/dist/oauth-resource.js +43 -2
  83. package/dist/oauth-resource.js.map +1 -1
  84. package/dist/txn-token.d.ts +36 -0
  85. package/dist/txn-token.js +30 -0
  86. package/dist/txn-token.js.map +1 -0
  87. package/package.json +1 -1
@@ -11,6 +11,21 @@ export interface Device {
11
11
  managed: boolean;
12
12
  compliant: boolean;
13
13
  posture: Record<string, unknown>;
14
+ os_version: string | null;
15
+ disk_encrypted: boolean | null;
16
+ screen_lock: boolean | null;
17
+ secure_hardware: boolean | null;
18
+ jailbroken: boolean | null;
19
+ firewall: boolean | null;
20
+ edr_present: boolean | null;
21
+ assurance_state: 'compliant' | 'grace' | 'noncompliant' | null;
22
+ assurance_checks: Array<{
23
+ policyId: string;
24
+ check: string;
25
+ ok: boolean;
26
+ detail?: string;
27
+ }>;
28
+ integration_id: string | null;
14
29
  last_reported_at: number;
15
30
  created_at: number;
16
31
  }
@@ -26,11 +41,71 @@ export interface DeviceReportBody {
26
41
  managed?: boolean;
27
42
  compliant?: boolean;
28
43
  posture?: Record<string, unknown>;
44
+ /** Typed posture; `null` or absent = unknown (never assumed good). */
45
+ os_version?: string | null;
46
+ disk_encrypted?: boolean | null;
47
+ screen_lock?: boolean | null;
48
+ secure_hardware?: boolean | null;
49
+ jailbroken?: boolean | null;
50
+ firewall?: boolean | null;
51
+ edr_present?: boolean | null;
52
+ }
53
+ export type DevicePlatform = 'any' | 'macos' | 'windows' | 'linux' | 'ios' | 'android' | 'chromeos';
54
+ export interface DeviceAssurancePolicy {
55
+ object: 'device_assurance_policy';
56
+ id: string;
57
+ name: string;
58
+ platform: DevicePlatform;
59
+ enabled: boolean;
60
+ min_os_version: string | null;
61
+ os_latest_minus: number | null;
62
+ require_disk_encryption: boolean;
63
+ require_screen_lock: boolean;
64
+ require_secure_hardware: boolean;
65
+ block_jailbroken: boolean;
66
+ require_firewall: boolean;
67
+ require_edr: boolean;
68
+ grace_hours: number;
69
+ created_at: number;
70
+ updated_at: number;
71
+ }
72
+ export type DeviceAssurancePolicyBody = Partial<Omit<DeviceAssurancePolicy, 'object' | 'id' | 'created_at' | 'updated_at'>> & {
73
+ name?: string;
74
+ };
75
+ export type DeviceIntegrationProvider = 'intune' | 'jamf' | 'crowdstrike' | 'fleet' | 'chrome';
76
+ export interface DeviceIntegration {
77
+ object: 'device_integration';
78
+ id: string;
79
+ provider: DeviceIntegrationProvider;
80
+ name: string;
81
+ status: 'active' | 'paused';
82
+ config: Record<string, unknown>;
83
+ has_credentials: boolean;
84
+ interval_minutes: number;
85
+ next_sync_at: number | null;
86
+ last_sync_at: number | null;
87
+ last_status: string | null;
88
+ last_error: string | null;
89
+ last_stats: Record<string, unknown>;
90
+ created_at: number;
91
+ updated_at: number;
92
+ }
93
+ export interface DeviceIntegrationBody {
94
+ provider?: DeviceIntegrationProvider;
95
+ name?: string;
96
+ /** Intune `{ tenantId }`; Jamf and Fleet `{ baseUrl }`; CrowdStrike `{ cloud, minZtaScore?, userEmailDomain? }`; Chrome `{ customer? }`. */
97
+ config?: Record<string, unknown>;
98
+ /** Write-only. Intune and Jamf and CrowdStrike `{ clientId, clientSecret }`; Fleet `{ apiToken }`; Chrome `{ clientEmail, privateKey, adminEmail }`. */
99
+ credentials?: Record<string, unknown>;
100
+ interval_minutes?: number;
101
+ status?: 'active' | 'paused';
29
102
  }
30
103
  export declare function devicesResource(request: RequestFn): {
31
104
  list(query?: {
32
105
  user_id?: string;
33
106
  source?: string;
107
+ platform?: string;
108
+ assurance_state?: string;
34
109
  }): Promise<ListPage<Device>>;
35
110
  get(id: string): Promise<Device>;
36
111
  report(body: DeviceReportBody): Promise<Device>;
@@ -41,4 +116,59 @@ export declare function devicesResource(request: RequestFn): {
41
116
  id: string;
42
117
  deleted: true;
43
118
  }>;
119
+ /** The compliance transitions of one device, newest first. */
120
+ complianceHistory(id: string): Promise<ListPage<{
121
+ object: "device_compliance_entry";
122
+ id: string;
123
+ device_id: string;
124
+ user_id: string | null;
125
+ state: string;
126
+ compliant: boolean;
127
+ failing: string[];
128
+ source: string;
129
+ created_at: number;
130
+ }>>;
131
+ };
132
+ /** Per-platform posture requirements (OS version, disk encryption, screen lock, ...) with a grace period. */
133
+ export declare function deviceAssurancePoliciesResource(request: RequestFn): {
134
+ list(): Promise<ListPage<DeviceAssurancePolicy>>;
135
+ get(id: string): Promise<DeviceAssurancePolicy>;
136
+ create(body: DeviceAssurancePolicyBody & {
137
+ name: string;
138
+ }): Promise<DeviceAssurancePolicy>;
139
+ update(id: string, body: DeviceAssurancePolicyBody): Promise<DeviceAssurancePolicy>;
140
+ delete(id: string): Promise<{
141
+ object: "device_assurance_policy";
142
+ id: string;
143
+ deleted: true;
144
+ }>;
145
+ /** Re-evaluate every device against the current policies. */
146
+ evaluate(): Promise<{
147
+ object: "device_assurance_evaluation";
148
+ evaluated: number;
149
+ changed: number;
150
+ }>;
151
+ };
152
+ /** Pull connectors for Intune, Jamf Pro, CrowdStrike Falcon, Fleet and Google Chrome / ChromeOS. */
153
+ export declare function deviceIntegrationsResource(request: RequestFn): {
154
+ list(): Promise<ListPage<DeviceIntegration>>;
155
+ get(id: string): Promise<DeviceIntegration>;
156
+ create(body: DeviceIntegrationBody & {
157
+ provider: DeviceIntegrationProvider;
158
+ name: string;
159
+ }): Promise<DeviceIntegration>;
160
+ update(id: string, body: DeviceIntegrationBody): Promise<DeviceIntegration>;
161
+ delete(id: string): Promise<{
162
+ object: "device_integration";
163
+ id: string;
164
+ deleted: true;
165
+ }>;
166
+ /** Pull now instead of waiting for the schedule. */
167
+ sync(id: string): Promise<{
168
+ object: "device_integration_sync";
169
+ integration_id: string;
170
+ ok: boolean;
171
+ seen: number;
172
+ error: string | null;
173
+ }>;
44
174
  };
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.devicesResource = devicesResource;
4
+ exports.deviceAssurancePoliciesResource = deviceAssurancePoliciesResource;
5
+ exports.deviceIntegrationsResource = deviceIntegrationsResource;
4
6
  const request_1 = require("./request");
5
7
  function devicesResource(request) {
6
8
  return {
@@ -21,6 +23,58 @@ function devicesResource(request) {
21
23
  remove(id) {
22
24
  return request({ method: 'DELETE', path: `/v1/devices/${(0, request_1.enc)(id)}` });
23
25
  },
26
+ /** The compliance transitions of one device, newest first. */
27
+ complianceHistory(id) {
28
+ return request({ method: 'GET', path: `/v1/devices/${(0, request_1.enc)(id)}/compliance_history` });
29
+ },
30
+ };
31
+ }
32
+ /** Per-platform posture requirements (OS version, disk encryption, screen lock, ...) with a grace period. */
33
+ function deviceAssurancePoliciesResource(request) {
34
+ return {
35
+ list() {
36
+ return request({ method: 'GET', path: '/v1/device_assurance_policies' });
37
+ },
38
+ get(id) {
39
+ return request({ method: 'GET', path: `/v1/device_assurance_policies/${(0, request_1.enc)(id)}` });
40
+ },
41
+ create(body) {
42
+ return request({ method: 'POST', path: '/v1/device_assurance_policies', body });
43
+ },
44
+ update(id, body) {
45
+ return request({ method: 'PATCH', path: `/v1/device_assurance_policies/${(0, request_1.enc)(id)}`, body });
46
+ },
47
+ delete(id) {
48
+ return request({ method: 'DELETE', path: `/v1/device_assurance_policies/${(0, request_1.enc)(id)}` });
49
+ },
50
+ /** Re-evaluate every device against the current policies. */
51
+ evaluate() {
52
+ return request({ method: 'POST', path: '/v1/device_assurance_policies/evaluate', body: {} });
53
+ },
54
+ };
55
+ }
56
+ /** Pull connectors for Intune, Jamf Pro, CrowdStrike Falcon, Fleet and Google Chrome / ChromeOS. */
57
+ function deviceIntegrationsResource(request) {
58
+ return {
59
+ list() {
60
+ return request({ method: 'GET', path: '/v1/device_integrations' });
61
+ },
62
+ get(id) {
63
+ return request({ method: 'GET', path: `/v1/device_integrations/${(0, request_1.enc)(id)}` });
64
+ },
65
+ create(body) {
66
+ return request({ method: 'POST', path: '/v1/device_integrations', body });
67
+ },
68
+ update(id, body) {
69
+ return request({ method: 'PATCH', path: `/v1/device_integrations/${(0, request_1.enc)(id)}`, body });
70
+ },
71
+ delete(id) {
72
+ return request({ method: 'DELETE', path: `/v1/device_integrations/${(0, request_1.enc)(id)}` });
73
+ },
74
+ /** Pull now instead of waiting for the schedule. */
75
+ sync(id) {
76
+ return request({ method: 'POST', path: `/v1/device_integrations/${(0, request_1.enc)(id)}/sync`, body: {} });
77
+ },
24
78
  };
25
79
  }
26
80
  //# sourceMappingURL=devices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/client/devices.ts"],"names":[],"mappings":";;AAgCA,0CAoBC;AApDD,uCAAgD;AAgChD,SAAgB,eAAe,CAAC,OAAkB;IAChD,OAAO;QACL,IAAI,CAAC,QAA+C,EAAE;YACpD,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;YACzH,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5E,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,IAAsB;YAC3B,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,iDAAiD;QACjD,aAAa,CAAC,OAA2B;YACvC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACpF,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;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/client/devices.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type RequestFn } from './request';
2
2
  import type { ListPage } from './types';
3
3
  /** The transactional email a template drives. */
4
- export type EmailTemplateName = 'verification_code' | 'magic_link' | 'password_reset' | 'password_changed' | 'account_exists_notice' | 'organization_invitation' | 'new_device_sign_in' | 'session_revoked_token_reuse' | 'account_locked' | 'account_secured' | 'team_member_added' | 'team_role_changed' | 'email_changed' | 'email_change_confirm' | 'parental_consent_request' | 'phone_changed' | 'identity_linked' | 'identity_unlinked' | 'passkey_added' | 'passkey_removed' | 'recovery_codes_regenerated' | 'factor_removed' | 'device_key_added' | 'device_key_removed' | 'uma_request_submitted' | 'risk_alert' | 'verification_link' | 'password_reset_link' | 'account_reactivated';
4
+ export type EmailTemplateName = 'verification_code' | 'magic_link' | 'password_reset' | 'password_changed' | 'account_exists_notice' | 'organization_invitation' | 'new_device_sign_in' | 'session_revoked_token_reuse' | 'account_locked' | 'account_secured' | 'team_member_added' | 'team_role_changed' | 'email_changed' | 'email_change_confirm' | 'parental_consent_request' | 'phone_changed' | 'identity_linked' | 'identity_unlinked' | 'passkey_added' | 'passkey_removed' | 'recovery_codes_regenerated' | 'factor_removed' | 'device_key_added' | 'device_key_removed' | 'uma_request_submitted' | 'risk_alert' | 'account_unblock' | 'impersonation_alert' | 'verification_link' | 'password_reset_link' | 'account_reactivated';
5
5
  /** The customizable body of a template: a subject line and a text body. */
6
6
  export interface EmailTemplateBody {
7
7
  subject?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"email-templates.js","sourceRoot":"","sources":["../../src/client/email-templates.ts"],"names":[],"mappings":";;AA0EA,wDAkBC;AA5FD,uCAAgD;AA0EhD,SAAgB,sBAAsB,CAAC,OAAkB;IACvD,OAAO;QACL,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,2EAA2E;QAC3E,OAAO,CAAC,IAAY,EAAE,OAA0B,EAAE;YAChD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,2DAA2D;QAC3D,MAAM,CAAC,IAAY,EAAE,IAAuB;YAC1C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,8BAA8B;QAC9B,MAAM,CAAC,IAAY;YACjB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"email-templates.js","sourceRoot":"","sources":["../../src/client/email-templates.ts"],"names":[],"mappings":";;AA4EA,wDAkBC;AA9FD,uCAAgD;AA4EhD,SAAgB,sBAAsB,CAAC,OAAkB;IACvD,OAAO;QACL,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,2EAA2E;QAC3E,OAAO,CAAC,IAAY,EAAE,OAA0B,EAAE;YAChD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,2DAA2D;QAC3D,MAAM,CAAC,IAAY,EAAE,IAAuB;YAC1C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,8BAA8B;QAC9B,MAAM,CAAC,IAAY;YACjB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,IAAA,aAAG,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -30,6 +30,8 @@ export interface FgaTuple {
30
30
  /** The object of the tuple as `type:id`. */
31
31
  target: string;
32
32
  condition?: FgaTupleCondition;
33
+ /** Epoch ms after which the tuple stops granting. */
34
+ expires_at?: number;
33
35
  created_at: number;
34
36
  }
35
37
  /** A model condition bound to a tuple, with the parameter values fixed on it. */
@@ -44,6 +46,8 @@ export interface FgaTupleKey {
44
46
  object: string;
45
47
  /** The tuple grants only while this model condition holds. */
46
48
  condition?: FgaTupleCondition;
49
+ /** The tuple stops granting at this time (ISO 8601 or epoch ms, in the future); a sweep then deletes it. */
50
+ expires_at?: string | number;
47
51
  }
48
52
  /**
49
53
  * Freshness of a read. `MINIMIZE_LATENCY` (and the default) may be served from a
@@ -192,10 +196,12 @@ export declare function fgaResource(request: RequestFn): {
192
196
  create(storeId: string, body: FgaAuthorizationModelInput, idempotencyKey?: string): Promise<FgaAuthorizationModel>;
193
197
  get(storeId: string, modelId: string): Promise<FgaAuthorizationModel>;
194
198
  };
195
- /** Write and/or delete tuples in one atomic call. */
199
+ /** Write and/or delete tuples in one atomic call. `on_duplicate` / `on_missing` = `error` refuse a repeat write or a delete of nothing. */
196
200
  write(storeId: string, body: {
197
201
  writes?: FgaTupleKeys;
198
202
  deletes?: FgaTupleKeys;
203
+ on_duplicate?: "ignore" | "error";
204
+ on_missing?: "ignore" | "error";
199
205
  }, idempotencyKey?: string): Promise<{
200
206
  object: "fga.write_result";
201
207
  writes: number;
@@ -242,6 +248,77 @@ export declare function fgaResource(request: RequestFn): {
242
248
  * to receive only what changed since.
243
249
  */
244
250
  readChanges(storeId: string, params?: FgaReadChangesParams): Promise<FgaChangesPage>;
251
+ /** What a local PDP syncs: a page of tuples (full), or the changes after `since` (a store revision). */
252
+ snapshot(storeId: string, params?: {
253
+ since?: number;
254
+ cursor?: string;
255
+ limit?: number;
256
+ }): Promise<FgaSnapshot>;
257
+ /** Bulk-import tuples (idempotent; `dry_run` reports without writing). */
258
+ importTuples(storeId: string, body: {
259
+ tuples: Array<FgaTupleKey>;
260
+ dry_run?: boolean;
261
+ }): Promise<{
262
+ object: "fga.import_result";
263
+ dry_run: boolean;
264
+ total: number;
265
+ new: number;
266
+ existing: number;
267
+ revision: number;
268
+ consistency_token?: string;
269
+ }>;
270
+ /** Run an FGA test suite in memory (the model from `dsl` / `modules`, or the store's). */
271
+ runTests(storeId: string, body: FgaTestSuite): Promise<FgaTestReport>;
272
+ /** The same, with no store: the model comes from `dsl` / `modules`. */
273
+ runTestsWithoutStore(body: FgaTestSuite): Promise<FgaTestReport>;
274
+ /** Validate a model and convert it DSL <-> JSON; `modules` compile to one model. */
275
+ transformModel(body: {
276
+ dsl?: string;
277
+ modules?: Array<{
278
+ name: string;
279
+ contents: string;
280
+ }>;
281
+ model?: Record<string, unknown>;
282
+ }): Promise<{
283
+ object: "fga.model_transform";
284
+ valid: true;
285
+ model: Record<string, unknown>;
286
+ dsl: string;
287
+ }>;
288
+ /** Nodes and edges of a model version, for a visualizer. */
289
+ modelGraph(storeId: string, modelId: string): Promise<{
290
+ object: "fga.model_graph";
291
+ model_id: string;
292
+ nodes: Array<{
293
+ id: string;
294
+ kind: "type" | "relation";
295
+ type: string;
296
+ relation?: string;
297
+ }>;
298
+ edges: Array<{
299
+ from: string;
300
+ to: string;
301
+ kind: "direct" | "computed" | "tupleset" | "parent";
302
+ label?: string;
303
+ }>;
304
+ }>;
305
+ /** What changed from the previous version (or `against`). */
306
+ modelDiff(storeId: string, modelId: string, against?: string): Promise<FgaModelDiff>;
307
+ /** OpenFGA assertions stored against a model version. */
308
+ assertions: {
309
+ get(storeId: string, modelId: string): Promise<{
310
+ authorization_model_id: string;
311
+ assertions: unknown[];
312
+ }>;
313
+ put(storeId: string, modelId: string, assertions: unknown[]): Promise<void>;
314
+ run(storeId: string, modelId: string): Promise<{
315
+ object: "fga.assertion_run";
316
+ passed: boolean;
317
+ total: number;
318
+ failed: number;
319
+ results: unknown[];
320
+ }>;
321
+ };
245
322
  /** Expand the full userset tree for an object#relation. */
246
323
  expand(storeId: string, body: {
247
324
  object: string;
@@ -310,3 +387,101 @@ export declare function fgaResource(request: RequestFn): {
310
387
  };
311
388
  };
312
389
  };
390
+ export interface FgaSnapshot {
391
+ object: 'fga.snapshot';
392
+ store_id: string;
393
+ model_id: string | null;
394
+ model: Record<string, unknown> | null;
395
+ full: boolean;
396
+ /** The store revision this snapshot is at; pass it back as `since`. */
397
+ revision: number;
398
+ tuples?: Array<FgaTupleKey>;
399
+ changes?: Array<FgaTupleKey & {
400
+ operation: 'write' | 'delete';
401
+ }>;
402
+ next_cursor?: string | null;
403
+ has_more: boolean;
404
+ }
405
+ export interface FgaTestSuite {
406
+ model_id?: string;
407
+ dsl?: string;
408
+ modules?: Array<{
409
+ name: string;
410
+ contents: string;
411
+ }>;
412
+ tuples?: Array<FgaTupleKey>;
413
+ tests: Array<{
414
+ name?: string;
415
+ tuples?: Array<FgaTupleKey>;
416
+ check?: Array<{
417
+ user: string;
418
+ object: string;
419
+ context?: Record<string, unknown>;
420
+ assertions: Record<string, boolean>;
421
+ }>;
422
+ list_objects?: Array<{
423
+ user: string;
424
+ type: string;
425
+ context?: Record<string, unknown>;
426
+ assertions: Record<string, string[]>;
427
+ }>;
428
+ list_users?: Array<{
429
+ object: string;
430
+ user_filter: {
431
+ type: string;
432
+ relation?: string;
433
+ } | Array<{
434
+ type: string;
435
+ relation?: string;
436
+ }>;
437
+ context?: Record<string, unknown>;
438
+ assertions: Record<string, {
439
+ users: string[];
440
+ }>;
441
+ }>;
442
+ }>;
443
+ }
444
+ export interface FgaTestReport {
445
+ object: 'fga.test_report';
446
+ passed: boolean;
447
+ total: number;
448
+ failed: number;
449
+ coverage: {
450
+ relations: number;
451
+ covered: number;
452
+ uncovered: string[];
453
+ };
454
+ results: Array<{
455
+ name: string;
456
+ passed: boolean;
457
+ checks: number;
458
+ failures: Array<{
459
+ kind: 'check' | 'list_objects' | 'list_users';
460
+ query: string;
461
+ expected: unknown;
462
+ actual: unknown;
463
+ error?: string;
464
+ }>;
465
+ }>;
466
+ }
467
+ export interface FgaModelDiff {
468
+ object: 'fga.model_diff';
469
+ from: string | null;
470
+ to: string;
471
+ types: {
472
+ added: string[];
473
+ removed: string[];
474
+ };
475
+ relations: {
476
+ added: string[];
477
+ removed: string[];
478
+ changed: string[];
479
+ };
480
+ conditions: {
481
+ added: string[];
482
+ removed: string[];
483
+ changed: string[];
484
+ };
485
+ breaking: boolean;
486
+ identical: boolean;
487
+ }
@@ -48,7 +48,7 @@ function fgaResource(request) {
48
48
  });
49
49
  },
50
50
  },
51
- /** Write and/or delete tuples in one atomic call. */
51
+ /** Write and/or delete tuples in one atomic call. `on_duplicate` / `on_missing` = `error` refuse a repeat write or a delete of nothing. */
52
52
  write(storeId, body, idempotencyKey) {
53
53
  return request({ method: 'POST', path: `/v1/fga/stores/${(0, request_1.enc)(storeId)}/write`, body, idempotencyKey });
54
54
  },
@@ -97,6 +97,46 @@ function fgaResource(request) {
97
97
  query: { ...params },
98
98
  });
99
99
  },
100
+ /** What a local PDP syncs: a page of tuples (full), or the changes after `since` (a store revision). */
101
+ snapshot(storeId, params = {}) {
102
+ return request({ method: 'GET', path: `/v1/fga/stores/${(0, request_1.enc)(storeId)}/snapshot`, query: { ...params } });
103
+ },
104
+ /** Bulk-import tuples (idempotent; `dry_run` reports without writing). */
105
+ importTuples(storeId, body) {
106
+ return request({ method: 'POST', path: `/v1/fga/stores/${(0, request_1.enc)(storeId)}/import`, body });
107
+ },
108
+ /** Run an FGA test suite in memory (the model from `dsl` / `modules`, or the store's). */
109
+ runTests(storeId, body) {
110
+ return request({ method: 'POST', path: `/v1/fga/stores/${(0, request_1.enc)(storeId)}/tests`, body });
111
+ },
112
+ /** The same, with no store: the model comes from `dsl` / `modules`. */
113
+ runTestsWithoutStore(body) {
114
+ return request({ method: 'POST', path: '/v1/fga/tests', body });
115
+ },
116
+ /** Validate a model and convert it DSL <-> JSON; `modules` compile to one model. */
117
+ transformModel(body) {
118
+ return request({ method: 'POST', path: '/v1/fga/models/transform', body });
119
+ },
120
+ /** Nodes and edges of a model version, for a visualizer. */
121
+ modelGraph(storeId, modelId) {
122
+ return request({ method: 'GET', path: `/v1/fga/stores/${(0, request_1.enc)(storeId)}/authorization-models/${(0, request_1.enc)(modelId)}/graph` });
123
+ },
124
+ /** What changed from the previous version (or `against`). */
125
+ modelDiff(storeId, modelId, against) {
126
+ return request({ method: 'GET', path: `/v1/fga/stores/${(0, request_1.enc)(storeId)}/authorization-models/${(0, request_1.enc)(modelId)}/diff`, query: { against } });
127
+ },
128
+ /** OpenFGA assertions stored against a model version. */
129
+ assertions: {
130
+ get(storeId, modelId) {
131
+ return request({ method: 'GET', path: `/v1/openfga/stores/${(0, request_1.enc)(storeId)}/assertions/${(0, request_1.enc)(modelId)}` });
132
+ },
133
+ put(storeId, modelId, assertions) {
134
+ return request({ method: 'PUT', path: `/v1/openfga/stores/${(0, request_1.enc)(storeId)}/assertions/${(0, request_1.enc)(modelId)}`, body: { assertions } });
135
+ },
136
+ run(storeId, modelId) {
137
+ return request({ method: 'POST', path: `/v1/fga/stores/${(0, request_1.enc)(storeId)}/authorization-models/${(0, request_1.enc)(modelId)}/assertions/run` });
138
+ },
139
+ },
100
140
  /** Expand the full userset tree for an object#relation. */
101
141
  expand(storeId, body) {
102
142
  return request({ method: 'POST', path: `/v1/fga/stores/${(0, request_1.enc)(storeId)}/expand`, body });
@@ -1 +1 @@
1
- {"version":3,"file":"fga.js","sourceRoot":"","sources":["../../src/client/fga.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fga.js","sourceRoot":"","sources":["../../src/client/fga.ts"],"names":[],"mappings":"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"}