@solidxai/core 0.1.10-beta.26 → 0.1.10-beta.28

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 (315) hide show
  1. package/.claude/settings.local.json +15 -0
  2. package/CLAUDE.md +26 -0
  3. package/MICROSOFT_ACTIVE_DIRECTORY_OAUTH_FLOW.md +616 -0
  4. package/ai-interaction-cleanup.sql +53 -0
  5. package/dist/constants/error-messages.d.ts +1 -0
  6. package/dist/constants/error-messages.d.ts.map +1 -1
  7. package/dist/constants/error-messages.js +1 -0
  8. package/dist/constants/error-messages.js.map +1 -1
  9. package/dist/controllers/microsoft-active-directory-authentication.controller.d.ts +28 -0
  10. package/dist/controllers/microsoft-active-directory-authentication.controller.d.ts.map +1 -0
  11. package/dist/controllers/microsoft-active-directory-authentication.controller.js +122 -0
  12. package/dist/controllers/microsoft-active-directory-authentication.controller.js.map +1 -0
  13. package/dist/controllers/service.controller.d.ts +1 -5
  14. package/dist/controllers/service.controller.d.ts.map +1 -1
  15. package/dist/controllers/service.controller.js +6 -11
  16. package/dist/controllers/service.controller.js.map +1 -1
  17. package/dist/controllers/test.controller.d.ts +1 -6
  18. package/dist/controllers/test.controller.d.ts.map +1 -1
  19. package/dist/controllers/test.controller.js +2 -20
  20. package/dist/controllers/test.controller.js.map +1 -1
  21. package/dist/dtos/create-permission-metadata.dto.d.ts.map +1 -1
  22. package/dist/dtos/create-permission-metadata.dto.js +2 -0
  23. package/dist/dtos/create-permission-metadata.dto.js.map +1 -1
  24. package/dist/dtos/create-role-metadata.dto.d.ts +2 -0
  25. package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
  26. package/dist/dtos/create-role-metadata.dto.js +13 -1
  27. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  28. package/dist/dtos/import-instructions.dto.d.ts +2 -0
  29. package/dist/dtos/import-instructions.dto.d.ts.map +1 -1
  30. package/dist/dtos/import-instructions.dto.js +15 -1
  31. package/dist/dtos/import-instructions.dto.js.map +1 -1
  32. package/dist/dtos/update-permission-metadata.dto.d.ts.map +1 -1
  33. package/dist/dtos/update-permission-metadata.dto.js +3 -1
  34. package/dist/dtos/update-permission-metadata.dto.js.map +1 -1
  35. package/dist/dtos/update-role-metadata.dto.d.ts +2 -0
  36. package/dist/dtos/update-role-metadata.dto.d.ts.map +1 -1
  37. package/dist/dtos/update-role-metadata.dto.js +13 -1
  38. package/dist/dtos/update-role-metadata.dto.js.map +1 -1
  39. package/dist/entities/action-metadata.entity.d.ts.map +1 -1
  40. package/dist/entities/action-metadata.entity.js +1 -0
  41. package/dist/entities/action-metadata.entity.js.map +1 -1
  42. package/dist/entities/agent-event.entity.d.ts.map +1 -1
  43. package/dist/entities/agent-event.entity.js +1 -0
  44. package/dist/entities/agent-event.entity.js.map +1 -1
  45. package/dist/entities/agent-session.entity.d.ts.map +1 -1
  46. package/dist/entities/agent-session.entity.js +1 -0
  47. package/dist/entities/agent-session.entity.js.map +1 -1
  48. package/dist/entities/chatter-message.entity.d.ts.map +1 -1
  49. package/dist/entities/chatter-message.entity.js +2 -0
  50. package/dist/entities/chatter-message.entity.js.map +1 -1
  51. package/dist/entities/email-template.entity.d.ts.map +1 -1
  52. package/dist/entities/email-template.entity.js +1 -0
  53. package/dist/entities/email-template.entity.js.map +1 -1
  54. package/dist/entities/field-metadata.entity.d.ts.map +1 -1
  55. package/dist/entities/field-metadata.entity.js +4 -0
  56. package/dist/entities/field-metadata.entity.js.map +1 -1
  57. package/dist/entities/list-of-values.entity.d.ts.map +1 -1
  58. package/dist/entities/list-of-values.entity.js +4 -0
  59. package/dist/entities/list-of-values.entity.js.map +1 -1
  60. package/dist/entities/locale.entity.d.ts.map +1 -1
  61. package/dist/entities/locale.entity.js +1 -0
  62. package/dist/entities/locale.entity.js.map +1 -1
  63. package/dist/entities/media.entity.d.ts.map +1 -1
  64. package/dist/entities/media.entity.js +1 -0
  65. package/dist/entities/media.entity.js.map +1 -1
  66. package/dist/entities/menu-item-metadata.entity.d.ts.map +1 -1
  67. package/dist/entities/menu-item-metadata.entity.js +2 -0
  68. package/dist/entities/menu-item-metadata.entity.js.map +1 -1
  69. package/dist/entities/model-metadata.entity.d.ts.map +1 -1
  70. package/dist/entities/model-metadata.entity.js +3 -0
  71. package/dist/entities/model-metadata.entity.js.map +1 -1
  72. package/dist/entities/module-metadata.entity.d.ts.map +1 -1
  73. package/dist/entities/module-metadata.entity.js +2 -0
  74. package/dist/entities/module-metadata.entity.js.map +1 -1
  75. package/dist/entities/permission-metadata.entity.d.ts.map +1 -1
  76. package/dist/entities/permission-metadata.entity.js.map +1 -1
  77. package/dist/entities/role-metadata.entity.d.ts +2 -0
  78. package/dist/entities/role-metadata.entity.d.ts.map +1 -1
  79. package/dist/entities/role-metadata.entity.js +10 -2
  80. package/dist/entities/role-metadata.entity.js.map +1 -1
  81. package/dist/entities/saved-filters.entity.d.ts.map +1 -1
  82. package/dist/entities/saved-filters.entity.js +3 -0
  83. package/dist/entities/saved-filters.entity.js.map +1 -1
  84. package/dist/entities/scheduled-job.entity.d.ts.map +1 -1
  85. package/dist/entities/scheduled-job.entity.js +2 -0
  86. package/dist/entities/scheduled-job.entity.js.map +1 -1
  87. package/dist/entities/security-rule.entity.d.ts.map +1 -1
  88. package/dist/entities/security-rule.entity.js +1 -0
  89. package/dist/entities/security-rule.entity.js.map +1 -1
  90. package/dist/entities/sms-template.entity.d.ts.map +1 -1
  91. package/dist/entities/sms-template.entity.js +2 -0
  92. package/dist/entities/sms-template.entity.js.map +1 -1
  93. package/dist/entities/user-activity-history.entity.d.ts.map +1 -1
  94. package/dist/entities/user-activity-history.entity.js +1 -0
  95. package/dist/entities/user-activity-history.entity.js.map +1 -1
  96. package/dist/entities/user.entity.d.ts +3 -0
  97. package/dist/entities/user.entity.d.ts.map +1 -1
  98. package/dist/entities/user.entity.js +15 -1
  99. package/dist/entities/user.entity.js.map +1 -1
  100. package/dist/entities/view-metadata.entity.d.ts.map +1 -1
  101. package/dist/entities/view-metadata.entity.js +2 -0
  102. package/dist/entities/view-metadata.entity.js.map +1 -1
  103. package/dist/helpers/microsoft-active-directory-oauth.helper.d.ts +34 -0
  104. package/dist/helpers/microsoft-active-directory-oauth.helper.d.ts.map +1 -0
  105. package/dist/helpers/microsoft-active-directory-oauth.helper.js +43 -0
  106. package/dist/helpers/microsoft-active-directory-oauth.helper.js.map +1 -0
  107. package/dist/helpers/module.helper.js +0 -5
  108. package/dist/helpers/module.helper.js.map +1 -1
  109. package/dist/helpers/user-helper.d.ts.map +1 -1
  110. package/dist/helpers/user-helper.js +4 -0
  111. package/dist/helpers/user-helper.js.map +1 -1
  112. package/dist/index.d.ts +1 -5
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +1 -5
  115. package/dist/index.js.map +1 -1
  116. package/dist/interfaces.d.ts +0 -8
  117. package/dist/interfaces.d.ts.map +1 -1
  118. package/dist/interfaces.js.map +1 -1
  119. package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.d.ts +14 -0
  120. package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.d.ts.map +1 -0
  121. package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.js +67 -0
  122. package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.js.map +1 -0
  123. package/dist/seeders/seed-data/solid-core-metadata.json +317 -814
  124. package/dist/services/authentication.service.d.ts +12 -0
  125. package/dist/services/authentication.service.d.ts.map +1 -1
  126. package/dist/services/authentication.service.js +64 -0
  127. package/dist/services/authentication.service.js.map +1 -1
  128. package/dist/services/crud-helper.service.d.ts.map +1 -1
  129. package/dist/services/crud-helper.service.js +11 -3
  130. package/dist/services/crud-helper.service.js.map +1 -1
  131. package/dist/services/import-transaction.service.d.ts.map +1 -1
  132. package/dist/services/import-transaction.service.js +6 -0
  133. package/dist/services/import-transaction.service.js.map +1 -1
  134. package/dist/services/settings/default-settings-provider.service.d.ts +100 -0
  135. package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
  136. package/dist/services/settings/default-settings-provider.service.js +56 -0
  137. package/dist/services/settings/default-settings-provider.service.js.map +1 -1
  138. package/dist/services/user.service.d.ts +2 -0
  139. package/dist/services/user.service.d.ts.map +1 -1
  140. package/dist/services/user.service.js +46 -0
  141. package/dist/services/user.service.js.map +1 -1
  142. package/dist/solid-core.module.d.ts.map +1 -1
  143. package/dist/solid-core.module.js +4 -29
  144. package/dist/solid-core.module.js.map +1 -1
  145. package/dist/subscribers/scheduled-job.subscriber.js +1 -1
  146. package/dist/subscribers/scheduled-job.subscriber.js.map +1 -1
  147. package/dist/subscribers/security-rule.subscriber.js +1 -1
  148. package/dist/subscribers/security-rule.subscriber.js.map +1 -1
  149. package/package.json +4 -4
  150. package/src/constants/error-messages.ts +2 -1
  151. package/src/controllers/microsoft-active-directory-authentication.controller.ts +104 -0
  152. package/src/controllers/service.controller.ts +4 -7
  153. package/src/controllers/test.controller.ts +0 -9
  154. package/src/dtos/create-permission-metadata.dto.ts +3 -0
  155. package/src/dtos/create-role-metadata.dto.ts +11 -1
  156. package/src/dtos/import-instructions.dto.ts +11 -1
  157. package/src/dtos/update-permission-metadata.dto.ts +4 -1
  158. package/src/dtos/update-role-metadata.dto.ts +21 -1
  159. package/src/entities/action-metadata.entity.ts +1 -0
  160. package/src/entities/agent-event.entity.ts +1 -0
  161. package/src/entities/agent-session.entity.ts +1 -0
  162. package/src/entities/chatter-message.entity.ts +2 -0
  163. package/src/entities/email-template.entity.ts +1 -0
  164. package/src/entities/field-metadata.entity.ts +4 -1
  165. package/src/entities/list-of-values.entity.ts +5 -1
  166. package/src/entities/locale.entity.ts +1 -0
  167. package/src/entities/media.entity.ts +1 -0
  168. package/src/entities/menu-item-metadata.entity.ts +2 -0
  169. package/src/entities/model-metadata.entity.ts +3 -0
  170. package/src/entities/module-metadata.entity.ts +2 -0
  171. package/src/entities/permission-metadata.entity.ts +2 -2
  172. package/src/entities/role-metadata.entity.ts +11 -3
  173. package/src/entities/saved-filters.entity.ts +3 -0
  174. package/src/entities/scheduled-job.entity.ts +2 -0
  175. package/src/entities/security-rule.entity.ts +1 -0
  176. package/src/entities/sms-template.entity.ts +2 -0
  177. package/src/entities/user-activity-history.entity.ts +1 -0
  178. package/src/entities/user.entity.ts +15 -1
  179. package/src/entities/view-metadata.entity.ts +2 -0
  180. package/src/helpers/microsoft-active-directory-oauth.helper.ts +83 -0
  181. package/src/helpers/module.helper.ts +5 -5
  182. package/src/helpers/user-helper.ts +5 -1
  183. package/src/index.ts +1 -5
  184. package/src/interfaces.ts +0 -8
  185. package/src/passport-strategies/microsoft-active-directory-oauth.strategy.ts +63 -0
  186. package/src/seeders/seed-data/solid-core-metadata.json +317 -814
  187. package/src/services/1.js +6 -0
  188. package/src/services/authentication.service.ts +78 -0
  189. package/src/services/crud-helper.service.ts +9 -3
  190. package/src/services/import-transaction.service.ts +11 -1
  191. package/src/services/settings/default-settings-provider.service.ts +59 -0
  192. package/src/services/user.service.ts +61 -0
  193. package/src/solid-core.module.ts +4 -31
  194. package/src/subscribers/scheduled-job.subscriber.ts +1 -1
  195. package/src/subscribers/security-rule.subscriber.ts +1 -1
  196. package/dist/commands/ingest.command.d.ts +0 -16
  197. package/dist/commands/ingest.command.d.ts.map +0 -1
  198. package/dist/commands/ingest.command.js +0 -50
  199. package/dist/commands/ingest.command.js.map +0 -1
  200. package/dist/controllers/ai-interaction.controller.d.ts +0 -29
  201. package/dist/controllers/ai-interaction.controller.d.ts.map +0 -1
  202. package/dist/controllers/ai-interaction.controller.js +0 -218
  203. package/dist/controllers/ai-interaction.controller.js.map +0 -1
  204. package/dist/dtos/create-ai-interaction.dto.d.ts +0 -23
  205. package/dist/dtos/create-ai-interaction.dto.d.ts.map +0 -1
  206. package/dist/dtos/create-ai-interaction.dto.js +0 -149
  207. package/dist/dtos/create-ai-interaction.dto.js.map +0 -1
  208. package/dist/dtos/invoke-ai-prompt.dto.d.ts +0 -5
  209. package/dist/dtos/invoke-ai-prompt.dto.d.ts.map +0 -1
  210. package/dist/dtos/invoke-ai-prompt.dto.js +0 -30
  211. package/dist/dtos/invoke-ai-prompt.dto.js.map +0 -1
  212. package/dist/dtos/update-ai-interaction.dto.d.ts +0 -24
  213. package/dist/dtos/update-ai-interaction.dto.d.ts.map +0 -1
  214. package/dist/dtos/update-ai-interaction.dto.js +0 -150
  215. package/dist/dtos/update-ai-interaction.dto.js.map +0 -1
  216. package/dist/entities/ai-interaction.entity.d.ts +0 -24
  217. package/dist/entities/ai-interaction.entity.d.ts.map +0 -1
  218. package/dist/entities/ai-interaction.entity.js +0 -116
  219. package/dist/entities/ai-interaction.entity.js.map +0 -1
  220. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts +0 -11
  221. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts.map +0 -1
  222. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js +0 -39
  223. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js.map +0 -1
  224. package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts +0 -8
  225. package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts.map +0 -1
  226. package/dist/jobs/database/trigger-mcp-client-queue-options.js +0 -10
  227. package/dist/jobs/database/trigger-mcp-client-queue-options.js.map +0 -1
  228. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +0 -25
  229. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +0 -1
  230. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +0 -222
  231. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +0 -1
  232. package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.d.ts +0 -11
  233. package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.d.ts.map +0 -1
  234. package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.js +0 -39
  235. package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.js.map +0 -1
  236. package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.d.ts +0 -8
  237. package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.d.ts.map +0 -1
  238. package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.js +0 -10
  239. package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.js.map +0 -1
  240. package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.d.ts +0 -18
  241. package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.d.ts.map +0 -1
  242. package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.js +0 -103
  243. package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.js.map +0 -1
  244. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.d.ts +0 -11
  245. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.d.ts.map +0 -1
  246. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.js +0 -39
  247. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.js.map +0 -1
  248. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.d.ts +0 -8
  249. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.d.ts.map +0 -1
  250. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.js +0 -10
  251. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.js.map +0 -1
  252. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.d.ts +0 -18
  253. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.d.ts.map +0 -1
  254. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.js +0 -103
  255. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.js.map +0 -1
  256. package/dist/repository/ai-interaction.repository.d.ts +0 -12
  257. package/dist/repository/ai-interaction.repository.d.ts.map +0 -1
  258. package/dist/repository/ai-interaction.repository.js +0 -34
  259. package/dist/repository/ai-interaction.repository.js.map +0 -1
  260. package/dist/services/ai-interaction.service.d.ts +0 -23
  261. package/dist/services/ai-interaction.service.d.ts.map +0 -1
  262. package/dist/services/ai-interaction.service.js +0 -217
  263. package/dist/services/ai-interaction.service.js.map +0 -1
  264. package/dist/services/genai/ingest-metadata.service.d.ts +0 -38
  265. package/dist/services/genai/ingest-metadata.service.d.ts.map +0 -1
  266. package/dist/services/genai/ingest-metadata.service.js +0 -542
  267. package/dist/services/genai/ingest-metadata.service.js.map +0 -1
  268. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts +0 -9
  269. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts.map +0 -1
  270. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js +0 -39
  271. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js.map +0 -1
  272. package/dist/services/genai/r2r-helper.service.d.ts +0 -9
  273. package/dist/services/genai/r2r-helper.service.d.ts.map +0 -1
  274. package/dist/services/genai/r2r-helper.service.js +0 -40
  275. package/dist/services/genai/r2r-helper.service.js.map +0 -1
  276. package/dist-tests/api/authenticate.spec.js +0 -119
  277. package/dist-tests/api/authenticate.spec.js.map +0 -1
  278. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +0 -97
  279. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +0 -1
  280. package/dist-tests/api/ping.spec.js +0 -21
  281. package/dist-tests/api/ping.spec.js.map +0 -1
  282. package/dist-tests/helpers/auth.js +0 -41
  283. package/dist-tests/helpers/auth.js.map +0 -1
  284. package/dist-tests/helpers/env.js +0 -11
  285. package/dist-tests/helpers/env.js.map +0 -1
  286. package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +0 -438
  287. package/docs/dashboards/dashboard-curl-smoke-tests.txt +0 -146
  288. package/docs/dashboards/delete-legacy-dashboard-metadata.sql +0 -172
  289. package/docs/grouping-enhancements.md +0 -89
  290. package/docs/java-spring/README.md +0 -3
  291. package/docs/java-spring/solid-core-module-deep-dive-report.md +0 -1317
  292. package/docs/module-package-import-handoff.md +0 -691
  293. package/docs/seed-changes.md +0 -65
  294. package/docs/test-data-workflow.md +0 -200
  295. package/docs/type-declaration-import-issue.md +0 -24
  296. package/src/commands/ingest.command.ts +0 -36
  297. package/src/controllers/ai-interaction.controller.ts +0 -112
  298. package/src/dtos/create-ai-interaction.dto.ts +0 -89
  299. package/src/dtos/invoke-ai-prompt.dto.ts +0 -10
  300. package/src/dtos/update-ai-interaction.dto.ts +0 -93
  301. package/src/entities/ai-interaction.entity.ts +0 -71
  302. package/src/jobs/database/trigger-mcp-client-publisher-database.service.ts +0 -22
  303. package/src/jobs/database/trigger-mcp-client-queue-options.ts +0 -9
  304. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +0 -278
  305. package/src/jobs/rabbitmq/trigger-mcp-client-publisher.service.ts +0 -22
  306. package/src/jobs/rabbitmq/trigger-mcp-client-queue-options.ts +0 -9
  307. package/src/jobs/rabbitmq/trigger-mcp-client-subscriber.service.ts +0 -104
  308. package/src/jobs/redis/trigger-mcp-client-publisher-redis.service.ts +0 -23
  309. package/src/jobs/redis/trigger-mcp-client-queue-options-redis.ts +0 -9
  310. package/src/jobs/redis/trigger-mcp-client-subscriber-redis.service.ts +0 -98
  311. package/src/repository/ai-interaction.repository.ts +0 -17
  312. package/src/services/ai-interaction.service.ts +0 -239
  313. package/src/services/genai/ingest-metadata.service.ts +0 -798
  314. package/src/services/genai/mcp-handlers/mcp-handler-factory.service.ts +0 -33
  315. package/src/services/genai/r2r-helper.service.ts +0 -37
@@ -3,6 +3,7 @@ import { Entity, JoinColumn, ManyToOne, Column, Index } from 'typeorm';
3
3
  import { User } from 'src/entities/user.entity'
4
4
  @Entity("ss_user_activity_history")
5
5
  export class UserActivityHistory extends CommonEntity {
6
+ @Index()
6
7
  @ManyToOne(() => User, { nullable: true })
7
8
  @JoinColumn()
8
9
  user: User;
@@ -9,6 +9,7 @@ import { Exclude, Expose } from "class-transformer";
9
9
  @TableInheritance({ column: { type: "varchar", name: "type", default: "User" } })
10
10
  @Exclude()
11
11
  export class User extends CommonEntity {
12
+ @Index()
12
13
  @Column({ type: "varchar", nullable: true })
13
14
  @Expose()
14
15
  fullName: string;
@@ -88,6 +89,19 @@ export class User extends CommonEntity {
88
89
  // don't send to client
89
90
  microsoftProfilePicture: string;
90
91
 
92
+ @Column({ type: "varchar", nullable: true })
93
+ // don't send to client
94
+ microsoftActiveDirectoryId: string;
95
+
96
+ @Column({ type: "varchar", nullable: true })
97
+ // don't send to client
98
+ microsoftActiveDirectoryAccessToken: string;
99
+
100
+ @Column({ type: "varchar", nullable: true })
101
+ // don't send to client
102
+ microsoftActiveDirectoryProfilePicture: string;
103
+
104
+ @Index()
91
105
  @Column({ default: true })
92
106
  @Expose()
93
107
  active: boolean = true;
@@ -192,4 +206,4 @@ export class User extends CommonEntity {
192
206
  @Expose()
193
207
  apiKeys: UserApiKey[];
194
208
 
195
- }
209
+ }
@@ -11,9 +11,11 @@ export class ViewMetadata extends CommonEntity {
11
11
  @Column({ name: "name", type: "varchar"})
12
12
  name: string;
13
13
 
14
+ @Index()
14
15
  @Column({ name: "display_name", type: "varchar" })
15
16
  displayName: string;
16
17
 
18
+ @Index()
17
19
  @Column({ name: "type", type: "varchar" })
18
20
  type: string;
19
21
 
@@ -0,0 +1,83 @@
1
+ export type MicrosoftActiveDirectoryAuthConfiguration = {
2
+ clientID: string;
3
+ clientSecret: string;
4
+ tenant: string;
5
+ callbackURL: string;
6
+ redirectURL: string;
7
+ };
8
+
9
+ export const DEFAULT_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_TENANT = "common";
10
+ export const MICROSOFT_ACTIVE_DIRECTORY_OAUTH_SCOPES = [
11
+ "openid",
12
+ "profile",
13
+ "email",
14
+ "User.Read",
15
+ ];
16
+
17
+ type MicrosoftActiveDirectoryOauthProfileValue = {
18
+ value?: string;
19
+ };
20
+
21
+ export type MicrosoftActiveDirectoryOauthProfile = {
22
+ id?: string;
23
+ displayName?: string;
24
+ emails?: MicrosoftActiveDirectoryOauthProfileValue[];
25
+ photos?: MicrosoftActiveDirectoryOauthProfileValue[];
26
+ _json?: {
27
+ id?: string;
28
+ displayName?: string;
29
+ mail?: string;
30
+ userPrincipalName?: string;
31
+ email?: string;
32
+ preferred_username?: string;
33
+ picture?: string;
34
+ };
35
+ };
36
+
37
+ export const isMicrosoftActiveDirectoryOAuthConfigured = (
38
+ config: MicrosoftActiveDirectoryAuthConfiguration,
39
+ ): boolean => {
40
+ return !!(
41
+ config.clientID &&
42
+ config.clientSecret &&
43
+ config.tenant &&
44
+ config.callbackURL &&
45
+ config.redirectURL
46
+ );
47
+ };
48
+
49
+ export const getMicrosoftActiveDirectoryOAuthProfileId = (
50
+ profile: MicrosoftActiveDirectoryOauthProfile,
51
+ ): string | null => {
52
+ return profile.id || profile._json?.id || null;
53
+ };
54
+
55
+ export const getMicrosoftActiveDirectoryOAuthEmail = (
56
+ profile: MicrosoftActiveDirectoryOauthProfile,
57
+ ): string | null => {
58
+ const email =
59
+ profile.emails?.find((item) => !!item.value)?.value ||
60
+ profile._json?.mail ||
61
+ profile._json?.userPrincipalName ||
62
+ profile._json?.email ||
63
+ profile._json?.preferred_username ||
64
+ null;
65
+
66
+ return email?.trim().toLowerCase() || null;
67
+ };
68
+
69
+ export const getMicrosoftActiveDirectoryOAuthDisplayName = (
70
+ profile: MicrosoftActiveDirectoryOauthProfile,
71
+ ): string | null => {
72
+ return profile.displayName || profile._json?.displayName || null;
73
+ };
74
+
75
+ export const getMicrosoftActiveDirectoryOAuthPicture = (
76
+ profile: MicrosoftActiveDirectoryOauthProfile,
77
+ ): string | null => {
78
+ return (
79
+ profile.photos?.find((item) => !!item.value)?.value ||
80
+ profile._json?.picture ||
81
+ null
82
+ );
83
+ };
@@ -54,11 +54,11 @@ export const getDynamicModuleNamesBasedOnMetadata = (): string[] => {
54
54
 
55
55
  if (!isValidDirectory) return false;
56
56
 
57
- const moduleManifestPath = path.join(srcPath, dirent.name, `${dirent.name}.module.ts`);
58
- const moduleManifestStats = fs.statSync(moduleManifestPath, { throwIfNoEntry: false });
59
- if (!moduleManifestStats || !moduleManifestStats.isFile()) {
60
- return false;
61
- }
57
+ // const moduleManifestPath = path.join(srcPath, dirent.name, `${dirent.name}.module.ts`);
58
+ // const moduleManifestStats = fs.statSync(moduleManifestPath, { throwIfNoEntry: false });
59
+ // if (!moduleManifestStats || !moduleManifestStats.isFile()) {
60
+ // return false;
61
+ // } // Commenting this out, since we want to rely solely on the presence of metadata files and be able to load this as a dynamic module
62
62
 
63
63
  const fullPath = path.join(srcPath, dirent.name, 'metadata', `${dirent.name}-metadata.json`);
64
64
 
@@ -15,6 +15,10 @@ export function getUserExcludedFields(): string[] {
15
15
  "facebookId",
16
16
  "microsoftAccessToken",
17
17
  "microsoftId",
18
+ "microsoftProfilePicture",
19
+ "microsoftActiveDirectoryAccessToken",
20
+ "microsoftActiveDirectoryId",
21
+ "microsoftActiveDirectoryProfilePicture",
18
22
  "forgotPasswordConfirmedAt",
19
23
  "verificationTokenOnForgotPassword",
20
24
  "verificationTokenOnForgotPasswordExpiresAt",
@@ -38,4 +42,4 @@ export function getUserExcludedFields(): string[] {
38
42
  "userViewMetadataIds",
39
43
  "userViewMetadataCommand",
40
44
  ];
41
- }
45
+ }
package/src/index.ts CHANGED
@@ -154,7 +154,6 @@ export * from './entities/import-transaction.entity'
154
154
  export * from './entities/import-transaction-error-log.entity'
155
155
  export * from './entities/locale.entity'
156
156
  export * from './entities/user-activity-history.entity'
157
- export * from './entities/ai-interaction.entity'
158
157
  export * from './entities/model-sequence.entity'
159
158
  export * from './entities/dashboard-user-layout.entity'
160
159
  export * from './entities/user-api-key.entity'
@@ -261,9 +260,6 @@ export * from './jobs/redis/test-queue-subscriber-redis.service'
261
260
  export * from './jobs/redis/three60-whatsapp-publisher-redis.service'
262
261
  export * from './jobs/redis/three60-whatsapp-queue-options-redis'
263
262
  export * from './jobs/redis/three60-whatsapp-subscriber-redis.service'
264
- export * from './jobs/redis/trigger-mcp-client-publisher-redis.service'
265
- export * from './jobs/redis/trigger-mcp-client-queue-options-redis'
266
- export * from './jobs/redis/trigger-mcp-client-subscriber-redis.service'
267
263
  export * from './jobs/redis/twilio-sms-publisher-redis.service'
268
264
  export * from './jobs/redis/twilio-sms-queue-options-redis'
269
265
  export * from './jobs/redis/twilio-sms-subscriber-redis.service'
@@ -273,6 +269,7 @@ export * from './listeners/user-registration.listener'
273
269
  export * from './passport-strategies/google-oauth.strategy'
274
270
  export * from './passport-strategies/facebook-oauth.strategy'
275
271
  export * from './passport-strategies/microsoft-oauth.strategy'
272
+ export * from './passport-strategies/microsoft-active-directory-oauth.strategy'
276
273
 
277
274
  export * from './services/selection-providers/list-of-values-selection-providers.service'
278
275
 
@@ -355,7 +352,6 @@ export * from './services/dashboard-runtime.service'
355
352
  export * from './services/queues/publisher-factory.service'
356
353
  export * from './services/queues/database-publisher.service'
357
354
  export * from './services/queues/database-subscriber.service'
358
- export * from './services/ai-interaction.service'
359
355
  export * from './services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service'
360
356
  export * from './services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service'
361
357
  export * from './services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service'
package/src/interfaces.ts CHANGED
@@ -13,7 +13,6 @@ import { CreateSecurityRuleDto } from './dtos/create-security-rule.dto';
13
13
  import { FieldMetadata } from './entities/field-metadata.entity';
14
14
  import { Media } from './entities/media.entity';
15
15
  import { ComputedFieldMetadata } from './helpers/solid-registry';
16
- import { AiInteraction } from './entities/ai-interaction.entity';
17
16
  import { ActiveUserData } from './interfaces/active-user-data.interface';
18
17
  import { SecurityRuleConfig } from './dtos/security-rule-config.dto';
19
18
  import { SecurityRule } from './entities/security-rule.entity';
@@ -121,10 +120,6 @@ export interface CodeGenerationOptions {
121
120
  dryRun?: boolean;
122
121
  }
123
122
 
124
- export interface TriggerMcpClientOptions {
125
- aiInteractionId: number;
126
- moduleName: string;
127
- }
128
123
 
129
124
  export interface McpResponse {
130
125
  success: boolean;
@@ -196,9 +191,6 @@ export interface IDashboardWidgetDataProvider<
196
191
  ): Promise<IDashboardWidgetDataResponseEnvelope<TResponse> | any>;
197
192
  }
198
193
 
199
- export interface IMcpToolResponseHandler {
200
- apply(aiInteraction: AiInteraction);
201
- }
202
194
 
203
195
  /**
204
196
  * @deprecated Use `IEntityComputedFieldProvider` instead.
@@ -0,0 +1,63 @@
1
+ import { Injectable, Logger, UnauthorizedException } from '@nestjs/common';
2
+ import { AuthGuard, PassportStrategy } from '@nestjs/passport';
3
+ import { Strategy } from 'passport-microsoft';
4
+ import { DEFAULT_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_TENANT, MICROSOFT_ACTIVE_DIRECTORY_OAUTH_SCOPES, MicrosoftActiveDirectoryAuthConfiguration, getMicrosoftActiveDirectoryOAuthDisplayName, getMicrosoftActiveDirectoryOAuthEmail, getMicrosoftActiveDirectoryOAuthPicture, getMicrosoftActiveDirectoryOAuthProfileId, isMicrosoftActiveDirectoryOAuthConfigured } from 'src/helpers/microsoft-active-directory-oauth.helper';
5
+ import { v4 as uuid } from 'uuid';
6
+ import { UserService } from '../services/user.service';
7
+
8
+ const DUMMY_CLIENT_ID = 'DUMMY_CLIENT_ID';
9
+ const DUMMY_CLIENT_SECRET = 'DUMMY_CLIENT_SECRET';
10
+ const DUMMY_CALLBACK_URL = 'DUMMY_CALLBACK_URL';
11
+
12
+ @Injectable()
13
+ export class MicrosoftActiveDirectoryOauthGuard extends AuthGuard('microsoft-active-directory') { }
14
+
15
+
16
+ @Injectable()
17
+ export class MicrosoftActiveDirectoryOAuthStrategy extends PassportStrategy(Strategy, 'microsoft-active-directory') {
18
+ private readonly logger = new Logger(MicrosoftActiveDirectoryOAuthStrategy.name);
19
+ constructor(private readonly userService: UserService) {
20
+ // TODO: Have added default dummy values for the configuration, since the configuration is not mandatory.
21
+ // Perhaps a cleaner way needs to be figured out
22
+ const clientID = process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_CLIENT_ID || DUMMY_CLIENT_ID;
23
+ const clientSecret = process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_CLIENT_SECRET || DUMMY_CLIENT_SECRET;
24
+ const tenant = process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_TENANT_ID || DEFAULT_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_TENANT;
25
+ const callbackURL = process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_CALLBACK_URL || DUMMY_CALLBACK_URL;
26
+ const redirectURL = process.env.IAM_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_REDIRECT_URL;
27
+
28
+ super({ clientID, clientSecret, callbackURL, tenant, scope: MICROSOFT_ACTIVE_DIRECTORY_OAUTH_SCOPES, addUPNAsEmail: true });
29
+
30
+ const microsoftActiveDirectoryOauth: MicrosoftActiveDirectoryAuthConfiguration = { clientID, clientSecret, tenant, callbackURL, redirectURL }
31
+ if (!isMicrosoftActiveDirectoryOAuthConfigured(microsoftActiveDirectoryOauth)) {
32
+ this.logger.debug('Microsoft Active Directory OAuth strategy is not configured');
33
+ }
34
+ }
35
+
36
+ async validate(_accessToken: string, _refreshToken: string, profile: any, done: any): Promise<any> {
37
+ const providerId = getMicrosoftActiveDirectoryOAuthProfileId(profile);
38
+
39
+ if (!providerId) {
40
+ return done(new UnauthorizedException('Microsoft Active Directory OAuth profile is missing an id'), false);
41
+ }
42
+
43
+ // generate a unique access code.
44
+ const loginAccessCode: string = uuid();
45
+
46
+ const user = {
47
+ provider: 'microsoftActiveDirectory',
48
+ providerId,
49
+ email: getMicrosoftActiveDirectoryOAuthEmail(profile),
50
+ name: getMicrosoftActiveDirectoryOAuthDisplayName(profile) || getMicrosoftActiveDirectoryOAuthEmail(profile) || 'Microsoft Active Directory User',
51
+ picture: getMicrosoftActiveDirectoryOAuthPicture(profile),
52
+ accessCode: loginAccessCode,
53
+ };
54
+
55
+ // store the access code and the access token in the database.
56
+ // while doing this we also check if the user exists in the database if not we create one.
57
+ // if exists then we update the user and store the specified access code & token.
58
+ await this.userService.resolveUserOnOauthMicrosoftActiveDirectory({ ...user, accessToken: _accessToken, refreshToken: null });
59
+
60
+ done(null, user);
61
+ }
62
+
63
+ }