feature.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. export enum SSOProtocol {
  2. SAML = 'saml',
  3. OIDC = 'oidc',
  4. OAuth2 = 'oauth2',
  5. }
  6. export enum LicenseStatus {
  7. NONE = 'none',
  8. INACTIVE = 'inactive',
  9. ACTIVE = 'active',
  10. EXPIRING = 'expiring',
  11. EXPIRED = 'expired',
  12. LOST = 'lost',
  13. }
  14. type License = {
  15. status: LicenseStatus
  16. expired_at: string | null
  17. }
  18. export type SystemFeatures = {
  19. sso_enforced_for_signin: boolean
  20. sso_enforced_for_signin_protocol: SSOProtocol | ''
  21. sso_enforced_for_web: boolean
  22. sso_enforced_for_web_protocol: SSOProtocol | ''
  23. enable_web_sso_switch_component: boolean
  24. enable_email_code_login: boolean
  25. enable_email_password_login: boolean
  26. enable_social_oauth_login: boolean
  27. is_allow_create_workspace: boolean
  28. is_allow_register: boolean
  29. is_email_setup: boolean
  30. license: License
  31. }
  32. export const defaultSystemFeatures: SystemFeatures = {
  33. sso_enforced_for_signin: false,
  34. sso_enforced_for_signin_protocol: '',
  35. sso_enforced_for_web: false,
  36. sso_enforced_for_web_protocol: '',
  37. enable_web_sso_switch_component: false,
  38. enable_email_code_login: false,
  39. enable_email_password_login: false,
  40. enable_social_oauth_login: false,
  41. is_allow_create_workspace: false,
  42. is_allow_register: false,
  43. is_email_setup: false,
  44. license: {
  45. status: LicenseStatus.NONE,
  46. expired_at: '',
  47. },
  48. }