@solidxai/core 0.1.13-beta.0 → 0.1.13-beta.11

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 (725) hide show
  1. package/CHANGELOG.md +4343 -0
  2. package/dist/commands/run-tests.command.d.ts +7 -1
  3. package/dist/commands/run-tests.command.d.ts.map +1 -1
  4. package/dist/commands/run-tests.command.js +49 -3
  5. package/dist/commands/run-tests.command.js.map +1 -1
  6. package/dist/commands/seed.command.d.ts +2 -0
  7. package/dist/commands/seed.command.d.ts.map +1 -1
  8. package/dist/commands/seed.command.js +21 -0
  9. package/dist/commands/seed.command.js.map +1 -1
  10. package/dist/constants/chatter-message.constants.d.ts +1 -0
  11. package/dist/constants/chatter-message.constants.d.ts.map +1 -1
  12. package/dist/constants/chatter-message.constants.js +3 -1
  13. package/dist/constants/chatter-message.constants.js.map +1 -1
  14. package/dist/constants/draft-publish-fields.d.ts +2 -0
  15. package/dist/constants/draft-publish-fields.d.ts.map +1 -0
  16. package/dist/constants/draft-publish-fields.js +5 -0
  17. package/dist/constants/draft-publish-fields.js.map +1 -0
  18. package/dist/constants/media-file-types.d.ts +9 -0
  19. package/dist/constants/media-file-types.d.ts.map +1 -1
  20. package/dist/constants/media-file-types.js +27 -1
  21. package/dist/constants/media-file-types.js.map +1 -1
  22. package/dist/constants/user.constants.d.ts +2 -0
  23. package/dist/constants/user.constants.d.ts.map +1 -0
  24. package/dist/constants/user.constants.js +5 -0
  25. package/dist/constants/user.constants.js.map +1 -0
  26. package/dist/controllers/action-metadata.controller.d.ts +1 -1
  27. package/dist/controllers/action-metadata.controller.js +1 -1
  28. package/dist/controllers/agent-event.controller.d.ts +1 -1
  29. package/dist/controllers/agent-event.controller.js +1 -1
  30. package/dist/controllers/agent-session.controller.d.ts +1 -1
  31. package/dist/controllers/agent-session.controller.js +1 -1
  32. package/dist/controllers/chatter-message.controller.d.ts +5 -0
  33. package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
  34. package/dist/controllers/chatter-message.controller.js +14 -0
  35. package/dist/controllers/chatter-message.controller.js.map +1 -1
  36. package/dist/controllers/dashboard-user-layout.controller.d.ts +1 -1
  37. package/dist/controllers/dashboard-user-layout.controller.js +1 -1
  38. package/dist/controllers/email-template.controller.d.ts +1 -1
  39. package/dist/controllers/email-template.controller.js +1 -1
  40. package/dist/controllers/export-template.controller.d.ts +1 -1
  41. package/dist/controllers/export-template.controller.d.ts.map +1 -1
  42. package/dist/controllers/export-template.controller.js +6 -4
  43. package/dist/controllers/export-template.controller.js.map +1 -1
  44. package/dist/controllers/export-transaction.controller.d.ts +1 -1
  45. package/dist/controllers/export-transaction.controller.js +1 -1
  46. package/dist/controllers/import-transaction-error-log.controller.d.ts +1 -1
  47. package/dist/controllers/import-transaction-error-log.controller.js +1 -1
  48. package/dist/controllers/import-transaction.controller.d.ts +1 -1
  49. package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
  50. package/dist/controllers/import-transaction.controller.js +7 -7
  51. package/dist/controllers/import-transaction.controller.js.map +1 -1
  52. package/dist/controllers/list-of-values.controller.d.ts +1 -1
  53. package/dist/controllers/list-of-values.controller.js +1 -1
  54. package/dist/controllers/locale.controller.d.ts +1 -1
  55. package/dist/controllers/locale.controller.js +1 -1
  56. package/dist/controllers/mcp-audit-log.controller.d.ts +1 -1
  57. package/dist/controllers/mcp-audit-log.controller.js +1 -1
  58. package/dist/controllers/media.controller.d.ts +2 -2
  59. package/dist/controllers/media.controller.d.ts.map +1 -1
  60. package/dist/controllers/media.controller.js +13 -8
  61. package/dist/controllers/media.controller.js.map +1 -1
  62. package/dist/controllers/menu-item-metadata.controller.d.ts +1 -1
  63. package/dist/controllers/menu-item-metadata.controller.js +1 -1
  64. package/dist/controllers/model-sequence.controller.d.ts +1 -1
  65. package/dist/controllers/model-sequence.controller.js +1 -1
  66. package/dist/controllers/module-package.controller.d.ts.map +1 -1
  67. package/dist/controllers/module-package.controller.js +2 -3
  68. package/dist/controllers/module-package.controller.js.map +1 -1
  69. package/dist/controllers/mq-message-queue.controller.d.ts +1 -1
  70. package/dist/controllers/mq-message-queue.controller.js +1 -1
  71. package/dist/controllers/mq-message.controller.d.ts +1 -1
  72. package/dist/controllers/mq-message.controller.js +1 -1
  73. package/dist/controllers/permission-metadata.controller.d.ts +1 -1
  74. package/dist/controllers/permission-metadata.controller.js +1 -1
  75. package/dist/controllers/role-metadata.controller.d.ts +1 -1
  76. package/dist/controllers/role-metadata.controller.js +1 -1
  77. package/dist/controllers/saved-filters.controller.d.ts +1 -1
  78. package/dist/controllers/saved-filters.controller.js +1 -1
  79. package/dist/controllers/scheduled-job.controller.d.ts +1 -1
  80. package/dist/controllers/scheduled-job.controller.js +1 -1
  81. package/dist/controllers/security-rule.controller.d.ts +1 -1
  82. package/dist/controllers/security-rule.controller.js +1 -1
  83. package/dist/controllers/sms-template.controller.d.ts +1 -1
  84. package/dist/controllers/sms-template.controller.js +1 -1
  85. package/dist/controllers/user-activity-history.controller.d.ts +1 -1
  86. package/dist/controllers/user-activity-history.controller.js +1 -1
  87. package/dist/controllers/user-view-metadata.controller.d.ts +1 -1
  88. package/dist/controllers/user-view-metadata.controller.js +1 -1
  89. package/dist/controllers/user.controller.d.ts +2 -2
  90. package/dist/controllers/user.controller.js +2 -2
  91. package/dist/controllers/view-metadata.controller.d.ts +2 -2
  92. package/dist/controllers/view-metadata.controller.js +1 -1
  93. package/dist/controllers/workflow-definition.controller.d.ts +38 -0
  94. package/dist/controllers/workflow-definition.controller.d.ts.map +1 -0
  95. package/dist/controllers/workflow-definition.controller.js +272 -0
  96. package/dist/controllers/workflow-definition.controller.js.map +1 -0
  97. package/dist/controllers/workflow-execution-artifact.controller.d.ts +24 -0
  98. package/dist/controllers/workflow-execution-artifact.controller.d.ts.map +1 -0
  99. package/dist/controllers/workflow-execution-artifact.controller.js +179 -0
  100. package/dist/controllers/workflow-execution-artifact.controller.js.map +1 -0
  101. package/dist/controllers/workflow-execution-log.controller.d.ts +24 -0
  102. package/dist/controllers/workflow-execution-log.controller.d.ts.map +1 -0
  103. package/dist/controllers/workflow-execution-log.controller.js +179 -0
  104. package/dist/controllers/workflow-execution-log.controller.js.map +1 -0
  105. package/dist/controllers/workflow-execution.controller.d.ts +29 -0
  106. package/dist/controllers/workflow-execution.controller.d.ts.map +1 -0
  107. package/dist/controllers/workflow-execution.controller.js +227 -0
  108. package/dist/controllers/workflow-execution.controller.js.map +1 -0
  109. package/dist/controllers/workflow-secret.controller.d.ts +24 -0
  110. package/dist/controllers/workflow-secret.controller.d.ts.map +1 -0
  111. package/dist/controllers/workflow-secret.controller.js +179 -0
  112. package/dist/controllers/workflow-secret.controller.js.map +1 -0
  113. package/dist/controllers/workflow-step-execution.controller.d.ts +24 -0
  114. package/dist/controllers/workflow-step-execution.controller.d.ts.map +1 -0
  115. package/dist/controllers/workflow-step-execution.controller.js +179 -0
  116. package/dist/controllers/workflow-step-execution.controller.js.map +1 -0
  117. package/dist/controllers/workflow-trigger-execution.controller.d.ts +24 -0
  118. package/dist/controllers/workflow-trigger-execution.controller.d.ts.map +1 -0
  119. package/dist/controllers/workflow-trigger-execution.controller.js +179 -0
  120. package/dist/controllers/workflow-trigger-execution.controller.js.map +1 -0
  121. package/dist/decorators/workflow-node-provider.decorator.d.ts +4 -0
  122. package/dist/decorators/workflow-node-provider.decorator.d.ts.map +1 -0
  123. package/dist/decorators/workflow-node-provider.decorator.js +13 -0
  124. package/dist/decorators/workflow-node-provider.decorator.js.map +1 -0
  125. package/dist/dtos/basic-filters.dto.d.ts +0 -1
  126. package/dist/dtos/basic-filters.dto.d.ts.map +1 -1
  127. package/dist/dtos/basic-filters.dto.js +1 -6
  128. package/dist/dtos/basic-filters.dto.js.map +1 -1
  129. package/dist/dtos/create-workflow-definition.dto.d.ts +14 -0
  130. package/dist/dtos/create-workflow-definition.dto.d.ts.map +1 -0
  131. package/dist/dtos/create-workflow-definition.dto.js +92 -0
  132. package/dist/dtos/create-workflow-definition.dto.js.map +1 -0
  133. package/dist/dtos/create-workflow-execution-artifact.dto.d.ts +22 -0
  134. package/dist/dtos/create-workflow-execution-artifact.dto.d.ts.map +1 -0
  135. package/dist/dtos/create-workflow-execution-artifact.dto.js +139 -0
  136. package/dist/dtos/create-workflow-execution-artifact.dto.js.map +1 -0
  137. package/dist/dtos/create-workflow-execution-log.dto.d.ts +18 -0
  138. package/dist/dtos/create-workflow-execution-log.dto.d.ts.map +1 -0
  139. package/dist/dtos/create-workflow-execution-log.dto.js +116 -0
  140. package/dist/dtos/create-workflow-execution-log.dto.js.map +1 -0
  141. package/dist/dtos/create-workflow-execution.dto.d.ts +33 -0
  142. package/dist/dtos/create-workflow-execution.dto.d.ts.map +1 -0
  143. package/dist/dtos/create-workflow-execution.dto.js +186 -0
  144. package/dist/dtos/create-workflow-execution.dto.js.map +1 -0
  145. package/dist/dtos/create-workflow-secret.dto.d.ts +11 -0
  146. package/dist/dtos/create-workflow-secret.dto.d.ts.map +1 -0
  147. package/dist/dtos/create-workflow-secret.dto.js +74 -0
  148. package/dist/dtos/create-workflow-secret.dto.js.map +1 -0
  149. package/dist/dtos/create-workflow-step-execution.dto.d.ts +27 -0
  150. package/dist/dtos/create-workflow-step-execution.dto.d.ts.map +1 -0
  151. package/dist/dtos/create-workflow-step-execution.dto.js +171 -0
  152. package/dist/dtos/create-workflow-step-execution.dto.js.map +1 -0
  153. package/dist/dtos/create-workflow-trigger-execution.dto.d.ts +25 -0
  154. package/dist/dtos/create-workflow-trigger-execution.dto.d.ts.map +1 -0
  155. package/dist/dtos/create-workflow-trigger-execution.dto.js +158 -0
  156. package/dist/dtos/create-workflow-trigger-execution.dto.js.map +1 -0
  157. package/dist/dtos/execute-workflow.dto.d.ts +7 -0
  158. package/dist/dtos/execute-workflow.dto.d.ts.map +1 -0
  159. package/dist/dtos/execute-workflow.dto.js +11 -0
  160. package/dist/dtos/execute-workflow.dto.js.map +1 -0
  161. package/dist/dtos/update-workflow-definition.dto.d.ts +15 -0
  162. package/dist/dtos/update-workflow-definition.dto.d.ts.map +1 -0
  163. package/dist/dtos/update-workflow-definition.dto.js +97 -0
  164. package/dist/dtos/update-workflow-definition.dto.js.map +1 -0
  165. package/dist/dtos/update-workflow-execution-artifact.dto.d.ts +23 -0
  166. package/dist/dtos/update-workflow-execution-artifact.dto.d.ts.map +1 -0
  167. package/dist/dtos/update-workflow-execution-artifact.dto.js +143 -0
  168. package/dist/dtos/update-workflow-execution-artifact.dto.js.map +1 -0
  169. package/dist/dtos/update-workflow-execution-log.dto.d.ts +19 -0
  170. package/dist/dtos/update-workflow-execution-log.dto.d.ts.map +1 -0
  171. package/dist/dtos/update-workflow-execution-log.dto.js +121 -0
  172. package/dist/dtos/update-workflow-execution-log.dto.js.map +1 -0
  173. package/dist/dtos/update-workflow-execution.dto.d.ts +34 -0
  174. package/dist/dtos/update-workflow-execution.dto.d.ts.map +1 -0
  175. package/dist/dtos/update-workflow-execution.dto.js +190 -0
  176. package/dist/dtos/update-workflow-execution.dto.js.map +1 -0
  177. package/dist/dtos/update-workflow-secret.dto.d.ts +12 -0
  178. package/dist/dtos/update-workflow-secret.dto.d.ts.map +1 -0
  179. package/dist/dtos/update-workflow-secret.dto.js +80 -0
  180. package/dist/dtos/update-workflow-secret.dto.js.map +1 -0
  181. package/dist/dtos/update-workflow-step-execution.dto.d.ts +28 -0
  182. package/dist/dtos/update-workflow-step-execution.dto.d.ts.map +1 -0
  183. package/dist/dtos/update-workflow-step-execution.dto.js +175 -0
  184. package/dist/dtos/update-workflow-step-execution.dto.js.map +1 -0
  185. package/dist/dtos/update-workflow-trigger-execution.dto.d.ts +26 -0
  186. package/dist/dtos/update-workflow-trigger-execution.dto.d.ts.map +1 -0
  187. package/dist/dtos/update-workflow-trigger-execution.dto.js +163 -0
  188. package/dist/dtos/update-workflow-trigger-execution.dto.js.map +1 -0
  189. package/dist/dtos/validate-workflow-definition.dto.d.ts +4 -0
  190. package/dist/dtos/validate-workflow-definition.dto.d.ts.map +1 -0
  191. package/dist/dtos/validate-workflow-definition.dto.js +11 -0
  192. package/dist/dtos/validate-workflow-definition.dto.js.map +1 -0
  193. package/dist/entities/common.entity.d.ts +4 -0
  194. package/dist/entities/common.entity.d.ts.map +1 -1
  195. package/dist/entities/common.entity.js +25 -1
  196. package/dist/entities/common.entity.js.map +1 -1
  197. package/dist/entities/dashboard-user-layout.entity.js +2 -2
  198. package/dist/entities/dashboard-user-layout.entity.js.map +1 -1
  199. package/dist/entities/user.entity.d.ts.map +1 -1
  200. package/dist/entities/user.entity.js +36 -0
  201. package/dist/entities/user.entity.js.map +1 -1
  202. package/dist/entities/view-metadata.entity.js.map +1 -1
  203. package/dist/entities/workflow-definition.entity.d.ts +15 -0
  204. package/dist/entities/workflow-definition.entity.d.ts.map +1 -0
  205. package/dist/entities/workflow-definition.entity.js +77 -0
  206. package/dist/entities/workflow-definition.entity.js.map +1 -0
  207. package/dist/entities/workflow-execution-artifact.entity.d.ts +23 -0
  208. package/dist/entities/workflow-execution-artifact.entity.d.ts.map +1 -0
  209. package/dist/entities/workflow-execution-artifact.entity.js +114 -0
  210. package/dist/entities/workflow-execution-artifact.entity.js.map +1 -0
  211. package/dist/entities/workflow-execution-log.entity.d.ts +19 -0
  212. package/dist/entities/workflow-execution-log.entity.d.ts.map +1 -0
  213. package/dist/entities/workflow-execution-log.entity.js +96 -0
  214. package/dist/entities/workflow-execution-log.entity.js.map +1 -0
  215. package/dist/entities/workflow-execution.entity.d.ts +28 -0
  216. package/dist/entities/workflow-execution.entity.d.ts.map +1 -0
  217. package/dist/entities/workflow-execution.entity.js +125 -0
  218. package/dist/entities/workflow-execution.entity.js.map +1 -0
  219. package/dist/entities/workflow-secret.entity.d.ts +12 -0
  220. package/dist/entities/workflow-secret.entity.d.ts.map +1 -0
  221. package/dist/entities/workflow-secret.entity.js +67 -0
  222. package/dist/entities/workflow-secret.entity.js.map +1 -0
  223. package/dist/entities/workflow-step-execution.entity.d.ts +28 -0
  224. package/dist/entities/workflow-step-execution.entity.d.ts.map +1 -0
  225. package/dist/entities/workflow-step-execution.entity.js +139 -0
  226. package/dist/entities/workflow-step-execution.entity.js.map +1 -0
  227. package/dist/entities/workflow-trigger-execution.entity.d.ts +26 -0
  228. package/dist/entities/workflow-trigger-execution.entity.d.ts.map +1 -0
  229. package/dist/entities/workflow-trigger-execution.entity.js +128 -0
  230. package/dist/entities/workflow-trigger-execution.entity.js.map +1 -0
  231. package/dist/factories/mail.factory.d.ts.map +1 -1
  232. package/dist/factories/mail.factory.js +4 -0
  233. package/dist/factories/mail.factory.js.map +1 -1
  234. package/dist/factories/sms.factory.d.ts.map +1 -1
  235. package/dist/factories/sms.factory.js +4 -1
  236. package/dist/factories/sms.factory.js.map +1 -1
  237. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts +1 -0
  238. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts.map +1 -1
  239. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js +18 -11
  240. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js.map +1 -1
  241. package/dist/helpers/file-download.helper.d.ts +9 -0
  242. package/dist/helpers/file-download.helper.d.ts.map +1 -0
  243. package/dist/helpers/file-download.helper.js +14 -0
  244. package/dist/helpers/file-download.helper.js.map +1 -0
  245. package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
  246. package/dist/helpers/model-metadata-helper.service.js +30 -1
  247. package/dist/helpers/model-metadata-helper.service.js.map +1 -1
  248. package/dist/helpers/solid-registry.js +1 -1
  249. package/dist/helpers/solid-registry.js.map +1 -1
  250. package/dist/helpers/typeorm-db-helper.d.ts.map +1 -1
  251. package/dist/helpers/typeorm-db-helper.js +9 -0
  252. package/dist/helpers/typeorm-db-helper.js.map +1 -1
  253. package/dist/index.d.ts +58 -0
  254. package/dist/index.d.ts.map +1 -1
  255. package/dist/index.js +58 -0
  256. package/dist/index.js.map +1 -1
  257. package/dist/interfaces/workflow-node-handler.interface.d.ts +5 -0
  258. package/dist/interfaces/workflow-node-handler.interface.d.ts.map +1 -0
  259. package/dist/interfaces/workflow-node-handler.interface.js +3 -0
  260. package/dist/interfaces/workflow-node-handler.interface.js.map +1 -0
  261. package/dist/interfaces.d.ts +1 -0
  262. package/dist/interfaces.d.ts.map +1 -1
  263. package/dist/interfaces.js.map +1 -1
  264. package/dist/jobs/database/workflow-execution-publisher-database.service.d.ts +12 -0
  265. package/dist/jobs/database/workflow-execution-publisher-database.service.d.ts.map +1 -0
  266. package/dist/jobs/database/workflow-execution-publisher-database.service.js +39 -0
  267. package/dist/jobs/database/workflow-execution-publisher-database.service.js.map +1 -0
  268. package/dist/jobs/database/workflow-execution-queue-options-database.d.ts +8 -0
  269. package/dist/jobs/database/workflow-execution-queue-options-database.d.ts.map +1 -0
  270. package/dist/jobs/database/workflow-execution-queue-options-database.js +10 -0
  271. package/dist/jobs/database/workflow-execution-queue-options-database.js.map +1 -0
  272. package/dist/jobs/database/workflow-execution-subscriber-database.service.d.ts +19 -0
  273. package/dist/jobs/database/workflow-execution-subscriber-database.service.d.ts.map +1 -0
  274. package/dist/jobs/database/workflow-execution-subscriber-database.service.js +55 -0
  275. package/dist/jobs/database/workflow-execution-subscriber-database.service.js.map +1 -0
  276. package/dist/jobs/rabbitmq/workflow-execution-publisher.service.d.ts +12 -0
  277. package/dist/jobs/rabbitmq/workflow-execution-publisher.service.d.ts.map +1 -0
  278. package/dist/jobs/rabbitmq/workflow-execution-publisher.service.js +39 -0
  279. package/dist/jobs/rabbitmq/workflow-execution-publisher.service.js.map +1 -0
  280. package/dist/jobs/rabbitmq/workflow-execution-queue-options.d.ts +8 -0
  281. package/dist/jobs/rabbitmq/workflow-execution-queue-options.d.ts.map +1 -0
  282. package/dist/jobs/rabbitmq/workflow-execution-queue-options.js +10 -0
  283. package/dist/jobs/rabbitmq/workflow-execution-queue-options.js.map +1 -0
  284. package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.d.ts +17 -0
  285. package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.d.ts.map +1 -0
  286. package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.js +52 -0
  287. package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.js.map +1 -0
  288. package/dist/jobs/redis/workflow-execution-publisher-redis.service.d.ts +12 -0
  289. package/dist/jobs/redis/workflow-execution-publisher-redis.service.d.ts.map +1 -0
  290. package/dist/jobs/redis/workflow-execution-publisher-redis.service.js +39 -0
  291. package/dist/jobs/redis/workflow-execution-publisher-redis.service.js.map +1 -0
  292. package/dist/jobs/redis/workflow-execution-queue-options-redis.d.ts +8 -0
  293. package/dist/jobs/redis/workflow-execution-queue-options-redis.d.ts.map +1 -0
  294. package/dist/jobs/redis/workflow-execution-queue-options-redis.js +10 -0
  295. package/dist/jobs/redis/workflow-execution-queue-options-redis.js.map +1 -0
  296. package/dist/jobs/redis/workflow-execution-subscriber-redis.service.d.ts +17 -0
  297. package/dist/jobs/redis/workflow-execution-subscriber-redis.service.d.ts.map +1 -0
  298. package/dist/jobs/redis/workflow-execution-subscriber-redis.service.js +52 -0
  299. package/dist/jobs/redis/workflow-execution-subscriber-redis.service.js.map +1 -0
  300. package/dist/repository/workflow-definition.repository.d.ts +12 -0
  301. package/dist/repository/workflow-definition.repository.d.ts.map +1 -0
  302. package/dist/repository/workflow-definition.repository.js +39 -0
  303. package/dist/repository/workflow-definition.repository.js.map +1 -0
  304. package/dist/repository/workflow-execution-artifact.repository.d.ts +12 -0
  305. package/dist/repository/workflow-execution-artifact.repository.d.ts.map +1 -0
  306. package/dist/repository/workflow-execution-artifact.repository.js +39 -0
  307. package/dist/repository/workflow-execution-artifact.repository.js.map +1 -0
  308. package/dist/repository/workflow-execution-log.repository.d.ts +12 -0
  309. package/dist/repository/workflow-execution-log.repository.d.ts.map +1 -0
  310. package/dist/repository/workflow-execution-log.repository.js +39 -0
  311. package/dist/repository/workflow-execution-log.repository.js.map +1 -0
  312. package/dist/repository/workflow-execution.repository.d.ts +12 -0
  313. package/dist/repository/workflow-execution.repository.d.ts.map +1 -0
  314. package/dist/repository/workflow-execution.repository.js +39 -0
  315. package/dist/repository/workflow-execution.repository.js.map +1 -0
  316. package/dist/repository/workflow-secret.repository.d.ts +12 -0
  317. package/dist/repository/workflow-secret.repository.d.ts.map +1 -0
  318. package/dist/repository/workflow-secret.repository.js +39 -0
  319. package/dist/repository/workflow-secret.repository.js.map +1 -0
  320. package/dist/repository/workflow-step-execution.repository.d.ts +12 -0
  321. package/dist/repository/workflow-step-execution.repository.d.ts.map +1 -0
  322. package/dist/repository/workflow-step-execution.repository.js +39 -0
  323. package/dist/repository/workflow-step-execution.repository.js.map +1 -0
  324. package/dist/repository/workflow-trigger-execution.repository.d.ts +12 -0
  325. package/dist/repository/workflow-trigger-execution.repository.d.ts.map +1 -0
  326. package/dist/repository/workflow-trigger-execution.repository.js +39 -0
  327. package/dist/repository/workflow-trigger-execution.repository.js.map +1 -0
  328. package/dist/seeders/module-metadata-seeder.service.d.ts +6 -0
  329. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  330. package/dist/seeders/module-metadata-seeder.service.js +185 -27
  331. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  332. package/dist/seeders/module-test-data.service.d.ts +3 -1
  333. package/dist/seeders/module-test-data.service.d.ts.map +1 -1
  334. package/dist/seeders/module-test-data.service.js +8 -2
  335. package/dist/seeders/module-test-data.service.js.map +1 -1
  336. package/dist/seeders/seed-data/solid-core-metadata.json +11494 -5570
  337. package/dist/services/authentication.service.d.ts +4 -1
  338. package/dist/services/authentication.service.d.ts.map +1 -1
  339. package/dist/services/authentication.service.js +52 -4
  340. package/dist/services/authentication.service.js.map +1 -1
  341. package/dist/services/chatter-message.service.d.ts +11 -0
  342. package/dist/services/chatter-message.service.d.ts.map +1 -1
  343. package/dist/services/chatter-message.service.js +52 -3
  344. package/dist/services/chatter-message.service.js.map +1 -1
  345. package/dist/services/crud-helper.service.d.ts +5 -2
  346. package/dist/services/crud-helper.service.d.ts.map +1 -1
  347. package/dist/services/crud-helper.service.js +30 -32
  348. package/dist/services/crud-helper.service.js.map +1 -1
  349. package/dist/services/crud.service.d.ts +13 -1
  350. package/dist/services/crud.service.d.ts.map +1 -1
  351. package/dist/services/crud.service.js +92 -67
  352. package/dist/services/crud.service.js.map +1 -1
  353. package/dist/services/datasource-introspection.service.d.ts.map +1 -1
  354. package/dist/services/datasource-introspection.service.js.map +1 -1
  355. package/dist/services/draft-publish-helper.service.d.ts +52 -0
  356. package/dist/services/draft-publish-helper.service.d.ts.map +1 -0
  357. package/dist/services/draft-publish-helper.service.js +368 -0
  358. package/dist/services/draft-publish-helper.service.js.map +1 -0
  359. package/dist/services/internationalisation-helper.service.d.ts +19 -0
  360. package/dist/services/internationalisation-helper.service.d.ts.map +1 -0
  361. package/dist/services/internationalisation-helper.service.js +107 -0
  362. package/dist/services/internationalisation-helper.service.js.map +1 -0
  363. package/dist/services/locale.service.d.ts +1 -1
  364. package/dist/services/media.service.d.ts +3 -2
  365. package/dist/services/media.service.d.ts.map +1 -1
  366. package/dist/services/media.service.js +44 -29
  367. package/dist/services/media.service.js.map +1 -1
  368. package/dist/services/metadata-validation.service.d.ts +7 -0
  369. package/dist/services/metadata-validation.service.d.ts.map +1 -0
  370. package/dist/services/metadata-validation.service.js +42 -0
  371. package/dist/services/metadata-validation.service.js.map +1 -0
  372. package/dist/services/model-metadata.service.d.ts.map +1 -1
  373. package/dist/services/model-metadata.service.js +2 -1
  374. package/dist/services/model-metadata.service.js.map +1 -1
  375. package/dist/services/object.utils.d.ts +2 -0
  376. package/dist/services/object.utils.d.ts.map +1 -0
  377. package/dist/services/object.utils.js +11 -0
  378. package/dist/services/object.utils.js.map +1 -0
  379. package/dist/services/settings/default-settings-provider.service.d.ts +46 -6
  380. package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
  381. package/dist/services/settings/default-settings-provider.service.js +29 -3
  382. package/dist/services/settings/default-settings-provider.service.js.map +1 -1
  383. package/dist/services/user.service.d.ts +2 -2
  384. package/dist/services/user.service.d.ts.map +1 -1
  385. package/dist/services/user.service.js +9 -3
  386. package/dist/services/user.service.js.map +1 -1
  387. package/dist/services/view-metadata.service.d.ts +1 -2
  388. package/dist/services/view-metadata.service.d.ts.map +1 -1
  389. package/dist/services/view-metadata.service.js +3 -55
  390. package/dist/services/view-metadata.service.js.map +1 -1
  391. package/dist/services/workflow/nodes/execution-fail.node.d.ts +6 -0
  392. package/dist/services/workflow/nodes/execution-fail.node.d.ts.map +1 -0
  393. package/dist/services/workflow/nodes/execution-fail.node.js +81 -0
  394. package/dist/services/workflow/nodes/execution-fail.node.js.map +1 -0
  395. package/dist/services/workflow/nodes/for-each.node.d.ts +8 -0
  396. package/dist/services/workflow/nodes/for-each.node.d.ts.map +1 -0
  397. package/dist/services/workflow/nodes/for-each.node.js +204 -0
  398. package/dist/services/workflow/nodes/for-each.node.js.map +1 -0
  399. package/dist/services/workflow/nodes/http-request.node.d.ts +13 -0
  400. package/dist/services/workflow/nodes/http-request.node.d.ts.map +1 -0
  401. package/dist/services/workflow/nodes/http-request.node.js +549 -0
  402. package/dist/services/workflow/nodes/http-request.node.js.map +1 -0
  403. package/dist/services/workflow/nodes/if.node.d.ts +6 -0
  404. package/dist/services/workflow/nodes/if.node.d.ts.map +1 -0
  405. package/dist/services/workflow/nodes/if.node.js +100 -0
  406. package/dist/services/workflow/nodes/if.node.js.map +1 -0
  407. package/dist/services/workflow/nodes/log-write.node.d.ts +6 -0
  408. package/dist/services/workflow/nodes/log-write.node.d.ts.map +1 -0
  409. package/dist/services/workflow/nodes/log-write.node.js +231 -0
  410. package/dist/services/workflow/nodes/log-write.node.js.map +1 -0
  411. package/dist/services/workflow/nodes/loop-until.node.d.ts +12 -0
  412. package/dist/services/workflow/nodes/loop-until.node.d.ts.map +1 -0
  413. package/dist/services/workflow/nodes/loop-until.node.js +281 -0
  414. package/dist/services/workflow/nodes/loop-until.node.js.map +1 -0
  415. package/dist/services/workflow/nodes/parallel.node.d.ts +6 -0
  416. package/dist/services/workflow/nodes/parallel.node.d.ts.map +1 -0
  417. package/dist/services/workflow/nodes/parallel.node.js +83 -0
  418. package/dist/services/workflow/nodes/parallel.node.js.map +1 -0
  419. package/dist/services/workflow/nodes/runtime-python.node.d.ts +13 -0
  420. package/dist/services/workflow/nodes/runtime-python.node.d.ts.map +1 -0
  421. package/dist/services/workflow/nodes/runtime-python.node.js +522 -0
  422. package/dist/services/workflow/nodes/runtime-python.node.js.map +1 -0
  423. package/dist/services/workflow/nodes/sequential.node.d.ts +6 -0
  424. package/dist/services/workflow/nodes/sequential.node.d.ts.map +1 -0
  425. package/dist/services/workflow/nodes/sequential.node.js +68 -0
  426. package/dist/services/workflow/nodes/sequential.node.js.map +1 -0
  427. package/dist/services/workflow/nodes/solidx-api.helpers.d.ts +25 -0
  428. package/dist/services/workflow/nodes/solidx-api.helpers.d.ts.map +1 -0
  429. package/dist/services/workflow/nodes/solidx-api.helpers.js +143 -0
  430. package/dist/services/workflow/nodes/solidx-api.helpers.js.map +1 -0
  431. package/dist/services/workflow/nodes/solidx-crud.nodes.d.ts +48 -0
  432. package/dist/services/workflow/nodes/solidx-crud.nodes.d.ts.map +1 -0
  433. package/dist/services/workflow/nodes/solidx-crud.nodes.js +475 -0
  434. package/dist/services/workflow/nodes/solidx-crud.nodes.js.map +1 -0
  435. package/dist/services/workflow/nodes/solidx-login.node.d.ts +6 -0
  436. package/dist/services/workflow/nodes/solidx-login.node.d.ts.map +1 -0
  437. package/dist/services/workflow/nodes/solidx-login.node.js +208 -0
  438. package/dist/services/workflow/nodes/solidx-login.node.js.map +1 -0
  439. package/dist/services/workflow/nodes/solidx-send-email.node.d.ts +11 -0
  440. package/dist/services/workflow/nodes/solidx-send-email.node.d.ts.map +1 -0
  441. package/dist/services/workflow/nodes/solidx-send-email.node.js +437 -0
  442. package/dist/services/workflow/nodes/solidx-send-email.node.js.map +1 -0
  443. package/dist/services/workflow/nodes/solidx-send-sms.node.d.ts +10 -0
  444. package/dist/services/workflow/nodes/solidx-send-sms.node.d.ts.map +1 -0
  445. package/dist/services/workflow/nodes/solidx-send-sms.node.js +347 -0
  446. package/dist/services/workflow/nodes/solidx-send-sms.node.js.map +1 -0
  447. package/dist/services/workflow/nodes/switch.node.d.ts +7 -0
  448. package/dist/services/workflow/nodes/switch.node.d.ts.map +1 -0
  449. package/dist/services/workflow/nodes/switch.node.js +120 -0
  450. package/dist/services/workflow/nodes/switch.node.js.map +1 -0
  451. package/dist/services/workflow/workflow-definition-metadata-sync.service.d.ts +19 -0
  452. package/dist/services/workflow/workflow-definition-metadata-sync.service.d.ts.map +1 -0
  453. package/dist/services/workflow/workflow-definition-metadata-sync.service.js +187 -0
  454. package/dist/services/workflow/workflow-definition-metadata-sync.service.js.map +1 -0
  455. package/dist/services/workflow/workflow-definition-validator.service.d.ts +13 -0
  456. package/dist/services/workflow/workflow-definition-validator.service.d.ts.map +1 -0
  457. package/dist/services/workflow/workflow-definition-validator.service.js +166 -0
  458. package/dist/services/workflow/workflow-definition-validator.service.js.map +1 -0
  459. package/dist/services/workflow/workflow-execution-writer.service.d.ts +26 -0
  460. package/dist/services/workflow/workflow-execution-writer.service.d.ts.map +1 -0
  461. package/dist/services/workflow/workflow-execution-writer.service.js +191 -0
  462. package/dist/services/workflow/workflow-execution-writer.service.js.map +1 -0
  463. package/dist/services/workflow/workflow-expression.service.d.ts +14 -0
  464. package/dist/services/workflow/workflow-expression.service.d.ts.map +1 -0
  465. package/dist/services/workflow/workflow-expression.service.js +157 -0
  466. package/dist/services/workflow/workflow-expression.service.js.map +1 -0
  467. package/dist/services/workflow/workflow-invocation.service.d.ts +11 -0
  468. package/dist/services/workflow/workflow-invocation.service.d.ts.map +1 -0
  469. package/dist/services/workflow/workflow-invocation.service.js +37 -0
  470. package/dist/services/workflow/workflow-invocation.service.js.map +1 -0
  471. package/dist/services/workflow/workflow-node-registry.service.d.ts +19 -0
  472. package/dist/services/workflow/workflow-node-registry.service.d.ts.map +1 -0
  473. package/dist/services/workflow/workflow-node-registry.service.js +117 -0
  474. package/dist/services/workflow/workflow-node-registry.service.js.map +1 -0
  475. package/dist/services/workflow/workflow-runtime.service.d.ts +61 -0
  476. package/dist/services/workflow/workflow-runtime.service.d.ts.map +1 -0
  477. package/dist/services/workflow/workflow-runtime.service.js +706 -0
  478. package/dist/services/workflow/workflow-runtime.service.js.map +1 -0
  479. package/dist/services/workflow/workflow-scheduled-trigger.job.d.ts +10 -0
  480. package/dist/services/workflow/workflow-scheduled-trigger.job.d.ts.map +1 -0
  481. package/dist/services/workflow/workflow-scheduled-trigger.job.js +37 -0
  482. package/dist/services/workflow/workflow-scheduled-trigger.job.js.map +1 -0
  483. package/dist/services/workflow-definition.service.d.ts +52 -0
  484. package/dist/services/workflow-definition.service.d.ts.map +1 -0
  485. package/dist/services/workflow-definition.service.js +251 -0
  486. package/dist/services/workflow-definition.service.js.map +1 -0
  487. package/dist/services/workflow-execution-artifact.service.d.ts +12 -0
  488. package/dist/services/workflow-execution-artifact.service.d.ts.map +1 -0
  489. package/dist/services/workflow-execution-artifact.service.js +38 -0
  490. package/dist/services/workflow-execution-artifact.service.js.map +1 -0
  491. package/dist/services/workflow-execution-log.service.d.ts +12 -0
  492. package/dist/services/workflow-execution-log.service.d.ts.map +1 -0
  493. package/dist/services/workflow-execution-log.service.js +38 -0
  494. package/dist/services/workflow-execution-log.service.js.map +1 -0
  495. package/dist/services/workflow-execution.service.d.ts +12 -0
  496. package/dist/services/workflow-execution.service.d.ts.map +1 -0
  497. package/dist/services/workflow-execution.service.js +38 -0
  498. package/dist/services/workflow-execution.service.js.map +1 -0
  499. package/dist/services/workflow-secret.service.d.ts +25 -0
  500. package/dist/services/workflow-secret.service.d.ts.map +1 -0
  501. package/dist/services/workflow-secret.service.js +152 -0
  502. package/dist/services/workflow-secret.service.js.map +1 -0
  503. package/dist/services/workflow-step-execution.service.d.ts +12 -0
  504. package/dist/services/workflow-step-execution.service.d.ts.map +1 -0
  505. package/dist/services/workflow-step-execution.service.js +38 -0
  506. package/dist/services/workflow-step-execution.service.js.map +1 -0
  507. package/dist/services/workflow-trigger-execution.service.d.ts +12 -0
  508. package/dist/services/workflow-trigger-execution.service.d.ts.map +1 -0
  509. package/dist/services/workflow-trigger-execution.service.js +38 -0
  510. package/dist/services/workflow-trigger-execution.service.js.map +1 -0
  511. package/dist/solid-core.module.d.ts.map +1 -1
  512. package/dist/solid-core.module.js +131 -1
  513. package/dist/solid-core.module.js.map +1 -1
  514. package/dist/testing/adapters/ui/playwright-adapter.d.ts +5 -0
  515. package/dist/testing/adapters/ui/playwright-adapter.d.ts.map +1 -1
  516. package/dist/testing/adapters/ui/playwright-adapter.js +17 -1
  517. package/dist/testing/adapters/ui/playwright-adapter.js.map +1 -1
  518. package/dist/testing/adapters/ui/ui.types.d.ts +2 -0
  519. package/dist/testing/adapters/ui/ui.types.d.ts.map +1 -1
  520. package/dist/testing/adapters/ui/ui.types.js.map +1 -1
  521. package/dist/testing/steps/ui/actions.step.d.ts.map +1 -1
  522. package/dist/testing/steps/ui/actions.step.js +6 -2
  523. package/dist/testing/steps/ui/actions.step.js.map +1 -1
  524. package/dist/testing/steps/ui/assertions.step.d.ts.map +1 -1
  525. package/dist/testing/steps/ui/assertions.step.js +11 -3
  526. package/dist/testing/steps/ui/assertions.step.js.map +1 -1
  527. package/dist/testing/steps/ui/form.step.d.ts.map +1 -1
  528. package/dist/testing/steps/ui/form.step.js +9 -3
  529. package/dist/testing/steps/ui/form.step.js.map +1 -1
  530. package/dist/testing/steps/ui/manual.step.js +1 -1
  531. package/dist/testing/steps/ui/manual.step.js.map +1 -1
  532. package/dist/testing/steps/ui/navigation.step.d.ts.map +1 -1
  533. package/dist/testing/steps/ui/navigation.step.js +3 -1
  534. package/dist/testing/steps/ui/navigation.step.js.map +1 -1
  535. package/dist/transformers/empty-string-to-null-transformer.d.ts +4 -0
  536. package/dist/transformers/empty-string-to-null-transformer.d.ts.map +1 -0
  537. package/dist/transformers/empty-string-to-null-transformer.js +12 -0
  538. package/dist/transformers/empty-string-to-null-transformer.js.map +1 -0
  539. package/dist/types/workflow-dsl.types.d.ts +291 -0
  540. package/dist/types/workflow-dsl.types.d.ts.map +1 -0
  541. package/dist/types/workflow-dsl.types.js +3 -0
  542. package/dist/types/workflow-dsl.types.js.map +1 -0
  543. package/dist/types/workflow-execution-queue.types.d.ts +4 -0
  544. package/dist/types/workflow-execution-queue.types.d.ts.map +1 -0
  545. package/dist/types/workflow-execution-queue.types.js +3 -0
  546. package/dist/types/workflow-execution-queue.types.js.map +1 -0
  547. package/dist-tests/api/authenticate.spec.js +119 -0
  548. package/dist-tests/api/authenticate.spec.js.map +1 -0
  549. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +97 -0
  550. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +1 -0
  551. package/dist-tests/api/ping.spec.js +21 -0
  552. package/dist-tests/api/ping.spec.js.map +1 -0
  553. package/dist-tests/helpers/auth.js +41 -0
  554. package/dist-tests/helpers/auth.js.map +1 -0
  555. package/dist-tests/helpers/env.js +11 -0
  556. package/dist-tests/helpers/env.js.map +1 -0
  557. package/docs/agent-builder/notebook-lm-prompt-for-agent-builder.md +136 -0
  558. package/docs/agent-builder/team-ready-note-agent-builder.md +305 -0
  559. package/docs/agent-hub-grooming.md +301 -0
  560. package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +438 -0
  561. package/docs/dashboards/dashboard-curl-smoke-tests.txt +146 -0
  562. package/docs/dashboards/delete-legacy-dashboard-metadata.sql +172 -0
  563. package/docs/datasource-introspection-ddl-analysis.md +326 -0
  564. package/docs/datasource-introspection-implementation-plan.md +306 -0
  565. package/docs/grouping-enhancements.md +89 -0
  566. package/docs/java-spring/README.md +3 -0
  567. package/docs/java-spring/solid-core-module-deep-dive-report.md +1317 -0
  568. package/docs/module-package-import-handoff.md +691 -0
  569. package/docs/seed-changes.md +65 -0
  570. package/docs/test-data-workflow.md +200 -0
  571. package/docs/type-declaration-import-issue.md +24 -0
  572. package/docs/workflow/business-automation-example-notes.md +309 -0
  573. package/docs/workflow/control-flow-node-addition-sop.md +324 -0
  574. package/docs/workflow/data-engineering-pipeline-example-notes.md +330 -0
  575. package/docs/workflow/foreach-example-notes.md +187 -0
  576. package/docs/workflow/hello-world-example-notes.md +271 -0
  577. package/docs/workflow/kestra-concepts-plugins-blueprints.md +315 -0
  578. package/docs/workflow/loop-until-example-notes.md +198 -0
  579. package/docs/workflow/microservices-and-apis-example-notes.md +264 -0
  580. package/docs/workflow/samples.md +25 -0
  581. package/docs/workflow/what-is-kestra.md +79 -0
  582. package/docs/workflow/workflow-core-module-handoff-summary.md +191 -0
  583. package/docs/workflow/workflow-module-brd.md +185 -0
  584. package/docs/workflow/workflow-module-domain-model.md +252 -0
  585. package/docs/workflow/workflow-module-metadata-dsl.md +302 -0
  586. package/docs/workflow/workflow-module-technical-spec.md +293 -0
  587. package/docs/workflow/workflow-node-type-contracts.md +635 -0
  588. package/docs/workflow/workflow-node-ui-metadata-contract.md +1262 -0
  589. package/docs/workflow/workflow-solidx-model-field-spec.md +284 -0
  590. package/package.json +3 -2
  591. package/src/commands/run-tests.command.ts +47 -1
  592. package/src/commands/seed.command.ts +19 -0
  593. package/src/constants/chatter-message.constants.ts +12 -0
  594. package/src/constants/draft-publish-fields.ts +5 -0
  595. package/src/constants/media-file-types.ts +50 -0
  596. package/src/constants/user.constants.ts +13 -0
  597. package/src/controllers/chatter-message.controller.ts +8 -0
  598. package/src/controllers/export-template.controller.ts +5 -3
  599. package/src/controllers/import-transaction.controller.ts +6 -6
  600. package/src/controllers/media.controller.ts +17 -6
  601. package/src/controllers/module-package.controller.ts +2 -3
  602. package/src/controllers/workflow-definition.controller.ts +141 -0
  603. package/src/controllers/workflow-execution-artifact.controller.ts +93 -0
  604. package/src/controllers/workflow-execution-log.controller.ts +93 -0
  605. package/src/controllers/workflow-execution.controller.ts +126 -0
  606. package/src/controllers/workflow-secret.controller.ts +90 -0
  607. package/src/controllers/workflow-step-execution.controller.ts +93 -0
  608. package/src/controllers/workflow-trigger-execution.controller.ts +93 -0
  609. package/src/decorators/workflow-node-provider.decorator.ts +14 -0
  610. package/src/dtos/basic-filters.dto.ts +0 -4
  611. package/src/dtos/create-workflow-definition.dto.ts +60 -0
  612. package/src/dtos/create-workflow-execution-artifact.dto.ts +99 -0
  613. package/src/dtos/create-workflow-execution-log.dto.ts +80 -0
  614. package/src/dtos/create-workflow-execution.dto.ts +137 -0
  615. package/src/dtos/create-workflow-secret.dto.ts +44 -0
  616. package/src/dtos/create-workflow-step-execution.dto.ts +123 -0
  617. package/src/dtos/create-workflow-trigger-execution.dto.ts +114 -0
  618. package/src/dtos/execute-workflow.dto.ts +6 -0
  619. package/src/dtos/update-workflow-definition.dto.ts +67 -0
  620. package/src/dtos/update-workflow-execution-artifact.dto.ts +105 -0
  621. package/src/dtos/update-workflow-execution-log.dto.ts +87 -0
  622. package/src/dtos/update-workflow-execution.dto.ts +144 -0
  623. package/src/dtos/update-workflow-secret.dto.ts +53 -0
  624. package/src/dtos/update-workflow-step-execution.dto.ts +132 -0
  625. package/src/dtos/update-workflow-trigger-execution.dto.ts +122 -0
  626. package/src/dtos/validate-workflow-definition.dto.ts +3 -0
  627. package/src/entities/common.entity.ts +24 -0
  628. package/src/entities/dashboard-user-layout.entity.ts +2 -2
  629. package/src/entities/user.entity.ts +53 -36
  630. package/src/entities/view-metadata.entity.ts +2 -2
  631. package/src/entities/workflow-definition.entity.ts +43 -0
  632. package/src/entities/workflow-execution-artifact.entity.ts +73 -0
  633. package/src/entities/workflow-execution-log.entity.ts +59 -0
  634. package/src/entities/workflow-execution.entity.ts +83 -0
  635. package/src/entities/workflow-secret.entity.ts +34 -0
  636. package/src/entities/workflow-step-execution.entity.ts +89 -0
  637. package/src/entities/workflow-trigger-execution.entity.ts +83 -0
  638. package/src/factories/mail.factory.ts +7 -1
  639. package/src/factories/sms.factory.ts +4 -1
  640. package/src/helpers/field-crud-managers/MediaFieldCrudManager.ts +26 -12
  641. package/src/helpers/file-download.helper.ts +31 -0
  642. package/src/helpers/model-metadata-helper.service.ts +32 -1
  643. package/src/helpers/solid-registry.ts +1 -1
  644. package/src/helpers/typeorm-db-helper.ts +12 -1
  645. package/src/index.ts +58 -0
  646. package/src/interfaces/workflow-node-handler.interface.ts +10 -0
  647. package/src/interfaces.ts +1 -0
  648. package/src/jobs/database/workflow-execution-publisher-database.service.ts +24 -0
  649. package/src/jobs/database/workflow-execution-queue-options-database.ts +9 -0
  650. package/src/jobs/database/workflow-execution-subscriber-database.service.ts +44 -0
  651. package/src/jobs/rabbitmq/workflow-execution-publisher.service.ts +24 -0
  652. package/src/jobs/rabbitmq/workflow-execution-queue-options.ts +9 -0
  653. package/src/jobs/rabbitmq/workflow-execution-subscriber.service.ts +42 -0
  654. package/src/jobs/redis/workflow-execution-publisher-redis.service.ts +24 -0
  655. package/src/jobs/redis/workflow-execution-queue-options-redis.ts +9 -0
  656. package/src/jobs/redis/workflow-execution-subscriber-redis.service.ts +42 -0
  657. package/src/repository/workflow-definition.repository.ts +19 -0
  658. package/src/repository/workflow-execution-artifact.repository.ts +19 -0
  659. package/src/repository/workflow-execution-log.repository.ts +19 -0
  660. package/src/repository/workflow-execution.repository.ts +19 -0
  661. package/src/repository/workflow-secret.repository.ts +19 -0
  662. package/src/repository/workflow-step-execution.repository.ts +19 -0
  663. package/src/repository/workflow-trigger-execution.repository.ts +19 -0
  664. package/src/seeders/module-metadata-seeder.service.ts +216 -40
  665. package/src/seeders/module-test-data.service.ts +6 -0
  666. package/src/seeders/seed-data/solid-core-metadata.json +11494 -5570
  667. package/src/services/authentication.service.ts +76 -5
  668. package/src/services/chatter-message.service.ts +102 -4
  669. package/src/services/crud-helper.service.ts +16 -34
  670. package/src/services/crud.service.ts +129 -104
  671. package/src/services/datasource-introspection.service.ts +5 -0
  672. package/src/services/draft-publish-helper.service.ts +529 -0
  673. package/src/services/internationalisation-helper.service.ts +148 -0
  674. package/src/services/media.service.ts +67 -36
  675. package/src/services/metadata-validation.service.ts +39 -0
  676. package/src/services/model-metadata.service.ts +4 -1
  677. package/src/services/object.utils.ts +10 -0
  678. package/src/services/settings/default-settings-provider.service.ts +35 -3
  679. package/src/services/user.service.ts +18 -3
  680. package/src/services/view-metadata.service.ts +5 -145
  681. package/src/services/workflow/nodes/execution-fail.node.ts +82 -0
  682. package/src/services/workflow/nodes/for-each.node.ts +231 -0
  683. package/src/services/workflow/nodes/http-request.node.ts +624 -0
  684. package/src/services/workflow/nodes/if.node.ts +100 -0
  685. package/src/services/workflow/nodes/log-write.node.ts +234 -0
  686. package/src/services/workflow/nodes/loop-until.node.ts +343 -0
  687. package/src/services/workflow/nodes/parallel.node.ts +88 -0
  688. package/src/services/workflow/nodes/runtime-python.node.ts +571 -0
  689. package/src/services/workflow/nodes/sequential.node.ts +65 -0
  690. package/src/services/workflow/nodes/solidx-api.helpers.ts +205 -0
  691. package/src/services/workflow/nodes/solidx-crud.nodes.ts +511 -0
  692. package/src/services/workflow/nodes/solidx-login.node.ts +222 -0
  693. package/src/services/workflow/nodes/solidx-send-email.node.ts +489 -0
  694. package/src/services/workflow/nodes/solidx-send-sms.node.ts +377 -0
  695. package/src/services/workflow/nodes/switch.node.ts +132 -0
  696. package/src/services/workflow/workflow-definition-metadata-sync.service.ts +196 -0
  697. package/src/services/workflow/workflow-definition-validator.service.ts +226 -0
  698. package/src/services/workflow/workflow-execution-writer.service.ts +244 -0
  699. package/src/services/workflow/workflow-expression.service.ts +180 -0
  700. package/src/services/workflow/workflow-invocation.service.ts +39 -0
  701. package/src/services/workflow/workflow-node-registry.service.ts +152 -0
  702. package/src/services/workflow/workflow-runtime.service.ts +934 -0
  703. package/src/services/workflow/workflow-scheduled-trigger.job.ts +33 -0
  704. package/src/services/workflow-definition.service.ts +293 -0
  705. package/src/services/workflow-execution-artifact.service.ts +20 -0
  706. package/src/services/workflow-execution-log.service.ts +20 -0
  707. package/src/services/workflow-execution.service.ts +20 -0
  708. package/src/services/workflow-secret.service.ts +161 -0
  709. package/src/services/workflow-step-execution.service.ts +20 -0
  710. package/src/services/workflow-trigger-execution.service.ts +20 -0
  711. package/src/solid-core.module.ts +144 -3
  712. package/src/testing/README.md +73 -2
  713. package/src/testing/adapters/ui/playwright-adapter.ts +25 -0
  714. package/src/testing/adapters/ui/ui.types.ts +2 -0
  715. package/src/testing/steps/ui/actions.step.ts +8 -4
  716. package/src/testing/steps/ui/assertions.step.ts +18 -5
  717. package/src/testing/steps/ui/form.step.ts +16 -6
  718. package/src/testing/steps/ui/manual.step.ts +1 -1
  719. package/src/testing/steps/ui/navigation.step.ts +4 -2
  720. package/src/transformers/empty-string-to-null-transformer.ts +11 -0
  721. package/src/types/workflow-dsl.types.ts +1030 -0
  722. package/src/types/workflow-execution-queue.types.ts +3 -0
  723. package/.claude/settings.local.json +0 -16
  724. package/CLAUDE.md +0 -26
  725. package/src/services/1.js +0 -6
@@ -0,0 +1,284 @@
1
+ # Workflow SolidX Model Field Specification
2
+
3
+ This document translates the agreed workflow-management domain model into SolidX model and field definitions.
4
+
5
+ It is intended as the final field-level design pass before using the SolidX model MCP tools.
6
+
7
+ ## SolidX Field Types
8
+
9
+ The local `@solidxai/core` package defines these field types in `SolidFieldType`:
10
+
11
+ - `int`
12
+ - `bigint`
13
+ - `decimal`
14
+ - `shortText`
15
+ - `longText`
16
+ - `richText`
17
+ - `json`
18
+ - `boolean`
19
+ - `date`
20
+ - `datetime`
21
+ - `time`
22
+ - `relation`
23
+ - `mediaSingle`
24
+ - `mediaMultiple`
25
+ - `email`
26
+ - `password`
27
+ - `selectionStatic`
28
+ - `selectionDynamic`
29
+ - `computed`
30
+ - `uuid`
31
+
32
+ Useful relation metadata:
33
+
34
+ - `relationType`: `many-to-one`, `one-to-many`, `many-to-many`
35
+ - `relationCascade`: `set null`, `restrict`, `cascade`
36
+
37
+ ## Modeling Philosophy
38
+
39
+ - Workflow definitions store their canonical DSL in YAML text.
40
+ - Workflow definitions are metadata-backed: manually created workflows should also be persisted back to the module metadata JSON so developers can commit and share them.
41
+ - Workflow execution data is normalized enough to support monitoring, filtering, and debugging.
42
+ - Workflow version history is not a separate model in v1.
43
+ - `definitionVersion` and `definitionChecksum` live on both definition and execution records.
44
+ - `WorkflowBlueprint` is intentionally deferred for now.
45
+
46
+ ## Model: `workflowDefinition`
47
+
48
+ Purpose: stores the current reusable workflow definition.
49
+
50
+ Suggested table name: `wm_workflow_definition`
51
+
52
+ | Field | SolidX Type | Required | Notes |
53
+ | --- | --- | --- | --- |
54
+ | `key` | `shortText` | Yes | Stable workflow key. Should be unique. |
55
+ | `moduleMetadata` | `relation` | Yes | Many-to-one to SolidX `moduleMetadata`; identifies the owning module/package for metadata persistence. |
56
+ | `displayName` | `shortText` | Yes | Human-facing name. |
57
+ | `namespace` | `shortText` | No | Dot-path grouping, e.g. `ops.monitoring`. |
58
+ | `description` | `longText` | No | Workflow description. |
59
+ | `status` | `selectionStatic` | Yes | `draft`, `active`, `inactive`, `archived`. |
60
+ | `definitionVersion` | `shortText` | No | Human-managed or seed-managed version string. |
61
+ | `definitionChecksum` | `shortText` | No | Hash of canonical `definitionYaml`. |
62
+ | `definitionYaml` | `longText` | Yes | Canonical workflow DSL YAML used for sharing, seeding, validation, and execution. |
63
+ | `tags` | `json` | No | Array of tags. |
64
+
65
+ Recommended indexes/search fields:
66
+
67
+ - `key`
68
+ - `moduleMetadata`
69
+ - `displayName`
70
+ - `namespace`
71
+ - `status`
72
+ - `definitionChecksum`
73
+
74
+ Recommended user key:
75
+
76
+ - `key`
77
+
78
+ Metadata persistence notes:
79
+
80
+ - `key` acts as the workflow user key and metadata identity.
81
+ - A TypeORM subscriber or workflow persistence service should synchronize workflow definition changes back to the owning module metadata JSON.
82
+ - Since UI-created workflows are also metadata-backed, separate `sourceType`, `seedSource`, `seedKey`, `seedVersion`, and `isSeeded` fields are not needed.
83
+
84
+ ## Model: `workflowExecution`
85
+
86
+ Purpose: stores one run of a workflow definition.
87
+
88
+ Suggested table name: `wm_workflow_execution`
89
+
90
+ | Field | SolidX Type | Required | Notes |
91
+ | --- | --- | --- | --- |
92
+ | `executionIdentifier` | `computed` | Yes | System-generated readable execution id. Recommended provider: `SequenceNumComputedFieldProvider`. |
93
+ | `workflowDefinition` | `relation` | Yes | Many-to-one to `workflowDefinition`. |
94
+ | `workflowKey` | `shortText` | Yes | Snapshot of definition key for easier querying. |
95
+ | `workflowDisplayName` | `shortText` | No | Snapshot of display name. |
96
+ | `status` | `selectionStatic` | Yes | `created`, `running`, `success`, `failed`, `cancelled`. |
97
+ | `triggerType` | `selectionStatic` | Yes | `manual`, `schedule`, `webhook`, `flow`, `polling`, `event`. |
98
+ | `triggerExecution` | `relation` | No | Many-to-one to `workflowTriggerExecution`; nullable for manual runs. |
99
+ | `startedAt` | `datetime` | No | Execution start time. |
100
+ | `finishedAt` | `datetime` | No | Execution end time. |
101
+ | `durationMs` | `bigint` | No | Runtime duration. |
102
+ | `inputPayload` | `json` | No | Runtime inputs supplied to the execution. |
103
+ | `outputPayload` | `json` | No | Flow-level outputs. |
104
+ | `definitionVersion` | `shortText` | No | Version used by this execution. |
105
+ | `definitionChecksum` | `shortText` | No | Checksum used by this execution. |
106
+ | `definitionSnapshot` | `longText` | Yes | Exact workflow YAML used for this run. |
107
+ | `errorSummary` | `longText` | No | Human-readable failure summary. |
108
+ | `errorDetails` | `json` | No | Structured error payload. |
109
+ | `requestedByUserId` | `bigint` | No | User id or actor id if available. |
110
+
111
+ Recommended indexes/search fields:
112
+
113
+ - `executionIdentifier`
114
+ - `workflowKey`
115
+ - `status`
116
+ - `triggerType`
117
+ - `startedAt`
118
+ - `finishedAt`
119
+ - `definitionChecksum`
120
+
121
+ Recommended computed field configuration:
122
+
123
+ - `type`: `computed`
124
+ - `computedFieldValueProvider`: `SequenceNumComputedFieldProvider`
125
+ - `computedFieldValueProviderCtxt`: `{"sequenceName":"workflowExecution","mode":"counter"}`
126
+ - `computedFieldValueType`: `string`
127
+ - `computedFieldTriggerConfig`: after insert for `workflowExecution`
128
+
129
+ Recommended model sequence:
130
+
131
+ - `sequenceName`: `workflowExecution`
132
+ - `prefix`: `WFE`
133
+ - `separator`: `-`
134
+ - `padding`: `8`
135
+ - Example output: `WFE-00000001`
136
+
137
+ ## Model: `workflowStepExecution`
138
+
139
+ Purpose: stores runtime state for one workflow node execution.
140
+
141
+ Suggested table name: `wm_workflow_step_execution`
142
+
143
+ | Field | SolidX Type | Required | Notes |
144
+ | --- | --- | --- | --- |
145
+ | `workflowExecution` | `relation` | Yes | Many-to-one to `workflowExecution`. |
146
+ | `parentStepExecution` | `relation` | No | Self many-to-one for nested/control execution. |
147
+ | `nodeId` | `shortText` | Yes | Node id from workflow YAML. |
148
+ | `nodeName` | `shortText` | No | Snapshot of node name. |
149
+ | `nodeKind` | `selectionStatic` | Yes | `task`, `control`, `subflow`. |
150
+ | `nodeType` | `shortText` | Yes | e.g. `http.request`, `if`. |
151
+ | `status` | `selectionStatic` | Yes | `pending`, `running`, `success`, `failed`, `skipped`. |
152
+ | `attemptNumber` | `int` | Yes | Defaults to 1. |
153
+ | `branchId` | `shortText` | No | For `parallel` branch context. |
154
+ | `iterationIndex` | `int` | No | For `forEach` context. |
155
+ | `startedAt` | `datetime` | No | Step start time. |
156
+ | `finishedAt` | `datetime` | No | Step end time. |
157
+ | `durationMs` | `bigint` | No | Step runtime duration. |
158
+ | `inputContext` | `json` | No | Resolved node input context. |
159
+ | `outputPayload` | `json` | No | Node outputs. |
160
+ | `errorSummary` | `longText` | No | Human-readable failure summary. |
161
+ | `errorDetails` | `json` | No | Structured error payload. |
162
+
163
+ Recommended indexes/search fields:
164
+
165
+ - `workflowExecution`
166
+ - `nodeId`
167
+ - `nodeType`
168
+ - `status`
169
+ - `startedAt`
170
+
171
+ ## Model: `workflowExecutionLog`
172
+
173
+ Purpose: stores execution and step logs as queryable records.
174
+
175
+ Suggested table name: `wm_workflow_execution_log`
176
+
177
+ | Field | SolidX Type | Required | Notes |
178
+ | --- | --- | --- | --- |
179
+ | `workflowExecution` | `relation` | Yes | Many-to-one to `workflowExecution`. |
180
+ | `workflowStepExecution` | `relation` | No | Many-to-one to `workflowStepExecution`; nullable for execution-level logs. |
181
+ | `level` | `selectionStatic` | Yes | `debug`, `info`, `warn`, `error`. |
182
+ | `message` | `longText` | Yes | Log message. |
183
+ | `metadata` | `json` | No | Structured log metadata. |
184
+ | `loggedAt` | `datetime` | Yes | Timestamp of log event. |
185
+
186
+ Recommended indexes/search fields:
187
+
188
+ - `workflowExecution`
189
+ - `workflowStepExecution`
190
+ - `level`
191
+ - `loggedAt`
192
+
193
+ ## Model: `workflowExecutionArtifact`
194
+
195
+ Purpose: stores references to files or large artifacts produced during execution.
196
+
197
+ Suggested table name: `wm_workflow_execution_artifact`
198
+
199
+ | Field | SolidX Type | Required | Notes |
200
+ | --- | --- | --- | --- |
201
+ | `workflowExecution` | `relation` | Yes | Many-to-one to `workflowExecution`. |
202
+ | `workflowStepExecution` | `relation` | No | Many-to-one to `workflowStepExecution`. |
203
+ | `artifactKey` | `shortText` | Yes | Stable artifact key within the execution. |
204
+ | `displayName` | `shortText` | No | Human-facing name. |
205
+ | `artifactType` | `selectionStatic` | Yes | `file`, `json`, `text`, `binary`, `uri`. |
206
+ | `media` | `mediaSingle` | No | SolidX media attachment for stored file artifacts. |
207
+ | `uri` | `longText` | No | External artifact URI if not stored in media. |
208
+ | `contentType` | `shortText` | No | MIME type if known. |
209
+ | `sizeBytes` | `bigint` | No | Artifact size. |
210
+ | `metadata` | `json` | No | Structured artifact metadata. |
211
+ | `createdAtRuntime` | `datetime` | No | Runtime artifact creation timestamp. |
212
+
213
+ Recommended indexes/search fields:
214
+
215
+ - `workflowExecution`
216
+ - `workflowStepExecution`
217
+ - `artifactKey`
218
+ - `artifactType`
219
+
220
+ ## Model: `workflowTriggerExecution`
221
+
222
+ Purpose: records trigger events that started or attempted to start workflow executions.
223
+
224
+ Suggested table name: `wm_workflow_trigger_execution`
225
+
226
+ | Field | SolidX Type | Required | Notes |
227
+ | --- | --- | --- | --- |
228
+ | `workflowDefinition` | `relation` | Yes | Many-to-one to `workflowDefinition`. |
229
+ | `triggerId` | `shortText` | Yes | Trigger id from workflow YAML. |
230
+ | `triggerType` | `selectionStatic` | Yes | `schedule`, `webhook`, `flow`, `polling`, `event`. |
231
+ | `status` | `selectionStatic` | Yes | `received`, `accepted`, `ignored`, `failed`. |
232
+ | `firedAt` | `datetime` | Yes | Trigger fire time. |
233
+ | `inputPayload` | `json` | No | Inputs supplied by trigger. |
234
+ | `triggerPayload` | `json` | No | Raw trigger/event payload. |
235
+ | `workflowExecution` | `relation` | No | Many-to-one to `workflowExecution`; nullable if ignored/failed before execution creation. |
236
+ | `errorSummary` | `longText` | No | Human-readable failure summary. |
237
+ | `errorDetails` | `json` | No | Structured error payload. |
238
+
239
+ Recommended indexes/search fields:
240
+
241
+ - `workflowDefinition`
242
+ - `triggerId`
243
+ - `triggerType`
244
+ - `status`
245
+ - `firedAt`
246
+
247
+ ## Deferred Model: `workflowBlueprint`
248
+
249
+ `WorkflowBlueprint` is intentionally ignored for now.
250
+
251
+ When reintroduced, it should likely include:
252
+
253
+ - `key`
254
+ - `displayName`
255
+ - `description`
256
+ - `tags`
257
+ - `definitionYaml`
258
+ - `source`
259
+ - `sourceVersion`
260
+
261
+ ## Relation Summary
262
+
263
+ - `workflowDefinition` has many `workflowExecution`
264
+ - `workflowDefinition` has many `workflowTriggerExecution`
265
+ - `moduleMetadata` has many `workflowDefinition`
266
+ - `workflowExecution` has many `workflowStepExecution`
267
+ - `workflowExecution` has many `workflowExecutionLog`
268
+ - `workflowExecution` has many `workflowExecutionArtifact`
269
+ - `workflowTriggerExecution` may link to one created `workflowExecution`
270
+ - `workflowStepExecution` may have many child `workflowStepExecution` records via `parentStepExecution`
271
+ - `workflowStepExecution` has many `workflowExecutionLog`
272
+ - `workflowStepExecution` has many `workflowExecutionArtifact`
273
+
274
+ ## MCP Modeling Readiness Checklist
275
+
276
+ Before calling the SolidX model MCP tools, confirm:
277
+
278
+ - Use `workflow-builder` as the module key.
279
+ - Use the six active models above.
280
+ - Use `longText` for `definitionYaml` and `definitionSnapshot`; parse them as YAML in the workflow services to keep the workflow engine DB agnostic.
281
+ - Use `selectionStatic` for status/type enum fields.
282
+ - Use `relation` fields for cross-model links.
283
+ - Add a many-to-one relation from `workflowDefinition` to SolidX `moduleMetadata`.
284
+ - Keep `WorkflowBlueprint` deferred.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solidxai/core",
3
- "version": "0.1.13-beta.0",
3
+ "version": "0.1.13-beta.11",
4
4
  "description": "This module is a NestJS module containing all the required core providers required by a Solid application",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -81,7 +81,8 @@
81
81
  "ts-morph": "^27.0.2",
82
82
  "twilio": "^5.8.0",
83
83
  "uuid": "^9.0.1",
84
- "xlsx": "^0.18.5"
84
+ "xlsx": "^0.18.5",
85
+ "yaml": "^2.9.0"
85
86
  },
86
87
  "peerDependenciesMeta": {},
87
88
  "peerDependencies": {
@@ -7,6 +7,8 @@ import { WebhookReporter } from 'src/testing/reporter/webhook-reporter';
7
7
  import { runFromMetadata } from 'src/testing/runner/run-from-metadata';
8
8
  import type { TestingMetadata } from 'src/testing/contracts/testing-metadata.types';
9
9
  import { SpecRegistry } from 'src/testing/core/spec-registry';
10
+ import { SettingService } from 'src/services/setting.service';
11
+ import type { SolidCoreSetting } from 'src/services/settings/default-settings-provider.service';
10
12
 
11
13
  interface TestRunCommandOptions {
12
14
  module?: string;
@@ -18,6 +20,8 @@ interface TestRunCommandOptions {
18
20
  apiBaseUrl?: string;
19
21
  uiBaseUrl?: string;
20
22
  headless?: boolean;
23
+ uiTimeoutMs?: number;
24
+ uiNavigationTimeoutMs?: number;
21
25
  timeoutMs?: number;
22
26
  retries?: number;
23
27
  listSpecs?: boolean;
@@ -34,6 +38,7 @@ export class TestRunCommand extends CommandRunner {
34
38
 
35
39
  constructor(
36
40
  private readonly moduleMetadataHelperService: ModuleMetadataHelperService,
41
+ private readonly settingService: SettingService,
37
42
  ) {
38
43
  super();
39
44
  }
@@ -89,6 +94,14 @@ export class TestRunCommand extends CommandRunner {
89
94
  const apiBaseUrl = options?.apiBaseUrl ?? process.env.BASE_URL;
90
95
  const uiBaseUrl = options?.uiBaseUrl ?? process.env.FRONTEND_BASE_URL;
91
96
  const headless = options?.headless ?? true;
97
+ const uiTimeoutMs =
98
+ options?.uiTimeoutMs
99
+ ?? toPositiveNumber(process.env.UI_TIMEOUT_MS)
100
+ ?? toPositiveNumber(this.settingService.getConfigValue<SolidCoreSetting>('uiTestDefaultTimeoutMs'));
101
+ const uiNavigationTimeoutMs =
102
+ options?.uiNavigationTimeoutMs
103
+ ?? toPositiveNumber(process.env.UI_NAVIGATION_TIMEOUT_MS)
104
+ ?? toPositiveNumber(this.settingService.getConfigValue<SolidCoreSetting>('uiTestNavigationTimeoutMs'));
92
105
  const printApiLogs = options?.printApiLogs ?? false;
93
106
 
94
107
  const webhookUrl = process.env.SOLIDCTL_WEBHOOK_URL;
@@ -105,7 +118,12 @@ export class TestRunCommand extends CommandRunner {
105
118
  skipScenarioIds,
106
119
  reporter,
107
120
  api: apiBaseUrl ? { baseUrl: apiBaseUrl } : undefined,
108
- ui: { baseUrl: uiBaseUrl, headless },
121
+ ui: {
122
+ baseUrl: uiBaseUrl,
123
+ headless,
124
+ defaultTimeoutMs: uiTimeoutMs,
125
+ navigationTimeoutMs: uiNavigationTimeoutMs,
126
+ },
109
127
  defaults: {
110
128
  timeoutMs: options?.timeoutMs,
111
129
  retries: options?.retries,
@@ -225,6 +243,26 @@ export class TestRunCommand extends CommandRunner {
225
243
  return val === 'false' ? false : true;
226
244
  }
227
245
 
246
+ @Option({
247
+ flags: '--ui-timeout-ms [number]',
248
+ description:
249
+ 'Default timeout in ms for UI steps (waits, clicks, fills). Defaults to process.env.UI_TIMEOUT_MS, then the uiTestDefaultTimeoutMs setting, then 30000.',
250
+ required: false,
251
+ })
252
+ parseUiTimeoutMs(val: string): number {
253
+ return Number(val);
254
+ }
255
+
256
+ @Option({
257
+ flags: '--ui-navigation-timeout-ms [number]',
258
+ description:
259
+ 'Default timeout in ms for ui.goto navigation. Defaults to process.env.UI_NAVIGATION_TIMEOUT_MS, then the uiTestNavigationTimeoutMs setting, then --ui-timeout-ms.',
260
+ required: false,
261
+ })
262
+ parseUiNavigationTimeoutMs(val: string): number {
263
+ return Number(val);
264
+ }
265
+
228
266
  @Option({
229
267
  flags: '--timeout-ms [number]',
230
268
  description: 'Default scenario timeout in milliseconds.',
@@ -262,6 +300,14 @@ function splitCsv(value?: string): string[] | undefined {
262
300
  return items.length ? items : undefined;
263
301
  }
264
302
 
303
+ // Accepts unknown because settings come back already parsed as numbers, while env
304
+ // vars arrive as strings.
305
+ function toPositiveNumber(value?: unknown): number | undefined {
306
+ if (value === null || value === undefined || value === '') return undefined;
307
+ const parsed = Number(value);
308
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;
309
+ }
310
+
265
311
  function resolveSpecPath(entry: string, metadataPath: string): string {
266
312
  if (path.isAbsolute(entry)) {
267
313
  return entry;
@@ -7,6 +7,7 @@ interface SeedCommandOptions {
7
7
  seeder?: string;
8
8
  modulesToSeed?: string;
9
9
  prune?: boolean;
10
+ skipHooks?: boolean;
10
11
  }
11
12
 
12
13
  @Command({ name: 'seed', description: 'Install seed data for a given module' })
@@ -28,6 +29,7 @@ export class SeedCommand extends CommandRunner {
28
29
  modulesToSeed,
29
30
  pruneMetadata: false,
30
31
  seedGlobalMetadata: true,
32
+ skipHooks: false,
31
33
  };
32
34
  this.logger.log(`Modules to seed: ${modulesToSeed.join(', ')}`);
33
35
  } else {
@@ -39,10 +41,22 @@ export class SeedCommand extends CommandRunner {
39
41
  modulesToSeed: null,
40
42
  pruneMetadata: false,
41
43
  seedGlobalMetadata: true,
44
+ skipHooks: false,
42
45
  };
43
46
  parsedConf.pruneMetadata = true;
44
47
  }
45
48
 
49
+ if (options?.skipHooks) {
50
+ parsedConf = parsedConf ?? {
51
+ modulesToSeed: null,
52
+ pruneMetadata: false,
53
+ seedGlobalMetadata: true,
54
+ skipHooks: false,
55
+ };
56
+ parsedConf.skipHooks = true;
57
+ this.logger.log('Skipping pre-seed and post-seed hooks.');
58
+ }
59
+
46
60
  const seeder = this.solidRegistry
47
61
  .getSeeders()
48
62
  .filter((seeder) => seeder.name === options.seeder)
@@ -74,4 +88,9 @@ export class SeedCommand extends CommandRunner {
74
88
  parsePrune(): boolean {
75
89
  return true;
76
90
  }
91
+
92
+ @Option({ flags: '--skip-hooks', description: 'Skip emitting pre-seed and post-seed lifecycle hooks/events.' })
93
+ parseSkipHooks(): boolean {
94
+ return true;
95
+ }
77
96
  }
@@ -1,3 +1,5 @@
1
+ import { USER_SUMMARY_FIELDS } from 'src/constants/user.constants';
2
+
1
3
  export const CHATTER_MESSAGE_TYPE = {
2
4
  AUDIT: 'audit',
3
5
  CUSTOM: 'custom',
@@ -16,3 +18,13 @@ export const CHATTER_MESSAGE_STATUS = {
16
18
  PENDING: 'pending',
17
19
  COMPLETED: 'completed',
18
20
  } as const;
21
+
22
+ /**
23
+ * Columns of the message author exposed by the chatter APIs.
24
+ *
25
+ * The chatter panel renders `fullName` (name label + initials avatar) and uses `id`
26
+ * for the own-note edit check; the admin list/form/tree views display `fullName` via
27
+ * each view's `coModelFieldToDisplay`. That is exactly the platform-wide summary
28
+ * shape, so this is an alias rather than a second list to keep in step.
29
+ */
30
+ export const CHATTER_MESSAGE_USER_FIELDS = USER_SUMMARY_FIELDS;
@@ -0,0 +1,5 @@
1
+ // The versioning columns CommonEntity adds for draft/publish support. These don't exist on
2
+ // legacy tables (see LegacyCommonEntityWithExistingId) and don't carry over when a new draft
3
+ // version is copied from its source entity, so both of those call sites share this list rather
4
+ // than each hand-enumerating the same four names.
5
+ export const DRAFT_PUBLISH_VERSIONING_FIELD_NAMES = ['isPublished', 'isLatest', 'initialEntityVersionId', 'publishedTracker'] as const;
@@ -17,6 +17,56 @@ export const DANGEROUS_EXTENSIONS = new Set([
17
17
  'exe', 'sh', 'bat', 'cmd', 'ps1', 'jar', 'dll',
18
18
  ]);
19
19
 
20
+
21
+ /**
22
+ * Mimetypes that are never safe to accept, regardless of extension. These render as active
23
+ * content in a browser (svg can carry <script>), so they are rejected even when the filename
24
+ * looks harmless. Kept alongside DANGEROUS_EXTENSIONS so upload paths check both.
25
+ */
26
+ export const DANGEROUS_MIME_TYPES = new Set([
27
+ 'image/svg+xml', 'text/html', 'application/xhtml+xml',
28
+ ]);
29
+
30
+ export function getLowercaseFileExtension(fileName?: string | null): string | undefined {
31
+ if (!fileName) {
32
+ return undefined;
33
+ }
34
+
35
+ const lastDotIndex = fileName.lastIndexOf('.');
36
+ if (lastDotIndex < 0 || lastDotIndex === fileName.length - 1) {
37
+ return undefined;
38
+ }
39
+
40
+ return fileName.slice(lastDotIndex + 1).toLowerCase();
41
+ }
42
+
43
+ /** Minimal shape of an uploaded file, so this module stays free of framework imports. */
44
+ export interface UploadedFileLike {
45
+ mimetype?: string;
46
+ originalname?: string;
47
+ filename?: string;
48
+ }
49
+
50
+ /** originalname is the client-supplied name; filename is multer's on-disk name. */
51
+ export function getUploadedFileName(file?: UploadedFileLike | null): string {
52
+ return file?.originalname ?? file?.filename ?? '';
53
+ }
54
+
55
+ /**
56
+ * Single predicate for "must never be stored". Shared by every upload entry point
57
+ * (MediaFieldCrudManager, chatter attachments) so the rules can't drift between them.
58
+ * Extension is checked before mimetype so a spoofed Content-Type (e.g.
59
+ * application/octet-stream on an .html file) can't bypass it.
60
+ */
61
+ export function isDangerousMediaFile(file?: UploadedFileLike | null): boolean {
62
+ const ext = getLowercaseFileExtension(getUploadedFileName(file));
63
+ if (ext && DANGEROUS_EXTENSIONS.has(ext)) {
64
+ return true;
65
+ }
66
+
67
+ return DANGEROUS_MIME_TYPES.has((file?.mimetype || '').toLowerCase().trim());
68
+ }
69
+
20
70
  /**
21
71
  * Single source of truth for extension -> coarse media category. Shared by upload-time
22
72
  * validation (MediaFieldCrudManager) and serve-time header hardening (ServeStaticModule), so
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The columns of a `User` that are safe to embed in another entity's API response.
3
+ *
4
+ * Whenever a user is attached to a record the caller asked for - a `createdBy` /
5
+ * `updatedBy` populate, a chatter message author - the caller wants to display who it
6
+ * was, not to read their profile. Everything else on `User` is PII (email, mobile),
7
+ * authz metadata (roles, apiKeys) or secret, and the embedded user is frequently
8
+ * someone the viewer has no other visibility of.
9
+ *
10
+ * `fullName` is nullable; consumers that need a fallback should use the record's own
11
+ * context rather than widening this list.
12
+ */
13
+ export const USER_SUMMARY_FIELDS = ['id', 'fullName'] as const;
@@ -95,6 +95,14 @@ export class ChatterMessageController {
95
95
  return this.service.find(query);
96
96
  }
97
97
 
98
+ @ApiBearerAuth("jwt")
99
+ @ApiQuery({ name: 'search', required: false, type: String })
100
+ @ApiQuery({ name: 'limit', required: false, type: Number })
101
+ @Get('mentionable-users')
102
+ async getMentionableUsers(@Query() query: any) {
103
+ return this.service.getMentionableUsers(query?.search, query?.limit ? +query.limit : undefined);
104
+ }
105
+
98
106
  @ApiBearerAuth("jwt")
99
107
  @Get(':id')
100
108
  async findOne(@Param('id') id: string, @Query() query: any) {
@@ -8,6 +8,7 @@ import { Response } from 'express';
8
8
  import { StartExportSyncDto } from 'src/dtos/export.dto';
9
9
  import { ActiveUser } from 'src/decorators/active-user.decorator';
10
10
  import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
11
+ import { setFileDownloadHeaders } from 'src/helpers/file-download.helper';
11
12
 
12
13
  @ApiTags('Solid Core')
13
14
  @Controller('export-template') //FIXME: Change this to the model plural name
@@ -91,9 +92,10 @@ export class ExportTemplateController {
91
92
  throw new InternalServerErrorException("Export stream is null");
92
93
  }
93
94
  // ✅ Set response headers for streaming
94
- res.setHeader('Content-Disposition', `attachment; filename="${exportFileInfo.fileName}"`);
95
- res.setHeader('Content-Type', exportFileInfo.mimeType);
96
- res.setHeader('Access-Control-Expose-Headers', 'Content-Disposition, Content-Type');
95
+ setFileDownloadHeaders(res, {
96
+ fileName: exportFileInfo.fileName,
97
+ mimeType: exportFileInfo.mimeType,
98
+ });
97
99
  // Pipe the strea to the response as an excel file
98
100
  exportFileInfo.exportStream.pipe(res);
99
101
  }
@@ -7,6 +7,7 @@ import { UpdateImportTransactionDto } from '../dtos/update-import-transaction.dt
7
7
  import { Response } from 'express';
8
8
  import { ActiveUser } from 'src/decorators/active-user.decorator';
9
9
  import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
10
+ import { setFileDownloadHeaders } from 'src/helpers/file-download.helper';
10
11
 
11
12
  enum ShowSoftDeleted {
12
13
  INCLUSIVE = "inclusive",
@@ -27,9 +28,10 @@ export class ImportTransactionController {
27
28
  }
28
29
 
29
30
  // ✅ Set response headers for streaming
30
- res.setHeader('Content-Disposition', `attachment; filename="${importTemplateFileInfo.fileName}"`);
31
- res.setHeader('Content-Type', importTemplateFileInfo.mimeType);
32
- res.setHeader('Access-Control-Expose-Headers', 'Content-Disposition, Content-Type');
31
+ setFileDownloadHeaders(res, {
32
+ fileName: importTemplateFileInfo.fileName,
33
+ mimeType: importTemplateFileInfo.mimeType,
34
+ });
33
35
  // Pipe the stream to the response as an excel file
34
36
  importTemplateFileInfo.stream.pipe(res);
35
37
  }
@@ -117,9 +119,7 @@ export class ImportTransactionController {
117
119
  throw new InternalServerErrorException("Failed records stream is null");
118
120
  }
119
121
  // ✅ Set response headers for streaming
120
- res.setHeader('Content-Disposition', `attachment; filename="${fileName}"`);
121
- res.setHeader('Content-Type', mimeType);
122
- res.setHeader('Access-Control-Expose-Headers', 'Content-Disposition, Content-Type');
122
+ setFileDownloadHeaders(res, { fileName, mimeType });
123
123
  // Pipe the strea to the response as an excel file
124
124
  stream.pipe(res);
125
125
  }
@@ -9,6 +9,8 @@ import { SolidRequestContextDto } from 'src/dtos/solid-request-context.dto';
9
9
  import { UpdateMediaDto } from 'src/dtos/update-media.dto';
10
10
  import { MediaService } from 'src/services/media.service';
11
11
  import { Response } from 'express';
12
+ import { getLowercaseFileExtension, INLINE_SAFE_EXTENSIONS } from 'src/constants/media-file-types';
13
+ import { setFileDownloadHeaders } from 'src/helpers/file-download.helper';
12
14
 
13
15
  enum ShowSoftDeleted {
14
16
  INCLUSIVE = "inclusive",
@@ -91,17 +93,26 @@ export class MediaController {
91
93
 
92
94
  @Auth(AuthType.MediaSignedUrl)
93
95
  @ApiQuery({ name: 'token', required: true, type: String, description: "Short-lived signed token obtained from a private Media record's URL - not entered manually." })
94
- @ApiQuery({ name: 'disposition', required: false, enum: ['inline', 'attachment'], description: "'inline' (default) renders/previews in the browser, matching public media. Pass 'attachment' to force a browser download (e.g. from a download button)." })
96
+ @ApiQuery({ name: 'disposition', required: false, enum: ['inline', 'attachment'], description: "'inline' (default) renders/previews in the browser, matching public media - it applies only to types safe to render inline (images, audio, video, pdf); anything else is always downloaded. Pass 'attachment' to force a browser download (e.g. from a download button)." })
95
97
  @Get(':id/download')
96
98
  async download(@Param('id') id: string, @Query('disposition') disposition: string, @Res() res: Response, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
97
99
  const media = await this.service.findOne(+id, {}, solidRequestContext);
98
100
  const { stream, fileName, mimeType } = await this.service.fileDownloadStream(media);
99
101
 
100
- const contentDisposition = disposition === 'attachment' ? 'attachment' : 'inline';
101
- res.setHeader('Content-Disposition', `${contentDisposition}; filename="${fileName}"`);
102
- res.setHeader('Content-Type', mimeType);
103
- res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin');
104
- res.setHeader('Access-Control-Expose-Headers', 'Content-Disposition, Content-Type');
102
+ // Mirror the static-serve hardening in SolidCoreModule: only a small allowlist of media
103
+ // types is ever safe to render inline. Anything else is forced to download rather than be
104
+ // displayed/executed, regardless of the mimetype the record was stored with - nosniff
105
+ // alone would not help here, since it faithfully honours a declared text/html.
106
+ const isInlineSafe = INLINE_SAFE_EXTENSIONS.has(getLowercaseFileExtension(fileName) ?? '');
107
+ const requestedInline = disposition !== 'attachment';
108
+
109
+ setFileDownloadHeaders(res, {
110
+ fileName,
111
+ mimeType: isInlineSafe ? mimeType : 'application/octet-stream',
112
+ disposition: requestedInline && isInlineSafe ? 'inline' : 'attachment',
113
+ crossOriginResourcePolicy: true,
114
+ });
115
+
105
116
  stream.pipe(res);
106
117
  }
107
118