Files
dify/web/types/feature.ts
Stephen Zhou d3684f1542 hide for ce
2026-05-12 19:28:46 +08:00

124 lines
3.1 KiB
TypeScript

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,
}