@faable/auth-sdk 2.7.94 → 2.7.95
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/dist/FaableAuthApi.d.ts +40 -0
- package/dist/api/generated-client.d.ts +127 -0
- package/dist/api/generated-client.js +36 -0
- package/dist/api/types.d.ts +1205 -426
- package/dist/version.js +2 -2
- package/package.json +1 -1
- package/spec/openapi.json +2154 -333
package/dist/api/types.d.ts
CHANGED
|
@@ -1716,6 +1716,46 @@ export interface paths {
|
|
|
1716
1716
|
patch?: never;
|
|
1717
1717
|
trace?: never;
|
|
1718
1718
|
};
|
|
1719
|
+
"/account/keys/saml": {
|
|
1720
|
+
parameters: {
|
|
1721
|
+
query?: never;
|
|
1722
|
+
header?: never;
|
|
1723
|
+
path?: never;
|
|
1724
|
+
cookie?: never;
|
|
1725
|
+
};
|
|
1726
|
+
/**
|
|
1727
|
+
* Get the SAML signing certificates
|
|
1728
|
+
* @description The X.509 certificate this Account signs SAML assertions with, and the next one when a rotation is staged. Separate from the JWKS keys: rotating tokens never touches SAML. Created on first use.
|
|
1729
|
+
*/
|
|
1730
|
+
get: operations["account/getSamlKeys"];
|
|
1731
|
+
put?: never;
|
|
1732
|
+
post?: never;
|
|
1733
|
+
delete?: never;
|
|
1734
|
+
options?: never;
|
|
1735
|
+
head?: never;
|
|
1736
|
+
patch?: never;
|
|
1737
|
+
trace?: never;
|
|
1738
|
+
};
|
|
1739
|
+
"/account/keys/saml/rotate": {
|
|
1740
|
+
parameters: {
|
|
1741
|
+
query?: never;
|
|
1742
|
+
header?: never;
|
|
1743
|
+
path?: never;
|
|
1744
|
+
cookie?: never;
|
|
1745
|
+
};
|
|
1746
|
+
get?: never;
|
|
1747
|
+
put?: never;
|
|
1748
|
+
/**
|
|
1749
|
+
* Rotate the SAML signing certificate
|
|
1750
|
+
* @description Two steps. The first call stages a new certificate: the IdP metadata publishes both and signing continues with the current one, so each Service Provider can be updated. The second call promotes it: assertions are signed with the new certificate and the old one is dropped.
|
|
1751
|
+
*/
|
|
1752
|
+
post: operations["account/rotateSamlKeys"];
|
|
1753
|
+
delete?: never;
|
|
1754
|
+
options?: never;
|
|
1755
|
+
head?: never;
|
|
1756
|
+
patch?: never;
|
|
1757
|
+
trace?: never;
|
|
1758
|
+
};
|
|
1719
1759
|
"/account/keys": {
|
|
1720
1760
|
parameters: {
|
|
1721
1761
|
query?: never;
|
|
@@ -5208,6 +5248,70 @@ export interface paths {
|
|
|
5208
5248
|
patch?: never;
|
|
5209
5249
|
trace?: never;
|
|
5210
5250
|
};
|
|
5251
|
+
"/saml/metadata/{client_id}": {
|
|
5252
|
+
parameters: {
|
|
5253
|
+
query?: never;
|
|
5254
|
+
header?: never;
|
|
5255
|
+
path?: never;
|
|
5256
|
+
cookie?: never;
|
|
5257
|
+
};
|
|
5258
|
+
/**
|
|
5259
|
+
* SAML IdP metadata
|
|
5260
|
+
* @description This tenant's SAML 2.0 IdP metadata for one client: entity ID, single sign-on URL and signing certificates. Paste it, or its URL, into the Service Provider.
|
|
5261
|
+
*/
|
|
5262
|
+
get: operations["saml/metadata"];
|
|
5263
|
+
put?: never;
|
|
5264
|
+
post?: never;
|
|
5265
|
+
delete?: never;
|
|
5266
|
+
options?: never;
|
|
5267
|
+
head?: never;
|
|
5268
|
+
patch?: never;
|
|
5269
|
+
trace?: never;
|
|
5270
|
+
};
|
|
5271
|
+
"/saml/sso/{client_id}": {
|
|
5272
|
+
parameters: {
|
|
5273
|
+
query?: never;
|
|
5274
|
+
header?: never;
|
|
5275
|
+
path?: never;
|
|
5276
|
+
cookie?: never;
|
|
5277
|
+
};
|
|
5278
|
+
/**
|
|
5279
|
+
* SAML single sign-on
|
|
5280
|
+
* @description Single sign-on service (HTTP-Redirect and HTTP-POST bindings). With a SAMLRequest it answers the Service Provider; without one it starts an IdP-initiated login. The signed response is posted to the client's configured ACS URL.
|
|
5281
|
+
*/
|
|
5282
|
+
get: operations["saml/sso"];
|
|
5283
|
+
put?: never;
|
|
5284
|
+
/**
|
|
5285
|
+
* SAML single sign-on
|
|
5286
|
+
* @description Single sign-on service (HTTP-Redirect and HTTP-POST bindings). With a SAMLRequest it answers the Service Provider; without one it starts an IdP-initiated login. The signed response is posted to the client's configured ACS URL.
|
|
5287
|
+
*/
|
|
5288
|
+
post: operations["saml/sso_post"];
|
|
5289
|
+
delete?: never;
|
|
5290
|
+
options?: never;
|
|
5291
|
+
head?: never;
|
|
5292
|
+
patch?: never;
|
|
5293
|
+
trace?: never;
|
|
5294
|
+
};
|
|
5295
|
+
"/saml/callback": {
|
|
5296
|
+
parameters: {
|
|
5297
|
+
query?: never;
|
|
5298
|
+
header?: never;
|
|
5299
|
+
path?: never;
|
|
5300
|
+
cookie?: never;
|
|
5301
|
+
};
|
|
5302
|
+
/**
|
|
5303
|
+
* SAML bridge callback
|
|
5304
|
+
* @description Internal: where the login flow returns to finish a SAML sign-on. Not for direct use.
|
|
5305
|
+
*/
|
|
5306
|
+
get: operations["saml/callback"];
|
|
5307
|
+
put?: never;
|
|
5308
|
+
post?: never;
|
|
5309
|
+
delete?: never;
|
|
5310
|
+
options?: never;
|
|
5311
|
+
head?: never;
|
|
5312
|
+
patch?: never;
|
|
5313
|
+
trace?: never;
|
|
5314
|
+
};
|
|
5211
5315
|
"/usernamepassword/login": {
|
|
5212
5316
|
parameters: {
|
|
5213
5317
|
query?: never;
|
|
@@ -5818,6 +5922,25 @@ export interface components {
|
|
|
5818
5922
|
login_flow?: string | null;
|
|
5819
5923
|
/** @description Audience used when a client_credentials token request sends none (e.g. `faable:management:<account_id>`). An explicit `audience` in the request wins. Absent = `${iss}/userinfo`. */
|
|
5820
5924
|
default_audience?: string | null;
|
|
5925
|
+
saml_sp?: {
|
|
5926
|
+
/** @description Whether this client answers SAML requests. Off keeps the configuration but every /saml route of the client returns 404. */
|
|
5927
|
+
enabled: boolean;
|
|
5928
|
+
/** @description The Service Provider's Entity ID. Its AuthnRequests must carry it as Issuer, and every assertion is restricted to it as Audience. */
|
|
5929
|
+
entity_id: string;
|
|
5930
|
+
/** @description The Service Provider's Assertion Consumer Service URL (HTTP-POST binding), https. The only URL a response is ever posted to: an AuthnRequest naming another one is refused. */
|
|
5931
|
+
acs_url: string;
|
|
5932
|
+
/**
|
|
5933
|
+
* @description `emailAddress` (default) sends the email as NameID; `persistent` sends the stable user id; `unspecified` sends the email when the user has one, the user id otherwise.
|
|
5934
|
+
* @enum {unknown}
|
|
5935
|
+
*/
|
|
5936
|
+
nameid_format?: "emailAddress" | "persistent" | "unspecified";
|
|
5937
|
+
/** @description SAML attribute name → user field. Omit for the default (email, name, given_name, family_name). Custom ID token claims set by post-login actions are added as attributes too. */
|
|
5938
|
+
attribute_mapping?: {
|
|
5939
|
+
[key: string]: "user_id" | "email" | "email_verified" | "name" | "given_name" | "family_name" | "nickname" | "picture" | "phone_number";
|
|
5940
|
+
};
|
|
5941
|
+
/** @description Also sign the Response envelope, not only the Assertion. Default true; a few SPs reject a doubly-signed message. */
|
|
5942
|
+
sign_response?: boolean;
|
|
5943
|
+
} | null;
|
|
5821
5944
|
/** @description Object is related with this account */
|
|
5822
5945
|
account: string;
|
|
5823
5946
|
/**
|
|
@@ -5939,6 +6062,25 @@ export interface components {
|
|
|
5939
6062
|
login_flow?: string | null;
|
|
5940
6063
|
/** @description Audience a client_credentials token request gets when it sends none. An explicit `audience` wins. `null` removes it. */
|
|
5941
6064
|
default_audience?: string | null;
|
|
6065
|
+
saml_sp?: {
|
|
6066
|
+
/** @description Whether this client answers SAML requests. Off keeps the configuration but every /saml route of the client returns 404. */
|
|
6067
|
+
enabled: boolean;
|
|
6068
|
+
/** @description The Service Provider's Entity ID. Its AuthnRequests must carry it as Issuer, and every assertion is restricted to it as Audience. */
|
|
6069
|
+
entity_id: string;
|
|
6070
|
+
/** @description The Service Provider's Assertion Consumer Service URL (HTTP-POST binding), https. The only URL a response is ever posted to: an AuthnRequest naming another one is refused. */
|
|
6071
|
+
acs_url: string;
|
|
6072
|
+
/**
|
|
6073
|
+
* @description `emailAddress` (default) sends the email as NameID; `persistent` sends the stable user id; `unspecified` sends the email when the user has one, the user id otherwise.
|
|
6074
|
+
* @enum {unknown}
|
|
6075
|
+
*/
|
|
6076
|
+
nameid_format?: "emailAddress" | "persistent" | "unspecified";
|
|
6077
|
+
/** @description SAML attribute name → user field. Omit for the default (email, name, given_name, family_name). Custom ID token claims set by post-login actions are added as attributes too. */
|
|
6078
|
+
attribute_mapping?: {
|
|
6079
|
+
[key: string]: "user_id" | "email" | "email_verified" | "name" | "given_name" | "family_name" | "nickname" | "picture" | "phone_number";
|
|
6080
|
+
};
|
|
6081
|
+
/** @description Also sign the Response envelope, not only the Assertion. Default true; a few SPs reject a doubly-signed message. */
|
|
6082
|
+
sign_response?: boolean;
|
|
6083
|
+
} | null;
|
|
5942
6084
|
/** @description Free-form client metadata. Replaces the whole object — send the full merged value, not a partial delta. Omit it to leave the metadata untouched. */
|
|
5943
6085
|
metadata?: {
|
|
5944
6086
|
[key: string]: unknown;
|
|
@@ -7954,6 +8096,10 @@ export interface components {
|
|
|
7954
8096
|
* - `passwordless_unavailable` (400): No passwordless connection is configured or enabled for this client.
|
|
7955
8097
|
* - `ambiguous_connection` (400): Several connections match; pass `connection_id`.
|
|
7956
8098
|
* - `invalid_redirect_uri` (400): The redirect URI is not registered for the client.
|
|
8099
|
+
* - `invalid_saml_request` (400): The SAMLRequest is missing, too large, not well-formed or not a SAML 2.0 AuthnRequest.
|
|
8100
|
+
* - `saml_sp_mismatch` (400): The AuthnRequest does not match the client's SAML configuration: its Issuer is not the configured entity_id, or it asks for another Assertion Consumer Service URL or binding.
|
|
8101
|
+
* - `saml_not_enabled` (404): This client does not have SAML enabled.
|
|
8102
|
+
* - `invalid_saml_sp` (400): The `saml_sp` configuration is invalid: `acs_url` must be an absolute https URL without a fragment.
|
|
7957
8103
|
* - `origin_not_allowed` (403): The request `Origin` is not in the client's Allowed Web Origins.
|
|
7958
8104
|
* - `audience_not_found` (403): The `audience` does not name an API registered in this account.
|
|
7959
8105
|
* - `system_resource` (403): The resource is managed by Faable and cannot be modified or deleted.
|
|
@@ -8024,7 +8170,7 @@ export interface components {
|
|
|
8024
8170
|
* - `delivery_in_progress` (409): The delivery is being attempted right now; retry the redeliver in a minute.
|
|
8025
8171
|
* @enum {string}
|
|
8026
8172
|
*/
|
|
8027
|
-
ErrorCode: "bad_request" | "validation_error" | "unauthorized" | "payment_required" | "forbidden" | "not_found" | "method_not_allowed" | "conflict" | "payload_too_large" | "unsupported_media_type" | "unprocessable_entity" | "too_many_requests" | "internal_error" | "already_exists" | "invalid_id" | "account_not_found" | "invalid_query" | "search_not_supported" | "invalid_expand" | "access_denied" | "insufficient_scope" | "team_required" | "account_limit_reached" | "invalid_project_id" | "account_transfer_refused" | "email_sender_domain_not_allowed" | "plan_required" | "invalid_canonical_host" | "canonical_host_breaks_passkeys" | "not_logged_in" | "session_already_revoked" | "invalid_token" | "not_owner" | "user_suspended" | "invalid_credentials" | "login_denied" | "signup_denied" | "client_credentials_denied" | "m2m_quota_exceeded" | "signup_disabled" | "email_taken" | "username_taken" | "invalid_username" | "invalid_email" | "invalid_name" | "same_email" | "user_has_no_email" | "password_too_weak" | "invalid_password_hash" | "weak_password_hash" | "invalid_code" | "invalid_phone" | "phone_changed" | "phone_already_verified" | "sms_unavailable" | "sms_failed" | "invalid_state" | "state_mismatch" | "invalid_ticket" | "ticket_used" | "ticket_expired" | "ticket_not_found" | "credential_not_found" | "invalid_link" | "expired_link" | "invalid_otp" | "invalid_client" | "client_not_found" | "client_mismatch" | "invalid_client_metadata" | "invalid_connection" | "no_database_connection" | "connection_required" | "connection_misconfigured" | "passwordless_unavailable" | "ambiguous_connection" | "invalid_redirect_uri" | "origin_not_allowed" | "audience_not_found" | "system_resource" | "invalid_request" | "invalid_device_code" | "provider_error" | "identity_already_linked" | "identity_link_denied" | "identity_conflict" | "identity_orphaned" | "no_provider_token" | "no_refresh_token" | "action_unavailable" | "login_flow_misconfigured" | "mfa_required" | "step_up_required" | "interaction_required" | "passkey_login_disabled" | "mfa_pending" | "mfa_invalid_code" | "mfa_invalid_recovery_code" | "too_many_attempts" | "too_many_login_attempts" | "totp_not_allowed" | "no_usable_factor" | "factor_not_found" | "factor_already_confirmed" | "invalid_factor" | "session_missing" | "passkey_verification_failed" | "no_passkey_enrolled" | "malformed_credential" | "unknown_passkey" | "invalid_passkey" | "invalid_invite_url" | "invite_email_mismatch" | "invite_email_unverified" | "invite_not_found" | "invite_used" | "already_member" | "not_a_member" | "consent_options_unavailable" | "consent_choice_invalid" | "registration_disabled" | "invalid_email_domain" | "public_email_domain" | "organization_domain_not_found" | "organization_domain_taken" | "organization_domain_unverified" | "plan_unavailable" | "organization_domain_mismatch" | "team_not_in_organization" | "organization_has_no_idp" | "organization_not_found" | "invalid_user" | "not_an_organization_admin" | "last_organization_admin" | "team_id_unavailable" | "use_team_member_route" | "role_not_found" | "invalid_role" | "flow_not_found" | "revision_not_found" | "invalid_webhook_event" | "invalid_webhook_url" | "not_a_webhook" | "delivery_not_found" | "delivery_in_progress";
|
|
8173
|
+
ErrorCode: "bad_request" | "validation_error" | "unauthorized" | "payment_required" | "forbidden" | "not_found" | "method_not_allowed" | "conflict" | "payload_too_large" | "unsupported_media_type" | "unprocessable_entity" | "too_many_requests" | "internal_error" | "already_exists" | "invalid_id" | "account_not_found" | "invalid_query" | "search_not_supported" | "invalid_expand" | "access_denied" | "insufficient_scope" | "team_required" | "account_limit_reached" | "invalid_project_id" | "account_transfer_refused" | "email_sender_domain_not_allowed" | "plan_required" | "invalid_canonical_host" | "canonical_host_breaks_passkeys" | "not_logged_in" | "session_already_revoked" | "invalid_token" | "not_owner" | "user_suspended" | "invalid_credentials" | "login_denied" | "signup_denied" | "client_credentials_denied" | "m2m_quota_exceeded" | "signup_disabled" | "email_taken" | "username_taken" | "invalid_username" | "invalid_email" | "invalid_name" | "same_email" | "user_has_no_email" | "password_too_weak" | "invalid_password_hash" | "weak_password_hash" | "invalid_code" | "invalid_phone" | "phone_changed" | "phone_already_verified" | "sms_unavailable" | "sms_failed" | "invalid_state" | "state_mismatch" | "invalid_ticket" | "ticket_used" | "ticket_expired" | "ticket_not_found" | "credential_not_found" | "invalid_link" | "expired_link" | "invalid_otp" | "invalid_client" | "client_not_found" | "client_mismatch" | "invalid_client_metadata" | "invalid_connection" | "no_database_connection" | "connection_required" | "connection_misconfigured" | "passwordless_unavailable" | "ambiguous_connection" | "invalid_redirect_uri" | "invalid_saml_request" | "saml_sp_mismatch" | "saml_not_enabled" | "invalid_saml_sp" | "origin_not_allowed" | "audience_not_found" | "system_resource" | "invalid_request" | "invalid_device_code" | "provider_error" | "identity_already_linked" | "identity_link_denied" | "identity_conflict" | "identity_orphaned" | "no_provider_token" | "no_refresh_token" | "action_unavailable" | "login_flow_misconfigured" | "mfa_required" | "step_up_required" | "interaction_required" | "passkey_login_disabled" | "mfa_pending" | "mfa_invalid_code" | "mfa_invalid_recovery_code" | "too_many_attempts" | "too_many_login_attempts" | "totp_not_allowed" | "no_usable_factor" | "factor_not_found" | "factor_already_confirmed" | "invalid_factor" | "session_missing" | "passkey_verification_failed" | "no_passkey_enrolled" | "malformed_credential" | "unknown_passkey" | "invalid_passkey" | "invalid_invite_url" | "invite_email_mismatch" | "invite_email_unverified" | "invite_not_found" | "invite_used" | "already_member" | "not_a_member" | "consent_options_unavailable" | "consent_choice_invalid" | "registration_disabled" | "invalid_email_domain" | "public_email_domain" | "organization_domain_not_found" | "organization_domain_taken" | "organization_domain_unverified" | "plan_unavailable" | "organization_domain_mismatch" | "team_not_in_organization" | "organization_has_no_idp" | "organization_not_found" | "invalid_user" | "not_an_organization_admin" | "last_organization_admin" | "team_id_unavailable" | "use_team_member_route" | "role_not_found" | "invalid_role" | "flow_not_found" | "revision_not_found" | "invalid_webhook_event" | "invalid_webhook_url" | "not_a_webhook" | "delivery_not_found" | "delivery_in_progress";
|
|
8028
8174
|
/** @description Every error response has this shape. Branch on `error_code`, never on `message`: the message is written for a person and may change. */
|
|
8029
8175
|
ErrorResponse: {
|
|
8030
8176
|
/** @description The HTTP status, repeated. */
|
|
@@ -12000,6 +12146,25 @@ export interface operations {
|
|
|
12000
12146
|
login_flow?: string | null;
|
|
12001
12147
|
/** @description Audience used when a client_credentials token request sends none (e.g. `faable:management:<account_id>`). An explicit `audience` in the request wins. Absent = `${iss}/userinfo`. */
|
|
12002
12148
|
default_audience?: string | null;
|
|
12149
|
+
saml_sp?: {
|
|
12150
|
+
/** @description Whether this client answers SAML requests. Off keeps the configuration but every /saml route of the client returns 404. */
|
|
12151
|
+
enabled: boolean;
|
|
12152
|
+
/** @description The Service Provider's Entity ID. Its AuthnRequests must carry it as Issuer, and every assertion is restricted to it as Audience. */
|
|
12153
|
+
entity_id: string;
|
|
12154
|
+
/** @description The Service Provider's Assertion Consumer Service URL (HTTP-POST binding), https. The only URL a response is ever posted to: an AuthnRequest naming another one is refused. */
|
|
12155
|
+
acs_url: string;
|
|
12156
|
+
/**
|
|
12157
|
+
* @description `emailAddress` (default) sends the email as NameID; `persistent` sends the stable user id; `unspecified` sends the email when the user has one, the user id otherwise.
|
|
12158
|
+
* @enum {unknown}
|
|
12159
|
+
*/
|
|
12160
|
+
nameid_format?: "emailAddress" | "persistent" | "unspecified";
|
|
12161
|
+
/** @description SAML attribute name → user field. Omit for the default (email, name, given_name, family_name). Custom ID token claims set by post-login actions are added as attributes too. */
|
|
12162
|
+
attribute_mapping?: {
|
|
12163
|
+
[key: string]: "user_id" | "email" | "email_verified" | "name" | "given_name" | "family_name" | "nickname" | "picture" | "phone_number";
|
|
12164
|
+
};
|
|
12165
|
+
/** @description Also sign the Response envelope, not only the Assertion. Default true; a few SPs reject a doubly-signed message. */
|
|
12166
|
+
sign_response?: boolean;
|
|
12167
|
+
} | null;
|
|
12003
12168
|
/** @description Object is related with this account */
|
|
12004
12169
|
account: string;
|
|
12005
12170
|
/**
|
|
@@ -12205,6 +12370,25 @@ export interface operations {
|
|
|
12205
12370
|
login_flow?: string | null;
|
|
12206
12371
|
/** @description Audience used when a client_credentials token request sends none (e.g. `faable:management:<account_id>`). An explicit `audience` in the request wins. Absent = `${iss}/userinfo`. */
|
|
12207
12372
|
default_audience?: string | null;
|
|
12373
|
+
saml_sp?: {
|
|
12374
|
+
/** @description Whether this client answers SAML requests. Off keeps the configuration but every /saml route of the client returns 404. */
|
|
12375
|
+
enabled: boolean;
|
|
12376
|
+
/** @description The Service Provider's Entity ID. Its AuthnRequests must carry it as Issuer, and every assertion is restricted to it as Audience. */
|
|
12377
|
+
entity_id: string;
|
|
12378
|
+
/** @description The Service Provider's Assertion Consumer Service URL (HTTP-POST binding), https. The only URL a response is ever posted to: an AuthnRequest naming another one is refused. */
|
|
12379
|
+
acs_url: string;
|
|
12380
|
+
/**
|
|
12381
|
+
* @description `emailAddress` (default) sends the email as NameID; `persistent` sends the stable user id; `unspecified` sends the email when the user has one, the user id otherwise.
|
|
12382
|
+
* @enum {unknown}
|
|
12383
|
+
*/
|
|
12384
|
+
nameid_format?: "emailAddress" | "persistent" | "unspecified";
|
|
12385
|
+
/** @description SAML attribute name → user field. Omit for the default (email, name, given_name, family_name). Custom ID token claims set by post-login actions are added as attributes too. */
|
|
12386
|
+
attribute_mapping?: {
|
|
12387
|
+
[key: string]: "user_id" | "email" | "email_verified" | "name" | "given_name" | "family_name" | "nickname" | "picture" | "phone_number";
|
|
12388
|
+
};
|
|
12389
|
+
/** @description Also sign the Response envelope, not only the Assertion. Default true; a few SPs reject a doubly-signed message. */
|
|
12390
|
+
sign_response?: boolean;
|
|
12391
|
+
} | null;
|
|
12208
12392
|
/** @description Object is related with this account */
|
|
12209
12393
|
account: string;
|
|
12210
12394
|
/**
|
|
@@ -12403,6 +12587,25 @@ export interface operations {
|
|
|
12403
12587
|
login_flow?: string | null;
|
|
12404
12588
|
/** @description Audience a client_credentials token request gets when it sends none. An explicit `audience` wins. `null` removes it. */
|
|
12405
12589
|
default_audience?: string | null;
|
|
12590
|
+
saml_sp?: {
|
|
12591
|
+
/** @description Whether this client answers SAML requests. Off keeps the configuration but every /saml route of the client returns 404. */
|
|
12592
|
+
enabled: boolean;
|
|
12593
|
+
/** @description The Service Provider's Entity ID. Its AuthnRequests must carry it as Issuer, and every assertion is restricted to it as Audience. */
|
|
12594
|
+
entity_id: string;
|
|
12595
|
+
/** @description The Service Provider's Assertion Consumer Service URL (HTTP-POST binding), https. The only URL a response is ever posted to: an AuthnRequest naming another one is refused. */
|
|
12596
|
+
acs_url: string;
|
|
12597
|
+
/**
|
|
12598
|
+
* @description `emailAddress` (default) sends the email as NameID; `persistent` sends the stable user id; `unspecified` sends the email when the user has one, the user id otherwise.
|
|
12599
|
+
* @enum {unknown}
|
|
12600
|
+
*/
|
|
12601
|
+
nameid_format?: "emailAddress" | "persistent" | "unspecified";
|
|
12602
|
+
/** @description SAML attribute name → user field. Omit for the default (email, name, given_name, family_name). Custom ID token claims set by post-login actions are added as attributes too. */
|
|
12603
|
+
attribute_mapping?: {
|
|
12604
|
+
[key: string]: "user_id" | "email" | "email_verified" | "name" | "given_name" | "family_name" | "nickname" | "picture" | "phone_number";
|
|
12605
|
+
};
|
|
12606
|
+
/** @description Also sign the Response envelope, not only the Assertion. Default true; a few SPs reject a doubly-signed message. */
|
|
12607
|
+
sign_response?: boolean;
|
|
12608
|
+
} | null;
|
|
12406
12609
|
/** @description Free-form client metadata. Replaces the whole object — send the full merged value, not a partial delta. Omit it to leave the metadata untouched. */
|
|
12407
12610
|
metadata?: {
|
|
12408
12611
|
[key: string]: unknown;
|
|
@@ -12505,6 +12708,25 @@ export interface operations {
|
|
|
12505
12708
|
login_flow?: string | null;
|
|
12506
12709
|
/** @description Audience used when a client_credentials token request sends none (e.g. `faable:management:<account_id>`). An explicit `audience` in the request wins. Absent = `${iss}/userinfo`. */
|
|
12507
12710
|
default_audience?: string | null;
|
|
12711
|
+
saml_sp?: {
|
|
12712
|
+
/** @description Whether this client answers SAML requests. Off keeps the configuration but every /saml route of the client returns 404. */
|
|
12713
|
+
enabled: boolean;
|
|
12714
|
+
/** @description The Service Provider's Entity ID. Its AuthnRequests must carry it as Issuer, and every assertion is restricted to it as Audience. */
|
|
12715
|
+
entity_id: string;
|
|
12716
|
+
/** @description The Service Provider's Assertion Consumer Service URL (HTTP-POST binding), https. The only URL a response is ever posted to: an AuthnRequest naming another one is refused. */
|
|
12717
|
+
acs_url: string;
|
|
12718
|
+
/**
|
|
12719
|
+
* @description `emailAddress` (default) sends the email as NameID; `persistent` sends the stable user id; `unspecified` sends the email when the user has one, the user id otherwise.
|
|
12720
|
+
* @enum {unknown}
|
|
12721
|
+
*/
|
|
12722
|
+
nameid_format?: "emailAddress" | "persistent" | "unspecified";
|
|
12723
|
+
/** @description SAML attribute name → user field. Omit for the default (email, name, given_name, family_name). Custom ID token claims set by post-login actions are added as attributes too. */
|
|
12724
|
+
attribute_mapping?: {
|
|
12725
|
+
[key: string]: "user_id" | "email" | "email_verified" | "name" | "given_name" | "family_name" | "nickname" | "picture" | "phone_number";
|
|
12726
|
+
};
|
|
12727
|
+
/** @description Also sign the Response envelope, not only the Assertion. Default true; a few SPs reject a doubly-signed message. */
|
|
12728
|
+
sign_response?: boolean;
|
|
12729
|
+
} | null;
|
|
12508
12730
|
/** @description Object is related with this account */
|
|
12509
12731
|
account: string;
|
|
12510
12732
|
/**
|
|
@@ -12716,6 +12938,25 @@ export interface operations {
|
|
|
12716
12938
|
login_flow?: string | null;
|
|
12717
12939
|
/** @description Audience used when a client_credentials token request sends none (e.g. `faable:management:<account_id>`). An explicit `audience` in the request wins. Absent = `${iss}/userinfo`. */
|
|
12718
12940
|
default_audience?: string | null;
|
|
12941
|
+
saml_sp?: {
|
|
12942
|
+
/** @description Whether this client answers SAML requests. Off keeps the configuration but every /saml route of the client returns 404. */
|
|
12943
|
+
enabled: boolean;
|
|
12944
|
+
/** @description The Service Provider's Entity ID. Its AuthnRequests must carry it as Issuer, and every assertion is restricted to it as Audience. */
|
|
12945
|
+
entity_id: string;
|
|
12946
|
+
/** @description The Service Provider's Assertion Consumer Service URL (HTTP-POST binding), https. The only URL a response is ever posted to: an AuthnRequest naming another one is refused. */
|
|
12947
|
+
acs_url: string;
|
|
12948
|
+
/**
|
|
12949
|
+
* @description `emailAddress` (default) sends the email as NameID; `persistent` sends the stable user id; `unspecified` sends the email when the user has one, the user id otherwise.
|
|
12950
|
+
* @enum {unknown}
|
|
12951
|
+
*/
|
|
12952
|
+
nameid_format?: "emailAddress" | "persistent" | "unspecified";
|
|
12953
|
+
/** @description SAML attribute name → user field. Omit for the default (email, name, given_name, family_name). Custom ID token claims set by post-login actions are added as attributes too. */
|
|
12954
|
+
attribute_mapping?: {
|
|
12955
|
+
[key: string]: "user_id" | "email" | "email_verified" | "name" | "given_name" | "family_name" | "nickname" | "picture" | "phone_number";
|
|
12956
|
+
};
|
|
12957
|
+
/** @description Also sign the Response envelope, not only the Assertion. Default true; a few SPs reject a doubly-signed message. */
|
|
12958
|
+
sign_response?: boolean;
|
|
12959
|
+
} | null;
|
|
12719
12960
|
/** @description Object is related with this account */
|
|
12720
12961
|
account: string;
|
|
12721
12962
|
/**
|
|
@@ -12925,6 +13166,25 @@ export interface operations {
|
|
|
12925
13166
|
login_flow?: string | null;
|
|
12926
13167
|
/** @description Audience used when a client_credentials token request sends none (e.g. `faable:management:<account_id>`). An explicit `audience` in the request wins. Absent = `${iss}/userinfo`. */
|
|
12927
13168
|
default_audience?: string | null;
|
|
13169
|
+
saml_sp?: {
|
|
13170
|
+
/** @description Whether this client answers SAML requests. Off keeps the configuration but every /saml route of the client returns 404. */
|
|
13171
|
+
enabled: boolean;
|
|
13172
|
+
/** @description The Service Provider's Entity ID. Its AuthnRequests must carry it as Issuer, and every assertion is restricted to it as Audience. */
|
|
13173
|
+
entity_id: string;
|
|
13174
|
+
/** @description The Service Provider's Assertion Consumer Service URL (HTTP-POST binding), https. The only URL a response is ever posted to: an AuthnRequest naming another one is refused. */
|
|
13175
|
+
acs_url: string;
|
|
13176
|
+
/**
|
|
13177
|
+
* @description `emailAddress` (default) sends the email as NameID; `persistent` sends the stable user id; `unspecified` sends the email when the user has one, the user id otherwise.
|
|
13178
|
+
* @enum {unknown}
|
|
13179
|
+
*/
|
|
13180
|
+
nameid_format?: "emailAddress" | "persistent" | "unspecified";
|
|
13181
|
+
/** @description SAML attribute name → user field. Omit for the default (email, name, given_name, family_name). Custom ID token claims set by post-login actions are added as attributes too. */
|
|
13182
|
+
attribute_mapping?: {
|
|
13183
|
+
[key: string]: "user_id" | "email" | "email_verified" | "name" | "given_name" | "family_name" | "nickname" | "picture" | "phone_number";
|
|
13184
|
+
};
|
|
13185
|
+
/** @description Also sign the Response envelope, not only the Assertion. Default true; a few SPs reject a doubly-signed message. */
|
|
13186
|
+
sign_response?: boolean;
|
|
13187
|
+
} | null;
|
|
12928
13188
|
/** @description Object is related with this account */
|
|
12929
13189
|
account: string;
|
|
12930
13190
|
/**
|
|
@@ -24759,7 +25019,7 @@ export interface operations {
|
|
|
24759
25019
|
};
|
|
24760
25020
|
};
|
|
24761
25021
|
};
|
|
24762
|
-
"account/
|
|
25022
|
+
"account/getSamlKeys": {
|
|
24763
25023
|
parameters: {
|
|
24764
25024
|
query?: never;
|
|
24765
25025
|
header?: never;
|
|
@@ -24775,12 +25035,20 @@ export interface operations {
|
|
|
24775
25035
|
};
|
|
24776
25036
|
content: {
|
|
24777
25037
|
"application/json": {
|
|
24778
|
-
|
|
24779
|
-
|
|
24780
|
-
|
|
24781
|
-
|
|
24782
|
-
|
|
24783
|
-
|
|
25038
|
+
current: {
|
|
25039
|
+
id: string;
|
|
25040
|
+
/** @description PEM X.509 certificate */
|
|
25041
|
+
certificate: string;
|
|
25042
|
+
/** Format: date-time */
|
|
25043
|
+
not_after: string;
|
|
25044
|
+
};
|
|
25045
|
+
next?: {
|
|
25046
|
+
id: string;
|
|
25047
|
+
/** @description PEM X.509 certificate */
|
|
25048
|
+
certificate: string;
|
|
25049
|
+
/** Format: date-time */
|
|
25050
|
+
not_after: string;
|
|
25051
|
+
};
|
|
24784
25052
|
};
|
|
24785
25053
|
};
|
|
24786
25054
|
};
|
|
@@ -24852,18 +25120,14 @@ export interface operations {
|
|
|
24852
25120
|
};
|
|
24853
25121
|
};
|
|
24854
25122
|
};
|
|
24855
|
-
"account/
|
|
25123
|
+
"account/rotateSamlKeys": {
|
|
24856
25124
|
parameters: {
|
|
24857
25125
|
query?: never;
|
|
24858
25126
|
header?: never;
|
|
24859
25127
|
path?: never;
|
|
24860
25128
|
cookie?: never;
|
|
24861
25129
|
};
|
|
24862
|
-
requestBody
|
|
24863
|
-
content: {
|
|
24864
|
-
"application/json": Record<string, never>;
|
|
24865
|
-
};
|
|
24866
|
-
};
|
|
25130
|
+
requestBody?: never;
|
|
24867
25131
|
responses: {
|
|
24868
25132
|
/** @description Default Response */
|
|
24869
25133
|
200: {
|
|
@@ -24872,28 +25136,9 @@ export interface operations {
|
|
|
24872
25136
|
};
|
|
24873
25137
|
content: {
|
|
24874
25138
|
"application/json": {
|
|
24875
|
-
|
|
24876
|
-
|
|
24877
|
-
|
|
24878
|
-
previous_production_kid: string;
|
|
24879
|
-
/** @description kid now used to sign new tokens */
|
|
24880
|
-
production_kid: string;
|
|
24881
|
-
/** @description kid that will be promoted on the next rotation */
|
|
24882
|
-
next_in_queue_kid: string;
|
|
24883
|
-
/** @description All kids currently published in the JWK Set */
|
|
24884
|
-
kids_active: string[];
|
|
24885
|
-
};
|
|
24886
|
-
};
|
|
24887
|
-
};
|
|
24888
|
-
/** @description `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field. */
|
|
24889
|
-
400: {
|
|
24890
|
-
headers: {
|
|
24891
|
-
[name: string]: unknown;
|
|
24892
|
-
};
|
|
24893
|
-
content: {
|
|
24894
|
-
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
24895
|
-
/** @enum {string} */
|
|
24896
|
-
error_code?: "validation_error";
|
|
25139
|
+
step: "staged" | "promoted";
|
|
25140
|
+
current_id: string;
|
|
25141
|
+
next_id?: string;
|
|
24897
25142
|
};
|
|
24898
25143
|
};
|
|
24899
25144
|
};
|
|
@@ -24965,20 +25210,9 @@ export interface operations {
|
|
|
24965
25210
|
};
|
|
24966
25211
|
};
|
|
24967
25212
|
};
|
|
24968
|
-
"
|
|
25213
|
+
"account/getKeys": {
|
|
24969
25214
|
parameters: {
|
|
24970
|
-
query?:
|
|
24971
|
-
/** @description Number of items per page (max 200) */
|
|
24972
|
-
pageSize?: number;
|
|
24973
|
-
/** @description Cursor for next page */
|
|
24974
|
-
cursor?: string;
|
|
24975
|
-
/** @description Cursor returned by the previous page */
|
|
24976
|
-
next?: string;
|
|
24977
|
-
/** @description Also return `total`: the rows matching the whole filter, across every page. */
|
|
24978
|
-
count?: boolean;
|
|
24979
|
-
/** @description Filter using a FaableQL query */
|
|
24980
|
-
query?: string;
|
|
24981
|
-
};
|
|
25215
|
+
query?: never;
|
|
24982
25216
|
header?: never;
|
|
24983
25217
|
path?: never;
|
|
24984
25218
|
cookie?: never;
|
|
@@ -24992,30 +25226,12 @@ export interface operations {
|
|
|
24992
25226
|
};
|
|
24993
25227
|
content: {
|
|
24994
25228
|
"application/json": {
|
|
24995
|
-
|
|
24996
|
-
|
|
24997
|
-
/** @description
|
|
24998
|
-
|
|
24999
|
-
|
|
25000
|
-
|
|
25001
|
-
};
|
|
25002
|
-
/**
|
|
25003
|
-
* @description `invalid_query` — The `?query=` FaableQL expression could not be parsed.
|
|
25004
|
-
*
|
|
25005
|
-
* `invalid_expand` — An `?expand=` path is not allowed on this resource.
|
|
25006
|
-
*
|
|
25007
|
-
* `search_not_supported` — This resource does not support `?search=`.
|
|
25008
|
-
*
|
|
25009
|
-
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
25010
|
-
*/
|
|
25011
|
-
400: {
|
|
25012
|
-
headers: {
|
|
25013
|
-
[name: string]: unknown;
|
|
25014
|
-
};
|
|
25015
|
-
content: {
|
|
25016
|
-
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
25017
|
-
/** @enum {string} */
|
|
25018
|
-
error_code?: "invalid_query" | "invalid_expand" | "search_not_supported" | "validation_error";
|
|
25229
|
+
/** @description kid currently used to sign new tokens */
|
|
25230
|
+
production_kid: string;
|
|
25231
|
+
/** @description kid that will be promoted on the next rotation */
|
|
25232
|
+
next_in_queue_kid: string;
|
|
25233
|
+
/** @description All kids currently published in the JWK Set */
|
|
25234
|
+
kids_active: string[];
|
|
25019
25235
|
};
|
|
25020
25236
|
};
|
|
25021
25237
|
};
|
|
@@ -25087,7 +25303,7 @@ export interface operations {
|
|
|
25087
25303
|
};
|
|
25088
25304
|
};
|
|
25089
25305
|
};
|
|
25090
|
-
"
|
|
25306
|
+
"account/rotateKeys": {
|
|
25091
25307
|
parameters: {
|
|
25092
25308
|
query?: never;
|
|
25093
25309
|
header?: never;
|
|
@@ -25096,76 +25312,31 @@ export interface operations {
|
|
|
25096
25312
|
};
|
|
25097
25313
|
requestBody: {
|
|
25098
25314
|
content: {
|
|
25099
|
-
"application/json":
|
|
25100
|
-
/** @description Action Name */
|
|
25101
|
-
name: string;
|
|
25102
|
-
/** @description JavaScript code. Must export at least one hook: exports.onExecutePostLogin, exports.onExecuteContinue and/or exports.onExecuteClientCredentials. The triggers are derived from the exported hooks. */
|
|
25103
|
-
code: string;
|
|
25104
|
-
/**
|
|
25105
|
-
* @description Is this action active?
|
|
25106
|
-
* @default true
|
|
25107
|
-
*/
|
|
25108
|
-
enabled?: boolean;
|
|
25109
|
-
/**
|
|
25110
|
-
* @description Execution order: lower runs first; on ties the newest action runs first
|
|
25111
|
-
* @default 0
|
|
25112
|
-
*/
|
|
25113
|
-
order?: number;
|
|
25114
|
-
};
|
|
25315
|
+
"application/json": Record<string, never>;
|
|
25115
25316
|
};
|
|
25116
25317
|
};
|
|
25117
25318
|
responses: {
|
|
25118
|
-
/** @description
|
|
25319
|
+
/** @description Default Response */
|
|
25119
25320
|
200: {
|
|
25120
25321
|
headers: {
|
|
25121
25322
|
[name: string]: unknown;
|
|
25122
25323
|
};
|
|
25123
25324
|
content: {
|
|
25124
25325
|
"application/json": {
|
|
25125
|
-
/** @description
|
|
25126
|
-
|
|
25127
|
-
/** @description
|
|
25128
|
-
|
|
25129
|
-
/** @description
|
|
25130
|
-
|
|
25131
|
-
/** @description
|
|
25132
|
-
|
|
25133
|
-
/**
|
|
25134
|
-
|
|
25135
|
-
* @default true
|
|
25136
|
-
*/
|
|
25137
|
-
enabled: boolean;
|
|
25138
|
-
/**
|
|
25139
|
-
* @description Execution order: lower runs first; on ties the newest action runs first
|
|
25140
|
-
* @default 0
|
|
25141
|
-
*/
|
|
25142
|
-
order: number;
|
|
25143
|
-
/**
|
|
25144
|
-
* @description Monotonic edit counter — increments on every update. Audit rows stamp the revision that produced each allow/deny (`data.action_revision`); `updatedAt` dates the current revision.
|
|
25145
|
-
* @default 1
|
|
25146
|
-
*/
|
|
25147
|
-
revision: number;
|
|
25148
|
-
/** @description Object is related with this account */
|
|
25149
|
-
account: string;
|
|
25150
|
-
/**
|
|
25151
|
-
* @description ActionMetadata
|
|
25152
|
-
* @default {}
|
|
25153
|
-
*/
|
|
25154
|
-
metadata: {
|
|
25155
|
-
[key: string]: unknown;
|
|
25156
|
-
};
|
|
25157
|
-
/** @description Action creation date */
|
|
25158
|
-
createdAt: string;
|
|
25159
|
-
/** @description Action updated date */
|
|
25160
|
-
updatedAt?: string;
|
|
25326
|
+
/** @description ISO 8601 timestamp of the rotation */
|
|
25327
|
+
rotated_at: string;
|
|
25328
|
+
/** @description kid that was active before rotation. Tokens signed with it are still verifiable via /.well-known/jwks.json */
|
|
25329
|
+
previous_production_kid: string;
|
|
25330
|
+
/** @description kid now used to sign new tokens */
|
|
25331
|
+
production_kid: string;
|
|
25332
|
+
/** @description kid that will be promoted on the next rotation */
|
|
25333
|
+
next_in_queue_kid: string;
|
|
25334
|
+
/** @description All kids currently published in the JWK Set */
|
|
25335
|
+
kids_active: string[];
|
|
25161
25336
|
};
|
|
25162
25337
|
};
|
|
25163
25338
|
};
|
|
25164
|
-
/**
|
|
25165
|
-
* @description `already_exists` — A resource with the same unique field already exists (for a user, usually `email`). `details.fields` names the field.
|
|
25166
|
-
*
|
|
25167
|
-
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
25168
|
-
*/
|
|
25339
|
+
/** @description `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field. */
|
|
25169
25340
|
400: {
|
|
25170
25341
|
headers: {
|
|
25171
25342
|
[name: string]: unknown;
|
|
@@ -25173,7 +25344,7 @@ export interface operations {
|
|
|
25173
25344
|
content: {
|
|
25174
25345
|
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
25175
25346
|
/** @enum {string} */
|
|
25176
|
-
error_code?: "
|
|
25347
|
+
error_code?: "validation_error";
|
|
25177
25348
|
};
|
|
25178
25349
|
};
|
|
25179
25350
|
};
|
|
@@ -25245,68 +25416,47 @@ export interface operations {
|
|
|
25245
25416
|
};
|
|
25246
25417
|
};
|
|
25247
25418
|
};
|
|
25248
|
-
"action/
|
|
25419
|
+
"action/list": {
|
|
25249
25420
|
parameters: {
|
|
25250
|
-
query?:
|
|
25251
|
-
|
|
25252
|
-
|
|
25253
|
-
|
|
25421
|
+
query?: {
|
|
25422
|
+
/** @description Number of items per page (max 200) */
|
|
25423
|
+
pageSize?: number;
|
|
25424
|
+
/** @description Cursor for next page */
|
|
25425
|
+
cursor?: string;
|
|
25426
|
+
/** @description Cursor returned by the previous page */
|
|
25427
|
+
next?: string;
|
|
25428
|
+
/** @description Also return `total`: the rows matching the whole filter, across every page. */
|
|
25429
|
+
count?: boolean;
|
|
25430
|
+
/** @description Filter using a FaableQL query */
|
|
25431
|
+
query?: string;
|
|
25254
25432
|
};
|
|
25433
|
+
header?: never;
|
|
25434
|
+
path?: never;
|
|
25255
25435
|
cookie?: never;
|
|
25256
25436
|
};
|
|
25257
25437
|
requestBody?: never;
|
|
25258
25438
|
responses: {
|
|
25259
|
-
/** @description
|
|
25439
|
+
/** @description Default Response */
|
|
25260
25440
|
200: {
|
|
25261
25441
|
headers: {
|
|
25262
25442
|
[name: string]: unknown;
|
|
25263
25443
|
};
|
|
25264
25444
|
content: {
|
|
25265
25445
|
"application/json": {
|
|
25266
|
-
|
|
25267
|
-
|
|
25268
|
-
/** @description
|
|
25269
|
-
|
|
25270
|
-
/** @description Triggers this action runs on. Derived from the hooks the code exports (`onExecutePostLogin` → post-login, `onExecuteContinue` → continue, `onExecuteClientCredentials` → client-credentials); read-only. */
|
|
25271
|
-
triggers: ("continue" | "post-login" | "client-credentials")[];
|
|
25272
|
-
/** @description JavaScript Code to execute */
|
|
25273
|
-
code: string;
|
|
25274
|
-
/**
|
|
25275
|
-
* @description Is this action active?
|
|
25276
|
-
* @default true
|
|
25277
|
-
*/
|
|
25278
|
-
enabled: boolean;
|
|
25279
|
-
/**
|
|
25280
|
-
* @description Execution order: lower runs first; on ties the newest action runs first
|
|
25281
|
-
* @default 0
|
|
25282
|
-
*/
|
|
25283
|
-
order: number;
|
|
25284
|
-
/**
|
|
25285
|
-
* @description Monotonic edit counter — increments on every update. Audit rows stamp the revision that produced each allow/deny (`data.action_revision`); `updatedAt` dates the current revision.
|
|
25286
|
-
* @default 1
|
|
25287
|
-
*/
|
|
25288
|
-
revision: number;
|
|
25289
|
-
/** @description Object is related with this account */
|
|
25290
|
-
account: string;
|
|
25291
|
-
/**
|
|
25292
|
-
* @description ActionMetadata
|
|
25293
|
-
* @default {}
|
|
25294
|
-
*/
|
|
25295
|
-
metadata: {
|
|
25296
|
-
[key: string]: unknown;
|
|
25297
|
-
};
|
|
25298
|
-
/** @description Action creation date */
|
|
25299
|
-
createdAt: string;
|
|
25300
|
-
/** @description Action updated date */
|
|
25301
|
-
updatedAt?: string;
|
|
25446
|
+
next: string | null;
|
|
25447
|
+
results: components["schemas"]["Action"][];
|
|
25448
|
+
/** @description Rows matching the whole filter, across every page. Only with `?count=true`. */
|
|
25449
|
+
total?: number;
|
|
25302
25450
|
};
|
|
25303
25451
|
};
|
|
25304
25452
|
};
|
|
25305
25453
|
/**
|
|
25306
|
-
* @description `
|
|
25454
|
+
* @description `invalid_query` — The `?query=` FaableQL expression could not be parsed.
|
|
25307
25455
|
*
|
|
25308
25456
|
* `invalid_expand` — An `?expand=` path is not allowed on this resource.
|
|
25309
25457
|
*
|
|
25458
|
+
* `search_not_supported` — This resource does not support `?search=`.
|
|
25459
|
+
*
|
|
25310
25460
|
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
25311
25461
|
*/
|
|
25312
25462
|
400: {
|
|
@@ -25316,7 +25466,7 @@ export interface operations {
|
|
|
25316
25466
|
content: {
|
|
25317
25467
|
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
25318
25468
|
/** @enum {string} */
|
|
25319
|
-
error_code?: "
|
|
25469
|
+
error_code?: "invalid_query" | "invalid_expand" | "search_not_supported" | "validation_error";
|
|
25320
25470
|
};
|
|
25321
25471
|
};
|
|
25322
25472
|
};
|
|
@@ -25350,11 +25500,7 @@ export interface operations {
|
|
|
25350
25500
|
};
|
|
25351
25501
|
};
|
|
25352
25502
|
};
|
|
25353
|
-
/**
|
|
25354
|
-
* @description `not_found` — The resource does not exist in this account.
|
|
25355
|
-
*
|
|
25356
|
-
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
25357
|
-
*/
|
|
25503
|
+
/** @description `account_not_found` — No Auth Account matches the request (domain, header or token). */
|
|
25358
25504
|
404: {
|
|
25359
25505
|
headers: {
|
|
25360
25506
|
[name: string]: unknown;
|
|
@@ -25362,7 +25508,7 @@ export interface operations {
|
|
|
25362
25508
|
content: {
|
|
25363
25509
|
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
25364
25510
|
/** @enum {string} */
|
|
25365
|
-
error_code?: "
|
|
25511
|
+
error_code?: "account_not_found";
|
|
25366
25512
|
};
|
|
25367
25513
|
};
|
|
25368
25514
|
};
|
|
@@ -25392,26 +25538,29 @@ export interface operations {
|
|
|
25392
25538
|
};
|
|
25393
25539
|
};
|
|
25394
25540
|
};
|
|
25395
|
-
"action/
|
|
25541
|
+
"action/create": {
|
|
25396
25542
|
parameters: {
|
|
25397
25543
|
query?: never;
|
|
25398
25544
|
header?: never;
|
|
25399
|
-
path
|
|
25400
|
-
action_id: string;
|
|
25401
|
-
};
|
|
25545
|
+
path?: never;
|
|
25402
25546
|
cookie?: never;
|
|
25403
25547
|
};
|
|
25404
|
-
/** @description Partial update for an Action. Only the supplied fields are modified; `triggers` is read-only and follows `code`. */
|
|
25405
25548
|
requestBody: {
|
|
25406
25549
|
content: {
|
|
25407
25550
|
"application/json": {
|
|
25408
25551
|
/** @description Action Name */
|
|
25409
|
-
name
|
|
25410
|
-
/** @description JavaScript code. The triggers are
|
|
25411
|
-
code
|
|
25412
|
-
/**
|
|
25552
|
+
name: string;
|
|
25553
|
+
/** @description JavaScript code. Must export at least one hook: exports.onExecutePostLogin, exports.onExecuteContinue and/or exports.onExecuteClientCredentials. The triggers are derived from the exported hooks. */
|
|
25554
|
+
code: string;
|
|
25555
|
+
/**
|
|
25556
|
+
* @description Is this action active?
|
|
25557
|
+
* @default true
|
|
25558
|
+
*/
|
|
25413
25559
|
enabled?: boolean;
|
|
25414
|
-
/**
|
|
25560
|
+
/**
|
|
25561
|
+
* @description Execution order: lower runs first; on ties the newest action runs first
|
|
25562
|
+
* @default 0
|
|
25563
|
+
*/
|
|
25415
25564
|
order?: number;
|
|
25416
25565
|
};
|
|
25417
25566
|
};
|
|
@@ -25464,9 +25613,7 @@ export interface operations {
|
|
|
25464
25613
|
};
|
|
25465
25614
|
};
|
|
25466
25615
|
/**
|
|
25467
|
-
* @description `
|
|
25468
|
-
*
|
|
25469
|
-
* `already_exists` — A resource with the same unique field already exists (for a user, usually `email`). `details.fields` names the field.
|
|
25616
|
+
* @description `already_exists` — A resource with the same unique field already exists (for a user, usually `email`). `details.fields` names the field.
|
|
25470
25617
|
*
|
|
25471
25618
|
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
25472
25619
|
*/
|
|
@@ -25477,7 +25624,7 @@ export interface operations {
|
|
|
25477
25624
|
content: {
|
|
25478
25625
|
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
25479
25626
|
/** @enum {string} */
|
|
25480
|
-
error_code?: "
|
|
25627
|
+
error_code?: "already_exists" | "validation_error";
|
|
25481
25628
|
};
|
|
25482
25629
|
};
|
|
25483
25630
|
};
|
|
@@ -25511,11 +25658,7 @@ export interface operations {
|
|
|
25511
25658
|
};
|
|
25512
25659
|
};
|
|
25513
25660
|
};
|
|
25514
|
-
/**
|
|
25515
|
-
* @description `not_found` — The resource does not exist in this account.
|
|
25516
|
-
*
|
|
25517
|
-
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
25518
|
-
*/
|
|
25661
|
+
/** @description `account_not_found` — No Auth Account matches the request (domain, header or token). */
|
|
25519
25662
|
404: {
|
|
25520
25663
|
headers: {
|
|
25521
25664
|
[name: string]: unknown;
|
|
@@ -25523,7 +25666,7 @@ export interface operations {
|
|
|
25523
25666
|
content: {
|
|
25524
25667
|
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
25525
25668
|
/** @enum {string} */
|
|
25526
|
-
error_code?: "
|
|
25669
|
+
error_code?: "account_not_found";
|
|
25527
25670
|
};
|
|
25528
25671
|
};
|
|
25529
25672
|
};
|
|
@@ -25553,7 +25696,7 @@ export interface operations {
|
|
|
25553
25696
|
};
|
|
25554
25697
|
};
|
|
25555
25698
|
};
|
|
25556
|
-
"action/
|
|
25699
|
+
"action/get": {
|
|
25557
25700
|
parameters: {
|
|
25558
25701
|
query?: never;
|
|
25559
25702
|
header?: never;
|
|
@@ -25613,6 +25756,8 @@ export interface operations {
|
|
|
25613
25756
|
/**
|
|
25614
25757
|
* @description `invalid_id` — The id in the path is not a valid id for this resource.
|
|
25615
25758
|
*
|
|
25759
|
+
* `invalid_expand` — An `?expand=` path is not allowed on this resource.
|
|
25760
|
+
*
|
|
25616
25761
|
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
25617
25762
|
*/
|
|
25618
25763
|
400: {
|
|
@@ -25622,7 +25767,7 @@ export interface operations {
|
|
|
25622
25767
|
content: {
|
|
25623
25768
|
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
25624
25769
|
/** @enum {string} */
|
|
25625
|
-
error_code?: "invalid_id" | "validation_error";
|
|
25770
|
+
error_code?: "invalid_id" | "invalid_expand" | "validation_error";
|
|
25626
25771
|
};
|
|
25627
25772
|
};
|
|
25628
25773
|
};
|
|
@@ -25698,76 +25843,84 @@ export interface operations {
|
|
|
25698
25843
|
};
|
|
25699
25844
|
};
|
|
25700
25845
|
};
|
|
25701
|
-
"
|
|
25846
|
+
"action/update": {
|
|
25702
25847
|
parameters: {
|
|
25703
|
-
query?:
|
|
25704
|
-
client_id?: string;
|
|
25705
|
-
};
|
|
25848
|
+
query?: never;
|
|
25706
25849
|
header?: never;
|
|
25707
|
-
path
|
|
25850
|
+
path: {
|
|
25851
|
+
action_id: string;
|
|
25852
|
+
};
|
|
25708
25853
|
cookie?: never;
|
|
25709
25854
|
};
|
|
25710
|
-
|
|
25855
|
+
/** @description Partial update for an Action. Only the supplied fields are modified; `triggers` is read-only and follows `code`. */
|
|
25856
|
+
requestBody: {
|
|
25857
|
+
content: {
|
|
25858
|
+
"application/json": {
|
|
25859
|
+
/** @description Action Name */
|
|
25860
|
+
name?: string;
|
|
25861
|
+
/** @description JavaScript code. The triggers are re-derived from the hooks it exports. */
|
|
25862
|
+
code?: string;
|
|
25863
|
+
/** @description Is this action active? */
|
|
25864
|
+
enabled?: boolean;
|
|
25865
|
+
/** @description Execution order */
|
|
25866
|
+
order?: number;
|
|
25867
|
+
};
|
|
25868
|
+
};
|
|
25869
|
+
};
|
|
25711
25870
|
responses: {
|
|
25712
|
-
/** @description
|
|
25871
|
+
/** @description Action */
|
|
25713
25872
|
200: {
|
|
25714
25873
|
headers: {
|
|
25715
25874
|
[name: string]: unknown;
|
|
25716
25875
|
};
|
|
25717
25876
|
content: {
|
|
25718
25877
|
"application/json": {
|
|
25719
|
-
|
|
25720
|
-
|
|
25878
|
+
/** @description Action ID */
|
|
25879
|
+
id: string;
|
|
25880
|
+
/** @description Action Name */
|
|
25881
|
+
name: string;
|
|
25882
|
+
/** @description Triggers this action runs on. Derived from the hooks the code exports (`onExecutePostLogin` → post-login, `onExecuteContinue` → continue, `onExecuteClientCredentials` → client-credentials); read-only. */
|
|
25883
|
+
triggers: ("continue" | "post-login" | "client-credentials")[];
|
|
25884
|
+
/** @description JavaScript Code to execute */
|
|
25885
|
+
code: string;
|
|
25886
|
+
/**
|
|
25887
|
+
* @description Is this action active?
|
|
25888
|
+
* @default true
|
|
25889
|
+
*/
|
|
25890
|
+
enabled: boolean;
|
|
25891
|
+
/**
|
|
25892
|
+
* @description Execution order: lower runs first; on ties the newest action runs first
|
|
25893
|
+
* @default 0
|
|
25894
|
+
*/
|
|
25895
|
+
order: number;
|
|
25896
|
+
/**
|
|
25897
|
+
* @description Monotonic edit counter — increments on every update. Audit rows stamp the revision that produced each allow/deny (`data.action_revision`); `updatedAt` dates the current revision.
|
|
25898
|
+
* @default 1
|
|
25899
|
+
*/
|
|
25721
25900
|
revision: number;
|
|
25722
|
-
/** @description
|
|
25723
|
-
|
|
25724
|
-
|
|
25725
|
-
|
|
25726
|
-
|
|
25727
|
-
|
|
25728
|
-
|
|
25729
|
-
|
|
25730
|
-
}[];
|
|
25731
|
-
edges: {
|
|
25732
|
-
from: string;
|
|
25733
|
-
handle: string;
|
|
25734
|
-
to: string;
|
|
25735
|
-
}[];
|
|
25901
|
+
/** @description Object is related with this account */
|
|
25902
|
+
account: string;
|
|
25903
|
+
/**
|
|
25904
|
+
* @description ActionMetadata
|
|
25905
|
+
* @default {}
|
|
25906
|
+
*/
|
|
25907
|
+
metadata: {
|
|
25908
|
+
[key: string]: unknown;
|
|
25736
25909
|
};
|
|
25737
|
-
|
|
25738
|
-
|
|
25739
|
-
|
|
25740
|
-
|
|
25741
|
-
revision: number;
|
|
25742
|
-
published_revision: number | null;
|
|
25743
|
-
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
25744
|
-
draft: {
|
|
25745
|
-
nodes: {
|
|
25746
|
-
id: string;
|
|
25747
|
-
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
25748
|
-
config?: {
|
|
25749
|
-
[key: string]: unknown;
|
|
25750
|
-
};
|
|
25751
|
-
}[];
|
|
25752
|
-
edges: {
|
|
25753
|
-
from: string;
|
|
25754
|
-
handle: string;
|
|
25755
|
-
to: string;
|
|
25756
|
-
}[];
|
|
25757
|
-
};
|
|
25758
|
-
/** @description Node positions in the editor. Presentation only. */
|
|
25759
|
-
layout?: {
|
|
25760
|
-
[key: string]: {
|
|
25761
|
-
x: number;
|
|
25762
|
-
y: number;
|
|
25763
|
-
};
|
|
25764
|
-
};
|
|
25765
|
-
history: number[];
|
|
25766
|
-
} | null;
|
|
25910
|
+
/** @description Action creation date */
|
|
25911
|
+
createdAt: string;
|
|
25912
|
+
/** @description Action updated date */
|
|
25913
|
+
updatedAt?: string;
|
|
25767
25914
|
};
|
|
25768
25915
|
};
|
|
25769
25916
|
};
|
|
25770
|
-
/**
|
|
25917
|
+
/**
|
|
25918
|
+
* @description `invalid_id` — The id in the path is not a valid id for this resource.
|
|
25919
|
+
*
|
|
25920
|
+
* `already_exists` — A resource with the same unique field already exists (for a user, usually `email`). `details.fields` names the field.
|
|
25921
|
+
*
|
|
25922
|
+
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
25923
|
+
*/
|
|
25771
25924
|
400: {
|
|
25772
25925
|
headers: {
|
|
25773
25926
|
[name: string]: unknown;
|
|
@@ -25775,7 +25928,7 @@ export interface operations {
|
|
|
25775
25928
|
content: {
|
|
25776
25929
|
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
25777
25930
|
/** @enum {string} */
|
|
25778
|
-
error_code?: "validation_error";
|
|
25931
|
+
error_code?: "invalid_id" | "already_exists" | "validation_error";
|
|
25779
25932
|
};
|
|
25780
25933
|
};
|
|
25781
25934
|
};
|
|
@@ -25809,15 +25962,19 @@ export interface operations {
|
|
|
25809
25962
|
};
|
|
25810
25963
|
};
|
|
25811
25964
|
};
|
|
25812
|
-
/**
|
|
25813
|
-
|
|
25965
|
+
/**
|
|
25966
|
+
* @description `not_found` — The resource does not exist in this account.
|
|
25967
|
+
*
|
|
25968
|
+
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
25969
|
+
*/
|
|
25970
|
+
404: {
|
|
25814
25971
|
headers: {
|
|
25815
25972
|
[name: string]: unknown;
|
|
25816
25973
|
};
|
|
25817
25974
|
content: {
|
|
25818
25975
|
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
25819
25976
|
/** @enum {string} */
|
|
25820
|
-
error_code?: "account_not_found";
|
|
25977
|
+
error_code?: "not_found" | "account_not_found";
|
|
25821
25978
|
};
|
|
25822
25979
|
};
|
|
25823
25980
|
};
|
|
@@ -25847,114 +26004,68 @@ export interface operations {
|
|
|
25847
26004
|
};
|
|
25848
26005
|
};
|
|
25849
26006
|
};
|
|
25850
|
-
"
|
|
26007
|
+
"action/delete": {
|
|
25851
26008
|
parameters: {
|
|
25852
26009
|
query?: never;
|
|
25853
26010
|
header?: never;
|
|
25854
|
-
path
|
|
25855
|
-
|
|
25856
|
-
};
|
|
25857
|
-
requestBody: {
|
|
25858
|
-
content: {
|
|
25859
|
-
"application/json": {
|
|
25860
|
-
client_id?: string;
|
|
25861
|
-
name?: string;
|
|
25862
|
-
};
|
|
26011
|
+
path: {
|
|
26012
|
+
action_id: string;
|
|
25863
26013
|
};
|
|
26014
|
+
cookie?: never;
|
|
25864
26015
|
};
|
|
26016
|
+
requestBody?: never;
|
|
25865
26017
|
responses: {
|
|
25866
|
-
/** @description
|
|
26018
|
+
/** @description Action */
|
|
25867
26019
|
200: {
|
|
25868
26020
|
headers: {
|
|
25869
26021
|
[name: string]: unknown;
|
|
25870
26022
|
};
|
|
25871
26023
|
content: {
|
|
25872
26024
|
"application/json": {
|
|
25873
|
-
/** @description
|
|
26025
|
+
/** @description Action ID */
|
|
25874
26026
|
id: string;
|
|
26027
|
+
/** @description Action Name */
|
|
25875
26028
|
name: string;
|
|
25876
|
-
/** @
|
|
25877
|
-
|
|
25878
|
-
/** @description
|
|
25879
|
-
|
|
25880
|
-
|
|
25881
|
-
|
|
25882
|
-
|
|
25883
|
-
|
|
25884
|
-
|
|
25885
|
-
|
|
25886
|
-
|
|
25887
|
-
|
|
25888
|
-
|
|
25889
|
-
|
|
25890
|
-
|
|
25891
|
-
|
|
25892
|
-
|
|
25893
|
-
|
|
26029
|
+
/** @description Triggers this action runs on. Derived from the hooks the code exports (`onExecutePostLogin` → post-login, `onExecuteContinue` → continue, `onExecuteClientCredentials` → client-credentials); read-only. */
|
|
26030
|
+
triggers: ("continue" | "post-login" | "client-credentials")[];
|
|
26031
|
+
/** @description JavaScript Code to execute */
|
|
26032
|
+
code: string;
|
|
26033
|
+
/**
|
|
26034
|
+
* @description Is this action active?
|
|
26035
|
+
* @default true
|
|
26036
|
+
*/
|
|
26037
|
+
enabled: boolean;
|
|
26038
|
+
/**
|
|
26039
|
+
* @description Execution order: lower runs first; on ties the newest action runs first
|
|
26040
|
+
* @default 0
|
|
26041
|
+
*/
|
|
26042
|
+
order: number;
|
|
26043
|
+
/**
|
|
26044
|
+
* @description Monotonic edit counter — increments on every update. Audit rows stamp the revision that produced each allow/deny (`data.action_revision`); `updatedAt` dates the current revision.
|
|
26045
|
+
* @default 1
|
|
26046
|
+
*/
|
|
25894
26047
|
revision: number;
|
|
25895
|
-
published?: {
|
|
25896
|
-
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
25897
|
-
graph: {
|
|
25898
|
-
nodes: {
|
|
25899
|
-
id: string;
|
|
25900
|
-
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
25901
|
-
config?: {
|
|
25902
|
-
[key: string]: unknown;
|
|
25903
|
-
};
|
|
25904
|
-
}[];
|
|
25905
|
-
edges: {
|
|
25906
|
-
from: string;
|
|
25907
|
-
handle: string;
|
|
25908
|
-
to: string;
|
|
25909
|
-
}[];
|
|
25910
|
-
};
|
|
25911
|
-
revision: number;
|
|
25912
|
-
published_at: string;
|
|
25913
|
-
};
|
|
25914
|
-
/** @description Previously published graphs, newest first, for rollback. */
|
|
25915
|
-
history: {
|
|
25916
|
-
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
25917
|
-
graph: {
|
|
25918
|
-
nodes: {
|
|
25919
|
-
id: string;
|
|
25920
|
-
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
25921
|
-
config?: {
|
|
25922
|
-
[key: string]: unknown;
|
|
25923
|
-
};
|
|
25924
|
-
}[];
|
|
25925
|
-
edges: {
|
|
25926
|
-
from: string;
|
|
25927
|
-
handle: string;
|
|
25928
|
-
to: string;
|
|
25929
|
-
}[];
|
|
25930
|
-
};
|
|
25931
|
-
revision: number;
|
|
25932
|
-
published_at: string;
|
|
25933
|
-
}[];
|
|
25934
|
-
/** @description Node positions in the editor. Presentation only. */
|
|
25935
|
-
layout?: {
|
|
25936
|
-
[key: string]: {
|
|
25937
|
-
x: number;
|
|
25938
|
-
y: number;
|
|
25939
|
-
};
|
|
25940
|
-
};
|
|
25941
26048
|
/** @description Object is related with this account */
|
|
25942
26049
|
account: string;
|
|
25943
26050
|
/**
|
|
25944
|
-
* @description
|
|
26051
|
+
* @description ActionMetadata
|
|
25945
26052
|
* @default {}
|
|
25946
26053
|
*/
|
|
25947
26054
|
metadata: {
|
|
25948
26055
|
[key: string]: unknown;
|
|
25949
26056
|
};
|
|
25950
|
-
/** @description
|
|
26057
|
+
/** @description Action creation date */
|
|
25951
26058
|
createdAt: string;
|
|
25952
|
-
/** @description
|
|
26059
|
+
/** @description Action updated date */
|
|
25953
26060
|
updatedAt?: string;
|
|
25954
26061
|
};
|
|
25955
26062
|
};
|
|
25956
26063
|
};
|
|
25957
|
-
/**
|
|
26064
|
+
/**
|
|
26065
|
+
* @description `invalid_id` — The id in the path is not a valid id for this resource.
|
|
26066
|
+
*
|
|
26067
|
+
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
26068
|
+
*/
|
|
25958
26069
|
400: {
|
|
25959
26070
|
headers: {
|
|
25960
26071
|
[name: string]: unknown;
|
|
@@ -25962,7 +26073,7 @@ export interface operations {
|
|
|
25962
26073
|
content: {
|
|
25963
26074
|
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
25964
26075
|
/** @enum {string} */
|
|
25965
|
-
error_code?: "validation_error";
|
|
26076
|
+
error_code?: "invalid_id" | "validation_error";
|
|
25966
26077
|
};
|
|
25967
26078
|
};
|
|
25968
26079
|
};
|
|
@@ -25996,7 +26107,11 @@ export interface operations {
|
|
|
25996
26107
|
};
|
|
25997
26108
|
};
|
|
25998
26109
|
};
|
|
25999
|
-
/**
|
|
26110
|
+
/**
|
|
26111
|
+
* @description `not_found` — The resource does not exist in this account.
|
|
26112
|
+
*
|
|
26113
|
+
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
26114
|
+
*/
|
|
26000
26115
|
404: {
|
|
26001
26116
|
headers: {
|
|
26002
26117
|
[name: string]: unknown;
|
|
@@ -26004,7 +26119,7 @@ export interface operations {
|
|
|
26004
26119
|
content: {
|
|
26005
26120
|
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
26006
26121
|
/** @enum {string} */
|
|
26007
|
-
error_code?: "account_not_found";
|
|
26122
|
+
error_code?: "not_found" | "account_not_found";
|
|
26008
26123
|
};
|
|
26009
26124
|
};
|
|
26010
26125
|
};
|
|
@@ -26034,22 +26149,16 @@ export interface operations {
|
|
|
26034
26149
|
};
|
|
26035
26150
|
};
|
|
26036
26151
|
};
|
|
26037
|
-
"loginflow/
|
|
26152
|
+
"loginflow/resolved": {
|
|
26038
26153
|
parameters: {
|
|
26039
|
-
query?:
|
|
26040
|
-
|
|
26041
|
-
path: {
|
|
26042
|
-
loginflow_id: string;
|
|
26154
|
+
query?: {
|
|
26155
|
+
client_id?: string;
|
|
26043
26156
|
};
|
|
26157
|
+
header?: never;
|
|
26158
|
+
path?: never;
|
|
26044
26159
|
cookie?: never;
|
|
26045
26160
|
};
|
|
26046
|
-
requestBody
|
|
26047
|
-
content: {
|
|
26048
|
-
"application/json": {
|
|
26049
|
-
client_id?: string;
|
|
26050
|
-
};
|
|
26051
|
-
};
|
|
26052
|
-
};
|
|
26161
|
+
requestBody?: never;
|
|
26053
26162
|
responses: {
|
|
26054
26163
|
/** @description Default Response */
|
|
26055
26164
|
200: {
|
|
@@ -26058,13 +26167,54 @@ export interface operations {
|
|
|
26058
26167
|
};
|
|
26059
26168
|
content: {
|
|
26060
26169
|
"application/json": {
|
|
26061
|
-
|
|
26062
|
-
|
|
26063
|
-
|
|
26064
|
-
|
|
26065
|
-
|
|
26066
|
-
|
|
26067
|
-
|
|
26170
|
+
source: "compiled" | "published";
|
|
26171
|
+
flow_id: string | null;
|
|
26172
|
+
revision: number;
|
|
26173
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
26174
|
+
graph: {
|
|
26175
|
+
nodes: {
|
|
26176
|
+
id: string;
|
|
26177
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
26178
|
+
config?: {
|
|
26179
|
+
[key: string]: unknown;
|
|
26180
|
+
};
|
|
26181
|
+
}[];
|
|
26182
|
+
edges: {
|
|
26183
|
+
from: string;
|
|
26184
|
+
handle: string;
|
|
26185
|
+
to: string;
|
|
26186
|
+
}[];
|
|
26187
|
+
};
|
|
26188
|
+
bound: {
|
|
26189
|
+
flow_id: string;
|
|
26190
|
+
bound_to: "account" | "client";
|
|
26191
|
+
name: string;
|
|
26192
|
+
revision: number;
|
|
26193
|
+
published_revision: number | null;
|
|
26194
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
26195
|
+
draft: {
|
|
26196
|
+
nodes: {
|
|
26197
|
+
id: string;
|
|
26198
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
26199
|
+
config?: {
|
|
26200
|
+
[key: string]: unknown;
|
|
26201
|
+
};
|
|
26202
|
+
}[];
|
|
26203
|
+
edges: {
|
|
26204
|
+
from: string;
|
|
26205
|
+
handle: string;
|
|
26206
|
+
to: string;
|
|
26207
|
+
}[];
|
|
26208
|
+
};
|
|
26209
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
26210
|
+
layout?: {
|
|
26211
|
+
[key: string]: {
|
|
26212
|
+
x: number;
|
|
26213
|
+
y: number;
|
|
26214
|
+
};
|
|
26215
|
+
};
|
|
26216
|
+
history: number[];
|
|
26217
|
+
} | null;
|
|
26068
26218
|
};
|
|
26069
26219
|
};
|
|
26070
26220
|
};
|
|
@@ -26148,19 +26298,18 @@ export interface operations {
|
|
|
26148
26298
|
};
|
|
26149
26299
|
};
|
|
26150
26300
|
};
|
|
26151
|
-
"loginflow/
|
|
26301
|
+
"loginflow/materialize": {
|
|
26152
26302
|
parameters: {
|
|
26153
26303
|
query?: never;
|
|
26154
26304
|
header?: never;
|
|
26155
|
-
path
|
|
26156
|
-
loginflow_id: string;
|
|
26157
|
-
};
|
|
26305
|
+
path?: never;
|
|
26158
26306
|
cookie?: never;
|
|
26159
26307
|
};
|
|
26160
26308
|
requestBody: {
|
|
26161
26309
|
content: {
|
|
26162
26310
|
"application/json": {
|
|
26163
26311
|
client_id?: string;
|
|
26312
|
+
name?: string;
|
|
26164
26313
|
};
|
|
26165
26314
|
};
|
|
26166
26315
|
};
|
|
@@ -26310,23 +26459,6 @@ export interface operations {
|
|
|
26310
26459
|
};
|
|
26311
26460
|
};
|
|
26312
26461
|
};
|
|
26313
|
-
/** @description Default Response */
|
|
26314
|
-
422: {
|
|
26315
|
-
headers: {
|
|
26316
|
-
[name: string]: unknown;
|
|
26317
|
-
};
|
|
26318
|
-
content: {
|
|
26319
|
-
"application/json": {
|
|
26320
|
-
error: string;
|
|
26321
|
-
issues: {
|
|
26322
|
-
code: string;
|
|
26323
|
-
node?: string;
|
|
26324
|
-
handle?: string;
|
|
26325
|
-
message: string;
|
|
26326
|
-
}[];
|
|
26327
|
-
};
|
|
26328
|
-
};
|
|
26329
|
-
};
|
|
26330
26462
|
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
26331
26463
|
429: {
|
|
26332
26464
|
headers: {
|
|
@@ -26353,7 +26485,7 @@ export interface operations {
|
|
|
26353
26485
|
};
|
|
26354
26486
|
};
|
|
26355
26487
|
};
|
|
26356
|
-
"loginflow/
|
|
26488
|
+
"loginflow/validate": {
|
|
26357
26489
|
parameters: {
|
|
26358
26490
|
query?: never;
|
|
26359
26491
|
header?: never;
|
|
@@ -26365,23 +26497,137 @@ export interface operations {
|
|
|
26365
26497
|
requestBody: {
|
|
26366
26498
|
content: {
|
|
26367
26499
|
"application/json": {
|
|
26368
|
-
|
|
26500
|
+
client_id?: string;
|
|
26369
26501
|
};
|
|
26370
26502
|
};
|
|
26371
26503
|
};
|
|
26372
26504
|
responses: {
|
|
26373
|
-
/** @description
|
|
26505
|
+
/** @description Default Response */
|
|
26374
26506
|
200: {
|
|
26375
26507
|
headers: {
|
|
26376
26508
|
[name: string]: unknown;
|
|
26377
26509
|
};
|
|
26378
26510
|
content: {
|
|
26379
26511
|
"application/json": {
|
|
26380
|
-
|
|
26381
|
-
|
|
26382
|
-
|
|
26512
|
+
ok: boolean;
|
|
26513
|
+
issues: {
|
|
26514
|
+
code: string;
|
|
26515
|
+
node?: string;
|
|
26516
|
+
handle?: string;
|
|
26517
|
+
message: string;
|
|
26518
|
+
}[];
|
|
26519
|
+
};
|
|
26520
|
+
};
|
|
26521
|
+
};
|
|
26522
|
+
/** @description `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field. */
|
|
26523
|
+
400: {
|
|
26524
|
+
headers: {
|
|
26525
|
+
[name: string]: unknown;
|
|
26526
|
+
};
|
|
26527
|
+
content: {
|
|
26528
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
26383
26529
|
/** @enum {string} */
|
|
26384
|
-
|
|
26530
|
+
error_code?: "validation_error";
|
|
26531
|
+
};
|
|
26532
|
+
};
|
|
26533
|
+
};
|
|
26534
|
+
/** @description `unauthorized` — The request carries no valid credentials. */
|
|
26535
|
+
401: {
|
|
26536
|
+
headers: {
|
|
26537
|
+
[name: string]: unknown;
|
|
26538
|
+
};
|
|
26539
|
+
content: {
|
|
26540
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
26541
|
+
/** @enum {string} */
|
|
26542
|
+
error_code?: "unauthorized";
|
|
26543
|
+
};
|
|
26544
|
+
};
|
|
26545
|
+
};
|
|
26546
|
+
/**
|
|
26547
|
+
* @description `forbidden` — The credentials are valid but do not allow this operation.
|
|
26548
|
+
*
|
|
26549
|
+
* `insufficient_scope` — The token lacks a scope this operation requires. `message` names it.
|
|
26550
|
+
*
|
|
26551
|
+
* `user_suspended` — The user is suspended and cannot sign in or be modified.
|
|
26552
|
+
*/
|
|
26553
|
+
403: {
|
|
26554
|
+
headers: {
|
|
26555
|
+
[name: string]: unknown;
|
|
26556
|
+
};
|
|
26557
|
+
content: {
|
|
26558
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
26559
|
+
/** @enum {string} */
|
|
26560
|
+
error_code?: "forbidden" | "insufficient_scope" | "user_suspended";
|
|
26561
|
+
};
|
|
26562
|
+
};
|
|
26563
|
+
};
|
|
26564
|
+
/** @description `account_not_found` — No Auth Account matches the request (domain, header or token). */
|
|
26565
|
+
404: {
|
|
26566
|
+
headers: {
|
|
26567
|
+
[name: string]: unknown;
|
|
26568
|
+
};
|
|
26569
|
+
content: {
|
|
26570
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
26571
|
+
/** @enum {string} */
|
|
26572
|
+
error_code?: "account_not_found";
|
|
26573
|
+
};
|
|
26574
|
+
};
|
|
26575
|
+
};
|
|
26576
|
+
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
26577
|
+
429: {
|
|
26578
|
+
headers: {
|
|
26579
|
+
[name: string]: unknown;
|
|
26580
|
+
};
|
|
26581
|
+
content: {
|
|
26582
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
26583
|
+
/** @enum {string} */
|
|
26584
|
+
error_code?: "too_many_requests";
|
|
26585
|
+
};
|
|
26586
|
+
};
|
|
26587
|
+
};
|
|
26588
|
+
/** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
|
|
26589
|
+
500: {
|
|
26590
|
+
headers: {
|
|
26591
|
+
[name: string]: unknown;
|
|
26592
|
+
};
|
|
26593
|
+
content: {
|
|
26594
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
26595
|
+
/** @enum {string} */
|
|
26596
|
+
error_code?: "internal_error";
|
|
26597
|
+
};
|
|
26598
|
+
};
|
|
26599
|
+
};
|
|
26600
|
+
};
|
|
26601
|
+
};
|
|
26602
|
+
"loginflow/publish": {
|
|
26603
|
+
parameters: {
|
|
26604
|
+
query?: never;
|
|
26605
|
+
header?: never;
|
|
26606
|
+
path: {
|
|
26607
|
+
loginflow_id: string;
|
|
26608
|
+
};
|
|
26609
|
+
cookie?: never;
|
|
26610
|
+
};
|
|
26611
|
+
requestBody: {
|
|
26612
|
+
content: {
|
|
26613
|
+
"application/json": {
|
|
26614
|
+
client_id?: string;
|
|
26615
|
+
};
|
|
26616
|
+
};
|
|
26617
|
+
};
|
|
26618
|
+
responses: {
|
|
26619
|
+
/** @description LoginFlow */
|
|
26620
|
+
200: {
|
|
26621
|
+
headers: {
|
|
26622
|
+
[name: string]: unknown;
|
|
26623
|
+
};
|
|
26624
|
+
content: {
|
|
26625
|
+
"application/json": {
|
|
26626
|
+
/** @description LoginFlow ID */
|
|
26627
|
+
id: string;
|
|
26628
|
+
name: string;
|
|
26629
|
+
/** @enum {string} */
|
|
26630
|
+
trigger: "login";
|
|
26385
26631
|
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
26386
26632
|
graph: {
|
|
26387
26633
|
nodes: {
|
|
@@ -26503,11 +26749,7 @@ export interface operations {
|
|
|
26503
26749
|
};
|
|
26504
26750
|
};
|
|
26505
26751
|
};
|
|
26506
|
-
/**
|
|
26507
|
-
* @description `revision_not_found` — The revision is not in the flow history.
|
|
26508
|
-
*
|
|
26509
|
-
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
26510
|
-
*/
|
|
26752
|
+
/** @description `account_not_found` — No Auth Account matches the request (domain, header or token). */
|
|
26511
26753
|
404: {
|
|
26512
26754
|
headers: {
|
|
26513
26755
|
[name: string]: unknown;
|
|
@@ -26515,7 +26757,24 @@ export interface operations {
|
|
|
26515
26757
|
content: {
|
|
26516
26758
|
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
26517
26759
|
/** @enum {string} */
|
|
26518
|
-
error_code?: "
|
|
26760
|
+
error_code?: "account_not_found";
|
|
26761
|
+
};
|
|
26762
|
+
};
|
|
26763
|
+
};
|
|
26764
|
+
/** @description Default Response */
|
|
26765
|
+
422: {
|
|
26766
|
+
headers: {
|
|
26767
|
+
[name: string]: unknown;
|
|
26768
|
+
};
|
|
26769
|
+
content: {
|
|
26770
|
+
"application/json": {
|
|
26771
|
+
error: string;
|
|
26772
|
+
issues: {
|
|
26773
|
+
code: string;
|
|
26774
|
+
node?: string;
|
|
26775
|
+
handle?: string;
|
|
26776
|
+
message: string;
|
|
26777
|
+
}[];
|
|
26519
26778
|
};
|
|
26520
26779
|
};
|
|
26521
26780
|
};
|
|
@@ -26545,7 +26804,7 @@ export interface operations {
|
|
|
26545
26804
|
};
|
|
26546
26805
|
};
|
|
26547
26806
|
};
|
|
26548
|
-
"loginflow/
|
|
26807
|
+
"loginflow/rollback": {
|
|
26549
26808
|
parameters: {
|
|
26550
26809
|
query?: never;
|
|
26551
26810
|
header?: never;
|
|
@@ -26554,25 +26813,106 @@ export interface operations {
|
|
|
26554
26813
|
};
|
|
26555
26814
|
cookie?: never;
|
|
26556
26815
|
};
|
|
26557
|
-
requestBody
|
|
26816
|
+
requestBody: {
|
|
26817
|
+
content: {
|
|
26818
|
+
"application/json": {
|
|
26819
|
+
revision: number;
|
|
26820
|
+
};
|
|
26821
|
+
};
|
|
26822
|
+
};
|
|
26558
26823
|
responses: {
|
|
26559
|
-
/** @description
|
|
26824
|
+
/** @description LoginFlow */
|
|
26560
26825
|
200: {
|
|
26561
26826
|
headers: {
|
|
26562
26827
|
[name: string]: unknown;
|
|
26563
26828
|
};
|
|
26564
26829
|
content: {
|
|
26565
26830
|
"application/json": {
|
|
26566
|
-
|
|
26567
|
-
|
|
26831
|
+
/** @description LoginFlow ID */
|
|
26832
|
+
id: string;
|
|
26833
|
+
name: string;
|
|
26834
|
+
/** @enum {string} */
|
|
26835
|
+
trigger: "login";
|
|
26836
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
26837
|
+
graph: {
|
|
26838
|
+
nodes: {
|
|
26839
|
+
id: string;
|
|
26840
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
26841
|
+
config?: {
|
|
26842
|
+
[key: string]: unknown;
|
|
26843
|
+
};
|
|
26844
|
+
}[];
|
|
26845
|
+
edges: {
|
|
26846
|
+
from: string;
|
|
26847
|
+
handle: string;
|
|
26848
|
+
to: string;
|
|
26849
|
+
}[];
|
|
26850
|
+
};
|
|
26851
|
+
/** @description Monotonic edit counter, bumped on every update. A publish freezes the graph under the revision it had; a login in flight pins the revision it started on. */
|
|
26852
|
+
revision: number;
|
|
26853
|
+
published?: {
|
|
26854
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
26855
|
+
graph: {
|
|
26856
|
+
nodes: {
|
|
26857
|
+
id: string;
|
|
26858
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
26859
|
+
config?: {
|
|
26860
|
+
[key: string]: unknown;
|
|
26861
|
+
};
|
|
26862
|
+
}[];
|
|
26863
|
+
edges: {
|
|
26864
|
+
from: string;
|
|
26865
|
+
handle: string;
|
|
26866
|
+
to: string;
|
|
26867
|
+
}[];
|
|
26868
|
+
};
|
|
26869
|
+
revision: number;
|
|
26870
|
+
published_at: string;
|
|
26871
|
+
};
|
|
26872
|
+
/** @description Previously published graphs, newest first, for rollback. */
|
|
26873
|
+
history: {
|
|
26874
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
26875
|
+
graph: {
|
|
26876
|
+
nodes: {
|
|
26877
|
+
id: string;
|
|
26878
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
26879
|
+
config?: {
|
|
26880
|
+
[key: string]: unknown;
|
|
26881
|
+
};
|
|
26882
|
+
}[];
|
|
26883
|
+
edges: {
|
|
26884
|
+
from: string;
|
|
26885
|
+
handle: string;
|
|
26886
|
+
to: string;
|
|
26887
|
+
}[];
|
|
26888
|
+
};
|
|
26889
|
+
revision: number;
|
|
26890
|
+
published_at: string;
|
|
26891
|
+
}[];
|
|
26892
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
26893
|
+
layout?: {
|
|
26894
|
+
[key: string]: {
|
|
26895
|
+
x: number;
|
|
26896
|
+
y: number;
|
|
26897
|
+
};
|
|
26898
|
+
};
|
|
26899
|
+
/** @description Object is related with this account */
|
|
26900
|
+
account: string;
|
|
26901
|
+
/**
|
|
26902
|
+
* @description LoginFlowMetadata
|
|
26903
|
+
* @default {}
|
|
26904
|
+
*/
|
|
26905
|
+
metadata: {
|
|
26906
|
+
[key: string]: unknown;
|
|
26907
|
+
};
|
|
26908
|
+
/** @description LoginFlow creation date */
|
|
26909
|
+
createdAt: string;
|
|
26910
|
+
/** @description LoginFlow updated date */
|
|
26911
|
+
updatedAt?: string;
|
|
26568
26912
|
};
|
|
26569
26913
|
};
|
|
26570
26914
|
};
|
|
26571
|
-
/**
|
|
26572
|
-
* @description `flow_not_found` — The login flow does not exist in this account.
|
|
26573
|
-
*
|
|
26574
|
-
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
26575
|
-
*/
|
|
26915
|
+
/** @description `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field. */
|
|
26576
26916
|
400: {
|
|
26577
26917
|
headers: {
|
|
26578
26918
|
[name: string]: unknown;
|
|
@@ -26580,7 +26920,7 @@ export interface operations {
|
|
|
26580
26920
|
content: {
|
|
26581
26921
|
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
26582
26922
|
/** @enum {string} */
|
|
26583
|
-
error_code?: "
|
|
26923
|
+
error_code?: "validation_error";
|
|
26584
26924
|
};
|
|
26585
26925
|
};
|
|
26586
26926
|
};
|
|
@@ -26614,7 +26954,11 @@ export interface operations {
|
|
|
26614
26954
|
};
|
|
26615
26955
|
};
|
|
26616
26956
|
};
|
|
26617
|
-
/**
|
|
26957
|
+
/**
|
|
26958
|
+
* @description `revision_not_found` — The revision is not in the flow history.
|
|
26959
|
+
*
|
|
26960
|
+
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
26961
|
+
*/
|
|
26618
26962
|
404: {
|
|
26619
26963
|
headers: {
|
|
26620
26964
|
[name: string]: unknown;
|
|
@@ -26622,7 +26966,7 @@ export interface operations {
|
|
|
26622
26966
|
content: {
|
|
26623
26967
|
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
26624
26968
|
/** @enum {string} */
|
|
26625
|
-
error_code?: "account_not_found";
|
|
26969
|
+
error_code?: "revision_not_found" | "account_not_found";
|
|
26626
26970
|
};
|
|
26627
26971
|
};
|
|
26628
26972
|
};
|
|
@@ -26652,22 +26996,129 @@ export interface operations {
|
|
|
26652
26996
|
};
|
|
26653
26997
|
};
|
|
26654
26998
|
};
|
|
26655
|
-
"loginflow/
|
|
26999
|
+
"loginflow/previewToken": {
|
|
26656
27000
|
parameters: {
|
|
26657
|
-
query?:
|
|
26658
|
-
/** @description Number of items per page (max 200) */
|
|
26659
|
-
pageSize?: number;
|
|
26660
|
-
/** @description Cursor for next page */
|
|
26661
|
-
cursor?: string;
|
|
26662
|
-
/** @description Cursor returned by the previous page */
|
|
26663
|
-
next?: string;
|
|
26664
|
-
/** @description Also return `total`: the rows matching the whole filter, across every page. */
|
|
26665
|
-
count?: boolean;
|
|
26666
|
-
/** @description Filter using a FaableQL query */
|
|
26667
|
-
query?: string;
|
|
26668
|
-
};
|
|
27001
|
+
query?: never;
|
|
26669
27002
|
header?: never;
|
|
26670
|
-
path
|
|
27003
|
+
path: {
|
|
27004
|
+
loginflow_id: string;
|
|
27005
|
+
};
|
|
27006
|
+
cookie?: never;
|
|
27007
|
+
};
|
|
27008
|
+
requestBody?: never;
|
|
27009
|
+
responses: {
|
|
27010
|
+
/** @description Default Response */
|
|
27011
|
+
200: {
|
|
27012
|
+
headers: {
|
|
27013
|
+
[name: string]: unknown;
|
|
27014
|
+
};
|
|
27015
|
+
content: {
|
|
27016
|
+
"application/json": {
|
|
27017
|
+
token: string;
|
|
27018
|
+
expires_in: number;
|
|
27019
|
+
};
|
|
27020
|
+
};
|
|
27021
|
+
};
|
|
27022
|
+
/**
|
|
27023
|
+
* @description `flow_not_found` — The login flow does not exist in this account.
|
|
27024
|
+
*
|
|
27025
|
+
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
27026
|
+
*/
|
|
27027
|
+
400: {
|
|
27028
|
+
headers: {
|
|
27029
|
+
[name: string]: unknown;
|
|
27030
|
+
};
|
|
27031
|
+
content: {
|
|
27032
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
27033
|
+
/** @enum {string} */
|
|
27034
|
+
error_code?: "flow_not_found" | "validation_error";
|
|
27035
|
+
};
|
|
27036
|
+
};
|
|
27037
|
+
};
|
|
27038
|
+
/** @description `unauthorized` — The request carries no valid credentials. */
|
|
27039
|
+
401: {
|
|
27040
|
+
headers: {
|
|
27041
|
+
[name: string]: unknown;
|
|
27042
|
+
};
|
|
27043
|
+
content: {
|
|
27044
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
27045
|
+
/** @enum {string} */
|
|
27046
|
+
error_code?: "unauthorized";
|
|
27047
|
+
};
|
|
27048
|
+
};
|
|
27049
|
+
};
|
|
27050
|
+
/**
|
|
27051
|
+
* @description `forbidden` — The credentials are valid but do not allow this operation.
|
|
27052
|
+
*
|
|
27053
|
+
* `insufficient_scope` — The token lacks a scope this operation requires. `message` names it.
|
|
27054
|
+
*
|
|
27055
|
+
* `user_suspended` — The user is suspended and cannot sign in or be modified.
|
|
27056
|
+
*/
|
|
27057
|
+
403: {
|
|
27058
|
+
headers: {
|
|
27059
|
+
[name: string]: unknown;
|
|
27060
|
+
};
|
|
27061
|
+
content: {
|
|
27062
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
27063
|
+
/** @enum {string} */
|
|
27064
|
+
error_code?: "forbidden" | "insufficient_scope" | "user_suspended";
|
|
27065
|
+
};
|
|
27066
|
+
};
|
|
27067
|
+
};
|
|
27068
|
+
/** @description `account_not_found` — No Auth Account matches the request (domain, header or token). */
|
|
27069
|
+
404: {
|
|
27070
|
+
headers: {
|
|
27071
|
+
[name: string]: unknown;
|
|
27072
|
+
};
|
|
27073
|
+
content: {
|
|
27074
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
27075
|
+
/** @enum {string} */
|
|
27076
|
+
error_code?: "account_not_found";
|
|
27077
|
+
};
|
|
27078
|
+
};
|
|
27079
|
+
};
|
|
27080
|
+
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
27081
|
+
429: {
|
|
27082
|
+
headers: {
|
|
27083
|
+
[name: string]: unknown;
|
|
27084
|
+
};
|
|
27085
|
+
content: {
|
|
27086
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
27087
|
+
/** @enum {string} */
|
|
27088
|
+
error_code?: "too_many_requests";
|
|
27089
|
+
};
|
|
27090
|
+
};
|
|
27091
|
+
};
|
|
27092
|
+
/** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
|
|
27093
|
+
500: {
|
|
27094
|
+
headers: {
|
|
27095
|
+
[name: string]: unknown;
|
|
27096
|
+
};
|
|
27097
|
+
content: {
|
|
27098
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
27099
|
+
/** @enum {string} */
|
|
27100
|
+
error_code?: "internal_error";
|
|
27101
|
+
};
|
|
27102
|
+
};
|
|
27103
|
+
};
|
|
27104
|
+
};
|
|
27105
|
+
};
|
|
27106
|
+
"loginflow/list": {
|
|
27107
|
+
parameters: {
|
|
27108
|
+
query?: {
|
|
27109
|
+
/** @description Number of items per page (max 200) */
|
|
27110
|
+
pageSize?: number;
|
|
27111
|
+
/** @description Cursor for next page */
|
|
27112
|
+
cursor?: string;
|
|
27113
|
+
/** @description Cursor returned by the previous page */
|
|
27114
|
+
next?: string;
|
|
27115
|
+
/** @description Also return `total`: the rows matching the whole filter, across every page. */
|
|
27116
|
+
count?: boolean;
|
|
27117
|
+
/** @description Filter using a FaableQL query */
|
|
27118
|
+
query?: string;
|
|
27119
|
+
};
|
|
27120
|
+
header?: never;
|
|
27121
|
+
path?: never;
|
|
26671
27122
|
cookie?: never;
|
|
26672
27123
|
};
|
|
26673
27124
|
requestBody?: never;
|
|
@@ -33597,6 +34048,334 @@ export interface operations {
|
|
|
33597
34048
|
};
|
|
33598
34049
|
};
|
|
33599
34050
|
};
|
|
34051
|
+
"saml/metadata": {
|
|
34052
|
+
parameters: {
|
|
34053
|
+
query?: never;
|
|
34054
|
+
header?: never;
|
|
34055
|
+
path: {
|
|
34056
|
+
client_id: string;
|
|
34057
|
+
};
|
|
34058
|
+
cookie?: never;
|
|
34059
|
+
};
|
|
34060
|
+
requestBody?: never;
|
|
34061
|
+
responses: {
|
|
34062
|
+
/** @description Default Response */
|
|
34063
|
+
200: {
|
|
34064
|
+
headers: {
|
|
34065
|
+
[name: string]: unknown;
|
|
34066
|
+
};
|
|
34067
|
+
content?: never;
|
|
34068
|
+
};
|
|
34069
|
+
/** @description `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field. */
|
|
34070
|
+
400: {
|
|
34071
|
+
headers: {
|
|
34072
|
+
[name: string]: unknown;
|
|
34073
|
+
};
|
|
34074
|
+
content: {
|
|
34075
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34076
|
+
/** @enum {string} */
|
|
34077
|
+
error_code?: "validation_error";
|
|
34078
|
+
};
|
|
34079
|
+
};
|
|
34080
|
+
};
|
|
34081
|
+
/**
|
|
34082
|
+
* @description `saml_not_enabled` — This client does not have SAML enabled.
|
|
34083
|
+
*
|
|
34084
|
+
* `client_not_found` — No client with that `client_id`.
|
|
34085
|
+
*
|
|
34086
|
+
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
34087
|
+
*/
|
|
34088
|
+
404: {
|
|
34089
|
+
headers: {
|
|
34090
|
+
[name: string]: unknown;
|
|
34091
|
+
};
|
|
34092
|
+
content: {
|
|
34093
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34094
|
+
/** @enum {string} */
|
|
34095
|
+
error_code?: "saml_not_enabled" | "client_not_found" | "account_not_found";
|
|
34096
|
+
};
|
|
34097
|
+
};
|
|
34098
|
+
};
|
|
34099
|
+
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
34100
|
+
429: {
|
|
34101
|
+
headers: {
|
|
34102
|
+
[name: string]: unknown;
|
|
34103
|
+
};
|
|
34104
|
+
content: {
|
|
34105
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34106
|
+
/** @enum {string} */
|
|
34107
|
+
error_code?: "too_many_requests";
|
|
34108
|
+
};
|
|
34109
|
+
};
|
|
34110
|
+
};
|
|
34111
|
+
/** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
|
|
34112
|
+
500: {
|
|
34113
|
+
headers: {
|
|
34114
|
+
[name: string]: unknown;
|
|
34115
|
+
};
|
|
34116
|
+
content: {
|
|
34117
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34118
|
+
/** @enum {string} */
|
|
34119
|
+
error_code?: "internal_error";
|
|
34120
|
+
};
|
|
34121
|
+
};
|
|
34122
|
+
};
|
|
34123
|
+
};
|
|
34124
|
+
};
|
|
34125
|
+
"saml/sso": {
|
|
34126
|
+
parameters: {
|
|
34127
|
+
query?: {
|
|
34128
|
+
SAMLRequest?: string;
|
|
34129
|
+
RelayState?: string;
|
|
34130
|
+
SigAlg?: string;
|
|
34131
|
+
Signature?: string;
|
|
34132
|
+
};
|
|
34133
|
+
header?: never;
|
|
34134
|
+
path: {
|
|
34135
|
+
client_id: string;
|
|
34136
|
+
};
|
|
34137
|
+
cookie?: never;
|
|
34138
|
+
};
|
|
34139
|
+
requestBody?: never;
|
|
34140
|
+
responses: {
|
|
34141
|
+
/** @description Default Response */
|
|
34142
|
+
200: {
|
|
34143
|
+
headers: {
|
|
34144
|
+
[name: string]: unknown;
|
|
34145
|
+
};
|
|
34146
|
+
content?: never;
|
|
34147
|
+
};
|
|
34148
|
+
/**
|
|
34149
|
+
* @description `invalid_saml_request` — The SAMLRequest is missing, too large, not well-formed or not a SAML 2.0 AuthnRequest.
|
|
34150
|
+
*
|
|
34151
|
+
* `saml_sp_mismatch` — The AuthnRequest does not match the client's SAML configuration: its Issuer is not the configured entity_id, or it asks for another Assertion Consumer Service URL or binding.
|
|
34152
|
+
*
|
|
34153
|
+
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
34154
|
+
*/
|
|
34155
|
+
400: {
|
|
34156
|
+
headers: {
|
|
34157
|
+
[name: string]: unknown;
|
|
34158
|
+
};
|
|
34159
|
+
content: {
|
|
34160
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34161
|
+
/** @enum {string} */
|
|
34162
|
+
error_code?: "invalid_saml_request" | "saml_sp_mismatch" | "validation_error";
|
|
34163
|
+
};
|
|
34164
|
+
};
|
|
34165
|
+
};
|
|
34166
|
+
/**
|
|
34167
|
+
* @description `saml_not_enabled` — This client does not have SAML enabled.
|
|
34168
|
+
*
|
|
34169
|
+
* `client_not_found` — No client with that `client_id`.
|
|
34170
|
+
*
|
|
34171
|
+
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
34172
|
+
*/
|
|
34173
|
+
404: {
|
|
34174
|
+
headers: {
|
|
34175
|
+
[name: string]: unknown;
|
|
34176
|
+
};
|
|
34177
|
+
content: {
|
|
34178
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34179
|
+
/** @enum {string} */
|
|
34180
|
+
error_code?: "saml_not_enabled" | "client_not_found" | "account_not_found";
|
|
34181
|
+
};
|
|
34182
|
+
};
|
|
34183
|
+
};
|
|
34184
|
+
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
34185
|
+
429: {
|
|
34186
|
+
headers: {
|
|
34187
|
+
[name: string]: unknown;
|
|
34188
|
+
};
|
|
34189
|
+
content: {
|
|
34190
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34191
|
+
/** @enum {string} */
|
|
34192
|
+
error_code?: "too_many_requests";
|
|
34193
|
+
};
|
|
34194
|
+
};
|
|
34195
|
+
};
|
|
34196
|
+
/** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
|
|
34197
|
+
500: {
|
|
34198
|
+
headers: {
|
|
34199
|
+
[name: string]: unknown;
|
|
34200
|
+
};
|
|
34201
|
+
content: {
|
|
34202
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34203
|
+
/** @enum {string} */
|
|
34204
|
+
error_code?: "internal_error";
|
|
34205
|
+
};
|
|
34206
|
+
};
|
|
34207
|
+
};
|
|
34208
|
+
};
|
|
34209
|
+
};
|
|
34210
|
+
"saml/sso_post": {
|
|
34211
|
+
parameters: {
|
|
34212
|
+
query?: never;
|
|
34213
|
+
header?: never;
|
|
34214
|
+
path: {
|
|
34215
|
+
client_id: string;
|
|
34216
|
+
};
|
|
34217
|
+
cookie?: never;
|
|
34218
|
+
};
|
|
34219
|
+
requestBody: {
|
|
34220
|
+
content: {
|
|
34221
|
+
"application/json": {
|
|
34222
|
+
SAMLRequest?: string;
|
|
34223
|
+
RelayState?: string;
|
|
34224
|
+
SigAlg?: string;
|
|
34225
|
+
Signature?: string;
|
|
34226
|
+
};
|
|
34227
|
+
};
|
|
34228
|
+
};
|
|
34229
|
+
responses: {
|
|
34230
|
+
/** @description Default Response */
|
|
34231
|
+
200: {
|
|
34232
|
+
headers: {
|
|
34233
|
+
[name: string]: unknown;
|
|
34234
|
+
};
|
|
34235
|
+
content?: never;
|
|
34236
|
+
};
|
|
34237
|
+
/**
|
|
34238
|
+
* @description `invalid_saml_request` — The SAMLRequest is missing, too large, not well-formed or not a SAML 2.0 AuthnRequest.
|
|
34239
|
+
*
|
|
34240
|
+
* `saml_sp_mismatch` — The AuthnRequest does not match the client's SAML configuration: its Issuer is not the configured entity_id, or it asks for another Assertion Consumer Service URL or binding.
|
|
34241
|
+
*
|
|
34242
|
+
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
34243
|
+
*/
|
|
34244
|
+
400: {
|
|
34245
|
+
headers: {
|
|
34246
|
+
[name: string]: unknown;
|
|
34247
|
+
};
|
|
34248
|
+
content: {
|
|
34249
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34250
|
+
/** @enum {string} */
|
|
34251
|
+
error_code?: "invalid_saml_request" | "saml_sp_mismatch" | "validation_error";
|
|
34252
|
+
};
|
|
34253
|
+
};
|
|
34254
|
+
};
|
|
34255
|
+
/**
|
|
34256
|
+
* @description `saml_not_enabled` — This client does not have SAML enabled.
|
|
34257
|
+
*
|
|
34258
|
+
* `client_not_found` — No client with that `client_id`.
|
|
34259
|
+
*
|
|
34260
|
+
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
34261
|
+
*/
|
|
34262
|
+
404: {
|
|
34263
|
+
headers: {
|
|
34264
|
+
[name: string]: unknown;
|
|
34265
|
+
};
|
|
34266
|
+
content: {
|
|
34267
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34268
|
+
/** @enum {string} */
|
|
34269
|
+
error_code?: "saml_not_enabled" | "client_not_found" | "account_not_found";
|
|
34270
|
+
};
|
|
34271
|
+
};
|
|
34272
|
+
};
|
|
34273
|
+
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
34274
|
+
429: {
|
|
34275
|
+
headers: {
|
|
34276
|
+
[name: string]: unknown;
|
|
34277
|
+
};
|
|
34278
|
+
content: {
|
|
34279
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34280
|
+
/** @enum {string} */
|
|
34281
|
+
error_code?: "too_many_requests";
|
|
34282
|
+
};
|
|
34283
|
+
};
|
|
34284
|
+
};
|
|
34285
|
+
/** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
|
|
34286
|
+
500: {
|
|
34287
|
+
headers: {
|
|
34288
|
+
[name: string]: unknown;
|
|
34289
|
+
};
|
|
34290
|
+
content: {
|
|
34291
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34292
|
+
/** @enum {string} */
|
|
34293
|
+
error_code?: "internal_error";
|
|
34294
|
+
};
|
|
34295
|
+
};
|
|
34296
|
+
};
|
|
34297
|
+
};
|
|
34298
|
+
};
|
|
34299
|
+
"saml/callback": {
|
|
34300
|
+
parameters: {
|
|
34301
|
+
query: {
|
|
34302
|
+
state: string;
|
|
34303
|
+
code?: string;
|
|
34304
|
+
error?: string;
|
|
34305
|
+
error_description?: string;
|
|
34306
|
+
iss?: string;
|
|
34307
|
+
};
|
|
34308
|
+
header?: never;
|
|
34309
|
+
path?: never;
|
|
34310
|
+
cookie?: never;
|
|
34311
|
+
};
|
|
34312
|
+
requestBody?: never;
|
|
34313
|
+
responses: {
|
|
34314
|
+
/** @description Default Response */
|
|
34315
|
+
200: {
|
|
34316
|
+
headers: {
|
|
34317
|
+
[name: string]: unknown;
|
|
34318
|
+
};
|
|
34319
|
+
content?: never;
|
|
34320
|
+
};
|
|
34321
|
+
/**
|
|
34322
|
+
* @description `invalid_state` — The `state` is missing, expired, or does not describe a resumable step.
|
|
34323
|
+
*
|
|
34324
|
+
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
34325
|
+
*/
|
|
34326
|
+
400: {
|
|
34327
|
+
headers: {
|
|
34328
|
+
[name: string]: unknown;
|
|
34329
|
+
};
|
|
34330
|
+
content: {
|
|
34331
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34332
|
+
/** @enum {string} */
|
|
34333
|
+
error_code?: "invalid_state" | "validation_error";
|
|
34334
|
+
};
|
|
34335
|
+
};
|
|
34336
|
+
};
|
|
34337
|
+
/**
|
|
34338
|
+
* @description `saml_not_enabled` — This client does not have SAML enabled.
|
|
34339
|
+
*
|
|
34340
|
+
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
34341
|
+
*/
|
|
34342
|
+
404: {
|
|
34343
|
+
headers: {
|
|
34344
|
+
[name: string]: unknown;
|
|
34345
|
+
};
|
|
34346
|
+
content: {
|
|
34347
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34348
|
+
/** @enum {string} */
|
|
34349
|
+
error_code?: "saml_not_enabled" | "account_not_found";
|
|
34350
|
+
};
|
|
34351
|
+
};
|
|
34352
|
+
};
|
|
34353
|
+
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
34354
|
+
429: {
|
|
34355
|
+
headers: {
|
|
34356
|
+
[name: string]: unknown;
|
|
34357
|
+
};
|
|
34358
|
+
content: {
|
|
34359
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34360
|
+
/** @enum {string} */
|
|
34361
|
+
error_code?: "too_many_requests";
|
|
34362
|
+
};
|
|
34363
|
+
};
|
|
34364
|
+
};
|
|
34365
|
+
/** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
|
|
34366
|
+
500: {
|
|
34367
|
+
headers: {
|
|
34368
|
+
[name: string]: unknown;
|
|
34369
|
+
};
|
|
34370
|
+
content: {
|
|
34371
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
34372
|
+
/** @enum {string} */
|
|
34373
|
+
error_code?: "internal_error";
|
|
34374
|
+
};
|
|
34375
|
+
};
|
|
34376
|
+
};
|
|
34377
|
+
};
|
|
34378
|
+
};
|
|
33600
34379
|
"usernamepassword/login": {
|
|
33601
34380
|
parameters: {
|
|
33602
34381
|
query?: never;
|