@solidxai/core 0.1.9-beta.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/LICENSE +89 -0
  2. package/README.md +3 -1
  3. package/dist/constants/chatter-message.constants.d.ts +6 -0
  4. package/dist/constants/chatter-message.constants.d.ts.map +1 -1
  5. package/dist/constants/chatter-message.constants.js +7 -1
  6. package/dist/constants/chatter-message.constants.js.map +1 -1
  7. package/dist/controllers/authentication.controller.d.ts +12 -0
  8. package/dist/controllers/authentication.controller.d.ts.map +1 -1
  9. package/dist/controllers/authentication.controller.js +13 -0
  10. package/dist/controllers/authentication.controller.js.map +1 -1
  11. package/dist/controllers/chatter-message.controller.d.ts +1 -0
  12. package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
  13. package/dist/controllers/chatter-message.controller.js +12 -0
  14. package/dist/controllers/chatter-message.controller.js.map +1 -1
  15. package/dist/controllers/facebook-authentication.controller.d.ts +27 -0
  16. package/dist/controllers/facebook-authentication.controller.d.ts.map +1 -0
  17. package/dist/controllers/facebook-authentication.controller.js +117 -0
  18. package/dist/controllers/facebook-authentication.controller.js.map +1 -0
  19. package/dist/controllers/menu-item-metadata.controller.d.ts +1 -0
  20. package/dist/controllers/menu-item-metadata.controller.d.ts.map +1 -1
  21. package/dist/controllers/menu-item-metadata.controller.js +15 -0
  22. package/dist/controllers/menu-item-metadata.controller.js.map +1 -1
  23. package/dist/controllers/microsoft-authentication.controller.d.ts +27 -0
  24. package/dist/controllers/microsoft-authentication.controller.d.ts.map +1 -0
  25. package/dist/controllers/microsoft-authentication.controller.js +118 -0
  26. package/dist/controllers/microsoft-authentication.controller.js.map +1 -0
  27. package/dist/controllers/setting.controller.d.ts +2 -2
  28. package/dist/controllers/setting.controller.js +2 -2
  29. package/dist/decorators/auth.decorator.d.ts.map +1 -1
  30. package/dist/decorators/computed-field-provider.decorator.d.ts.map +1 -1
  31. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts.map +1 -1
  32. package/dist/decorators/dashboard-selection-provider.decorator.d.ts.map +1 -1
  33. package/dist/decorators/disallow-in-production.decorator.d.ts.map +1 -1
  34. package/dist/decorators/error-codes-provider.decorator.d.ts.map +1 -1
  35. package/dist/decorators/extension-user-creation-provider.decorator.d.ts.map +1 -1
  36. package/dist/decorators/is-not-in-enum.decorator.d.ts.map +1 -1
  37. package/dist/decorators/mail-provider.decorator.d.ts.map +1 -1
  38. package/dist/decorators/roles.decorator.d.ts.map +1 -1
  39. package/dist/decorators/scheduled-job-provider.decorator.d.ts.map +1 -1
  40. package/dist/decorators/security-rule-config-provider.decorator.d.ts.map +1 -1
  41. package/dist/decorators/selection-provider.decorator.d.ts.map +1 -1
  42. package/dist/decorators/sms-provider.decorator.d.ts.map +1 -1
  43. package/dist/decorators/solid-database-module.decorator.d.ts.map +1 -1
  44. package/dist/decorators/whatsapp-provider.decorator.d.ts.map +1 -1
  45. package/dist/dtos/create-chatter-message.dto.d.ts +1 -0
  46. package/dist/dtos/create-chatter-message.dto.d.ts.map +1 -1
  47. package/dist/dtos/create-chatter-message.dto.js +7 -1
  48. package/dist/dtos/create-chatter-message.dto.js.map +1 -1
  49. package/dist/dtos/post-chatter-message.dto.d.ts +1 -0
  50. package/dist/dtos/post-chatter-message.dto.d.ts.map +1 -1
  51. package/dist/dtos/post-chatter-message.dto.js +6 -1
  52. package/dist/dtos/post-chatter-message.dto.js.map +1 -1
  53. package/dist/dtos/update-chatter-message.dto.d.ts +1 -0
  54. package/dist/dtos/update-chatter-message.dto.d.ts.map +1 -1
  55. package/dist/dtos/update-chatter-message.dto.js +7 -1
  56. package/dist/dtos/update-chatter-message.dto.js.map +1 -1
  57. package/dist/entities/chatter-message.entity.d.ts +1 -0
  58. package/dist/entities/chatter-message.entity.d.ts.map +1 -1
  59. package/dist/entities/chatter-message.entity.js +5 -1
  60. package/dist/entities/chatter-message.entity.js.map +1 -1
  61. package/dist/entities/user.entity.d.ts +8 -0
  62. package/dist/entities/user.entity.d.ts.map +1 -1
  63. package/dist/entities/user.entity.js +33 -1
  64. package/dist/entities/user.entity.js.map +1 -1
  65. package/dist/helpers/cors.helper.js +1 -1
  66. package/dist/helpers/cors.helper.js.map +1 -1
  67. package/dist/helpers/facebook-oauth.helper.d.ts +8 -0
  68. package/dist/helpers/facebook-oauth.helper.d.ts.map +1 -0
  69. package/dist/helpers/facebook-oauth.helper.js +11 -0
  70. package/dist/helpers/facebook-oauth.helper.js.map +1 -0
  71. package/dist/helpers/microsoft-oauth.helper.d.ts +9 -0
  72. package/dist/helpers/microsoft-oauth.helper.d.ts.map +1 -0
  73. package/dist/helpers/microsoft-oauth.helper.js +12 -0
  74. package/dist/helpers/microsoft-oauth.helper.js.map +1 -0
  75. package/dist/helpers/security.helper.d.ts.map +1 -1
  76. package/dist/helpers/string.helper.d.ts.map +1 -1
  77. package/dist/helpers/user-helper.d.ts.map +1 -1
  78. package/dist/helpers/user-helper.js +4 -0
  79. package/dist/helpers/user-helper.js.map +1 -1
  80. package/dist/index.d.ts +2 -0
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +2 -0
  83. package/dist/index.js.map +1 -1
  84. package/dist/interfaces.d.ts +19 -0
  85. package/dist/interfaces.d.ts.map +1 -1
  86. package/dist/interfaces.js.map +1 -1
  87. package/dist/passport-strategies/facebook-oauth.strategy.d.ts +16 -0
  88. package/dist/passport-strategies/facebook-oauth.strategy.d.ts.map +1 -0
  89. package/dist/passport-strategies/facebook-oauth.strategy.js +96 -0
  90. package/dist/passport-strategies/facebook-oauth.strategy.js.map +1 -0
  91. package/dist/passport-strategies/microsoft-oauth.strategy.d.ts +14 -0
  92. package/dist/passport-strategies/microsoft-oauth.strategy.d.ts.map +1 -0
  93. package/dist/passport-strategies/microsoft-oauth.strategy.js +77 -0
  94. package/dist/passport-strategies/microsoft-oauth.strategy.js.map +1 -0
  95. package/dist/seeders/seed-data/solid-core-metadata.json +27 -58
  96. package/dist/services/api-key.service.d.ts +17 -1
  97. package/dist/services/api-key.service.d.ts.map +1 -1
  98. package/dist/services/api-key.service.js +38 -2
  99. package/dist/services/api-key.service.js.map +1 -1
  100. package/dist/services/authentication.service.d.ts +61 -27
  101. package/dist/services/authentication.service.d.ts.map +1 -1
  102. package/dist/services/authentication.service.js +356 -164
  103. package/dist/services/authentication.service.js.map +1 -1
  104. package/dist/services/chatter-message.service.d.ts +1 -0
  105. package/dist/services/chatter-message.service.d.ts.map +1 -1
  106. package/dist/services/chatter-message.service.js +24 -7
  107. package/dist/services/chatter-message.service.js.map +1 -1
  108. package/dist/services/crud-helper.service.d.ts.map +1 -1
  109. package/dist/services/model-metadata.service.js +1 -1
  110. package/dist/services/model-metadata.service.js.map +1 -1
  111. package/dist/services/setting.service.d.ts +5 -2
  112. package/dist/services/setting.service.d.ts.map +1 -1
  113. package/dist/services/setting.service.js +51 -6
  114. package/dist/services/setting.service.js.map +1 -1
  115. package/dist/services/settings/default-settings-provider.service.d.ts +846 -0
  116. package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
  117. package/dist/services/settings/default-settings-provider.service.js +1096 -117
  118. package/dist/services/settings/default-settings-provider.service.js.map +1 -1
  119. package/dist/services/user.service.d.ts +12 -8
  120. package/dist/services/user.service.d.ts.map +1 -1
  121. package/dist/services/user.service.js +143 -32
  122. package/dist/services/user.service.js.map +1 -1
  123. package/dist/solid-core.module.d.ts.map +1 -1
  124. package/dist/solid-core.module.js +11 -3
  125. package/dist/solid-core.module.js.map +1 -1
  126. package/dist/transformers/array-transformer.d.ts.map +1 -1
  127. package/dist/transformers/boolean-transformer.d.ts.map +1 -1
  128. package/dist/transformers/datetime-transformer.d.ts.map +1 -1
  129. package/dist/transformers/integer-transformer.d.ts.map +1 -1
  130. package/dist/validators/is-parsable-int.d.ts.map +1 -1
  131. package/nest +0 -0
  132. package/package.json +8 -2
  133. package/src/constants/chatter-message.constants.ts +7 -0
  134. package/src/controllers/authentication.controller.ts +8 -1
  135. package/src/controllers/chatter-message.controller.ts +6 -0
  136. package/src/controllers/facebook-authentication.controller.ts +113 -0
  137. package/src/controllers/menu-item-metadata.controller.ts +21 -15
  138. package/src/controllers/microsoft-authentication.controller.ts +116 -0
  139. package/src/dtos/create-chatter-message.dto.ts +11 -0
  140. package/src/dtos/post-chatter-message.dto.ts +4 -0
  141. package/src/dtos/update-chatter-message.dto.ts +13 -1
  142. package/src/entities/chatter-message.entity.ts +4 -1
  143. package/src/entities/user.entity.ts +32 -0
  144. package/src/helpers/cors.helper.ts +1 -1
  145. package/src/helpers/facebook-oauth.helper.ts +17 -0
  146. package/src/helpers/microsoft-oauth.helper.ts +19 -0
  147. package/src/helpers/user-helper.ts +4 -0
  148. package/src/index.ts +2 -0
  149. package/src/interfaces.ts +32 -1
  150. package/src/passport-strategies/facebook-oauth.strategy.ts +115 -0
  151. package/src/passport-strategies/microsoft-oauth.strategy.ts +70 -0
  152. package/src/seeders/seed-data/solid-core-metadata.json +27 -58
  153. package/src/services/api-key.service.ts +77 -35
  154. package/src/services/authentication.service.ts +1947 -1432
  155. package/src/services/chatter-message.service.ts +23 -3
  156. package/src/services/model-metadata.service.ts +1 -1
  157. package/src/services/setting.service.ts +64 -8
  158. package/src/services/settings/default-settings-provider.service.ts +1168 -156
  159. package/src/services/user.service.ts +220 -61
  160. package/src/solid-core.module.ts +25 -8
  161. package/dev-grooming-docs/ozzy-prompts.txt +0 -70
  162. package/docs/grouping-enhancements.md +0 -89
  163. package/docs/seed-changes.md +0 -65
  164. package/docs/test-data-workflow.md +0 -200
  165. package/docs/type-declaration-import-issue.md +0 -24
@@ -1,165 +1,1177 @@
1
1
  import { Injectable } from "@nestjs/common";
2
2
  import { Environment } from "src/decorators/disallow-in-production.decorator";
3
3
  import { SettingsProvider } from "src/decorators/settings-provider.decorator";
4
- import { ISettingsProvider, SettingDefinition, SettingLevel } from "src/interfaces";
5
-
6
- export const DEFAULT_MEDIA_UPLOAD_DIR = 'media-uploads';
7
- export const DEFAULT_MEDIA_FILE_STORAGE_DIR = 'media-files-storage';
8
-
9
- // 1.
10
- const getSolidCoreSettings = (isProd: boolean) => ([
11
- { moduleName: "solid-core", key: "iamGoogleOAuthEnabled", value: false, level: SettingLevel.SystemAdminEditable },
12
- { moduleName: "solid-core", key: "authPagesLayout", value: "center", level: SettingLevel.SystemAdminEditable },
13
- // Removed authPagesTheme as we are going to use the local storage based theme switching in the frontend instead of server side theme switching.
14
- // { moduleName: "solid-core", key: "authPagesTheme", value: "light", level: SettingLevel.SystemAdminEditable },
15
- { moduleName: "solid-core", key: "appLogo", value: null, level: SettingLevel.SystemAdminEditable },
16
- { moduleName: "solid-core", key: "companylogo", value: null, level: SettingLevel.SystemAdminEditable },
17
- { moduleName: "solid-core", key: "favicon", value: null, level: SettingLevel.SystemAdminEditable },
18
- { moduleName: "solid-core", key: "appLogoPosition", value: "in_form_view", level: SettingLevel.SystemAdminEditable },
19
- { moduleName: "solid-core", key: "showAuthContent", value: false, level: SettingLevel.SystemAdminEditable },
20
- { moduleName: "solid-core", key: "appTitle", value: process.env.SOLID_APP_NAME || "Solid App", level: SettingLevel.SystemAdminEditable },
21
- { moduleName: "solid-core", key: "appSubtitle", value: process.env.SOLID_APP_SUBTITLE || "", level: SettingLevel.SystemAdminEditable },
22
- { moduleName: "solid-core", key: "appDescription", value: process.env.SOLID_APP_DESCRIPTION || "", level: SettingLevel.SystemAdminEditable },
23
- { moduleName: "solid-core", key: "showLegalLinks", value: false, level: SettingLevel.SystemAdminEditable },
24
- { moduleName: "solid-core", key: "appTnc", value: null, level: SettingLevel.SystemAdminEditable },
25
- { moduleName: "solid-core", key: "appPrivacyPolicy", value: null, level: SettingLevel.SystemAdminEditable },
26
- { moduleName: "solid-core", key: "enableDarkMode", value: true, level: SettingLevel.SystemAdminEditable },
27
- { moduleName: "solid-core", key: "copyright", value: null, level: SettingLevel.SystemAdminEditable },
28
- { moduleName: "solid-core", key: "enableUsername", value: true, level: SettingLevel.SystemAdminEditable },
29
- { moduleName: "solid-core", key: "enabledNotification", value: true, level: SettingLevel.SystemAdminEditable },
30
- { moduleName: "solid-core", key: "contactSupportEmail", value: null, level: SettingLevel.SystemAdminEditable },
31
- { moduleName: "solid-core", key: "contactSupportDisplayName", value: null, level: SettingLevel.SystemAdminEditable },
32
- { moduleName: "solid-core", key: "contactSupportIcon", value: null, level: SettingLevel.SystemAdminEditable },
33
- { moduleName: "solid-core", key: "authScreenRightBackgroundImage", value: null, level: SettingLevel.SystemAdminEditable },
34
- { moduleName: "solid-core", key: "authScreenLeftBackgroundImage", value: null, level: SettingLevel.SystemAdminEditable },
35
- { moduleName: "solid-core", key: "authScreenCenterBackgroundImage", value: null, level: SettingLevel.SystemAdminEditable },
36
- {
37
- moduleName: "solid-core", key: "solidXGenAiCodeBuilderConfig", value: JSON.stringify({
38
- models: {
39
- default: { providerId: "", model: "", behavior: { streaming: false, custom: "" } },
40
- fast: { providerId: "", model: "", behavior: { streaming: false, custom: "" } },
41
- },
42
- providers: {},
43
- }), level: SettingLevel.SystemAdminEditable, encrypted: true
44
- },
45
- { moduleName: "solid-core", key: "appEncryptionKey", value: process.env.APP_ENCRYPTION_KEY, level: SettingLevel.SystemEnv },
46
- { moduleName: "solid-core", key: "mcpEnabled", value: process.env.MCP_ENABLED || false, level: SettingLevel.SystemAdminReadonly },
47
- { moduleName: "solid-core", key: "mcpServerUrl", value: process.env.MCP_SERVER_URL, level: SettingLevel.SystemAdminReadonly },
48
- { moduleName: "solid-core", key: "mcpApiKey", value: process.env.MCP_API_KEY, level: SettingLevel.SystemEnv },
49
- { moduleName: "solid-core", key: "dateTimeFormat", value: process.env.DATE_TIME_FORMAT || "YYYY-MM-DD HH:mm:ss", level: SettingLevel.SystemAdminEditable },
50
- { moduleName: "solid-core", key: "dateFormat", value: process.env.DATE_FORMAT || "YYYY-MM-DD", level: SettingLevel.SystemAdminEditable },
51
- { moduleName: "solid-core", key: "baseUrl", value: process.env.BASE_URL, level: SettingLevel.SystemAdminReadonly },
52
- { moduleName: "solid-core", key: "solidAppWebsiteUrl", value: process.env.SOLID_APP_WEBSITE_URL, level: SettingLevel.SystemAdminEditable },
53
-
54
- // app-builder-settings-provider.service.ts, app-builder.config.ts
55
- { moduleName: "solid-core", key: "moduleMetadataSeederFiles", value: process.env.AB_MODULE_METADATA_SEEDER_FILES ?? '', level: SettingLevel.SystemAdminReadonly },
56
- { moduleName: "solid-core", key: "uploadDir", value: process.env.AB_MEDIA_UPLOAD_DIR ?? DEFAULT_MEDIA_UPLOAD_DIR, level: SettingLevel.SystemAdminReadonly },
57
- { moduleName: "solid-core", key: "fileStorageDir", value: process.env.AB_MEDIA_FILE_STORAGE_DIR ?? DEFAULT_MEDIA_FILE_STORAGE_DIR, level: SettingLevel.SystemAdminReadonly },
58
- { moduleName: "solid-core", key: "defaultFileService", value: process.env.DEFAULT_FILE_SERVICE ?? 'disk', level: SettingLevel.SystemAdminReadonly },
59
-
60
- // aws-s3-settings-provider.service.ts
61
- { moduleName: "solid-core", key: "S3_AWS_ACCESS_KEY", value: process.env.S3_AWS_ACCESS_KEY, level: SettingLevel.SystemEnv },
62
- { moduleName: "solid-core", key: "S3_AWS_SECRET_KEY", value: process.env.S3_AWS_SECRET_KEY, level: SettingLevel.SystemEnv },
63
- { moduleName: "solid-core", key: "S3_AWS_REGION_NAME", value: process.env.S3_AWS_REGION_NAME, level: SettingLevel.SystemAdminReadonly },
64
- { moduleName: "solid-core", key: "S3_DEFAULT_BUCKET", value: process.env.S3_DEFAULT_BUCKET, level: SettingLevel.SystemAdminReadonly },
65
-
66
- // email-settings-provider.service.ts
67
- { moduleName: "solid-core", key: "emailProvider", value: process.env.COMMON_EMAIL_PROVIDER ?? "SMTPEMailService", level: SettingLevel.SystemAdminReadonly },
68
- { moduleName: "solid-core", key: "emailTemplateSeederFiles", value: process.env.COMMON_EMAIL_TEMPLATE_SEEDER_FILES, level: SettingLevel.SystemAdminReadonly },
69
- { moduleName: "solid-core", key: "shouldQueueEmails", value: (process.env.COMMON_EMAIL_SHOULD_QUEUE ?? 'false') === 'true', level: SettingLevel.SystemAdminReadonly },
70
- { moduleName: "solid-core", key: "smtpMailHost", value: process.env.COMMON_SMTP_EMAIL_SMTP_HOST, level: SettingLevel.SystemAdminReadonly },
71
- { moduleName: "solid-core", key: "smtpMailPort", value: +(process.env.COMMON_SMTP_EMAIL_SMTP_PORT ?? 587), level: SettingLevel.SystemAdminReadonly },
72
- { moduleName: "solid-core", key: "smtpMailUsername", value: process.env.COMMON_SMTP_EMAIL_USERNAME, level: SettingLevel.SystemAdminReadonly },
73
- { moduleName: "solid-core", key: "smtpMailPassword", value: process.env.COMMON_SMTP_EMAIL_PASSWORD, level: SettingLevel.SystemEnv },
74
- { moduleName: "solid-core", key: "smtpMailFrom", value: process.env.COMMON_SMTP_EMAIL_FROM ?? process.env.COMMON_EMAIL_FROM, level: SettingLevel.SystemAdminReadonly },
75
- { moduleName: "solid-core", key: "apiMailKey", value: process.env.COMMON_API_EMAIL_KEY, level: SettingLevel.SystemEnv },
76
- { moduleName: "solid-core", key: "apiMailFrom", value: process.env.COMMON_EMAIL_FROM, level: SettingLevel.SystemAdminReadonly },
77
-
78
- // genai-settings-provider.service.ts
79
- { moduleName: "solid-core", key: "ragServerUrl", value: process.env.GENAI_RAG_SERVER_URL, level: SettingLevel.SystemAdminReadonly },
80
- { moduleName: "solid-core", key: "ragServerLogin", value: process.env.GENAI_RAG_SERVER_LOGIN, level: SettingLevel.SystemEnv },
81
- { moduleName: "solid-core", key: "ragServerPassword", value: process.env.GENAI_RAG_SERVER_PASSWORD, level: SettingLevel.SystemEnv },
82
- { moduleName: "solid-core", key: "mcpPythonExecutable", value: process.env.MCP_PYTHON_EXECUTABLE, level: SettingLevel.SystemEnv },
83
- { moduleName: "solid-core", key: "mcpClient", value: process.env.MCP_CLIENT, level: SettingLevel.SystemEnv },
84
- { moduleName: "solid-core", key: "mcpRestartTouchFile", value: process.env.MCP_RESTART_TOUCH_FILE || "tmp/restart.touch", level: SettingLevel.SystemEnv },
85
-
86
- // google-oauth-settings-provider.service.ts
87
- { moduleName: "solid-core", key: "clientID", value: process.env.IAM_GOOGLE_OAUTH_CLIENT_ID, level: SettingLevel.SystemAdminReadonly },
88
- { moduleName: "solid-core", key: "clientSecret", value: process.env.IAM_GOOGLE_OAUTH_CLIENT_SECRET, level: SettingLevel.SystemEnv },
89
- { moduleName: "solid-core", key: "callbackURL", value: process.env.IAM_GOOGLE_OAUTH_CALLBACK_URL, level: SettingLevel.SystemAdminReadonly },
90
- { moduleName: "solid-core", key: "redirectURL", value: process.env.IAM_GOOGLE_OAUTH_REDIRECT_URL, level: SettingLevel.SystemAdminReadonly },
91
-
92
- // iam-settings-provider.service.ts
93
- { moduleName: "solid-core", key: "passwordLessAuth", value: (process.env.IAM_PASSWORD_LESS_AUTH?.trim() ?? 'false') === 'true', level: SettingLevel.SystemAdminEditable },
94
- { moduleName: "solid-core", key: "passwordBasedAuth", value: (process.env.IAM_PASSWORD_BASED_AUTH?.trim() ?? 'true') === 'true', level: SettingLevel.SystemAdminEditable },
95
- { moduleName: "solid-core", key: "passwordlessRegistrationValidateWhat", value: (process.env.IAM_PASSWORD_LESS_REGISTRATION_VALIDATE_WHAT ?? 'email').trim(), level: SettingLevel.SystemAdminEditable },
96
- { moduleName: "solid-core", key: "passwordlessLoginValidateWhat", value: process.env.IAM_PASSWORD_LESS_LOGIN_VALIDATE_WHAT ?? 'email', level: SettingLevel.SystemAdminEditable },
97
- { moduleName: "solid-core", key: "allowPublicRegistration", value: (process.env.IAM_ALLOW_PUBLIC_REGISTRATION ?? 'true') === 'true', level: SettingLevel.SystemAdminEditable },
98
- { moduleName: "solid-core", key: "activateUserOnRegistration", value: (process.env.IAM_ACTIVATE_USER_ON_REGISTRATION ?? 'true') === 'true', level: SettingLevel.SystemAdminEditable },
99
- { moduleName: "solid-core", key: "autoLoginUserOnRegistration", value: (process.env.IAM_AUTO_LOGIN_USER_ON_REGISTRATION ?? 'false') === 'true', level: SettingLevel.SystemEnv },
100
- { moduleName: "solid-core", key: "otpExpiry", value: parseInt(process.env.IAM_OTP_EXPIRY ?? '10'), level: SettingLevel.SystemEnv },
101
- { moduleName: "solid-core", key: "forgotPasswordVerificationTokenExpiry", value: parseInt(process.env.IAM_FORGOT_PASSWORD_VERIFICATION_TOKEN_EXPIRY ?? '10'), level: SettingLevel.SystemEnv },
102
- { moduleName: "solid-core", key: "defaultRole", value: process.env.IAM_DEFAULT_ROLE ?? 'Public', level: SettingLevel.SystemAdminEditable },
103
- { moduleName: "solid-core", key: "dummyOtp", value: process.env.IAM_OTP_DUMMY, level: SettingLevel.SystemEnv },
104
- { moduleName: "solid-core", key: "dummyOtpUsers", value: process.env.IAM_OTP_DUMMY_USERS, level: SettingLevel.SystemEnv },
105
- { moduleName: "solid-core", key: "forgotPasswordSendVerificationTokenOn", value: process.env.IAM_FORGOT_PASSWORD_SEND_VERIFICATION_TOKEN_ON ?? 'email', level: SettingLevel.SystemEnv },
106
- { moduleName: "solid-core", key: "maxFailedLoginAttempts", value: parseInt(process.env.IAM_MAX_FAILED_LOGIN_ATTEMPTS ?? '0'), level: SettingLevel.SystemAdminReadonly },
107
- { moduleName: "solid-core", key: "forceChangePasswordOnFirstLogin", value: false, level: SettingLevel.SystemAdminEditable },
108
- { moduleName: "solid-core", key: "authenticationPasswordRegex", value: process.env.PASSWORD_REGEX || '^$|^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^\\da-zA-Z]).*$', level: SettingLevel.SystemAdminEditable },
109
- { moduleName: "solid-core", key: "authenticationPasswordRegexErrorMessage", value: process.env.PASSWORD_REGEX_ERROR_MESSAGE || 'Password must contain at least one uppercase, one lowercase, one number, and one special character.', level: SettingLevel.SystemAdminEditable },
110
- { moduleName: "solid-core", key: "authenticationPasswordComplexityDescription", value: process.env.PASSWORD_COMPLEXITY_DESC || 'Password must contain at least one uppercase, one lowercase, one number, and one special character.', level: SettingLevel.SystemAdminEditable },
111
- { moduleName: "solid-core", key: "iamAutoGeneratedPassword", value: process.env.IAM_AUTOGENERATED_PASSWORD || true, level: SettingLevel.SystemAdminEditable },
112
- { moduleName: "solid-core", key: "passwordPepper", value: process.env.IAM_PASSWORD_PEPPER || '', level: SettingLevel.SystemEnv },
113
- { moduleName: "solid-core", key: "showNameFieldsForRegistration", value: process.env.IAM_SHOW_NAME_FIELDS_FOR_REGISTRATION === 'true' ? true : false, level: SettingLevel.SystemAdminEditable },
114
- { moduleName: "solid-core", key: "sendWelcomeEmailOnSignup", value: (process.env.IAM_SEND_WELCOME_EMAIL_ON_SIGNUP ?? 'false').toLowerCase() === 'true', level: SettingLevel.SystemEnv },
115
- { moduleName: "solid-core", key: "sendWelcomeSmsOnSignup", value: (process.env.IAM_SEND_WELCOME_SMS_ON_SIGNUP ?? 'false').toLowerCase() === 'true', level: SettingLevel.SystemEnv },
116
- { moduleName: "solid-core", key: "frontendLoginPageUrl", value: process.env.IAM_FRONTEND_APP_LOGIN_PAGE_URL, level: SettingLevel.SystemAdminReadonly },
117
- { moduleName: "solid-core", key: "frontendForgotPasswordPageUrl", value: process.env.IAM_FRONTEND_APP_FORGOT_PASSWORD_PAGE_URL, level: SettingLevel.SystemAdminReadonly },
118
-
119
- // jwt-settings-provider.service.ts
120
- { moduleName: "solid-core", key: "secret", value: process.env.IAM_JWT_SECRET, level: SettingLevel.SystemEnv },
121
- { moduleName: "solid-core", key: "audience", value: process.env.IAM_JWT_TOKEN_AUDIENCE, level: SettingLevel.SystemAdminReadonly },
122
- { moduleName: "solid-core", key: "issuer", value: process.env.IAM_JWT_TOKEN_ISSUER, level: SettingLevel.SystemAdminReadonly },
123
- { moduleName: "solid-core", key: "accessTokenTtl", value: parseInt(process.env.IAM_JWT_ACCESS_TOKEN_TTL ?? (isProd ? "1200" : "86400"), 10,), level: SettingLevel.SystemEnv },
124
- { moduleName: "solid-core", key: "refreshTokenTtl", value: parseInt(process.env.IAM_JWT_REFRESH_TOKEN_TTL ?? "604800", 10), level: SettingLevel.SystemEnv },
125
-
126
- // queues-settings-provider.service.ts
127
- { moduleName: "solid-core", key: "queuesDefaultBroker", value: process.env.QUEUES_DEFAULT_BROKER || 'database', level: SettingLevel.SystemAdminReadonly },
128
- { moduleName: "solid-core", key: "queuesServiceRole", value: process.env.QUEUES_SERVICE_ROLE, level: SettingLevel.SystemAdminReadonly },
129
- { moduleName: "solid-core", key: "queuesRabbitMqUrl", value: process.env.QUEUES_RABBIT_MQ_URL, level: SettingLevel.SystemEnv },
130
- { moduleName: "solid-core", key: "solidCliRunning", value: process.env.SOLID_CLI_RUNNING || "false", level: SettingLevel.SystemEnv },
131
-
132
- // sms-settings-provider.service.ts
133
- { moduleName: "solid-core", key: "smsProvider", value: process.env.COMMON_SMS_PROVIDER, level: SettingLevel.SystemAdminReadonly },
134
- { moduleName: "solid-core", key: "smsTemplateSeederFiles", value: process.env.COMMON_SMS_TEMPLATE_SEEDER_FILES, level: SettingLevel.SystemAdminReadonly },
135
- { moduleName: "solid-core", key: "shouldQueueSms", value: (process.env.COMMON_SMS_SHOULD_QUEUE ?? 'false') === 'true', level: SettingLevel.SystemAdminReadonly },
136
- { moduleName: "solid-core", key: "msg91SmsUrl", value: process.env.COMMON_MSG91_SMS_URL, level: SettingLevel.SystemAdminReadonly },
137
- { moduleName: "solid-core", key: "msg91SmsApiKey", value: process.env.COMMON_MSG91_SMS_API_KEY, level: SettingLevel.SystemEnv },
138
- { moduleName: "solid-core", key: "twilioAccountSid", value: process.env.COMMON_TWILIO_ACCOUNT_SID, level: SettingLevel.SystemAdminReadonly },
139
- { moduleName: "solid-core", key: "twilioAuthToken", value: process.env.COMMON_TWILIO_AUTH_TOKEN, level: SettingLevel.SystemEnv },
140
- { moduleName: "solid-core", key: "twilioNumber", value: process.env.COMMON_TWILIO_NUMBER, level: SettingLevel.SystemAdminReadonly },
141
-
142
- // tiny-url-settings-provider.service.ts
143
- { moduleName: "solid-core", key: "tinyUrlApiUrl", value: process.env.COMMON_SHORT_URL_API_URL, level: SettingLevel.SystemAdminReadonly },
144
- { moduleName: "solid-core", key: "tinyUrlApiKey", value: process.env.COMMON_SHORT_URL_API_KEY, level: SettingLevel.SystemEnv },
145
- { moduleName: "solid-core", key: "tinyUrlDomain", value: process.env.COMMON_SHORT_URL_DOMAIN, level: SettingLevel.SystemAdminReadonly },
146
- { moduleName: "solid-core", key: "tinyUrlEnabled", value: (process.env.COMMON_SHORT_URL_ENABLED ?? 'false') === 'true', level: SettingLevel.SystemAdminReadonly },
147
-
148
- // whatsapp-settings-provider.service.ts
149
- { moduleName: "solid-core", key: "whatsappProvider", value: process.env.COMMON_WHATSAPP_PROVIDER, level: SettingLevel.SystemAdminReadonly },
150
- { moduleName: "solid-core", key: "msg91WhatsappUrl", value: process.env.COMMON_WHATSAPP_API_URL, level: SettingLevel.SystemAdminReadonly },
151
- { moduleName: "solid-core", key: "msg91WhatsappApiKey", value: process.env.COMMON_WHATSAPP_API_KEY, level: SettingLevel.SystemEnv },
152
- { moduleName: "solid-core", key: "msg91WhatsappIntegratedNumber", value: process.env.COMMON_WHATSAPP_INTEGRATED_NUMBER, level: SettingLevel.SystemAdminReadonly },
153
- ] as const satisfies SettingDefinition[]);
154
-
155
- // 2.
156
- export type SolidCoreSetting = ReturnType<typeof getSolidCoreSettings>[number]["key"];
157
-
158
- // 3.
4
+ import {
5
+ ISettingsProvider,
6
+ SettingDefinition,
7
+ SettingLevel,
8
+ } from "src/interfaces";
9
+
10
+ export const DEFAULT_MEDIA_UPLOAD_DIR = "media-uploads";
11
+ export const DEFAULT_MEDIA_FILE_STORAGE_DIR = "media-files-storage";
12
+
13
+ // 1.
14
+ const getSolidCoreSettings = (isProd: boolean) =>
15
+ [
16
+ {
17
+ moduleName: "solid-core",
18
+ key: "iamGoogleOAuthEnabled",
19
+ value: false,
20
+ level: SettingLevel.SystemAdminEditable,
21
+ label: "Allow Login / Signup With Google",
22
+ group: "authentication-settings",
23
+ sortOrder: 50,
24
+ controlType: "boolean",
25
+ },
26
+ {
27
+ moduleName: "solid-core",
28
+ key: "iamFacebookOAuthEnabled",
29
+ value: false,
30
+ level: SettingLevel.SystemAdminEditable,
31
+ label: "Allow Login / Signup With Facebook",
32
+ group: "authentication-settings",
33
+ sortOrder: 50,
34
+ controlType: "boolean",
35
+ },
36
+ {
37
+ moduleName: "solid-core",
38
+ key: "iamMicrosoftOAuthEnabled",
39
+ value: false,
40
+ level: SettingLevel.SystemAdminEditable,
41
+ label: "Allow Login / Signup With Microsoft",
42
+ group: "authentication-settings",
43
+ sortOrder: 50,
44
+ controlType: "boolean",
45
+ },
46
+ {
47
+ moduleName: "solid-core",
48
+ key: "authPagesLayout",
49
+ value: "center",
50
+ level: SettingLevel.SystemAdminEditable,
51
+ label: "Authentication Screen Layout",
52
+ group: "authentication-settings",
53
+ sortOrder: 80,
54
+ controlType: "selectionStatic",
55
+ options: [
56
+ { label: "Left", value: "left" },
57
+ { label: "Center", value: "center" },
58
+ { label: "Right", value: "right" },
59
+ ],
60
+ },
61
+ // Removed authPagesTheme as we are going to use the local storage based theme switching in the frontend instead of server side theme switching.
62
+ // { moduleName: "solid-core", key: "authPagesTheme", value: "light", level: SettingLevel.SystemAdminEditable },
63
+ {
64
+ moduleName: "solid-core",
65
+ key: "appLogo",
66
+ value: null,
67
+ level: SettingLevel.SystemAdminEditable,
68
+ label: "App Logo",
69
+ group: "app-settings",
70
+ sortOrder: 10,
71
+ controlType: "mediaSingle",
72
+ },
73
+ {
74
+ moduleName: "solid-core",
75
+ key: "companylogo",
76
+ value: null,
77
+ level: SettingLevel.SystemAdminEditable,
78
+ label: "Company Logo",
79
+ group: "app-settings",
80
+ sortOrder: 20,
81
+ controlType: "mediaSingle",
82
+ },
83
+ {
84
+ moduleName: "solid-core",
85
+ key: "favicon",
86
+ value: null,
87
+ level: SettingLevel.SystemAdminEditable,
88
+ label: "Favicon",
89
+ group: "app-settings",
90
+ sortOrder: 30,
91
+ controlType: "mediaSingle",
92
+ },
93
+ {
94
+ moduleName: "solid-core",
95
+ key: "appLogoPosition",
96
+ value: "in_form_view",
97
+ level: SettingLevel.SystemAdminEditable,
98
+ label: "App Logo Position",
99
+ group: "app-settings",
100
+ sortOrder: 40,
101
+ controlType: "selectionStatic",
102
+ options: [
103
+ { label: "In Form View", value: "in_form_view" },
104
+ { label: "In Image View", value: "in_image_view" },
105
+ ],
106
+ },
107
+ {
108
+ moduleName: "solid-core",
109
+ key: "showAuthContent",
110
+ value: false,
111
+ level: SettingLevel.SystemAdminEditable,
112
+ label: "Show Details On Authentication Screen",
113
+ group: "app-settings",
114
+ sortOrder: 50,
115
+ controlType: "boolean",
116
+ },
117
+ {
118
+ moduleName: "solid-core",
119
+ key: "appTitle",
120
+ value: process.env.SOLID_APP_NAME || "Solid App",
121
+ level: SettingLevel.SystemAdminEditable,
122
+ label: "App Title",
123
+ group: "app-settings",
124
+ sortOrder: 60,
125
+ controlType: "shortText",
126
+ },
127
+ {
128
+ moduleName: "solid-core",
129
+ key: "appSubtitle",
130
+ value: process.env.SOLID_APP_SUBTITLE || "",
131
+ level: SettingLevel.SystemAdminEditable,
132
+ label: "App Subtitle",
133
+ group: "app-settings",
134
+ sortOrder: 70,
135
+ controlType: "shortText",
136
+ },
137
+ {
138
+ moduleName: "solid-core",
139
+ key: "appDescription",
140
+ value: process.env.SOLID_APP_DESCRIPTION || "",
141
+ level: SettingLevel.SystemAdminEditable,
142
+ label: "Description",
143
+ group: "app-settings",
144
+ sortOrder: 80,
145
+ controlType: "longText",
146
+ },
147
+ {
148
+ moduleName: "solid-core",
149
+ key: "showLegalLinks",
150
+ value: false,
151
+ level: SettingLevel.SystemAdminEditable,
152
+ label: "Show Legal Links",
153
+ group: "app-settings",
154
+ sortOrder: 90,
155
+ controlType: "boolean",
156
+ },
157
+ {
158
+ moduleName: "solid-core",
159
+ key: "appTnc",
160
+ value: null,
161
+ level: SettingLevel.SystemAdminEditable,
162
+ label: "Terms And Conditions Link",
163
+ group: "app-settings",
164
+ sortOrder: 100,
165
+ controlType: "shortText",
166
+ },
167
+ {
168
+ moduleName: "solid-core",
169
+ key: "appPrivacyPolicy",
170
+ value: null,
171
+ level: SettingLevel.SystemAdminEditable,
172
+ label: "Privacy Policy Link",
173
+ group: "app-settings",
174
+ sortOrder: 110,
175
+ controlType: "shortText",
176
+ },
177
+ {
178
+ moduleName: "solid-core",
179
+ key: "enableDarkMode",
180
+ value: true,
181
+ level: SettingLevel.SystemAdminEditable,
182
+ label: "Enable Dark Mode",
183
+ group: "app-settings",
184
+ sortOrder: 120,
185
+ controlType: "boolean",
186
+ },
187
+ {
188
+ moduleName: "solid-core",
189
+ key: "copyright",
190
+ value: null,
191
+ level: SettingLevel.SystemAdminEditable,
192
+ label: "Copyright",
193
+ group: "app-settings",
194
+ sortOrder: 130,
195
+ controlType: "longText",
196
+ },
197
+ {
198
+ moduleName: "solid-core",
199
+ key: "enableUsername",
200
+ value: true,
201
+ level: SettingLevel.SystemAdminEditable,
202
+ label: "Enable Username",
203
+ group: "misc-settings",
204
+ sortOrder: 10,
205
+ controlType: "boolean",
206
+ },
207
+ {
208
+ moduleName: "solid-core",
209
+ key: "enabledNotification",
210
+ value: true,
211
+ level: SettingLevel.SystemAdminEditable,
212
+ label: "Enable Notification",
213
+ group: "misc-settings",
214
+ sortOrder: 20,
215
+ controlType: "boolean",
216
+ },
217
+ {
218
+ moduleName: "solid-core",
219
+ key: "contactSupportEmail",
220
+ value: null,
221
+ level: SettingLevel.SystemAdminEditable,
222
+ label: "Contact Support Email",
223
+ group: "misc-settings",
224
+ sortOrder: 30,
225
+ controlType: "shortText",
226
+ },
227
+ {
228
+ moduleName: "solid-core",
229
+ key: "contactSupportDisplayName",
230
+ value: null,
231
+ level: SettingLevel.SystemAdminEditable,
232
+ label: "Contact Support Display Name",
233
+ group: "misc-settings",
234
+ sortOrder: 40,
235
+ controlType: "shortText",
236
+ },
237
+ {
238
+ moduleName: "solid-core",
239
+ key: "contactSupportIcon",
240
+ value: null,
241
+ level: SettingLevel.SystemAdminEditable,
242
+ label: "Contact Support Icon",
243
+ group: "misc-settings",
244
+ sortOrder: 50,
245
+ controlType: "shortText",
246
+ },
247
+ {
248
+ moduleName: "solid-core",
249
+ key: "authScreenRightBackgroundImage",
250
+ value: null,
251
+ level: SettingLevel.SystemAdminEditable,
252
+ label: "Authentication Right Banner Image",
253
+ group: "authentication-settings",
254
+ sortOrder: 90,
255
+ controlType: "mediaSingle",
256
+ },
257
+ {
258
+ moduleName: "solid-core",
259
+ key: "authScreenLeftBackgroundImage",
260
+ value: null,
261
+ level: SettingLevel.SystemAdminEditable,
262
+ label: "Authentication Left Banner Image",
263
+ group: "authentication-settings",
264
+ sortOrder: 100,
265
+ controlType: "mediaSingle",
266
+ },
267
+ {
268
+ moduleName: "solid-core",
269
+ key: "authScreenCenterBackgroundImage",
270
+ value: null,
271
+ level: SettingLevel.SystemAdminEditable,
272
+ label: "Authentication Center Background Image",
273
+ group: "authentication-settings",
274
+ sortOrder: 110,
275
+ controlType: "mediaSingle",
276
+ },
277
+ {
278
+ moduleName: "solid-core",
279
+ key: "solidXGenAiCodeBuilderConfig",
280
+ value: JSON.stringify({
281
+ models: {
282
+ default: {
283
+ providerId: "",
284
+ model: "",
285
+ behavior: { streaming: false, custom: "" },
286
+ },
287
+ fast: {
288
+ providerId: "",
289
+ model: "",
290
+ behavior: { streaming: false, custom: "" },
291
+ },
292
+ },
293
+ providers: {},
294
+ }),
295
+ level: SettingLevel.SystemAdminEditable,
296
+ encrypted: true,
297
+ label: "AI Code Builder Configuration",
298
+ description:
299
+ "Structured configuration for AI providers and model assignments.",
300
+ group: "ai-settings",
301
+ sortOrder: 10,
302
+ controlType: "custom",
303
+ settingsWidget: "solidXGenAiCodeBuilderConfigWidget",
304
+ },
305
+ {
306
+ moduleName: "solid-core",
307
+ key: "appEncryptionKey",
308
+ value: process.env.APP_ENCRYPTION_KEY,
309
+ level: SettingLevel.SystemEnv,
310
+ },
311
+ {
312
+ moduleName: "solid-core",
313
+ key: "mcpEnabled",
314
+ value: process.env.MCP_ENABLED || false,
315
+ level: SettingLevel.SystemAdminReadonly,
316
+ label: "MCP Enabled",
317
+ group: "ai-settings",
318
+ sortOrder: 20,
319
+ controlType: "boolean",
320
+ },
321
+ {
322
+ moduleName: "solid-core",
323
+ key: "mcpServerUrl",
324
+ value: process.env.MCP_SERVER_URL,
325
+ level: SettingLevel.SystemAdminReadonly,
326
+ label: "MCP Server URL",
327
+ group: "ai-settings",
328
+ sortOrder: 30,
329
+ controlType: "shortText",
330
+ },
331
+ {
332
+ moduleName: "solid-core",
333
+ key: "mcpApiKey",
334
+ value: process.env.MCP_API_KEY,
335
+ level: SettingLevel.SystemEnv,
336
+ },
337
+ {
338
+ moduleName: "solid-core",
339
+ key: "dateTimeFormat",
340
+ value: process.env.DATE_TIME_FORMAT || "YYYY-MM-DD HH:mm:ss",
341
+ level: SettingLevel.SystemAdminEditable,
342
+ label: "Date Time Format",
343
+ group: "system-settings",
344
+ sortOrder: 10,
345
+ controlType: "shortText",
346
+ },
347
+ {
348
+ moduleName: "solid-core",
349
+ key: "dateFormat",
350
+ value: process.env.DATE_FORMAT || "YYYY-MM-DD",
351
+ level: SettingLevel.SystemAdminEditable,
352
+ label: "Date Format",
353
+ group: "system-settings",
354
+ sortOrder: 20,
355
+ controlType: "shortText",
356
+ },
357
+ {
358
+ moduleName: "solid-core",
359
+ key: "baseUrl",
360
+ value: process.env.BASE_URL,
361
+ level: SettingLevel.SystemAdminReadonly,
362
+ label: "Base URL",
363
+ group: "system-settings",
364
+ sortOrder: 30,
365
+ controlType: "shortText",
366
+ },
367
+ {
368
+ moduleName: "solid-core",
369
+ key: "solidAppWebsiteUrl",
370
+ value: process.env.SOLID_APP_WEBSITE_URL,
371
+ level: SettingLevel.SystemAdminEditable,
372
+ label: "Solid App Website URL",
373
+ group: "system-settings",
374
+ sortOrder: 40,
375
+ controlType: "shortText",
376
+ },
377
+
378
+ // app-builder-settings-provider.service.ts, app-builder.config.ts
379
+ {
380
+ moduleName: "solid-core",
381
+ key: "moduleMetadataSeederFiles",
382
+ value: process.env.AB_MODULE_METADATA_SEEDER_FILES ?? "",
383
+ level: SettingLevel.SystemAdminReadonly,
384
+ label: "Module Metadata Seeder Files",
385
+ group: "storage-settings",
386
+ sortOrder: 10,
387
+ controlType: "longText",
388
+ },
389
+ {
390
+ moduleName: "solid-core",
391
+ key: "uploadDir",
392
+ value: process.env.AB_MEDIA_UPLOAD_DIR ?? DEFAULT_MEDIA_UPLOAD_DIR,
393
+ level: SettingLevel.SystemAdminReadonly,
394
+ label: "Upload Directory",
395
+ group: "storage-settings",
396
+ sortOrder: 20,
397
+ controlType: "shortText",
398
+ },
399
+ {
400
+ moduleName: "solid-core",
401
+ key: "fileStorageDir",
402
+ value:
403
+ process.env.AB_MEDIA_FILE_STORAGE_DIR ?? DEFAULT_MEDIA_FILE_STORAGE_DIR,
404
+ level: SettingLevel.SystemAdminReadonly,
405
+ label: "File Storage Directory",
406
+ group: "storage-settings",
407
+ sortOrder: 30,
408
+ controlType: "shortText",
409
+ },
410
+ {
411
+ moduleName: "solid-core",
412
+ key: "defaultFileService",
413
+ value: process.env.DEFAULT_FILE_SERVICE ?? "disk",
414
+ level: SettingLevel.SystemAdminReadonly,
415
+ label: "Default File Service",
416
+ group: "storage-settings",
417
+ sortOrder: 40,
418
+ controlType: "selectionStatic",
419
+ options: [
420
+ { label: "Disk", value: "disk" },
421
+ { label: "S3", value: "s3" },
422
+ ],
423
+ },
424
+
425
+ // aws-s3-settings-provider.service.ts
426
+ {
427
+ moduleName: "solid-core",
428
+ key: "S3_AWS_ACCESS_KEY",
429
+ value: process.env.S3_AWS_ACCESS_KEY,
430
+ level: SettingLevel.SystemEnv,
431
+ },
432
+ {
433
+ moduleName: "solid-core",
434
+ key: "S3_AWS_SECRET_KEY",
435
+ value: process.env.S3_AWS_SECRET_KEY,
436
+ level: SettingLevel.SystemEnv,
437
+ },
438
+ {
439
+ moduleName: "solid-core",
440
+ key: "S3_AWS_REGION_NAME",
441
+ value: process.env.S3_AWS_REGION_NAME,
442
+ level: SettingLevel.SystemAdminReadonly,
443
+ label: "AWS Region Name",
444
+ group: "storage-settings",
445
+ sortOrder: 50,
446
+ controlType: "shortText",
447
+ },
448
+ {
449
+ moduleName: "solid-core",
450
+ key: "S3_DEFAULT_BUCKET",
451
+ value: process.env.S3_DEFAULT_BUCKET,
452
+ level: SettingLevel.SystemAdminReadonly,
453
+ label: "S3 Default Bucket",
454
+ group: "storage-settings",
455
+ sortOrder: 60,
456
+ controlType: "shortText",
457
+ },
458
+
459
+ // email-settings-provider.service.ts
460
+ {
461
+ moduleName: "solid-core",
462
+ key: "emailProvider",
463
+ value: process.env.COMMON_EMAIL_PROVIDER ?? "SMTPEMailService",
464
+ level: SettingLevel.SystemAdminReadonly,
465
+ label: "Email Provider",
466
+ group: "email-settings",
467
+ sortOrder: 10,
468
+ controlType: "selectionStatic",
469
+ options: [
470
+ { label: "SMTP Email Service", value: "SMTPEMailService" },
471
+ { label: "Elastic Email Service", value: "ElasticEmailService" },
472
+ ],
473
+ },
474
+ {
475
+ moduleName: "solid-core",
476
+ key: "emailTemplateSeederFiles",
477
+ value: process.env.COMMON_EMAIL_TEMPLATE_SEEDER_FILES,
478
+ level: SettingLevel.SystemAdminReadonly,
479
+ label: "Email Template Seeder Files",
480
+ group: "email-settings",
481
+ sortOrder: 20,
482
+ controlType: "longText",
483
+ },
484
+ {
485
+ moduleName: "solid-core",
486
+ key: "shouldQueueEmails",
487
+ value: (process.env.COMMON_EMAIL_SHOULD_QUEUE ?? "false") === "true",
488
+ level: SettingLevel.SystemAdminReadonly,
489
+ label: "Queue Emails",
490
+ group: "email-settings",
491
+ sortOrder: 30,
492
+ controlType: "boolean",
493
+ },
494
+ {
495
+ moduleName: "solid-core",
496
+ key: "smtpMailHost",
497
+ value: process.env.COMMON_SMTP_EMAIL_SMTP_HOST,
498
+ level: SettingLevel.SystemAdminReadonly,
499
+ label: "SMTP Mail Host",
500
+ group: "email-settings",
501
+ sortOrder: 40,
502
+ controlType: "shortText",
503
+ },
504
+ {
505
+ moduleName: "solid-core",
506
+ key: "smtpMailPort",
507
+ value: +(process.env.COMMON_SMTP_EMAIL_SMTP_PORT ?? 587),
508
+ level: SettingLevel.SystemAdminReadonly,
509
+ label: "SMTP Mail Port",
510
+ group: "email-settings",
511
+ sortOrder: 50,
512
+ controlType: "numeric",
513
+ },
514
+ {
515
+ moduleName: "solid-core",
516
+ key: "smtpMailUsername",
517
+ value: process.env.COMMON_SMTP_EMAIL_USERNAME,
518
+ level: SettingLevel.SystemAdminReadonly,
519
+ label: "SMTP Mail Username",
520
+ group: "email-settings",
521
+ sortOrder: 60,
522
+ controlType: "shortText",
523
+ },
524
+ {
525
+ moduleName: "solid-core",
526
+ key: "smtpMailPassword",
527
+ value: process.env.COMMON_SMTP_EMAIL_PASSWORD,
528
+ level: SettingLevel.SystemEnv,
529
+ },
530
+ {
531
+ moduleName: "solid-core",
532
+ key: "smtpMailFrom",
533
+ value:
534
+ process.env.COMMON_SMTP_EMAIL_FROM ?? process.env.COMMON_EMAIL_FROM,
535
+ level: SettingLevel.SystemAdminReadonly,
536
+ label: "SMTP Mail From",
537
+ group: "email-settings",
538
+ sortOrder: 70,
539
+ controlType: "shortText",
540
+ },
541
+ {
542
+ moduleName: "solid-core",
543
+ key: "apiMailKey",
544
+ value: process.env.COMMON_API_EMAIL_KEY,
545
+ level: SettingLevel.SystemEnv,
546
+ },
547
+ {
548
+ moduleName: "solid-core",
549
+ key: "apiMailFrom",
550
+ value: process.env.COMMON_EMAIL_FROM,
551
+ level: SettingLevel.SystemAdminReadonly,
552
+ label: "API Mail From",
553
+ group: "email-settings",
554
+ sortOrder: 80,
555
+ controlType: "shortText",
556
+ },
557
+
558
+ // genai-settings-provider.service.ts
559
+ {
560
+ moduleName: "solid-core",
561
+ key: "ragServerUrl",
562
+ value: process.env.GENAI_RAG_SERVER_URL,
563
+ level: SettingLevel.SystemAdminReadonly,
564
+ label: "RAG Server URL",
565
+ group: "ai-settings",
566
+ sortOrder: 40,
567
+ controlType: "shortText",
568
+ },
569
+ {
570
+ moduleName: "solid-core",
571
+ key: "ragServerLogin",
572
+ value: process.env.GENAI_RAG_SERVER_LOGIN,
573
+ level: SettingLevel.SystemEnv,
574
+ },
575
+ {
576
+ moduleName: "solid-core",
577
+ key: "ragServerPassword",
578
+ value: process.env.GENAI_RAG_SERVER_PASSWORD,
579
+ level: SettingLevel.SystemEnv,
580
+ },
581
+ {
582
+ moduleName: "solid-core",
583
+ key: "mcpPythonExecutable",
584
+ value: process.env.MCP_PYTHON_EXECUTABLE,
585
+ level: SettingLevel.SystemEnv,
586
+ },
587
+ {
588
+ moduleName: "solid-core",
589
+ key: "mcpClient",
590
+ value: process.env.MCP_CLIENT,
591
+ level: SettingLevel.SystemEnv,
592
+ },
593
+ {
594
+ moduleName: "solid-core",
595
+ key: "mcpRestartTouchFile",
596
+ value: process.env.MCP_RESTART_TOUCH_FILE || "tmp/restart.touch",
597
+ level: SettingLevel.SystemEnv,
598
+ },
599
+
600
+ // google-oauth-settings-provider.service.ts
601
+ {
602
+ moduleName: "solid-core",
603
+ key: "clientID",
604
+ value: process.env.IAM_GOOGLE_OAUTH_CLIENT_ID,
605
+ level: SettingLevel.SystemAdminReadonly,
606
+ label: "Google OAuth Client ID",
607
+ group: "oauth-settings",
608
+ sortOrder: 10,
609
+ controlType: "shortText",
610
+ },
611
+ {
612
+ moduleName: "solid-core",
613
+ key: "clientSecret",
614
+ value: process.env.IAM_GOOGLE_OAUTH_CLIENT_SECRET,
615
+ level: SettingLevel.SystemEnv,
616
+ },
617
+ {
618
+ moduleName: "solid-core",
619
+ key: "callbackURL",
620
+ value: process.env.IAM_GOOGLE_OAUTH_CALLBACK_URL,
621
+ level: SettingLevel.SystemAdminReadonly,
622
+ label: "Google OAuth Callback URL",
623
+ group: "oauth-settings",
624
+ sortOrder: 20,
625
+ controlType: "shortText",
626
+ },
627
+ {
628
+ moduleName: "solid-core",
629
+ key: "redirectURL",
630
+ value: process.env.IAM_GOOGLE_OAUTH_REDIRECT_URL,
631
+ level: SettingLevel.SystemAdminReadonly,
632
+ label: "Google OAuth Redirect URL",
633
+ group: "oauth-settings",
634
+ sortOrder: 30,
635
+ controlType: "shortText",
636
+ },
637
+
638
+ // facebook-oauth-settings-provider.service.ts
639
+ {
640
+ moduleName: "solid-core",
641
+ key: "FACEBOOK_CLIENT_ID",
642
+ value: process.env.IAM_FACEBOOK_OAUTH_CLIENT_ID,
643
+ level: SettingLevel.SystemAdminReadonly,
644
+ },
645
+ {
646
+ moduleName: "solid-core",
647
+ key: "FACEBOOK_CLIENT_SECRET",
648
+ value: process.env.IAM_FACEBOOK_OAUTH_CLIENT_SECRET,
649
+ level: SettingLevel.SystemEnv,
650
+ },
651
+ {
652
+ moduleName: "solid-core",
653
+ key: "FACEBOOK_CALLBACK_URL",
654
+ value: process.env.IAM_FACEBOOK_OAUTH_CALLBACK_URL,
655
+ level: SettingLevel.SystemAdminReadonly,
656
+ },
657
+ {
658
+ moduleName: "solid-core",
659
+ key: "FACEBOOK_REDIRECT_URL",
660
+ value: process.env.IAM_FACEBOOK_OAUTH_REDIRECT_URL,
661
+ level: SettingLevel.SystemAdminReadonly,
662
+ },
663
+
664
+ // microsoft-oauth-settings-provider.service.ts
665
+ {
666
+ moduleName: "solid-core",
667
+ key: "MICROSOFT_CLIENT_ID",
668
+ value: process.env.IAM_MICROSOFT_OAUTH_CLIENT_ID,
669
+ level: SettingLevel.SystemAdminReadonly,
670
+ },
671
+ {
672
+ moduleName: "solid-core",
673
+ key: "MICROSOFT_CLIENT_SECRET",
674
+ value: process.env.IAM_MICROSOFT_OAUTH_CLIENT_SECRET,
675
+ level: SettingLevel.SystemEnv,
676
+ },
677
+ {
678
+ moduleName: "solid-core",
679
+ key: "MICROSOFT_TENANT_ID",
680
+ value: process.env.IAM_MICROSOFT_OAUTH_TENANT_ID || "common",
681
+ level: SettingLevel.SystemAdminReadonly,
682
+ },
683
+ {
684
+ moduleName: "solid-core",
685
+ key: "MICROSOFT_CALLBACK_URL",
686
+ value: process.env.IAM_MICROSOFT_OAUTH_CALLBACK_URL,
687
+ level: SettingLevel.SystemAdminReadonly,
688
+ },
689
+ {
690
+ moduleName: "solid-core",
691
+ key: "MICROSOFT_REDIRECT_URL",
692
+ value: process.env.IAM_MICROSOFT_OAUTH_REDIRECT_URL,
693
+ level: SettingLevel.SystemAdminReadonly,
694
+ },
695
+
696
+ // iam-settings-provider.service.ts
697
+ {
698
+ moduleName: "solid-core",
699
+ key: "passwordLessAuth",
700
+ value: (process.env.IAM_PASSWORD_LESS_AUTH?.trim() ?? "false") === "true",
701
+ level: SettingLevel.SystemAdminEditable,
702
+ label: "Password Less Authentication",
703
+ group: "authentication-settings",
704
+ sortOrder: 20,
705
+ controlType: "boolean",
706
+ },
707
+ {
708
+ moduleName: "solid-core",
709
+ key: "passwordBasedAuth",
710
+ value: (process.env.IAM_PASSWORD_BASED_AUTH?.trim() ?? "true") === "true",
711
+ level: SettingLevel.SystemAdminEditable,
712
+ label: "Password Based Authentication",
713
+ group: "authentication-settings",
714
+ sortOrder: 10,
715
+ controlType: "boolean",
716
+ },
717
+ {
718
+ moduleName: "solid-core",
719
+ key: "passwordlessRegistrationValidateWhat",
720
+ value: (
721
+ process.env.IAM_PASSWORD_LESS_REGISTRATION_VALIDATE_WHAT ?? "email"
722
+ ).trim(),
723
+ level: SettingLevel.SystemAdminEditable,
724
+ label: "Registration Validation Type",
725
+ group: "authentication-settings",
726
+ sortOrder: 30,
727
+ controlType: "shortText",
728
+ },
729
+ {
730
+ moduleName: "solid-core",
731
+ key: "passwordlessLoginValidateWhat",
732
+ value: process.env.IAM_PASSWORD_LESS_LOGIN_VALIDATE_WHAT ?? "email",
733
+ level: SettingLevel.SystemAdminEditable,
734
+ label: "Login Validation Type",
735
+ group: "authentication-settings",
736
+ sortOrder: 40,
737
+ controlType: "shortText",
738
+ },
739
+ {
740
+ moduleName: "solid-core",
741
+ key: "allowPublicRegistration",
742
+ value: (process.env.IAM_ALLOW_PUBLIC_REGISTRATION ?? "true") === "true",
743
+ level: SettingLevel.SystemAdminEditable,
744
+ label: "Public Registration",
745
+ group: "authentication-settings",
746
+ sortOrder: 60,
747
+ controlType: "boolean",
748
+ },
749
+ {
750
+ moduleName: "solid-core",
751
+ key: "activateUserOnRegistration",
752
+ value:
753
+ (process.env.IAM_ACTIVATE_USER_ON_REGISTRATION ?? "true") === "true",
754
+ level: SettingLevel.SystemAdminEditable,
755
+ label: "Auto Activate User On Registration",
756
+ group: "authentication-settings",
757
+ sortOrder: 70,
758
+ controlType: "boolean",
759
+ },
760
+ {
761
+ moduleName: "solid-core",
762
+ key: "autoLoginUserOnRegistration",
763
+ value:
764
+ (process.env.IAM_AUTO_LOGIN_USER_ON_REGISTRATION ?? "false") === "true",
765
+ level: SettingLevel.SystemEnv,
766
+ },
767
+ {
768
+ moduleName: "solid-core",
769
+ key: "otpExpiry",
770
+ value: parseInt(process.env.IAM_OTP_EXPIRY ?? "10"),
771
+ level: SettingLevel.SystemEnv,
772
+ },
773
+ {
774
+ moduleName: "solid-core",
775
+ key: "forgotPasswordVerificationTokenExpiry",
776
+ value: parseInt(
777
+ process.env.IAM_FORGOT_PASSWORD_VERIFICATION_TOKEN_EXPIRY ?? "10",
778
+ ),
779
+ level: SettingLevel.SystemEnv,
780
+ },
781
+ {
782
+ moduleName: "solid-core",
783
+ key: "defaultRole",
784
+ value: process.env.IAM_DEFAULT_ROLE ?? "Public",
785
+ level: SettingLevel.SystemAdminEditable,
786
+ label: "Default Role",
787
+ group: "authentication-settings",
788
+ sortOrder: 75,
789
+ controlType: "shortText",
790
+ },
791
+ {
792
+ moduleName: "solid-core",
793
+ key: "dummyOtp",
794
+ value: process.env.IAM_OTP_DUMMY,
795
+ level: SettingLevel.SystemEnv,
796
+ },
797
+ {
798
+ moduleName: "solid-core",
799
+ key: "dummyOtpUsers",
800
+ value: process.env.IAM_OTP_DUMMY_USERS,
801
+ level: SettingLevel.SystemEnv,
802
+ },
803
+ {
804
+ moduleName: "solid-core",
805
+ key: "forgotPasswordSendVerificationTokenOn",
806
+ value:
807
+ process.env.IAM_FORGOT_PASSWORD_SEND_VERIFICATION_TOKEN_ON ?? "email",
808
+ level: SettingLevel.SystemEnv,
809
+ },
810
+ {
811
+ moduleName: "solid-core",
812
+ key: "maxFailedLoginAttempts",
813
+ value: parseInt(process.env.IAM_MAX_FAILED_LOGIN_ATTEMPTS ?? "0"),
814
+ level: SettingLevel.SystemAdminReadonly,
815
+ label: "Max Failed Login Attempts",
816
+ group: "authentication-settings",
817
+ sortOrder: 110,
818
+ controlType: "numeric",
819
+ },
820
+ {
821
+ moduleName: "solid-core",
822
+ key: "forceChangePasswordOnFirstLogin",
823
+ value: false,
824
+ level: SettingLevel.SystemAdminEditable,
825
+ label: "Force Change Password On First Login",
826
+ group: "authentication-settings",
827
+ sortOrder: 120,
828
+ controlType: "boolean",
829
+ },
830
+ {
831
+ moduleName: "solid-core",
832
+ key: "authenticationPasswordRegex",
833
+ value:
834
+ process.env.PASSWORD_REGEX ||
835
+ "^$|^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^\\da-zA-Z]).*$",
836
+ level: SettingLevel.SystemAdminEditable,
837
+ label: "Authentication Password Regex",
838
+ group: "authentication-settings",
839
+ sortOrder: 130,
840
+ controlType: "shortText",
841
+ },
842
+ {
843
+ moduleName: "solid-core",
844
+ key: "authenticationPasswordRegexErrorMessage",
845
+ value:
846
+ process.env.PASSWORD_REGEX_ERROR_MESSAGE ||
847
+ "Password must contain at least one uppercase, one lowercase, one number, and one special character.",
848
+ level: SettingLevel.SystemAdminEditable,
849
+ label: "Password Regex Error Message",
850
+ group: "authentication-settings",
851
+ sortOrder: 140,
852
+ controlType: "longText",
853
+ },
854
+ {
855
+ moduleName: "solid-core",
856
+ key: "authenticationPasswordComplexityDescription",
857
+ value:
858
+ process.env.PASSWORD_COMPLEXITY_DESC ||
859
+ "Password must contain at least one uppercase, one lowercase, one number, and one special character.",
860
+ level: SettingLevel.SystemAdminEditable,
861
+ label: "Password Complexity Description",
862
+ group: "authentication-settings",
863
+ sortOrder: 150,
864
+ controlType: "longText",
865
+ },
866
+ {
867
+ moduleName: "solid-core",
868
+ key: "iamAutoGeneratedPassword",
869
+ value: process.env.IAM_AUTOGENERATED_PASSWORD || true,
870
+ level: SettingLevel.SystemAdminEditable,
871
+ label: "Auto Generate Password",
872
+ group: "authentication-settings",
873
+ sortOrder: 160,
874
+ controlType: "boolean",
875
+ },
876
+ {
877
+ moduleName: "solid-core",
878
+ key: "passwordPepper",
879
+ value: process.env.IAM_PASSWORD_PEPPER || "",
880
+ level: SettingLevel.SystemEnv,
881
+ },
882
+ {
883
+ moduleName: "solid-core",
884
+ key: "showNameFieldsForRegistration",
885
+ value:
886
+ process.env.IAM_SHOW_NAME_FIELDS_FOR_REGISTRATION === "true"
887
+ ? true
888
+ : false,
889
+ level: SettingLevel.SystemAdminEditable,
890
+ label: "Show Name Fields For Registration",
891
+ group: "authentication-settings",
892
+ sortOrder: 170,
893
+ controlType: "boolean",
894
+ },
895
+ {
896
+ moduleName: "solid-core",
897
+ key: "sendWelcomeEmailOnSignup",
898
+ value:
899
+ (
900
+ process.env.IAM_SEND_WELCOME_EMAIL_ON_SIGNUP ?? "false"
901
+ ).toLowerCase() === "true",
902
+ level: SettingLevel.SystemEnv,
903
+ },
904
+ {
905
+ moduleName: "solid-core",
906
+ key: "sendWelcomeSmsOnSignup",
907
+ value:
908
+ (
909
+ process.env.IAM_SEND_WELCOME_SMS_ON_SIGNUP ?? "false"
910
+ ).toLowerCase() === "true",
911
+ level: SettingLevel.SystemEnv,
912
+ },
913
+ {
914
+ moduleName: "solid-core",
915
+ key: "frontendLoginPageUrl",
916
+ value: process.env.IAM_FRONTEND_APP_LOGIN_PAGE_URL,
917
+ level: SettingLevel.SystemAdminReadonly,
918
+ label: "Frontend Login Page URL",
919
+ group: "authentication-settings",
920
+ sortOrder: 180,
921
+ controlType: "shortText",
922
+ },
923
+ {
924
+ moduleName: "solid-core",
925
+ key: "frontendForgotPasswordPageUrl",
926
+ value: process.env.IAM_FRONTEND_APP_FORGOT_PASSWORD_PAGE_URL,
927
+ level: SettingLevel.SystemAdminReadonly,
928
+ label: "Frontend Forgot Password Page URL",
929
+ group: "authentication-settings",
930
+ sortOrder: 190,
931
+ controlType: "shortText",
932
+ },
933
+
934
+ // jwt-settings-provider.service.ts
935
+ {
936
+ moduleName: "solid-core",
937
+ key: "secret",
938
+ value: process.env.IAM_JWT_SECRET,
939
+ level: SettingLevel.SystemEnv,
940
+ },
941
+ {
942
+ moduleName: "solid-core",
943
+ key: "audience",
944
+ value: process.env.IAM_JWT_TOKEN_AUDIENCE,
945
+ level: SettingLevel.SystemAdminReadonly,
946
+ label: "JWT Audience",
947
+ group: "jwt-settings",
948
+ sortOrder: 10,
949
+ controlType: "shortText",
950
+ },
951
+ {
952
+ moduleName: "solid-core",
953
+ key: "issuer",
954
+ value: process.env.IAM_JWT_TOKEN_ISSUER,
955
+ level: SettingLevel.SystemAdminReadonly,
956
+ label: "JWT Issuer",
957
+ group: "jwt-settings",
958
+ sortOrder: 20,
959
+ controlType: "shortText",
960
+ },
961
+ {
962
+ moduleName: "solid-core",
963
+ key: "accessTokenTtl",
964
+ value: parseInt(
965
+ process.env.IAM_JWT_ACCESS_TOKEN_TTL ?? (isProd ? "1200" : "86400"),
966
+ 10,
967
+ ),
968
+ level: SettingLevel.SystemEnv,
969
+ },
970
+ {
971
+ moduleName: "solid-core",
972
+ key: "refreshTokenTtl",
973
+ value: parseInt(process.env.IAM_JWT_REFRESH_TOKEN_TTL ?? "604800", 10),
974
+ level: SettingLevel.SystemEnv,
975
+ },
976
+
977
+ // queues-settings-provider.service.ts
978
+ {
979
+ moduleName: "solid-core",
980
+ key: "queuesDefaultBroker",
981
+ value: process.env.QUEUES_DEFAULT_BROKER || "database",
982
+ level: SettingLevel.SystemAdminReadonly,
983
+ label: "Queues Default Broker",
984
+ group: "queue-settings",
985
+ sortOrder: 10,
986
+ controlType: "selectionStatic",
987
+ options: [
988
+ { label: "Database", value: "database" },
989
+ { label: "RabbitMQ", value: "rabbitmq" },
990
+ ],
991
+ },
992
+ {
993
+ moduleName: "solid-core",
994
+ key: "queuesServiceRole",
995
+ value: process.env.QUEUES_SERVICE_ROLE,
996
+ level: SettingLevel.SystemAdminReadonly,
997
+ label: "Queues Service Role",
998
+ group: "queue-settings",
999
+ sortOrder: 20,
1000
+ controlType: "shortText",
1001
+ },
1002
+ {
1003
+ moduleName: "solid-core",
1004
+ key: "queuesRabbitMqUrl",
1005
+ value: process.env.QUEUES_RABBIT_MQ_URL,
1006
+ level: SettingLevel.SystemEnv,
1007
+ },
1008
+ {
1009
+ moduleName: "solid-core",
1010
+ key: "solidCliRunning",
1011
+ value: process.env.SOLID_CLI_RUNNING || "false",
1012
+ level: SettingLevel.SystemEnv,
1013
+ },
1014
+
1015
+ // sms-settings-provider.service.ts
1016
+ {
1017
+ moduleName: "solid-core",
1018
+ key: "smsProvider",
1019
+ value: process.env.COMMON_SMS_PROVIDER,
1020
+ level: SettingLevel.SystemAdminReadonly,
1021
+ label: "SMS Provider",
1022
+ group: "sms-settings",
1023
+ sortOrder: 10,
1024
+ controlType: "shortText",
1025
+ },
1026
+ {
1027
+ moduleName: "solid-core",
1028
+ key: "smsTemplateSeederFiles",
1029
+ value: process.env.COMMON_SMS_TEMPLATE_SEEDER_FILES,
1030
+ level: SettingLevel.SystemAdminReadonly,
1031
+ label: "SMS Template Seeder Files",
1032
+ group: "sms-settings",
1033
+ sortOrder: 20,
1034
+ controlType: "longText",
1035
+ },
1036
+ {
1037
+ moduleName: "solid-core",
1038
+ key: "shouldQueueSms",
1039
+ value: (process.env.COMMON_SMS_SHOULD_QUEUE ?? "false") === "true",
1040
+ level: SettingLevel.SystemAdminReadonly,
1041
+ label: "Queue SMS",
1042
+ group: "sms-settings",
1043
+ sortOrder: 30,
1044
+ controlType: "boolean",
1045
+ },
1046
+ {
1047
+ moduleName: "solid-core",
1048
+ key: "msg91SmsUrl",
1049
+ value: process.env.COMMON_MSG91_SMS_URL,
1050
+ level: SettingLevel.SystemAdminReadonly,
1051
+ label: "MSG91 SMS URL",
1052
+ group: "sms-settings",
1053
+ sortOrder: 40,
1054
+ controlType: "shortText",
1055
+ },
1056
+ {
1057
+ moduleName: "solid-core",
1058
+ key: "msg91SmsApiKey",
1059
+ value: process.env.COMMON_MSG91_SMS_API_KEY,
1060
+ level: SettingLevel.SystemEnv,
1061
+ },
1062
+ {
1063
+ moduleName: "solid-core",
1064
+ key: "twilioAccountSid",
1065
+ value: process.env.COMMON_TWILIO_ACCOUNT_SID,
1066
+ level: SettingLevel.SystemAdminReadonly,
1067
+ label: "Twilio Account SID",
1068
+ group: "sms-settings",
1069
+ sortOrder: 50,
1070
+ controlType: "shortText",
1071
+ },
1072
+ {
1073
+ moduleName: "solid-core",
1074
+ key: "twilioAuthToken",
1075
+ value: process.env.COMMON_TWILIO_AUTH_TOKEN,
1076
+ level: SettingLevel.SystemEnv,
1077
+ },
1078
+ {
1079
+ moduleName: "solid-core",
1080
+ key: "twilioNumber",
1081
+ value: process.env.COMMON_TWILIO_NUMBER,
1082
+ level: SettingLevel.SystemAdminReadonly,
1083
+ label: "Twilio Number",
1084
+ group: "sms-settings",
1085
+ sortOrder: 60,
1086
+ controlType: "shortText",
1087
+ },
1088
+
1089
+ // tiny-url-settings-provider.service.ts
1090
+ {
1091
+ moduleName: "solid-core",
1092
+ key: "tinyUrlApiUrl",
1093
+ value: process.env.COMMON_SHORT_URL_API_URL,
1094
+ level: SettingLevel.SystemAdminReadonly,
1095
+ label: "Tiny URL API URL",
1096
+ group: "short-url-settings",
1097
+ sortOrder: 10,
1098
+ controlType: "shortText",
1099
+ },
1100
+ {
1101
+ moduleName: "solid-core",
1102
+ key: "tinyUrlApiKey",
1103
+ value: process.env.COMMON_SHORT_URL_API_KEY,
1104
+ level: SettingLevel.SystemEnv,
1105
+ },
1106
+ {
1107
+ moduleName: "solid-core",
1108
+ key: "tinyUrlDomain",
1109
+ value: process.env.COMMON_SHORT_URL_DOMAIN,
1110
+ level: SettingLevel.SystemAdminReadonly,
1111
+ label: "Tiny URL Domain",
1112
+ group: "short-url-settings",
1113
+ sortOrder: 20,
1114
+ controlType: "shortText",
1115
+ },
1116
+ {
1117
+ moduleName: "solid-core",
1118
+ key: "tinyUrlEnabled",
1119
+ value: (process.env.COMMON_SHORT_URL_ENABLED ?? "false") === "true",
1120
+ level: SettingLevel.SystemAdminReadonly,
1121
+ label: "Tiny URL Enabled",
1122
+ group: "short-url-settings",
1123
+ sortOrder: 30,
1124
+ controlType: "boolean",
1125
+ },
1126
+
1127
+ // whatsapp-settings-provider.service.ts
1128
+ {
1129
+ moduleName: "solid-core",
1130
+ key: "whatsappProvider",
1131
+ value: process.env.COMMON_WHATSAPP_PROVIDER,
1132
+ level: SettingLevel.SystemAdminReadonly,
1133
+ label: "WhatsApp Provider",
1134
+ group: "whatsapp-settings",
1135
+ sortOrder: 10,
1136
+ controlType: "shortText",
1137
+ },
1138
+ {
1139
+ moduleName: "solid-core",
1140
+ key: "msg91WhatsappUrl",
1141
+ value: process.env.COMMON_WHATSAPP_API_URL,
1142
+ level: SettingLevel.SystemAdminReadonly,
1143
+ label: "MSG91 WhatsApp URL",
1144
+ group: "whatsapp-settings",
1145
+ sortOrder: 20,
1146
+ controlType: "shortText",
1147
+ },
1148
+ {
1149
+ moduleName: "solid-core",
1150
+ key: "msg91WhatsappApiKey",
1151
+ value: process.env.COMMON_WHATSAPP_API_KEY,
1152
+ level: SettingLevel.SystemEnv,
1153
+ },
1154
+ {
1155
+ moduleName: "solid-core",
1156
+ key: "msg91WhatsappIntegratedNumber",
1157
+ value: process.env.COMMON_WHATSAPP_INTEGRATED_NUMBER,
1158
+ level: SettingLevel.SystemAdminReadonly,
1159
+ label: "MSG91 WhatsApp Integrated Number",
1160
+ group: "whatsapp-settings",
1161
+ sortOrder: 30,
1162
+ controlType: "shortText",
1163
+ },
1164
+ ] as const satisfies SettingDefinition[];
1165
+
1166
+ // 2.
1167
+ export type SolidCoreSetting = ReturnType<
1168
+ typeof getSolidCoreSettings
1169
+ >[number]["key"];
1170
+
1171
+ // 3.
159
1172
  @SettingsProvider()
160
1173
  @Injectable()
161
1174
  export class SolidCoreDefaultSettingsProvider implements ISettingsProvider {
162
-
163
1175
  getSettings() {
164
1176
  const isProd = (process.env.ENV as Environment) === Environment.Production;
165
1177
  return getSolidCoreSettings(isProd);