@memberjunction/server 6.2.0-edge.4 → 6.2.0-edge.5
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.
- package/README.md +20 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/agentSessions/SessionJanitor.d.ts +91 -30
- package/dist/agentSessions/SessionJanitor.d.ts.map +1 -1
- package/dist/agentSessions/SessionJanitor.js +311 -81
- package/dist/agentSessions/SessionJanitor.js.map +1 -1
- package/dist/agentSessions/SessionManager.d.ts +5 -1
- package/dist/agentSessions/SessionManager.d.ts.map +1 -1
- package/dist/agentSessions/SessionManager.js +13 -1
- package/dist/agentSessions/SessionManager.js.map +1 -1
- package/dist/apiRoot.d.ts +32 -0
- package/dist/apiRoot.d.ts.map +1 -0
- package/dist/apiRoot.js +67 -0
- package/dist/apiRoot.js.map +1 -0
- package/dist/auth/AuthProviderCatalogRouter.d.ts.map +1 -1
- package/dist/auth/AuthProviderCatalogRouter.js +25 -0
- package/dist/auth/AuthProviderCatalogRouter.js.map +1 -1
- package/dist/auth/LoginScreenEngine.d.ts +22 -0
- package/dist/auth/LoginScreenEngine.d.ts.map +1 -0
- package/dist/auth/LoginScreenEngine.js +57 -0
- package/dist/auth/LoginScreenEngine.js.map +1 -0
- package/dist/auth/index.d.ts +1 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +1 -0
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/magicLink/MagicLinkRouter.d.ts.map +1 -1
- package/dist/auth/magicLink/MagicLinkRouter.js +3 -2
- package/dist/auth/magicLink/MagicLinkRouter.js.map +1 -1
- package/dist/config.d.ts +136 -22
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +43 -4
- package/dist/config.js.map +1 -1
- package/dist/coreRoutes.d.ts +29 -0
- package/dist/coreRoutes.d.ts.map +1 -0
- package/dist/coreRoutes.js +142 -0
- package/dist/coreRoutes.js.map +1 -0
- package/dist/generated/graphql-schemas/__mj.d.ts +369 -3
- package/dist/generated/graphql-schemas/__mj.d.ts.map +1 -1
- package/dist/generated/graphql-schemas/__mj.js +1750 -7
- package/dist/generated/graphql-schemas/__mj.js.map +1 -1
- package/dist/generic/CacheInvalidationResolver.d.ts +43 -8
- package/dist/generic/CacheInvalidationResolver.d.ts.map +1 -1
- package/dist/generic/CacheInvalidationResolver.js +59 -19
- package/dist/generic/CacheInvalidationResolver.js.map +1 -1
- package/dist/generic/PushStatusResolver.js +1 -1
- package/dist/generic/PushStatusResolver.js.map +1 -1
- package/dist/generic/ResolverBase.d.ts +103 -44
- package/dist/generic/ResolverBase.d.ts.map +1 -1
- package/dist/generic/ResolverBase.js +264 -305
- package/dist/generic/ResolverBase.js.map +1 -1
- package/dist/generic/RunViewResolver.d.ts.map +1 -1
- package/dist/generic/RunViewResolver.js +12 -0
- package/dist/generic/RunViewResolver.js.map +1 -1
- package/dist/globalCors.d.ts +33 -0
- package/dist/globalCors.d.ts.map +1 -0
- package/dist/globalCors.js +58 -0
- package/dist/globalCors.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +112 -160
- package/dist/index.js.map +1 -1
- package/dist/multiTenancy/index.d.ts.map +1 -1
- package/dist/multiTenancy/index.js +22 -2
- package/dist/multiTenancy/index.js.map +1 -1
- package/dist/realtimeSessions/RealtimeSessionVerificationService.d.ts.map +1 -1
- package/dist/realtimeSessions/RealtimeSessionVerificationService.js +2 -1
- package/dist/realtimeSessions/RealtimeSessionVerificationService.js.map +1 -1
- package/dist/realtimeSessions/RealtimeVerifyRouter.d.ts.map +1 -1
- package/dist/realtimeSessions/RealtimeVerifyRouter.js +2 -1
- package/dist/realtimeSessions/RealtimeVerifyRouter.js.map +1 -1
- package/dist/realtimeSessions/RecordingAssemblyScheduler.d.ts +100 -0
- package/dist/realtimeSessions/RecordingAssemblyScheduler.d.ts.map +1 -0
- package/dist/realtimeSessions/RecordingAssemblyScheduler.js +173 -0
- package/dist/realtimeSessions/RecordingAssemblyScheduler.js.map +1 -0
- package/dist/realtimeSessions/index.d.ts +2 -0
- package/dist/realtimeSessions/index.d.ts.map +1 -1
- package/dist/realtimeSessions/index.js +2 -0
- package/dist/realtimeSessions/index.js.map +1 -1
- package/dist/realtimeSessions/ownedRealtimeSession.d.ts +30 -0
- package/dist/realtimeSessions/ownedRealtimeSession.d.ts.map +1 -0
- package/dist/realtimeSessions/ownedRealtimeSession.js +47 -0
- package/dist/realtimeSessions/ownedRealtimeSession.js.map +1 -0
- package/dist/realtimeSessions/sessionAccess.d.ts +6 -0
- package/dist/realtimeSessions/sessionAccess.d.ts.map +1 -1
- package/dist/realtimeSessions/sessionAccess.js +7 -3
- package/dist/realtimeSessions/sessionAccess.js.map +1 -1
- package/dist/resolvers/ArtifactFileResolver.d.ts +5 -1
- package/dist/resolvers/ArtifactFileResolver.d.ts.map +1 -1
- package/dist/resolvers/ArtifactFileResolver.js +9 -7
- package/dist/resolvers/ArtifactFileResolver.js.map +1 -1
- package/dist/resolvers/ConversationRunEventsResolver.d.ts +8 -4
- package/dist/resolvers/ConversationRunEventsResolver.d.ts.map +1 -1
- package/dist/resolvers/ConversationRunEventsResolver.js +6 -6
- package/dist/resolvers/ConversationRunEventsResolver.js.map +1 -1
- package/dist/resolvers/DatasetResolver.d.ts +24 -3
- package/dist/resolvers/DatasetResolver.d.ts.map +1 -1
- package/dist/resolvers/DatasetResolver.js +57 -8
- package/dist/resolvers/DatasetResolver.js.map +1 -1
- package/dist/resolvers/EntityRecordNameResolver.d.ts +2 -1
- package/dist/resolvers/EntityRecordNameResolver.d.ts.map +1 -1
- package/dist/resolvers/EntityRecordNameResolver.js +3 -2
- package/dist/resolvers/EntityRecordNameResolver.js.map +1 -1
- package/dist/resolvers/FetchEntityVectorsResolver.d.ts +18 -3
- package/dist/resolvers/FetchEntityVectorsResolver.d.ts.map +1 -1
- package/dist/resolvers/FetchEntityVectorsResolver.js +100 -35
- package/dist/resolvers/FetchEntityVectorsResolver.js.map +1 -1
- package/dist/resolvers/FileResolver.d.ts +82 -11
- package/dist/resolvers/FileResolver.d.ts.map +1 -1
- package/dist/resolvers/FileResolver.js +279 -101
- package/dist/resolvers/FileResolver.js.map +1 -1
- package/dist/resolvers/GetDataContextDataResolver.d.ts +33 -7
- package/dist/resolvers/GetDataContextDataResolver.d.ts.map +1 -1
- package/dist/resolvers/GetDataContextDataResolver.js +117 -38
- package/dist/resolvers/GetDataContextDataResolver.js.map +1 -1
- package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
- package/dist/resolvers/GetDataResolver.js +6 -3
- package/dist/resolvers/GetDataResolver.js.map +1 -1
- package/dist/resolvers/IntegrationDiscoveryResolver.d.ts.map +1 -1
- package/dist/resolvers/IntegrationDiscoveryResolver.js +4 -2
- package/dist/resolvers/IntegrationDiscoveryResolver.js.map +1 -1
- package/dist/resolvers/QueryResolver.d.ts +2 -0
- package/dist/resolvers/QueryResolver.d.ts.map +1 -1
- package/dist/resolvers/QueryResolver.js +13 -0
- package/dist/resolvers/QueryResolver.js.map +1 -1
- package/dist/resolvers/RealtimeClientSessionResolver.d.ts +2 -8
- package/dist/resolvers/RealtimeClientSessionResolver.d.ts.map +1 -1
- package/dist/resolvers/RealtimeClientSessionResolver.js +10 -26
- package/dist/resolvers/RealtimeClientSessionResolver.js.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.js +35 -6
- package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
- package/dist/resolvers/SearchKnowledgeStreamResolver.d.ts +12 -1
- package/dist/resolvers/SearchKnowledgeStreamResolver.d.ts.map +1 -1
- package/dist/resolvers/SearchKnowledgeStreamResolver.js +15 -2
- package/dist/resolvers/SearchKnowledgeStreamResolver.js.map +1 -1
- package/dist/resolvers/SqlLoggingConfigResolver.d.ts.map +1 -1
- package/dist/resolvers/SqlLoggingConfigResolver.js +2 -3
- package/dist/resolvers/SqlLoggingConfigResolver.js.map +1 -1
- package/dist/resolvers/TaskGraphFrameResolver.d.ts +2 -1
- package/dist/resolvers/TaskGraphFrameResolver.d.ts.map +1 -1
- package/dist/resolvers/TaskGraphFrameResolver.js +28 -1
- package/dist/resolvers/TaskGraphFrameResolver.js.map +1 -1
- package/dist/resolvers/TestQuerySQLResolver.d.ts +24 -0
- package/dist/resolvers/TestQuerySQLResolver.d.ts.map +1 -1
- package/dist/resolvers/TestQuerySQLResolver.js +65 -13
- package/dist/resolvers/TestQuerySQLResolver.js.map +1 -1
- package/dist/resolvers/TransactionGroupResolver.d.ts +19 -2
- package/dist/resolvers/TransactionGroupResolver.d.ts.map +1 -1
- package/dist/resolvers/TransactionGroupResolver.js +102 -24
- package/dist/resolvers/TransactionGroupResolver.js.map +1 -1
- package/dist/resolvers/agent-run-data-guard.d.ts +31 -0
- package/dist/resolvers/agent-run-data-guard.d.ts.map +1 -0
- package/dist/resolvers/agent-run-data-guard.js +72 -0
- package/dist/resolvers/agent-run-data-guard.js.map +1 -0
- package/dist/rest/RealtimeRecordingHandler.d.ts +49 -0
- package/dist/rest/RealtimeRecordingHandler.d.ts.map +1 -0
- package/dist/rest/RealtimeRecordingHandler.js +383 -0
- package/dist/rest/RealtimeRecordingHandler.js.map +1 -0
- package/dist/rest/ViewOperationsHandler.d.ts +3 -1
- package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
- package/dist/rest/ViewOperationsHandler.js +21 -12
- package/dist/rest/ViewOperationsHandler.js.map +1 -1
- package/dist/rest/setupRESTEndpoints.d.ts +6 -0
- package/dist/rest/setupRESTEndpoints.d.ts.map +1 -1
- package/dist/rest/setupRESTEndpoints.js +6 -0
- package/dist/rest/setupRESTEndpoints.js.map +1 -1
- package/dist/serverExtensionReservedRoots.d.ts +12 -10
- package/dist/serverExtensionReservedRoots.d.ts.map +1 -1
- package/dist/serverExtensionReservedRoots.js +14 -17
- package/dist/serverExtensionReservedRoots.js.map +1 -1
- package/dist/services/MJStorageBlobStore.d.ts +8 -1
- package/dist/services/MJStorageBlobStore.d.ts.map +1 -1
- package/dist/services/MJStorageBlobStore.js +25 -19
- package/dist/services/MJStorageBlobStore.js.map +1 -1
- package/dist/services/StartTaskGraphDispatcher.js +2 -2
- package/dist/services/StartTaskGraphDispatcher.js.map +1 -1
- package/dist/services/TaskGraphActionRunner.d.ts +5 -3
- package/dist/services/TaskGraphActionRunner.d.ts.map +1 -1
- package/dist/services/TaskGraphActionRunner.js +27 -5
- package/dist/services/TaskGraphActionRunner.js.map +1 -1
- package/dist/services/TaskGraphAgentRunner.d.ts +14 -2
- package/dist/services/TaskGraphAgentRunner.d.ts.map +1 -1
- package/dist/services/TaskGraphAgentRunner.js +157 -9
- package/dist/services/TaskGraphAgentRunner.js.map +1 -1
- package/dist/services/TaskGraphContinuationDeliverer.d.ts +54 -2
- package/dist/services/TaskGraphContinuationDeliverer.d.ts.map +1 -1
- package/dist/services/TaskGraphContinuationDeliverer.js +598 -15
- package/dist/services/TaskGraphContinuationDeliverer.js.map +1 -1
- package/dist/sharedCache.d.ts.map +1 -1
- package/dist/sharedCache.js +3 -0
- package/dist/sharedCache.js.map +1 -1
- package/package.json +99 -98
- package/src/__tests__/DatasetResolver.itemFilters.test.ts +201 -0
- package/src/__tests__/EntityRecordNameResolver.rowSecurity.test.ts +152 -0
- package/src/__tests__/FetchEntityVectorsResolver.test.ts +163 -15
- package/src/__tests__/FileResolver.storageAccess.test.ts +562 -0
- package/src/__tests__/GetDataContextDataResolver.sqlItems.test.ts +416 -0
- package/src/__tests__/ListOperationsResolver.adhocScreen.test.ts +137 -0
- package/src/__tests__/LoginScreenEngine.test.ts +86 -0
- package/src/__tests__/MJStorageBlobStore.storageGate.test.ts +63 -0
- package/src/__tests__/RecordingAssemblyScheduler.test.ts +178 -0
- package/src/__tests__/ResolverBase.adhocReadScope.test.ts +133 -2
- package/src/__tests__/ResolverBase.balancedClause.test.ts +155 -0
- package/src/__tests__/ResolverBase.clauseUnscopedRead.test.ts +127 -0
- package/src/__tests__/ResolverBase.clientOldValues.test.ts +209 -6
- package/src/__tests__/ResolverBase.filterEscaping.test.ts +5 -2
- package/src/__tests__/RunAIAgentResolver.branch.test.ts +1 -0
- package/src/__tests__/RunAIAgentResolver.historyFrom.test.ts +5 -3
- package/src/__tests__/RunAIAgentResolver.runDataGuard.test.ts +258 -0
- package/src/__tests__/RunViewResolver.cacheCheckScreen.test.ts +165 -0
- package/src/__tests__/SearchKnowledgeStreamResolver.test.ts +161 -0
- package/src/__tests__/SessionJanitor.test.ts +365 -10
- package/src/__tests__/SessionManager.test.ts +27 -0
- package/src/__tests__/TaskGraphActionRunner.durablePayload.test.ts +25 -0
- package/src/__tests__/TaskGraphAgentRunner.test.ts +266 -0
- package/src/__tests__/TaskGraphContinuationDeliverer.test.ts +356 -22
- package/src/__tests__/TaskGraphFrameResolver.test.ts +22 -0
- package/src/__tests__/TestQuerySQLResolver.test.ts +274 -0
- package/src/__tests__/TransactionGroupResolver.refusals.test.ts +98 -1
- package/src/__tests__/UpdateMJDataContextItem.oldValues.test.ts +220 -0
- package/src/__tests__/ViewOperationsHandler.clauseScreen.test.ts +157 -0
- package/src/__tests__/agent-run-data-guard.test.ts +130 -0
- package/src/__tests__/apiRootBoot.test.ts +202 -0
- package/src/__tests__/cacheInvalidationRecordData.test.ts +64 -0
- package/src/__tests__/conversationRunEvents.test.ts +56 -14
- package/src/__tests__/globalCors.test.ts +217 -0
- package/src/__tests__/multiTenancy.postgresRewrite.test.ts +181 -0
- package/src/__tests__/multiTenancy.security.test.ts +51 -0
- package/src/__tests__/multiTenancy.test.ts +1 -1
- package/src/__tests__/ownedRealtimeSession.test.ts +39 -0
- package/src/__tests__/pushStatusResolver.filter.test.ts +7 -0
- package/src/__tests__/realtimeRecordingHandler.test.ts +652 -0
- package/src/__tests__/serverExtensionHostOverlay.test.ts +66 -0
- package/src/__tests__/serverExtensionReservedRoots.test.ts +11 -98
- package/src/__tests__/sharedCache.test.ts +5 -3
- package/src/agentSessions/SessionJanitor.ts +369 -93
- package/src/agentSessions/SessionManager.ts +13 -1
- package/src/apiRoot.ts +78 -0
- package/src/auth/AuthProviderCatalogRouter.ts +26 -0
- package/src/auth/LoginScreenEngine.ts +50 -0
- package/src/auth/index.ts +1 -0
- package/src/auth/magicLink/MagicLinkRouter.ts +3 -2
- package/src/config.ts +46 -5
- package/src/coreRoutes.ts +166 -0
- package/src/generated/graphql-schemas/__mj.ts +1273 -10
- package/src/generic/CacheInvalidationResolver.ts +73 -18
- package/src/generic/PushStatusResolver.ts +1 -1
- package/src/generic/ResolverBase.ts +304 -325
- package/src/generic/RunViewResolver.ts +17 -0
- package/src/globalCors.ts +71 -0
- package/src/index.ts +116 -174
- package/src/multiTenancy/index.ts +24 -2
- package/src/realtimeSessions/RealtimeSessionVerificationService.ts +2 -1
- package/src/realtimeSessions/RealtimeVerifyRouter.ts +2 -1
- package/src/realtimeSessions/RecordingAssemblyScheduler.ts +234 -0
- package/src/realtimeSessions/index.ts +2 -0
- package/src/realtimeSessions/ownedRealtimeSession.ts +55 -0
- package/src/realtimeSessions/sessionAccess.ts +7 -3
- package/src/resolvers/ArtifactFileResolver.ts +9 -8
- package/src/resolvers/ConversationRunEventsResolver.ts +15 -11
- package/src/resolvers/DatasetResolver.ts +70 -10
- package/src/resolvers/EntityRecordNameResolver.ts +3 -2
- package/src/resolvers/FetchEntityVectorsResolver.ts +121 -39
- package/src/resolvers/FileResolver.ts +321 -106
- package/src/resolvers/GetDataContextDataResolver.ts +139 -41
- package/src/resolvers/GetDataResolver.ts +6 -3
- package/src/resolvers/IntegrationDiscoveryResolver.ts +4 -2
- package/src/resolvers/QueryResolver.ts +11 -0
- package/src/resolvers/RealtimeClientSessionResolver.ts +10 -33
- package/src/resolvers/RunAIAgentResolver.ts +39 -4
- package/src/resolvers/SearchKnowledgeStreamResolver.ts +19 -3
- package/src/resolvers/SqlLoggingConfigResolver.ts +2 -4
- package/src/resolvers/TaskGraphFrameResolver.ts +33 -1
- package/src/resolvers/TestQuerySQLResolver.ts +68 -13
- package/src/resolvers/TransactionGroupResolver.ts +131 -27
- package/src/resolvers/__tests__/GetDataResolver.validation.test.ts +95 -0
- package/src/resolvers/agent-run-data-guard.ts +89 -0
- package/src/rest/RealtimeRecordingHandler.ts +464 -0
- package/src/rest/ViewOperationsHandler.ts +29 -13
- package/src/rest/setupRESTEndpoints.ts +6 -0
- package/src/serverExtensionReservedRoots.ts +14 -17
- package/src/services/MJStorageBlobStore.ts +31 -30
- package/src/services/StartTaskGraphDispatcher.ts +2 -2
- package/src/services/TaskGraphActionRunner.ts +25 -5
- package/src/services/TaskGraphAgentRunner.ts +188 -11
- package/src/services/TaskGraphContinuationDeliverer.ts +704 -14
- package/src/sharedCache.ts +3 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { AppContext } from '../types.js';
|
|
1
|
+
import { AppContext, UserPayload } from '../types.js';
|
|
2
|
+
import { DatabaseProviderBase, DatasetItemFilterType, DatasetItemResultType, UserInfo } from '@memberjunction/core';
|
|
2
3
|
import { ResolverBase } from '../generic/ResolverBase.js';
|
|
3
4
|
export declare class DatasetResultType {
|
|
4
5
|
DatasetID: string;
|
|
@@ -12,7 +13,27 @@ export declare class DatasetItemFilterTypeGQL {
|
|
|
12
13
|
ItemCode: string;
|
|
13
14
|
Filter: string;
|
|
14
15
|
}
|
|
15
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Request handling shared by the dataset queries. Every read runs as the session's user, so the
|
|
18
|
+
* provider applies that user's entity read permission and row-level security per item, and every
|
|
19
|
+
* client ItemFilter passes the same AST screen as a RunView ExtraFilter before a provider sees it.
|
|
20
|
+
*/
|
|
21
|
+
export declare abstract class DatasetResolverBase extends ResolverBase {
|
|
22
|
+
/** The session's user. A dataset read never runs without one: the provider applies no read checks then. */
|
|
23
|
+
protected RequireDatasetUser(userPayload: UserPayload): UserInfo;
|
|
24
|
+
/**
|
|
25
|
+
* Screens every client ItemFilter: one statement, read-only, and subqueries only over entity base
|
|
26
|
+
* views the user can read. Throws on the first refusal. Returns the filters without null entries.
|
|
27
|
+
*/
|
|
28
|
+
protected ScreenItemFilters(itemFilters: DatasetItemFilterTypeGQL[] | undefined, provider: DatabaseProviderBase, user: UserInfo): DatasetItemFilterType[] | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Applies the API encryption policy to each item's rows, as every other GraphQL read path does:
|
|
31
|
+
* an encrypted field the entity does not allow decrypted over the API leaves as ciphertext or the
|
|
32
|
+
* sentinel. Works on copies, because the rows can be the server cache's own frozen objects.
|
|
33
|
+
*/
|
|
34
|
+
protected ProtectEncryptedFields(items: DatasetItemResultType[], provider: DatabaseProviderBase, user: UserInfo): Promise<DatasetItemResultType[]>;
|
|
35
|
+
}
|
|
36
|
+
export declare class DatasetResolverExtended extends DatasetResolverBase {
|
|
16
37
|
GetDatasetByName(DatasetName: string, { providers, userPayload }: AppContext, ItemFilters?: DatasetItemFilterTypeGQL[]): Promise<{
|
|
17
38
|
DatasetID: string;
|
|
18
39
|
DatasetName: string;
|
|
@@ -30,7 +51,7 @@ export declare class DatasetStatusResultType {
|
|
|
30
51
|
LatestUpdateDate: Date;
|
|
31
52
|
EntityUpdateDates: string;
|
|
32
53
|
}
|
|
33
|
-
export declare class DatasetStatusResolver extends
|
|
54
|
+
export declare class DatasetStatusResolver extends DatasetResolverBase {
|
|
34
55
|
GetDatasetStatusByName(DatasetName: string, { providers, userPayload }: AppContext, ItemFilters?: DatasetItemFilterTypeGQL[]): Promise<{
|
|
35
56
|
DatasetID: string;
|
|
36
57
|
DatasetName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/DatasetResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"DatasetResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/DatasetResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB,EAAsB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAExI,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,qBACa,iBAAiB;IAE5B,SAAS,EAAE,MAAM,CAAC;IAGlB,WAAW,EAAE,MAAM,CAAC;IAGpB,OAAO,EAAE,OAAO,CAAC;IAGjB,MAAM,EAAE,MAAM,CAAC;IAGf,gBAAgB,EAAE,IAAI,CAAC;IAGvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBACa,wBAAwB;IAEnC,QAAQ,EAAE,MAAM,CAAC;IAGjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,8BAAsB,mBAAoB,SAAQ,YAAY;IAC5D,2GAA2G;IAC3G,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,QAAQ;IAQhE;;;OAGG;IACH,SAAS,CAAC,iBAAiB,CACzB,WAAW,EAAE,wBAAwB,EAAE,GAAG,SAAS,EACnD,QAAQ,EAAE,oBAAoB,EAC9B,IAAI,EAAE,QAAQ,GACb,qBAAqB,EAAE,GAAG,SAAS;IAUtC;;;;OAIG;cACa,sBAAsB,CACpC,KAAK,EAAE,qBAAqB,EAAE,EAC9B,QAAQ,EAAE,oBAAoB,EAC9B,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAYpC;AAED,qBACa,uBAAwB,SAAQ,mBAAmB;IAExD,gBAAgB,CACc,WAAW,EAAE,MAAM,EAC9C,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,UAAU,EACuC,WAAW,CAAC,EAAE,wBAAwB,EAAE;;;;;;;;CA2B/H;AAED,qBACa,uBAAuB;IAElC,SAAS,EAAE,MAAM,CAAC;IAGlB,WAAW,EAAE,MAAM,CAAC;IAGpB,OAAO,EAAE,OAAO,CAAC;IAGjB,MAAM,EAAE,MAAM,CAAC;IAGf,gBAAgB,EAAE,IAAI,CAAC;IAGvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,qBACa,qBAAsB,SAAQ,mBAAmB;IAEtD,sBAAsB,CACQ,WAAW,EAAE,MAAM,EAC9C,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,UAAU,EACuC,WAAW,CAAC,EAAE,wBAAwB,EAAE;;;;;;;;IA4B9H;;;OAGG;IAEG,8BAA8B,CACG,YAAY,EAAE,MAAM,EAAE,EACpD,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,UAAU,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC;CA4BtC"}
|
|
@@ -58,13 +58,59 @@ DatasetItemFilterTypeGQL = __decorate([
|
|
|
58
58
|
InputType()
|
|
59
59
|
], DatasetItemFilterTypeGQL);
|
|
60
60
|
export { DatasetItemFilterTypeGQL };
|
|
61
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Request handling shared by the dataset queries. Every read runs as the session's user, so the
|
|
63
|
+
* provider applies that user's entity read permission and row-level security per item, and every
|
|
64
|
+
* client ItemFilter passes the same AST screen as a RunView ExtraFilter before a provider sees it.
|
|
65
|
+
*/
|
|
66
|
+
export class DatasetResolverBase extends ResolverBase {
|
|
67
|
+
/** The session's user. A dataset read never runs without one: the provider applies no read checks then. */
|
|
68
|
+
RequireDatasetUser(userPayload) {
|
|
69
|
+
const user = this.GetUserFromPayload(userPayload);
|
|
70
|
+
if (!user) {
|
|
71
|
+
throw new Error('Dataset request refused: the session resolves to no user');
|
|
72
|
+
}
|
|
73
|
+
return user;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Screens every client ItemFilter: one statement, read-only, and subqueries only over entity base
|
|
77
|
+
* views the user can read. Throws on the first refusal. Returns the filters without null entries.
|
|
78
|
+
*/
|
|
79
|
+
ScreenItemFilters(itemFilters, provider, user) {
|
|
80
|
+
if (!itemFilters)
|
|
81
|
+
return undefined;
|
|
82
|
+
itemFilters.forEach((itemFilter, index) => {
|
|
83
|
+
if (itemFilter) {
|
|
84
|
+
this.assertClientClauseUsesEntityBaseViews(itemFilter.Filter, `ItemFilters[${index}].Filter`, provider, user);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
return itemFilters.filter((itemFilter) => itemFilter != null);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Applies the API encryption policy to each item's rows, as every other GraphQL read path does:
|
|
91
|
+
* an encrypted field the entity does not allow decrypted over the API leaves as ciphertext or the
|
|
92
|
+
* sentinel. Works on copies, because the rows can be the server cache's own frozen objects.
|
|
93
|
+
*/
|
|
94
|
+
async ProtectEncryptedFields(items, provider, user) {
|
|
95
|
+
return Promise.all(items.map(async (item) => {
|
|
96
|
+
const entity = provider.EntityByName(item.EntityName);
|
|
97
|
+
if (!item.Results?.length || !entity?.EncryptedFields.some((field) => !field.AllowDecryptInAPI)) {
|
|
98
|
+
return item;
|
|
99
|
+
}
|
|
100
|
+
const rows = item.Results.map((row) => ({ ...row }));
|
|
101
|
+
return { ...item, Results: await this.ArrayFilterEncryptedFieldsForAPI(item.EntityName, rows, user, provider, 'Name') };
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
let DatasetResolverExtended = class DatasetResolverExtended extends DatasetResolverBase {
|
|
62
106
|
async GetDatasetByName(DatasetName, { providers, userPayload }, ItemFilters) {
|
|
63
107
|
// Check API key scope authorization for dataset read
|
|
64
108
|
await this.CheckAPIKeyScopeAuthorization('dataset:read', DatasetName, userPayload);
|
|
109
|
+
const md = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
|
|
110
|
+
const user = this.RequireDatasetUser(userPayload);
|
|
111
|
+
const itemFilters = this.ScreenItemFilters(ItemFilters, md, user);
|
|
65
112
|
try {
|
|
66
|
-
const
|
|
67
|
-
const result = await md.GetDatasetByName(DatasetName, ItemFilters);
|
|
113
|
+
const result = await md.GetDatasetByName(DatasetName, itemFilters, user);
|
|
68
114
|
if (result) {
|
|
69
115
|
return {
|
|
70
116
|
DatasetID: result.DatasetID,
|
|
@@ -72,7 +118,7 @@ let DatasetResolverExtended = class DatasetResolverExtended extends ResolverBase
|
|
|
72
118
|
Success: result.Success,
|
|
73
119
|
Status: result.Status,
|
|
74
120
|
LatestUpdateDate: result.LatestUpdateDate,
|
|
75
|
-
Results: JSON.stringify(result.Results),
|
|
121
|
+
Results: JSON.stringify(await this.ProtectEncryptedFields(result.Results, md, user)),
|
|
76
122
|
};
|
|
77
123
|
}
|
|
78
124
|
else {
|
|
@@ -128,13 +174,15 @@ DatasetStatusResultType = __decorate([
|
|
|
128
174
|
ObjectType()
|
|
129
175
|
], DatasetStatusResultType);
|
|
130
176
|
export { DatasetStatusResultType };
|
|
131
|
-
let DatasetStatusResolver = class DatasetStatusResolver extends
|
|
177
|
+
let DatasetStatusResolver = class DatasetStatusResolver extends DatasetResolverBase {
|
|
132
178
|
async GetDatasetStatusByName(DatasetName, { providers, userPayload }, ItemFilters) {
|
|
133
179
|
// Check API key scope authorization for dataset read
|
|
134
180
|
await this.CheckAPIKeyScopeAuthorization('dataset:read', DatasetName, userPayload);
|
|
181
|
+
const md = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
|
|
182
|
+
const user = this.RequireDatasetUser(userPayload);
|
|
183
|
+
const itemFilters = this.ScreenItemFilters(ItemFilters, md, user);
|
|
135
184
|
try {
|
|
136
|
-
const
|
|
137
|
-
const result = await md.GetDatasetStatusByName(DatasetName, ItemFilters);
|
|
185
|
+
const result = await md.GetDatasetStatusByName(DatasetName, itemFilters, user);
|
|
138
186
|
if (result) {
|
|
139
187
|
return {
|
|
140
188
|
DatasetID: result.DatasetID,
|
|
@@ -160,11 +208,12 @@ let DatasetStatusResolver = class DatasetStatusResolver extends ResolverBase {
|
|
|
160
208
|
*/
|
|
161
209
|
async GetMultipleDatasetStatusByName(DatasetNames, { providers, userPayload }) {
|
|
162
210
|
const md = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
|
|
211
|
+
const user = this.RequireDatasetUser(userPayload);
|
|
163
212
|
const results = [];
|
|
164
213
|
// Execute all status checks in parallel
|
|
165
214
|
const statusPromises = DatasetNames.map(async (name) => {
|
|
166
215
|
await this.CheckAPIKeyScopeAuthorization('dataset:read', name, userPayload);
|
|
167
|
-
return md.GetDatasetStatusByName(name);
|
|
216
|
+
return md.GetDatasetStatusByName(name, undefined, user);
|
|
168
217
|
});
|
|
169
218
|
const statuses = await Promise.all(statusPromises);
|
|
170
219
|
for (const result of statuses) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetResolver.js","sourceRoot":"","sources":["../../src/resolvers/DatasetResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAO,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE5F,OAAO,
|
|
1
|
+
{"version":3,"file":"DatasetResolver.js","sourceRoot":"","sources":["../../src/resolvers/DatasetResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,8 @@ export declare class EntityRecordNameResult {
|
|
|
19
19
|
*
|
|
20
20
|
* Entity-level read permission is checked here ({@link ResolverBase.CheckUserReadPermissions}).
|
|
21
21
|
* Field- and row-level security are applied by the provider's lookup, for the acting user passed
|
|
22
|
-
* to it: when any field the name is built from is withheld, it answers with no name
|
|
22
|
+
* to it: when any field the name is built from is withheld, it answers with no name, and it reads
|
|
23
|
+
* only rows the user's read row filter allows. Without an acting user there is no lookup.
|
|
23
24
|
*
|
|
24
25
|
* A withheld name answers `Success: false` with the same status as a record that does not exist.
|
|
25
26
|
* Callers already treat "no name" as "show the primary key", and the identical answer keeps this
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityRecordNameResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/EntityRecordNameResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAA0B,MAAM,mCAAmC,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,qBACa,qBAAqB;IAEhC,UAAU,EAAE,MAAM,CAAC;IAGnB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,qBACa,sBAAsB;IAEjC,OAAO,EAAE,OAAO,CAAC;IAGjB,MAAM,EAAE,MAAM,CAAC;IAGf,YAAY,EAAE,YAAY,CAAC;IAG3B,UAAU,EAAE,MAAM,CAAC;IAGnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED
|
|
1
|
+
{"version":3,"file":"EntityRecordNameResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/EntityRecordNameResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAA0B,MAAM,mCAAmC,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,qBACa,qBAAqB;IAEhC,UAAU,EAAE,MAAM,CAAC;IAGnB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,qBACa,sBAAsB;IAEjC,OAAO,EAAE,OAAO,CAAC;IAGjB,MAAM,EAAE,MAAM,CAAC;IAGf,YAAY,EAAE,YAAY,CAAC;IAG3B,UAAU,EAAE,MAAM,CAAC;IAGnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,qBACa,wBAAyB,SAAQ,YAAY;IAElD,mBAAmB,CACU,UAAU,EAAE,MAAM,EACD,UAAU,EAAE,YAAY,EACnE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,UAAU,GAC5C,OAAO,CAAC,sBAAsB,CAAC;IAQ5B,oBAAoB,CACoB,IAAI,EAAE,qBAAqB,EAAE,EAClE,EAAC,SAAS,EAAE,WAAW,EAAC,EAAE,UAAU,GAC1C,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAY9B,wBAAwB,CAC5B,EAAE,EAAE,oBAAoB,EACxB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,qBAAqB,EACjC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,sBAAsB,CAAC;CAiBnC;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -61,7 +61,8 @@ export { EntityRecordNameResult };
|
|
|
61
61
|
*
|
|
62
62
|
* Entity-level read permission is checked here ({@link ResolverBase.CheckUserReadPermissions}).
|
|
63
63
|
* Field- and row-level security are applied by the provider's lookup, for the acting user passed
|
|
64
|
-
* to it: when any field the name is built from is withheld, it answers with no name
|
|
64
|
+
* to it: when any field the name is built from is withheld, it answers with no name, and it reads
|
|
65
|
+
* only rows the user's read row filter allows. Without an acting user there is no lookup.
|
|
65
66
|
*
|
|
66
67
|
* A withheld name answers `Success: false` with the same status as a record that does not exist.
|
|
67
68
|
* Callers already treat "no name" as "show the primary key", and the identical answer keeps this
|
|
@@ -90,7 +91,7 @@ let EntityRecordNameResolver = class EntityRecordNameResolver extends ResolverBa
|
|
|
90
91
|
if (e) {
|
|
91
92
|
const contextUser = userPayload ? this.GetUserFromPayload(userPayload) : undefined;
|
|
92
93
|
// The acting user is what field- and row-level security are applied for.
|
|
93
|
-
const recordName = await md.GetEntityRecordName(e.Name, pk, contextUser);
|
|
94
|
+
const recordName = contextUser ? await md.GetEntityRecordName(e.Name, pk, contextUser) : '';
|
|
94
95
|
if (recordName)
|
|
95
96
|
return { Success: true, Status: 'OK', CompositeKey: pk, RecordName: recordName, EntityName };
|
|
96
97
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityRecordNameResolver.js","sourceRoot":"","sources":["../../src/resolvers/EntityRecordNameResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAwB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEvF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAG1C,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CAMjC,CAAA;AAJC;IADC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;;yDACD;AAGnB;IADC,KAAK,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC;8BACrB,YAAY;2DAAC;AALhB,qBAAqB;IADjC,SAAS,EAAE;GACC,qBAAqB,CAMjC;;AAGM,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAelC,CAAA;AAbC;IADC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;;uDACJ;AAGjB;IADC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;;sDACL;AAGf;IADC,KAAK,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC;8BACtB,YAAY;4DAAC;AAG3B;IADC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;;0DACD;AAGnB;IADC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACpB;AAdT,sBAAsB;IADlC,UAAU,EAAE;GACA,sBAAsB,CAelC;;AAED
|
|
1
|
+
{"version":3,"file":"EntityRecordNameResolver.js","sourceRoot":"","sources":["../../src/resolvers/EntityRecordNameResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,11 +30,26 @@ export declare class FetchEntityVectorsResolver extends ResolverBase {
|
|
|
30
30
|
* name, the record ID and the record's name fields, which is what the cluster view labels from.
|
|
31
31
|
*/
|
|
32
32
|
private fetchStoredVectors;
|
|
33
|
+
/** The first `limit` stored vectors whose record was loaded, in listing order. */
|
|
34
|
+
private selectLabelledVectors;
|
|
33
35
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
+
* Fetch `VectorJSON` for the given Entity Record Document IDs, keyed by ID. The ID lists are
|
|
37
|
+
* capped at {@link VECTOR_FETCH_CHUNK_SIZE} per view and all sent in one `RunViews` batch.
|
|
36
38
|
*/
|
|
37
|
-
private
|
|
39
|
+
private loadVectorValues;
|
|
40
|
+
/** The fields a stored vector is labelled with: the entity's name fields, else its NameField. */
|
|
41
|
+
private labelFieldNames;
|
|
42
|
+
/**
|
|
43
|
+
* Load the records that pass `filter` (key and name fields only) and the list of the document's
|
|
44
|
+
* stored vectors (ID and RecordID, no VectorJSON). The two views don't depend on each other, so
|
|
45
|
+
* they go in one `RunViews` round trip.
|
|
46
|
+
*/
|
|
47
|
+
private loadRecordsAndStoredVectors;
|
|
48
|
+
/**
|
|
49
|
+
* Map each loaded record to its name-field values, keyed by the same compact record-ID form
|
|
50
|
+
* the vector sync writes to `MJ: Entity Record Documents.RecordID` (lower-cased).
|
|
51
|
+
*/
|
|
52
|
+
private mapRecordLabels;
|
|
38
53
|
private errorResult;
|
|
39
54
|
}
|
|
40
55
|
//# sourceMappingURL=FetchEntityVectorsResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FetchEntityVectorsResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/FetchEntityVectorsResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAS1D,qBACa,gBAAgB;IAEzB,EAAE,EAAE,MAAM,CAAC;IAGX,MAAM,EAAE,MAAM,EAAE,CAAC;IAGjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,wBAAwB;IAEjC,OAAO,EAAE,OAAO,CAAC;IAGjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAG5B,UAAU,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAE,MAAM,CAAC;IAGlB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"FetchEntityVectorsResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/FetchEntityVectorsResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAS1D,qBACa,gBAAgB;IAEzB,EAAE,EAAE,MAAM,CAAC;IAGX,MAAM,EAAE,MAAM,EAAE,CAAC;IAGjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,wBAAwB;IAEjC,OAAO,EAAE,OAAO,CAAC;IAGjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAG5B,UAAU,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAE,MAAM,CAAC;IAGlB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAaD,qBACa,0BAA2B,SAAQ,YAAY;IAGlD,kBAAkB,CACK,gBAAgB,EAAE,MAAM,EACC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC7C,MAAM,EAAE,MAAM,GAAG,SAAS,EACtD,EAAE,WAAW,EAAE,SAAS,EAAE,GAAE,UAA6B,GACjE,OAAO,CAAC,wBAAwB,CAAC;IAiGpC,gCAAgC;YAClB,kBAAkB;IAiBhC;;;;OAIG;YACW,kBAAkB;IAsChC,sEAAsE;YACxD,sBAAsB;IA4BpC;;;;OAIG;YACW,kBAAkB;IAgChC,kFAAkF;IAClF,OAAO,CAAC,qBAAqB;IAe7B;;;OAGG;YACW,gBAAgB;IA4B9B,iGAAiG;IACjG,OAAO,CAAC,eAAe;IAQvB;;;;OAIG;YACW,2BAA2B;IAoCzC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,WAAW;CAStB"}
|
|
@@ -63,6 +63,8 @@ FetchEntityVectorsResult = __decorate([
|
|
|
63
63
|
ObjectType()
|
|
64
64
|
], FetchEntityVectorsResult);
|
|
65
65
|
export { FetchEntityVectorsResult };
|
|
66
|
+
/** Most Entity Record Document IDs named in one `ID IN (...)` filter when fetching VectorJSON. */
|
|
67
|
+
const VECTOR_FETCH_CHUNK_SIZE = 1000;
|
|
66
68
|
/* ───── Resolver ───── */
|
|
67
69
|
let FetchEntityVectorsResolver = class FetchEntityVectorsResolver extends ResolverBase {
|
|
68
70
|
async FetchEntityVectors(entityDocumentID, maxRecords, filter, { userPayload, providers } = {}) {
|
|
@@ -90,8 +92,8 @@ let FetchEntityVectorsResolver = class FetchEntityVectorsResolver extends Resolv
|
|
|
90
92
|
}
|
|
91
93
|
// Providers that keep their vectors in MJ, keyed by EntityDocumentID (the in-process
|
|
92
94
|
// SimpleVectorServiceProvider), can't be listed through QueryIndex: they key by the
|
|
93
|
-
// document ID rather than the index name,
|
|
94
|
-
//
|
|
95
|
+
// document ID rather than the index name, and return matches without vector values.
|
|
96
|
+
// Read the stored Entity Record Document rows instead.
|
|
95
97
|
if (vectorDBInstance.QueryKeyIsEntityDocumentID) {
|
|
96
98
|
const md = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true }) ?? Metadata.Provider;
|
|
97
99
|
const results = await this.fetchStoredVectors(entityDoc, limit, filter, currentUser, md);
|
|
@@ -217,56 +219,119 @@ let FetchEntityVectorsResolver = class FetchEntityVectorsResolver extends Resolv
|
|
|
217
219
|
if (!entityInfo) {
|
|
218
220
|
throw new Error(`Entity "${entityDoc.Entity}" not found in metadata`);
|
|
219
221
|
}
|
|
220
|
-
const
|
|
221
|
-
const
|
|
222
|
-
const
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
IgnoreMaxRows: true,
|
|
227
|
-
ResultType: 'simple',
|
|
228
|
-
}, contextUser);
|
|
229
|
-
if (!docResult.Success) {
|
|
230
|
-
throw new Error(`Failed to load stored vectors: ${docResult.ErrorMessage}`);
|
|
231
|
-
}
|
|
222
|
+
const nameFields = this.labelFieldNames(entityInfo);
|
|
223
|
+
const { records, vectors } = await this.loadRecordsAndStoredVectors(entityInfo, entityDoc, nameFields, filter, contextUser);
|
|
224
|
+
const labelsByRecordID = this.mapRecordLabels(entityInfo, nameFields, records);
|
|
225
|
+
// VectorJSON is the heavy column: list without it, then fetch it only for the items returned.
|
|
226
|
+
const chosen = this.selectLabelledVectors(vectors, labelsByRecordID, limit);
|
|
227
|
+
const valuesByID = await this.loadVectorValues(chosen.map(c => c.row.ID), contextUser);
|
|
232
228
|
const results = [];
|
|
233
|
-
for (const row of
|
|
234
|
-
const
|
|
235
|
-
if (!
|
|
236
|
-
continue; //
|
|
229
|
+
for (const { row, labels } of chosen) {
|
|
230
|
+
const vectorJSON = valuesByID.get(row.ID);
|
|
231
|
+
if (!vectorJSON)
|
|
232
|
+
continue; // removed or cleared since the listing
|
|
237
233
|
results.push({
|
|
238
234
|
ID: row.ID,
|
|
239
|
-
Values: JSON.parse(
|
|
235
|
+
Values: JSON.parse(vectorJSON),
|
|
240
236
|
Metadata: JSON.stringify({ Entity: entityDoc.Entity, RecordID: row.RecordID, ...labels }),
|
|
241
237
|
});
|
|
242
|
-
if (results.length >= limit)
|
|
243
|
-
break;
|
|
244
238
|
}
|
|
245
239
|
return results;
|
|
246
240
|
}
|
|
241
|
+
/** The first `limit` stored vectors whose record was loaded, in listing order. */
|
|
242
|
+
selectLabelledVectors(vectors, labelsByRecordID, limit) {
|
|
243
|
+
const chosen = [];
|
|
244
|
+
for (const row of vectors) {
|
|
245
|
+
if (chosen.length >= limit)
|
|
246
|
+
break;
|
|
247
|
+
const labels = labelsByRecordID.get(row.RecordID.toLowerCase());
|
|
248
|
+
if (!labels)
|
|
249
|
+
continue; // filtered out, not readable by this user, or the record no longer exists
|
|
250
|
+
chosen.push({ row, labels });
|
|
251
|
+
}
|
|
252
|
+
return chosen;
|
|
253
|
+
}
|
|
247
254
|
/**
|
|
248
|
-
*
|
|
249
|
-
*
|
|
255
|
+
* Fetch `VectorJSON` for the given Entity Record Document IDs, keyed by ID. The ID lists are
|
|
256
|
+
* capped at {@link VECTOR_FETCH_CHUNK_SIZE} per view and all sent in one `RunViews` batch.
|
|
250
257
|
*/
|
|
251
|
-
async
|
|
258
|
+
async loadVectorValues(ids, contextUser) {
|
|
259
|
+
const valuesByID = new Map();
|
|
260
|
+
if (ids.length === 0)
|
|
261
|
+
return valuesByID;
|
|
262
|
+
const views = [];
|
|
263
|
+
for (let i = 0; i < ids.length; i += VECTOR_FETCH_CHUNK_SIZE) {
|
|
264
|
+
const idList = ids.slice(i, i + VECTOR_FETCH_CHUNK_SIZE).map(id => `'${EscapeSQLString(id)}'`).join(',');
|
|
265
|
+
views.push({
|
|
266
|
+
EntityName: 'MJ: Entity Record Documents',
|
|
267
|
+
ExtraFilter: `ID IN (${idList})`,
|
|
268
|
+
Fields: ['ID', 'VectorJSON'],
|
|
269
|
+
IgnoreMaxRows: true,
|
|
270
|
+
BypassCache: true, // one-off ID lists: a cache slot per call would only hold memory
|
|
271
|
+
ResultType: 'simple',
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
const results = await new RunView().RunViews(views, contextUser);
|
|
275
|
+
for (const result of results) {
|
|
276
|
+
if (!result.Success) {
|
|
277
|
+
throw new Error(`Failed to load vector values: ${result.ErrorMessage}`);
|
|
278
|
+
}
|
|
279
|
+
for (const row of result.Results) {
|
|
280
|
+
if (row.VectorJSON)
|
|
281
|
+
valuesByID.set(row.ID, row.VectorJSON);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
return valuesByID;
|
|
285
|
+
}
|
|
286
|
+
/** The fields a stored vector is labelled with: the entity's name fields, else its NameField. */
|
|
287
|
+
labelFieldNames(entityInfo) {
|
|
252
288
|
const nameFields = entityInfo.Fields.filter(f => f.IsNameField).map(f => f.Name);
|
|
253
289
|
if (nameFields.length === 0 && entityInfo.NameField) {
|
|
254
290
|
nameFields.push(entityInfo.NameField.Name);
|
|
255
291
|
}
|
|
292
|
+
return nameFields;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Load the records that pass `filter` (key and name fields only) and the list of the document's
|
|
296
|
+
* stored vectors (ID and RecordID, no VectorJSON). The two views don't depend on each other, so
|
|
297
|
+
* they go in one `RunViews` round trip.
|
|
298
|
+
*/
|
|
299
|
+
async loadRecordsAndStoredVectors(entityInfo, entityDoc, nameFields, filter, contextUser) {
|
|
256
300
|
const keyFields = entityInfo.PrimaryKeys.map(pk => pk.Name);
|
|
257
|
-
const
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
301
|
+
const [recordResult, docResult] = await new RunView().RunViews([
|
|
302
|
+
{
|
|
303
|
+
EntityName: entityInfo.Name,
|
|
304
|
+
ExtraFilter: filter || undefined,
|
|
305
|
+
Fields: [...new Set([...keyFields, ...nameFields])],
|
|
306
|
+
IgnoreMaxRows: true,
|
|
307
|
+
ResultType: 'simple',
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
EntityName: 'MJ: Entity Record Documents',
|
|
311
|
+
ExtraFilter: `EntityDocumentID='${EscapeSQLString(entityDoc.ID)}' AND VectorJSON IS NOT NULL`,
|
|
312
|
+
Fields: ['ID', 'RecordID'],
|
|
313
|
+
IgnoreMaxRows: true,
|
|
314
|
+
// A cached RunView fetches every column so its slot can serve any field set, which
|
|
315
|
+
// would pull each vector's VectorJSON here. Bypass the cache so Fields is honoured.
|
|
316
|
+
BypassCache: true,
|
|
317
|
+
ResultType: 'simple',
|
|
318
|
+
},
|
|
319
|
+
], contextUser);
|
|
320
|
+
if (!recordResult.Success) {
|
|
321
|
+
throw new Error(`Failed to load "${entityInfo.Name}" records: ${recordResult.ErrorMessage}`);
|
|
322
|
+
}
|
|
323
|
+
if (!docResult.Success) {
|
|
324
|
+
throw new Error(`Failed to load stored vectors: ${docResult.ErrorMessage}`);
|
|
267
325
|
}
|
|
326
|
+
return { records: recordResult.Results, vectors: docResult.Results };
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Map each loaded record to its name-field values, keyed by the same compact record-ID form
|
|
330
|
+
* the vector sync writes to `MJ: Entity Record Documents.RecordID` (lower-cased).
|
|
331
|
+
*/
|
|
332
|
+
mapRecordLabels(entityInfo, nameFields, rows) {
|
|
268
333
|
const map = new Map();
|
|
269
|
-
for (const row of
|
|
334
|
+
for (const row of rows) {
|
|
270
335
|
const key = CompositeKey.FromEntityRecord(entityInfo, row).ToCompactURLSegment().toLowerCase();
|
|
271
336
|
const labels = {};
|
|
272
337
|
for (const name of nameFields) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FetchEntityVectorsResolver.js","sourceRoot":"","sources":["../../src/resolvers/FetchEntityVectorsResolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FetchEntityVectorsResolver.js","sourceRoot":"","sources":["../../src/resolvers/FetchEntityVectorsResolver.ts"],"names":[],"mappings":"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"}
|