@canopy-io/node 0.4.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/CHANGELOG.md +34 -0
- package/dist/index.cjs +11 -19
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +99 -306
- package/dist/index.d.ts +99 -306
- package/dist/index.js +11 -19
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -514,7 +514,7 @@ interface paths {
|
|
|
514
514
|
head?: never;
|
|
515
515
|
/**
|
|
516
516
|
* Update an identity
|
|
517
|
-
* @description Updates an identity's mutable profile fields (`first_name`, `last_name`, `
|
|
517
|
+
* @description Updates an identity's mutable profile fields (`first_name`, `last_name`, `metadata`) in the current Environment. `email` and `external_id` are immutable here — `external_id` is owned by the SSO/SCIM provisioning path and cannot be re-pointed through this endpoint. The account-wide `is_active` switch is not settable from an Environment; to cut off access here, remove the identity from the Environment. Returns the updated identity and writes an `identity.updated` audit row. Returns `404` when the identity has no membership in this Environment.
|
|
518
518
|
*/
|
|
519
519
|
patch: operations["ApiIdentitiesController_updateIdentity"];
|
|
520
520
|
trace?: never;
|
|
@@ -539,46 +539,6 @@ interface paths {
|
|
|
539
539
|
patch?: never;
|
|
540
540
|
trace?: never;
|
|
541
541
|
};
|
|
542
|
-
"/api/v1/identities/{id}/activate": {
|
|
543
|
-
parameters: {
|
|
544
|
-
query?: never;
|
|
545
|
-
header?: never;
|
|
546
|
-
path?: never;
|
|
547
|
-
cookie?: never;
|
|
548
|
-
};
|
|
549
|
-
get?: never;
|
|
550
|
-
put?: never;
|
|
551
|
-
/**
|
|
552
|
-
* Activate an identity
|
|
553
|
-
* @description Reactivates an identity by setting `is_active = true`, the account-wide switch, allowing it to authenticate again in every Environment it belongs to. Writes an `identity.status_set` audit row (the same event the Console's account route emits), delivered to the account's subscriptions and to those of every Environment the identity is a member of. Returns a `200` message envelope. Returns `404` when the identity has no membership in this Environment.
|
|
554
|
-
*/
|
|
555
|
-
post: operations["ApiIdentitiesController_activateIdentity"];
|
|
556
|
-
delete?: never;
|
|
557
|
-
options?: never;
|
|
558
|
-
head?: never;
|
|
559
|
-
patch?: never;
|
|
560
|
-
trace?: never;
|
|
561
|
-
};
|
|
562
|
-
"/api/v1/identities/{id}/deactivate": {
|
|
563
|
-
parameters: {
|
|
564
|
-
query?: never;
|
|
565
|
-
header?: never;
|
|
566
|
-
path?: never;
|
|
567
|
-
cookie?: never;
|
|
568
|
-
};
|
|
569
|
-
get?: never;
|
|
570
|
-
put?: never;
|
|
571
|
-
/**
|
|
572
|
-
* Deactivate an identity
|
|
573
|
-
* @description Deactivates an identity by setting `is_active = false`, the account-wide switch, blocking future sign-in in every Environment it belongs to. Writes an `identity.status_set` audit row (the same event the Console's account route emits), delivered to the account's subscriptions and to those of every Environment the identity is a member of. Returns a `200` message envelope. Returns `404` when the identity has no membership in this Environment.
|
|
574
|
-
*/
|
|
575
|
-
post: operations["ApiIdentitiesController_deactivateIdentity"];
|
|
576
|
-
delete?: never;
|
|
577
|
-
options?: never;
|
|
578
|
-
head?: never;
|
|
579
|
-
patch?: never;
|
|
580
|
-
trace?: never;
|
|
581
|
-
};
|
|
582
542
|
"/api/v1/identities/{id}/password": {
|
|
583
543
|
parameters: {
|
|
584
544
|
query?: never;
|
|
@@ -834,7 +794,7 @@ interface paths {
|
|
|
834
794
|
put?: never;
|
|
835
795
|
/**
|
|
836
796
|
* Create an invite
|
|
837
|
-
* @description Creates a single identity invite in the active Environment and returns it along with a tokenized `accept_url`. The effective intent is derived server-side from existing identity state — a net-new email becomes `activate`, an existing identity without active access becomes `add_to_app`, and `password_reset` is honored only for an existing identity. An optional `role_id` + `node_id` pair (both or neither) seeds an initial role assignment applied at acceptance. Invites expire after 7 days
|
|
797
|
+
* @description Creates a single identity invite in the active Environment and returns it along with a tokenized `accept_url`. The effective intent is derived server-side from existing identity state — a net-new email becomes `activate`, an existing identity without active access becomes `add_to_app`, and `password_reset` is honored only for an existing identity. An optional `role_id` + `node_id` pair (both or neither) seeds an initial role assignment applied at acceptance. Invites expire after 7 days, or 24 hours for `password_reset`; the email is sent unless `send_email: false`, in which case the caller delivers `accept_url` itself. A duplicate pending invite for the same recipient returns `409`.
|
|
838
798
|
*/
|
|
839
799
|
post: operations["ApiIdentityInvitesController_createInvite"];
|
|
840
800
|
delete?: never;
|
|
@@ -894,7 +854,7 @@ interface paths {
|
|
|
894
854
|
put?: never;
|
|
895
855
|
/**
|
|
896
856
|
* Resend an invite
|
|
897
|
-
* @description Resends the email for a `pending` invite in the active Environment, generating a fresh token, invalidating the previous one, and resetting the 7
|
|
857
|
+
* @description Resends the email for a `pending` invite in the active Environment, generating a fresh token, invalidating the previous one, and resetting the expiry (7 days, or 24 hours for `password_reset`). Returns the new tokenized `accept_url`. Subject to a 5-minute cooldown between resends. Returns `404` when the invite is not found and `400` when it is not in `pending` status or the cooldown has not elapsed.
|
|
898
858
|
*/
|
|
899
859
|
post: operations["ApiIdentityInvitesController_resendInvite"];
|
|
900
860
|
delete?: never;
|
|
@@ -1355,7 +1315,7 @@ interface paths {
|
|
|
1355
1315
|
post?: never;
|
|
1356
1316
|
/**
|
|
1357
1317
|
* Unbind an SSO connection from an organization
|
|
1358
|
-
* @description Removes the binding; logins through the connection fall back to the Environment's placement. Existing memberships are untouched. Returns `404` when the connection is not bound to this organization. Requires the `hierarchy.manage` permission at the organization and emits `organization.sso_connection.unbound`.
|
|
1318
|
+
* @description Removes the binding; logins through the connection fall back to the Environment's placement. Existing memberships are untouched. Returns `404` when the connection is not bound to this organization, and `409` (`organization.sso_connection_owned_cannot_unbind`) when the organization set the connection up itself: an owned connection stays with its organization, so disable or delete it instead. Requires the `hierarchy.manage` permission at the organization and emits `organization.sso_connection.unbound`.
|
|
1359
1319
|
*/
|
|
1360
1320
|
delete: operations["ApiOrganizationsController_unbindSsoConnection"];
|
|
1361
1321
|
options?: never;
|
|
@@ -1874,7 +1834,7 @@ interface paths {
|
|
|
1874
1834
|
head?: never;
|
|
1875
1835
|
/**
|
|
1876
1836
|
* Update a role
|
|
1877
|
-
* @description Updates a role's `name`, `description`, and/or `is_active` flag by `id`. A name that collides with another role in the Environment returns `409`, and a missing role returns `404`. Supports optimistic concurrency via the `If-Match` header carrying the role's current version (`409` on a version mismatch). Requires the `rbac.manage_roles` permission.
|
|
1837
|
+
* @description Updates a role's `name`, `description`, and/or `is_active` flag by `id`. Setting `is_active` to `false` hides the role from pickers, refuses new assignments to it, and withholds its permissions from every current holder until it is set back to `true`; the assignments themselves are kept. A name that collides with another role in the Environment returns `409`, and a missing role returns `404`. Supports optimistic concurrency via the `If-Match` header carrying the role's current version (`409` on a version mismatch). Requires the `rbac.manage_roles` permission.
|
|
1878
1838
|
*/
|
|
1879
1839
|
patch: operations["ApiRolesController_updateRole"];
|
|
1880
1840
|
trace?: never;
|
|
@@ -2188,7 +2148,7 @@ interface paths {
|
|
|
2188
2148
|
};
|
|
2189
2149
|
/**
|
|
2190
2150
|
* Get an Environment's branding
|
|
2191
|
-
* @description Returns the Environment's branding: the values the customer set (`branding`, null where unset) beside the effective result every hosted page and the organization admin portal render (`effective`: product name, logo, primary
|
|
2151
|
+
* @description Returns the Environment's branding: the values the customer set (`branding`, null where unset) beside the effective result every hosted page and the organization admin portal render (`effective`: product name, logo, favicon, primary and background colors, support, terms and privacy links, and whether the attribution mark stays). Only the primary color has a default; every other unset field is `null`. `brand_removal_available` says whether the Account's plan removes the attribution mark.
|
|
2192
2152
|
*/
|
|
2193
2153
|
get: operations["ApiBrandingController_getBranding"];
|
|
2194
2154
|
put?: never;
|
|
@@ -2198,7 +2158,7 @@ interface paths {
|
|
|
2198
2158
|
head?: never;
|
|
2199
2159
|
/**
|
|
2200
2160
|
* Change an Environment's branding
|
|
2201
|
-
* @description Sets the Environment's branding. Every field is optional and
|
|
2161
|
+
* @description Sets the Environment's branding. Every field is optional and stands on its own: send only what you want to change, send `null` to clear a field (the primary color then returns to the default blue). The product name shows in the browser tab, as the logo's alt text and in place of a missing logo; the logo shows at the top and the favicon in the tab; the primary color drives buttons and links, and the hover, link and focus shades are derived from it; the background color paints the page behind the card; the support, terms and privacy links show as "Need help?", "Terms" and "Privacy" under every hosted page. Returns `400` (`validation`) for a malformed value. Emits `environment.branding_updated`.
|
|
2202
2162
|
*/
|
|
2203
2163
|
patch: operations["ApiBrandingController_updateBranding"];
|
|
2204
2164
|
trace?: never;
|
|
@@ -2430,6 +2390,7 @@ interface components {
|
|
|
2430
2390
|
scope_evaluated: "node" | "app_wide";
|
|
2431
2391
|
/** @description The hierarchy node the decision was anchored to. Always set for `scope_evaluated: "node"`; always null for `scope_evaluated: "app_wide"` because the answer is org-scoped, not node-scoped. */
|
|
2432
2392
|
effective_node_id?: string | null;
|
|
2393
|
+
/** @description Ids of the roles whose assignments produced a node-scoped allow. Always empty for `scope_evaluated: "app_wide"`, whose answer is not tied to a node, and for a deny. */
|
|
2433
2394
|
granting_roles: string[];
|
|
2434
2395
|
denial_reason?: string | null;
|
|
2435
2396
|
};
|
|
@@ -2464,7 +2425,7 @@ interface components {
|
|
|
2464
2425
|
assignment_id: string;
|
|
2465
2426
|
role_id: string;
|
|
2466
2427
|
role_name: string;
|
|
2467
|
-
/** @description Whether the assignment
|
|
2428
|
+
/** @description Whether the assignment counts right now: within its effective_from/effective_to window, and its role is active. An inactive role's assignments are kept but grant nothing. */
|
|
2468
2429
|
active: boolean;
|
|
2469
2430
|
effective_from?: string | null;
|
|
2470
2431
|
effective_to?: string | null;
|
|
@@ -2560,11 +2521,13 @@ interface components {
|
|
|
2560
2521
|
email: string;
|
|
2561
2522
|
first_name: string;
|
|
2562
2523
|
last_name: string;
|
|
2563
|
-
/** @description Initial password. 8-64 characters. No composition rules — NIST SP 800-63B aligned. A HaveIBeenPwned breach check runs server-side. The effective policy is published on `GET /v1/identity/auth/config`, so a client can state the rules before submit rather than after. Omit to create a passwordless identity (sign-in via SSO
|
|
2524
|
+
/** @description Initial password. 8-64 characters. No composition rules — NIST SP 800-63B aligned. A HaveIBeenPwned breach check runs server-side. The effective policy is published on `GET /v1/identity/auth/config`, so a client can state the rules before submit rather than after. Omit to create a passwordless identity (sign-in via SSO or a password reset). */
|
|
2564
2525
|
password?: string;
|
|
2565
2526
|
external_id?: string;
|
|
2566
2527
|
metadata?: Record<string, unknown>;
|
|
2528
|
+
/** @description Role for an initial assignment — required if node_id is provided */
|
|
2567
2529
|
role_id?: string;
|
|
2530
|
+
/** @description Node for an initial assignment — required if role_id is provided */
|
|
2568
2531
|
node_id?: string;
|
|
2569
2532
|
};
|
|
2570
2533
|
BulkCreateIdentitiesDto: {
|
|
@@ -2588,13 +2551,9 @@ interface components {
|
|
|
2588
2551
|
/** Format: date-time */
|
|
2589
2552
|
updated_at: string;
|
|
2590
2553
|
};
|
|
2591
|
-
MessageResponseDto: {
|
|
2592
|
-
message: string;
|
|
2593
|
-
};
|
|
2594
2554
|
UpdateIdentityDto: {
|
|
2595
2555
|
first_name?: string;
|
|
2596
2556
|
last_name?: string;
|
|
2597
|
-
is_active?: boolean;
|
|
2598
2557
|
metadata?: Record<string, unknown> | null;
|
|
2599
2558
|
};
|
|
2600
2559
|
SetIdentityPasswordDto: {
|
|
@@ -2653,7 +2612,7 @@ interface components {
|
|
|
2653
2612
|
email_verified: boolean;
|
|
2654
2613
|
/** Format: date-time */
|
|
2655
2614
|
email_verified_at?: string | null;
|
|
2656
|
-
/** @description Whether the identity has a usable password. False for passwordless (SSO
|
|
2615
|
+
/** @description Whether the identity has a usable password. False for passwordless (SSO or email-code-only) identities. */
|
|
2657
2616
|
password_set: boolean;
|
|
2658
2617
|
/** @description True while the identity is in an active failed-login lockout window. */
|
|
2659
2618
|
locked: boolean;
|
|
@@ -2706,10 +2665,6 @@ interface components {
|
|
|
2706
2665
|
name: string;
|
|
2707
2666
|
role_id?: string | null;
|
|
2708
2667
|
node_id?: string | null;
|
|
2709
|
-
/** @description Environment the invite targets, or null for a directory-only (account-tier) invite created with the Environment field left empty. */
|
|
2710
|
-
environment_id?: string | null;
|
|
2711
|
-
/** @description Display name of the target Environment, or null for a directory-only invite. */
|
|
2712
|
-
environment_name?: string | null;
|
|
2713
2668
|
has_initial_assignment: boolean;
|
|
2714
2669
|
/** @enum {string} */
|
|
2715
2670
|
status: "pending" | "accepted" | "revoked" | "expired";
|
|
@@ -2741,10 +2696,6 @@ interface components {
|
|
|
2741
2696
|
name: string;
|
|
2742
2697
|
role_id?: string | null;
|
|
2743
2698
|
node_id?: string | null;
|
|
2744
|
-
/** @description Environment the invite targets, or null for a directory-only (account-tier) invite created with the Environment field left empty. */
|
|
2745
|
-
environment_id?: string | null;
|
|
2746
|
-
/** @description Display name of the target Environment, or null for a directory-only invite. */
|
|
2747
|
-
environment_name?: string | null;
|
|
2748
2699
|
has_initial_assignment: boolean;
|
|
2749
2700
|
/** @enum {string} */
|
|
2750
2701
|
status: "pending" | "accepted" | "revoked" | "expired";
|
|
@@ -3106,6 +3057,8 @@ interface components {
|
|
|
3106
3057
|
/** @enum {string} */
|
|
3107
3058
|
type: "saml" | "oidc";
|
|
3108
3059
|
status: string;
|
|
3060
|
+
/** @description The organization that set the connection up from the organization portal, or null. A connection owned by this organization cannot be unbound from it. */
|
|
3061
|
+
owner_organization_node_id?: string | null;
|
|
3109
3062
|
};
|
|
3110
3063
|
OrganizationSsoRoleSummaryDto: {
|
|
3111
3064
|
id: string;
|
|
@@ -3228,7 +3181,11 @@ interface components {
|
|
|
3228
3181
|
type: "saml" | "oidc";
|
|
3229
3182
|
name: string;
|
|
3230
3183
|
/** @enum {string} */
|
|
3231
|
-
status: "configuring" | "active" | "disabled"
|
|
3184
|
+
status: "configuring" | "active" | "disabled";
|
|
3185
|
+
/** @description The organization that owns the connection, when its administrator set it up from the organization portal; null for a connection the developer created. An owned connection cannot be moved to another organization or Environment, and its administrators are emailed when the developer changes its provider settings, disables or deletes it. */
|
|
3186
|
+
owner_organization_node_id?: string | null;
|
|
3187
|
+
/** @description True when an organization's administrator set the connection up from the organization portal. */
|
|
3188
|
+
owned_by_organization: boolean;
|
|
3232
3189
|
/** @description The HTTPS address the identity provider's SAML metadata was last imported from. `null` when the metadata was pasted as a document or never imported. */
|
|
3233
3190
|
saml_metadata_url?: string | null;
|
|
3234
3191
|
/** @description The last test sign-in run against the connection. Cleared when its provider settings change, since a test no longer proves them. */
|
|
@@ -3253,11 +3210,6 @@ interface components {
|
|
|
3253
3210
|
/** Format: date-time */
|
|
3254
3211
|
last_login_at?: string | null;
|
|
3255
3212
|
/** Format: date-time */
|
|
3256
|
-
last_login_failure_at?: string | null;
|
|
3257
|
-
consecutive_failures: number;
|
|
3258
|
-
/** Format: date-time */
|
|
3259
|
-
auto_disabled_at?: string | null;
|
|
3260
|
-
/** Format: date-time */
|
|
3261
3213
|
created_at: string;
|
|
3262
3214
|
/** Format: date-time */
|
|
3263
3215
|
updated_at: string;
|
|
@@ -3491,9 +3443,12 @@ interface components {
|
|
|
3491
3443
|
name?: string;
|
|
3492
3444
|
/** @description Updated role description */
|
|
3493
3445
|
description?: string | null;
|
|
3494
|
-
/** @description Whether the role is active */
|
|
3446
|
+
/** @description Whether the role is active. An inactive role is hidden from pickers, cannot be newly assigned, and grants nothing to its current holders until it is reactivated; their assignments are kept. */
|
|
3495
3447
|
is_active?: boolean;
|
|
3496
3448
|
};
|
|
3449
|
+
MessageResponseDto: {
|
|
3450
|
+
message: string;
|
|
3451
|
+
};
|
|
3497
3452
|
SetRolePermissionsDto: {
|
|
3498
3453
|
permission_keys: string[];
|
|
3499
3454
|
};
|
|
@@ -3736,7 +3691,7 @@ interface components {
|
|
|
3736
3691
|
/** @description Allowed node types (e.g. ['region', 'district', 'team']). Order is informational, not structural — parent/child rules are governed by `allowed_children`. Names starting with `canopy:` are reserved; with organizations enabled the list starts with `canopy:organization`. */
|
|
3737
3692
|
node_types: string[];
|
|
3738
3693
|
/**
|
|
3739
|
-
* @description Map from node type to allowed child node types.
|
|
3694
|
+
* @description Map from node type to allowed child node types. An empty array makes that type a leaf: nothing may be created or moved beneath it. A type the map does not mention accepts any child.
|
|
3740
3695
|
* @example {
|
|
3741
3696
|
* "region": [
|
|
3742
3697
|
* "district"
|
|
@@ -3756,37 +3711,70 @@ interface components {
|
|
|
3756
3711
|
StoredBrandingDto: {
|
|
3757
3712
|
product_name: string | null;
|
|
3758
3713
|
logo_url: string | null;
|
|
3714
|
+
/** @enum {string|null} */
|
|
3715
|
+
logo_kind: "full" | "icon" | null;
|
|
3716
|
+
favicon_url: string | null;
|
|
3759
3717
|
primary_color: string | null;
|
|
3718
|
+
background_color: string | null;
|
|
3760
3719
|
support_url: string | null;
|
|
3720
|
+
terms_url: string | null;
|
|
3721
|
+
privacy_url: string | null;
|
|
3761
3722
|
};
|
|
3762
3723
|
EffectiveBrandingDto: {
|
|
3763
|
-
|
|
3724
|
+
/** @description Null when the customer set none; surfaces then show no name. */
|
|
3725
|
+
product_name: string | null;
|
|
3764
3726
|
logo_url: string | null;
|
|
3727
|
+
/**
|
|
3728
|
+
* @description `full`: the logo is shown alone. `icon`: it is shown at icon size with the product name beside it.
|
|
3729
|
+
* @enum {string}
|
|
3730
|
+
*/
|
|
3731
|
+
logo_kind: "full" | "icon";
|
|
3732
|
+
favicon_url: string | null;
|
|
3765
3733
|
/** @description Six-digit hex. */
|
|
3766
3734
|
primary_color: string;
|
|
3735
|
+
/** @description Six-digit hex, or null for the neutral grey. */
|
|
3736
|
+
background_color: string | null;
|
|
3767
3737
|
support_url: string | null;
|
|
3768
|
-
|
|
3738
|
+
terms_url: string | null;
|
|
3739
|
+
privacy_url: string | null;
|
|
3740
|
+
/** @description Whether the attribution mark stays on hosted pages and the portal. False only on a plan with brand removal. */
|
|
3769
3741
|
attribution: boolean;
|
|
3770
3742
|
};
|
|
3771
3743
|
EnvironmentBrandingResponseDto: {
|
|
3772
3744
|
environment_slug: string;
|
|
3773
3745
|
branding: components["schemas"]["StoredBrandingDto"];
|
|
3774
3746
|
effective: components["schemas"]["EffectiveBrandingDto"];
|
|
3775
|
-
/** @description Whether the Account's plan removes the attribution
|
|
3747
|
+
/** @description Whether the Account's plan removes the attribution mark. When false, the mark stays whatever the customer sets. */
|
|
3776
3748
|
brand_removal_available: boolean;
|
|
3777
3749
|
};
|
|
3778
3750
|
UpdateEnvironmentBrandingDto: {
|
|
3779
|
-
/** @description The product name
|
|
3751
|
+
/** @description The product name hosted pages and the organization admin portal show: in the browser tab title, beside the logo when `logo_kind` is `icon`, as a full logo's alt text, and in place of a logo when none is set. Null clears it, and the pages then show no name. */
|
|
3780
3752
|
product_name?: string | null;
|
|
3781
3753
|
/** @description Absolute https URL of the logo shown at the top of hosted pages and the portal. Null clears it. */
|
|
3782
3754
|
logo_url?: string | null;
|
|
3783
3755
|
/**
|
|
3784
|
-
* @description
|
|
3756
|
+
* @description What the logo image is. `full`: a complete logo that already carries the product name, shown alone. `icon`: a square mark, shown at icon size with the product name beside it. Null returns to `full`.
|
|
3757
|
+
* @enum {string|null}
|
|
3758
|
+
*/
|
|
3759
|
+
logo_kind?: "full" | "icon" | null;
|
|
3760
|
+
/** @description Absolute https URL of the browser-tab icon on hosted pages: a square PNG or ICO of at least 32 px. Null clears it. */
|
|
3761
|
+
favicon_url?: string | null;
|
|
3762
|
+
/**
|
|
3763
|
+
* @description Six-digit hex colour for buttons and links on hosted pages and the portal. Hover, link, focus and tint shades are derived from it so each meets its contrast rule. Null returns to the default blue.
|
|
3785
3764
|
* @example #B93C0C
|
|
3786
3765
|
*/
|
|
3787
3766
|
primary_color?: string | null;
|
|
3788
|
-
/**
|
|
3767
|
+
/**
|
|
3768
|
+
* @description Six-digit hex colour for the page behind the card on hosted pages. The card stays white; footer text is chosen to reach 4.5:1 against it. Null returns to the neutral grey.
|
|
3769
|
+
* @example #0B1F3A
|
|
3770
|
+
*/
|
|
3771
|
+
background_color?: string | null;
|
|
3772
|
+
/** @description Where "Need help?" points: an https URL or a mailto: address. Null hides it. */
|
|
3789
3773
|
support_url?: string | null;
|
|
3774
|
+
/** @description Absolute https URL of the customer's terms, linked as "Terms" in the hosted pages' footer. Null hides it. */
|
|
3775
|
+
terms_url?: string | null;
|
|
3776
|
+
/** @description Absolute https URL of the customer's privacy policy, linked as "Privacy" in the hosted pages' footer. Null hides it. */
|
|
3777
|
+
privacy_url?: string | null;
|
|
3790
3778
|
};
|
|
3791
3779
|
WebhookCreatedResponseDto: {
|
|
3792
3780
|
id: string;
|
|
@@ -7088,222 +7076,6 @@ interface operations {
|
|
|
7088
7076
|
};
|
|
7089
7077
|
};
|
|
7090
7078
|
};
|
|
7091
|
-
ApiIdentitiesController_activateIdentity: {
|
|
7092
|
-
parameters: {
|
|
7093
|
-
query?: never;
|
|
7094
|
-
header?: never;
|
|
7095
|
-
path: {
|
|
7096
|
-
id: string;
|
|
7097
|
-
};
|
|
7098
|
-
cookie?: never;
|
|
7099
|
-
};
|
|
7100
|
-
requestBody?: never;
|
|
7101
|
-
responses: {
|
|
7102
|
-
/** @description Identity activated */
|
|
7103
|
-
200: {
|
|
7104
|
-
headers: {
|
|
7105
|
-
[name: string]: unknown;
|
|
7106
|
-
};
|
|
7107
|
-
content: {
|
|
7108
|
-
"application/json": {
|
|
7109
|
-
data: components["schemas"]["MessageResponseDto"];
|
|
7110
|
-
};
|
|
7111
|
-
};
|
|
7112
|
-
};
|
|
7113
|
-
/** @description The request failed validation: a body field, a query parameter or an id in the path is missing, malformed or out of range; or the request sent both an `X-API-Key` and an `Authorization` header */
|
|
7114
|
-
400: {
|
|
7115
|
-
headers: {
|
|
7116
|
-
[name: string]: unknown;
|
|
7117
|
-
};
|
|
7118
|
-
content: {
|
|
7119
|
-
/**
|
|
7120
|
-
* @example {
|
|
7121
|
-
* "error": {
|
|
7122
|
-
* "statusCode": 400,
|
|
7123
|
-
* "code": null,
|
|
7124
|
-
* "message": "The request failed validation: a body field, a query parameter or an id in the path is missing, malformed or out of range; or the request sent both an `X-API-Key` and an `Authorization` header",
|
|
7125
|
-
* "timestamp": "2026-04-20T12:00:00.000Z",
|
|
7126
|
-
* "path": "/api/v1/identities/{id}/activate",
|
|
7127
|
-
* "method": "POST"
|
|
7128
|
-
* }
|
|
7129
|
-
* }
|
|
7130
|
-
*/
|
|
7131
|
-
"application/json": components["schemas"]["ErrorResponseDto"];
|
|
7132
|
-
};
|
|
7133
|
-
};
|
|
7134
|
-
/** @description Invalid or expired token */
|
|
7135
|
-
401: {
|
|
7136
|
-
headers: {
|
|
7137
|
-
[name: string]: unknown;
|
|
7138
|
-
};
|
|
7139
|
-
content: {
|
|
7140
|
-
/**
|
|
7141
|
-
* @example {
|
|
7142
|
-
* "error": {
|
|
7143
|
-
* "statusCode": 401,
|
|
7144
|
-
* "code": null,
|
|
7145
|
-
* "message": "Invalid or expired token",
|
|
7146
|
-
* "timestamp": "2026-04-20T12:00:00.000Z",
|
|
7147
|
-
* "path": "/api/v1/identities",
|
|
7148
|
-
* "method": "GET"
|
|
7149
|
-
* }
|
|
7150
|
-
* }
|
|
7151
|
-
*/
|
|
7152
|
-
"application/json": components["schemas"]["ErrorResponseDto"];
|
|
7153
|
-
};
|
|
7154
|
-
};
|
|
7155
|
-
/** @description This token is not authorized for this endpoint (wrong principal type — e.g., admin token on identity-only endpoint, or vice versa) */
|
|
7156
|
-
403: {
|
|
7157
|
-
headers: {
|
|
7158
|
-
[name: string]: unknown;
|
|
7159
|
-
};
|
|
7160
|
-
content: {
|
|
7161
|
-
/**
|
|
7162
|
-
* @example {
|
|
7163
|
-
* "error": {
|
|
7164
|
-
* "statusCode": 403,
|
|
7165
|
-
* "code": null,
|
|
7166
|
-
* "message": "This token is not authorized for this endpoint (wrong principal type — e.g., admin token on identity-only endpoint, or vice versa)",
|
|
7167
|
-
* "timestamp": "2026-04-20T12:00:00.000Z",
|
|
7168
|
-
* "path": "/api/v1/identities",
|
|
7169
|
-
* "method": "GET"
|
|
7170
|
-
* }
|
|
7171
|
-
* }
|
|
7172
|
-
*/
|
|
7173
|
-
"application/json": components["schemas"]["ErrorResponseDto"];
|
|
7174
|
-
};
|
|
7175
|
-
};
|
|
7176
|
-
/** @description Identity not found */
|
|
7177
|
-
404: {
|
|
7178
|
-
headers: {
|
|
7179
|
-
[name: string]: unknown;
|
|
7180
|
-
};
|
|
7181
|
-
content: {
|
|
7182
|
-
/**
|
|
7183
|
-
* @example {
|
|
7184
|
-
* "error": {
|
|
7185
|
-
* "statusCode": 404,
|
|
7186
|
-
* "code": null,
|
|
7187
|
-
* "message": "Identity not found",
|
|
7188
|
-
* "timestamp": "2026-04-20T12:00:00.000Z",
|
|
7189
|
-
* "path": "/api/v1/identities/{id}/activate",
|
|
7190
|
-
* "method": "POST"
|
|
7191
|
-
* }
|
|
7192
|
-
* }
|
|
7193
|
-
*/
|
|
7194
|
-
"application/json": components["schemas"]["ErrorResponseDto"];
|
|
7195
|
-
};
|
|
7196
|
-
};
|
|
7197
|
-
};
|
|
7198
|
-
};
|
|
7199
|
-
ApiIdentitiesController_deactivateIdentity: {
|
|
7200
|
-
parameters: {
|
|
7201
|
-
query?: never;
|
|
7202
|
-
header?: never;
|
|
7203
|
-
path: {
|
|
7204
|
-
id: string;
|
|
7205
|
-
};
|
|
7206
|
-
cookie?: never;
|
|
7207
|
-
};
|
|
7208
|
-
requestBody?: never;
|
|
7209
|
-
responses: {
|
|
7210
|
-
/** @description Identity deactivated */
|
|
7211
|
-
200: {
|
|
7212
|
-
headers: {
|
|
7213
|
-
[name: string]: unknown;
|
|
7214
|
-
};
|
|
7215
|
-
content: {
|
|
7216
|
-
"application/json": {
|
|
7217
|
-
data: components["schemas"]["MessageResponseDto"];
|
|
7218
|
-
};
|
|
7219
|
-
};
|
|
7220
|
-
};
|
|
7221
|
-
/** @description The request failed validation: a body field, a query parameter or an id in the path is missing, malformed or out of range; or the request sent both an `X-API-Key` and an `Authorization` header */
|
|
7222
|
-
400: {
|
|
7223
|
-
headers: {
|
|
7224
|
-
[name: string]: unknown;
|
|
7225
|
-
};
|
|
7226
|
-
content: {
|
|
7227
|
-
/**
|
|
7228
|
-
* @example {
|
|
7229
|
-
* "error": {
|
|
7230
|
-
* "statusCode": 400,
|
|
7231
|
-
* "code": null,
|
|
7232
|
-
* "message": "The request failed validation: a body field, a query parameter or an id in the path is missing, malformed or out of range; or the request sent both an `X-API-Key` and an `Authorization` header",
|
|
7233
|
-
* "timestamp": "2026-04-20T12:00:00.000Z",
|
|
7234
|
-
* "path": "/api/v1/identities/{id}/deactivate",
|
|
7235
|
-
* "method": "POST"
|
|
7236
|
-
* }
|
|
7237
|
-
* }
|
|
7238
|
-
*/
|
|
7239
|
-
"application/json": components["schemas"]["ErrorResponseDto"];
|
|
7240
|
-
};
|
|
7241
|
-
};
|
|
7242
|
-
/** @description Invalid or expired token */
|
|
7243
|
-
401: {
|
|
7244
|
-
headers: {
|
|
7245
|
-
[name: string]: unknown;
|
|
7246
|
-
};
|
|
7247
|
-
content: {
|
|
7248
|
-
/**
|
|
7249
|
-
* @example {
|
|
7250
|
-
* "error": {
|
|
7251
|
-
* "statusCode": 401,
|
|
7252
|
-
* "code": null,
|
|
7253
|
-
* "message": "Invalid or expired token",
|
|
7254
|
-
* "timestamp": "2026-04-20T12:00:00.000Z",
|
|
7255
|
-
* "path": "/api/v1/identities",
|
|
7256
|
-
* "method": "GET"
|
|
7257
|
-
* }
|
|
7258
|
-
* }
|
|
7259
|
-
*/
|
|
7260
|
-
"application/json": components["schemas"]["ErrorResponseDto"];
|
|
7261
|
-
};
|
|
7262
|
-
};
|
|
7263
|
-
/** @description This token is not authorized for this endpoint (wrong principal type — e.g., admin token on identity-only endpoint, or vice versa) */
|
|
7264
|
-
403: {
|
|
7265
|
-
headers: {
|
|
7266
|
-
[name: string]: unknown;
|
|
7267
|
-
};
|
|
7268
|
-
content: {
|
|
7269
|
-
/**
|
|
7270
|
-
* @example {
|
|
7271
|
-
* "error": {
|
|
7272
|
-
* "statusCode": 403,
|
|
7273
|
-
* "code": null,
|
|
7274
|
-
* "message": "This token is not authorized for this endpoint (wrong principal type — e.g., admin token on identity-only endpoint, or vice versa)",
|
|
7275
|
-
* "timestamp": "2026-04-20T12:00:00.000Z",
|
|
7276
|
-
* "path": "/api/v1/identities",
|
|
7277
|
-
* "method": "GET"
|
|
7278
|
-
* }
|
|
7279
|
-
* }
|
|
7280
|
-
*/
|
|
7281
|
-
"application/json": components["schemas"]["ErrorResponseDto"];
|
|
7282
|
-
};
|
|
7283
|
-
};
|
|
7284
|
-
/** @description Identity not found */
|
|
7285
|
-
404: {
|
|
7286
|
-
headers: {
|
|
7287
|
-
[name: string]: unknown;
|
|
7288
|
-
};
|
|
7289
|
-
content: {
|
|
7290
|
-
/**
|
|
7291
|
-
* @example {
|
|
7292
|
-
* "error": {
|
|
7293
|
-
* "statusCode": 404,
|
|
7294
|
-
* "code": null,
|
|
7295
|
-
* "message": "Identity not found",
|
|
7296
|
-
* "timestamp": "2026-04-20T12:00:00.000Z",
|
|
7297
|
-
* "path": "/api/v1/identities/{id}/deactivate",
|
|
7298
|
-
* "method": "POST"
|
|
7299
|
-
* }
|
|
7300
|
-
* }
|
|
7301
|
-
*/
|
|
7302
|
-
"application/json": components["schemas"]["ErrorResponseDto"];
|
|
7303
|
-
};
|
|
7304
|
-
};
|
|
7305
|
-
};
|
|
7306
|
-
};
|
|
7307
7079
|
ApiIdentitiesController_setIdentityPassword: {
|
|
7308
7080
|
parameters: {
|
|
7309
7081
|
query?: never;
|
|
@@ -8602,14 +8374,12 @@ interface operations {
|
|
|
8602
8374
|
take?: number;
|
|
8603
8375
|
/** @description Search term */
|
|
8604
8376
|
q?: string;
|
|
8605
|
-
/** @description Column to sort by.
|
|
8606
|
-
sort_by?:
|
|
8377
|
+
/** @description Column to sort by. Defaults to `created`, newest first. */
|
|
8378
|
+
sort_by?: "name" | "email" | "created";
|
|
8607
8379
|
/** @description Sort direction */
|
|
8608
8380
|
order?: "asc" | "desc";
|
|
8609
8381
|
/** @description Filter by invite status */
|
|
8610
8382
|
status?: "pending" | "accepted" | "revoked" | "expired";
|
|
8611
|
-
/** @description Filter by target Environment. Pass the literal `none` to return only directory-only invites (environment_id is null). */
|
|
8612
|
-
environment_id?: string;
|
|
8613
8383
|
};
|
|
8614
8384
|
header?: never;
|
|
8615
8385
|
path?: never;
|
|
@@ -12608,6 +12378,27 @@ interface operations {
|
|
|
12608
12378
|
"application/json": components["schemas"]["ErrorResponseDto"];
|
|
12609
12379
|
};
|
|
12610
12380
|
};
|
|
12381
|
+
/** @description The organization set this connection up itself; it stays bound. Disable or delete the connection instead. */
|
|
12382
|
+
409: {
|
|
12383
|
+
headers: {
|
|
12384
|
+
[name: string]: unknown;
|
|
12385
|
+
};
|
|
12386
|
+
content: {
|
|
12387
|
+
/**
|
|
12388
|
+
* @example {
|
|
12389
|
+
* "error": {
|
|
12390
|
+
* "statusCode": 409,
|
|
12391
|
+
* "code": null,
|
|
12392
|
+
* "message": "The organization set this connection up itself; it stays bound. Disable or delete the connection instead.",
|
|
12393
|
+
* "timestamp": "2026-04-20T12:00:00.000Z",
|
|
12394
|
+
* "path": "/api/v1/organizations/{id}/sso-connections/{connectionId}",
|
|
12395
|
+
* "method": "DELETE"
|
|
12396
|
+
* }
|
|
12397
|
+
* }
|
|
12398
|
+
*/
|
|
12399
|
+
"application/json": components["schemas"]["ErrorResponseDto"];
|
|
12400
|
+
};
|
|
12401
|
+
};
|
|
12611
12402
|
};
|
|
12612
12403
|
};
|
|
12613
12404
|
ApiOrganizationsController_listMembers: {
|
|
@@ -19197,7 +18988,7 @@ interface operations {
|
|
|
19197
18988
|
};
|
|
19198
18989
|
};
|
|
19199
18990
|
};
|
|
19200
|
-
/** @description A value is malformed: the logo must be
|
|
18991
|
+
/** @description A value is malformed: the logo, favicon, terms and privacy links must be https URLs, the colors six-digit hex, the support link an https URL or a mailto: address, and the product name at most 60 characters; or the request sent both an `X-API-Key` and an `Authorization` header */
|
|
19201
18992
|
400: {
|
|
19202
18993
|
headers: {
|
|
19203
18994
|
[name: string]: unknown;
|
|
@@ -19208,7 +18999,7 @@ interface operations {
|
|
|
19208
18999
|
* "error": {
|
|
19209
19000
|
* "statusCode": 400,
|
|
19210
19001
|
* "code": null,
|
|
19211
|
-
* "message": "A value is malformed: the logo must be
|
|
19002
|
+
* "message": "A value is malformed: the logo, favicon, terms and privacy links must be https URLs, the colors six-digit hex, the support link an https URL or a mailto: address, and the product name at most 60 characters; or the request sent both an `X-API-Key` and an `Authorization` header",
|
|
19212
19003
|
* "timestamp": "2026-04-20T12:00:00.000Z",
|
|
19213
19004
|
* "path": "/api/v1/branding",
|
|
19214
19005
|
* "method": "PATCH"
|
|
@@ -20661,14 +20452,14 @@ declare class Identities {
|
|
|
20661
20452
|
get(id: string): Promise<ResponseBody<"ApiIdentitiesController_getIdentity">>;
|
|
20662
20453
|
create(input: RequestBody<"ApiIdentitiesController_createIdentity">): Promise<ResponseBody<"ApiIdentitiesController_createIdentity">>;
|
|
20663
20454
|
update(id: string, input: RequestBody<"ApiIdentitiesController_updateIdentity">): Promise<ResponseBody<"ApiIdentitiesController_updateIdentity">>;
|
|
20664
|
-
delete(id: string): Promise<void>;
|
|
20665
20455
|
/**
|
|
20666
|
-
*
|
|
20667
|
-
*
|
|
20668
|
-
*
|
|
20456
|
+
* Takes the identity out of this key's Environment: its membership here is
|
|
20457
|
+
* deactivated and its role assignments here are dropped. The identity and
|
|
20458
|
+
* its access to other Environments are untouched. Deactivating an identity
|
|
20459
|
+
* everywhere is an Account-level action, not available to an
|
|
20460
|
+
* Environment-scoped key.
|
|
20669
20461
|
*/
|
|
20670
|
-
|
|
20671
|
-
activate(id: string): Promise<ResponseBody<"ApiIdentitiesController_activateIdentity">>;
|
|
20462
|
+
delete(id: string): Promise<void>;
|
|
20672
20463
|
/**
|
|
20673
20464
|
* Every role this identity holds, and where — across all pages.
|
|
20674
20465
|
*
|
|
@@ -20706,7 +20497,7 @@ declare class Identities {
|
|
|
20706
20497
|
* Ends every session the identity holds, so the next refresh on any device
|
|
20707
20498
|
* fails and the person signs in again. Access tokens already issued keep
|
|
20708
20499
|
* working until their short lifetime runs out. For a suspected compromise;
|
|
20709
|
-
* `
|
|
20500
|
+
* `delete` also takes the identity out of this Environment.
|
|
20710
20501
|
*/
|
|
20711
20502
|
revokeSessions(id: string): Promise<void>;
|
|
20712
20503
|
}
|
|
@@ -21049,7 +20840,9 @@ declare class LocalAuthorizer {
|
|
|
21049
20840
|
* With no argument, everything goes: grants and the hierarchy tree. Not
|
|
21050
20841
|
* needed in normal operation, where entries expire on their own; useful in
|
|
21051
20842
|
* tests and after a change whose reach you cannot name (a role's
|
|
21052
|
-
* permissions edited, a node moved).
|
|
20843
|
+
* permissions edited, a role deactivated or reactivated, a node moved). A
|
|
20844
|
+
* deactivated role grants nothing to anyone holding it, so until the cache
|
|
20845
|
+
* is cleared or expires, its holders keep being allowed locally.
|
|
21053
20846
|
*
|
|
21054
20847
|
* Multi-instance honesty: an invalidation reaches THIS process only. A
|
|
21055
20848
|
* webhook lands on one instance behind a load balancer; the others serve
|