import type { ModelProviderQuotaGetPaid } from './model-provider' export const SSOProtocol = { SAML: 'saml', OIDC: 'oidc', OAuth2: 'oauth2', } as const export type SSOProtocol = typeof SSOProtocol[keyof typeof SSOProtocol] export const LicenseStatus = { NONE: 'none', INACTIVE: 'inactive', ACTIVE: 'active', EXPIRING: 'expiring', EXPIRED: 'expired', LOST: 'lost', } as const export type LicenseStatus = typeof LicenseStatus[keyof typeof LicenseStatus] export const InstallationScope = { ALL: 'all', NONE: 'none', OFFICIAL_ONLY: 'official_only', OFFICIAL_AND_PARTNER: 'official_and_specific_partners', } as const export type InstallationScope = typeof InstallationScope[keyof typeof InstallationScope] type License = { status: LicenseStatus expired_at: string | null } export type SystemFeatures = { app_dsl_version: string enable_app_deploy: boolean trial_models: ModelProviderQuotaGetPaid[] plugin_installation_permission: { plugin_installation_scope: InstallationScope restrict_to_marketplace_only: boolean } sso_enforced_for_signin: boolean sso_enforced_for_signin_protocol: SSOProtocol | '' sso_enforced_for_web: boolean sso_enforced_for_web_protocol: SSOProtocol | '' enable_marketplace: boolean enable_change_email: boolean enable_email_code_login: boolean enable_email_password_login: boolean enable_social_oauth_login: boolean enable_collaboration_mode: boolean is_allow_create_workspace: boolean is_allow_register: boolean is_email_setup: boolean license: License branding: { enabled: boolean login_page_logo: string workspace_logo: string favicon: string application_title: string } webapp_auth: { enabled: boolean allow_sso: boolean sso_config: { protocol: SSOProtocol | '' } allow_email_code_login: boolean allow_email_password_login: boolean } enable_creators_platform: boolean enable_trial_app: boolean enable_explore_banner: boolean } export const defaultSystemFeatures: SystemFeatures = { app_dsl_version: '', enable_app_deploy: false, trial_models: [], plugin_installation_permission: { plugin_installation_scope: InstallationScope.ALL, restrict_to_marketplace_only: false, }, sso_enforced_for_signin: false, sso_enforced_for_signin_protocol: '', sso_enforced_for_web: false, sso_enforced_for_web_protocol: '', enable_marketplace: false, enable_change_email: false, enable_email_code_login: false, enable_email_password_login: false, enable_social_oauth_login: false, enable_collaboration_mode: false, is_allow_create_workspace: false, is_allow_register: false, is_email_setup: false, license: { status: LicenseStatus.NONE, expired_at: '', }, branding: { enabled: false, login_page_logo: '', workspace_logo: '', favicon: '', application_title: 'test title', }, webapp_auth: { enabled: false, allow_sso: false, sso_config: { protocol: '', }, allow_email_code_login: false, allow_email_password_login: false, }, enable_creators_platform: false, enable_trial_app: false, enable_explore_banner: false, }