@solidstarters/solid-core 1.2.191 → 1.2.192

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 (531) hide show
  1. package/dist/config/iam.config.d.ts +6 -4
  2. package/dist/config/iam.config.d.ts.map +1 -1
  3. package/dist/config/iam.config.js +3 -2
  4. package/dist/config/iam.config.js.map +1 -1
  5. package/dist/constants/error-messages.d.ts +2 -0
  6. package/dist/constants/error-messages.d.ts.map +1 -1
  7. package/dist/constants/error-messages.js +2 -0
  8. package/dist/constants/error-messages.js.map +1 -1
  9. package/dist/controllers/authentication.controller.d.ts +1 -1
  10. package/dist/controllers/authentication.controller.d.ts.map +1 -1
  11. package/dist/controllers/authentication.controller.js +4 -3
  12. package/dist/controllers/authentication.controller.js.map +1 -1
  13. package/dist/controllers/email-template.controller.d.ts.map +1 -1
  14. package/dist/controllers/email-template.controller.js +8 -8
  15. package/dist/controllers/email-template.controller.js.map +1 -1
  16. package/dist/controllers/export-template.controller.d.ts +2 -1
  17. package/dist/controllers/export-template.controller.d.ts.map +1 -1
  18. package/dist/controllers/export-template.controller.js +5 -3
  19. package/dist/controllers/export-template.controller.js.map +1 -1
  20. package/dist/controllers/import-transaction.controller.d.ts +2 -1
  21. package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
  22. package/dist/controllers/import-transaction.controller.js +6 -3
  23. package/dist/controllers/import-transaction.controller.js.map +1 -1
  24. package/dist/controllers/sms-template.controller.d.ts.map +1 -1
  25. package/dist/controllers/sms-template.controller.js +7 -7
  26. package/dist/controllers/sms-template.controller.js.map +1 -1
  27. package/dist/decorators/active-user.decorator.d.ts +1 -1
  28. package/dist/decorators/security-rule-config-provider.decorator.d.ts +3 -0
  29. package/dist/decorators/security-rule-config-provider.decorator.d.ts.map +1 -0
  30. package/dist/decorators/security-rule-config-provider.decorator.js +11 -0
  31. package/dist/decorators/security-rule-config-provider.decorator.js.map +1 -0
  32. package/dist/decorators/solid-password.decorator.d.ts +5 -1
  33. package/dist/decorators/solid-password.decorator.d.ts.map +1 -1
  34. package/dist/decorators/solid-password.decorator.js +18 -6
  35. package/dist/decorators/solid-password.decorator.js.map +1 -1
  36. package/dist/dtos/change-password.dto.js +1 -1
  37. package/dist/dtos/change-password.dto.js.map +1 -1
  38. package/dist/dtos/confirm-forgot-password.dto.js +1 -1
  39. package/dist/dtos/confirm-forgot-password.dto.js.map +1 -1
  40. package/dist/dtos/create-saved-filters.dto.d.ts +1 -0
  41. package/dist/dtos/create-saved-filters.dto.d.ts.map +1 -1
  42. package/dist/dtos/create-saved-filters.dto.js +7 -1
  43. package/dist/dtos/create-saved-filters.dto.js.map +1 -1
  44. package/dist/dtos/create-security-rule.dto.d.ts +1 -0
  45. package/dist/dtos/create-security-rule.dto.d.ts.map +1 -1
  46. package/dist/dtos/create-security-rule.dto.js +7 -1
  47. package/dist/dtos/create-security-rule.dto.js.map +1 -1
  48. package/dist/dtos/update-saved-filters.dto.d.ts +1 -0
  49. package/dist/dtos/update-saved-filters.dto.d.ts.map +1 -1
  50. package/dist/dtos/update-saved-filters.dto.js +7 -1
  51. package/dist/dtos/update-saved-filters.dto.js.map +1 -1
  52. package/dist/dtos/update-security-rule.dto.d.ts +1 -0
  53. package/dist/dtos/update-security-rule.dto.d.ts.map +1 -1
  54. package/dist/dtos/update-security-rule.dto.js +7 -1
  55. package/dist/dtos/update-security-rule.dto.js.map +1 -1
  56. package/dist/entities/field-metadata.entity.d.ts.map +1 -1
  57. package/dist/entities/field-metadata.entity.js +2 -1
  58. package/dist/entities/field-metadata.entity.js.map +1 -1
  59. package/dist/entities/saved-filters.entity.d.ts +1 -0
  60. package/dist/entities/saved-filters.entity.d.ts.map +1 -1
  61. package/dist/entities/saved-filters.entity.js +6 -2
  62. package/dist/entities/saved-filters.entity.js.map +1 -1
  63. package/dist/entities/security-rule.entity.d.ts +1 -0
  64. package/dist/entities/security-rule.entity.d.ts.map +1 -1
  65. package/dist/entities/security-rule.entity.js +5 -1
  66. package/dist/entities/security-rule.entity.js.map +1 -1
  67. package/dist/helpers/model-metadata-helper.service.d.ts +2 -3
  68. package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
  69. package/dist/helpers/model-metadata-helper.service.js +2 -8
  70. package/dist/helpers/model-metadata-helper.service.js.map +1 -1
  71. package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
  72. package/dist/helpers/module-metadata-helper.service.js +9 -0
  73. package/dist/helpers/module-metadata-helper.service.js.map +1 -1
  74. package/dist/helpers/solid-registry.d.ts +5 -1
  75. package/dist/helpers/solid-registry.d.ts.map +1 -1
  76. package/dist/helpers/solid-registry.js +16 -0
  77. package/dist/helpers/solid-registry.js.map +1 -1
  78. package/dist/helpers/user-helper.d.ts +2 -0
  79. package/dist/helpers/user-helper.d.ts.map +1 -0
  80. package/dist/helpers/user-helper.js +41 -0
  81. package/dist/helpers/user-helper.js.map +1 -0
  82. package/dist/index.d.ts +0 -1
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +0 -1
  85. package/dist/index.js.map +1 -1
  86. package/dist/interfaces.d.ts +6 -0
  87. package/dist/interfaces.d.ts.map +1 -1
  88. package/dist/interfaces.js.map +1 -1
  89. package/dist/jobs/trigger-mcp-client-subscriber.service.d.ts +2 -2
  90. package/dist/jobs/trigger-mcp-client-subscriber.service.d.ts.map +1 -1
  91. package/dist/jobs/trigger-mcp-client-subscriber.service.js +2 -2
  92. package/dist/jobs/trigger-mcp-client-subscriber.service.js.map +1 -1
  93. package/dist/jobs/twilio-sms-subscriber.service.d.ts +2 -2
  94. package/dist/jobs/twilio-sms-subscriber.service.d.ts.map +1 -1
  95. package/dist/jobs/twilio-sms-subscriber.service.js +2 -2
  96. package/dist/jobs/twilio-sms-subscriber.service.js.map +1 -1
  97. package/dist/repository/action-metadata.repository.d.ts +12 -0
  98. package/dist/repository/action-metadata.repository.d.ts.map +1 -0
  99. package/dist/repository/action-metadata.repository.js +34 -0
  100. package/dist/repository/action-metadata.repository.js.map +1 -0
  101. package/dist/repository/ai-interaction.repository.d.ts +12 -0
  102. package/dist/repository/ai-interaction.repository.d.ts.map +1 -0
  103. package/dist/repository/ai-interaction.repository.js +34 -0
  104. package/dist/repository/ai-interaction.repository.js.map +1 -0
  105. package/dist/repository/chatter-message-details.repository.d.ts +1 -1
  106. package/dist/repository/chatter-message-details.repository.d.ts.map +1 -1
  107. package/dist/repository/chatter-message-details.repository.js +2 -2
  108. package/dist/repository/chatter-message-details.repository.js.map +1 -1
  109. package/dist/repository/chatter-message.repository.d.ts +1 -1
  110. package/dist/repository/chatter-message.repository.d.ts.map +1 -1
  111. package/dist/repository/chatter-message.repository.js +2 -2
  112. package/dist/repository/chatter-message.repository.js.map +1 -1
  113. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts +12 -0
  114. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts.map +1 -0
  115. package/dist/repository/dashboard-question-sql-dataset-config.repository.js +34 -0
  116. package/dist/repository/dashboard-question-sql-dataset-config.repository.js.map +1 -0
  117. package/dist/repository/dashboard-question.repository.d.ts +12 -0
  118. package/dist/repository/dashboard-question.repository.d.ts.map +1 -0
  119. package/dist/repository/dashboard-question.repository.js +34 -0
  120. package/dist/repository/dashboard-question.repository.js.map +1 -0
  121. package/dist/repository/dashboard-variable.repository.d.ts +12 -0
  122. package/dist/repository/dashboard-variable.repository.d.ts.map +1 -0
  123. package/dist/repository/dashboard-variable.repository.js +34 -0
  124. package/dist/repository/dashboard-variable.repository.js.map +1 -0
  125. package/dist/repository/dashboard.repository.d.ts +9 -5
  126. package/dist/repository/dashboard.repository.d.ts.map +1 -1
  127. package/dist/repository/dashboard.repository.js +11 -5
  128. package/dist/repository/dashboard.repository.js.map +1 -1
  129. package/dist/repository/email-template.repository.d.ts +12 -0
  130. package/dist/repository/email-template.repository.d.ts.map +1 -0
  131. package/dist/repository/email-template.repository.js +34 -0
  132. package/dist/repository/email-template.repository.js.map +1 -0
  133. package/dist/repository/export-template.repository.d.ts +12 -0
  134. package/dist/repository/export-template.repository.d.ts.map +1 -0
  135. package/dist/repository/export-template.repository.js +34 -0
  136. package/dist/repository/export-template.repository.js.map +1 -0
  137. package/dist/repository/export-transaction.repository.d.ts +12 -0
  138. package/dist/repository/export-transaction.repository.d.ts.map +1 -0
  139. package/dist/repository/export-transaction.repository.js +34 -0
  140. package/dist/repository/export-transaction.repository.js.map +1 -0
  141. package/dist/repository/field-metadata.repository.d.ts +4 -3
  142. package/dist/repository/field-metadata.repository.d.ts.map +1 -1
  143. package/dist/repository/field-metadata.repository.js +5 -5
  144. package/dist/repository/field-metadata.repository.js.map +1 -1
  145. package/dist/repository/import-transaction-error-log.repository.d.ts +12 -0
  146. package/dist/repository/import-transaction-error-log.repository.d.ts.map +1 -0
  147. package/dist/repository/import-transaction-error-log.repository.js +34 -0
  148. package/dist/repository/import-transaction-error-log.repository.js.map +1 -0
  149. package/dist/repository/import-transaction.repository.d.ts +12 -0
  150. package/dist/repository/import-transaction.repository.d.ts.map +1 -0
  151. package/dist/repository/import-transaction.repository.js +34 -0
  152. package/dist/repository/import-transaction.repository.js.map +1 -0
  153. package/dist/repository/list-of-values.repository.d.ts +12 -0
  154. package/dist/repository/list-of-values.repository.d.ts.map +1 -0
  155. package/dist/repository/list-of-values.repository.js +34 -0
  156. package/dist/repository/list-of-values.repository.js.map +1 -0
  157. package/dist/repository/locale.repository.d.ts +12 -0
  158. package/dist/repository/locale.repository.d.ts.map +1 -0
  159. package/dist/repository/locale.repository.js +34 -0
  160. package/dist/repository/locale.repository.js.map +1 -0
  161. package/dist/repository/media-storage-provider-metadata.repository.d.ts +8 -0
  162. package/dist/repository/media-storage-provider-metadata.repository.d.ts.map +1 -0
  163. package/dist/repository/media-storage-provider-metadata.repository.js +28 -0
  164. package/dist/repository/media-storage-provider-metadata.repository.js.map +1 -0
  165. package/dist/repository/media.repository.d.ts +13 -8
  166. package/dist/repository/media.repository.d.ts.map +1 -1
  167. package/dist/repository/media.repository.js +18 -18
  168. package/dist/repository/media.repository.js.map +1 -1
  169. package/dist/repository/menu-item-metadata.repository.d.ts +12 -0
  170. package/dist/repository/menu-item-metadata.repository.d.ts.map +1 -0
  171. package/dist/repository/menu-item-metadata.repository.js +34 -0
  172. package/dist/repository/menu-item-metadata.repository.js.map +1 -0
  173. package/dist/repository/model-metadata.repository.d.ts +8 -0
  174. package/dist/repository/model-metadata.repository.d.ts.map +1 -0
  175. package/dist/repository/model-metadata.repository.js +28 -0
  176. package/dist/repository/model-metadata.repository.js.map +1 -0
  177. package/dist/repository/module-metadata.repository.d.ts +8 -0
  178. package/dist/repository/module-metadata.repository.d.ts.map +1 -0
  179. package/dist/repository/module-metadata.repository.js +28 -0
  180. package/dist/repository/module-metadata.repository.js.map +1 -0
  181. package/dist/repository/mq-message-queue.repository.d.ts +12 -0
  182. package/dist/repository/mq-message-queue.repository.d.ts.map +1 -0
  183. package/dist/repository/mq-message-queue.repository.js +34 -0
  184. package/dist/repository/mq-message-queue.repository.js.map +1 -0
  185. package/dist/repository/mq-message.repository.d.ts +12 -0
  186. package/dist/repository/mq-message.repository.d.ts.map +1 -0
  187. package/dist/repository/mq-message.repository.js +34 -0
  188. package/dist/repository/mq-message.repository.js.map +1 -0
  189. package/dist/repository/permission-metadata.repository.d.ts +12 -0
  190. package/dist/repository/permission-metadata.repository.d.ts.map +1 -0
  191. package/dist/repository/permission-metadata.repository.js +34 -0
  192. package/dist/repository/permission-metadata.repository.js.map +1 -0
  193. package/dist/repository/role-metadata.repository.d.ts +12 -0
  194. package/dist/repository/role-metadata.repository.d.ts.map +1 -0
  195. package/dist/repository/role-metadata.repository.js +34 -0
  196. package/dist/repository/role-metadata.repository.js.map +1 -0
  197. package/dist/repository/saved-filters.repository.d.ts +12 -0
  198. package/dist/repository/saved-filters.repository.d.ts.map +1 -0
  199. package/dist/repository/saved-filters.repository.js +62 -0
  200. package/dist/repository/saved-filters.repository.js.map +1 -0
  201. package/dist/repository/scheduled-job.repository.d.ts +9 -9
  202. package/dist/repository/scheduled-job.repository.d.ts.map +1 -1
  203. package/dist/repository/scheduled-job.repository.js +11 -12
  204. package/dist/repository/scheduled-job.repository.js.map +1 -1
  205. package/dist/repository/security-rule.repository.d.ts +7 -7
  206. package/dist/repository/security-rule.repository.d.ts.map +1 -1
  207. package/dist/repository/security-rule.repository.js +28 -17
  208. package/dist/repository/security-rule.repository.js.map +1 -1
  209. package/dist/repository/setting.repository.d.ts +12 -0
  210. package/dist/repository/setting.repository.d.ts.map +1 -0
  211. package/dist/repository/setting.repository.js +34 -0
  212. package/dist/repository/setting.repository.js.map +1 -0
  213. package/dist/repository/sms-template.repository.d.ts +12 -0
  214. package/dist/repository/sms-template.repository.d.ts.map +1 -0
  215. package/dist/repository/sms-template.repository.js +34 -0
  216. package/dist/repository/sms-template.repository.js.map +1 -0
  217. package/dist/repository/solid-base.repository.d.ts +4 -3
  218. package/dist/repository/solid-base.repository.d.ts.map +1 -1
  219. package/dist/repository/solid-base.repository.js +12 -5
  220. package/dist/repository/solid-base.repository.js.map +1 -1
  221. package/dist/repository/user-activity-history.repository.d.ts +12 -0
  222. package/dist/repository/user-activity-history.repository.d.ts.map +1 -0
  223. package/dist/repository/user-activity-history.repository.js +34 -0
  224. package/dist/repository/user-activity-history.repository.js.map +1 -0
  225. package/dist/repository/user-view-metadata.repository.d.ts +12 -0
  226. package/dist/repository/user-view-metadata.repository.d.ts.map +1 -0
  227. package/dist/repository/user-view-metadata.repository.js +34 -0
  228. package/dist/repository/user-view-metadata.repository.js.map +1 -0
  229. package/dist/repository/view-metadata.repository.d.ts +9 -5
  230. package/dist/repository/view-metadata.repository.d.ts.map +1 -1
  231. package/dist/repository/view-metadata.repository.js +11 -5
  232. package/dist/repository/view-metadata.repository.js.map +1 -1
  233. package/dist/seeders/module-metadata-seeder.service.d.ts +9 -5
  234. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  235. package/dist/seeders/module-metadata-seeder.service.js +32 -13
  236. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  237. package/dist/seeders/permission-metadata-seeder.service.d.ts +2 -3
  238. package/dist/seeders/permission-metadata-seeder.service.d.ts.map +1 -1
  239. package/dist/seeders/permission-metadata-seeder.service.js +2 -5
  240. package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
  241. package/dist/seeders/seed-data/solid-core-metadata.json +109 -62
  242. package/dist/seeders/system-fields-seeder.service.d.ts +2 -3
  243. package/dist/seeders/system-fields-seeder.service.d.ts.map +1 -1
  244. package/dist/seeders/system-fields-seeder.service.js +4 -8
  245. package/dist/seeders/system-fields-seeder.service.js.map +1 -1
  246. package/dist/services/action-metadata.service.d.ts +7 -6
  247. package/dist/services/action-metadata.service.d.ts.map +1 -1
  248. package/dist/services/action-metadata.service.js +7 -8
  249. package/dist/services/action-metadata.service.js.map +1 -1
  250. package/dist/services/ai-interaction.service.d.ts +10 -9
  251. package/dist/services/ai-interaction.service.d.ts.map +1 -1
  252. package/dist/services/ai-interaction.service.js +9 -10
  253. package/dist/services/ai-interaction.service.js.map +1 -1
  254. package/dist/services/authentication.service.d.ts +3 -4
  255. package/dist/services/authentication.service.d.ts.map +1 -1
  256. package/dist/services/authentication.service.js +11 -11
  257. package/dist/services/authentication.service.js.map +1 -1
  258. package/dist/services/chatter-message.service.d.ts +12 -12
  259. package/dist/services/chatter-message.service.d.ts.map +1 -1
  260. package/dist/services/chatter-message.service.js +16 -18
  261. package/dist/services/chatter-message.service.js.map +1 -1
  262. package/dist/services/crud.service.d.ts +5 -5
  263. package/dist/services/crud.service.d.ts.map +1 -1
  264. package/dist/services/crud.service.js +9 -9
  265. package/dist/services/crud.service.js.map +1 -1
  266. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +4 -3
  267. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +1 -1
  268. package/dist/services/dashboard-question-sql-dataset-config.service.js +2 -3
  269. package/dist/services/dashboard-question-sql-dataset-config.service.js.map +1 -1
  270. package/dist/services/dashboard-question.service.d.ts +4 -3
  271. package/dist/services/dashboard-question.service.d.ts.map +1 -1
  272. package/dist/services/dashboard-question.service.js +2 -2
  273. package/dist/services/dashboard-question.service.js.map +1 -1
  274. package/dist/services/dashboard-variable.service.d.ts +4 -3
  275. package/dist/services/dashboard-variable.service.d.ts.map +1 -1
  276. package/dist/services/dashboard-variable.service.js +2 -3
  277. package/dist/services/dashboard-variable.service.js.map +1 -1
  278. package/dist/services/email-template.service.d.ts +4 -3
  279. package/dist/services/email-template.service.d.ts.map +1 -1
  280. package/dist/services/email-template.service.js +2 -3
  281. package/dist/services/email-template.service.js.map +1 -1
  282. package/dist/services/export-template.service.d.ts +6 -4
  283. package/dist/services/export-template.service.d.ts.map +1 -1
  284. package/dist/services/export-template.service.js +14 -4
  285. package/dist/services/export-template.service.js.map +1 -1
  286. package/dist/services/export-transaction.service.d.ts +8 -7
  287. package/dist/services/export-transaction.service.d.ts.map +1 -1
  288. package/dist/services/export-transaction.service.js +11 -14
  289. package/dist/services/export-transaction.service.js.map +1 -1
  290. package/dist/services/field-metadata.service.js +1 -1
  291. package/dist/services/field-metadata.service.js.map +1 -1
  292. package/dist/services/import-transaction-error-log.service.d.ts +4 -3
  293. package/dist/services/import-transaction-error-log.service.d.ts.map +1 -1
  294. package/dist/services/import-transaction-error-log.service.js +2 -3
  295. package/dist/services/import-transaction-error-log.service.js.map +1 -1
  296. package/dist/services/import-transaction.service.d.ts +8 -4
  297. package/dist/services/import-transaction.service.d.ts.map +1 -1
  298. package/dist/services/import-transaction.service.js +43 -16
  299. package/dist/services/import-transaction.service.js.map +1 -1
  300. package/dist/services/list-of-values.service.d.ts +19 -6
  301. package/dist/services/list-of-values.service.d.ts.map +1 -1
  302. package/dist/services/list-of-values.service.js +164 -9
  303. package/dist/services/list-of-values.service.js.map +1 -1
  304. package/dist/services/locale.service.d.ts +9 -10
  305. package/dist/services/locale.service.d.ts.map +1 -1
  306. package/dist/services/locale.service.js +8 -14
  307. package/dist/services/locale.service.js.map +1 -1
  308. package/dist/services/mail/smtp-email.service.d.ts.map +1 -1
  309. package/dist/services/mail/smtp-email.service.js +6 -1
  310. package/dist/services/mail/smtp-email.service.js.map +1 -1
  311. package/dist/services/media-storage-provider-metadata.service.d.ts +4 -4
  312. package/dist/services/media-storage-provider-metadata.service.d.ts.map +1 -1
  313. package/dist/services/media-storage-provider-metadata.service.js +5 -11
  314. package/dist/services/media-storage-provider-metadata.service.js.map +1 -1
  315. package/dist/services/media.service.d.ts +7 -6
  316. package/dist/services/media.service.d.ts.map +1 -1
  317. package/dist/services/media.service.js +8 -12
  318. package/dist/services/media.service.js.map +1 -1
  319. package/dist/services/menu-item-metadata.service.d.ts +4 -3
  320. package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
  321. package/dist/services/menu-item-metadata.service.js +4 -5
  322. package/dist/services/menu-item-metadata.service.js.map +1 -1
  323. package/dist/services/model-metadata.service.d.ts +3 -2
  324. package/dist/services/model-metadata.service.d.ts.map +1 -1
  325. package/dist/services/model-metadata.service.js +45 -43
  326. package/dist/services/model-metadata.service.js.map +1 -1
  327. package/dist/services/module-metadata.service.d.ts +3 -2
  328. package/dist/services/module-metadata.service.d.ts.map +1 -1
  329. package/dist/services/module-metadata.service.js +3 -3
  330. package/dist/services/module-metadata.service.js.map +1 -1
  331. package/dist/services/mq-message-queue.service.d.ts +4 -3
  332. package/dist/services/mq-message-queue.service.d.ts.map +1 -1
  333. package/dist/services/mq-message-queue.service.js +2 -3
  334. package/dist/services/mq-message-queue.service.js.map +1 -1
  335. package/dist/services/mq-message.service.d.ts +4 -3
  336. package/dist/services/mq-message.service.d.ts.map +1 -1
  337. package/dist/services/mq-message.service.js +2 -2
  338. package/dist/services/mq-message.service.js.map +1 -1
  339. package/dist/services/permission-metadata.service.d.ts +4 -3
  340. package/dist/services/permission-metadata.service.d.ts.map +1 -1
  341. package/dist/services/permission-metadata.service.js +2 -3
  342. package/dist/services/permission-metadata.service.js.map +1 -1
  343. package/dist/services/queues/rabbitmq-publisher.service.d.ts +8 -3
  344. package/dist/services/queues/rabbitmq-publisher.service.d.ts.map +1 -1
  345. package/dist/services/queues/rabbitmq-publisher.service.js +79 -18
  346. package/dist/services/queues/rabbitmq-publisher.service.js.map +1 -1
  347. package/dist/services/queues/rabbitmq-subscriber.service.d.ts.map +1 -1
  348. package/dist/services/queues/rabbitmq-subscriber.service.js +9 -3
  349. package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
  350. package/dist/services/role-metadata.service.d.ts +10 -9
  351. package/dist/services/role-metadata.service.d.ts.map +1 -1
  352. package/dist/services/role-metadata.service.js +9 -11
  353. package/dist/services/role-metadata.service.js.map +1 -1
  354. package/dist/services/saved-filters.service.d.ts +7 -6
  355. package/dist/services/saved-filters.service.d.ts.map +1 -1
  356. package/dist/services/saved-filters.service.js +6 -7
  357. package/dist/services/saved-filters.service.js.map +1 -1
  358. package/dist/services/scheduled-job.service.d.ts +4 -3
  359. package/dist/services/scheduled-job.service.d.ts.map +1 -1
  360. package/dist/services/scheduled-job.service.js +2 -3
  361. package/dist/services/scheduled-job.service.js.map +1 -1
  362. package/dist/services/scheduled-jobs/scheduler.service.d.ts +3 -4
  363. package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -1
  364. package/dist/services/scheduled-jobs/scheduler.service.js +6 -11
  365. package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
  366. package/dist/services/security-rule.service.d.ts +4 -3
  367. package/dist/services/security-rule.service.d.ts.map +1 -1
  368. package/dist/services/security-rule.service.js +3 -3
  369. package/dist/services/security-rule.service.js.map +1 -1
  370. package/dist/services/setting.service.d.ts +3 -2
  371. package/dist/services/setting.service.d.ts.map +1 -1
  372. package/dist/services/setting.service.js +25 -9
  373. package/dist/services/setting.service.js.map +1 -1
  374. package/dist/services/sms-template.service.d.ts +4 -3
  375. package/dist/services/sms-template.service.d.ts.map +1 -1
  376. package/dist/services/sms-template.service.js +2 -3
  377. package/dist/services/sms-template.service.js.map +1 -1
  378. package/dist/services/solid-introspect.service.d.ts +1 -0
  379. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  380. package/dist/services/solid-introspect.service.js +14 -0
  381. package/dist/services/solid-introspect.service.js.map +1 -1
  382. package/dist/services/user-activity-history.service.d.ts +4 -3
  383. package/dist/services/user-activity-history.service.d.ts.map +1 -1
  384. package/dist/services/user-activity-history.service.js +2 -3
  385. package/dist/services/user-activity-history.service.js.map +1 -1
  386. package/dist/services/user-view-metadata.service.d.ts +4 -3
  387. package/dist/services/user-view-metadata.service.d.ts.map +1 -1
  388. package/dist/services/user-view-metadata.service.js +2 -3
  389. package/dist/services/user-view-metadata.service.js.map +1 -1
  390. package/dist/services/user.service.d.ts +2 -2
  391. package/dist/services/user.service.d.ts.map +1 -1
  392. package/dist/services/user.service.js +3 -3
  393. package/dist/services/user.service.js.map +1 -1
  394. package/dist/services/view-metadata.service.d.ts +5 -6
  395. package/dist/services/view-metadata.service.d.ts.map +1 -1
  396. package/dist/services/view-metadata.service.js +5 -10
  397. package/dist/services/view-metadata.service.js.map +1 -1
  398. package/dist/solid-core.module.d.ts.map +1 -1
  399. package/dist/solid-core.module.js +164 -121
  400. package/dist/solid-core.module.js.map +1 -1
  401. package/dist/subscribers/audit.subscriber.d.ts +4 -4
  402. package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
  403. package/dist/subscribers/audit.subscriber.js +4 -5
  404. package/dist/subscribers/audit.subscriber.js.map +1 -1
  405. package/dist/subscribers/{list-of-values-metadata.subscriber.d.ts → list-of-values.subscriber.d.ts} +5 -5
  406. package/dist/subscribers/list-of-values.subscriber.d.ts.map +1 -0
  407. package/dist/subscribers/{list-of-values-metadata.subscriber.js → list-of-values.subscriber.js} +13 -13
  408. package/dist/subscribers/list-of-values.subscriber.js.map +1 -0
  409. package/dist/tsconfig.tsbuildinfo +1 -1
  410. package/package.json +5 -5
  411. package/rebuild.sh +2 -3
  412. package/src/config/iam.config.ts +3 -2
  413. package/src/constants/error-messages.ts +3 -0
  414. package/src/controllers/authentication.controller.ts +2 -2
  415. package/src/controllers/email-template.controller.ts +57 -64
  416. package/src/controllers/export-template.controller.ts +4 -2
  417. package/src/controllers/import-transaction.controller.ts +5 -2
  418. package/src/controllers/sms-template.controller.ts +55 -55
  419. package/src/decorators/security-rule-config-provider.decorator.ts +7 -0
  420. package/src/decorators/solid-password.decorator.ts +25 -17
  421. package/src/dtos/change-password.dto.ts +1 -1
  422. package/src/dtos/confirm-forgot-password.dto.ts +1 -1
  423. package/src/dtos/create-saved-filters.dto.ts +4 -0
  424. package/src/dtos/create-security-rule.dto.ts +5 -0
  425. package/src/dtos/update-saved-filters.dto.ts +4 -0
  426. package/src/dtos/update-security-rule.dto.ts +6 -1
  427. package/src/entities/field-metadata.entity.ts +2 -1
  428. package/src/entities/saved-filters.entity.ts +3 -1
  429. package/src/entities/security-rule.entity.ts +2 -0
  430. package/src/helpers/model-metadata-helper.service.ts +4 -5
  431. package/src/helpers/module-metadata-helper.service.ts +9 -0
  432. package/src/helpers/solid-registry.ts +21 -2
  433. package/src/helpers/user-helper.ts +37 -0
  434. package/src/index.ts +0 -1
  435. package/src/interfaces.ts +7 -0
  436. package/src/jobs/trigger-mcp-client-subscriber.service.ts +2 -2
  437. package/src/jobs/twilio-sms-subscriber.service.ts +2 -2
  438. package/src/repository/action-metadata.repository.ts +17 -0
  439. package/src/repository/ai-interaction.repository.ts +17 -0
  440. package/src/repository/chatter-message-details.repository.ts +3 -3
  441. package/src/repository/chatter-message.repository.ts +2 -2
  442. package/src/repository/dashboard-question-sql-dataset-config.repository.ts +17 -0
  443. package/src/repository/dashboard-question.repository.ts +17 -0
  444. package/src/repository/dashboard-variable.repository.ts +17 -0
  445. package/src/repository/dashboard.repository.ts +10 -10
  446. package/src/repository/email-template.repository.ts +17 -0
  447. package/src/repository/export-template.repository.ts +17 -0
  448. package/src/repository/export-transaction.repository.ts +17 -0
  449. package/src/repository/field-metadata.repository.ts +8 -6
  450. package/src/repository/import-transaction-error-log.repository.ts +17 -0
  451. package/src/repository/import-transaction.repository.ts +17 -0
  452. package/src/repository/list-of-values.repository.ts +17 -0
  453. package/src/repository/locale.repository.ts +17 -0
  454. package/src/repository/media-storage-provider-metadata.repository.ts +15 -0
  455. package/src/repository/media.repository.ts +21 -15
  456. package/src/repository/menu-item-metadata.repository.ts +17 -0
  457. package/src/repository/model-metadata.repository.ts +15 -0
  458. package/src/repository/module-metadata.repository.ts +15 -0
  459. package/src/repository/mq-message-queue.repository.ts +17 -0
  460. package/src/repository/mq-message.repository.ts +17 -0
  461. package/src/repository/permission-metadata.repository.ts +17 -0
  462. package/src/repository/role-metadata.repository.ts +17 -0
  463. package/src/repository/saved-filters.repository.ts +65 -0
  464. package/src/repository/scheduled-job.repository.ts +13 -14
  465. package/src/repository/security-rule.repository.ts +45 -25
  466. package/src/repository/setting.repository.ts +17 -0
  467. package/src/repository/sms-template.repository.ts +17 -0
  468. package/src/repository/solid-base.repository.ts +16 -8
  469. package/src/repository/user-activity-history.repository.ts +17 -0
  470. package/src/repository/user-view-metadata.repository.ts +17 -0
  471. package/src/repository/view-metadata.repository.ts +10 -8
  472. package/src/seeders/module-metadata-seeder.service.ts +35 -5
  473. package/src/seeders/permission-metadata-seeder.service.ts +4 -2
  474. package/src/seeders/seed-data/solid-core-metadata.json +111 -66
  475. package/src/seeders/system-fields-seeder.service.ts +6 -4
  476. package/src/services/action-metadata.service.ts +9 -7
  477. package/src/services/ai-interaction.service.ts +15 -13
  478. package/src/services/authentication.service.ts +26 -12
  479. package/src/services/chatter-message.service.ts +23 -21
  480. package/src/services/crud.service.ts +27 -32
  481. package/src/services/dashboard-question-sql-dataset-config.service.ts +4 -2
  482. package/src/services/dashboard-question.service.ts +4 -2
  483. package/src/services/dashboard-variable.service.ts +5 -2
  484. package/src/services/docker exec -it mssql //" +8 -0
  485. package/src/services/email-template.service.ts +4 -2
  486. package/src/services/export-template.service.ts +22 -4
  487. package/src/services/export-transaction.service.ts +16 -9
  488. package/src/services/field-metadata.service.ts +1 -1
  489. package/src/services/import-transaction-error-log.service.ts +4 -2
  490. package/src/services/import-transaction.service.ts +109 -30
  491. package/src/services/list-of-values.service.ts +192 -8
  492. package/src/services/locale.service.ts +16 -14
  493. package/src/services/mail/smtp-email.service.ts +7 -1
  494. package/src/services/media-storage-provider-metadata.service.ts +10 -9
  495. package/src/services/media.service.ts +16 -8
  496. package/src/services/menu-item-metadata.service.ts +7 -4
  497. package/src/services/model-metadata.service.ts +64 -58
  498. package/src/services/module-metadata.service.ts +6 -3
  499. package/src/services/mq-message-queue.service.ts +4 -2
  500. package/src/services/mq-message.service.ts +4 -2
  501. package/src/services/permission-metadata.service.ts +5 -3
  502. package/src/services/queues/rabbitmq-publisher.service.ts +99 -41
  503. package/src/services/queues/rabbitmq-subscriber.service.ts +18 -5
  504. package/src/services/role-metadata.service.ts +16 -12
  505. package/src/services/saved-filters.service.ts +10 -8
  506. package/src/services/scheduled-job.service.ts +4 -2
  507. package/src/services/scheduled-jobs/scheduler.service.ts +9 -9
  508. package/src/services/security-rule.service.ts +6 -3
  509. package/src/services/setting.service.ts +31 -14
  510. package/src/services/sms-template.service.ts +4 -2
  511. package/src/services/solid-introspect.service.ts +23 -2
  512. package/src/services/user-activity-history.service.ts +4 -2
  513. package/src/services/user-view-metadata.service.ts +4 -2
  514. package/src/services/user.service.ts +5 -2
  515. package/src/services/view-metadata.service.ts +11 -9
  516. package/src/solid-core.module.ts +166 -138
  517. package/src/subscribers/audit.subscriber.ts +8 -7
  518. package/src/subscribers/{list-of-values-metadata.subscriber.ts → list-of-values.subscriber.ts} +7 -7
  519. package/dist/repository/field.repository.d.ts +0 -9
  520. package/dist/repository/field.repository.d.ts.map +0 -1
  521. package/dist/repository/field.repository.js +0 -46
  522. package/dist/repository/field.repository.js.map +0 -1
  523. package/dist/services/list-of-values-metadata.service.d.ts +0 -34
  524. package/dist/services/list-of-values-metadata.service.d.ts.map +0 -1
  525. package/dist/services/list-of-values-metadata.service.js +0 -213
  526. package/dist/services/list-of-values-metadata.service.js.map +0 -1
  527. package/dist/subscribers/list-of-values-metadata.subscriber.d.ts.map +0 -1
  528. package/dist/subscribers/list-of-values-metadata.subscriber.js.map +0 -1
  529. package/solid_seed_fixes.ts.txt +0 -93
  530. package/src/repository/field.repository.ts +0 -33
  531. package/src/services/list-of-values-metadata.service.ts +0 -216
@@ -0,0 +1,17 @@
1
+ import { Injectable } from '@nestjs/common';
2
+ import { RoleMetadata } from 'src';
3
+ import { RequestContextService } from 'src/services/request-context.service';
4
+ import { DataSource } from 'typeorm';
5
+ import { SecurityRuleRepository } from './security-rule.repository';
6
+ import { SolidBaseRepository } from './solid-base.repository';
7
+
8
+ @Injectable()
9
+ export class RoleMetadataRepository extends SolidBaseRepository<RoleMetadata> {
10
+ constructor(
11
+ readonly dataSource: DataSource,
12
+ readonly requestContextService: RequestContextService,
13
+ readonly securityRuleRepository: SecurityRuleRepository,
14
+ ) {
15
+ super(RoleMetadata, dataSource, requestContextService, securityRuleRepository);
16
+ }
17
+ }
@@ -0,0 +1,65 @@
1
+ import { Injectable, Logger } from "@nestjs/common";
2
+ import { CreateSavedFiltersDto } from "src/dtos/create-saved-filters.dto";
3
+ import { ModelMetadata } from "src/entities/model-metadata.entity";
4
+ import { SavedFilters } from "src/entities/saved-filters.entity";
5
+ import { User } from "src/entities/user.entity";
6
+ import { ViewMetadata } from "src/entities/view-metadata.entity";
7
+ import { SolidRegistry } from "src/helpers/solid-registry";
8
+ import { CrudHelperService } from "src/services/crud-helper.service";
9
+ import { DataSource, Repository } from "typeorm";
10
+ import { SolidBaseRepository } from "./solid-base.repository";
11
+
12
+ @Injectable()
13
+ export class SavedFiltersRepository extends SolidBaseRepository<SavedFilters> {
14
+ readonly logger = new Logger(SavedFiltersRepository.name);
15
+
16
+ constructor(
17
+ private dataSource: DataSource,
18
+ ) {
19
+ super(SavedFilters, dataSource, null , null);
20
+ }
21
+
22
+ /**
23
+ * Converts an entity to a plain DTO object.
24
+ */
25
+
26
+ async upsertWithDto(dto: CreateSavedFiltersDto): Promise<SavedFilters> {
27
+ const modelRepo = this.dataSource.getRepository(ModelMetadata);
28
+ const viewRepo = this.dataSource.getRepository(ViewMetadata);
29
+
30
+ // Find related entities based on keys from DTO
31
+ const [modelEntity, viewEntity] = await Promise.all([
32
+ modelRepo.findOne({ where: { singularName: dto.modelUserKey } }),
33
+ viewRepo.findOne({ where: { name: dto.viewUserKey } }),
34
+ ]);
35
+
36
+
37
+ if (!modelEntity || !viewEntity) {
38
+ throw new Error(
39
+ `Missing related entity for SavedFilter: model=${dto.modelUserKey}, view=${dto.viewUserKey}`
40
+ );
41
+ }
42
+
43
+ const filterData:Partial<SavedFilters> = {
44
+ ...dto,
45
+ isPrivate: false,
46
+ user: null,
47
+ model: modelEntity,
48
+ view: viewEntity,
49
+ };
50
+
51
+ const existing = await this.findOne({
52
+ where: { name: dto.name },
53
+ });
54
+
55
+ if (existing) {
56
+ const merged = this.merge(existing, filterData);
57
+ this.logger.debug(`Updating saved filter: ${dto.name}`);
58
+ return this.save(merged);
59
+ } else {
60
+ this.logger.debug(`Creating saved filter: ${dto.name}`);
61
+ return this.save(this.create(filterData));
62
+ }
63
+ }
64
+
65
+ }
@@ -1,10 +1,11 @@
1
- import { Injectable, Logger } from "@nestjs/common";
1
+ import { Injectable } from "@nestjs/common";
2
2
  import { CreateScheduledJobDto } from "src/dtos/create-scheduled-job.dto";
3
3
  import { ModuleMetadata } from "src/entities/module-metadata.entity";
4
4
  import { ScheduledJob } from "src/entities/scheduled-job.entity";
5
- import { SolidRegistry } from "src/helpers/solid-registry";
6
- import { CrudHelperService } from "src/services/crud-helper.service";
7
- import { DataSource, Repository } from "typeorm";
5
+ import { RequestContextService } from "src/services/request-context.service";
6
+ import { DataSource } from "typeorm";
7
+ import { SecurityRuleRepository } from "./security-rule.repository";
8
+ import { SolidBaseRepository } from "./solid-base.repository";
8
9
 
9
10
  // This should match whatever DTO structure you’re using in your seeding logic
10
11
  // export type CreateScheduledJobDto = {
@@ -24,16 +25,14 @@ import { DataSource, Repository } from "typeorm";
24
25
  // };
25
26
 
26
27
  @Injectable()
27
- export class ScheduledJobRepository extends Repository<ScheduledJob> {
28
- private readonly logger = new Logger(ScheduledJobRepository.name);
29
-
30
- constructor(
31
- private dataSource: DataSource,
32
- private readonly solidRegistry: SolidRegistry,
33
- private readonly crudHelperService: CrudHelperService
34
- ) {
35
- super(ScheduledJob, dataSource.createEntityManager());
36
- }
28
+ export class ScheduledJobRepository extends SolidBaseRepository<ScheduledJob> {
29
+ constructor(
30
+ readonly dataSource: DataSource,
31
+ readonly requestContextService: RequestContextService,
32
+ readonly securityRuleRepository: SecurityRuleRepository,
33
+ ) {
34
+ super(ScheduledJob, dataSource, requestContextService, securityRuleRepository);
35
+ }
37
36
 
38
37
  /**
39
38
  * Converts an entity to a plain DTO object.
@@ -1,4 +1,4 @@
1
- import { Injectable, Logger } from '@nestjs/common';
1
+ import { Injectable } from '@nestjs/common';
2
2
  import { CreateSecurityRuleDto } from 'src/dtos/create-security-rule.dto';
3
3
  import { SecurityRuleConfig } from 'src/dtos/security-rule-config.dto';
4
4
  import { UpdateSecurityRuleDto } from 'src/dtos/update-security-rule.dto';
@@ -8,21 +8,22 @@ import { RoleMetadata } from 'src/entities/role-metadata.entity';
8
8
  import { SecurityRule } from 'src/entities/security-rule.entity';
9
9
  import { SolidRegistry } from 'src/helpers/solid-registry';
10
10
  import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
11
- import { CrudHelperService, FilterCombinator } from 'src/services/crud-helper.service';
12
- import { Brackets, DataSource, Repository, SelectQueryBuilder } from 'typeorm';
11
+ import { CrudHelperService } from 'src/services/crud-helper.service';
12
+ import { Brackets, DataSource, SelectQueryBuilder } from 'typeorm';
13
+ import { SolidBaseRepository } from './solid-base.repository';
13
14
 
14
15
  @Injectable()
15
- export class SecurityRuleRepository extends Repository<SecurityRule> {
16
- private readonly logger = new Logger(SecurityRuleRepository.name);
16
+ export class SecurityRuleRepository extends SolidBaseRepository<SecurityRule> {
17
17
  constructor(
18
- private dataSource: DataSource,
19
- private readonly solidRegistry: SolidRegistry,
20
- private readonly crudHelperService: CrudHelperService,
18
+ readonly dataSource: DataSource,
19
+ // readonly requestContextService: RequestContextService,
20
+ readonly solidRegistry: SolidRegistry,
21
+ readonly crudHelperService: CrudHelperService,
21
22
  ) {
22
- super(SecurityRule, dataSource.createEntityManager());
23
+ super(SecurityRule, dataSource, null, null);
23
24
  }
24
25
 
25
- applySecurityRules<T extends CommonEntity>(qb: SelectQueryBuilder<T>, modelSingularName: string, activeUser: ActiveUserData, securityRuleAlias: string = qb.alias): SelectQueryBuilder<T> {
26
+ async applySecurityRules<T extends CommonEntity>(qb: SelectQueryBuilder<T>, modelSingularName: string, activeUser: ActiveUserData, securityRuleAlias: string = qb.alias): Promise<SelectQueryBuilder<T>> {
26
27
  // Fetch the security rules for the model and roles
27
28
  const securityRules = this.solidRegistry.getSecurityRules(modelSingularName, activeUser.roles);
28
29
 
@@ -31,23 +32,42 @@ export class SecurityRuleRepository extends Repository<SecurityRule> {
31
32
  return qb;
32
33
  }
33
34
 
34
- // Apply each security rule to the query builder. The rules are combined with OR logic at the top level.
35
- qb.andWhere(new Brackets((outerQb) => {
36
- for (const rule of securityRules) {
37
- try {
38
- const parsedRule = JSON.parse(
35
+ const evaluatedRules = [];
36
+
37
+ for (const rule of securityRules) {
38
+
39
+ let evaluatedRule = null;
40
+
41
+ try {
42
+ // First check if the rule has a "dynamic" security rule config provider.
43
+ if (rule.securityRuleConfigProvider) {
44
+ // TODO: Evaluation of the securityRuleConfig Provider should happen outside first...
45
+ const securityRuleConfigProviderInstance = this.solidRegistry.getSecurityRuleConfigProviderInstance(rule.securityRuleConfigProvider);
46
+ evaluatedRule = await securityRuleConfigProviderInstance.securityRuleConfig(activeUser, rule);
47
+ }
48
+ else {
49
+ evaluatedRule = JSON.parse(
39
50
  this.resolveSecurityRuleConfig(rule.securityRuleConfig, activeUser)
40
51
  ) as SecurityRuleConfig;
52
+ }
53
+
54
+ evaluatedRules.push(evaluatedRule);
41
55
 
42
- if (parsedRule && parsedRule.filters) {
43
- outerQb.orWhere( // combine each rule-group with OR at the outer level
44
- new Brackets((innerQb) => {
45
- this.crudHelperService.applyFilters(innerQb, parsedRule.filters, securityRuleAlias, qb); // AND within a rule
46
- })
47
- );
48
- }
49
- } catch (error) {
50
- this.logger.warn(`Error parsing security rule: ${rule.securityRuleConfig}`, error);
56
+ } catch (error) {
57
+ this.logger.warn(`Error parsing security rule: ${rule.securityRuleConfig}`, error);
58
+ }
59
+ }
60
+
61
+
62
+ // Apply each security rule to the query builder. The rules are combined with OR logic at the top level.
63
+ qb.andWhere(new Brackets(async (outerQb) => {
64
+ for (const evaluatedRule of evaluatedRules) {
65
+ if (evaluatedRule && evaluatedRule.filters) {
66
+ outerQb.orWhere( // combine each rule-group with OR at the outer level
67
+ new Brackets((innerQb) => {
68
+ this.crudHelperService.applyFilters(innerQb, evaluatedRule.filters, securityRuleAlias, qb); // AND within a rule
69
+ })
70
+ );
51
71
  }
52
72
  }
53
73
  }));
@@ -55,7 +75,6 @@ export class SecurityRuleRepository extends Repository<SecurityRule> {
55
75
  return qb;
56
76
  }
57
77
 
58
-
59
78
  private resolveSecurityRuleConfig(configString: string, activeUser: ActiveUserData) {
60
79
  return configString.replace('$activeUserId', activeUser.sub.toString());
61
80
  }
@@ -85,6 +104,7 @@ export class SecurityRuleRepository extends Repository<SecurityRule> {
85
104
  modelMetadataId: populatedSecurityRule.modelMetadata.id,
86
105
  modelMetadataUserKey: populatedSecurityRule.modelMetadata.singularName,
87
106
  securityRuleConfig: populatedSecurityRule.securityRuleConfig,
107
+ securityRuleConfigProvider: ""
88
108
  };
89
109
  }
90
110
 
@@ -0,0 +1,17 @@
1
+ import { Injectable } from '@nestjs/common';
2
+ import { Setting } from 'src';
3
+ import { RequestContextService } from 'src/services/request-context.service';
4
+ import { DataSource } from 'typeorm';
5
+ import { SecurityRuleRepository } from './security-rule.repository';
6
+ import { SolidBaseRepository } from './solid-base.repository';
7
+
8
+ @Injectable()
9
+ export class SettingRepository extends SolidBaseRepository<Setting> {
10
+ constructor(
11
+ readonly dataSource: DataSource,
12
+ readonly requestContextService: RequestContextService,
13
+ readonly securityRuleRepository: SecurityRuleRepository,
14
+ ) {
15
+ super(Setting, dataSource, requestContextService, securityRuleRepository);
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ import { Injectable } from '@nestjs/common';
2
+ import { SmsTemplate } from 'src';
3
+ import { RequestContextService } from 'src/services/request-context.service';
4
+ import { DataSource } from 'typeorm';
5
+ import { SecurityRuleRepository } from './security-rule.repository';
6
+ import { SolidBaseRepository } from './solid-base.repository';
7
+
8
+ @Injectable()
9
+ export class SmsTemplateRepository extends SolidBaseRepository<SmsTemplate> {
10
+ constructor(
11
+ readonly dataSource: DataSource,
12
+ readonly requestContextService: RequestContextService,
13
+ readonly securityRuleRepository: SecurityRuleRepository,
14
+ ) {
15
+ super(SmsTemplate, dataSource, requestContextService, securityRuleRepository);
16
+ }
17
+ }
@@ -22,8 +22,8 @@ export class SolidBaseRepository<T extends CommonEntity> extends Repository<T> {
22
22
  constructor(
23
23
  entity: EntityTarget<T>,
24
24
  dataSource: DataSource,
25
- protected readonly requestContextService: RequestContextService,
26
- protected readonly securityRuleRepository: SecurityRuleRepository
25
+ protected readonly requestContextService: RequestContextService | null,
26
+ protected readonly securityRuleRepository: SecurityRuleRepository | null,
27
27
  ) {
28
28
  super(entity, dataSource.createEntityManager());
29
29
  this.logger = new Logger(this.constructor.name);
@@ -33,12 +33,20 @@ export class SolidBaseRepository<T extends CommonEntity> extends Repository<T> {
33
33
  return camelize(this.metadata.name);
34
34
  }
35
35
 
36
- createQueryBuilder(alias?: string, queryRunner?: QueryRunner): SelectQueryBuilder<T> {
37
- const activeUserOrUndefined = this.requestContextService.getActiveUser();
36
+ override createQueryBuilder(alias?: string, queryRunner?: QueryRunner): SelectQueryBuilder<T> {
37
+ throw new Error('createQueryBuilder() is disabled. Use createSecurityRuleAwareQueryBuilder instead');
38
+ }
39
+
40
+ async createSecurityRuleAwareQueryBuilder(alias?: string, queryRunner?: QueryRunner): Promise<SelectQueryBuilder<T>> {
38
41
  const qb = super.createQueryBuilder(alias, queryRunner);
42
+
43
+ if (!this.securityRuleRepository) return qb;
44
+ if (!this.requestContextService) return qb;
45
+
46
+ const activeUserOrUndefined = this.requestContextService.getActiveUser();
39
47
  if (!activeUserOrUndefined) return qb;
40
48
 
41
- return this.securityRuleRepository.applySecurityRules(
49
+ return await this.securityRuleRepository.applySecurityRules(
42
50
  qb,
43
51
  this.modelSingularName(),
44
52
  activeUserOrUndefined as ActiveUserData
@@ -51,7 +59,7 @@ export class SolidBaseRepository<T extends CommonEntity> extends Repository<T> {
51
59
  */
52
60
  override async findOne(options?: FindOneOptions<T>): Promise<T | null> {
53
61
  const alias = this.modelSingularName();
54
- const qb = this.createQueryBuilder(alias);
62
+ const qb = await this.createSecurityRuleAwareQueryBuilder(alias);
55
63
 
56
64
  if (options) {
57
65
  // Apply all standard find options (relations, selects, order, where, etc.)
@@ -85,7 +93,7 @@ export class SolidBaseRepository<T extends CommonEntity> extends Repository<T> {
85
93
  */
86
94
  override async find(options?: FindManyOptions<T>): Promise<T[]> {
87
95
  const alias = this.modelSingularName();
88
- const qb = this.createQueryBuilder(alias);
96
+ const qb = await this.createSecurityRuleAwareQueryBuilder(alias);
89
97
 
90
98
  if (options) {
91
99
  qb.setFindOptions(options);
@@ -100,7 +108,7 @@ export class SolidBaseRepository<T extends CommonEntity> extends Repository<T> {
100
108
  */
101
109
  override async findAndCount(options?: FindManyOptions<T>): Promise<[T[], number]> {
102
110
  const alias = this.modelSingularName();
103
- const qb = this.createQueryBuilder(alias);
111
+ const qb = await this.createSecurityRuleAwareQueryBuilder(alias);
104
112
 
105
113
  if (options) {
106
114
  qb.setFindOptions(options);
@@ -0,0 +1,17 @@
1
+ import { Injectable } from '@nestjs/common';
2
+ import { UserActivityHistory } from 'src';
3
+ import { RequestContextService } from 'src/services/request-context.service';
4
+ import { DataSource } from 'typeorm';
5
+ import { SecurityRuleRepository } from './security-rule.repository';
6
+ import { SolidBaseRepository } from './solid-base.repository';
7
+
8
+ @Injectable()
9
+ export class UserActivityHistoryRepository extends SolidBaseRepository<UserActivityHistory> {
10
+ constructor(
11
+ readonly dataSource: DataSource,
12
+ readonly requestContextService: RequestContextService,
13
+ readonly securityRuleRepository: SecurityRuleRepository,
14
+ ) {
15
+ super(UserActivityHistory, dataSource, requestContextService, securityRuleRepository);
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ import { Injectable } from '@nestjs/common';
2
+ import { UserViewMetadata } from 'src';
3
+ import { RequestContextService } from 'src/services/request-context.service';
4
+ import { DataSource } from 'typeorm';
5
+ import { SecurityRuleRepository } from './security-rule.repository';
6
+ import { SolidBaseRepository } from './solid-base.repository';
7
+
8
+ @Injectable()
9
+ export class UserViewMetadataRepository extends SolidBaseRepository<UserViewMetadata> {
10
+ constructor(
11
+ readonly dataSource: DataSource,
12
+ readonly requestContextService: RequestContextService,
13
+ readonly securityRuleRepository: SecurityRuleRepository,
14
+ ) {
15
+ super(UserViewMetadata, dataSource, requestContextService, securityRuleRepository);
16
+ }
17
+ }
@@ -1,16 +1,18 @@
1
- import { Injectable, Logger } from "@nestjs/common";
2
- import { Dashboard } from "src/entities/dashboard.entity";
1
+ import { Injectable } from "@nestjs/common";
3
2
  import { ViewMetadata } from "src/entities/view-metadata.entity";
4
- import { DataSource, Repository, View } from "typeorm";
3
+ import { RequestContextService } from "src/services/request-context.service";
4
+ import { DataSource } from "typeorm";
5
+ import { SecurityRuleRepository } from "./security-rule.repository";
6
+ import { SolidBaseRepository } from "./solid-base.repository";
5
7
 
6
8
  @Injectable()
7
- export class ViewMetadataRepository extends Repository<ViewMetadata> {
8
- private readonly logger = new Logger(this.constructor.name);
9
-
9
+ export class ViewMetadataRepository extends SolidBaseRepository<ViewMetadata> {
10
10
  constructor(
11
- private dataSource: DataSource,
11
+ readonly dataSource: DataSource,
12
+ readonly requestContextService: RequestContextService,
13
+ readonly securityRuleRepository: SecurityRuleRepository,
12
14
  ) {
13
- super(ViewMetadata, dataSource.createEntityManager());
15
+ super(ViewMetadata, dataSource, requestContextService, securityRuleRepository);
14
16
  }
15
17
 
16
18
  // Custom repository methods can be added here if needed
@@ -40,10 +40,14 @@ import { ViewMetadataService } from '../services/view-metadata.service';
40
40
  import solidCoreMetadata from './seed-data/solid-core-metadata.json';
41
41
  import { SystemFieldsSeederService } from './system-fields-seeder.service';
42
42
  // import { CreateScheduledJobDto } from 'src/dtos/create-scheduled-job.dto';
43
+ import { ActionMetadata, MENU_ROLE_JOIN_TABLE_NAME, MENU_ROLE_JOIN_TABLE_NAME_MENU_COL, MENU_ROLE_JOIN_TABLE_NAME_ROLE_COL, MenuItemMetadata, ModuleMetadata, RoleMetadata } from 'src';
43
44
  import { ADMIN_ROLE_NAME, INTERNAL_ROLE_NAME, INTERNAL_ROLE_PERMISSIONS, PUBLIC_ROLE_NAME } from 'src/dtos/create-role-metadata.dto';
44
45
  import { CreateScheduledJobDto } from 'src/dtos/create-scheduled-job.dto';
45
46
  import { ScheduledJobRepository } from 'src/repository/scheduled-job.repository';
46
- import { ActionMetadata, MENU_ROLE_JOIN_TABLE_NAME, MENU_ROLE_JOIN_TABLE_NAME_MENU_COL, MENU_ROLE_JOIN_TABLE_NAME_ROLE_COL, MenuItemMetadata, ModuleMetadata, RoleMetadata } from 'src';
47
+ import { PermissionMetadataRepository } from 'src/repository/permission-metadata.repository';
48
+ import { SettingRepository } from 'src/repository/setting.repository';
49
+ import { CreateSavedFiltersDto } from 'src/dtos/create-saved-filters.dto';
50
+ import { SavedFiltersRepository } from 'src/repository/saved-filters.repository';
47
51
 
48
52
 
49
53
  @Injectable()
@@ -66,8 +70,9 @@ export class ModuleMetadataSeederService {
66
70
  private readonly emailTemplateService: EmailTemplateService,
67
71
  private readonly smsTemplateService: SmsTemplateService,
68
72
  private readonly listOfValuesService: ListOfValuesService,
69
- @InjectRepository(PermissionMetadata)
70
- private readonly permissionRepo: Repository<PermissionMetadata>,
73
+ // @InjectRepository(PermissionMetadata)
74
+ // private readonly permissionRepo: Repository<PermissionMetadata>,
75
+ private readonly permissionRepo: PermissionMetadataRepository,
71
76
  private readonly solidRegistry: SolidRegistry,
72
77
  @Inject(appBuilderConfig.KEY)
73
78
  private readonly appBuilderConfiguration: ConfigType<typeof appBuilderConfig>,
@@ -75,12 +80,14 @@ export class ModuleMetadataSeederService {
75
80
  @Inject(commonConfig.KEY)
76
81
  private readonly commonConfiguration: ConfigType<typeof commonConfig>,
77
82
  private readonly settingService: SettingService,
78
- @InjectRepository(Setting, 'default')
79
- readonly settingsRepo: Repository<Setting>,
83
+ // @InjectRepository(Setting, 'default')
84
+ // readonly settingsRepo: Repository<Setting>,
85
+ private readonly settingsRepo: SettingRepository,
80
86
  readonly securityRuleRepo: SecurityRuleRepository,
81
87
  readonly systemFieldsSeederService: SystemFieldsSeederService,
82
88
  readonly dashboardRepo: DashboardRepository,
83
89
  readonly scheduledJobRepository: ScheduledJobRepository,
90
+ readonly savedFiltersRepo : SavedFiltersRepository,
84
91
  readonly dataSource: DataSource,
85
92
  ) { }
86
93
 
@@ -155,6 +162,10 @@ export class ModuleMetadataSeederService {
155
162
  this.logger.log(`Seeding Scheduled Jobs`);
156
163
  await this.seedScheduledJobs(moduleMetadata, overallMetadata);
157
164
 
165
+ // Saved Filters
166
+ this.logger.log(`Seeding Saved Filters`);
167
+ await this.seedSavedFilters(moduleMetadata, overallMetadata);
168
+
158
169
  this.logger.debug(`[End] module seed data: ${overallMetadata}`);
159
170
  }
160
171
 
@@ -176,6 +187,15 @@ export class ModuleMetadataSeederService {
176
187
  this.logger.debug(`[End] Processing scheduled jobs for ${moduleMetadata.name}`);
177
188
  }
178
189
 
190
+ private async seedSavedFilters(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any) {
191
+ this.logger.debug(`[Start] Processing saved filters for ${moduleMetadata.name}`);
192
+ const savedFilters: CreateSavedFiltersDto[] = overallMetadata.savedFilters;
193
+ if (savedFilters?.length > 0) {
194
+ await this.handleSeedSavedFilters(savedFilters);
195
+ }
196
+ this.logger.debug(`[End] Processing saved filters for ${moduleMetadata.name}`);
197
+ }
198
+
179
199
  private async seedDashboards(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any) {
180
200
  this.logger.debug(`[Start] Processing dashboards for ${moduleMetadata.name}`);
181
201
  const dashboards: CreateDashboardDto[] = overallMetadata.dashboards;
@@ -709,4 +729,14 @@ export class ModuleMetadataSeederService {
709
729
  }
710
730
  }
711
731
 
732
+ private async handleSeedSavedFilters(createSavedFilterDto: CreateSavedFiltersDto[]) {
733
+ if (!createSavedFilterDto || createSavedFilterDto.length === 0) {
734
+ this.logger.debug(`No saved filters found to seed`);
735
+ return;
736
+ }
737
+ for (const dto of createSavedFilterDto) {
738
+ await this.savedFiltersRepo.upsertWithDto({ ...dto, filterQueryJson: JSON.stringify(dto.filterQueryJson) });
739
+ }
740
+ }
741
+
712
742
  }
@@ -4,14 +4,16 @@ import { Repository } from 'typeorm';
4
4
  import { SolidRegistry } from 'src/helpers/solid-registry';
5
5
  import { PermissionMetadata } from '../entities/permission-metadata.entity';
6
6
  import { RoleMetadataService } from '../services/role-metadata.service';
7
+ import { PermissionMetadataRepository } from 'src/repository/permission-metadata.repository';
7
8
 
8
9
  @Injectable()
9
10
  export class PermissionMetadataSeederService {
10
11
  private readonly logger = new Logger(PermissionMetadataSeederService.name);
11
12
 
12
13
  constructor(
13
- @InjectRepository(PermissionMetadata)
14
- private readonly permissionRepo: Repository<PermissionMetadata>,
14
+ // @InjectRepository(PermissionMetadata)
15
+ // private readonly permissionRepo: Repository<PermissionMetadata>,
16
+ private readonly permissionRepo: PermissionMetadataRepository,
15
17
  private readonly solidRegistry: SolidRegistry,
16
18
  @Inject(forwardRef(() => RoleMetadataService))
17
19
  private readonly roleService: RoleMetadataService,