@atlasauth/backend 0.5.0 → 0.6.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/README.md +187 -0
- package/dist/client/activity.d.ts +104 -0
- package/dist/client/activity.js +29 -0
- package/dist/client/activity.js.map +1 -0
- package/dist/client/audit-events.d.ts +103 -0
- package/dist/client/audit-events.js +43 -0
- package/dist/client/audit-events.js.map +1 -0
- package/dist/client/billing-plans.d.ts +43 -0
- package/dist/client/billing-plans.js +26 -0
- package/dist/client/billing-plans.js.map +1 -1
- package/dist/client/connectors.d.ts +174 -0
- package/dist/client/connectors.js +54 -0
- package/dist/client/connectors.js.map +1 -0
- package/dist/client/data-subject-requests.d.ts +21 -0
- package/dist/client/data-subject-requests.js +15 -0
- package/dist/client/data-subject-requests.js.map +1 -1
- package/dist/client/design.d.ts +295 -0
- package/dist/client/design.js +76 -0
- package/dist/client/design.js.map +1 -0
- package/dist/client/diagnostics.d.ts +53 -0
- package/dist/client/diagnostics.js +24 -0
- package/dist/client/diagnostics.js.map +1 -0
- package/dist/client/email-addresses.d.ts +22 -0
- package/dist/client/email-addresses.js +17 -0
- package/dist/client/email-addresses.js.map +1 -0
- package/dist/client/entitlement-overrides.d.ts +50 -0
- package/dist/client/entitlement-overrides.js +20 -0
- package/dist/client/entitlement-overrides.js.map +1 -0
- package/dist/client/error.d.ts +28 -0
- package/dist/client/error.js +27 -1
- package/dist/client/error.js.map +1 -1
- package/dist/client/index.d.ts +458 -16
- package/dist/client/index.js +76 -2
- package/dist/client/index.js.map +1 -1
- package/dist/client/instance.d.ts +54 -0
- package/dist/client/instance.js +18 -0
- package/dist/client/instance.js.map +1 -1
- package/dist/client/invitations.d.ts +14 -0
- package/dist/client/invitations.js +9 -0
- package/dist/client/invitations.js.map +1 -1
- package/dist/client/legacy-auth.d.ts +45 -0
- package/dist/client/legacy-auth.js +18 -0
- package/dist/client/legacy-auth.js.map +1 -0
- package/dist/client/mcp.d.ts +86 -0
- package/dist/client/mcp.js +47 -0
- package/dist/client/mcp.js.map +1 -0
- package/dist/client/notifications.d.ts +92 -0
- package/dist/client/notifications.js +55 -0
- package/dist/client/notifications.js.map +1 -0
- package/dist/client/oauth-clients.d.ts +46 -2
- package/dist/client/oauth-clients.js +4 -0
- package/dist/client/oauth-clients.js.map +1 -1
- package/dist/client/oauth-providers.d.ts +67 -7
- package/dist/client/oauth-providers.js +7 -2
- package/dist/client/oauth-providers.js.map +1 -1
- package/dist/client/openfga.d.ts +137 -0
- package/dist/client/openfga.js +72 -0
- package/dist/client/openfga.js.map +1 -0
- package/dist/client/org-ldap-connections.d.ts +75 -0
- package/dist/client/org-ldap-connections.js +36 -0
- package/dist/client/org-ldap-connections.js.map +1 -0
- package/dist/client/organization-settings-schema.d.ts +24 -0
- package/dist/client/organization-settings-schema.js +30 -0
- package/dist/client/organization-settings-schema.js.map +1 -0
- package/dist/client/organizations.d.ts +205 -4
- package/dist/client/organizations.js +109 -0
- package/dist/client/organizations.js.map +1 -1
- package/dist/client/pca.d.ts +59 -0
- package/dist/client/pca.js +40 -0
- package/dist/client/pca.js.map +1 -0
- package/dist/client/platform.d.ts +328 -0
- package/dist/client/platform.js +187 -0
- package/dist/client/platform.js.map +1 -0
- package/dist/client/redirect-urls.d.ts +23 -0
- package/dist/client/redirect-urls.js +22 -0
- package/dist/client/redirect-urls.js.map +1 -0
- package/dist/client/request.d.ts +45 -0
- package/dist/client/request.js +35 -2
- package/dist/client/request.js.map +1 -1
- package/dist/client/session-exchange-apps.d.ts +43 -0
- package/dist/client/session-exchange-apps.js +25 -0
- package/dist/client/session-exchange-apps.js.map +1 -0
- package/dist/client/sessions.d.ts +12 -0
- package/dist/client/sessions.js +10 -0
- package/dist/client/sessions.js.map +1 -1
- package/dist/client/sign-in-tokens.d.ts +13 -1
- package/dist/client/sign-in-tokens.js +11 -0
- package/dist/client/sign-in-tokens.js.map +1 -1
- package/dist/client/test-mode.d.ts +44 -0
- package/dist/client/test-mode.js +26 -0
- package/dist/client/test-mode.js.map +1 -0
- package/dist/client/tickets.d.ts +49 -0
- package/dist/client/tickets.js +19 -0
- package/dist/client/tickets.js.map +1 -0
- package/dist/client/users.d.ts +346 -0
- package/dist/client/users.js +228 -0
- package/dist/client/users.js.map +1 -1
- package/dist/client/waitlist.d.ts +21 -0
- package/dist/client/waitlist.js +16 -0
- package/dist/client/waitlist.js.map +1 -1
- package/dist/client/webhooks.d.ts +60 -6
- package/dist/client/webhooks.js +36 -2
- package/dist/client/webhooks.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/logout-token.d.ts +97 -0
- package/dist/logout-token.js +182 -0
- package/dist/logout-token.js.map +1 -0
- package/dist/verify.d.ts +7 -0
- package/dist/verify.js +13 -0
- package/dist/verify.js.map +1 -1
- package/package.json +1 -1
|
@@ -48,10 +48,139 @@ export interface OrgDomain {
|
|
|
48
48
|
last_checked_at: number | null;
|
|
49
49
|
created_at: number;
|
|
50
50
|
}
|
|
51
|
+
/** Whether an organization runs an end-user (reader) pool beside its staff members. */
|
|
52
|
+
export interface OrganizationEndUserPoolPolicy {
|
|
53
|
+
enabled: boolean;
|
|
54
|
+
/** New readers start `pending` until approved. */
|
|
55
|
+
requireApproval?: boolean;
|
|
56
|
+
/** Readers may sign up on the hosted pages. */
|
|
57
|
+
allowHostedSignup?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The organization's security policy overrides. Keys are camelCase on this
|
|
61
|
+
* route, and only overrides that are set appear. Unknown keys from a newer API
|
|
62
|
+
* version are kept in the index signature.
|
|
63
|
+
*/
|
|
64
|
+
export interface OrganizationPolicySettings {
|
|
65
|
+
requireMfa?: boolean;
|
|
66
|
+
ssoRequired?: boolean;
|
|
67
|
+
sessionIdleOverrideMs?: number;
|
|
68
|
+
/**
|
|
69
|
+
* Sign-in methods a member may use (e.g. `password`, `passkey`, `oauth`,
|
|
70
|
+
* `oauth:google`, `saml`, `magic_link`). Absent = all methods.
|
|
71
|
+
*/
|
|
72
|
+
allowedSignInMethods?: string[];
|
|
73
|
+
/** CIDR allow-list gating member sign-in (e.g. `203.0.113.0/24`). Absent = unrestricted. */
|
|
74
|
+
ipAllowlist?: string[];
|
|
75
|
+
/** Cap on the absolute session lifetime for members, in seconds (300 … 7776000). */
|
|
76
|
+
maxSessionAgeSeconds?: number;
|
|
77
|
+
endUserPool?: OrganizationEndUserPoolPolicy;
|
|
78
|
+
[key: string]: unknown;
|
|
79
|
+
}
|
|
51
80
|
export interface OrganizationPolicy {
|
|
52
81
|
object: 'organization_policy';
|
|
53
82
|
organization_id: string;
|
|
54
|
-
policy:
|
|
83
|
+
policy: OrganizationPolicySettings;
|
|
84
|
+
}
|
|
85
|
+
/** An organization's settings document, validated against the instance's settings schema. */
|
|
86
|
+
export interface OrganizationSettings {
|
|
87
|
+
object: 'organization_settings';
|
|
88
|
+
organization_id: string;
|
|
89
|
+
values: Record<string, unknown>;
|
|
90
|
+
/** Monotonic per-organization version; 0 when nothing is set yet. */
|
|
91
|
+
version: number;
|
|
92
|
+
updated_by: string | null;
|
|
93
|
+
/** Last write (epoch ms), or null if never set. */
|
|
94
|
+
updated_at: number | null;
|
|
95
|
+
}
|
|
96
|
+
/** An organization's audit stream destination. The signing secret is never returned. */
|
|
97
|
+
export interface OrganizationAuditStream {
|
|
98
|
+
object: 'org_audit_stream';
|
|
99
|
+
id: string;
|
|
100
|
+
organization_id: string;
|
|
101
|
+
url: string;
|
|
102
|
+
format: string;
|
|
103
|
+
active: boolean;
|
|
104
|
+
has_secret: boolean;
|
|
105
|
+
created_at: number;
|
|
106
|
+
}
|
|
107
|
+
export interface CreateOrganizationAuditStreamBody {
|
|
108
|
+
/** Public HTTPS endpoint of the SIEM/collector. */
|
|
109
|
+
url: string;
|
|
110
|
+
/** Shared HMAC-SHA256 signing secret (min 16 chars). Write-only. */
|
|
111
|
+
secret: string;
|
|
112
|
+
/** Shape hint for the collector. Default `json`. */
|
|
113
|
+
format?: string;
|
|
114
|
+
}
|
|
115
|
+
/** The organization's hosted-page branding overlay. Null fields inherit the instance brand. */
|
|
116
|
+
export interface OrganizationBranding {
|
|
117
|
+
object: 'organization_branding';
|
|
118
|
+
organization_id: string;
|
|
119
|
+
display_name: string | null;
|
|
120
|
+
logo_url: string | null;
|
|
121
|
+
primary_color: string | null;
|
|
122
|
+
support_url: string | null;
|
|
123
|
+
custom_domain: string | null;
|
|
124
|
+
updated_at: number | null;
|
|
125
|
+
}
|
|
126
|
+
/** A partial merge: a provided field overrides, `null` (or `''`) clears it back. */
|
|
127
|
+
export interface UpdateOrganizationBrandingBody {
|
|
128
|
+
display_name?: string | null;
|
|
129
|
+
logo_url?: string | null;
|
|
130
|
+
primary_color?: string | null;
|
|
131
|
+
support_url?: string | null;
|
|
132
|
+
custom_domain?: string | null;
|
|
133
|
+
}
|
|
134
|
+
export type OrganizationEndUserStatus = 'active' | 'pending' | 'blocked';
|
|
135
|
+
/** A reader in an organization's end-user pool (distinct from its staff members). */
|
|
136
|
+
export interface OrganizationEndUser {
|
|
137
|
+
object: 'organization_end_user';
|
|
138
|
+
id: string;
|
|
139
|
+
organization_id: string;
|
|
140
|
+
user_id: string;
|
|
141
|
+
status: OrganizationEndUserStatus;
|
|
142
|
+
source: string;
|
|
143
|
+
public_metadata: Metadata;
|
|
144
|
+
approved_at: number | null;
|
|
145
|
+
created_at: number;
|
|
146
|
+
updated_at: number;
|
|
147
|
+
}
|
|
148
|
+
export interface ListOrganizationEndUsersParams extends CursorParams {
|
|
149
|
+
status?: OrganizationEndUserStatus;
|
|
150
|
+
}
|
|
151
|
+
export interface AddOrganizationEndUserBody {
|
|
152
|
+
user_id: string;
|
|
153
|
+
/** Defaults to `active`. */
|
|
154
|
+
status?: OrganizationEndUserStatus;
|
|
155
|
+
/** How the reader entered the pool. Defaults to `token_exchange`. */
|
|
156
|
+
source?: 'hosted' | 'federated' | 'token_exchange' | 'import';
|
|
157
|
+
}
|
|
158
|
+
/** A host whose sign-ups join the organization's end-user pool. */
|
|
159
|
+
export interface OrganizationReaderDomain {
|
|
160
|
+
object: 'custom_domain';
|
|
161
|
+
id: string;
|
|
162
|
+
role: string;
|
|
163
|
+
host: string;
|
|
164
|
+
status: string;
|
|
165
|
+
action: string | null;
|
|
166
|
+
live: boolean;
|
|
167
|
+
cname_target: string | null;
|
|
168
|
+
last_checked_at: number | null;
|
|
169
|
+
last_observed_target: string | null;
|
|
170
|
+
failure_reason: string | null;
|
|
171
|
+
certificate_expires_at: number | null;
|
|
172
|
+
cookie_domain: string | null;
|
|
173
|
+
}
|
|
174
|
+
/** The reader domain just bound, with the DNS record to publish. */
|
|
175
|
+
export interface OrganizationReaderDomainCreated extends OrganizationReaderDomain {
|
|
176
|
+
instructions: Array<{
|
|
177
|
+
role: string;
|
|
178
|
+
host: string;
|
|
179
|
+
type: 'CNAME';
|
|
180
|
+
target: string;
|
|
181
|
+
purpose: string;
|
|
182
|
+
}>;
|
|
183
|
+
note: string;
|
|
55
184
|
}
|
|
56
185
|
export interface OrganizationHierarchy {
|
|
57
186
|
object: 'organization_hierarchy';
|
|
@@ -95,11 +224,25 @@ export interface ReplaceOrganizationMetadataBody {
|
|
|
95
224
|
public_metadata?: Metadata;
|
|
96
225
|
private_metadata?: Metadata;
|
|
97
226
|
}
|
|
98
|
-
/**
|
|
227
|
+
/**
|
|
228
|
+
* The org security policy patch (§4.4), a partial merge. Fields are camelCase on
|
|
229
|
+
* this route; an explicit `null` clears an override.
|
|
230
|
+
*/
|
|
99
231
|
export interface OrganizationPolicyPatch {
|
|
100
|
-
requireMfa?: boolean;
|
|
101
|
-
ssoRequired?: boolean;
|
|
232
|
+
requireMfa?: boolean | null;
|
|
233
|
+
ssoRequired?: boolean | null;
|
|
102
234
|
sessionIdleOverrideMs?: number | null;
|
|
235
|
+
/** Restrict member sign-in methods; `null` clears (all methods). Unknown method → 400. */
|
|
236
|
+
allowedSignInMethods?: string[] | null;
|
|
237
|
+
/** CIDR allow-list for member sign-in; `null` clears. A bad CIDR → 400. */
|
|
238
|
+
ipAllowlist?: string[] | null;
|
|
239
|
+
/** Absolute session lifetime cap in seconds (300 … 7776000); `null` clears. */
|
|
240
|
+
maxSessionAgeSeconds?: number | null;
|
|
241
|
+
/** Retired: only `null` is accepted, to clear a stored value. Use `entitlementOverrides.create`. */
|
|
242
|
+
entitlementPlan?: null;
|
|
243
|
+
/** Retired: only `null` is accepted, to clear a stored value. */
|
|
244
|
+
entitlementOverrides?: null;
|
|
245
|
+
endUserPool?: OrganizationEndUserPoolPolicy | null;
|
|
103
246
|
[key: string]: unknown;
|
|
104
247
|
}
|
|
105
248
|
export declare function organizationsResource(request: RequestFn): {
|
|
@@ -191,6 +334,64 @@ export declare function organizationsResource(request: RequestFn): {
|
|
|
191
334
|
deleted: true;
|
|
192
335
|
}>;
|
|
193
336
|
};
|
|
337
|
+
/** The organization's settings document, validated against `organizationSettingsSchema`. */
|
|
338
|
+
settings: {
|
|
339
|
+
/** An empty document at version 0 when nothing is set. */
|
|
340
|
+
get(orgId: string): Promise<OrganizationSettings>;
|
|
341
|
+
/** Replace the whole document. A schema mismatch is a 422 `SETTINGS_INVALID`. */
|
|
342
|
+
replace(orgId: string, values: Record<string, unknown>, idempotencyKey?: string): Promise<OrganizationSettings>;
|
|
343
|
+
/**
|
|
344
|
+
* Merge a partial object (RFC 7396 shallow merge): a key set to `null` is
|
|
345
|
+
* removed, any other value overwrites, untouched keys are kept.
|
|
346
|
+
*/
|
|
347
|
+
update(orgId: string, values: Record<string, unknown>, idempotencyKey?: string): Promise<OrganizationSettings>;
|
|
348
|
+
};
|
|
349
|
+
/** Per-organization audit stream destinations (only that org's events are forwarded). */
|
|
350
|
+
auditStreams: {
|
|
351
|
+
list(orgId: string): Promise<ListPage<OrganizationAuditStream>>;
|
|
352
|
+
create(orgId: string, body: CreateOrganizationAuditStreamBody, idempotencyKey?: string): Promise<OrganizationAuditStream>;
|
|
353
|
+
delete(orgId: string, streamId: string): Promise<{
|
|
354
|
+
object: "org_audit_stream";
|
|
355
|
+
id: string;
|
|
356
|
+
deleted: true;
|
|
357
|
+
}>;
|
|
358
|
+
};
|
|
359
|
+
/** The organization's hosted-page branding overlay. */
|
|
360
|
+
branding: {
|
|
361
|
+
get(orgId: string): Promise<OrganizationBranding>;
|
|
362
|
+
/** Partial merge: provided fields override, `null` clears back to the instance brand. */
|
|
363
|
+
update(orgId: string, body: UpdateOrganizationBrandingBody): Promise<OrganizationBranding>;
|
|
364
|
+
};
|
|
365
|
+
/** The organization's end-user (reader) pool — external users, not staff members. */
|
|
366
|
+
endUsers: {
|
|
367
|
+
list(orgId: string, params?: ListOrganizationEndUsersParams): Promise<CursorPage<OrganizationEndUser> & {
|
|
368
|
+
object: "list";
|
|
369
|
+
}>;
|
|
370
|
+
/** Attach an instance user as a reader. Idempotent per (org, user); grants no org role. */
|
|
371
|
+
add(orgId: string, body: AddOrganizationEndUserBody, idempotencyKey?: string): Promise<OrganizationEndUser>;
|
|
372
|
+
/** Approve (`active`), gate (`pending`) or block a reader. */
|
|
373
|
+
update(orgId: string, userId: string, body: {
|
|
374
|
+
status: OrganizationEndUserStatus;
|
|
375
|
+
}): Promise<OrganizationEndUser>;
|
|
376
|
+
remove(orgId: string, userId: string): Promise<{
|
|
377
|
+
object: "organization_end_user";
|
|
378
|
+
id: string;
|
|
379
|
+
deleted: true;
|
|
380
|
+
}>;
|
|
381
|
+
};
|
|
382
|
+
/** The host(s) whose sign-ups join the organization's end-user pool. */
|
|
383
|
+
readerDomain: {
|
|
384
|
+
list(orgId: string): Promise<ListPage<OrganizationReaderDomain>>;
|
|
385
|
+
/** Bind a host; returns the CNAME to publish. Verify with `domains.verify(id)`. */
|
|
386
|
+
create(orgId: string, body: {
|
|
387
|
+
host: string;
|
|
388
|
+
}, idempotencyKey?: string): Promise<OrganizationReaderDomainCreated>;
|
|
389
|
+
delete(orgId: string): Promise<{
|
|
390
|
+
object: "custom_domain";
|
|
391
|
+
id: string;
|
|
392
|
+
deleted: true;
|
|
393
|
+
}>;
|
|
394
|
+
};
|
|
194
395
|
/** Directory-group → role grants that augment members' permissions. */
|
|
195
396
|
groupRoles: {
|
|
196
397
|
grant(orgId: string, groupId: string, roleId: string): Promise<{
|
|
@@ -116,6 +116,115 @@ function organizationsResource(request) {
|
|
|
116
116
|
});
|
|
117
117
|
},
|
|
118
118
|
},
|
|
119
|
+
/** The organization's settings document, validated against `organizationSettingsSchema`. */
|
|
120
|
+
settings: {
|
|
121
|
+
/** An empty document at version 0 when nothing is set. */
|
|
122
|
+
get(orgId) {
|
|
123
|
+
return request({ method: 'GET', path: `/v1/organizations/${(0, request_1.enc)(orgId)}/settings` });
|
|
124
|
+
},
|
|
125
|
+
/** Replace the whole document. A schema mismatch is a 422 `SETTINGS_INVALID`. */
|
|
126
|
+
replace(orgId, values, idempotencyKey) {
|
|
127
|
+
return request({
|
|
128
|
+
method: 'PUT',
|
|
129
|
+
path: `/v1/organizations/${(0, request_1.enc)(orgId)}/settings`,
|
|
130
|
+
body: { values },
|
|
131
|
+
idempotencyKey,
|
|
132
|
+
});
|
|
133
|
+
},
|
|
134
|
+
/**
|
|
135
|
+
* Merge a partial object (RFC 7396 shallow merge): a key set to `null` is
|
|
136
|
+
* removed, any other value overwrites, untouched keys are kept.
|
|
137
|
+
*/
|
|
138
|
+
update(orgId, values, idempotencyKey) {
|
|
139
|
+
return request({
|
|
140
|
+
method: 'PATCH',
|
|
141
|
+
path: `/v1/organizations/${(0, request_1.enc)(orgId)}/settings`,
|
|
142
|
+
body: { values },
|
|
143
|
+
idempotencyKey,
|
|
144
|
+
});
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
/** Per-organization audit stream destinations (only that org's events are forwarded). */
|
|
148
|
+
auditStreams: {
|
|
149
|
+
list(orgId) {
|
|
150
|
+
return request({ method: 'GET', path: `/v1/organizations/${(0, request_1.enc)(orgId)}/audit_streams` });
|
|
151
|
+
},
|
|
152
|
+
create(orgId, body, idempotencyKey) {
|
|
153
|
+
return request({
|
|
154
|
+
method: 'POST',
|
|
155
|
+
path: `/v1/organizations/${(0, request_1.enc)(orgId)}/audit_streams`,
|
|
156
|
+
body,
|
|
157
|
+
idempotencyKey,
|
|
158
|
+
});
|
|
159
|
+
},
|
|
160
|
+
delete(orgId, streamId) {
|
|
161
|
+
return request({
|
|
162
|
+
method: 'DELETE',
|
|
163
|
+
path: `/v1/organizations/${(0, request_1.enc)(orgId)}/audit_streams/${(0, request_1.enc)(streamId)}`,
|
|
164
|
+
});
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
/** The organization's hosted-page branding overlay. */
|
|
168
|
+
branding: {
|
|
169
|
+
get(orgId) {
|
|
170
|
+
return request({ method: 'GET', path: `/v1/organizations/${(0, request_1.enc)(orgId)}/branding` });
|
|
171
|
+
},
|
|
172
|
+
/** Partial merge: provided fields override, `null` clears back to the instance brand. */
|
|
173
|
+
update(orgId, body) {
|
|
174
|
+
return request({ method: 'PUT', path: `/v1/organizations/${(0, request_1.enc)(orgId)}/branding`, body });
|
|
175
|
+
},
|
|
176
|
+
},
|
|
177
|
+
/** The organization's end-user (reader) pool — external users, not staff members. */
|
|
178
|
+
endUsers: {
|
|
179
|
+
list(orgId, params = {}) {
|
|
180
|
+
return request({
|
|
181
|
+
method: 'GET',
|
|
182
|
+
path: `/v1/organizations/${(0, request_1.enc)(orgId)}/end_users`,
|
|
183
|
+
query: { ...params },
|
|
184
|
+
});
|
|
185
|
+
},
|
|
186
|
+
/** Attach an instance user as a reader. Idempotent per (org, user); grants no org role. */
|
|
187
|
+
add(orgId, body, idempotencyKey) {
|
|
188
|
+
return request({
|
|
189
|
+
method: 'POST',
|
|
190
|
+
path: `/v1/organizations/${(0, request_1.enc)(orgId)}/end_users`,
|
|
191
|
+
body,
|
|
192
|
+
idempotencyKey,
|
|
193
|
+
});
|
|
194
|
+
},
|
|
195
|
+
/** Approve (`active`), gate (`pending`) or block a reader. */
|
|
196
|
+
update(orgId, userId, body) {
|
|
197
|
+
return request({
|
|
198
|
+
method: 'PATCH',
|
|
199
|
+
path: `/v1/organizations/${(0, request_1.enc)(orgId)}/end_users/${(0, request_1.enc)(userId)}`,
|
|
200
|
+
body,
|
|
201
|
+
});
|
|
202
|
+
},
|
|
203
|
+
remove(orgId, userId) {
|
|
204
|
+
return request({
|
|
205
|
+
method: 'DELETE',
|
|
206
|
+
path: `/v1/organizations/${(0, request_1.enc)(orgId)}/end_users/${(0, request_1.enc)(userId)}`,
|
|
207
|
+
});
|
|
208
|
+
},
|
|
209
|
+
},
|
|
210
|
+
/** The host(s) whose sign-ups join the organization's end-user pool. */
|
|
211
|
+
readerDomain: {
|
|
212
|
+
list(orgId) {
|
|
213
|
+
return request({ method: 'GET', path: `/v1/organizations/${(0, request_1.enc)(orgId)}/reader_domain` });
|
|
214
|
+
},
|
|
215
|
+
/** Bind a host; returns the CNAME to publish. Verify with `domains.verify(id)`. */
|
|
216
|
+
create(orgId, body, idempotencyKey) {
|
|
217
|
+
return request({
|
|
218
|
+
method: 'POST',
|
|
219
|
+
path: `/v1/organizations/${(0, request_1.enc)(orgId)}/reader_domain`,
|
|
220
|
+
body,
|
|
221
|
+
idempotencyKey,
|
|
222
|
+
});
|
|
223
|
+
},
|
|
224
|
+
delete(orgId) {
|
|
225
|
+
return request({ method: 'DELETE', path: `/v1/organizations/${(0, request_1.enc)(orgId)}/reader_domain` });
|
|
226
|
+
},
|
|
227
|
+
},
|
|
119
228
|
/** Directory-group → role grants that augment members' permissions. */
|
|
120
229
|
groupRoles: {
|
|
121
230
|
grant(orgId, groupId, roleId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organizations.js","sourceRoot":"","sources":["../../src/client/organizations.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"organizations.js","sourceRoot":"","sources":["../../src/client/organizations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { type RequestFn } from './request';
|
|
2
|
+
/**
|
|
3
|
+
* Server-side controls for Proof-Carrying Authority (agentic actions): trusted
|
|
4
|
+
* attestor keys, the instance-wide kill switch, capability revocation and
|
|
5
|
+
* denying a held step-up. Verifying a PCActn offline is `verifyPCActn`.
|
|
6
|
+
*/
|
|
7
|
+
export interface PcaAdminAttestors {
|
|
8
|
+
object: 'pca_attestors';
|
|
9
|
+
/** b64u Ed25519 public keys. */
|
|
10
|
+
trusted_attestor_keys: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface PcaAdminFreeze {
|
|
13
|
+
object: 'pca_freeze';
|
|
14
|
+
frozen: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface PcaAdminRevocation {
|
|
17
|
+
object: 'pca_revocation';
|
|
18
|
+
grant_ref: string;
|
|
19
|
+
cap_id: string;
|
|
20
|
+
revoked: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface PcaAdminStepUp {
|
|
23
|
+
object: 'pca_stepup';
|
|
24
|
+
stepup_id: string;
|
|
25
|
+
grant_ref: string;
|
|
26
|
+
action_digest: string;
|
|
27
|
+
required_t: number;
|
|
28
|
+
status: 'pending' | 'approved' | 'denied' | 'expired';
|
|
29
|
+
/** Roles that have contributed a share. */
|
|
30
|
+
shares: string[];
|
|
31
|
+
created_at: string;
|
|
32
|
+
expires_at: string;
|
|
33
|
+
receipt?: Record<string, unknown>;
|
|
34
|
+
step_up_required?: boolean;
|
|
35
|
+
}
|
|
36
|
+
export declare function pcaResource(request: RequestFn): {
|
|
37
|
+
attestors: {
|
|
38
|
+
get(): Promise<PcaAdminAttestors>;
|
|
39
|
+
/**
|
|
40
|
+
* Replace the trusted attestor key list (max 50). Non-empty: a presented
|
|
41
|
+
* attestation is verified against these keys. Empty: attestation is not enforced.
|
|
42
|
+
*/
|
|
43
|
+
set(trustedAttestorKeys: string[]): Promise<PcaAdminAttestors>;
|
|
44
|
+
};
|
|
45
|
+
/** Engage the instance-wide kill switch: every PCActn is denied until `unfreeze`. */
|
|
46
|
+
freeze(body?: {
|
|
47
|
+
reason?: string;
|
|
48
|
+
}): Promise<PcaAdminFreeze>;
|
|
49
|
+
unfreeze(): Promise<PcaAdminFreeze>;
|
|
50
|
+
/** Revoke a capability under a grant; revoking `grant_ref` itself revokes the whole grant. */
|
|
51
|
+
revoke(body: {
|
|
52
|
+
grant_ref: string;
|
|
53
|
+
cap_id: string;
|
|
54
|
+
}): Promise<PcaAdminRevocation>;
|
|
55
|
+
/** Deny a pending step-up: the held action is never anchored. */
|
|
56
|
+
denyStepUp(id: string, body?: {
|
|
57
|
+
reason?: string;
|
|
58
|
+
}): Promise<PcaAdminStepUp>;
|
|
59
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pcaResource = pcaResource;
|
|
4
|
+
const request_1 = require("./request");
|
|
5
|
+
function pcaResource(request) {
|
|
6
|
+
return {
|
|
7
|
+
attestors: {
|
|
8
|
+
get() {
|
|
9
|
+
return request({ method: 'GET', path: '/v1/pca/attestors' });
|
|
10
|
+
},
|
|
11
|
+
/**
|
|
12
|
+
* Replace the trusted attestor key list (max 50). Non-empty: a presented
|
|
13
|
+
* attestation is verified against these keys. Empty: attestation is not enforced.
|
|
14
|
+
*/
|
|
15
|
+
set(trustedAttestorKeys) {
|
|
16
|
+
return request({
|
|
17
|
+
method: 'PUT',
|
|
18
|
+
path: '/v1/pca/attestors',
|
|
19
|
+
body: { trusted_attestor_keys: trustedAttestorKeys },
|
|
20
|
+
});
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
/** Engage the instance-wide kill switch: every PCActn is denied until `unfreeze`. */
|
|
24
|
+
freeze(body = {}) {
|
|
25
|
+
return request({ method: 'POST', path: '/v1/pca/freeze', body });
|
|
26
|
+
},
|
|
27
|
+
unfreeze() {
|
|
28
|
+
return request({ method: 'DELETE', path: '/v1/pca/freeze' });
|
|
29
|
+
},
|
|
30
|
+
/** Revoke a capability under a grant; revoking `grant_ref` itself revokes the whole grant. */
|
|
31
|
+
revoke(body) {
|
|
32
|
+
return request({ method: 'POST', path: '/v1/pca/revocations', body });
|
|
33
|
+
},
|
|
34
|
+
/** Deny a pending step-up: the held action is never anchored. */
|
|
35
|
+
denyStepUp(id, body = {}) {
|
|
36
|
+
return request({ method: 'POST', path: `/v1/pca/stepups/${(0, request_1.enc)(id)}/deny`, body });
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=pca.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pca.js","sourceRoot":"","sources":["../../src/client/pca.ts"],"names":[],"mappings":";;AAwCA,kCAkCC;AA1ED,uCAAgD;AAwChD,SAAgB,WAAW,CAAC,OAAkB;IAC5C,OAAO;QACL,SAAS,EAAE;YACT,GAAG;gBACD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD;;;eAGG;YACH,GAAG,CAAC,mBAA6B;gBAC/B,OAAO,OAAO,CAAC;oBACb,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,EAAE,qBAAqB,EAAE,mBAAmB,EAAE;iBACrD,CAAC,CAAC;YACL,CAAC;SACF;QACD,qFAAqF;QACrF,MAAM,CAAC,OAA4B,EAAE;YACnC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,QAAQ;YACN,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,8FAA8F;QAC9F,MAAM,CAAC,IAA2C;YAChD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,iEAAiE;QACjE,UAAU,CAAC,EAAU,EAAE,OAA4B,EAAE;YACnD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,IAAA,aAAG,EAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,CAAC;KACF,CAAC;AACJ,CAAC"}
|