From c98e9913a418c17f0e6a3d6ed0301745e15b69fe Mon Sep 17 00:00:00 2001 From: simeng-li Date: Mon, 14 Oct 2024 15:13:29 +0800 Subject: [PATCH] feat(schemas): add client idp-initiated auth callback url column add client idp-initiated auth callback url column --- ...idp-initiated-auth-callback-uri-columns.ts | 40 +++++++++++++++++++ ...o_connector_idp_initiated_auth_configs.sql | 8 +++- 2 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 packages/schemas/alterations/next-1728887713-add-client-idp-initiated-auth-callback-uri-columns.ts diff --git a/packages/schemas/alterations/next-1728887713-add-client-idp-initiated-auth-callback-uri-columns.ts b/packages/schemas/alterations/next-1728887713-add-client-idp-initiated-auth-callback-uri-columns.ts new file mode 100644 index 00000000000..4568cc5a9cc --- /dev/null +++ b/packages/schemas/alterations/next-1728887713-add-client-idp-initiated-auth-callback-uri-columns.ts @@ -0,0 +1,40 @@ +import { sql } from '@silverhand/slonik'; + +import type { AlterationScript } from '../lib/types/alteration.js'; + +const alteration: AlterationScript = { + up: async (pool) => { + await pool.query(sql` + alter table sso_connector_idp_initiated_auth_configs + add column client_idp_initiated_auth_callback_uri text; + + alter table sso_connector_idp_initiated_auth_configs + add column auto_send_authorization_request boolean not null default false; + + alter table sso_connector_idp_initiated_auth_configs + drop constraint application_type; + + alter table sso_connector_idp_initiated_auth_configs + add constraint application_type + check (check_application_type(default_application_id, 'Traditional', 'SPA')); + `); + }, + down: async (pool) => { + await pool.query(sql` + alter table sso_connector_idp_initiated_auth_configs + drop constraint application_type; + + alter table sso_connector_idp_initiated_auth_configs + drop column client_idp_initiated_auth_callback_uri; + + alter table sso_connector_idp_initiated_auth_configs + drop column auto_send_authorization_request; + + alter table sso_connector_idp_initiated_auth_configs + add constraint application_type + check (check_application_type(default_application_id, 'Traditional')); + `); + }, +}; + +export default alteration; diff --git a/packages/schemas/tables/sso_connector_idp_initiated_auth_configs.sql b/packages/schemas/tables/sso_connector_idp_initiated_auth_configs.sql index 2298fc35e9d..33897900b54 100644 --- a/packages/schemas/tables/sso_connector_idp_initiated_auth_configs.sql +++ b/packages/schemas/tables/sso_connector_idp_initiated_auth_configs.sql @@ -12,9 +12,13 @@ create table sso_connector_idp_initiated_auth_configs ( redirect_uri text, /** Additional OIDC auth parameters. */ auth_parameters jsonb /* @use IdpInitiatedAuthParams */ not null default '{}'::jsonb, + /** Whether to auto-trigger the auth flow on an IdP-initiated auth request. */ + auto_send_authorization_request boolean not null default false, + /** The client side callback URI for handling IdP-initiated auth request. */ + client_idp_initiated_auth_callback_uri text, created_at timestamptz not null default(now()), primary key (tenant_id, connector_id), - /** Insure the application type is Traditional. */ + /** Insure the application type is Traditional or SPA. */ constraint application_type - check (check_application_type(default_application_id, 'Traditional')) + check (check_application_type(default_application_id, 'Traditional', 'SPA')) );