@solidstarters/solid-core 1.2.193 → 1.2.200

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 (376) hide show
  1. package/dist/commands/mcp.command.d.ts +20 -0
  2. package/dist/commands/mcp.command.d.ts.map +1 -0
  3. package/dist/commands/mcp.command.js +208 -0
  4. package/dist/commands/mcp.command.js.map +1 -0
  5. package/dist/commands/refresh-model.command.d.ts +8 -5
  6. package/dist/commands/refresh-model.command.d.ts.map +1 -1
  7. package/dist/commands/refresh-model.command.js +32 -0
  8. package/dist/commands/refresh-model.command.js.map +1 -1
  9. package/dist/commands/remove-fields.command.js +1 -1
  10. package/dist/commands/remove-fields.command.js.map +1 -1
  11. package/dist/commands/seed.command.d.ts +2 -0
  12. package/dist/commands/seed.command.d.ts.map +1 -1
  13. package/dist/commands/seed.command.js +28 -1
  14. package/dist/commands/seed.command.js.map +1 -1
  15. package/dist/controllers/authentication.controller.js +1 -1
  16. package/dist/controllers/authentication.controller.js.map +1 -1
  17. package/dist/controllers/email-template.controller.js +1 -1
  18. package/dist/controllers/email-template.controller.js.map +1 -1
  19. package/dist/controllers/field-metadata.controller.d.ts +136 -4
  20. package/dist/controllers/field-metadata.controller.d.ts.map +1 -1
  21. package/dist/controllers/field-metadata.controller.js +14 -1
  22. package/dist/controllers/field-metadata.controller.js.map +1 -1
  23. package/dist/controllers/media-storage-provider-metadata.controller.js +1 -1
  24. package/dist/controllers/media-storage-provider-metadata.controller.js.map +1 -1
  25. package/dist/controllers/model-metadata.controller.js +1 -1
  26. package/dist/controllers/model-metadata.controller.js.map +1 -1
  27. package/dist/controllers/module-metadata.controller.js +1 -1
  28. package/dist/controllers/module-metadata.controller.js.map +1 -1
  29. package/dist/controllers/otp-authentication.controller.js +1 -1
  30. package/dist/controllers/otp-authentication.controller.js.map +1 -1
  31. package/dist/controllers/service.controller.js +1 -1
  32. package/dist/controllers/service.controller.js.map +1 -1
  33. package/dist/controllers/sms-template.controller.js +1 -1
  34. package/dist/controllers/sms-template.controller.js.map +1 -1
  35. package/dist/controllers/test-queue.controller.js +1 -1
  36. package/dist/controllers/test-queue.controller.js.map +1 -1
  37. package/dist/controllers/test.controller.js +1 -1
  38. package/dist/controllers/test.controller.js.map +1 -1
  39. package/dist/dtos/create-ai-interaction.dto.d.ts +2 -0
  40. package/dist/dtos/create-ai-interaction.dto.d.ts.map +1 -1
  41. package/dist/dtos/create-ai-interaction.dto.js +14 -1
  42. package/dist/dtos/create-ai-interaction.dto.js.map +1 -1
  43. package/dist/dtos/create-field-metadata.dto.d.ts +22 -5
  44. package/dist/dtos/create-field-metadata.dto.d.ts.map +1 -1
  45. package/dist/dtos/create-field-metadata.dto.js +33 -7
  46. package/dist/dtos/create-field-metadata.dto.js.map +1 -1
  47. package/dist/dtos/create-import-transaction.dto.d.ts +0 -1
  48. package/dist/dtos/create-import-transaction.dto.d.ts.map +1 -1
  49. package/dist/dtos/create-import-transaction.dto.js +1 -7
  50. package/dist/dtos/create-import-transaction.dto.js.map +1 -1
  51. package/dist/dtos/create-model-metadata.dto.d.ts +2 -0
  52. package/dist/dtos/create-model-metadata.dto.d.ts.map +1 -1
  53. package/dist/dtos/create-model-metadata.dto.js +13 -1
  54. package/dist/dtos/create-model-metadata.dto.js.map +1 -1
  55. package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
  56. package/dist/dtos/create-role-metadata.dto.js +5 -1
  57. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  58. package/dist/dtos/resolve-s3-url.dto.d.ts +10 -0
  59. package/dist/dtos/resolve-s3-url.dto.d.ts.map +1 -0
  60. package/dist/dtos/resolve-s3-url.dto.js +49 -0
  61. package/dist/dtos/resolve-s3-url.dto.js.map +1 -0
  62. package/dist/dtos/update-ai-interaction.dto.d.ts +2 -0
  63. package/dist/dtos/update-ai-interaction.dto.d.ts.map +1 -1
  64. package/dist/dtos/update-ai-interaction.dto.js +13 -1
  65. package/dist/dtos/update-ai-interaction.dto.js.map +1 -1
  66. package/dist/dtos/update-field-metadata.dto.d.ts.map +1 -1
  67. package/dist/dtos/update-field-metadata.dto.js.map +1 -1
  68. package/dist/dtos/update-import-transaction.dto.d.ts +0 -1
  69. package/dist/dtos/update-import-transaction.dto.d.ts.map +1 -1
  70. package/dist/dtos/update-import-transaction.dto.js +1 -7
  71. package/dist/dtos/update-import-transaction.dto.js.map +1 -1
  72. package/dist/entities/action-metadata.entity.js +4 -4
  73. package/dist/entities/action-metadata.entity.js.map +1 -1
  74. package/dist/entities/ai-interaction.entity.d.ts +2 -0
  75. package/dist/entities/ai-interaction.entity.d.ts.map +1 -1
  76. package/dist/entities/ai-interaction.entity.js +15 -6
  77. package/dist/entities/ai-interaction.entity.js.map +1 -1
  78. package/dist/entities/chatter-message-details.entity.d.ts.map +1 -1
  79. package/dist/entities/chatter-message-details.entity.js +1 -1
  80. package/dist/entities/chatter-message-details.entity.js.map +1 -1
  81. package/dist/entities/chatter-message.entity.js +1 -1
  82. package/dist/entities/chatter-message.entity.js.map +1 -1
  83. package/dist/entities/common.entity.d.ts +2 -3
  84. package/dist/entities/common.entity.d.ts.map +1 -1
  85. package/dist/entities/common.entity.js +9 -11
  86. package/dist/entities/common.entity.js.map +1 -1
  87. package/dist/entities/dashboard-question-sql-dataset-config.entity.js +2 -2
  88. package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +1 -1
  89. package/dist/entities/dashboard-question.entity.js +3 -3
  90. package/dist/entities/dashboard-question.entity.js.map +1 -1
  91. package/dist/entities/dashboard-variable.entity.js +3 -3
  92. package/dist/entities/dashboard-variable.entity.js.map +1 -1
  93. package/dist/entities/dashboard.entity.js +1 -1
  94. package/dist/entities/dashboard.entity.js.map +1 -1
  95. package/dist/entities/email-template.entity.d.ts.map +1 -1
  96. package/dist/entities/email-template.entity.js +4 -3
  97. package/dist/entities/email-template.entity.js.map +1 -1
  98. package/dist/entities/export-template.entity.js +2 -2
  99. package/dist/entities/export-template.entity.js.map +1 -1
  100. package/dist/entities/export-transaction.entity.js +2 -2
  101. package/dist/entities/export-transaction.entity.js.map +1 -1
  102. package/dist/entities/field-metadata.entity.d.ts +1 -0
  103. package/dist/entities/field-metadata.entity.d.ts.map +1 -1
  104. package/dist/entities/field-metadata.entity.js +8 -4
  105. package/dist/entities/field-metadata.entity.js.map +1 -1
  106. package/dist/entities/import-transaction-error-log.entity.js +1 -1
  107. package/dist/entities/import-transaction-error-log.entity.js.map +1 -1
  108. package/dist/entities/import-transaction.entity.d.ts +0 -1
  109. package/dist/entities/import-transaction.entity.d.ts.map +1 -1
  110. package/dist/entities/import-transaction.entity.js +2 -7
  111. package/dist/entities/import-transaction.entity.js.map +1 -1
  112. package/dist/entities/legacy-common-with-id.entity.d.ts +5 -0
  113. package/dist/entities/legacy-common-with-id.entity.d.ts.map +1 -0
  114. package/dist/entities/legacy-common-with-id.entity.js +32 -0
  115. package/dist/entities/legacy-common-with-id.entity.js.map +1 -0
  116. package/dist/entities/legacy-common.entity.d.ts +13 -0
  117. package/dist/entities/legacy-common.entity.d.ts.map +1 -0
  118. package/dist/entities/legacy-common.entity.js +67 -0
  119. package/dist/entities/legacy-common.entity.js.map +1 -0
  120. package/dist/entities/list-of-values.entity.js +2 -2
  121. package/dist/entities/list-of-values.entity.js.map +1 -1
  122. package/dist/entities/locale.entity.js +1 -1
  123. package/dist/entities/locale.entity.js.map +1 -1
  124. package/dist/entities/media.entity.d.ts.map +1 -1
  125. package/dist/entities/media.entity.js +3 -3
  126. package/dist/entities/media.entity.js.map +1 -1
  127. package/dist/entities/menu-item-metadata.entity.js +4 -4
  128. package/dist/entities/menu-item-metadata.entity.js.map +1 -1
  129. package/dist/entities/model-metadata.entity.d.ts +2 -0
  130. package/dist/entities/model-metadata.entity.d.ts.map +1 -1
  131. package/dist/entities/model-metadata.entity.js +11 -3
  132. package/dist/entities/model-metadata.entity.js.map +1 -1
  133. package/dist/entities/mq-message-queue.entity.js +1 -1
  134. package/dist/entities/mq-message-queue.entity.js.map +1 -1
  135. package/dist/entities/mq-message.entity.d.ts +3 -3
  136. package/dist/entities/mq-message.entity.d.ts.map +1 -1
  137. package/dist/entities/mq-message.entity.js +10 -10
  138. package/dist/entities/mq-message.entity.js.map +1 -1
  139. package/dist/entities/saved-filters.entity.js +4 -4
  140. package/dist/entities/saved-filters.entity.js.map +1 -1
  141. package/dist/entities/scheduled-job.entity.js +4 -4
  142. package/dist/entities/scheduled-job.entity.js.map +1 -1
  143. package/dist/entities/security-rule.entity.js +2 -2
  144. package/dist/entities/security-rule.entity.js.map +1 -1
  145. package/dist/entities/setting.entity.js +2 -2
  146. package/dist/entities/setting.entity.js.map +1 -1
  147. package/dist/entities/sms-template.entity.js +2 -2
  148. package/dist/entities/sms-template.entity.js.map +1 -1
  149. package/dist/entities/user-activity-history.entity.d.ts.map +1 -1
  150. package/dist/entities/user-activity-history.entity.js +1 -1
  151. package/dist/entities/user-activity-history.entity.js.map +1 -1
  152. package/dist/entities/user-view-metadata.entity.js +2 -2
  153. package/dist/entities/user-view-metadata.entity.js.map +1 -1
  154. package/dist/entities/user.entity.js +13 -15
  155. package/dist/entities/user.entity.js.map +1 -1
  156. package/dist/entities/view-metadata.entity.js +3 -3
  157. package/dist/entities/view-metadata.entity.js.map +1 -1
  158. package/dist/helpers/date.helper.d.ts +1 -1
  159. package/dist/helpers/date.helper.d.ts.map +1 -1
  160. package/dist/helpers/date.helper.js +24 -2
  161. package/dist/helpers/date.helper.js.map +1 -1
  162. package/dist/helpers/model-metadata-helper.service.d.ts +4 -1
  163. package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
  164. package/dist/helpers/model-metadata-helper.service.js +48 -30
  165. package/dist/helpers/model-metadata-helper.service.js.map +1 -1
  166. package/dist/helpers/module.helper.d.ts.map +1 -1
  167. package/dist/helpers/module.helper.js +1 -3
  168. package/dist/helpers/module.helper.js.map +1 -1
  169. package/dist/helpers/schematic.service.d.ts +9 -3
  170. package/dist/helpers/schematic.service.d.ts.map +1 -1
  171. package/dist/helpers/schematic.service.js +49 -32
  172. package/dist/helpers/schematic.service.js.map +1 -1
  173. package/dist/helpers/solid-registry.d.ts +3 -2
  174. package/dist/helpers/solid-registry.d.ts.map +1 -1
  175. package/dist/helpers/solid-registry.js +10 -0
  176. package/dist/helpers/solid-registry.js.map +1 -1
  177. package/dist/helpers/typeorm-db-helper.d.ts +3 -0
  178. package/dist/helpers/typeorm-db-helper.d.ts.map +1 -0
  179. package/dist/helpers/typeorm-db-helper.js +24 -0
  180. package/dist/helpers/typeorm-db-helper.js.map +1 -0
  181. package/dist/index.d.ts +4 -1
  182. package/dist/index.d.ts.map +1 -1
  183. package/dist/index.js +4 -1
  184. package/dist/index.js.map +1 -1
  185. package/dist/interfaces.d.ts +3 -0
  186. package/dist/interfaces.d.ts.map +1 -1
  187. package/dist/interfaces.js.map +1 -1
  188. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
  189. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +6 -1
  190. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
  191. package/dist/seeders/module-metadata-seeder.service.d.ts +1 -1
  192. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  193. package/dist/seeders/module-metadata-seeder.service.js +39 -17
  194. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  195. package/dist/seeders/seed-data/solid-core-metadata.json +53 -468
  196. package/dist/seeders/system-fields-seeder.service.d.ts.map +1 -1
  197. package/dist/seeders/system-fields-seeder.service.js +1 -1
  198. package/dist/seeders/system-fields-seeder.service.js.map +1 -1
  199. package/dist/services/ai-interaction.service.js +1 -1
  200. package/dist/services/ai-interaction.service.js.map +1 -1
  201. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts.map +1 -1
  202. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js +6 -4
  203. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js.map +1 -1
  204. package/dist/services/crud-helper.service.d.ts +8 -0
  205. package/dist/services/crud-helper.service.d.ts.map +1 -1
  206. package/dist/services/crud-helper.service.js +28 -5
  207. package/dist/services/crud-helper.service.js.map +1 -1
  208. package/dist/services/crud.service.d.ts +4 -1
  209. package/dist/services/crud.service.d.ts.map +1 -1
  210. package/dist/services/crud.service.js +87 -7
  211. package/dist/services/crud.service.js.map +1 -1
  212. package/dist/services/field-metadata.service.d.ts +143 -6
  213. package/dist/services/field-metadata.service.d.ts.map +1 -1
  214. package/dist/services/field-metadata.service.js +211 -56
  215. package/dist/services/field-metadata.service.js.map +1 -1
  216. package/dist/services/menu-item-metadata.service.d.ts +3 -1
  217. package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
  218. package/dist/services/menu-item-metadata.service.js +31 -11
  219. package/dist/services/menu-item-metadata.service.js.map +1 -1
  220. package/dist/services/model-metadata.service.d.ts.map +1 -1
  221. package/dist/services/model-metadata.service.js +14 -3
  222. package/dist/services/model-metadata.service.js.map +1 -1
  223. package/dist/services/mq-message.service.d.ts.map +1 -1
  224. package/dist/services/mq-message.service.js +3 -4
  225. package/dist/services/mq-message.service.js.map +1 -1
  226. package/dist/services/queues/publisher-factory.service.d.ts.map +1 -1
  227. package/dist/services/queues/publisher-factory.service.js +4 -0
  228. package/dist/services/queues/publisher-factory.service.js.map +1 -1
  229. package/dist/{providers → services/selection-providers}/list-of-values-selection-providers.service.d.ts +2 -2
  230. package/dist/services/selection-providers/list-of-values-selection-providers.service.d.ts.map +1 -0
  231. package/dist/{providers → services/selection-providers}/list-of-values-selection-providers.service.js +3 -3
  232. package/dist/services/selection-providers/list-of-values-selection-providers.service.js.map +1 -0
  233. package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.d.ts +20 -0
  234. package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.d.ts.map +1 -0
  235. package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.js +87 -0
  236. package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.js.map +1 -0
  237. package/dist/services/setting.service.d.ts.map +1 -1
  238. package/dist/services/setting.service.js +2 -1
  239. package/dist/services/setting.service.js.map +1 -1
  240. package/dist/services/solid-introspect.service.d.ts +19 -3
  241. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  242. package/dist/services/solid-introspect.service.js +83 -11
  243. package/dist/services/solid-introspect.service.js.map +1 -1
  244. package/dist/services/view-metadata.service.d.ts +3 -1
  245. package/dist/services/view-metadata.service.d.ts.map +1 -1
  246. package/dist/services/view-metadata.service.js +31 -5
  247. package/dist/services/view-metadata.service.js.map +1 -1
  248. package/dist/solid-core.module.d.ts.map +1 -1
  249. package/dist/solid-core.module.js +5 -1
  250. package/dist/solid-core.module.js.map +1 -1
  251. package/dist/subscribers/audit.subscriber.d.ts +3 -2
  252. package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
  253. package/dist/subscribers/audit.subscriber.js +6 -12
  254. package/dist/subscribers/audit.subscriber.js.map +1 -1
  255. package/dist/subscribers/computed-entity-field.subscriber.d.ts +3 -2
  256. package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
  257. package/dist/subscribers/computed-entity-field.subscriber.js +7 -9
  258. package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
  259. package/dist/subscribers/created-by-updated-by.subscriber.d.ts +4 -2
  260. package/dist/subscribers/created-by-updated-by.subscriber.d.ts.map +1 -1
  261. package/dist/subscribers/created-by-updated-by.subscriber.js +10 -8
  262. package/dist/subscribers/created-by-updated-by.subscriber.js.map +1 -1
  263. package/dist/subscribers/field-metadata.subscriber.d.ts.map +1 -1
  264. package/dist/subscribers/field-metadata.subscriber.js +0 -1
  265. package/dist/subscribers/field-metadata.subscriber.js.map +1 -1
  266. package/dist/subscribers/model-metadata.subscriber.d.ts.map +1 -1
  267. package/dist/subscribers/model-metadata.subscriber.js +3 -2
  268. package/dist/subscribers/model-metadata.subscriber.js.map +1 -1
  269. package/dist/subscribers/soft-delete-aware-event.subscriber.d.ts +3 -2
  270. package/dist/subscribers/soft-delete-aware-event.subscriber.d.ts.map +1 -1
  271. package/dist/subscribers/soft-delete-aware-event.subscriber.js +6 -11
  272. package/dist/subscribers/soft-delete-aware-event.subscriber.js.map +1 -1
  273. package/dist/tsconfig.tsbuildinfo +1 -1
  274. package/package.json +1 -1
  275. package/sql/mssql/proc_CleanupModelMetadata.sql +175 -0
  276. package/sql/mssql/proc_CleanupModuleMetadata.sql +78 -0
  277. package/sql/mssql/scratchpad.sql +10 -0
  278. package/sql/postgres/proc_CleanupModelMetadata.sql +148 -0
  279. package/sql/postgres/proc_CleanupModuleMetadata.sql +50 -0
  280. package/sql/postgres/scratchpad.sql +12 -0
  281. package/sql-server-changes.txt +88 -0
  282. package/src/commands/mcp.command.ts +215 -0
  283. package/src/commands/refresh-model.command.ts +37 -5
  284. package/src/commands/remove-fields.command.ts +1 -1
  285. package/src/commands/seed.command.ts +34 -15
  286. package/src/controllers/authentication.controller.ts +1 -1
  287. package/src/controllers/email-template.controller.ts +1 -1
  288. package/src/controllers/field-metadata.controller.ts +7 -1
  289. package/src/controllers/media-storage-provider-metadata.controller.ts +1 -1
  290. package/src/controllers/model-metadata.controller.ts +1 -1
  291. package/src/controllers/module-metadata.controller.ts +1 -1
  292. package/src/controllers/otp-authentication.controller.ts +1 -1
  293. package/src/controllers/service.controller.ts +1 -1
  294. package/src/controllers/sms-template.controller.ts +1 -1
  295. package/src/controllers/test-queue.controller.ts +1 -1
  296. package/src/controllers/test.controller.ts +1 -1
  297. package/src/dtos/create-ai-interaction.dto.ts +16 -9
  298. package/src/dtos/create-field-metadata.dto.ts +42 -12
  299. package/src/dtos/create-import-transaction.dto.ts +0 -4
  300. package/src/dtos/create-model-metadata.dto.ts +10 -0
  301. package/src/dtos/create-role-metadata.dto.ts +8 -2
  302. package/src/dtos/resolve-s3-url.dto.ts +33 -0
  303. package/src/dtos/update-ai-interaction.dto.ts +16 -9
  304. package/src/dtos/update-field-metadata.dto.ts +1 -2
  305. package/src/dtos/update-import-transaction.dto.ts +0 -4
  306. package/src/entities/action-metadata.entity.ts +4 -4
  307. package/src/entities/ai-interaction.entity.ts +16 -12
  308. package/src/entities/chatter-message-details.entity.ts +18 -18
  309. package/src/entities/chatter-message.entity.ts +2 -2
  310. package/src/entities/common.entity.ts +19 -10
  311. package/src/entities/dashboard-question-sql-dataset-config.entity.ts +2 -2
  312. package/src/entities/dashboard-question.entity.ts +3 -3
  313. package/src/entities/dashboard-variable.entity.ts +3 -3
  314. package/src/entities/dashboard.entity.ts +1 -1
  315. package/src/entities/email-template.entity.ts +4 -3
  316. package/src/entities/export-template.entity.ts +2 -2
  317. package/src/entities/export-transaction.entity.ts +2 -2
  318. package/src/entities/field-metadata.entity.ts +6 -3
  319. package/src/entities/import-transaction-error-log.entity.ts +2 -2
  320. package/src/entities/import-transaction.entity.ts +2 -5
  321. package/src/entities/legacy-common-with-id.entity.ts +11 -0
  322. package/src/entities/legacy-common.entity.ts +57 -0
  323. package/src/entities/list-of-values.entity.ts +2 -2
  324. package/src/entities/locale.entity.ts +1 -1
  325. package/src/entities/media.entity.ts +25 -25
  326. package/src/entities/menu-item-metadata.entity.ts +4 -4
  327. package/src/entities/model-metadata.entity.ts +9 -2
  328. package/src/entities/mq-message-queue.entity.ts +1 -1
  329. package/src/entities/mq-message.entity.ts +34 -34
  330. package/src/entities/saved-filters.entity.ts +5 -5
  331. package/src/entities/scheduled-job.entity.ts +4 -4
  332. package/src/entities/security-rule.entity.ts +2 -2
  333. package/src/entities/setting.entity.ts +2 -2
  334. package/src/entities/sms-template.entity.ts +2 -2
  335. package/src/entities/user-activity-history.entity.ts +14 -14
  336. package/src/entities/user-view-metadata.entity.ts +2 -2
  337. package/src/entities/user.entity.ts +15 -15
  338. package/src/entities/view-metadata.entity.ts +3 -3
  339. package/src/helpers/date.helper.ts +31 -10
  340. package/src/helpers/model-metadata-helper.service.ts +63 -32
  341. package/src/helpers/module.helper.ts +4 -3
  342. package/src/helpers/schematic.service.ts +72 -46
  343. package/src/helpers/solid-registry.ts +14 -2
  344. package/src/helpers/typeorm-db-helper.ts +26 -0
  345. package/src/index.ts +4 -1
  346. package/src/interfaces.ts +3 -0
  347. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +17 -21
  348. package/src/seeders/module-metadata-seeder.service.ts +73 -29
  349. package/src/seeders/seed-data/solid-core-metadata.json +55 -470
  350. package/src/seeders/system-fields-seeder.service.ts +34 -35
  351. package/src/services/ai-interaction.service.ts +1 -1
  352. package/src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts +13 -9
  353. package/src/services/crud-helper.service.ts +32 -4
  354. package/src/services/crud.service.ts +158 -10
  355. package/src/services/field-metadata.service.ts +272 -67
  356. package/src/services/menu-item-metadata.service.ts +81 -50
  357. package/src/services/model-metadata.service.ts +18 -3
  358. package/src/services/mq-message.service.ts +16 -15
  359. package/src/services/queues/publisher-factory.service.ts +2 -1
  360. package/src/{providers → services/selection-providers}/list-of-values-selection-providers.service.ts +2 -2
  361. package/src/services/selection-providers/pseudo-foreign-key-selection-provider.service.ts +94 -0
  362. package/src/services/setting.service.ts +13 -10
  363. package/src/services/solid-introspect.service.ts +110 -10
  364. package/src/services/view-metadata.service.ts +48 -18
  365. package/src/solid-core.module.ts +5 -1
  366. package/src/subscribers/audit.subscriber.ts +12 -8
  367. package/src/subscribers/computed-entity-field.subscriber.ts +13 -7
  368. package/src/subscribers/created-by-updated-by.subscriber.ts +14 -8
  369. package/src/subscribers/field-metadata.subscriber.ts +1 -1
  370. package/src/subscribers/model-metadata.subscriber.ts +4 -2
  371. package/src/subscribers/soft-delete-aware-event.subscriber.ts +12 -6
  372. package/dist/providers/list-of-values-selection-providers.service.d.ts.map +0 -1
  373. package/dist/providers/list-of-values-selection-providers.service.js.map +0 -1
  374. package/src/commands/ingest-rag-chunking-strategy-for.md +0 -224
  375. package/src/entities/user.entity.ts.bkp +0 -144
  376. package/src/services/docker exec -it mssql //" +0 -8
@@ -1,18 +1,24 @@
1
- import { Injectable } from "@nestjs/common";
1
+ import { Injectable, Scope } from "@nestjs/common";
2
2
  import { InjectDataSource } from "@nestjs/typeorm";
3
3
  import { User } from "src/entities/user.entity";
4
4
  import { ActiveUserData } from "src/interfaces/active-user-data.interface";
5
5
  import { RequestContextService } from "src/services/request-context.service";
6
6
  import { DataSource, EntitySubscriberInterface, EventSubscriber, InsertEvent, UpdateEvent } from "typeorm";
7
7
 
8
- @Injectable()
9
- @EventSubscriber()
8
+ @Injectable({scope: Scope.TRANSIENT})
9
+ // @EventSubscriber()
10
10
  export class CreatedByUpdatedBySubscriber implements EntitySubscriberInterface {
11
+ private dataSource: DataSource;
11
12
  constructor(
12
13
  @InjectDataSource()
13
- private readonly dataSource: DataSource,
14
+ private readonly defaultDataSource: DataSource,
14
15
  private readonly requestContextService: RequestContextService,
15
16
  ) {
17
+ // this.dataSource.subscribers.push(this);
18
+ }
19
+
20
+ bindToDataSource(dataSource: DataSource) {
21
+ this.dataSource = dataSource;
16
22
  this.dataSource.subscribers.push(this);
17
23
  }
18
24
 
@@ -36,16 +42,16 @@ export class CreatedByUpdatedBySubscriber implements EntitySubscriberInterface {
36
42
 
37
43
  const loadedUser = await this.loadUser(activeUserOrUndefined as unknown as ActiveUserData);
38
44
  if (isInsert) {
39
- event.entity.createdBy = loadedUser;
40
- event.entity.updatedBy = loadedUser; // For insert, we set both createdBy and updatedBy to the same user
45
+ event.entity.createdBy = loadedUser?.id;
46
+ event.entity.updatedBy = loadedUser?.id; // For insert, we set both createdBy and updatedBy to the same user
41
47
  }
42
48
  else {
43
- event.entity.updatedBy = loadedUser;
49
+ event.entity.updatedBy = loadedUser?.id;
44
50
  }
45
51
  }
46
52
 
47
53
  private async loadUser(activeUser: ActiveUserData): Promise<User> {
48
- const userRepo = this.dataSource.getRepository(User); // Assuming 'User' is the entity name for users in your application
54
+ const userRepo = this.defaultDataSource.getRepository(User); // Assuming 'User' is the entity name for users in your application
49
55
  const loadedUser = await userRepo.findOne({
50
56
  where: { id: activeUser.sub }, // Assuming 'sub' is the user ID in the JWT token
51
57
  });
@@ -4,7 +4,7 @@ import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.se
4
4
  import { DataSource, EntitySubscriberInterface, EventSubscriber, InsertEvent, UpdateEvent } from 'typeorm';
5
5
  import { FieldMetadata } from '../entities/field-metadata.entity';
6
6
 
7
- @EventSubscriber()
7
+ // @EventSubscriber()
8
8
  @Injectable()
9
9
  export class FieldMetadataSubscriber implements EntitySubscriberInterface<FieldMetadata> {
10
10
  private readonly logger = new Logger(FieldMetadataSubscriber.name);
@@ -5,7 +5,7 @@ import { DataSource, EntitySubscriberInterface, EventSubscriber, InsertEvent } f
5
5
  import { FieldMetadata } from '../entities/field-metadata.entity';
6
6
  import { ModelMetadata } from '../entities/model-metadata.entity';
7
7
 
8
- @EventSubscriber()
8
+ // @EventSubscriber()
9
9
  @Injectable()
10
10
  export class ModelMetadataSubscriber implements EntitySubscriberInterface<ModelMetadata> {
11
11
  private readonly logger = new Logger(ModelMetadataSubscriber.name);
@@ -35,7 +35,9 @@ export class ModelMetadataSubscriber implements EntitySubscriberInterface<ModelM
35
35
 
36
36
 
37
37
  private systemFieldMetadataToBeAdded(event: InsertEvent<ModelMetadata>) {
38
- const systemFieldsDefaultMetadata = this.modelHelperService.getSystemFieldsMetadata();
38
+ const isLegacyTable = event.entity.isLegacyTable;
39
+ const isLegacyTableWithId = event.entity.isLegacyTableWithId;
40
+ const systemFieldsDefaultMetadata = this.modelHelperService.getSystemFieldsMetadata(isLegacyTable, isLegacyTableWithId);
39
41
  // map and add the model as event.entity for the above metadata
40
42
  const systemFieldsMetadata = systemFieldsDefaultMetadata.map(field => ({
41
43
  ...field,
@@ -1,19 +1,25 @@
1
- import { Injectable, Logger, NotFoundException } from "@nestjs/common";
1
+ import { Injectable, Logger, NotFoundException, Scope } from "@nestjs/common";
2
2
  import { InjectDataSource } from "@nestjs/typeorm";
3
3
  import { DataSource, EntitySubscriberInterface, EventSubscriber, RecoverEvent, SoftRemoveEvent } from "typeorm";
4
4
 
5
5
 
6
- @EventSubscriber()
7
- @Injectable()
6
+ // @EventSubscriber()
7
+ @Injectable({scope: Scope.TRANSIENT})
8
8
  export class SoftDeleteAwareEventSubscriber implements EntitySubscriberInterface {
9
9
  private readonly logger = new Logger(SoftDeleteAwareEventSubscriber.name);
10
+ private dataSource: DataSource;
10
11
  constructor(
11
- @InjectDataSource()
12
- private readonly dataSource: DataSource,
12
+ // @InjectDataSource()
13
+ // private readonly dataSource: DataSource,
13
14
  ) {
14
- this.dataSource.subscribers.push(this);
15
+ // this.dataSource.subscribers.push(this);
15
16
  }
16
17
 
18
+ bindToDataSource(dataSource: DataSource) {
19
+ this.dataSource = dataSource;
20
+ this.dataSource.subscribers.push(this);
21
+ }
22
+
17
23
  beforeSoftRemove(event: SoftRemoveEvent<any>): Promise<any> | void {
18
24
  if (!event.entity) return;
19
25
  const entity = event.entity;
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-of-values-selection-providers.service.d.ts","sourceRoot":"","sources":["../../src/providers/list-of-values-selection-providers.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAIzE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAIxG,UAAU,2BAA4B,SAAQ,yBAAyB;IACnE,IAAI,EAAE,MAAM,CAAC;CAChB;AAID,qBAEa,6BAA8B,YAAW,kBAAkB,CAAC,2BAA2B,CAAC;IACrF,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,mBAAmB;IAErE,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAId,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,wBAAwB,GAAG,GAAG,CAAC;IAMhG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,SAAS,wBAAwB,EAAE,CAAC;CA0B/G"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-of-values-selection-providers.service.js","sourceRoot":"","sources":["../../src/providers/list-of-values-selection-providers.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,+EAAyE;AAEzE,6FAAgF;AAChF,2CAA4C;AAG5C,iEAA4D;AAM5D,MAAM,aAAa,GAAG,GAAG,CAAC;AAInB,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACtC,YAA6B,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAAI,CAAC;IAE1E,IAAI;QACA,OAAO,+BAA+B,CAAC;IAC3C,CAAC;IAED,IAAI;QACA,OAAO,wBAAwB,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,WAAmB,EAAE,IAAiC;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAElF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAAiC;QACzD,MAAM,gBAAgB,GAAG,IAAI,kCAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,gBAAgB,CAAC,OAAO,GAAG;gBACvB,IAAI,EAAE;oBACF,GAAG,EAAE,IAAI,CAAC,IAAI;iBACjB;aACJ,CAAC;QACN,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACR,gBAAgB,CAAC,OAAO,GAAG;gBACvB,GAAG,gBAAgB,CAAC,OAAO;gBAC3B,OAAO,EAAE;oBACL,UAAU,EAAE,IAAI,KAAK,GAAG;iBAC3B;aACJ,CAAC;QACN,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC3C,OAAO;gBACH,KAAK,EAAE,GAAG,CAAC,OAAO;gBAClB,KAAK,EAAE,GAAG,CAAC,KAAK;aACnB,CAAA;QACL,CAAC,CAAC,CAAC;QACH,OAAO,eAAe,CAAC;IAC3B,CAAC;CACJ,CAAA;AA3CY,sEAA6B;wCAA7B,6BAA6B;IAFzC,IAAA,gDAAiB,GAAE;IACnB,IAAA,mBAAU,GAAE;qCAEyC,4CAAmB;GAD5D,6BAA6B,CA2CzC","sourcesContent":["\nimport { ListOfValuesService } from \"../services/list-of-values.service\";\nimport { PaginationQueryDto } from \"src/dtos/pagination-query.dto\";\nimport { SelectionProvider } from \"src/decorators/selection-provider.decorator\";\nimport { Injectable } from \"@nestjs/common\";\nimport { ISelectionProvider, ISelectionProviderContext, ISelectionProviderValues } from \"../interfaces\";\nimport { filter } from \"rxjs\";\nimport { BasicFilterDto } from \"src/dtos/basic-filters.dto\";\n\ninterface ListOfValuesProviderContext extends ISelectionProviderContext {\n type: string;\n}\n\nconst DEFAULT_LIMIT = 100;\n\n@SelectionProvider()\n@Injectable()\nexport class ListOfValuesSelectionProvider implements ISelectionProvider<ListOfValuesProviderContext> {\n constructor(private readonly listOfValuesService: ListOfValuesService) { }\n\n name(): string {\n return 'ListOfValuesSelectionProvider';\n }\n\n help(): string {\n return \"# This is lov proivder\";\n }\n\n value(optionValue: string, ctxt: ListOfValuesProviderContext): Promise<ISelectionProviderValues | any> {\n const lov = this.listOfValuesService.findOneByValueAndType(optionValue, ctxt.type)\n\n throw new Error(\"Method not implemented.\");\n }\n\n async values(query: string, ctxt: ListOfValuesProviderContext): Promise<readonly ISelectionProviderValues[]> {\n const basicFilterQuery = new BasicFilterDto(DEFAULT_LIMIT, 0);\n if (ctxt.type) {\n basicFilterQuery.filters = {\n type: {\n $eq: ctxt.type\n }\n };\n }\n if (query) {\n basicFilterQuery.filters = {\n ...basicFilterQuery.filters,\n display: {\n $containsi: `%${query}%`\n }\n };\n }\n const lovs = await this.listOfValuesService.find(basicFilterQuery);\n const selectionValues = lovs.records.map(lov => {\n return {\n label: lov.display,\n value: lov.value\n }\n });\n return selectionValues;\n }\n}"]}
@@ -1,224 +0,0 @@
1
- # Optimized RAG Chunking Strategy for Solid No-Code Platform Metadata
2
-
3
- ## Executive Summary
4
-
5
- This document outlines an intelligent chunking strategy for ingesting Solid no-code platform metadata into R2R vector database to enable effective retrieval for LLM-powered MCP tools.
6
-
7
- ## System Architecture Context
8
-
9
- **Platform**: Solid no-code platform with metadata-driven code generation
10
- **RAG System**: R2R (https://r2r-docs.sciphi.ai/)
11
- **Integration**: MCP client → MCP server → LLM tools (createModule, createModel, addField, etc.)
12
- **Workflow**: User chat → tool call → RAG retrieval → LLM context → metadata JSON generation → database seeding → code generation
13
-
14
- ## Chunking Strategy
15
-
16
- ### 1. Hierarchical Semantic Chunking
17
-
18
- **Primary Strategy**: Create chunks based on logical metadata boundaries while maintaining semantic relationships.
19
-
20
- #### Level 1: Module-Level Chunks
21
- ```
22
- Chunk Type: "module_overview"
23
- Content: Module metadata + high-level model summaries
24
- Size: ~500-800 tokens
25
- Purpose: Provide context for module-level operations
26
- ```
27
-
28
- #### Level 2: Model-Level Chunks
29
- ```
30
- Chunk Type: "model_definition"
31
- Content: Complete model with all fields + relationships
32
- Size: ~800-1200 tokens per model
33
- Purpose: Support model creation/modification operations
34
- ```
35
-
36
- #### Level 3: Field-Level Chunks
37
- ```
38
- Chunk Type: "field_specification"
39
- Content: Individual field + its configuration + usage patterns
40
- Size: ~200-400 tokens per field
41
- Purpose: Enable precise field-level modifications
42
- ```
43
-
44
- #### Level 4: Cross-Reference Chunks
45
- ```
46
- Chunk Type: "relationship_mapping"
47
- Content: Relations between models + dependency chains
48
- Size: ~300-600 tokens
49
- Purpose: Maintain referential integrity during modifications
50
- ```
51
-
52
- ### 2. Functional Domain Chunks
53
-
54
- #### UI/UX Configuration Chunks
55
- ```
56
- Chunk Type: "ui_configuration"
57
- Content: Views + layouts + actions + menus (grouped by feature)
58
- Size: ~600-1000 tokens
59
- Purpose: Support UI generation and modification
60
- ```
61
-
62
- #### Security & Permissions Chunks
63
- ```
64
- Chunk Type: "security_rules"
65
- Content: Roles + permissions + security rules (grouped)
66
- Size: ~400-800 tokens
67
- Purpose: Maintain security context during operations
68
- ```
69
-
70
- #### Integration Chunks
71
- ```
72
- Chunk Type: "system_integration"
73
- Content: Email/SMS templates + media providers + scheduled jobs
74
- Size: ~300-600 tokens per integration type
75
- Purpose: Support system-level configurations
76
- ```
77
-
78
- ### 3. Chunk Metadata Enhancement
79
-
80
- Each chunk should include structured metadata:
81
-
82
- ```json
83
- {
84
- "chunk_id": "unique_identifier",
85
- "chunk_type": "model_definition|field_specification|ui_configuration|etc",
86
- "module_name": "fees-portal",
87
- "model_name": "institute|feeType|etc",
88
- "component_names": ["field1", "field2"],
89
- "relationships": ["related_model1", "related_model2"],
90
- "last_modified": "timestamp",
91
- "version": "semantic_version",
92
- "dependencies": ["required_chunks"],
93
- "keywords": ["domain_specific_terms"]
94
- }
95
- ```
96
-
97
- ### 4. Overlap Strategy for Context Preservation
98
-
99
- - **Boundary Overlap**: 50-100 token overlap between related chunks
100
- - **Reference Preservation**: Include parent/child context in each chunk
101
- - **Relationship Chains**: Maintain connection information across chunk boundaries
102
-
103
- ## R2R Integration Implementation
104
-
105
- ### Document Ingestion API Usage
106
-
107
- Based on R2R documentation, use these endpoints:
108
-
109
- #### Initial Ingestion
110
- ```bash
111
- POST /v1/documents
112
- Content-Type: multipart/form-data
113
-
114
- # Ingest chunked documents with metadata
115
- curl -X POST "http://localhost:7272/v1/documents" \
116
- -H "Authorization: Bearer <token>" \
117
- -F "file=@chunk_module_overview.json" \
118
- -F "metadata={\"chunk_type\":\"module_overview\",\"module\":\"fees-portal\"}"
119
- ```
120
-
121
- #### Update Existing Documents
122
- ```bash
123
- PUT /v1/documents/{document_id}
124
- Content-Type: multipart/form-data
125
-
126
- # Update specific chunks when metadata changes
127
- curl -X PUT "http://localhost:7272/v1/documents/{doc_id}" \
128
- -H "Authorization: Bearer <token>" \
129
- -F "file=@updated_chunk.json" \
130
- -F "metadata={\"version\":\"1.1.0\",\"last_modified\":\"2025-01-15T10:30:00Z\"}"
131
- ```
132
-
133
- ### CLI Ingestion Command Structure
134
-
135
- Create a CLI command for automated ingestion:
136
-
137
- ```bash
138
- # Initial ingestion
139
- solid-cli rag:ingest --metadata-file ./metadata.json --strategy hierarchical
140
-
141
- # Update ingestion (incremental)
142
- solid-cli rag:update --changed-components "institute.fields,views" --strategy differential
143
-
144
- # Full re-ingestion
145
- solid-cli rag:reingest --metadata-file ./metadata.json --force
146
- ```
147
-
148
- ## Retrieval Optimization
149
-
150
- ### Query Enhancement Strategies
151
-
152
- 1. **Semantic Search**: Use embedding-based retrieval for concept matching
153
- 2. **Hybrid Search**: Combine semantic + keyword search for precision
154
- 3. **Contextual Filtering**: Apply metadata filters based on operation type
155
-
156
- ### MCP Tool Integration
157
-
158
- Each MCP tool should specify its retrieval requirements:
159
-
160
- ```python
161
- # Example for addField tool
162
- def addField(model_name: str, field_spec: dict):
163
- # Retrieve relevant chunks
164
- query = f"model definition {model_name} field types relationships"
165
-
166
- context_chunks = r2r_client.search(
167
- query=query,
168
- filters={
169
- "chunk_type": ["model_definition", "field_specification"],
170
- "model_name": model_name,
171
- "module_name": "fees-portal"
172
- },
173
- limit=5
174
- )
175
-
176
- # Pass context to LLM for field generation
177
- return generate_field_json(context_chunks, field_spec)
178
- ```
179
-
180
- ## Versioning & Change Management
181
-
182
- ### Differential Updates
183
- - Track changes at component level (model, field, view, etc.)
184
- - Update only affected chunks + dependents
185
- - Maintain version history for rollback capability
186
-
187
- ### Consistency Checks
188
- - Validate cross-references after updates
189
- - Ensure relationship integrity
190
- - Verify permission consistency
191
-
192
- ## Performance Considerations
193
-
194
- ### Chunk Size Optimization
195
- - Target 200-1200 tokens per chunk for optimal retrieval
196
- - Balance between context completeness and search precision
197
- - Monitor retrieval latency and adjust sizes accordingly
198
-
199
- ### Indexing Strategy
200
- - Create composite indexes on frequently queried metadata fields
201
- - Optimize for common query patterns (model + field combinations)
202
- - Regular index maintenance and optimization
203
-
204
- ## Implementation Checklist
205
-
206
- - [ ] Implement hierarchical chunking algorithm
207
- - [ ] Create metadata extraction and enhancement pipeline
208
- - [ ] Set up R2R ingestion endpoints integration
209
- - [ ] Build CLI commands for ingestion management
210
- - [ ] Develop retrieval optimization for each MCP tool
211
- - [ ] Implement versioning and change tracking
212
- - [ ] Create monitoring and performance metrics
213
- - [ ] Test with real metadata updates and tool operations
214
-
215
- ## Success Metrics
216
-
217
- 1. **Retrieval Accuracy**: >95% relevant context retrieval for tool operations
218
- 2. **Update Efficiency**: <30s for incremental metadata updates
219
- 3. **Context Quality**: LLM tools produce correct JSON with minimal hallucination
220
- 4. **System Performance**: <200ms average retrieval time per tool operation
221
-
222
- ---
223
-
224
- *This strategy ensures your RAG pipeline provides precise, contextual information to your MCP tools while maintaining system performance and update efficiency.*
@@ -1,144 +0,0 @@
1
- import { CommonEntity } from 'src/entities/common.entity';
2
- import { Column, Entity, JoinTable, ManyToMany } from 'typeorm';
3
- import { RoleMetadata } from './role-metadata.entity';
4
-
5
- @Entity("ss_iam_user")
6
- export class User extends CommonEntity {
7
- @Column({ nullable: true })
8
- fullName: string;
9
-
10
- @Column({ unique: true })
11
- username: string;
12
-
13
- @Column({ unique: true, nullable: true })
14
- email: string;
15
-
16
- @Column({ unique: true, nullable: true })
17
- mobile: string;
18
-
19
- /**
20
- * This was kept nullable for users created using provider of type Google etc.
21
- */
22
- @Column({ nullable: true })
23
- password: string;
24
-
25
- @Column({ default: false })
26
- forcePasswordChange: boolean = false;
27
-
28
- @Column({ name: 'last_login_provider', default: 'local' })
29
- lastLoginProvider: string;
30
-
31
- @Column({ name: "access_code", nullable: true })
32
- accessCode: string;
33
-
34
- @Column({ name: "google_access_token", nullable: true })
35
- googleAccessToken: string;
36
-
37
- @Column({ name: "google_id", nullable: true })
38
- googleId: string;
39
-
40
- @Column({ name: "google_profile_picture", nullable: true })
41
- googleProfilePicture: string;
42
-
43
- // @Column({ name: "otp", nullable: true })
44
- // otpOnLogin: string;
45
-
46
- // @Column({ name: "last_otp_created_at", nullable: true, type: 'timestamp' })
47
- // lastOtpOnLoginCreatedAt: Date;
48
-
49
- @Column({ default: false })
50
- active: boolean;
51
-
52
- // @Column('json', { nullable: true })
53
- // @JoinTable(
54
- // {
55
- // name: 'ss_iam_user_role_metadata',
56
- // joinColumn: { name: 'user_id', referencedColumnName: 'id', foreignKeyConstraintName: 'fk_ss_user_role_user_id' },
57
- // inverseJoinColumn: { name: 'role_id', referencedColumnName: 'id', foreignKeyConstraintName: 'fk_ss_user_role_role_id' }
58
- // }
59
- // )
60
- // @ManyToMany(
61
- // type => RoleMetadata,
62
- // (role) => role.users,
63
- // {
64
- // cascade: true, // or optionally just insert or update ['insert']
65
- // }
66
- // )
67
- // roles: RoleMetadata[];
68
- @ManyToMany(() => RoleMetadata, roleMetadata => roleMetadata.users, { cascade: true })
69
- @JoinTable()
70
- roles: RoleMetadata[];
71
-
72
- // @JoinTable(
73
- // {
74
- // name: 'ss_user_permission',
75
- // joinColumn: { name: 'user_id', referencedColumnName: 'id', foreignKeyConstraintName: 'fk_ss_user_permission_role_id' },
76
- // inverseJoinColumn: { name: 'permission_id', referencedColumnName: 'id', foreignKeyConstraintName: 'fk_ss_user_permission_user_id' }
77
- // }
78
- // )
79
- // @ManyToMany(
80
- // type => Permission,
81
- // (permission) => permission.users,
82
- // {
83
- // cascade: true, // or optionally just insert or update ['insert']
84
- // }
85
- // )
86
- // permissions: Permission[];
87
-
88
- // Forgot password fields
89
- // Email
90
- @Column({ name: "forgot_password_confirmed_at", nullable: true, type: 'timestamp' })
91
- forgotPasswordConfirmedAt: Date;
92
-
93
- @Column({ name: "verification_token_on_forgot_password", nullable: true })
94
- verificationTokenOnForgotPassword: string;
95
-
96
- @Column({ name: "verification_token_on_forgot_password_expires_at", nullable: true, type: 'timestamp' })
97
- verificationTokenOnForgotPasswordExpiresAt: Date;
98
-
99
- // Verification fields
100
- // Registration
101
- // Email
102
- @Column({ name: "email_verified_on_registration_at", nullable: true, type: 'timestamp' })
103
- emailVerifiedOnRegistrationAt: Date;
104
-
105
- @Column({ name: "email_verification_token_on_registration", nullable: true })
106
- emailVerificationTokenOnRegistration: string;
107
-
108
- @Column({ name: "email_verification_token_on_registration_expires_at", nullable: true, type: 'timestamp' })
109
- emailVerificationTokenOnRegistrationExpiresAt: Date;
110
-
111
- // Mobile
112
- @Column({ name: "mobile_verified_on_registration_at", nullable: true, type: 'timestamp' })
113
- mobileVerifiedOnRegistrationAt: Date;
114
-
115
- @Column({ name: "mobile_verification_token_on_registration", nullable: true })
116
- mobileVerificationTokenOnRegistration: string;
117
-
118
- @Column({ name: "mobile_verification_token_on_registration_expires_at", nullable: true, type: 'timestamp' })
119
- mobileVerificationTokenOnRegistrationExpiresAt: Date;
120
-
121
- // Login
122
- // Email
123
- @Column({ name: "email_verified_on_login_at", nullable: true, type: 'timestamp' })
124
- emailVerifiedOnLoginAt: Date;
125
-
126
- @Column({ name: "email_verification_token_on_login", nullable: true })
127
- emailVerificationTokenOnLogin: string;
128
-
129
- @Column({ name: "email_verification_token_on_login_expires_at", nullable: true, type: 'timestamp' })
130
- emailVerificationTokenOnLoginExpiresAt: Date;
131
-
132
- // Mobile
133
- @Column({ name: "mobile_verified_on_login_at", nullable: true, type: 'timestamp' })
134
- mobileVerifiedOnLoginAt: Date;
135
-
136
- @Column({ name: "mobile_verification_token_on_login", nullable: true })
137
- mobileVerificationTokenOnLogin: string;
138
-
139
- @Column({ name: "mobile_verification_token_on_login_expires_at", nullable: true, type: 'timestamp' })
140
- mobileVerificationTokenOnLoginExpiresAt: Date;
141
-
142
- @Column({ type: 'jsonb', nullable: true })
143
- customPayload: any;
144
- }
@@ -1,8 +0,0 @@
1
- docker exec -it mssql \
2
- /opt/mssql-tools18/bin/sqlcmd \
3
- -S localhost \
4
- -U sa \
5
- -P 'YourStrong!Passw0rd' \
6
- -d mswipe_erp_solidx \
7
- -C -b -r1 -e \
8
- -i /tmp/ReportsAndHRMS.sql