@memberjunction/server 6.1.4 → 6.2.0-edge.1

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 (435) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/agentSessions/ReturningVisitorRecap.d.ts +2 -0
  3. package/dist/agentSessions/ReturningVisitorRecap.d.ts.map +1 -1
  4. package/dist/agentSessions/ReturningVisitorRecap.js +5 -1
  5. package/dist/agentSessions/ReturningVisitorRecap.js.map +1 -1
  6. package/dist/agentSessions/SessionManager.js +2 -2
  7. package/dist/agentSessions/remoteBrowserGoalEngine.d.ts +8 -0
  8. package/dist/agentSessions/remoteBrowserGoalEngine.d.ts.map +1 -1
  9. package/dist/agentSessions/remoteBrowserGoalEngine.js +21 -5
  10. package/dist/agentSessions/remoteBrowserGoalEngine.js.map +1 -1
  11. package/dist/auth/AuthProviderCatalogRouter.d.ts +2 -0
  12. package/dist/auth/AuthProviderCatalogRouter.d.ts.map +1 -1
  13. package/dist/auth/AuthProviderCatalogRouter.js +5 -1
  14. package/dist/auth/AuthProviderCatalogRouter.js.map +1 -1
  15. package/dist/auth/exampleNewUserSubClass.js +2 -1
  16. package/dist/auth/exampleNewUserSubClass.js.map +1 -1
  17. package/dist/auth/index.d.ts +20 -1
  18. package/dist/auth/index.d.ts.map +1 -1
  19. package/dist/auth/index.js +20 -10
  20. package/dist/auth/index.js.map +1 -1
  21. package/dist/auth/initializeProviders.d.ts +8 -0
  22. package/dist/auth/initializeProviders.d.ts.map +1 -1
  23. package/dist/auth/initializeProviders.js +21 -5
  24. package/dist/auth/initializeProviders.js.map +1 -1
  25. package/dist/auth/magicLink/MagicLinkRouter.d.ts +9 -0
  26. package/dist/auth/magicLink/MagicLinkRouter.d.ts.map +1 -1
  27. package/dist/auth/magicLink/MagicLinkRouter.js +22 -10
  28. package/dist/auth/magicLink/MagicLinkRouter.js.map +1 -1
  29. package/dist/auth/magicLink/MagicLinkService.d.ts +17 -15
  30. package/dist/auth/magicLink/MagicLinkService.d.ts.map +1 -1
  31. package/dist/auth/magicLink/MagicLinkService.js +65 -51
  32. package/dist/auth/magicLink/MagicLinkService.js.map +1 -1
  33. package/dist/auth/magicLink/index.d.ts +2 -2
  34. package/dist/auth/magicLink/index.d.ts.map +1 -1
  35. package/dist/auth/magicLink/index.js +2 -2
  36. package/dist/auth/magicLink/index.js.map +1 -1
  37. package/dist/auth/magicLink/magicLinkCore.d.ts +54 -33
  38. package/dist/auth/magicLink/magicLinkCore.d.ts.map +1 -1
  39. package/dist/auth/magicLink/magicLinkCore.js +61 -61
  40. package/dist/auth/magicLink/magicLinkCore.js.map +1 -1
  41. package/dist/auth/magicLink/redeemLanding.d.ts +4 -0
  42. package/dist/auth/magicLink/redeemLanding.d.ts.map +1 -1
  43. package/dist/auth/magicLink/redeemLanding.js +12 -4
  44. package/dist/auth/magicLink/redeemLanding.js.map +1 -1
  45. package/dist/auth/magicLink/types.d.ts +4 -4
  46. package/dist/auth/principals.d.ts +2 -0
  47. package/dist/auth/principals.d.ts.map +1 -1
  48. package/dist/auth/principals.js +6 -2
  49. package/dist/auth/principals.js.map +1 -1
  50. package/dist/cache.d.ts +2 -0
  51. package/dist/cache.d.ts.map +1 -1
  52. package/dist/cache.js +3 -1
  53. package/dist/cache.js.map +1 -1
  54. package/dist/config.d.ts +293 -2
  55. package/dist/config.d.ts.map +1 -1
  56. package/dist/config.js +11 -4
  57. package/dist/config.js.map +1 -1
  58. package/dist/context.d.ts +20 -0
  59. package/dist/context.d.ts.map +1 -1
  60. package/dist/context.js +27 -19
  61. package/dist/context.js.map +1 -1
  62. package/dist/directives/Public.d.ts +2 -0
  63. package/dist/directives/Public.d.ts.map +1 -1
  64. package/dist/directives/Public.js +3 -1
  65. package/dist/directives/Public.js.map +1 -1
  66. package/dist/directives/RequireSystemUser.d.ts +2 -0
  67. package/dist/directives/RequireSystemUser.d.ts.map +1 -1
  68. package/dist/directives/RequireSystemUser.js +3 -1
  69. package/dist/directives/RequireSystemUser.js.map +1 -1
  70. package/dist/generated/graphql-schemas/__mj.d.ts +266 -4
  71. package/dist/generated/graphql-schemas/__mj.d.ts.map +1 -1
  72. package/dist/generated/graphql-schemas/__mj.js +1304 -0
  73. package/dist/generated/graphql-schemas/__mj.js.map +1 -1
  74. package/dist/generic/CacheInvalidationResolver.d.ts +8 -2
  75. package/dist/generic/CacheInvalidationResolver.d.ts.map +1 -1
  76. package/dist/generic/CacheInvalidationResolver.js +7 -3
  77. package/dist/generic/CacheInvalidationResolver.js.map +1 -1
  78. package/dist/generic/FireAndForgetHeartbeat.d.ts +3 -1
  79. package/dist/generic/FireAndForgetHeartbeat.d.ts.map +1 -1
  80. package/dist/generic/FireAndForgetHeartbeat.js +8 -4
  81. package/dist/generic/FireAndForgetHeartbeat.js.map +1 -1
  82. package/dist/generic/PushStatusResolver.d.ts +10 -1
  83. package/dist/generic/PushStatusResolver.d.ts.map +1 -1
  84. package/dist/generic/PushStatusResolver.js +11 -3
  85. package/dist/generic/PushStatusResolver.js.map +1 -1
  86. package/dist/generic/ResolverBase.d.ts +27 -1
  87. package/dist/generic/ResolverBase.d.ts.map +1 -1
  88. package/dist/generic/ResolverBase.js +64 -6
  89. package/dist/generic/ResolverBase.js.map +1 -1
  90. package/dist/index.d.ts +6 -0
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +29 -6
  93. package/dist/index.js.map +1 -1
  94. package/dist/integration/CustomColumnPromoter.d.ts +2 -0
  95. package/dist/integration/CustomColumnPromoter.d.ts.map +1 -1
  96. package/dist/integration/CustomColumnPromoter.js +5 -1
  97. package/dist/integration/CustomColumnPromoter.js.map +1 -1
  98. package/dist/integration/EntityMapLifecycle.d.ts +4 -0
  99. package/dist/integration/EntityMapLifecycle.d.ts.map +1 -1
  100. package/dist/integration/EntityMapLifecycle.js +10 -2
  101. package/dist/integration/EntityMapLifecycle.js.map +1 -1
  102. package/dist/logging/NoLog.d.ts +4 -0
  103. package/dist/logging/NoLog.d.ts.map +1 -1
  104. package/dist/logging/NoLog.js +10 -2
  105. package/dist/logging/NoLog.js.map +1 -1
  106. package/dist/logging/StartupLogger.d.ts +2 -0
  107. package/dist/logging/StartupLogger.d.ts.map +1 -1
  108. package/dist/logging/StartupLogger.js +5 -1
  109. package/dist/logging/StartupLogger.js.map +1 -1
  110. package/dist/logging/bootAudit.d.ts +11 -7
  111. package/dist/logging/bootAudit.d.ts.map +1 -1
  112. package/dist/logging/bootAudit.js +15 -7
  113. package/dist/logging/bootAudit.js.map +1 -1
  114. package/dist/logging/boundaryLogPayload.d.ts +4 -0
  115. package/dist/logging/boundaryLogPayload.d.ts.map +1 -1
  116. package/dist/logging/boundaryLogPayload.js +5 -1
  117. package/dist/logging/boundaryLogPayload.js.map +1 -1
  118. package/dist/logging/secretRedactor.d.ts +2 -0
  119. package/dist/logging/secretRedactor.d.ts.map +1 -1
  120. package/dist/logging/secretRedactor.js +8 -4
  121. package/dist/logging/secretRedactor.js.map +1 -1
  122. package/dist/logging/shortenForLog.d.ts +2 -0
  123. package/dist/logging/shortenForLog.d.ts.map +1 -1
  124. package/dist/logging/shortenForLog.js +7 -3
  125. package/dist/logging/shortenForLog.js.map +1 -1
  126. package/dist/logging/variablesLoggingMiddleware.d.ts +2 -0
  127. package/dist/logging/variablesLoggingMiddleware.d.ts.map +1 -1
  128. package/dist/logging/variablesLoggingMiddleware.js +8 -6
  129. package/dist/logging/variablesLoggingMiddleware.js.map +1 -1
  130. package/dist/metadataRefreshSignal.d.ts +19 -0
  131. package/dist/metadataRefreshSignal.d.ts.map +1 -0
  132. package/dist/metadataRefreshSignal.js +45 -0
  133. package/dist/metadataRefreshSignal.js.map +1 -0
  134. package/dist/middleware/MJTenantFilterMiddleware.js +4 -4
  135. package/dist/multiTenancy/index.d.ts +8 -0
  136. package/dist/multiTenancy/index.d.ts.map +1 -1
  137. package/dist/multiTenancy/index.js +21 -5
  138. package/dist/multiTenancy/index.js.map +1 -1
  139. package/dist/realtimeWidget/WidgetRouter.d.ts +5 -0
  140. package/dist/realtimeWidget/WidgetRouter.d.ts.map +1 -1
  141. package/dist/realtimeWidget/WidgetRouter.js +14 -10
  142. package/dist/realtimeWidget/WidgetRouter.js.map +1 -1
  143. package/dist/realtimeWidget/WidgetSessionService.d.ts +6 -6
  144. package/dist/realtimeWidget/WidgetSessionService.js +27 -27
  145. package/dist/realtimeWidget/host-identity.d.ts +5 -1
  146. package/dist/realtimeWidget/host-identity.d.ts.map +1 -1
  147. package/dist/realtimeWidget/host-identity.js +11 -3
  148. package/dist/realtimeWidget/host-identity.js.map +1 -1
  149. package/dist/realtimeWidget/index.d.ts +2 -2
  150. package/dist/realtimeWidget/index.d.ts.map +1 -1
  151. package/dist/realtimeWidget/index.js +2 -2
  152. package/dist/realtimeWidget/index.js.map +1 -1
  153. package/dist/realtimeWidget/visitorIdentity.d.ts +21 -1
  154. package/dist/realtimeWidget/visitorIdentity.d.ts.map +1 -1
  155. package/dist/realtimeWidget/visitorIdentity.js +16 -4
  156. package/dist/realtimeWidget/visitorIdentity.js.map +1 -1
  157. package/dist/realtimeWidget/widgetCore.d.ts +48 -0
  158. package/dist/realtimeWidget/widgetCore.d.ts.map +1 -1
  159. package/dist/realtimeWidget/widgetCore.js +38 -10
  160. package/dist/realtimeWidget/widgetCore.js.map +1 -1
  161. package/dist/realtimeWidget/widgetGuestElevation.d.ts +10 -6
  162. package/dist/realtimeWidget/widgetGuestElevation.d.ts.map +1 -1
  163. package/dist/realtimeWidget/widgetGuestElevation.js +14 -6
  164. package/dist/realtimeWidget/widgetGuestElevation.js.map +1 -1
  165. package/dist/resolvers/AdhocQueryResolver.js +3 -3
  166. package/dist/resolvers/FetchEntityVectorsResolver.js +2 -2
  167. package/dist/resolvers/FetchEntityVectorsResolver.js.map +1 -1
  168. package/dist/resolvers/FileResolver.js +3 -3
  169. package/dist/resolvers/GeoResolver.d.ts +2 -2
  170. package/dist/resolvers/GeoResolver.js +4 -4
  171. package/dist/resolvers/GetDataResolver.d.ts +14 -0
  172. package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
  173. package/dist/resolvers/GetDataResolver.js +43 -15
  174. package/dist/resolvers/GetDataResolver.js.map +1 -1
  175. package/dist/resolvers/IntegrationDiscoveryResolver.js +2 -2
  176. package/dist/resolvers/ListOperationsResolver.d.ts +20 -0
  177. package/dist/resolvers/ListOperationsResolver.d.ts.map +1 -1
  178. package/dist/resolvers/ListOperationsResolver.js +68 -28
  179. package/dist/resolvers/ListOperationsResolver.js.map +1 -1
  180. package/dist/resolvers/MCPResolver.d.ts +11 -1
  181. package/dist/resolvers/MCPResolver.d.ts.map +1 -1
  182. package/dist/resolvers/MCPResolver.js +7 -3
  183. package/dist/resolvers/MCPResolver.js.map +1 -1
  184. package/dist/resolvers/QuerySystemUserResolver.d.ts.map +1 -1
  185. package/dist/resolvers/QuerySystemUserResolver.js +2 -1
  186. package/dist/resolvers/QuerySystemUserResolver.js.map +1 -1
  187. package/dist/resolvers/RealtimeBridgeResolver.js +3 -3
  188. package/dist/resolvers/RealtimeClientSessionResolver.d.ts +37 -0
  189. package/dist/resolvers/RealtimeClientSessionResolver.d.ts.map +1 -1
  190. package/dist/resolvers/RealtimeClientSessionResolver.js +101 -11
  191. package/dist/resolvers/RealtimeClientSessionResolver.js.map +1 -1
  192. package/dist/resolvers/RemoteBrowserActionResolver.js +5 -5
  193. package/dist/resolvers/RunAIAgentResolver.d.ts +10 -4
  194. package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
  195. package/dist/resolvers/RunAIAgentResolver.js +74 -42
  196. package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
  197. package/dist/resolvers/RunAIPromptResolver.d.ts +1 -1
  198. package/dist/resolvers/RunAIPromptResolver.js +2 -2
  199. package/dist/resolvers/RunTestResolver.js +5 -5
  200. package/dist/resolvers/SearchEntitiesResolver.d.ts.map +1 -1
  201. package/dist/resolvers/SearchEntitiesResolver.js +3 -1
  202. package/dist/resolvers/SearchEntitiesResolver.js.map +1 -1
  203. package/dist/resolvers/SearchKnowledgeResolver.d.ts +1 -0
  204. package/dist/resolvers/SearchKnowledgeResolver.d.ts.map +1 -1
  205. package/dist/resolvers/SearchKnowledgeResolver.js +5 -0
  206. package/dist/resolvers/SearchKnowledgeResolver.js.map +1 -1
  207. package/dist/resolvers/SearchKnowledgeSystemUserResolver.d.ts.map +1 -1
  208. package/dist/resolvers/SearchKnowledgeSystemUserResolver.js +1 -0
  209. package/dist/resolvers/SearchKnowledgeSystemUserResolver.js.map +1 -1
  210. package/dist/resolvers/SqlLoggingConfigResolver.d.ts +8 -4
  211. package/dist/resolvers/SqlLoggingConfigResolver.d.ts.map +1 -1
  212. package/dist/resolvers/SqlLoggingConfigResolver.js +5 -5
  213. package/dist/resolvers/TaskGraphFrameResolver.d.ts +8 -1
  214. package/dist/resolvers/TaskGraphFrameResolver.d.ts.map +1 -1
  215. package/dist/resolvers/TaskGraphFrameResolver.js +6 -2
  216. package/dist/resolvers/TaskGraphFrameResolver.js.map +1 -1
  217. package/dist/resolvers/TransactionGroupResolver.d.ts.map +1 -1
  218. package/dist/resolvers/TransactionGroupResolver.js +53 -4
  219. package/dist/resolvers/TransactionGroupResolver.js.map +1 -1
  220. package/dist/resolvers/adhoc-query-helpers.d.ts +6 -0
  221. package/dist/resolvers/adhoc-query-helpers.d.ts.map +1 -1
  222. package/dist/resolvers/adhoc-query-helpers.js +10 -2
  223. package/dist/resolvers/adhoc-query-helpers.js.map +1 -1
  224. package/dist/resolvers/artifact-routing.d.ts +8 -8
  225. package/dist/resolvers/artifact-routing.js +2 -2
  226. package/dist/resolvers/artifact-routing.js.map +1 -1
  227. package/dist/resolvers/meetingRecordingRegistration.d.ts +10 -2
  228. package/dist/resolvers/meetingRecordingRegistration.d.ts.map +1 -1
  229. package/dist/resolvers/meetingRecordingRegistration.js +24 -8
  230. package/dist/resolvers/meetingRecordingRegistration.js.map +1 -1
  231. package/dist/resolvers/peaksSidecar.d.ts +4 -0
  232. package/dist/resolvers/peaksSidecar.d.ts.map +1 -1
  233. package/dist/resolvers/peaksSidecar.js +10 -2
  234. package/dist/resolvers/peaksSidecar.js.map +1 -1
  235. package/dist/rest/EntityCRUDHandler.d.ts +28 -0
  236. package/dist/rest/EntityCRUDHandler.d.ts.map +1 -1
  237. package/dist/rest/EntityCRUDHandler.js +20 -4
  238. package/dist/rest/EntityCRUDHandler.js.map +1 -1
  239. package/dist/rest/MediaStreamHandler.d.ts +2 -0
  240. package/dist/rest/MediaStreamHandler.d.ts.map +1 -1
  241. package/dist/rest/MediaStreamHandler.js +10 -6
  242. package/dist/rest/MediaStreamHandler.js.map +1 -1
  243. package/dist/rest/OAuthCallbackHandler.d.ts +9 -0
  244. package/dist/rest/OAuthCallbackHandler.d.ts.map +1 -1
  245. package/dist/rest/OAuthCallbackHandler.js +15 -3
  246. package/dist/rest/OAuthCallbackHandler.js.map +1 -1
  247. package/dist/rest/RESTEndpointHandler.d.ts +6 -4
  248. package/dist/rest/RESTEndpointHandler.d.ts.map +1 -1
  249. package/dist/rest/RESTEndpointHandler.js +15 -11
  250. package/dist/rest/RESTEndpointHandler.js.map +1 -1
  251. package/dist/rest/RealtimeSdpBrokerHandler.d.ts +5 -1
  252. package/dist/rest/RealtimeSdpBrokerHandler.d.ts.map +1 -1
  253. package/dist/rest/RealtimeSdpBrokerHandler.js +12 -4
  254. package/dist/rest/RealtimeSdpBrokerHandler.js.map +1 -1
  255. package/dist/rest/SignatureWebhookHandler.d.ts +2 -0
  256. package/dist/rest/SignatureWebhookHandler.d.ts.map +1 -1
  257. package/dist/rest/SignatureWebhookHandler.js +5 -1
  258. package/dist/rest/SignatureWebhookHandler.js.map +1 -1
  259. package/dist/rest/UploadTokenManager.d.ts +24 -8
  260. package/dist/rest/UploadTokenManager.d.ts.map +1 -1
  261. package/dist/rest/UploadTokenManager.js +53 -21
  262. package/dist/rest/UploadTokenManager.js.map +1 -1
  263. package/dist/rest/ViewOperationsHandler.d.ts +20 -0
  264. package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
  265. package/dist/rest/ViewOperationsHandler.js +20 -4
  266. package/dist/rest/ViewOperationsHandler.js.map +1 -1
  267. package/dist/rest/mediaRange.d.ts +4 -0
  268. package/dist/rest/mediaRange.d.ts.map +1 -1
  269. package/dist/rest/mediaRange.js +10 -2
  270. package/dist/rest/mediaRange.js.map +1 -1
  271. package/dist/rest/setupRESTEndpoints.d.ts +4 -0
  272. package/dist/rest/setupRESTEndpoints.d.ts.map +1 -1
  273. package/dist/rest/setupRESTEndpoints.js +13 -7
  274. package/dist/rest/setupRESTEndpoints.js.map +1 -1
  275. package/dist/serverExtensionReservedRoots.d.ts +2 -0
  276. package/dist/serverExtensionReservedRoots.d.ts.map +1 -1
  277. package/dist/serverExtensionReservedRoots.js +5 -1
  278. package/dist/serverExtensionReservedRoots.js.map +1 -1
  279. package/dist/services/MJStorageBlobStore.d.ts +41 -0
  280. package/dist/services/MJStorageBlobStore.d.ts.map +1 -0
  281. package/dist/services/MJStorageBlobStore.js +160 -0
  282. package/dist/services/MJStorageBlobStore.js.map +1 -0
  283. package/dist/services/TaskGraphActionRunner.d.ts +13 -8
  284. package/dist/services/TaskGraphActionRunner.d.ts.map +1 -1
  285. package/dist/services/TaskGraphActionRunner.js +16 -15
  286. package/dist/services/TaskGraphActionRunner.js.map +1 -1
  287. package/dist/types.d.ts +2 -0
  288. package/dist/types.d.ts.map +1 -1
  289. package/dist/types.js +7 -3
  290. package/dist/types.js.map +1 -1
  291. package/dist/util.d.ts +12 -3
  292. package/dist/util.d.ts.map +1 -1
  293. package/dist/util.js +19 -8
  294. package/dist/util.js.map +1 -1
  295. package/package.json +92 -92
  296. package/src/__tests__/FileResolverPeaks.test.ts +13 -13
  297. package/src/__tests__/ListOperationsResolver.test.ts +17 -17
  298. package/src/__tests__/MediaStreamHandler.test.ts +28 -28
  299. package/src/__tests__/NoLog.test.ts +11 -11
  300. package/src/__tests__/PrimaryKeyAlwaysMapped.test.ts +10 -10
  301. package/src/__tests__/RESTEndpointHandler.test.ts +14 -14
  302. package/src/__tests__/RealtimeBridgeResolver.test.ts +4 -2
  303. package/src/__tests__/RealtimeClientSessionResolver.test.ts +229 -0
  304. package/src/__tests__/RealtimeSdpBrokerHandler.test.ts +6 -6
  305. package/src/__tests__/RefreshAdoptsNewColumns.test.ts +8 -8
  306. package/src/__tests__/RemoteBrowserGoalEngine.test.ts +18 -18
  307. package/src/__tests__/ResolverBase.isaPromotionCreate.test.ts +412 -0
  308. package/src/__tests__/RunAIAgentResolver.historyFrom.test.ts +228 -0
  309. package/src/__tests__/SearchEntitiesResolver.readOnlyFallback.test.ts +78 -0
  310. package/src/__tests__/TaskGraphActionRunner.durablePayload.test.ts +129 -0
  311. package/src/__tests__/TaskGraphFrameResolver.test.ts +2 -2
  312. package/src/__tests__/TransactionGroupResolver.refusals.test.ts +290 -0
  313. package/src/__tests__/WidgetSessionService.test.ts +8 -4
  314. package/src/__tests__/adhoc-query-helpers.test.ts +21 -21
  315. package/src/__tests__/bootAudit.test.ts +11 -11
  316. package/src/__tests__/boundaryLogPayload.test.ts +6 -6
  317. package/src/__tests__/databaseAbstraction.test.ts +12 -6
  318. package/src/__tests__/getDataTokenRedaction.test.ts +7 -7
  319. package/src/__tests__/initializeProviders.refresh.test.ts +4 -4
  320. package/src/__tests__/magicLink.test.ts +73 -134
  321. package/src/__tests__/magicLinkService.consume.test.ts +224 -0
  322. package/src/__tests__/meetingRecordingRegistration.test.ts +12 -12
  323. package/src/__tests__/metadataRefreshSignal.test.ts +78 -0
  324. package/src/__tests__/multiTenancy.security.test.ts +40 -40
  325. package/src/__tests__/multiTenancy.test.ts +18 -18
  326. package/src/__tests__/newUsers.test.ts +24 -23
  327. package/src/__tests__/principals.test.ts +22 -22
  328. package/src/__tests__/pushStatusResolver.filter.test.ts +8 -8
  329. package/src/__tests__/secretRedactor.failOpen.test.ts +12 -12
  330. package/src/__tests__/secretRedactor.test.ts +12 -12
  331. package/src/__tests__/serverExtensionReservedRoots.test.ts +7 -7
  332. package/src/__tests__/subscriptionRedaction.test.ts +5 -5
  333. package/src/__tests__/unifiedAuth.test.ts +15 -9
  334. package/src/__tests__/visitorIdentity.resolve.test.ts +6 -6
  335. package/src/__tests__/widget.test.ts +45 -45
  336. package/src/__tests__/widgetGuestElevation.test.ts +7 -7
  337. package/src/__tests__/widgetHostIdentity.test.ts +14 -14
  338. package/src/agentSessions/ReturningVisitorRecap.ts +12 -1
  339. package/src/agentSessions/SessionManager.ts +2 -2
  340. package/src/agentSessions/remoteBrowserGoalEngine.ts +30 -5
  341. package/src/auth/AuthProviderCatalogRouter.ts +6 -1
  342. package/src/auth/__tests__/backward-compatibility.test.ts +3 -3
  343. package/src/auth/exampleNewUserSubClass.ts +2 -2
  344. package/src/auth/index.ts +43 -28
  345. package/src/auth/initializeProviders.ts +25 -5
  346. package/src/auth/magicLink/MagicLinkRouter.ts +28 -10
  347. package/src/auth/magicLink/MagicLinkService.ts +71 -52
  348. package/src/auth/magicLink/index.ts +7 -7
  349. package/src/auth/magicLink/magicLinkCore.ts +96 -64
  350. package/src/auth/magicLink/redeemLanding.ts +14 -4
  351. package/src/auth/magicLink/types.ts +54 -54
  352. package/src/auth/newUsers.ts +1 -1
  353. package/src/auth/principals.ts +11 -2
  354. package/src/cache.ts +4 -1
  355. package/src/config.ts +14 -4
  356. package/src/context.ts +37 -24
  357. package/src/directives/Public.ts +4 -1
  358. package/src/directives/RequireSystemUser.ts +4 -1
  359. package/src/generated/graphql-schemas/__mj.ts +933 -5
  360. package/src/generic/CacheInvalidationResolver.ts +12 -4
  361. package/src/generic/FireAndForgetHeartbeat.ts +19 -14
  362. package/src/generic/PushStatusResolver.ts +21 -7
  363. package/src/generic/ResolverBase.ts +66 -5
  364. package/src/generic/RunViewResolver.ts +22 -22
  365. package/src/generic/__tests__/FireAndForgetHeartbeat.test.ts +7 -7
  366. package/src/index.ts +34 -7
  367. package/src/integration/CustomColumnPromoter.ts +6 -1
  368. package/src/integration/EntityMapLifecycle.ts +20 -2
  369. package/src/logging/NoLog.ts +16 -2
  370. package/src/logging/StartupLogger.ts +6 -1
  371. package/src/logging/bootAudit.ts +26 -16
  372. package/src/logging/boundaryLogPayload.ts +8 -1
  373. package/src/logging/secretRedactor.ts +14 -9
  374. package/src/logging/shortenForLog.ts +8 -3
  375. package/src/logging/variablesLoggingMiddleware.ts +9 -6
  376. package/src/metadataRefreshSignal.ts +45 -0
  377. package/src/middleware/MJTenantFilterMiddleware.ts +4 -4
  378. package/src/multiTenancy/index.ts +29 -5
  379. package/src/realtimeWidget/WidgetRouter.ts +15 -10
  380. package/src/realtimeWidget/WidgetSessionService.ts +76 -76
  381. package/src/realtimeWidget/host-identity.ts +24 -10
  382. package/src/realtimeWidget/index.ts +3 -3
  383. package/src/realtimeWidget/visitorIdentity.ts +39 -8
  384. package/src/realtimeWidget/widgetCore.ts +75 -10
  385. package/src/realtimeWidget/widgetGuestElevation.ts +25 -12
  386. package/src/resolvers/AdhocQueryResolver.ts +3 -3
  387. package/src/resolvers/AgentSessionResolver.ts +3 -3
  388. package/src/resolvers/ColorResolver.ts +6 -6
  389. package/src/resolvers/ComponentRegistryResolver.ts +36 -36
  390. package/src/resolvers/EntityCommunicationsResolver.ts +4 -4
  391. package/src/resolvers/ExecuteRemoteOperationResolver.ts +9 -9
  392. package/src/resolvers/FetchEntityVectorsResolver.ts +2 -2
  393. package/src/resolvers/FileResolver.ts +42 -42
  394. package/src/resolvers/GeoResolver.ts +4 -4
  395. package/src/resolvers/GetDataResolver.ts +50 -15
  396. package/src/resolvers/IntegrationDiscoveryResolver.ts +2 -2
  397. package/src/resolvers/ListOperationsResolver.ts +78 -28
  398. package/src/resolvers/MCPResolver.ts +30 -15
  399. package/src/resolvers/QueryResolver.ts +13 -13
  400. package/src/resolvers/QuerySystemUserResolver.ts +2 -1
  401. package/src/resolvers/RealtimeBridgeResolver.ts +3 -3
  402. package/src/resolvers/RealtimeClientSessionResolver.ts +126 -13
  403. package/src/resolvers/RemoteBrowserActionResolver.ts +5 -5
  404. package/src/resolvers/RunAIAgentResolver.ts +118 -76
  405. package/src/resolvers/RunAIPromptResolver.ts +22 -22
  406. package/src/resolvers/RunTemplateResolver.ts +4 -4
  407. package/src/resolvers/RunTestResolver.ts +25 -25
  408. package/src/resolvers/SearchEntitiesResolver.ts +3 -1
  409. package/src/resolvers/SearchKnowledgeResolver.ts +4 -0
  410. package/src/resolvers/SearchKnowledgeSystemUserResolver.ts +1 -0
  411. package/src/resolvers/SqlLoggingConfigResolver.ts +56 -56
  412. package/src/resolvers/TaskGraphFrameResolver.ts +37 -28
  413. package/src/resolvers/TelemetryResolver.ts +79 -79
  414. package/src/resolvers/TransactionGroupResolver.ts +57 -4
  415. package/src/resolvers/__tests__/GetDataResolver.tokens.test.ts +40 -38
  416. package/src/resolvers/__tests__/artifact-routing.test.ts +23 -23
  417. package/src/resolvers/adhoc-query-helpers.ts +19 -2
  418. package/src/resolvers/artifact-routing.ts +19 -19
  419. package/src/resolvers/meetingRecordingRegistration.ts +44 -10
  420. package/src/resolvers/peaksSidecar.ts +12 -2
  421. package/src/rest/EntityCRUDHandler.ts +24 -4
  422. package/src/rest/MediaStreamHandler.ts +11 -6
  423. package/src/rest/OAuthCallbackHandler.ts +25 -7
  424. package/src/rest/RESTEndpointHandler.ts +20 -15
  425. package/src/rest/RealtimeSdpBrokerHandler.ts +14 -4
  426. package/src/rest/SignatureWebhookHandler.ts +6 -1
  427. package/src/rest/UploadTokenManager.ts +66 -30
  428. package/src/rest/ViewOperationsHandler.ts +24 -4
  429. package/src/rest/mediaRange.ts +16 -6
  430. package/src/rest/setupRESTEndpoints.ts +24 -12
  431. package/src/serverExtensionReservedRoots.ts +6 -1
  432. package/src/services/MJStorageBlobStore.ts +209 -0
  433. package/src/services/TaskGraphActionRunner.ts +16 -15
  434. package/src/types.ts +21 -16
  435. package/src/util.ts +22 -9
@@ -18,7 +18,7 @@ import { mj_core_schema } from '../../config.js';
18
18
 
19
19
 
20
20
 
21
- import { MJAIActionEntity, MJAIAgentActionEntity, MJAIAgentArtifactTypeEntity, MJAIAgentCategoryEntity, MJAIAgentChannelEntity, MJAIAgentClientToolEntity, MJAIAgentCoAgentEntity, MJAIAgentConfigurationEntity, MJAIAgentCredentialEntity, MJAIAgentDataSourceEntity, MJAIAgentExampleEntity, MJAIAgentHarnessEntity, MJAIAgentLearningCycleEntity, MJAIAgentModalityEntity, MJAIAgentModelEntity, MJAIAgentNoteTypeEntity, MJAIAgentNoteEntity, MJAIAgentPermissionEntity, MJAIAgentPersonaEntity, MJAIAgentPromptEntity, MJAIAgentRelationshipEntity, MJAIAgentRequestTypeEntity, MJAIAgentRequestEntity, MJAIAgentRunMediaEntity, MJAIAgentRunStepEntity, MJAIAgentRunEntity, MJAIAgentSearchScopeEntity, MJAIAgentSessionBridgeParticipantEntity, MJAIAgentSessionBridgeEntity, MJAIAgentSessionChannelEntity, MJAIAgentSessionEntity, MJAIAgentSkillEntity, MJAIAgentStepPathEntity, MJAIAgentStepEntity, MJAIAgentTypeEntity, MJAIAgentEntity, MJAIArchitectureEntity, MJAIBridgeAgentIdentityEntity, MJAIBridgeProviderChannelEntity, MJAIBridgeProviderEntity, MJAIClientToolDefinitionEntity, MJAIConfigurationParamEntity, MJAIConfigurationEntity, MJAICredentialBindingEntity, MJAIModalityEntity, MJAIModelActionEntity, MJAIModelArchitectureEntity, MJAIModelCostEntity, MJAIModelModalityEntity, MJAIModelPersonaEntity, MJAIModelPriceTypeEntity, MJAIModelPriceUnitTypeEntity, MJAIModelTypeEntity, MJAIModelVendorEntity, MJAIModelEntity, MJAIPersonaVendorEntity, MJAIPersonaEntity, MJAIPromptCategoryEntity, MJAIPromptModelEntity, MJAIPromptRunMediaEntity, MJAIPromptRunEntity, MJAIPromptTypeEntity, MJAIPromptEntity, MJAIRemoteBrowserProviderEntity, MJAIResultCacheEntity, MJAISkillActionEntity, MJAISkillPermissionEntity, MJAISkillSearchScopeEntity, MJAISkillSubAgentEntity, MJAISkillEntity, MJAIUsageTypeEntity, MJAIVendorTypeDefinitionEntity, MJAIVendorTypeEntity, MJAIVendorEntity, MJAPIApplicationScopeEntity, MJAPIApplicationEntity, MJAPIKeyApplicationEntity, MJAPIKeyScopeEntity, MJAPIKeyUsageLogEntity, MJAPIKeyEntity, MJAPIScopeEntity, MJAccessControlRuleEntity, MJActionAuthorizationEntity, MJActionCategoryEntity, MJActionContextTypeEntity, MJActionContextEntity, MJActionExecutionLogEntity, MJActionFilterEntity, MJActionLibraryEntity, MJActionParamEntity, MJActionResultCodeEntity, MJActionEntity, MJApplicationEntityEntity, MJApplicationRoleEntity, MJApplicationSettingEntity, MJApplicationEntity, MJArchiveConfigurationEntityEntity, MJArchiveConfigurationEntity, MJArchiveRunDetailEntity, MJArchiveRunEntity, MJArtifactPermissionEntity, MJArtifactTypeEntity, MJArtifactUseEntity, MJArtifactVersionAttributeEntity, MJArtifactVersionEntity, MJArtifactEntity, MJAuditLogTypeEntity, MJAuditLogEntity, MJAuthenticationProviderEntity, MJAuthorizationRoleEntity, MJAuthorizationEntity, MJClusterAnalysisEntity, MJClusterAnalysisClusterEntity, MJCollectionArtifactEntity, MJCollectionPermissionEntity, MJCollectionEntity, MJCommunicationBaseMessageTypeEntity, MJCommunicationLogEntity, MJCommunicationProviderMessageTypeEntity, MJCommunicationProviderEntity, MJCommunicationRunEntity, MJCompanyEntity, MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationRecordMapEntity, MJCompanyIntegrationRunAPILogEntity, MJCompanyIntegrationRunDetailEntity, MJCompanyIntegrationRunEntity, MJCompanyIntegrationSyncWatermarkEntity, MJCompanyIntegrationEntity, MJComponentDependencyEntity, MJComponentLibraryEntity, MJComponentLibraryLinkEntity, MJComponentRegistryEntity, MJComponentEntity, MJContentFileTypeEntity, MJContentItemAttributeEntity, MJContentItemChunkEntity, MJContentItemDuplicateEntity, MJContentItemTagEntity, MJContentItemEntity, MJContentProcessRunDetailEntity, MJContentProcessRunPromptRunEntity, MJContentProcessRunEntity, MJContentSourceParamEntity, MJContentSourceTypeParamEntity, MJContentSourceTypeEntity, MJContentSourceEntity, MJContentTypeAttributeEntity, MJContentTypeEntity, MJConversationArtifactPermissionEntity, MJConversationArtifactVersionEntity, MJConversationArtifactEntity, MJConversationCompactionRunEntity, MJConversationDetailArtifactEntity, MJConversationDetailAttachmentEntity, MJConversationDetailRatingEntity, MJConversationDetailEntity, MJConversationSkillEntity, MJConversationWidgetInstanceEntity, MJConversationEntity, MJCountryEntity, MJCredentialCategoryEntity, MJCredentialTypeEntity, MJCredentialEntity, MJDashboardCategoryEntity, MJDashboardCategoryLinkEntity, MJDashboardCategoryPermissionEntity, MJDashboardPartTypeEntity, MJDashboardPermissionEntity, MJDashboardUserPreferenceEntity, MJDashboardUserStateEntity, MJDashboardEntity, MJDataContextItemEntity, MJDataContextEntity, MJDatasetItemEntity, MJDatasetEntity, MJDuplicateRunDetailMatchEntity, MJDuplicateRunDetailEntity, MJDuplicateRunEntity, MJEmployeeCompanyIntegrationEntity, MJEmployeeRoleEntity, MJEmployeeSkillEntity, MJEmployeeEntity, MJEncryptionAlgorithmEntity, MJEncryptionKeySourceEntity, MJEncryptionKeyEntity, MJEntityEntity, MJEntityAIActionEntity, MJEntityActionFilterEntity, MJEntityActionInvocationTypeEntity, MJEntityActionInvocationEntity, MJEntityActionParamEntity, MJEntityActionEntity, MJEntityCommunicationFieldEntity, MJEntityCommunicationMessageTypeEntity, MJEntityDocumentRunEntity, MJEntityDocumentSettingEntity, MJEntityDocumentTypeEntity, MJEntityDocumentEntity, MJEntityFieldPermissionEntity, MJEntityFieldValueEntity, MJEntityFieldEntity, MJEntityFormOverrideEntity, MJEntityOrganicKeyRelatedEntityEntity, MJEntityOrganicKeyEntity, MJEntityPermissionEntity, MJEntityRecordDocumentEntity, MJEntityRelationshipDisplayComponentEntity, MJEntityRelationshipEntity, MJEntitySettingEntity, MJEnvironmentEntity, MJErrorLogEntity, MJExperimentSessionIterationEntity, MJExperimentSessionEntity, MJExperimentEntity, MJExplorerNavigationItemEntity, MJExternalDataSourceTypeEntity, MJExternalDataSourceEntity, MJFileCategoryEntity, MJFileEntityRecordLinkEntity, MJFileStorageAccountPermissionEntity, MJFileStorageAccountEntity, MJFileStorageProviderEntity, MJFileEntity, MJFormChromeRuleEntity, MJGeneratedCodeCategoryEntity, MJGeneratedCodeEntity, MJIdentityClaimTypeEntity, MJIdentityClaimEntity, MJInstanceConfigurationEntity, MJIntegrationObjectFieldEntity, MJIntegrationObjectEntity, MJIntegrationSourceTypeEntity, MJIntegrationURLFormatEntity, MJIntegrationEntity, MJKnowledgeHubSavedSearchEntity, MJLibraryEntity, MJLibraryItemEntity, MJListCategoryEntity, MJListDetailEntity, MJListInvitationEntity, MJListShareEntity, MJListEntity, MJMCPServerConnectionPermissionEntity, MJMCPServerConnectionToolEntity, MJMCPServerConnectionEntity, MJMCPServerToolEntity, MJMCPServerEntity, MJMCPToolExecutionLogEntity, MJMCPToolFavoriteEntity, MJMLAlgorithmUseCaseRankingEntity, MJMLAlgorithmUseCaseEntity, MJMLAlgorithmEntity, MJMLModelScoringBindingEntity, MJMLModelEntity, MJMLTrainingPipelineEntity, MJMLTrainingRunEntity, MJMagicLinkInviteAllowedDomainEntity, MJMagicLinkInviteAllowedPathEntity, MJMagicLinkInviteApplicationEntity, MJMagicLinkInviteRoleEntity, MJMagicLinkInviteEntity, MJMagicLinkRedemptionEntity, MJMaterializedResultQueryEntity, MJMaterializedResultEntity, MJOAuthAuthServerMetadataCacheEntity, MJOAuthAuthorizationStateEntity, MJOAuthClientRegistrationEntity, MJOAuthTokenEntity, MJOpenAppDependencyEntity, MJOpenAppInstallHistoryEntity, MJOpenAppEntity, MJOutputDeliveryTypeEntity, MJOutputFormatTypeEntity, MJPermissionDomainEntity, MJProcessRunDetailEntity, MJProcessRunEntity, MJProjectEntity, MJPublicLinkEntity, MJQueryEntity, MJQueryCategoryEntity, MJQueryDependencyEntity, MJQueryEntityEntity, MJQueryFieldEntity, MJQueryParameterEntity, MJQueryPermissionEntity, MJQuerySQLEntity, MJQueueTaskEntity, MJQueueTypeEntity, MJQueueEntity, MJRSUPendingWorkEntity, MJRecommendationItemEntity, MJRecommendationProviderEntity, MJRecommendationRunEntity, MJRecommendationEntity, MJRecordChangeReplayRunEntity, MJRecordChangeEntity, MJRecordGeoCodeEntity, MJRecordLinkEntity, MJRecordMergeDeletionLogEntity, MJRecordMergeLogEntity, MJRecordProcessCategoryEntity, MJRecordProcessWatermarkEntity, MJRecordProcessEntity, MJRemoteOperationCategoryEntity, MJRemoteOperationEntity, MJResourceLinkEntity, MJResourcePermissionEntity, MJResourceTypeEntity, MJRoleEntity, MJRowLevelSecurityFilterEntity, MJSQLDialectEntity, MJScheduledJobRunEntity, MJScheduledJobTypeEntity, MJScheduledJobEntity, MJSchemaInfoEntity, MJScopedPromptConfigEntity, MJScopedPromptPartEntity, MJSearchExecutionLogEntity, MJSearchProviderEntity, MJSearchScopeEntityEntity, MJSearchScopeExternalIndexEntity, MJSearchScopePermissionEntity, MJSearchScopeProviderEntity, MJSearchScopeStorageAccountEntity, MJSearchScopeTestQueryEntity, MJSearchScopeEntity, MJSignatureAccountEntity, MJSignatureProviderEntity, MJSignatureRequestDocumentEntity, MJSignatureRequestLogEntity, MJSignatureRequestRecipientEntity, MJSignatureRequestEntity, MJSkillEntity, MJStateProvinceEntity, MJTagAuditLogEntity, MJTagCoOccurrenceEntity, MJTagScopeEntity, MJTagSuggestionEntity, MJTagSynonymEntity, MJTaggedItemEntity, MJTagEntity, MJTaskDependencyEntity, MJTaskTypeEntity, MJTaskEntity, MJTemplateCategoryEntity, MJTemplateContentTypeEntity, MJTemplateContentEntity, MJTemplateParamEntity, MJTemplateEntity, MJTestRubricEntity, MJTestRunFeedbackEntity, MJTestRunOutputTypeEntity, MJTestRunOutputEntity, MJTestRunEntity, MJTestSuiteRunEntity, MJTestSuiteTestEntity, MJTestSuiteEntity, MJTestTypeEntity, MJTestEntity, MJThemeEntity, MJUserApplicationEntityEntity, MJUserApplicationEntity, MJUserFavoriteEntity, MJUserNotificationPreferenceEntity, MJUserNotificationTypeEntity, MJUserNotificationEntity, MJUserRecordLogEntity, MJUserRoleEntity, MJUserRoutineRecipientEntity, MJUserRoutineRunEntity, MJUserRoutineEntity, MJUserSettingEntity, MJUserViewCategoryEntity, MJUserViewRunDetailEntity, MJUserViewRunEntity, MJUserViewEntity, MJUserEntity, MJVectorDatabaseEntity, MJVectorIndexEntity, MJVersionInstallationEntity, MJVersionLabelItemEntity, MJVersionLabelRestoreEntity, MJVersionLabelEntity, MJViewTypeEntity, MJWorkspaceItemEntity, MJWorkspaceEntity } from '@memberjunction/core-entities';
21
+ import { MJAIActionEntity, MJAIAgentActionEntity, MJAIAgentArtifactTypeEntity, MJAIAgentCategoryEntity, MJAIAgentChannelEntity, MJAIAgentClientToolEntity, MJAIAgentCoAgentEntity, MJAIAgentConfigurationEntity, MJAIAgentCredentialEntity, MJAIAgentDataSourceEntity, MJAIAgentExampleEntity, MJAIAgentHarnessEntity, MJAIAgentLearningCycleEntity, MJAIAgentModalityEntity, MJAIAgentModelEntity, MJAIAgentNoteTypeEntity, MJAIAgentNoteEntity, MJAIAgentPermissionEntity, MJAIAgentPersonaEntity, MJAIAgentPromptEntity, MJAIAgentRelationshipEntity, MJAIAgentRequestTypeEntity, MJAIAgentRequestEntity, MJAIAgentRunMediaEntity, MJAIAgentRunStepEntity, MJAIAgentRunEntity, MJAIAgentSearchScopeEntity, MJAIAgentSessionBridgeParticipantEntity, MJAIAgentSessionBridgeEntity, MJAIAgentSessionChannelEntity, MJAIAgentSessionEntity, MJAIAgentSkillEntity, MJAIAgentStepPathEntity, MJAIAgentStepEntity, MJAIAgentTypeEntity, MJAIAgentEntity, MJAIArchitectureEntity, MJAIBridgeAgentIdentityEntity, MJAIBridgeProviderChannelEntity, MJAIBridgeProviderEntity, MJAIClientToolDefinitionEntity, MJAIConfigurationParamEntity, MJAIConfigurationEntity, MJAICredentialBindingEntity, MJAIModalityEntity, MJAIModelActionEntity, MJAIModelArchitectureEntity, MJAIModelCostEntity, MJAIModelModalityEntity, MJAIModelPersonaEntity, MJAIModelPriceTypeEntity, MJAIModelPriceUnitTypeEntity, MJAIModelTypeEntity, MJAIModelVendorEntity, MJAIModelEntity, MJAIPersonaVendorEntity, MJAIPersonaEntity, MJAIPromptCategoryEntity, MJAIPromptModelEntity, MJAIPromptRunMediaEntity, MJAIPromptRunEntity, MJAIPromptTypeEntity, MJAIPromptEntity, MJAIRemoteBrowserProviderEntity, MJAIResultCacheEntity, MJAISkillActionEntity, MJAISkillPermissionEntity, MJAISkillSearchScopeEntity, MJAISkillSubAgentEntity, MJAISkillEntity, MJAIUsageTypeEntity, MJAIVendorTypeDefinitionEntity, MJAIVendorTypeEntity, MJAIVendorEntity, MJAPIApplicationScopeEntity, MJAPIApplicationEntity, MJAPIKeyApplicationEntity, MJAPIKeyScopeEntity, MJAPIKeyUsageLogEntity, MJAPIKeyEntity, MJAPIScopeEntity, MJAccessControlRuleEntity, MJActionAuthorizationEntity, MJActionCategoryEntity, MJActionContextTypeEntity, MJActionContextEntity, MJActionExecutionLogEntity, MJActionFilterEntity, MJActionLibraryEntity, MJActionParamEntity, MJActionResultCodeEntity, MJActionEntity, MJApplicationEntityEntity, MJApplicationRoleEntity, MJApplicationSettingEntity, MJApplicationEntity, MJArchiveConfigurationEntityEntity, MJArchiveConfigurationEntity, MJArchiveRunDetailEntity, MJArchiveRunEntity, MJArtifactPermissionEntity, MJArtifactTypeEntity, MJArtifactUseEntity, MJArtifactVersionAttributeEntity, MJArtifactVersionEntity, MJArtifactEntity, MJAuditLogTypeEntity, MJAuditLogEntity, MJAuthenticationProviderEntity, MJAuthorizationRoleEntity, MJAuthorizationEntity, MJClusterAnalysisEntity, MJClusterAnalysisClusterEntity, MJCollectionArtifactEntity, MJCollectionPermissionEntity, MJCollectionEntity, MJCommunicationBaseMessageTypeEntity, MJCommunicationLogEntity, MJCommunicationProviderMessageTypeEntity, MJCommunicationProviderEntity, MJCommunicationRunEntity, MJCompanyEntity, MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationRecordMapEntity, MJCompanyIntegrationRunAPILogEntity, MJCompanyIntegrationRunDetailEntity, MJCompanyIntegrationRunEntity, MJCompanyIntegrationSyncWatermarkEntity, MJCompanyIntegrationEntity, MJComponentDependencyEntity, MJComponentLibraryEntity, MJComponentLibraryLinkEntity, MJComponentRegistryEntity, MJComponentEntity, MJContentFileTypeEntity, MJContentItemAttributeEntity, MJContentItemChunkEntity, MJContentItemDuplicateEntity, MJContentItemTagEntity, MJContentItemEntity, MJContentProcessRunDetailEntity, MJContentProcessRunPromptRunEntity, MJContentProcessRunEntity, MJContentSourceParamEntity, MJContentSourceTypeParamEntity, MJContentSourceTypeEntity, MJContentSourceEntity, MJContentTypeAttributeEntity, MJContentTypeEntity, MJConversationArtifactPermissionEntity, MJConversationArtifactVersionEntity, MJConversationArtifactEntity, MJConversationCompactionRunEntity, MJConversationDetailArtifactEntity, MJConversationDetailAttachmentEntity, MJConversationDetailRatingEntity, MJConversationDetailEntity, MJConversationSkillEntity, MJConversationWidgetInstanceEntity, MJConversationEntity, MJCountryEntity, MJCredentialCategoryEntity, MJCredentialTypeEntity, MJCredentialEntity, MJDashboardCategoryEntity, MJDashboardCategoryLinkEntity, MJDashboardCategoryPermissionEntity, MJDashboardPartTypeEntity, MJDashboardPermissionEntity, MJDashboardUserPreferenceEntity, MJDashboardUserStateEntity, MJDashboardEntity, MJDataContextItemEntity, MJDataContextEntity, MJDatasetItemEntity, MJDatasetEntity, MJDuplicateRunDetailMatchEntity, MJDuplicateRunDetailEntity, MJDuplicateRunEntity, MJEmployeeCompanyIntegrationEntity, MJEmployeeRoleEntity, MJEmployeeSkillEntity, MJEmployeeEntity, MJEncryptionAlgorithmEntity, MJEncryptionKeySourceEntity, MJEncryptionKeyEntity, MJEntityEntity, MJEntityAIActionEntity, MJEntityActionFilterEntity, MJEntityActionInvocationTypeEntity, MJEntityActionInvocationEntity, MJEntityActionParamEntity, MJEntityActionEntity, MJEntityCommunicationFieldEntity, MJEntityCommunicationMessageTypeEntity, MJEntityDocumentRunEntity, MJEntityDocumentSettingEntity, MJEntityDocumentTypeEntity, MJEntityDocumentEntity, MJEntityFieldPermissionEntity, MJEntityFieldValueEntity, MJEntityFieldEntity, MJEntityFormOverrideEntity, MJEntityOrganicKeyRelatedEntityEntity, MJEntityOrganicKeyEntity, MJEntityPermissionEntity, MJEntityRecordDocumentEntity, MJEntityRelationshipDisplayComponentEntity, MJEntityRelationshipEntity, MJEntitySettingEntity, MJEnvironmentEntity, MJErrorLogEntity, MJExperimentSessionIterationEntity, MJExperimentSessionEntity, MJExperimentEntity, MJExplorerNavigationItemEntity, MJExternalDataSourceTypeEntity, MJExternalDataSourceEntity, MJFeatureValueCacheEntity, MJFeatureValueEntity, MJFileCategoryEntity, MJFileEntityRecordLinkEntity, MJFileStorageAccountPermissionEntity, MJFileStorageAccountEntity, MJFileStorageProviderEntity, MJFileEntity, MJFormChromeRuleEntity, MJGeneratedCodeCategoryEntity, MJGeneratedCodeEntity, MJIdentityClaimTypeEntity, MJIdentityClaimEntity, MJInstanceConfigurationEntity, MJIntegrationObjectFieldEntity, MJIntegrationObjectEntity, MJIntegrationSourceTypeEntity, MJIntegrationURLFormatEntity, MJIntegrationEntity, MJKnowledgeHubSavedSearchEntity, MJLibraryEntity, MJLibraryItemEntity, MJListCategoryEntity, MJListDetailEntity, MJListInvitationEntity, MJListShareEntity, MJListEntity, MJMCPServerConnectionPermissionEntity, MJMCPServerConnectionToolEntity, MJMCPServerConnectionEntity, MJMCPServerToolEntity, MJMCPServerEntity, MJMCPToolExecutionLogEntity, MJMCPToolFavoriteEntity, MJMLAlgorithmUseCaseRankingEntity, MJMLAlgorithmUseCaseEntity, MJMLAlgorithmEntity, MJMLModelScoringBindingEntity, MJMLModelEntity, MJMLTrainingPipelineEntity, MJMLTrainingRunEntity, MJMagicLinkInviteAllowedDomainEntity, MJMagicLinkInviteAllowedPathEntity, MJMagicLinkInviteApplicationEntity, MJMagicLinkInviteRoleEntity, MJMagicLinkInviteEntity, MJMagicLinkRedemptionEntity, MJMaterializedResultQueryEntity, MJMaterializedResultEntity, MJOAuthAuthServerMetadataCacheEntity, MJOAuthAuthorizationStateEntity, MJOAuthClientRegistrationEntity, MJOAuthTokenEntity, MJOpenAppDependencyEntity, MJOpenAppInstallHistoryEntity, MJOpenAppEntity, MJOutputDeliveryTypeEntity, MJOutputFormatTypeEntity, MJPermissionDomainEntity, MJProcessRunDetailEntity, MJProcessRunEntity, MJProjectEntity, MJPublicLinkEntity, MJQueryEntity, MJQueryCategoryEntity, MJQueryDependencyEntity, MJQueryEntityEntity, MJQueryFieldEntity, MJQueryParameterEntity, MJQueryPermissionEntity, MJQuerySQLEntity, MJQueueTaskEntity, MJQueueTypeEntity, MJQueueEntity, MJRSUPendingWorkEntity, MJRecommendationItemEntity, MJRecommendationProviderEntity, MJRecommendationRunEntity, MJRecommendationEntity, MJRecordChangeReplayRunEntity, MJRecordChangeEntity, MJRecordGeoCodeEntity, MJRecordLinkEntity, MJRecordMergeDeletionLogEntity, MJRecordMergeLogEntity, MJRecordProcessCategoryEntity, MJRecordProcessWatermarkEntity, MJRecordProcessEntity, MJRemoteOperationCategoryEntity, MJRemoteOperationEntity, MJResourceLinkEntity, MJResourcePermissionEntity, MJResourceTypeEntity, MJRoleEntity, MJRowLevelSecurityFilterEntity, MJSQLDialectEntity, MJScheduledJobRunEntity, MJScheduledJobTypeEntity, MJScheduledJobEntity, MJSchemaInfoEntity, MJScopedPromptConfigEntity, MJScopedPromptPartEntity, MJSearchExecutionLogEntity, MJSearchProviderEntity, MJSearchScopeEntityEntity, MJSearchScopeExternalIndexEntity, MJSearchScopePermissionEntity, MJSearchScopeProviderEntity, MJSearchScopeStorageAccountEntity, MJSearchScopeTestQueryEntity, MJSearchScopeEntity, MJSignatureAccountEntity, MJSignatureProviderEntity, MJSignatureRequestDocumentEntity, MJSignatureRequestLogEntity, MJSignatureRequestRecipientEntity, MJSignatureRequestEntity, MJSkillEntity, MJStateProvinceEntity, MJTagAuditLogEntity, MJTagCoOccurrenceEntity, MJTagScopeEntity, MJTagSuggestionEntity, MJTagSynonymEntity, MJTaggedItemEntity, MJTagEntity, MJTaskDependencyEntity, MJTaskTypeEntity, MJTaskEntity, MJTemplateCategoryEntity, MJTemplateContentTypeEntity, MJTemplateContentEntity, MJTemplateParamEntity, MJTemplateEntity, MJTestRubricEntity, MJTestRunFeedbackEntity, MJTestRunOutputTypeEntity, MJTestRunOutputEntity, MJTestRunEntity, MJTestSuiteRunEntity, MJTestSuiteTestEntity, MJTestSuiteEntity, MJTestTypeEntity, MJTestEntity, MJThemeEntity, MJUserApplicationEntityEntity, MJUserApplicationEntity, MJUserFavoriteEntity, MJUserNotificationPreferenceEntity, MJUserNotificationTypeEntity, MJUserNotificationEntity, MJUserRecordLogEntity, MJUserRoleEntity, MJUserRoutineRecipientEntity, MJUserRoutineRunEntity, MJUserRoutineEntity, MJUserSettingEntity, MJUserViewCategoryEntity, MJUserViewRunDetailEntity, MJUserViewRunEntity, MJUserViewEntity, MJUserEntity, MJVectorDatabaseEntity, MJVectorIndexEntity, MJVersionInstallationEntity, MJVersionLabelItemEntity, MJVersionLabelRestoreEntity, MJVersionLabelEntity, MJViewTypeEntity, MJWebSearchProviderEntity, MJWorkspaceItemEntity, MJWorkspaceEntity } from '@memberjunction/core-entities';
22
22
 
23
23
 
24
24
  //****************************************************************************
@@ -15685,6 +15685,10 @@ export class MJAIPromptRun_ {
15685
15685
  @MaxLength(25)
15686
15686
  ToolCallingMode?: string;
15687
15687
 
15688
+ @Field({nullable: true, description: `The user on whose behalf this prompt was executed, written when the run is created. NULL for automated/unauthenticated runs and for runs that pre-date this column. For an agent-driven run the agent run's user is also reachable through AIAgentRunStep.TargetLogID, which vwAIUsageFacts falls back to.`})
15689
+ @MaxLength(36)
15690
+ UserID?: string;
15691
+
15688
15692
  @Field({nullable: true})
15689
15693
  @MaxLength(255)
15690
15694
  Prompt?: string;
@@ -15733,6 +15737,10 @@ export class MJAIPromptRun_ {
15733
15737
  @MaxLength(50)
15734
15738
  UsageType?: string;
15735
15739
 
15740
+ @Field({nullable: true})
15741
+ @MaxLength(100)
15742
+ User?: string;
15743
+
15736
15744
  @Field({nullable: true})
15737
15745
  @MaxLength(36)
15738
15746
  RootParentID?: string;
@@ -16029,6 +16037,9 @@ export class CreateMJAIPromptRunInput {
16029
16037
  @Field({ nullable: true })
16030
16038
  ToolCallingMode: string | null;
16031
16039
 
16040
+ @Field({ nullable: true })
16041
+ UserID: string | null;
16042
+
16032
16043
  @Field(() => RestoreContextInput, { nullable: true })
16033
16044
  RestoreContext___?: RestoreContextInput;
16034
16045
  }
@@ -16309,6 +16320,9 @@ export class UpdateMJAIPromptRunInput {
16309
16320
  @Field({ nullable: true })
16310
16321
  ToolCallingMode?: string | null;
16311
16322
 
16323
+ @Field({ nullable: true })
16324
+ UserID?: string | null;
16325
+
16312
16326
  @Field(() => [KeyValuePairInput], { nullable: true })
16313
16327
  OldValues___?: KeyValuePairInput[];
16314
16328
 
@@ -19215,6 +19229,9 @@ export class MJAIVendor_ {
19215
19229
  @MaxLength(36)
19216
19230
  CredentialTypeID?: string;
19217
19231
 
19232
+ @Field({nullable: true, description: `Vendor configuration bag (JSON, IAIVendorConfiguration shape). Its ModelDefaults key is an IAIModelConfiguration bag (LLM / Realtime / Vision / Audio sections) that forms the default model configuration for every model this vendor serves: the vendor layer of the ModelConfiguration cascade, above AIModelType and AIModel and below AIModelVendor, which may override it per key. NULL = contributes nothing.`})
19233
+ Configuration?: string;
19234
+
19218
19235
  @Field({nullable: true})
19219
19236
  @MaxLength(100)
19220
19237
  CredentialType?: string;
@@ -19241,6 +19258,9 @@ export class CreateMJAIVendorInput {
19241
19258
  @Field({ nullable: true })
19242
19259
  CredentialTypeID: string | null;
19243
19260
 
19261
+ @Field({ nullable: true })
19262
+ Configuration: string | null;
19263
+
19244
19264
  @Field(() => RestoreContextInput, { nullable: true })
19245
19265
  RestoreContext___?: RestoreContextInput;
19246
19266
  }
@@ -19263,6 +19283,9 @@ export class UpdateMJAIVendorInput {
19263
19283
  @Field({ nullable: true })
19264
19284
  CredentialTypeID?: string | null;
19265
19285
 
19286
+ @Field({ nullable: true })
19287
+ Configuration?: string | null;
19288
+
19266
19289
  @Field(() => [KeyValuePairInput], { nullable: true })
19267
19290
  OldValues___?: KeyValuePairInput[];
19268
19291
 
@@ -47652,7 +47675,7 @@ export class CreateMJEntityDocumentInput {
47652
47675
  EntityID?: string;
47653
47676
 
47654
47677
  @Field({ nullable: true })
47655
- VectorDatabaseID?: string;
47678
+ VectorDatabaseID: string | null;
47656
47679
 
47657
47680
  @Field({ nullable: true })
47658
47681
  Status?: string;
@@ -47661,7 +47684,7 @@ export class CreateMJEntityDocumentInput {
47661
47684
  TemplateID?: string;
47662
47685
 
47663
47686
  @Field({ nullable: true })
47664
- AIModelID?: string;
47687
+ AIModelID: string | null;
47665
47688
 
47666
47689
  @Field(() => Float, { nullable: true })
47667
47690
  PotentialMatchThreshold?: number;
@@ -47716,7 +47739,7 @@ export class UpdateMJEntityDocumentInput {
47716
47739
  EntityID?: string;
47717
47740
 
47718
47741
  @Field({ nullable: true })
47719
- VectorDatabaseID?: string;
47742
+ VectorDatabaseID?: string | null;
47720
47743
 
47721
47744
  @Field({ nullable: true })
47722
47745
  Status?: string;
@@ -47725,7 +47748,7 @@ export class UpdateMJEntityDocumentInput {
47725
47748
  TemplateID?: string;
47726
47749
 
47727
47750
  @Field({ nullable: true })
47728
- AIModelID?: string;
47751
+ AIModelID?: string | null;
47729
47752
 
47730
47753
  @Field(() => Float, { nullable: true })
47731
47754
  PotentialMatchThreshold?: number;
@@ -48472,6 +48495,13 @@ export class MJEntityField_ {
48472
48495
  @Field({nullable: true, description: `Optional JSON configuration bag defining field-level policies and capabilities (shape = IEntityFieldConfiguration). Includes Hierarchy options (IsHierarchy, MaxDepth) to explicitly declare recursive tree hierarchies.`})
48473
48496
  Configuration?: string;
48474
48497
 
48498
+ @Field({nullable: true, description: `Optional SQL WHERE fragment applied to every lookup on this foreign key (e.g. Status = 'Active'), AND-ed with whatever the user types, on both the browse list and the search path. Lets a picker be scoped from metadata rather than from every form template that renders the field. Authored by hand — CodeGen never derives or overwrites it. NULL means no filter, which is the pre-feature behaviour.`})
48499
+ RelatedEntityFilter?: string;
48500
+
48501
+ @Field({nullable: true, description: `Optional ORDER BY fragment for the empty-query browse list on this foreign key, e.g. [Name] or [LastActivityDate] DESC. Does not affect the typed-query path, which is ordered by search relevance. Authored by hand — CodeGen never derives or overwrites it. NULL means order by the related entity's name field.`})
48502
+ @MaxLength(500)
48503
+ RelatedEntityOrderBy?: string;
48504
+
48475
48505
  @Field({nullable: true})
48476
48506
  FieldCodeName?: string;
48477
48507
 
@@ -48688,6 +48718,12 @@ export class CreateMJEntityFieldInput {
48688
48718
  @Field({ nullable: true })
48689
48719
  Configuration: string | null;
48690
48720
 
48721
+ @Field({ nullable: true })
48722
+ RelatedEntityFilter: string | null;
48723
+
48724
+ @Field({ nullable: true })
48725
+ RelatedEntityOrderBy: string | null;
48726
+
48691
48727
  @Field(() => RestoreContextInput, { nullable: true })
48692
48728
  RestoreContext___?: RestoreContextInput;
48693
48729
  }
@@ -48857,6 +48893,12 @@ export class UpdateMJEntityFieldInput {
48857
48893
  @Field({ nullable: true })
48858
48894
  Configuration?: string | null;
48859
48895
 
48896
+ @Field({ nullable: true })
48897
+ RelatedEntityFilter?: string | null;
48898
+
48899
+ @Field({ nullable: true })
48900
+ RelatedEntityOrderBy?: string | null;
48901
+
48860
48902
  @Field(() => [KeyValuePairInput], { nullable: true })
48861
48903
  OldValues___?: KeyValuePairInput[];
48862
48904
 
@@ -52682,6 +52724,617 @@ export class MJExternalDataSourceResolver extends ResolverBase {
52682
52724
 
52683
52725
  }
52684
52726
 
52727
+ //****************************************************************************
52728
+ // ENTITY CLASS for MJ: Feature Value Caches
52729
+ //****************************************************************************
52730
+ @ObjectType({ description: `Dedup dictionary table for Feature Pipelines. Caches computed outputs by canonical input key hash, prompt version, and constraint hash. Distinct input strings (e.g. unique job titles) are computed once and reused across all matching records.` })
52731
+ export class MJFeatureValueCache_ {
52732
+ @Field({description: `Unique identifier for this feature value cache entry.`})
52733
+ @MaxLength(36)
52734
+ ID: string;
52735
+
52736
+ @Field({nullable: true, description: `Optional reference to the RecordProcess that produced this cache entry. When NULL, the cached result is scoped by PromptID only and shared across pipelines using the same prompt.`})
52737
+ @MaxLength(36)
52738
+ RecordProcessID?: string;
52739
+
52740
+ @Field({nullable: true, description: `Reference to the AI Prompt used to compute this cached entry.`})
52741
+ @MaxLength(36)
52742
+ PromptID?: string;
52743
+
52744
+ @Field({nullable: true, description: `SHA-256 content hash of the rendered prompt template, output schema, and constraint instructions at execution time.`})
52745
+ @MaxLength(64)
52746
+ PromptVersionHash?: string;
52747
+
52748
+ @Field({nullable: true, description: `SHA-256 hash of the output value constraint definitions. Changes to allowed enum values or ranges invalidate cached results.`})
52749
+ @MaxLength(64)
52750
+ ConstraintHash?: string;
52751
+
52752
+ @Field({nullable: true, description: `SHA-256 hash over the canonicalized JSON key field values. The primary lookup key.`})
52753
+ @MaxLength(64)
52754
+ KeyHash?: string;
52755
+
52756
+ @Field({nullable: true, description: `Human-readable plain text display of the key (e.g. "Senior Director, Field Marketing"). Makes this table legible as reference data.`})
52757
+ @MaxLength(500)
52758
+ KeyDisplay?: string;
52759
+
52760
+ @Field({nullable: true, description: `Full JSON representation of the input key fields and their values.`})
52761
+ KeyJSON?: string;
52762
+
52763
+ @Field({nullable: true, description: `Cached computed outputs JSON fragment. Stored directly so archival of AI Prompt Runs does not lose cached values.`})
52764
+ OutputsJSON?: string;
52765
+
52766
+ @Field({nullable: true, description: `Optional model reasoning or rationale captured from the prompt execution.`})
52767
+ Reasoning?: string;
52768
+
52769
+ @Field({nullable: true, description: `Soft reference to the AI Prompt Run that first computed and populated this cached result.`})
52770
+ @MaxLength(36)
52771
+ AIPromptRunID?: string;
52772
+
52773
+ @Field(() => Int, {nullable: true, description: `Total number of times this cached result has been served to skip an LLM invocation.`})
52774
+ HitCount?: number;
52775
+
52776
+ @Field({nullable: true, description: `Timestamp when this cached entry was last read and served.`})
52777
+ LastHitAt?: Date;
52778
+
52779
+ @Field({nullable: true, description: `Timestamp when this cached entry was originally computed.`})
52780
+ ComputedAt?: Date;
52781
+
52782
+ @Field({nullable: true, description: `Optional expiration timestamp for time-to-live invalidation. NULL means no expiration.`})
52783
+ ExpiresAt?: Date;
52784
+
52785
+ @Field({description: `Timestamp when this record was created.`})
52786
+ _mj__CreatedAt: Date;
52787
+
52788
+ @Field({description: `Timestamp when this record was last updated.`})
52789
+ _mj__UpdatedAt: Date;
52790
+
52791
+ @Field({nullable: true})
52792
+ @MaxLength(255)
52793
+ RecordProcess?: string;
52794
+
52795
+ @Field({nullable: true})
52796
+ @MaxLength(255)
52797
+ Prompt?: string;
52798
+
52799
+ @Field(() => [String], { nullable: true, description: `Field-level security: when non-null, the fields on this entity the calling user may read. Any other field arriving as null was withheld by the server rather than genuinely empty. Null for callers with no field restrictions.` })
52800
+ ReadableFields___?: string[];
52801
+
52802
+ }
52803
+
52804
+ //****************************************************************************
52805
+ // INPUT TYPE for MJ: Feature Value Caches
52806
+ //****************************************************************************
52807
+ @InputType()
52808
+ export class CreateMJFeatureValueCacheInput {
52809
+ @Field({ nullable: true })
52810
+ ID?: string;
52811
+
52812
+ @Field({ nullable: true })
52813
+ RecordProcessID: string | null;
52814
+
52815
+ @Field({ nullable: true })
52816
+ PromptID?: string;
52817
+
52818
+ @Field({ nullable: true })
52819
+ PromptVersionHash?: string;
52820
+
52821
+ @Field({ nullable: true })
52822
+ ConstraintHash?: string;
52823
+
52824
+ @Field({ nullable: true })
52825
+ KeyHash?: string;
52826
+
52827
+ @Field({ nullable: true })
52828
+ KeyDisplay: string | null;
52829
+
52830
+ @Field({ nullable: true })
52831
+ KeyJSON?: string;
52832
+
52833
+ @Field({ nullable: true })
52834
+ OutputsJSON?: string;
52835
+
52836
+ @Field({ nullable: true })
52837
+ Reasoning: string | null;
52838
+
52839
+ @Field({ nullable: true })
52840
+ AIPromptRunID: string | null;
52841
+
52842
+ @Field(() => Int, { nullable: true })
52843
+ HitCount?: number;
52844
+
52845
+ @Field({ nullable: true })
52846
+ LastHitAt: Date | null;
52847
+
52848
+ @Field({ nullable: true })
52849
+ ComputedAt?: Date;
52850
+
52851
+ @Field({ nullable: true })
52852
+ ExpiresAt: Date | null;
52853
+
52854
+ @Field(() => RestoreContextInput, { nullable: true })
52855
+ RestoreContext___?: RestoreContextInput;
52856
+ }
52857
+
52858
+
52859
+ //****************************************************************************
52860
+ // INPUT TYPE for MJ: Feature Value Caches
52861
+ //****************************************************************************
52862
+ @InputType()
52863
+ export class UpdateMJFeatureValueCacheInput {
52864
+ @Field()
52865
+ ID: string;
52866
+
52867
+ @Field({ nullable: true })
52868
+ RecordProcessID?: string | null;
52869
+
52870
+ @Field({ nullable: true })
52871
+ PromptID?: string;
52872
+
52873
+ @Field({ nullable: true })
52874
+ PromptVersionHash?: string;
52875
+
52876
+ @Field({ nullable: true })
52877
+ ConstraintHash?: string;
52878
+
52879
+ @Field({ nullable: true })
52880
+ KeyHash?: string;
52881
+
52882
+ @Field({ nullable: true })
52883
+ KeyDisplay?: string | null;
52884
+
52885
+ @Field({ nullable: true })
52886
+ KeyJSON?: string;
52887
+
52888
+ @Field({ nullable: true })
52889
+ OutputsJSON?: string;
52890
+
52891
+ @Field({ nullable: true })
52892
+ Reasoning?: string | null;
52893
+
52894
+ @Field({ nullable: true })
52895
+ AIPromptRunID?: string | null;
52896
+
52897
+ @Field(() => Int, { nullable: true })
52898
+ HitCount?: number;
52899
+
52900
+ @Field({ nullable: true })
52901
+ LastHitAt?: Date | null;
52902
+
52903
+ @Field({ nullable: true })
52904
+ ComputedAt?: Date;
52905
+
52906
+ @Field({ nullable: true })
52907
+ ExpiresAt?: Date | null;
52908
+
52909
+ @Field(() => [KeyValuePairInput], { nullable: true })
52910
+ OldValues___?: KeyValuePairInput[];
52911
+
52912
+ @Field(() => RestoreContextInput, { nullable: true })
52913
+ RestoreContext___?: RestoreContextInput;
52914
+ }
52915
+
52916
+ //****************************************************************************
52917
+ // RESOLVER for MJ: Feature Value Caches
52918
+ //****************************************************************************
52919
+ @ObjectType()
52920
+ export class RunMJFeatureValueCacheViewResult {
52921
+ @Field(() => [MJFeatureValueCache_])
52922
+ Results: MJFeatureValueCache_[];
52923
+
52924
+ @Field(() => String, {nullable: true})
52925
+ UserViewRunID?: string;
52926
+
52927
+ @Field(() => Int, {nullable: true})
52928
+ RowCount: number;
52929
+
52930
+ @Field(() => Int, {nullable: true})
52931
+ TotalRowCount: number;
52932
+
52933
+ @Field(() => Int, {nullable: true})
52934
+ ExecutionTime: number;
52935
+
52936
+ @Field({nullable: true})
52937
+ ErrorMessage?: string;
52938
+
52939
+ @Field(() => Boolean, {nullable: false})
52940
+ Success: boolean;
52941
+ }
52942
+
52943
+ @Resolver(MJFeatureValueCache_)
52944
+ export class MJFeatureValueCacheResolver extends ResolverBase {
52945
+ @Query(() => RunMJFeatureValueCacheViewResult)
52946
+ async RunMJFeatureValueCacheViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
52947
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
52948
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
52949
+ }
52950
+
52951
+ @Query(() => RunMJFeatureValueCacheViewResult)
52952
+ async RunMJFeatureValueCacheViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
52953
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
52954
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
52955
+ }
52956
+
52957
+ @Query(() => RunMJFeatureValueCacheViewResult)
52958
+ async RunMJFeatureValueCacheDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
52959
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
52960
+ input.EntityName = 'MJ: Feature Value Caches';
52961
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
52962
+ }
52963
+ @Query(() => MJFeatureValueCache_, { nullable: true })
52964
+ async MJFeatureValueCache(@Arg('ID', () => String) ID: string, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<MJFeatureValueCache_ | null> {
52965
+ this.CheckUserReadPermissions('MJ: Feature Value Caches', userPayload);
52966
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
52967
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwFeatureValueCaches')} WHERE ${provider.QuoteIdentifier('ID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Feature Value Caches', userPayload, EntityPermissionType.Read, 'AND');
52968
+ const rows = await provider.ExecuteSQL(sSQL, [ID], undefined, this.GetUserFromPayload(userPayload));
52969
+ const result = await this.MapFieldNamesToCodeNames('MJ: Feature Value Caches', rows && rows.length > 0 ? rows[0] : null, this.GetUserFromPayload(userPayload));
52970
+ return result;
52971
+ }
52972
+
52973
+ @Mutation(() => MJFeatureValueCache_)
52974
+ async CreateMJFeatureValueCache(
52975
+ @Arg('input', () => CreateMJFeatureValueCacheInput) input: CreateMJFeatureValueCacheInput,
52976
+ @Ctx() { providers, userPayload }: AppContext,
52977
+ @PubSub() pubSub: PubSubEngine
52978
+ ) {
52979
+ const provider = GetReadWriteProvider(providers);
52980
+ return this.CreateRecord('MJ: Feature Value Caches', input, provider, userPayload, pubSub)
52981
+ }
52982
+
52983
+ @Mutation(() => MJFeatureValueCache_)
52984
+ async UpdateMJFeatureValueCache(
52985
+ @Arg('input', () => UpdateMJFeatureValueCacheInput) input: UpdateMJFeatureValueCacheInput,
52986
+ @Ctx() { providers, userPayload }: AppContext,
52987
+ @PubSub() pubSub: PubSubEngine
52988
+ ) {
52989
+ const provider = GetReadWriteProvider(providers);
52990
+ return this.UpdateRecord('MJ: Feature Value Caches', input, provider, userPayload, pubSub);
52991
+ }
52992
+
52993
+ @Mutation(() => MJFeatureValueCache_)
52994
+ async DeleteMJFeatureValueCache(@Arg('ID', () => String) ID: string, @Arg('options___', () => DeleteOptionsInput) options: DeleteOptionsInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
52995
+ const provider = GetReadWriteProvider(providers);
52996
+ const key = new CompositeKey([{FieldName: 'ID', Value: ID}]);
52997
+ return this.DeleteRecord('MJ: Feature Value Caches', key, options, provider, userPayload, pubSub);
52998
+ }
52999
+
53000
+ }
53001
+
53002
+ //****************************************************************************
53003
+ // ENTITY CLASS for MJ: Feature Values
53004
+ //****************************************************************************
53005
+ @ObjectType({ description: `Complete historical audit table for Feature Pipelines. Records every feature value ever computed per entity record, with full provenance, model reasoning, and run back-links.` })
53006
+ export class MJFeatureValue_ {
53007
+ @Field({description: `Unique identifier for this feature value history record.`})
53008
+ @MaxLength(36)
53009
+ ID: string;
53010
+
53011
+ @Field({nullable: true, description: `The Record Process (Feature Pipeline) that computed this feature value.`})
53012
+ @MaxLength(36)
53013
+ RecordProcessID?: string;
53014
+
53015
+ @Field({nullable: true, description: `The entity of the record this feature was computed for.`})
53016
+ @MaxLength(36)
53017
+ EntityID?: string;
53018
+
53019
+ @Field({nullable: true, description: `Serialized primary key of the record this feature was computed for. Matches ProcessRunDetail.RecordID.`})
53020
+ @MaxLength(900)
53021
+ RecordID?: string;
53022
+
53023
+ @Field({nullable: true, description: `Name of the feature, matching DataFeatureOutput.Name.`})
53024
+ @MaxLength(255)
53025
+ FeatureName?: string;
53026
+
53027
+ @Field({nullable: true, description: `Computed value as text, for text and categorical features.`})
53028
+ ValueText?: string;
53029
+
53030
+ @Field(() => Float, {nullable: true, description: `Computed value as floating-point numeric, for numeric and score features.`})
53031
+ ValueNumeric?: number;
53032
+
53033
+ @Field({nullable: true, description: `Computed value as datetimeoffset, for date and timestamp features.`})
53034
+ ValueDate?: Date;
53035
+
53036
+ @Field(() => Boolean, {nullable: true, description: `Computed value as boolean bit flag.`})
53037
+ ValueBoolean?: boolean;
53038
+
53039
+ @Field({nullable: true, description: `Computed value as raw JSON string, for array or complex object features.`})
53040
+ ValueJSON?: string;
53041
+
53042
+ @Field({nullable: true, description: `Optional model reasoning or rationale captured from the prompt execution.`})
53043
+ Reasoning?: string;
53044
+
53045
+ @Field(() => Float, {nullable: true, description: `Optional confidence score associated with this computed value.`})
53046
+ Confidence?: number;
53047
+
53048
+ @Field({nullable: true, description: `Reference to the AI Prompt used to compute this feature value.`})
53049
+ @MaxLength(36)
53050
+ PromptID?: string;
53051
+
53052
+ @Field({nullable: true, description: `SHA-256 content hash of the rendered prompt template and instructions at execution time.`})
53053
+ @MaxLength(64)
53054
+ PromptVersionHash?: string;
53055
+
53056
+ @Field({nullable: true, description: `SHA-256 hash of the value constraint definitions in effect when this feature was computed.`})
53057
+ @MaxLength(64)
53058
+ ConstraintHash?: string;
53059
+
53060
+ @Field({nullable: true, description: `Reference to the Process Run during which this feature was computed.`})
53061
+ @MaxLength(36)
53062
+ ProcessRunID?: string;
53063
+
53064
+ @Field({nullable: true, description: `Reference to the specific Process Run Detail row for this record execution.`})
53065
+ @MaxLength(36)
53066
+ ProcessRunDetailID?: string;
53067
+
53068
+ @Field({nullable: true, description: `Soft reference to the AI Prompt Run that computed this value.`})
53069
+ @MaxLength(36)
53070
+ AIPromptRunID?: string;
53071
+
53072
+ @Field({nullable: true, description: `Optional reference to the FeatureValueCache entry if this value was served from cache.`})
53073
+ @MaxLength(36)
53074
+ FeatureValueCacheID?: string;
53075
+
53076
+ @Field({nullable: true, description: `Timestamp when this feature value was computed.`})
53077
+ ComputedAt?: Date;
53078
+
53079
+ @Field({description: `Timestamp when this record was created.`})
53080
+ _mj__CreatedAt: Date;
53081
+
53082
+ @Field({description: `Timestamp when this record was last updated.`})
53083
+ _mj__UpdatedAt: Date;
53084
+
53085
+ @Field({nullable: true})
53086
+ @MaxLength(255)
53087
+ RecordProcess?: string;
53088
+
53089
+ @Field({nullable: true})
53090
+ @MaxLength(255)
53091
+ Entity?: string;
53092
+
53093
+ @Field({nullable: true})
53094
+ @MaxLength(255)
53095
+ Prompt?: string;
53096
+
53097
+ @Field({nullable: true})
53098
+ @MaxLength(450)
53099
+ ProcessRunDetail?: string;
53100
+
53101
+ @Field({nullable: true})
53102
+ @MaxLength(500)
53103
+ FeatureValueCache?: string;
53104
+
53105
+ @Field(() => [String], { nullable: true, description: `Field-level security: when non-null, the fields on this entity the calling user may read. Any other field arriving as null was withheld by the server rather than genuinely empty. Null for callers with no field restrictions.` })
53106
+ ReadableFields___?: string[];
53107
+
53108
+ }
53109
+
53110
+ //****************************************************************************
53111
+ // INPUT TYPE for MJ: Feature Values
53112
+ //****************************************************************************
53113
+ @InputType()
53114
+ export class CreateMJFeatureValueInput {
53115
+ @Field({ nullable: true })
53116
+ ID?: string;
53117
+
53118
+ @Field({ nullable: true })
53119
+ RecordProcessID?: string;
53120
+
53121
+ @Field({ nullable: true })
53122
+ EntityID?: string;
53123
+
53124
+ @Field({ nullable: true })
53125
+ RecordID?: string;
53126
+
53127
+ @Field({ nullable: true })
53128
+ FeatureName?: string;
53129
+
53130
+ @Field({ nullable: true })
53131
+ ValueText: string | null;
53132
+
53133
+ @Field(() => Float, { nullable: true })
53134
+ ValueNumeric: number | null;
53135
+
53136
+ @Field({ nullable: true })
53137
+ ValueDate: Date | null;
53138
+
53139
+ @Field(() => Boolean, { nullable: true })
53140
+ ValueBoolean: boolean | null;
53141
+
53142
+ @Field({ nullable: true })
53143
+ ValueJSON: string | null;
53144
+
53145
+ @Field({ nullable: true })
53146
+ Reasoning: string | null;
53147
+
53148
+ @Field(() => Float, { nullable: true })
53149
+ Confidence: number | null;
53150
+
53151
+ @Field({ nullable: true })
53152
+ PromptID: string | null;
53153
+
53154
+ @Field({ nullable: true })
53155
+ PromptVersionHash: string | null;
53156
+
53157
+ @Field({ nullable: true })
53158
+ ConstraintHash: string | null;
53159
+
53160
+ @Field({ nullable: true })
53161
+ ProcessRunID: string | null;
53162
+
53163
+ @Field({ nullable: true })
53164
+ ProcessRunDetailID: string | null;
53165
+
53166
+ @Field({ nullable: true })
53167
+ AIPromptRunID: string | null;
53168
+
53169
+ @Field({ nullable: true })
53170
+ FeatureValueCacheID: string | null;
53171
+
53172
+ @Field({ nullable: true })
53173
+ ComputedAt?: Date;
53174
+
53175
+ @Field(() => RestoreContextInput, { nullable: true })
53176
+ RestoreContext___?: RestoreContextInput;
53177
+ }
53178
+
53179
+
53180
+ //****************************************************************************
53181
+ // INPUT TYPE for MJ: Feature Values
53182
+ //****************************************************************************
53183
+ @InputType()
53184
+ export class UpdateMJFeatureValueInput {
53185
+ @Field()
53186
+ ID: string;
53187
+
53188
+ @Field({ nullable: true })
53189
+ RecordProcessID?: string;
53190
+
53191
+ @Field({ nullable: true })
53192
+ EntityID?: string;
53193
+
53194
+ @Field({ nullable: true })
53195
+ RecordID?: string;
53196
+
53197
+ @Field({ nullable: true })
53198
+ FeatureName?: string;
53199
+
53200
+ @Field({ nullable: true })
53201
+ ValueText?: string | null;
53202
+
53203
+ @Field(() => Float, { nullable: true })
53204
+ ValueNumeric?: number | null;
53205
+
53206
+ @Field({ nullable: true })
53207
+ ValueDate?: Date | null;
53208
+
53209
+ @Field(() => Boolean, { nullable: true })
53210
+ ValueBoolean?: boolean | null;
53211
+
53212
+ @Field({ nullable: true })
53213
+ ValueJSON?: string | null;
53214
+
53215
+ @Field({ nullable: true })
53216
+ Reasoning?: string | null;
53217
+
53218
+ @Field(() => Float, { nullable: true })
53219
+ Confidence?: number | null;
53220
+
53221
+ @Field({ nullable: true })
53222
+ PromptID?: string | null;
53223
+
53224
+ @Field({ nullable: true })
53225
+ PromptVersionHash?: string | null;
53226
+
53227
+ @Field({ nullable: true })
53228
+ ConstraintHash?: string | null;
53229
+
53230
+ @Field({ nullable: true })
53231
+ ProcessRunID?: string | null;
53232
+
53233
+ @Field({ nullable: true })
53234
+ ProcessRunDetailID?: string | null;
53235
+
53236
+ @Field({ nullable: true })
53237
+ AIPromptRunID?: string | null;
53238
+
53239
+ @Field({ nullable: true })
53240
+ FeatureValueCacheID?: string | null;
53241
+
53242
+ @Field({ nullable: true })
53243
+ ComputedAt?: Date;
53244
+
53245
+ @Field(() => [KeyValuePairInput], { nullable: true })
53246
+ OldValues___?: KeyValuePairInput[];
53247
+
53248
+ @Field(() => RestoreContextInput, { nullable: true })
53249
+ RestoreContext___?: RestoreContextInput;
53250
+ }
53251
+
53252
+ //****************************************************************************
53253
+ // RESOLVER for MJ: Feature Values
53254
+ //****************************************************************************
53255
+ @ObjectType()
53256
+ export class RunMJFeatureValueViewResult {
53257
+ @Field(() => [MJFeatureValue_])
53258
+ Results: MJFeatureValue_[];
53259
+
53260
+ @Field(() => String, {nullable: true})
53261
+ UserViewRunID?: string;
53262
+
53263
+ @Field(() => Int, {nullable: true})
53264
+ RowCount: number;
53265
+
53266
+ @Field(() => Int, {nullable: true})
53267
+ TotalRowCount: number;
53268
+
53269
+ @Field(() => Int, {nullable: true})
53270
+ ExecutionTime: number;
53271
+
53272
+ @Field({nullable: true})
53273
+ ErrorMessage?: string;
53274
+
53275
+ @Field(() => Boolean, {nullable: false})
53276
+ Success: boolean;
53277
+ }
53278
+
53279
+ @Resolver(MJFeatureValue_)
53280
+ export class MJFeatureValueResolver extends ResolverBase {
53281
+ @Query(() => RunMJFeatureValueViewResult)
53282
+ async RunMJFeatureValueViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
53283
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
53284
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
53285
+ }
53286
+
53287
+ @Query(() => RunMJFeatureValueViewResult)
53288
+ async RunMJFeatureValueViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
53289
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
53290
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
53291
+ }
53292
+
53293
+ @Query(() => RunMJFeatureValueViewResult)
53294
+ async RunMJFeatureValueDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
53295
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
53296
+ input.EntityName = 'MJ: Feature Values';
53297
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
53298
+ }
53299
+ @Query(() => MJFeatureValue_, { nullable: true })
53300
+ async MJFeatureValue(@Arg('ID', () => String) ID: string, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<MJFeatureValue_ | null> {
53301
+ this.CheckUserReadPermissions('MJ: Feature Values', userPayload);
53302
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
53303
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwFeatureValues')} WHERE ${provider.QuoteIdentifier('ID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Feature Values', userPayload, EntityPermissionType.Read, 'AND');
53304
+ const rows = await provider.ExecuteSQL(sSQL, [ID], undefined, this.GetUserFromPayload(userPayload));
53305
+ const result = await this.MapFieldNamesToCodeNames('MJ: Feature Values', rows && rows.length > 0 ? rows[0] : null, this.GetUserFromPayload(userPayload));
53306
+ return result;
53307
+ }
53308
+
53309
+ @Mutation(() => MJFeatureValue_)
53310
+ async CreateMJFeatureValue(
53311
+ @Arg('input', () => CreateMJFeatureValueInput) input: CreateMJFeatureValueInput,
53312
+ @Ctx() { providers, userPayload }: AppContext,
53313
+ @PubSub() pubSub: PubSubEngine
53314
+ ) {
53315
+ const provider = GetReadWriteProvider(providers);
53316
+ return this.CreateRecord('MJ: Feature Values', input, provider, userPayload, pubSub)
53317
+ }
53318
+
53319
+ @Mutation(() => MJFeatureValue_)
53320
+ async UpdateMJFeatureValue(
53321
+ @Arg('input', () => UpdateMJFeatureValueInput) input: UpdateMJFeatureValueInput,
53322
+ @Ctx() { providers, userPayload }: AppContext,
53323
+ @PubSub() pubSub: PubSubEngine
53324
+ ) {
53325
+ const provider = GetReadWriteProvider(providers);
53326
+ return this.UpdateRecord('MJ: Feature Values', input, provider, userPayload, pubSub);
53327
+ }
53328
+
53329
+ @Mutation(() => MJFeatureValue_)
53330
+ async DeleteMJFeatureValue(@Arg('ID', () => String) ID: string, @Arg('options___', () => DeleteOptionsInput) options: DeleteOptionsInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
53331
+ const provider = GetReadWriteProvider(providers);
53332
+ const key = new CompositeKey([{FieldName: 'ID', Value: ID}]);
53333
+ return this.DeleteRecord('MJ: Feature Values', key, options, provider, userPayload, pubSub);
53334
+ }
53335
+
53336
+ }
53337
+
52685
53338
  //****************************************************************************
52686
53339
  // ENTITY CLASS for MJ: File Categories
52687
53340
  //****************************************************************************
@@ -66322,6 +66975,10 @@ export class MJProject_ {
66322
66975
  @Field()
66323
66976
  _mj__UpdatedAt: Date;
66324
66977
 
66978
+ @Field({nullable: true, description: `The user who owns this folder, or NULL when the folder is shared with the whole environment. NULL (the value every pre-existing folder carries) means SHARED: visible to anyone who can read projects in the environment, which was the only possible behaviour before this column existed. A set value means PERSONAL: the folder belongs to that user and consumers filter it to them, so it stays out of other people's sidebars. Personal is opt-in at create time; nothing is migrated.`})
66979
+ @MaxLength(36)
66980
+ OwnerUserID?: string;
66981
+
66325
66982
  @Field({nullable: true})
66326
66983
  @MaxLength(255)
66327
66984
  Environment?: string;
@@ -66330,6 +66987,10 @@ export class MJProject_ {
66330
66987
  @MaxLength(255)
66331
66988
  Parent?: string;
66332
66989
 
66990
+ @Field({nullable: true})
66991
+ @MaxLength(100)
66992
+ OwnerUser?: string;
66993
+
66333
66994
  @Field({nullable: true})
66334
66995
  @MaxLength(36)
66335
66996
  RootParentID?: string;
@@ -66380,6 +67041,9 @@ export class CreateMJProjectInput {
66380
67041
  @Field(() => Boolean, { nullable: true })
66381
67042
  IsArchived?: boolean;
66382
67043
 
67044
+ @Field({ nullable: true })
67045
+ OwnerUserID: string | null;
67046
+
66383
67047
  @Field(() => RestoreContextInput, { nullable: true })
66384
67048
  RestoreContext___?: RestoreContextInput;
66385
67049
  }
@@ -66414,6 +67078,9 @@ export class UpdateMJProjectInput {
66414
67078
  @Field(() => Boolean, { nullable: true })
66415
67079
  IsArchived?: boolean;
66416
67080
 
67081
+ @Field({ nullable: true })
67082
+ OwnerUserID?: string | null;
67083
+
66417
67084
  @Field(() => [KeyValuePairInput], { nullable: true })
66418
67085
  OldValues___?: KeyValuePairInput[];
66419
67086
 
@@ -66821,6 +67488,9 @@ export class MJQuery_ {
66821
67488
  @Field(() => Boolean, {nullable: true, description: `Author's declared intent that this Query should be materialized. CodeGen scans for IsMaterialized = 1 and, if the query qualifies (§9/§10), materializes it. The authoritative state lives on the linked MJ: Materialized Results row (found via the MaterializedResultQuery join table).`})
66822
67489
  IsMaterialized?: boolean;
66823
67490
 
67491
+ @Field({nullable: true, description: `Optional JSON configuration bag defining query-level policies and semantic capabilities (shape = IQueryConfiguration). Includes Priority (1-100) for ground-truth ranking in the semantic layer, LogExecution to control query execution logging, AlternativeQuestions for multi-phrasing vector recall, UsageGuidance and WhenNotToUse bounds for AI agents, and DomainScope.`})
67492
+ Configuration?: string;
67493
+
66824
67494
  @Field({nullable: true})
66825
67495
  @MaxLength(50)
66826
67496
  Category?: string;
@@ -66919,6 +67589,9 @@ export class CreateMJQueryInput {
66919
67589
  @Field(() => Boolean, { nullable: true })
66920
67590
  IsMaterialized?: boolean;
66921
67591
 
67592
+ @Field({ nullable: true })
67593
+ Configuration: string | null;
67594
+
66922
67595
  @Field(() => RestoreContextInput, { nullable: true })
66923
67596
  RestoreContext___?: RestoreContextInput;
66924
67597
  }
@@ -67001,6 +67674,9 @@ export class UpdateMJQueryInput {
67001
67674
  @Field(() => Boolean, { nullable: true })
67002
67675
  IsMaterialized?: boolean;
67003
67676
 
67677
+ @Field({ nullable: true })
67678
+ Configuration?: string | null;
67679
+
67004
67680
  @Field(() => [KeyValuePairInput], { nullable: true })
67005
67681
  OldValues___?: KeyValuePairInput[];
67006
67682
 
@@ -90803,6 +91479,258 @@ export class MJViewTypeResolver extends ResolverBase {
90803
91479
 
90804
91480
  }
90805
91481
 
91482
+ //****************************************************************************
91483
+ // ENTITY CLASS for MJ: Web Search Providers
91484
+ //****************************************************************************
91485
+ @ObjectType({ description: `Registry of external web search vendors available to @memberjunction/web-search-engine. Each row configures one driver: whether it is active, its position in the failover order, and where its credential lives. Provider capabilities (answer synthesis, domain filtering, freshness) are declared by the driver class, not stored here.` })
91486
+ export class MJWebSearchProvider_ {
91487
+ @Field()
91488
+ @MaxLength(36)
91489
+ ID: string;
91490
+
91491
+ @Field({nullable: true, description: `Administrator-facing name for this provider, e.g. "Brave" or "Tavily". Unique, and usable as the Provider value when a caller pins a search to one vendor.`})
91492
+ @MaxLength(200)
91493
+ Name?: string;
91494
+
91495
+ @Field({nullable: true, description: `What this provider searches, what it costs, and when it is the right choice.`})
91496
+ Description?: string;
91497
+
91498
+ @Field({nullable: true, description: `ClassFactory key used with @RegisterClass(BaseWebSearchProvider, DriverClass) to instantiate the driver at runtime, e.g. "BraveWebSearchProvider". A value with no matching registration leaves the provider unavailable and is logged at engine startup.`})
91499
+ @MaxLength(500)
91500
+ DriverClass?: string;
91501
+
91502
+ @Field({nullable: true, description: `Provider lifecycle status: Pending (configured but not yet in use), Active (participates in searches), Terminated (disabled). Only Active providers are loaded. Matches the vocabulary used by SearchProvider.`})
91503
+ @MaxLength(20)
91504
+ Status?: string;
91505
+
91506
+ @Field(() => Int, {nullable: true, description: `Failover order: LOWER values are tried FIRST. The engine serves a search from the first available provider in this order, moving on only when one fails transiently. Must be >= 0.`})
91507
+ Priority?: number;
91508
+
91509
+ @Field({nullable: true, description: `Optional FK to the Credential record holding this provider's API key. When NULL the driver falls back to its documented environment variable, so a host that has not yet migrated its secrets into the Credential store keeps working.`})
91510
+ @MaxLength(36)
91511
+ CredentialID?: string;
91512
+
91513
+ @Field({nullable: true, description: `Optional JSON blob of non-secret, driver-specific settings (endpoint overrides, tier flags, answer model). Schema is defined by each driver; invalid JSON is logged and ignored rather than disabling the provider.`})
91514
+ ProviderConfig?: string;
91515
+
91516
+ @Field(() => Int, {nullable: true, description: `Optional per-provider cap on results per request, for pay-per-query vendors. The effective cap is the smallest of the caller's request, this value, and the vendor's own hard limit. NULL means the driver's own limit applies.`})
91517
+ MaxResultsOverride?: number;
91518
+
91519
+ @Field(() => Boolean, {nullable: true, description: `Whether this vendor's terms permit storing returned results. Defaults to 0 (deny), because caching rights differ sharply between vendors and violating them is silent: some sell storage rights as a plan tier, others forbid persistent caching outright. Nothing in the engine caches today; this column exists so the first caching layer reads a per-provider gate instead of inventing one.`})
91520
+ AllowResultCaching?: boolean;
91521
+
91522
+ @Field({nullable: true, description: `UI display name shown in admin surfaces and result attribution. When NULL, falls back to the Name column.`})
91523
+ @MaxLength(200)
91524
+ DisplayName?: string;
91525
+
91526
+ @Field({nullable: true, description: `CSS icon class for UI display, e.g. "fa-brands fa-brave". Supports any CSS-based icon library. When NULL a default icon is used.`})
91527
+ @MaxLength(200)
91528
+ Icon?: string;
91529
+
91530
+ @Field({nullable: true, description: `Free-form administrator notes, e.g. contract terms, billing owner, or why this provider sits at its priority.`})
91531
+ Comments?: string;
91532
+
91533
+ @Field()
91534
+ _mj__CreatedAt: Date;
91535
+
91536
+ @Field()
91537
+ _mj__UpdatedAt: Date;
91538
+
91539
+ @Field({nullable: true})
91540
+ @MaxLength(200)
91541
+ Credential?: string;
91542
+
91543
+ @Field(() => [String], { nullable: true, description: `Field-level security: when non-null, the fields on this entity the calling user may read. Any other field arriving as null was withheld by the server rather than genuinely empty. Null for callers with no field restrictions.` })
91544
+ ReadableFields___?: string[];
91545
+
91546
+ }
91547
+
91548
+ //****************************************************************************
91549
+ // INPUT TYPE for MJ: Web Search Providers
91550
+ //****************************************************************************
91551
+ @InputType()
91552
+ export class CreateMJWebSearchProviderInput {
91553
+ @Field({ nullable: true })
91554
+ ID?: string;
91555
+
91556
+ @Field({ nullable: true })
91557
+ Name?: string;
91558
+
91559
+ @Field({ nullable: true })
91560
+ Description: string | null;
91561
+
91562
+ @Field({ nullable: true })
91563
+ DriverClass?: string;
91564
+
91565
+ @Field({ nullable: true })
91566
+ Status?: string;
91567
+
91568
+ @Field(() => Int, { nullable: true })
91569
+ Priority?: number;
91570
+
91571
+ @Field({ nullable: true })
91572
+ CredentialID: string | null;
91573
+
91574
+ @Field({ nullable: true })
91575
+ ProviderConfig: string | null;
91576
+
91577
+ @Field(() => Int, { nullable: true })
91578
+ MaxResultsOverride: number | null;
91579
+
91580
+ @Field(() => Boolean, { nullable: true })
91581
+ AllowResultCaching?: boolean;
91582
+
91583
+ @Field({ nullable: true })
91584
+ DisplayName: string | null;
91585
+
91586
+ @Field({ nullable: true })
91587
+ Icon: string | null;
91588
+
91589
+ @Field({ nullable: true })
91590
+ Comments: string | null;
91591
+
91592
+ @Field(() => RestoreContextInput, { nullable: true })
91593
+ RestoreContext___?: RestoreContextInput;
91594
+ }
91595
+
91596
+
91597
+ //****************************************************************************
91598
+ // INPUT TYPE for MJ: Web Search Providers
91599
+ //****************************************************************************
91600
+ @InputType()
91601
+ export class UpdateMJWebSearchProviderInput {
91602
+ @Field()
91603
+ ID: string;
91604
+
91605
+ @Field({ nullable: true })
91606
+ Name?: string;
91607
+
91608
+ @Field({ nullable: true })
91609
+ Description?: string | null;
91610
+
91611
+ @Field({ nullable: true })
91612
+ DriverClass?: string;
91613
+
91614
+ @Field({ nullable: true })
91615
+ Status?: string;
91616
+
91617
+ @Field(() => Int, { nullable: true })
91618
+ Priority?: number;
91619
+
91620
+ @Field({ nullable: true })
91621
+ CredentialID?: string | null;
91622
+
91623
+ @Field({ nullable: true })
91624
+ ProviderConfig?: string | null;
91625
+
91626
+ @Field(() => Int, { nullable: true })
91627
+ MaxResultsOverride?: number | null;
91628
+
91629
+ @Field(() => Boolean, { nullable: true })
91630
+ AllowResultCaching?: boolean;
91631
+
91632
+ @Field({ nullable: true })
91633
+ DisplayName?: string | null;
91634
+
91635
+ @Field({ nullable: true })
91636
+ Icon?: string | null;
91637
+
91638
+ @Field({ nullable: true })
91639
+ Comments?: string | null;
91640
+
91641
+ @Field(() => [KeyValuePairInput], { nullable: true })
91642
+ OldValues___?: KeyValuePairInput[];
91643
+
91644
+ @Field(() => RestoreContextInput, { nullable: true })
91645
+ RestoreContext___?: RestoreContextInput;
91646
+ }
91647
+
91648
+ //****************************************************************************
91649
+ // RESOLVER for MJ: Web Search Providers
91650
+ //****************************************************************************
91651
+ @ObjectType()
91652
+ export class RunMJWebSearchProviderViewResult {
91653
+ @Field(() => [MJWebSearchProvider_])
91654
+ Results: MJWebSearchProvider_[];
91655
+
91656
+ @Field(() => String, {nullable: true})
91657
+ UserViewRunID?: string;
91658
+
91659
+ @Field(() => Int, {nullable: true})
91660
+ RowCount: number;
91661
+
91662
+ @Field(() => Int, {nullable: true})
91663
+ TotalRowCount: number;
91664
+
91665
+ @Field(() => Int, {nullable: true})
91666
+ ExecutionTime: number;
91667
+
91668
+ @Field({nullable: true})
91669
+ ErrorMessage?: string;
91670
+
91671
+ @Field(() => Boolean, {nullable: false})
91672
+ Success: boolean;
91673
+ }
91674
+
91675
+ @Resolver(MJWebSearchProvider_)
91676
+ export class MJWebSearchProviderResolver extends ResolverBase {
91677
+ @Query(() => RunMJWebSearchProviderViewResult)
91678
+ async RunMJWebSearchProviderViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
91679
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
91680
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
91681
+ }
91682
+
91683
+ @Query(() => RunMJWebSearchProviderViewResult)
91684
+ async RunMJWebSearchProviderViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
91685
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
91686
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
91687
+ }
91688
+
91689
+ @Query(() => RunMJWebSearchProviderViewResult)
91690
+ async RunMJWebSearchProviderDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
91691
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
91692
+ input.EntityName = 'MJ: Web Search Providers';
91693
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
91694
+ }
91695
+ @Query(() => MJWebSearchProvider_, { nullable: true })
91696
+ async MJWebSearchProvider(@Arg('ID', () => String) ID: string, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<MJWebSearchProvider_ | null> {
91697
+ this.CheckUserReadPermissions('MJ: Web Search Providers', userPayload);
91698
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
91699
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwWebSearchProviders')} WHERE ${provider.QuoteIdentifier('ID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Web Search Providers', userPayload, EntityPermissionType.Read, 'AND');
91700
+ const rows = await provider.ExecuteSQL(sSQL, [ID], undefined, this.GetUserFromPayload(userPayload));
91701
+ const result = await this.MapFieldNamesToCodeNames('MJ: Web Search Providers', rows && rows.length > 0 ? rows[0] : null, this.GetUserFromPayload(userPayload));
91702
+ return result;
91703
+ }
91704
+
91705
+ @Mutation(() => MJWebSearchProvider_)
91706
+ async CreateMJWebSearchProvider(
91707
+ @Arg('input', () => CreateMJWebSearchProviderInput) input: CreateMJWebSearchProviderInput,
91708
+ @Ctx() { providers, userPayload }: AppContext,
91709
+ @PubSub() pubSub: PubSubEngine
91710
+ ) {
91711
+ const provider = GetReadWriteProvider(providers);
91712
+ return this.CreateRecord('MJ: Web Search Providers', input, provider, userPayload, pubSub)
91713
+ }
91714
+
91715
+ @Mutation(() => MJWebSearchProvider_)
91716
+ async UpdateMJWebSearchProvider(
91717
+ @Arg('input', () => UpdateMJWebSearchProviderInput) input: UpdateMJWebSearchProviderInput,
91718
+ @Ctx() { providers, userPayload }: AppContext,
91719
+ @PubSub() pubSub: PubSubEngine
91720
+ ) {
91721
+ const provider = GetReadWriteProvider(providers);
91722
+ return this.UpdateRecord('MJ: Web Search Providers', input, provider, userPayload, pubSub);
91723
+ }
91724
+
91725
+ @Mutation(() => MJWebSearchProvider_)
91726
+ async DeleteMJWebSearchProvider(@Arg('ID', () => String) ID: string, @Arg('options___', () => DeleteOptionsInput) options: DeleteOptionsInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
91727
+ const provider = GetReadWriteProvider(providers);
91728
+ const key = new CompositeKey([{FieldName: 'ID', Value: ID}]);
91729
+ return this.DeleteRecord('MJ: Web Search Providers', key, options, provider, userPayload, pubSub);
91730
+ }
91731
+
91732
+ }
91733
+
90806
91734
  //****************************************************************************
90807
91735
  // ENTITY CLASS for MJ: Workspace Items
90808
91736
  //****************************************************************************