@memberjunction/server 5.34.1 → 5.35.0
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/dist/generated/generated.d.ts +21 -0
- package/dist/generated/generated.d.ts.map +1 -1
- package/dist/generated/generated.js +102 -2
- package/dist/generated/generated.js.map +1 -1
- package/dist/generic/ResolverBase.d.ts +1 -1
- package/dist/generic/ResolverBase.d.ts.map +1 -1
- package/dist/generic/ResolverBase.js +7 -4
- package/dist/generic/ResolverBase.js.map +1 -1
- package/dist/generic/RunViewResolver.d.ts +4 -0
- package/dist/generic/RunViewResolver.d.ts.map +1 -1
- package/dist/generic/RunViewResolver.js +28 -0
- package/dist/generic/RunViewResolver.js.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.js +111 -58
- package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
- package/dist/resolvers/artifact-routing.d.ts +39 -0
- package/dist/resolvers/artifact-routing.d.ts.map +1 -0
- package/dist/resolvers/artifact-routing.js +40 -0
- package/dist/resolvers/artifact-routing.js.map +1 -0
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +68 -68
- package/src/generated/generated.ts +75 -2
- package/src/generic/ResolverBase.ts +13 -4
- package/src/generic/RunViewResolver.ts +28 -0
- package/src/resolvers/RunAIAgentResolver.ts +119 -61
- package/src/resolvers/__tests__/artifact-routing.test.ts +88 -0
- package/src/resolvers/artifact-routing.ts +80 -0
- package/src/types.ts +6 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/server",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.35.0",
|
|
4
4
|
"description": "MemberJunction: This project provides API access via GraphQL to the common data store.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./src/index.ts",
|
|
@@ -27,73 +27,73 @@
|
|
|
27
27
|
"@as-integrations/express5": "^1.0.0",
|
|
28
28
|
"@graphql-tools/schema": "latest",
|
|
29
29
|
"@graphql-tools/utils": "^11.0.0",
|
|
30
|
-
"@memberjunction/actions": "5.
|
|
31
|
-
"@memberjunction/actions-apollo": "5.
|
|
32
|
-
"@memberjunction/actions-base": "5.
|
|
33
|
-
"@memberjunction/actions-bizapps-accounting": "5.
|
|
34
|
-
"@memberjunction/actions-bizapps-crm": "5.
|
|
35
|
-
"@memberjunction/actions-bizapps-formbuilders": "5.
|
|
36
|
-
"@memberjunction/actions-bizapps-lms": "5.
|
|
37
|
-
"@memberjunction/actions-bizapps-social": "5.
|
|
38
|
-
"@memberjunction/ai": "5.
|
|
39
|
-
"@memberjunction/ai-agent-manager": "5.
|
|
40
|
-
"@memberjunction/ai-agent-manager-actions": "5.
|
|
41
|
-
"@memberjunction/ai-agents": "5.
|
|
42
|
-
"@memberjunction/ai-core-plus": "5.
|
|
43
|
-
"@memberjunction/ai-mcp-client": "5.
|
|
44
|
-
"@memberjunction/ai-prompts": "5.
|
|
45
|
-
"@memberjunction/ai-provider-bundle": "5.
|
|
46
|
-
"@memberjunction/ai-vector-sync": "5.
|
|
47
|
-
"@memberjunction/ai-vectordb": "5.
|
|
48
|
-
"@memberjunction/ai-vectors-pinecone": "5.
|
|
49
|
-
"@memberjunction/aiengine": "5.
|
|
50
|
-
"@memberjunction/api-keys": "5.
|
|
51
|
-
"@memberjunction/auth-providers": "5.
|
|
52
|
-
"@memberjunction/codegen-lib": "5.
|
|
53
|
-
"@memberjunction/communication-ms-graph": "5.
|
|
54
|
-
"@memberjunction/communication-sendgrid": "5.
|
|
55
|
-
"@memberjunction/communication-types": "5.
|
|
56
|
-
"@memberjunction/component-registry-client-sdk": "5.
|
|
57
|
-
"@memberjunction/computer-use-engine": "5.
|
|
58
|
-
"@memberjunction/config": "5.
|
|
59
|
-
"@memberjunction/core": "5.
|
|
60
|
-
"@memberjunction/core-actions": "5.
|
|
61
|
-
"@memberjunction/core-entities": "5.
|
|
62
|
-
"@memberjunction/core-entities-server": "5.
|
|
63
|
-
"@memberjunction/data-context": "5.
|
|
64
|
-
"@memberjunction/data-context-server": "5.
|
|
65
|
-
"@memberjunction/doc-utils": "5.
|
|
66
|
-
"@memberjunction/encryption": "5.
|
|
67
|
-
"@memberjunction/entity-communications-base": "5.
|
|
68
|
-
"@memberjunction/entity-communications-server": "5.
|
|
69
|
-
"@memberjunction/external-change-detection": "5.
|
|
70
|
-
"@memberjunction/generic-database-provider": "5.
|
|
71
|
-
"@memberjunction/global": "5.
|
|
72
|
-
"@memberjunction/graphql-dataprovider": "5.
|
|
73
|
-
"@memberjunction/integration-engine": "5.
|
|
74
|
-
"@memberjunction/integration-schema-builder": "5.
|
|
75
|
-
"@memberjunction/interactive-component-types": "5.
|
|
76
|
-
"@memberjunction/notifications": "5.
|
|
77
|
-
"@memberjunction/postgresql-dataprovider": "5.
|
|
78
|
-
"@memberjunction/queue": "5.
|
|
79
|
-
"@memberjunction/redis-provider": "5.
|
|
80
|
-
"@memberjunction/scheduling-actions": "5.
|
|
81
|
-
"@memberjunction/scheduling-base-types": "5.
|
|
82
|
-
"@memberjunction/scheduling-engine": "5.
|
|
83
|
-
"@memberjunction/scheduling-engine-base": "5.
|
|
84
|
-
"@memberjunction/schema-engine": "5.
|
|
85
|
-
"@memberjunction/search-engine": "5.
|
|
86
|
-
"@memberjunction/server-extensions-core": "5.
|
|
87
|
-
"@memberjunction/skip-types": "5.
|
|
88
|
-
"@memberjunction/sql-dialect": "5.
|
|
89
|
-
"@memberjunction/sqlserver-dataprovider": "5.
|
|
90
|
-
"@memberjunction/storage": "5.
|
|
91
|
-
"@memberjunction/tag-engine": "5.
|
|
92
|
-
"@memberjunction/tag-engine-base": "5.
|
|
93
|
-
"@memberjunction/templates": "5.
|
|
94
|
-
"@memberjunction/testing-engine": "5.
|
|
95
|
-
"@memberjunction/testing-engine-base": "5.
|
|
96
|
-
"@memberjunction/version-history": "5.
|
|
30
|
+
"@memberjunction/actions": "5.35.0",
|
|
31
|
+
"@memberjunction/actions-apollo": "5.35.0",
|
|
32
|
+
"@memberjunction/actions-base": "5.35.0",
|
|
33
|
+
"@memberjunction/actions-bizapps-accounting": "5.35.0",
|
|
34
|
+
"@memberjunction/actions-bizapps-crm": "5.35.0",
|
|
35
|
+
"@memberjunction/actions-bizapps-formbuilders": "5.35.0",
|
|
36
|
+
"@memberjunction/actions-bizapps-lms": "5.35.0",
|
|
37
|
+
"@memberjunction/actions-bizapps-social": "5.35.0",
|
|
38
|
+
"@memberjunction/ai": "5.35.0",
|
|
39
|
+
"@memberjunction/ai-agent-manager": "5.35.0",
|
|
40
|
+
"@memberjunction/ai-agent-manager-actions": "5.35.0",
|
|
41
|
+
"@memberjunction/ai-agents": "5.35.0",
|
|
42
|
+
"@memberjunction/ai-core-plus": "5.35.0",
|
|
43
|
+
"@memberjunction/ai-mcp-client": "5.35.0",
|
|
44
|
+
"@memberjunction/ai-prompts": "5.35.0",
|
|
45
|
+
"@memberjunction/ai-provider-bundle": "5.35.0",
|
|
46
|
+
"@memberjunction/ai-vector-sync": "5.35.0",
|
|
47
|
+
"@memberjunction/ai-vectordb": "5.35.0",
|
|
48
|
+
"@memberjunction/ai-vectors-pinecone": "5.35.0",
|
|
49
|
+
"@memberjunction/aiengine": "5.35.0",
|
|
50
|
+
"@memberjunction/api-keys": "5.35.0",
|
|
51
|
+
"@memberjunction/auth-providers": "5.35.0",
|
|
52
|
+
"@memberjunction/codegen-lib": "5.35.0",
|
|
53
|
+
"@memberjunction/communication-ms-graph": "5.35.0",
|
|
54
|
+
"@memberjunction/communication-sendgrid": "5.35.0",
|
|
55
|
+
"@memberjunction/communication-types": "5.35.0",
|
|
56
|
+
"@memberjunction/component-registry-client-sdk": "5.35.0",
|
|
57
|
+
"@memberjunction/computer-use-engine": "5.35.0",
|
|
58
|
+
"@memberjunction/config": "5.35.0",
|
|
59
|
+
"@memberjunction/core": "5.35.0",
|
|
60
|
+
"@memberjunction/core-actions": "5.35.0",
|
|
61
|
+
"@memberjunction/core-entities": "5.35.0",
|
|
62
|
+
"@memberjunction/core-entities-server": "5.35.0",
|
|
63
|
+
"@memberjunction/data-context": "5.35.0",
|
|
64
|
+
"@memberjunction/data-context-server": "5.35.0",
|
|
65
|
+
"@memberjunction/doc-utils": "5.35.0",
|
|
66
|
+
"@memberjunction/encryption": "5.35.0",
|
|
67
|
+
"@memberjunction/entity-communications-base": "5.35.0",
|
|
68
|
+
"@memberjunction/entity-communications-server": "5.35.0",
|
|
69
|
+
"@memberjunction/external-change-detection": "5.35.0",
|
|
70
|
+
"@memberjunction/generic-database-provider": "5.35.0",
|
|
71
|
+
"@memberjunction/global": "5.35.0",
|
|
72
|
+
"@memberjunction/graphql-dataprovider": "5.35.0",
|
|
73
|
+
"@memberjunction/integration-engine": "5.35.0",
|
|
74
|
+
"@memberjunction/integration-schema-builder": "5.35.0",
|
|
75
|
+
"@memberjunction/interactive-component-types": "5.35.0",
|
|
76
|
+
"@memberjunction/notifications": "5.35.0",
|
|
77
|
+
"@memberjunction/postgresql-dataprovider": "5.35.0",
|
|
78
|
+
"@memberjunction/queue": "5.35.0",
|
|
79
|
+
"@memberjunction/redis-provider": "5.35.0",
|
|
80
|
+
"@memberjunction/scheduling-actions": "5.35.0",
|
|
81
|
+
"@memberjunction/scheduling-base-types": "5.35.0",
|
|
82
|
+
"@memberjunction/scheduling-engine": "5.35.0",
|
|
83
|
+
"@memberjunction/scheduling-engine-base": "5.35.0",
|
|
84
|
+
"@memberjunction/schema-engine": "5.35.0",
|
|
85
|
+
"@memberjunction/search-engine": "5.35.0",
|
|
86
|
+
"@memberjunction/server-extensions-core": "5.35.0",
|
|
87
|
+
"@memberjunction/skip-types": "5.35.0",
|
|
88
|
+
"@memberjunction/sql-dialect": "5.35.0",
|
|
89
|
+
"@memberjunction/sqlserver-dataprovider": "5.35.0",
|
|
90
|
+
"@memberjunction/storage": "5.35.0",
|
|
91
|
+
"@memberjunction/tag-engine": "5.35.0",
|
|
92
|
+
"@memberjunction/tag-engine-base": "5.35.0",
|
|
93
|
+
"@memberjunction/templates": "5.35.0",
|
|
94
|
+
"@memberjunction/testing-engine": "5.35.0",
|
|
95
|
+
"@memberjunction/testing-engine-base": "5.35.0",
|
|
96
|
+
"@memberjunction/version-history": "5.35.0",
|
|
97
97
|
"@types/compression": "^1.8.1",
|
|
98
98
|
"@types/cors": "^2.8.19",
|
|
99
99
|
"@types/jsonwebtoken": "9.0.10",
|
|
@@ -7094,7 +7094,7 @@ export class MJAIAgentRunStep_ {
|
|
|
7094
7094
|
@Field(() => Int, {description: `Sequential number of this step within the agent run, starting from 1`})
|
|
7095
7095
|
StepNumber: number;
|
|
7096
7096
|
|
|
7097
|
-
@Field({description: `Type of execution step: Prompt, Actions, Sub-Agent, Decision, Chat, Validation`})
|
|
7097
|
+
@Field({description: `Type of execution step: Prompt, Actions, Sub-Agent, Decision, Chat, Validation, ForEach, While, Tool`})
|
|
7098
7098
|
@MaxLength(50)
|
|
7099
7099
|
StepType: string;
|
|
7100
7100
|
|
|
@@ -9453,6 +9453,9 @@ if this limit is exceeded.`})
|
|
|
9453
9453
|
@MaxLength(20)
|
|
9454
9454
|
SearchScopeAccess: string;
|
|
9455
9455
|
|
|
9456
|
+
@Field(() => Boolean, {description: `Per-agent opt-in to a Generic Binary fallback for file uploads whose MIME type does not match any registered Artifact Type. When false (default), unrecognized uploads are rejected at upload time with an actionable error. When true, unrecognized uploads resolve to the Generic Binary artifact type, exposing only get_full and get_metadata tools. Scoped per agent — there is no system-wide global flag.`})
|
|
9457
|
+
AcceptUnregisteredFiles: boolean;
|
|
9458
|
+
|
|
9456
9459
|
@Field({nullable: true})
|
|
9457
9460
|
@MaxLength(255)
|
|
9458
9461
|
Parent?: string;
|
|
@@ -9763,6 +9766,9 @@ export class CreateMJAIAgentInput {
|
|
|
9763
9766
|
@Field({ nullable: true })
|
|
9764
9767
|
SearchScopeAccess?: string;
|
|
9765
9768
|
|
|
9769
|
+
@Field(() => Boolean, { nullable: true })
|
|
9770
|
+
AcceptUnregisteredFiles?: boolean;
|
|
9771
|
+
|
|
9766
9772
|
@Field(() => RestoreContextInput, { nullable: true })
|
|
9767
9773
|
RestoreContext___?: RestoreContextInput;
|
|
9768
9774
|
}
|
|
@@ -9962,6 +9968,9 @@ export class UpdateMJAIAgentInput {
|
|
|
9962
9968
|
@Field({ nullable: true })
|
|
9963
9969
|
SearchScopeAccess?: string;
|
|
9964
9970
|
|
|
9971
|
+
@Field(() => Boolean, { nullable: true })
|
|
9972
|
+
AcceptUnregisteredFiles?: boolean;
|
|
9973
|
+
|
|
9965
9974
|
@Field(() => [KeyValuePairInput], { nullable: true })
|
|
9966
9975
|
OldValues___?: KeyValuePairInput[];
|
|
9967
9976
|
|
|
@@ -21569,6 +21578,16 @@ export class MJArtifactType_ {
|
|
|
21569
21578
|
@MaxLength(100)
|
|
21570
21579
|
ToolLibraryClass?: string;
|
|
21571
21580
|
|
|
21581
|
+
@Field(() => Int, {description: `Deterministic tiebreaker when multiple Artifact Types match the same MIME pattern. Higher values win. Within a specificity tier (exact > subtype-wildcard), the resolver sorts by Priority desc, then SystemSupplied = false beats SystemSupplied = true, then lowest ID wins.`})
|
|
21582
|
+
Priority: number;
|
|
21583
|
+
|
|
21584
|
+
@Field({description: `How artifacts of this type are delivered to the LLM by default. Inline: emitted as an inline content block (image_url, audio_url, small text, etc.) when the model supports the modality and the size is under the inline cap. ToolsOnly: never inlined; the agent reaches the bytes only through tool calls (get_full, library-specific tools). Per-instance override is one-way via ConversationArtifactVersion.ForceToolsOnly — an instance can opt out of inline but never opt in when the type default is ToolsOnly.`})
|
|
21585
|
+
@MaxLength(20)
|
|
21586
|
+
DefaultDeliveryMode: string;
|
|
21587
|
+
|
|
21588
|
+
@Field(() => Boolean, {description: `True for Artifact Types shipped as part of the MemberJunction default registry (JSON, PDF, Office variants, Image/Audio/Video, Generic Text, Generic Binary). False for user/org-supplied customizations. Used as a tiebreaker in MIME pattern resolution: user customizations win over shipped defaults at equal Priority.`})
|
|
21589
|
+
SystemSupplied: boolean;
|
|
21590
|
+
|
|
21572
21591
|
@Field({nullable: true})
|
|
21573
21592
|
@MaxLength(100)
|
|
21574
21593
|
Parent?: string;
|
|
@@ -21632,6 +21651,15 @@ export class CreateMJArtifactTypeInput {
|
|
|
21632
21651
|
@Field({ nullable: true })
|
|
21633
21652
|
ToolLibraryClass: string | null;
|
|
21634
21653
|
|
|
21654
|
+
@Field(() => Int, { nullable: true })
|
|
21655
|
+
Priority?: number;
|
|
21656
|
+
|
|
21657
|
+
@Field({ nullable: true })
|
|
21658
|
+
DefaultDeliveryMode?: string;
|
|
21659
|
+
|
|
21660
|
+
@Field(() => Boolean, { nullable: true })
|
|
21661
|
+
SystemSupplied?: boolean;
|
|
21662
|
+
|
|
21635
21663
|
@Field(() => RestoreContextInput, { nullable: true })
|
|
21636
21664
|
RestoreContext___?: RestoreContextInput;
|
|
21637
21665
|
}
|
|
@@ -21675,6 +21703,15 @@ export class UpdateMJArtifactTypeInput {
|
|
|
21675
21703
|
@Field({ nullable: true })
|
|
21676
21704
|
ToolLibraryClass?: string | null;
|
|
21677
21705
|
|
|
21706
|
+
@Field(() => Int, { nullable: true })
|
|
21707
|
+
Priority?: number;
|
|
21708
|
+
|
|
21709
|
+
@Field({ nullable: true })
|
|
21710
|
+
DefaultDeliveryMode?: string;
|
|
21711
|
+
|
|
21712
|
+
@Field(() => Boolean, { nullable: true })
|
|
21713
|
+
SystemSupplied?: boolean;
|
|
21714
|
+
|
|
21678
21715
|
@Field(() => [KeyValuePairInput], { nullable: true })
|
|
21679
21716
|
OldValues___?: KeyValuePairInput[];
|
|
21680
21717
|
|
|
@@ -22245,6 +22282,9 @@ export class MJArtifactVersion_ {
|
|
|
22245
22282
|
@Field(() => Int, {nullable: true, description: `Size of the stored file in bytes. Denormalized for display without loading the file. Only populated when ContentMode is 'File'.`})
|
|
22246
22283
|
ContentSizeBytes?: number;
|
|
22247
22284
|
|
|
22285
|
+
@Field(() => Boolean, {description: `One-way override that forces this artifact version to be delivered via tools regardless of the Artifact Type's DefaultDeliveryMode. When true, the resolver never emits an inline content block for this version. There is no inverse override — an instance cannot be widened from ToolsOnly to Inline. Default false.`})
|
|
22286
|
+
ForceToolsOnly: boolean;
|
|
22287
|
+
|
|
22248
22288
|
@Field()
|
|
22249
22289
|
@MaxLength(255)
|
|
22250
22290
|
Artifact: string;
|
|
@@ -22269,6 +22309,9 @@ export class MJArtifactVersion_ {
|
|
|
22269
22309
|
@Field(() => [MJConversationDetailArtifact_])
|
|
22270
22310
|
MJConversationDetailArtifacts_ArtifactVersionIDArray: MJConversationDetailArtifact_[]; // Link to MJConversationDetailArtifacts
|
|
22271
22311
|
|
|
22312
|
+
@Field(() => [MJConversationDetailAttachment_])
|
|
22313
|
+
MJConversationDetailAttachments_ArtifactVersionIDArray: MJConversationDetailAttachment_[]; // Link to MJConversationDetailAttachments
|
|
22314
|
+
|
|
22272
22315
|
}
|
|
22273
22316
|
|
|
22274
22317
|
//****************************************************************************
|
|
@@ -22321,6 +22364,9 @@ export class CreateMJArtifactVersionInput {
|
|
|
22321
22364
|
@Field(() => Int, { nullable: true })
|
|
22322
22365
|
ContentSizeBytes: number | null;
|
|
22323
22366
|
|
|
22367
|
+
@Field(() => Boolean, { nullable: true })
|
|
22368
|
+
ForceToolsOnly?: boolean;
|
|
22369
|
+
|
|
22324
22370
|
@Field(() => RestoreContextInput, { nullable: true })
|
|
22325
22371
|
RestoreContext___?: RestoreContextInput;
|
|
22326
22372
|
}
|
|
@@ -22376,6 +22422,9 @@ export class UpdateMJArtifactVersionInput {
|
|
|
22376
22422
|
@Field(() => Int, { nullable: true })
|
|
22377
22423
|
ContentSizeBytes?: number | null;
|
|
22378
22424
|
|
|
22425
|
+
@Field(() => Boolean, { nullable: true })
|
|
22426
|
+
ForceToolsOnly?: boolean;
|
|
22427
|
+
|
|
22379
22428
|
@Field(() => [KeyValuePairInput], { nullable: true })
|
|
22380
22429
|
OldValues___?: KeyValuePairInput[];
|
|
22381
22430
|
|
|
@@ -22480,6 +22529,16 @@ export class MJArtifactVersionResolver extends ResolverBase {
|
|
|
22480
22529
|
return result;
|
|
22481
22530
|
}
|
|
22482
22531
|
|
|
22532
|
+
@FieldResolver(() => [MJConversationDetailAttachment_])
|
|
22533
|
+
async MJConversationDetailAttachments_ArtifactVersionIDArray(@Root() mjartifactversion_: MJArtifactVersion_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
22534
|
+
this.CheckUserReadPermissions('MJ: Conversation Detail Attachments', userPayload);
|
|
22535
|
+
const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
|
|
22536
|
+
const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwConversationDetailAttachments')} WHERE ${provider.QuoteIdentifier('ArtifactVersionID')}='${mjartifactversion_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Conversation Detail Attachments', userPayload, EntityPermissionType.Read, 'AND');
|
|
22537
|
+
const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
|
|
22538
|
+
const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Conversation Detail Attachments', rows, this.GetUserFromPayload(userPayload));
|
|
22539
|
+
return result;
|
|
22540
|
+
}
|
|
22541
|
+
|
|
22483
22542
|
@Mutation(() => MJArtifactVersion_)
|
|
22484
22543
|
async CreateMJArtifactVersion(
|
|
22485
22544
|
@Arg('input', () => CreateMJArtifactVersionInput) input: CreateMJArtifactVersionInput,
|
|
@@ -32828,6 +32887,10 @@ export class MJConversationDetailAttachment_ {
|
|
|
32828
32887
|
@Field({nullable: true, description: `Description of the attachment providing context about its content and purpose.`})
|
|
32829
32888
|
Description?: string;
|
|
32830
32889
|
|
|
32890
|
+
@Field({nullable: true, description: `Foreign key to the ArtifactVersion created alongside this attachment by the storage-unification path. When set, the agent resolver routes via the artifact path (manifest + tool dispatch) and skips inline embedding of the attachment to avoid double-processing. NULL for pre-v5.35 attachment rows authored before storage unification.`})
|
|
32891
|
+
@MaxLength(36)
|
|
32892
|
+
ArtifactVersionID?: string;
|
|
32893
|
+
|
|
32831
32894
|
@Field()
|
|
32832
32895
|
ConversationDetail: string;
|
|
32833
32896
|
|
|
@@ -32839,6 +32902,10 @@ export class MJConversationDetailAttachment_ {
|
|
|
32839
32902
|
@MaxLength(500)
|
|
32840
32903
|
File?: string;
|
|
32841
32904
|
|
|
32905
|
+
@Field({nullable: true})
|
|
32906
|
+
@MaxLength(255)
|
|
32907
|
+
ArtifactVersion?: string;
|
|
32908
|
+
|
|
32842
32909
|
}
|
|
32843
32910
|
|
|
32844
32911
|
//****************************************************************************
|
|
@@ -32888,6 +32955,9 @@ export class CreateMJConversationDetailAttachmentInput {
|
|
|
32888
32955
|
@Field({ nullable: true })
|
|
32889
32956
|
Description: string | null;
|
|
32890
32957
|
|
|
32958
|
+
@Field({ nullable: true })
|
|
32959
|
+
ArtifactVersionID: string | null;
|
|
32960
|
+
|
|
32891
32961
|
@Field(() => RestoreContextInput, { nullable: true })
|
|
32892
32962
|
RestoreContext___?: RestoreContextInput;
|
|
32893
32963
|
}
|
|
@@ -32940,6 +33010,9 @@ export class UpdateMJConversationDetailAttachmentInput {
|
|
|
32940
33010
|
@Field({ nullable: true })
|
|
32941
33011
|
Description?: string | null;
|
|
32942
33012
|
|
|
33013
|
+
@Field({ nullable: true })
|
|
33014
|
+
ArtifactVersionID?: string | null;
|
|
33015
|
+
|
|
32943
33016
|
@Field(() => [KeyValuePairInput], { nullable: true })
|
|
32944
33017
|
OldValues___?: KeyValuePairInput[];
|
|
32945
33018
|
|
|
@@ -60908,7 +60981,7 @@ export class MJRecordGeoCode_ {
|
|
|
60908
60981
|
@Field({nullable: true, description: `Timestamp of when geocoding was last attempted (success or failure).`})
|
|
60909
60982
|
GeocodedAt?: Date;
|
|
60910
60983
|
|
|
60911
|
-
@Field({nullable: true, description: `
|
|
60984
|
+
@Field({nullable: true, description: `Source that produced this geocode. One of: google, geocodio, here, reference_data, manual, ip_geolocation, native, reverse.`})
|
|
60912
60985
|
@MaxLength(30)
|
|
60913
60986
|
GeocodingSource?: string;
|
|
60914
60987
|
|
|
@@ -359,7 +359,8 @@ export class ResolverBase {
|
|
|
359
359
|
viewInput.Aggregates,
|
|
360
360
|
viewInput.AfterKey
|
|
361
361
|
? CompositeKey.FromKeyValuePairs((viewInput.AfterKey as { KeyValuePairs: { FieldName: string; Value: string }[] }).KeyValuePairs)
|
|
362
|
-
: undefined
|
|
362
|
+
: undefined,
|
|
363
|
+
viewInput.BypassCache
|
|
363
364
|
);
|
|
364
365
|
}
|
|
365
366
|
else {
|
|
@@ -400,7 +401,9 @@ export class ResolverBase {
|
|
|
400
401
|
userPayload,
|
|
401
402
|
viewInput.MaxRows,
|
|
402
403
|
viewInput.StartRow,
|
|
403
|
-
viewInput.Aggregates
|
|
404
|
+
viewInput.Aggregates,
|
|
405
|
+
undefined,
|
|
406
|
+
viewInput.BypassCache
|
|
404
407
|
);
|
|
405
408
|
} catch (err) {
|
|
406
409
|
console.log(err);
|
|
@@ -444,7 +447,9 @@ export class ResolverBase {
|
|
|
444
447
|
userPayload,
|
|
445
448
|
viewInput.MaxRows,
|
|
446
449
|
viewInput.StartRow,
|
|
447
|
-
viewInput.Aggregates
|
|
450
|
+
viewInput.Aggregates,
|
|
451
|
+
undefined,
|
|
452
|
+
viewInput.BypassCache
|
|
448
453
|
);
|
|
449
454
|
} catch (err) {
|
|
450
455
|
console.log(err);
|
|
@@ -517,6 +522,7 @@ export class ResolverBase {
|
|
|
517
522
|
resultType: viewInput.ResultType,
|
|
518
523
|
userPayload,
|
|
519
524
|
aggregates: viewInput.Aggregates,
|
|
525
|
+
bypassCache: viewInput.BypassCache,
|
|
520
526
|
});
|
|
521
527
|
} catch (err) {
|
|
522
528
|
LogError(err);
|
|
@@ -693,7 +699,8 @@ export class ResolverBase {
|
|
|
693
699
|
maxRows: number | undefined,
|
|
694
700
|
startRow: number | undefined,
|
|
695
701
|
aggregates?: AggregateExpression[],
|
|
696
|
-
afterKey?: CompositeKey
|
|
702
|
+
afterKey?: CompositeKey,
|
|
703
|
+
bypassCache?: boolean
|
|
697
704
|
) {
|
|
698
705
|
try {
|
|
699
706
|
if (!viewInfo || !userPayload) return null;
|
|
@@ -757,6 +764,7 @@ export class ResolverBase {
|
|
|
757
764
|
AuditLogDescription: auditLogDescription,
|
|
758
765
|
ResultType: rt,
|
|
759
766
|
Aggregates: aggregates,
|
|
767
|
+
BypassCache: bypassCache,
|
|
760
768
|
},
|
|
761
769
|
user
|
|
762
770
|
);
|
|
@@ -870,6 +878,7 @@ export class ResolverBase {
|
|
|
870
878
|
AuditLogDescription: param.auditLogDescription,
|
|
871
879
|
ResultType: rt,
|
|
872
880
|
Aggregates: param.aggregates,
|
|
881
|
+
BypassCache: param.bypassCache,
|
|
873
882
|
});
|
|
874
883
|
}
|
|
875
884
|
|
|
@@ -170,6 +170,13 @@ export class RunViewByIDInput {
|
|
|
170
170
|
description: 'Optional aggregate expressions to calculate on the full result set (e.g., SUM, COUNT, AVG). Results are returned in AggregateResults.',
|
|
171
171
|
})
|
|
172
172
|
Aggregates?: AggregateExpressionInput[];
|
|
173
|
+
|
|
174
|
+
@Field(() => Boolean, {
|
|
175
|
+
nullable: true,
|
|
176
|
+
description:
|
|
177
|
+
'Optional, when true bypasses ALL server-side caching for this view run — the pre-check cache lookup is skipped and the result is not stored in the cache. Use for maintenance/audit queries that must see true database state, or to force-refresh views whose filters reference rows the server cache invalidator cannot follow (e.g., cross-entity subqueries against vwListDetails).',
|
|
178
|
+
})
|
|
179
|
+
BypassCache?: boolean;
|
|
173
180
|
}
|
|
174
181
|
|
|
175
182
|
@InputType()
|
|
@@ -277,6 +284,13 @@ export class RunViewByNameInput {
|
|
|
277
284
|
description: 'Optional aggregate expressions to calculate on the full result set (e.g., SUM, COUNT, AVG). Results are returned in AggregateResults.',
|
|
278
285
|
})
|
|
279
286
|
Aggregates?: AggregateExpressionInput[];
|
|
287
|
+
|
|
288
|
+
@Field(() => Boolean, {
|
|
289
|
+
nullable: true,
|
|
290
|
+
description:
|
|
291
|
+
'Optional, when true bypasses ALL server-side caching for this view run — the pre-check cache lookup is skipped and the result is not stored in the cache. Use for maintenance/audit queries that must see true database state, or to force-refresh views whose filters reference rows the server cache invalidator cannot follow (e.g., cross-entity subqueries against vwListDetails).',
|
|
292
|
+
})
|
|
293
|
+
BypassCache?: boolean;
|
|
280
294
|
}
|
|
281
295
|
|
|
282
296
|
@InputType()
|
|
@@ -370,6 +384,13 @@ export class RunDynamicViewInput {
|
|
|
370
384
|
description: 'Optional aggregate expressions to calculate on the full result set (e.g., SUM, COUNT, AVG). Results are returned in AggregateResults.',
|
|
371
385
|
})
|
|
372
386
|
Aggregates?: AggregateExpressionInput[];
|
|
387
|
+
|
|
388
|
+
@Field(() => Boolean, {
|
|
389
|
+
nullable: true,
|
|
390
|
+
description:
|
|
391
|
+
'Optional, when true bypasses ALL server-side caching for this view run — the pre-check cache lookup is skipped and the result is not stored in the cache. Use for maintenance/audit queries that must see true database state, or to force-refresh views whose filters reference rows the server cache invalidator cannot follow (e.g., cross-entity subqueries against vwListDetails).',
|
|
392
|
+
})
|
|
393
|
+
BypassCache?: boolean;
|
|
373
394
|
}
|
|
374
395
|
|
|
375
396
|
@InputType()
|
|
@@ -492,6 +513,13 @@ export class RunViewGenericInput {
|
|
|
492
513
|
description: 'Optional aggregate expressions to calculate on the full result set (e.g., SUM, COUNT, AVG). Results are returned in AggregateResults.',
|
|
493
514
|
})
|
|
494
515
|
Aggregates?: AggregateExpressionInput[];
|
|
516
|
+
|
|
517
|
+
@Field(() => Boolean, {
|
|
518
|
+
nullable: true,
|
|
519
|
+
description:
|
|
520
|
+
'Optional, when true bypasses ALL server-side caching for this view run — the pre-check cache lookup is skipped and the result is not stored in the cache. Use for maintenance/audit queries that must see true database state, or to force-refresh views whose filters reference rows the server cache invalidator cannot follow (e.g., cross-entity subqueries against vwListDetails).',
|
|
521
|
+
})
|
|
522
|
+
BypassCache?: boolean;
|
|
495
523
|
}
|
|
496
524
|
|
|
497
525
|
//****************************************************************************
|