diff --git a/packages/console/src/pages/SignInExperience/PageContent/Branding/BrandingForm/index.tsx b/packages/console/src/pages/SignInExperience/PageContent/Branding/BrandingForm/index.tsx index df7d72b87b8b..a207b392ff3f 100644 --- a/packages/console/src/pages/SignInExperience/PageContent/Branding/BrandingForm/index.tsx +++ b/packages/console/src/pages/SignInExperience/PageContent/Branding/BrandingForm/index.tsx @@ -5,6 +5,7 @@ import { Controller, useFormContext } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import LogoAndFavicon from '@/components/ImageInputs/LogoAndFavicon'; +import { isCloud, isDevFeaturesEnabled } from '@/consts/env'; import Button from '@/ds-components/Button'; import Card from '@/ds-components/Card'; import ColorPicker from '@/ds-components/ColorPicker'; @@ -49,6 +50,8 @@ function BrandingForm() { } }, [handleResetColor, isDarkModeEnabled, isDirty]); + const showHideLogtoBranding = isCloud && isDevFeaturesEnabled; + return ( @@ -113,6 +116,14 @@ function BrandingForm() { /> )} + {showHideLogtoBranding && ( + + + + )} ); } diff --git a/packages/core/src/__mocks__/sign-in-experience.ts b/packages/core/src/__mocks__/sign-in-experience.ts index 395faa0a7871..92855503c039 100644 --- a/packages/core/src/__mocks__/sign-in-experience.ts +++ b/packages/core/src/__mocks__/sign-in-experience.ts @@ -54,6 +54,7 @@ export const mockSignInExperience: SignInExperience = { branding: { logoUrl: 'http://logto.png', }, + hideLogtoBranding: false, termsOfUseUrl: mockTermsOfUseUrl, privacyPolicyUrl: mockPrivacyPolicyUrl, languageInfo: { diff --git a/packages/core/src/queries/sign-in-experience.test.ts b/packages/core/src/queries/sign-in-experience.test.ts index 5b862f882700..f9f2e9d64a8c 100644 --- a/packages/core/src/queries/sign-in-experience.test.ts +++ b/packages/core/src/queries/sign-in-experience.test.ts @@ -45,7 +45,7 @@ describe('sign-in-experience query', () => { it('findDefaultSignInExperience', async () => { /* eslint-disable sql/no-unsafe-query */ const expectSql = ` - select "tenant_id", "id", "color", "branding", "language_info", "terms_of_use_url", "privacy_policy_url", "agree_to_terms_policy", "sign_in", "sign_up", "social_sign_in", "social_sign_in_connector_targets", "sign_in_mode", "custom_css", "custom_content", "custom_ui_assets", "password_policy", "mfa", "single_sign_on_enabled", "support_email", "support_website_url", "unknown_session_redirect_url", "captcha_policy", "sentinel_policy", "email_blocklist_policy", "forgot_password_methods" + select "tenant_id", "id", "color", "branding", "hide_logto_branding", "language_info", "terms_of_use_url", "privacy_policy_url", "agree_to_terms_policy", "sign_in", "sign_up", "social_sign_in", "social_sign_in_connector_targets", "sign_in_mode", "custom_css", "custom_content", "custom_ui_assets", "password_policy", "mfa", "single_sign_on_enabled", "support_email", "support_website_url", "unknown_session_redirect_url", "captcha_policy", "sentinel_policy", "email_blocklist_policy", "forgot_password_methods" from "sign_in_experiences" where "id"=$1 `; diff --git a/packages/core/src/routes/sign-in-experience/index.openapi.json b/packages/core/src/routes/sign-in-experience/index.openapi.json index d81ca20d9371..8e4c7d8eeb93 100644 --- a/packages/core/src/routes/sign-in-experience/index.openapi.json +++ b/packages/core/src/routes/sign-in-experience/index.openapi.json @@ -23,6 +23,9 @@ "languageInfo": { "description": "The language detection policy for the sign-in page." }, + "hideLogtoBranding": { + "description": "Cloud only. Whether to hide the Logto branding on hosted sign-in pages." + }, "signIn": { "description": "Sign-in method settings." }, @@ -112,6 +115,9 @@ "languageInfo": { "description": "Control the language detection policy for the sign-in page." }, + "hideLogtoBranding": { + "description": "Cloud only. Whether to hide the Logto branding on hosted sign-in pages." + }, "signIn": { "description": "Sign-in method settings" }, diff --git a/packages/core/src/routes/sign-in-experience/index.ts b/packages/core/src/routes/sign-in-experience/index.ts index 19795a674d46..5c5ede66f7a0 100644 --- a/packages/core/src/routes/sign-in-experience/index.ts +++ b/packages/core/src/routes/sign-in-experience/index.ts @@ -10,6 +10,7 @@ import { import { conditional, type Optional, tryThat } from '@silverhand/essentials'; import { literal, object, string, z } from 'zod'; +import { EnvSet } from '#src/env-set/index.js'; import { validateSignUp, validateSignIn, @@ -90,7 +91,7 @@ export default function signInExperiencesRoutes( async (ctx, next) => { const { query: { removeUnusedDemoSocialConnector }, - body: { socialSignInConnectorTargets, emailBlocklistPolicy, ...rest }, + body: { socialSignInConnectorTargets, emailBlocklistPolicy, hideLogtoBranding, ...rest }, } = ctx.guard; const { languageInfo, @@ -189,6 +190,11 @@ export default function signInExperiencesRoutes( const payload = { ...rest, + ...conditional( + EnvSet.values.isCloud && + EnvSet.values.isDevFeaturesEnabled && + hideLogtoBranding !== undefined && { hideLogtoBranding } + ), ...conditional( filteredSocialSignInConnectorTargets && { socialSignInConnectorTargets: filteredSocialSignInConnectorTargets, diff --git a/packages/experience/src/Layout/AppLayout/index.tsx b/packages/experience/src/Layout/AppLayout/index.tsx index 3762440163be..51b1346a7419 100644 --- a/packages/experience/src/Layout/AppLayout/index.tsx +++ b/packages/experience/src/Layout/AppLayout/index.tsx @@ -1,6 +1,8 @@ import classNames from 'classnames'; +import { useContext } from 'react'; import { Outlet } from 'react-router-dom'; +import PageContext from '@/Providers/PageContextProvider/PageContext'; import LogtoSignature from '@/components/LogtoSignature'; import usePlatform from '@/hooks/use-platform'; import { layoutClassNames } from '@/utils/consts'; @@ -9,7 +11,9 @@ import CustomContent from './CustomContent'; import styles from './index.module.scss'; const AppLayout = () => { + const { experienceSettings } = useContext(PageContext); const { isMobile } = usePlatform(); + const hideLogtoBranding = experienceSettings?.hideLogtoBranding === true; return (
@@ -17,7 +21,9 @@ const AppLayout = () => { {!isMobile && }
- + {!hideLogtoBranding && ( + + )}
diff --git a/packages/experience/src/__mocks__/logto.tsx b/packages/experience/src/__mocks__/logto.tsx index 2791d2d55199..fc4132ade36f 100644 --- a/packages/experience/src/__mocks__/logto.tsx +++ b/packages/experience/src/__mocks__/logto.tsx @@ -121,6 +121,7 @@ export const mockSignInExperience: SignInExperience = { sentinelPolicy: {}, emailBlocklistPolicy: {}, forgotPasswordMethods: [], + hideLogtoBranding: false, }; export const mockSignInExperienceSettings: SignInExperienceResponse = { @@ -131,6 +132,7 @@ export const mockSignInExperienceSettings: SignInExperienceResponse = { termsOfUseUrl: mockSignInExperience.termsOfUseUrl, privacyPolicyUrl: mockSignInExperience.privacyPolicyUrl, languageInfo: mockSignInExperience.languageInfo, + hideLogtoBranding: false, signIn: mockSignInExperience.signIn, signUp: { identifiers: [SignInIdentifier.Username], diff --git a/packages/phrases/src/locales/ar/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/ar/translation/admin-console/sign-in-exp/index.ts index f1aa7643c48d..745408654b44 100644 --- a/packages/phrases/src/locales/ar/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/ar/translation/admin-console/sign-in-exp/index.ts @@ -40,6 +40,9 @@ const sign_in_exp = { app_logo_and_favicon: 'شعار التطبيق ورمز الموقع', company_logo_and_favicon: 'شعار الشركة ورمز الموقع', organization_logo_and_favicon: 'شعار المنظمة ورمز الموقع', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/de/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/de/translation/admin-console/sign-in-exp/index.ts index 557e405e8033..6403a548b6f4 100644 --- a/packages/phrases/src/locales/de/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/de/translation/admin-console/sign-in-exp/index.ts @@ -42,6 +42,9 @@ const sign_in_exp = { app_logo_and_favicon: 'App-Logo und Favicon', company_logo_and_favicon: 'Firmenlogo und Favicon', organization_logo_and_favicon: 'Organisationslogo und Favicon', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/en/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/en/translation/admin-console/sign-in-exp/index.ts index 56ec647cd01a..a9c4c670b133 100644 --- a/packages/phrases/src/locales/en/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/en/translation/admin-console/sign-in-exp/index.ts @@ -42,6 +42,9 @@ const sign_in_exp = { app_logo_and_favicon: 'App logo and favicon', company_logo_and_favicon: 'Company logo and favicon', organization_logo_and_favicon: 'Organization logo and favicon', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/es/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/es/translation/admin-console/sign-in-exp/index.ts index 139408505e01..8002cee81c87 100644 --- a/packages/phrases/src/locales/es/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/es/translation/admin-console/sign-in-exp/index.ts @@ -43,6 +43,9 @@ const sign_in_exp = { app_logo_and_favicon: 'Logotipo y favicon de la aplicación', company_logo_and_favicon: 'Logotipo y favicon de la empresa', organization_logo_and_favicon: 'Logotipo y favicon de la organización', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/fr/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/fr/translation/admin-console/sign-in-exp/index.ts index 7c0dd2074755..7df705a339fe 100644 --- a/packages/phrases/src/locales/fr/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/fr/translation/admin-console/sign-in-exp/index.ts @@ -43,6 +43,9 @@ const sign_in_exp = { app_logo_and_favicon: "Logo de l'app et favicon", company_logo_and_favicon: 'Logo de la société et favicon', organization_logo_and_favicon: "Logo de l'organisation et favicon", + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/it/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/it/translation/admin-console/sign-in-exp/index.ts index 89af4c0a17e9..c3237dafa146 100644 --- a/packages/phrases/src/locales/it/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/it/translation/admin-console/sign-in-exp/index.ts @@ -42,6 +42,9 @@ const sign_in_exp = { app_logo_and_favicon: "Logo dell'app e favicon", company_logo_and_favicon: 'Logo aziendale e favicon', organization_logo_and_favicon: "Logo dell'organizzazione e favicon", + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/ja/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/ja/translation/admin-console/sign-in-exp/index.ts index 30d4b06c5fc8..6eb7b2ab9539 100644 --- a/packages/phrases/src/locales/ja/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/ja/translation/admin-console/sign-in-exp/index.ts @@ -42,6 +42,9 @@ const sign_in_exp = { app_logo_and_favicon: 'アプリロゴとファビコン', company_logo_and_favicon: '企業ロゴとファビコン', organization_logo_and_favicon: '組織のロゴとファビコン', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/ko/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/ko/translation/admin-console/sign-in-exp/index.ts index 7a3daafa819e..9e98dd5297f5 100644 --- a/packages/phrases/src/locales/ko/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/ko/translation/admin-console/sign-in-exp/index.ts @@ -39,6 +39,9 @@ const sign_in_exp = { app_logo_and_favicon: '앱 로고 및 파비콘', company_logo_and_favicon: '회사 로고 및 파비콘', organization_logo_and_favicon: '조직 로고 및 파비콘', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/pl-pl/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/pl-pl/translation/admin-console/sign-in-exp/index.ts index 1c119aa0a6e1..a43099974c7a 100644 --- a/packages/phrases/src/locales/pl-pl/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/pl-pl/translation/admin-console/sign-in-exp/index.ts @@ -42,6 +42,9 @@ const sign_in_exp = { app_logo_and_favicon: 'Logo aplikacji i favicon', company_logo_and_favicon: 'Logo firmy i favicon', organization_logo_and_favicon: 'Logo organizacji i favicon', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/pt-br/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/pt-br/translation/admin-console/sign-in-exp/index.ts index f76672573950..75a44fdd8d9e 100644 --- a/packages/phrases/src/locales/pt-br/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/pt-br/translation/admin-console/sign-in-exp/index.ts @@ -42,6 +42,9 @@ const sign_in_exp = { app_logo_and_favicon: 'Logo do aplicativo e favicon', company_logo_and_favicon: 'Logo da empresa e favicon', organization_logo_and_favicon: 'Logo da organização e favicon', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/pt-pt/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/pt-pt/translation/admin-console/sign-in-exp/index.ts index 64a065108b2c..c895372a8c7c 100644 --- a/packages/phrases/src/locales/pt-pt/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/pt-pt/translation/admin-console/sign-in-exp/index.ts @@ -41,6 +41,9 @@ const sign_in_exp = { app_logo_and_favicon: 'Logótipo e favicon do aplicativo', company_logo_and_favicon: 'Logótipo e favicon da empresa', organization_logo_and_favicon: 'Logótipo e favicon da organização', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/ru/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/ru/translation/admin-console/sign-in-exp/index.ts index 5d73dc0a3fd5..d69dd5ca2d57 100644 --- a/packages/phrases/src/locales/ru/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/ru/translation/admin-console/sign-in-exp/index.ts @@ -42,6 +42,9 @@ const sign_in_exp = { app_logo_and_favicon: 'Логотип приложения и иконка', company_logo_and_favicon: 'Логотип компании и иконка', organization_logo_and_favicon: 'Логотип организации и иконка', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/th/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/th/translation/admin-console/sign-in-exp/index.ts index e0a1243e67bf..241d838beb41 100644 --- a/packages/phrases/src/locales/th/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/th/translation/admin-console/sign-in-exp/index.ts @@ -41,6 +41,9 @@ const sign_in_exp = { app_logo_and_favicon: 'โลโก้แอปและ Favicon', company_logo_and_favicon: 'โลโก้บริษัทและ Favicon', organization_logo_and_favicon: 'โลโก้องค์กรและ Favicon', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/tr-tr/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/tr-tr/translation/admin-console/sign-in-exp/index.ts index 36d6c3960431..fda13c6b1f9d 100644 --- a/packages/phrases/src/locales/tr-tr/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/tr-tr/translation/admin-console/sign-in-exp/index.ts @@ -42,6 +42,9 @@ const sign_in_exp = { app_logo_and_favicon: 'Uygulama logosu ve favicon', company_logo_and_favicon: 'Şirket logosu ve favicon', organization_logo_and_favicon: 'Organizasyon logosu ve favicon', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/zh-cn/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/zh-cn/translation/admin-console/sign-in-exp/index.ts index f76bc273a855..d9079139ea67 100644 --- a/packages/phrases/src/locales/zh-cn/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/zh-cn/translation/admin-console/sign-in-exp/index.ts @@ -39,6 +39,9 @@ const sign_in_exp = { app_logo_and_favicon: '应用 logo 和 favicon', company_logo_and_favicon: '公司 logo 和 favicon', organization_logo_and_favicon: '组织 logo 和 favicon', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/zh-hk/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/zh-hk/translation/admin-console/sign-in-exp/index.ts index 5a02c00ea14b..bb3736a4ea3c 100644 --- a/packages/phrases/src/locales/zh-hk/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/zh-hk/translation/admin-console/sign-in-exp/index.ts @@ -39,6 +39,9 @@ const sign_in_exp = { app_logo_and_favicon: '應用程式標誌和圖標', company_logo_and_favicon: '公司標誌和圖標', organization_logo_and_favicon: '組織標誌和圖標', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/phrases/src/locales/zh-tw/translation/admin-console/sign-in-exp/index.ts b/packages/phrases/src/locales/zh-tw/translation/admin-console/sign-in-exp/index.ts index 2259f1649f50..277fa085f57a 100644 --- a/packages/phrases/src/locales/zh-tw/translation/admin-console/sign-in-exp/index.ts +++ b/packages/phrases/src/locales/zh-tw/translation/admin-console/sign-in-exp/index.ts @@ -39,6 +39,9 @@ const sign_in_exp = { app_logo_and_favicon: '應用圖標和 Favicon', company_logo_and_favicon: '公司圖標和 Favicon', organization_logo_and_favicon: '組織圖標和 Favicon', + hide_logto_branding: 'Hide Logto branding', + hide_logto_branding_description: + 'Remove "Powered by Logto". Spotlight your brand exclusively with a clean, professional sign-in experience.', }, branding_uploads: { app_logo: { diff --git a/packages/schemas/alterations/next-1761283464-add-hide-logto-branding-column.ts b/packages/schemas/alterations/next-1761283464-add-hide-logto-branding-column.ts new file mode 100644 index 000000000000..cd92e540ed92 --- /dev/null +++ b/packages/schemas/alterations/next-1761283464-add-hide-logto-branding-column.ts @@ -0,0 +1,20 @@ +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 sign_in_experiences + add column hide_logto_branding boolean not null default false; + `); + }, + down: async (pool) => { + await pool.query(sql` + alter table sign_in_experiences + drop column hide_logto_branding; + `); + }, +}; + +export default alteration; diff --git a/packages/schemas/src/seeds/sign-in-experience.ts b/packages/schemas/src/seeds/sign-in-experience.ts index 3a0a5ffc3df4..b82caeb0f421 100644 --- a/packages/schemas/src/seeds/sign-in-experience.ts +++ b/packages/schemas/src/seeds/sign-in-experience.ts @@ -24,6 +24,7 @@ export const createDefaultSignInExperience = ( logoUrl: isCloud ? undefined : 'https://logto.io/logo.svg', darkLogoUrl: isCloud ? undefined : 'https://logto.io/logo-dark.svg', }, + hideLogtoBranding: false, languageInfo: { autoDetect: true, fallbackLanguage: 'en' as const, diff --git a/packages/schemas/tables/sign_in_experiences.sql b/packages/schemas/tables/sign_in_experiences.sql index 0c73496534f9..f611d1f71c57 100644 --- a/packages/schemas/tables/sign_in_experiences.sql +++ b/packages/schemas/tables/sign_in_experiences.sql @@ -7,6 +7,7 @@ create table sign_in_experiences ( id varchar(21) not null, color jsonb /* @use Color */ not null, branding jsonb /* @use Branding */ not null, + hide_logto_branding boolean not null default false, language_info jsonb /* @use LanguageInfo */ not null, terms_of_use_url varchar(2048), privacy_policy_url varchar(2048),