@memberjunction/core-entities-server 5.48.0 → 5.49.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/custom/MJConversationDetailEntityServer.server.d.ts +20 -1
- package/dist/custom/MJConversationDetailEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJConversationDetailEntityServer.server.js +38 -9
- package/dist/custom/MJConversationDetailEntityServer.server.js.map +1 -1
- package/dist/custom/MJMLTrainingPipelineEntityServer.server.d.ts +62 -0
- package/dist/custom/MJMLTrainingPipelineEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJMLTrainingPipelineEntityServer.server.js +174 -0
- package/dist/custom/MJMLTrainingPipelineEntityServer.server.js.map +1 -0
- package/dist/custom/MJQueryEntityServer.server.d.ts +35 -0
- package/dist/custom/MJQueryEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJQueryEntityServer.server.js +69 -1
- package/dist/custom/MJQueryEntityServer.server.js.map +1 -1
- package/dist/custom/MJQuerySQLEntityServer.server.d.ts +32 -0
- package/dist/custom/MJQuerySQLEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJQuerySQLEntityServer.server.js +93 -0
- package/dist/custom/MJQuerySQLEntityServer.server.js.map +1 -0
- package/dist/custom/query-extraction/parse.d.ts +3 -3
- package/dist/custom/query-extraction/parse.d.ts.map +1 -1
- package/dist/custom/query-extraction/parse.js +4 -5
- package/dist/custom/query-extraction/parse.js.map +1 -1
- package/dist/custom/query-extraction/pipeline.js +2 -2
- package/dist/custom/query-extraction/pipeline.js.map +1 -1
- package/dist/custom/query-extraction/sync.d.ts +2 -2
- package/dist/custom/query-extraction/sync.d.ts.map +1 -1
- package/dist/custom/query-extraction/sync.js +26 -6
- package/dist/custom/query-extraction/sync.js.map +1 -1
- package/dist/custom/query-extraction/types.d.ts +5 -1
- package/dist/custom/query-extraction/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +25 -24
|
@@ -5,7 +5,13 @@ import { MJConversationDetailEntity } from "@memberjunction/core-entities";
|
|
|
5
5
|
* when the original message content has been modified.
|
|
6
6
|
*
|
|
7
7
|
* When a user edits their message after initial creation, the OriginalMessageChanged
|
|
8
|
-
* flag is set to true, allowing the UI to display an "(Edited)" indicator.
|
|
8
|
+
* flag is set to true, allowing the UI to display an "(Edited)" indicator. This is
|
|
9
|
+
* also the edit signal for cross-turn conversation compaction
|
|
10
|
+
* (plans/agent-conversation-compaction.md §6): a row edited after it was folded into
|
|
11
|
+
* a persisted summary keeps the flag, Record Changes already holds the diff, and the
|
|
12
|
+
* UI can derive "edited after summarization" from the flag plus the row's Sequence
|
|
13
|
+
* being below the current summary boundary — no summary regeneration required (the
|
|
14
|
+
* summary is explicitly lossy; agents page in exact rows via the retrieval tools).
|
|
9
15
|
*/
|
|
10
16
|
export declare class MJConversationDetailEntityServer extends MJConversationDetailEntity {
|
|
11
17
|
/**
|
|
@@ -13,5 +19,18 @@ export declare class MJConversationDetailEntityServer extends MJConversationDeta
|
|
|
13
19
|
* This is done as pre-processing before calling super.Save() to ensure it's a single DB round trip.
|
|
14
20
|
*/
|
|
15
21
|
Save(options?: EntitySaveOptions): Promise<boolean>;
|
|
22
|
+
/**
|
|
23
|
+
* True when this save is a genuine Message EDIT on an existing record — not one of
|
|
24
|
+
* the framework's own Message rewrites:
|
|
25
|
+
* - New records never qualify (also covers the agent-response placeholder INSERT).
|
|
26
|
+
* - Agent progress updates rewrite Message while the row's Status is 'In-Progress' — skipped.
|
|
27
|
+
* - The run's finalization save rewrites Message together with a Status transition — a
|
|
28
|
+
* dirty Status marks the save as lifecycle, not an edit — skipped.
|
|
29
|
+
*
|
|
30
|
+
* Note: the original implementation inverted the IsSaved check (`!this.IsSaved`
|
|
31
|
+
* selects NEW records), which combined with the OldValue guard meant the flag could
|
|
32
|
+
* never be set — fixed as part of the compaction edit-handling work.
|
|
33
|
+
*/
|
|
34
|
+
ShouldFlagOriginalMessageChanged(): boolean;
|
|
16
35
|
}
|
|
17
36
|
//# sourceMappingURL=MJConversationDetailEntityServer.server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MJConversationDetailEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJConversationDetailEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E
|
|
1
|
+
{"version":3,"file":"MJConversationDetailEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJConversationDetailEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E;;;;;;;;;;;;GAYG;AACH,qBACa,gCAAiC,SAAQ,0BAA0B;IAC5E;;;OAGG;IACY,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAQlE;;;;;;;;;;;OAWG;IACI,gCAAgC,IAAI,OAAO;CAiBrD"}
|
|
@@ -12,7 +12,13 @@ import { MJConversationDetailEntity } from "@memberjunction/core-entities";
|
|
|
12
12
|
* when the original message content has been modified.
|
|
13
13
|
*
|
|
14
14
|
* When a user edits their message after initial creation, the OriginalMessageChanged
|
|
15
|
-
* flag is set to true, allowing the UI to display an "(Edited)" indicator.
|
|
15
|
+
* flag is set to true, allowing the UI to display an "(Edited)" indicator. This is
|
|
16
|
+
* also the edit signal for cross-turn conversation compaction
|
|
17
|
+
* (plans/agent-conversation-compaction.md §6): a row edited after it was folded into
|
|
18
|
+
* a persisted summary keeps the flag, Record Changes already holds the diff, and the
|
|
19
|
+
* UI can derive "edited after summarization" from the flag plus the row's Sequence
|
|
20
|
+
* being below the current summary boundary — no summary regeneration required (the
|
|
21
|
+
* summary is explicitly lossy; agents page in exact rows via the retrieval tools).
|
|
16
22
|
*/
|
|
17
23
|
let MJConversationDetailEntityServer = class MJConversationDetailEntityServer extends MJConversationDetailEntity {
|
|
18
24
|
/**
|
|
@@ -20,17 +26,40 @@ let MJConversationDetailEntityServer = class MJConversationDetailEntityServer ex
|
|
|
20
26
|
* This is done as pre-processing before calling super.Save() to ensure it's a single DB round trip.
|
|
21
27
|
*/
|
|
22
28
|
async Save(options) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
// Check if the Message field is dirty (has been modified)
|
|
26
|
-
const messageField = this.GetFieldByName('Message');
|
|
27
|
-
if (messageField && messageField.Dirty && messageField.OldValue !== undefined) {
|
|
28
|
-
// Message has been changed on an existing record - set the flag
|
|
29
|
-
this.OriginalMessageChanged = true;
|
|
30
|
-
}
|
|
29
|
+
if (this.ShouldFlagOriginalMessageChanged()) {
|
|
30
|
+
this.OriginalMessageChanged = true;
|
|
31
31
|
}
|
|
32
32
|
return super.Save(options);
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* True when this save is a genuine Message EDIT on an existing record — not one of
|
|
36
|
+
* the framework's own Message rewrites:
|
|
37
|
+
* - New records never qualify (also covers the agent-response placeholder INSERT).
|
|
38
|
+
* - Agent progress updates rewrite Message while the row's Status is 'In-Progress' — skipped.
|
|
39
|
+
* - The run's finalization save rewrites Message together with a Status transition — a
|
|
40
|
+
* dirty Status marks the save as lifecycle, not an edit — skipped.
|
|
41
|
+
*
|
|
42
|
+
* Note: the original implementation inverted the IsSaved check (`!this.IsSaved`
|
|
43
|
+
* selects NEW records), which combined with the OldValue guard meant the flag could
|
|
44
|
+
* never be set — fixed as part of the compaction edit-handling work.
|
|
45
|
+
*/
|
|
46
|
+
ShouldFlagOriginalMessageChanged() {
|
|
47
|
+
if (!this.IsSaved) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
const messageField = this.GetFieldByName('Message');
|
|
51
|
+
if (!messageField || !messageField.Dirty || messageField.OldValue === undefined) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
if (this.Status === 'In-Progress') {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
const statusField = this.GetFieldByName('Status');
|
|
58
|
+
if (statusField?.Dirty) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
34
63
|
};
|
|
35
64
|
MJConversationDetailEntityServer = __decorate([
|
|
36
65
|
RegisterClass(BaseEntity, "MJ: Conversation Details")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MJConversationDetailEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJConversationDetailEntityServer.server.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E
|
|
1
|
+
{"version":3,"file":"MJConversationDetailEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJConversationDetailEntityServer.server.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E;;;;;;;;;;;;GAYG;AAEI,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,0BAA0B;IAC5E;;;OAGG;IACM,KAAK,CAAC,IAAI,CAAC,OAA2B;QAC3C,IAAI,IAAI,CAAC,gCAAgC,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACvC,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;OAWG;IACI,gCAAgC;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9E,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,WAAW,EAAE,KAAK,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AA1CY,gCAAgC;IAD5C,aAAa,CAAC,UAAU,EAAE,0BAA0B,CAAC;GACzC,gCAAgC,CA0C5C"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ValidationResult } from '@memberjunction/core';
|
|
2
|
+
import { MJMLTrainingPipelineEntity } from '@memberjunction/core-entities';
|
|
3
|
+
/**
|
|
4
|
+
* Server-side ML Training Pipeline entity. Its job is to make the leakage guard
|
|
5
|
+
* impossible to disarm by accident.
|
|
6
|
+
*
|
|
7
|
+
* The guard's `DenyFields` list keeps target-leaking columns out of the feature
|
|
8
|
+
* matrix. Its worst failure mode is silent: a deny entry that matches no column
|
|
9
|
+
* looks exactly like a deny entry that is armed, so training "succeeds" on leaked
|
|
10
|
+
* features and the model looks brilliant. That is precisely what happened when a
|
|
11
|
+
* user pasted a bracketed list into the editor and got
|
|
12
|
+
* `DenyFields: ["[CheckInTime", ..., "Status]"]` — the two most dangerous columns
|
|
13
|
+
* were left completely unguarded, and the save was accepted.
|
|
14
|
+
*
|
|
15
|
+
* So this is the authoritative gate: nothing malformed, and nothing that matches
|
|
16
|
+
* no real column, reaches the database. The rules themselves live in
|
|
17
|
+
* `@memberjunction/predictive-studio-core` so the editor can apply the identical
|
|
18
|
+
* checks at input time without the two ever drifting apart.
|
|
19
|
+
*/
|
|
20
|
+
export declare class MJMLTrainingPipelineEntityServer extends MJMLTrainingPipelineEntity {
|
|
21
|
+
get DefaultSkipAsyncValidation(): boolean;
|
|
22
|
+
ValidateAsync(): Promise<ValidationResult>;
|
|
23
|
+
/**
|
|
24
|
+
* Whether the leakage guard needs re-checking on this save. It does on insert,
|
|
25
|
+
* and whenever the guard or the source bindings it is validated against change.
|
|
26
|
+
*/
|
|
27
|
+
private needsLeakageGuardCheck;
|
|
28
|
+
/**
|
|
29
|
+
* Parse the `LeakageGuard` JSON column. A null/blank guard is legitimate (no
|
|
30
|
+
* deny-list configured) and yields an empty guard rather than an error;
|
|
31
|
+
* malformed JSON is a hard failure, because a guard we cannot read is a guard
|
|
32
|
+
* we cannot enforce.
|
|
33
|
+
*
|
|
34
|
+
* @returns the parsed guard, or `null` when a parse error was recorded on `result`
|
|
35
|
+
*/
|
|
36
|
+
private parseLeakageGuard;
|
|
37
|
+
/**
|
|
38
|
+
* Collect the columns a deny entry could legitimately name, across the target
|
|
39
|
+
* entity and every bound source.
|
|
40
|
+
*
|
|
41
|
+
* `ColumnsFullyResolved` is the important part. Only `Entity` sources expose an
|
|
42
|
+
* enumerable column list; a Query, external entity, vector set, or upstream
|
|
43
|
+
* feature pipeline does not. If any such source is bound we cannot prove a deny
|
|
44
|
+
* entry matches nothing, so the semantic check must stand down — otherwise a
|
|
45
|
+
* perfectly valid entry naming a column on that source would be wrongly rejected.
|
|
46
|
+
* The structural check still runs either way, and that is what catches the
|
|
47
|
+
* pasted-list bug.
|
|
48
|
+
*/
|
|
49
|
+
private buildValidationContext;
|
|
50
|
+
/** Field names of an entity, which are the column names a deny entry may name. */
|
|
51
|
+
private columnsOf;
|
|
52
|
+
/** Parse the `SourceBindings` JSON column, tolerating null/blank/garbage. */
|
|
53
|
+
private parseSourceBindings;
|
|
54
|
+
/** Fold guard issues into the entity's ValidationResult. */
|
|
55
|
+
private applyIssues;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Tree-shaking guard — dynamic ClassFactory instantiation is invisible to the
|
|
59
|
+
* bundler, so this keeps the registration alive.
|
|
60
|
+
*/
|
|
61
|
+
export declare function LoadMJMLTrainingPipelineEntityServer(): void;
|
|
62
|
+
//# sourceMappingURL=MJMLTrainingPipelineEntityServer.server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJMLTrainingPipelineEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJMLTrainingPipelineEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuF,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7I,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAU3E;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,gCAAiC,SAAQ,0BAA0B;IAE5E,IAAoB,0BAA0B,IAAI,OAAO,CAExD;IAEqB,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAkBhE;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAQ9B;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IA4BzB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,sBAAsB;IAkC9B,kFAAkF;IAClF,OAAO,CAAC,SAAS;IAIjB,6EAA6E;IAC7E,OAAO,CAAC,mBAAmB;IAe3B,4DAA4D;IAC5D,OAAO,CAAC,WAAW;CAStB;AAED;;;GAGG;AACH,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { BaseEntity, ValidationErrorInfo, ValidationErrorType } from '@memberjunction/core';
|
|
8
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
9
|
+
import { MJMLTrainingPipelineEntity } from '@memberjunction/core-entities';
|
|
10
|
+
import { validateLeakageGuard, DOMINANCE_THRESHOLD_DEFAULT, } from '@memberjunction/predictive-studio-core';
|
|
11
|
+
/**
|
|
12
|
+
* Server-side ML Training Pipeline entity. Its job is to make the leakage guard
|
|
13
|
+
* impossible to disarm by accident.
|
|
14
|
+
*
|
|
15
|
+
* The guard's `DenyFields` list keeps target-leaking columns out of the feature
|
|
16
|
+
* matrix. Its worst failure mode is silent: a deny entry that matches no column
|
|
17
|
+
* looks exactly like a deny entry that is armed, so training "succeeds" on leaked
|
|
18
|
+
* features and the model looks brilliant. That is precisely what happened when a
|
|
19
|
+
* user pasted a bracketed list into the editor and got
|
|
20
|
+
* `DenyFields: ["[CheckInTime", ..., "Status]"]` — the two most dangerous columns
|
|
21
|
+
* were left completely unguarded, and the save was accepted.
|
|
22
|
+
*
|
|
23
|
+
* So this is the authoritative gate: nothing malformed, and nothing that matches
|
|
24
|
+
* no real column, reaches the database. The rules themselves live in
|
|
25
|
+
* `@memberjunction/predictive-studio-core` so the editor can apply the identical
|
|
26
|
+
* checks at input time without the two ever drifting apart.
|
|
27
|
+
*/
|
|
28
|
+
let MJMLTrainingPipelineEntityServer = class MJMLTrainingPipelineEntityServer extends MJMLTrainingPipelineEntity {
|
|
29
|
+
get DefaultSkipAsyncValidation() {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
async ValidateAsync() {
|
|
33
|
+
const result = await super.ValidateAsync();
|
|
34
|
+
if (!result.Success)
|
|
35
|
+
return result;
|
|
36
|
+
// Fast-path: the guard can only become newly unsound when the guard itself,
|
|
37
|
+
// or the sources its entries are checked against, are being changed.
|
|
38
|
+
if (!this.needsLeakageGuardCheck())
|
|
39
|
+
return result;
|
|
40
|
+
const guard = this.parseLeakageGuard(result);
|
|
41
|
+
if (guard === null)
|
|
42
|
+
return result; // parse failure already recorded
|
|
43
|
+
const context = this.buildValidationContext();
|
|
44
|
+
const issues = validateLeakageGuard(guard, context);
|
|
45
|
+
this.applyIssues(result, issues);
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Whether the leakage guard needs re-checking on this save. It does on insert,
|
|
50
|
+
* and whenever the guard or the source bindings it is validated against change.
|
|
51
|
+
*/
|
|
52
|
+
needsLeakageGuardCheck() {
|
|
53
|
+
if (!this.IsSaved)
|
|
54
|
+
return true;
|
|
55
|
+
const guardDirty = this.GetFieldByName('LeakageGuard')?.Dirty ?? false;
|
|
56
|
+
const bindingsDirty = this.GetFieldByName('SourceBindings')?.Dirty ?? false;
|
|
57
|
+
const targetDirty = this.GetFieldByName('TargetEntityID')?.Dirty ?? false;
|
|
58
|
+
return guardDirty || bindingsDirty || targetDirty;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Parse the `LeakageGuard` JSON column. A null/blank guard is legitimate (no
|
|
62
|
+
* deny-list configured) and yields an empty guard rather than an error;
|
|
63
|
+
* malformed JSON is a hard failure, because a guard we cannot read is a guard
|
|
64
|
+
* we cannot enforce.
|
|
65
|
+
*
|
|
66
|
+
* @returns the parsed guard, or `null` when a parse error was recorded on `result`
|
|
67
|
+
*/
|
|
68
|
+
parseLeakageGuard(result) {
|
|
69
|
+
const raw = this.LeakageGuard;
|
|
70
|
+
if (raw == null || raw.trim().length === 0) {
|
|
71
|
+
return { DenyFields: [], SingleFeatureDominanceThreshold: DOMINANCE_THRESHOLD_DEFAULT };
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
const parsed = JSON.parse(raw);
|
|
75
|
+
return {
|
|
76
|
+
DenyFields: parsed.DenyFields ?? [],
|
|
77
|
+
DenySources: parsed.DenySources,
|
|
78
|
+
SingleFeatureDominanceThreshold: parsed.SingleFeatureDominanceThreshold ?? DOMINANCE_THRESHOLD_DEFAULT,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
83
|
+
result.Errors.push(new ValidationErrorInfo('LeakageGuard', `LeakageGuard is not valid JSON (${message}). A guard that cannot be read cannot be enforced, ` +
|
|
84
|
+
`so the pipeline would train with no leakage protection at all.`, raw, ValidationErrorType.Failure));
|
|
85
|
+
result.Success = false;
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Collect the columns a deny entry could legitimately name, across the target
|
|
91
|
+
* entity and every bound source.
|
|
92
|
+
*
|
|
93
|
+
* `ColumnsFullyResolved` is the important part. Only `Entity` sources expose an
|
|
94
|
+
* enumerable column list; a Query, external entity, vector set, or upstream
|
|
95
|
+
* feature pipeline does not. If any such source is bound we cannot prove a deny
|
|
96
|
+
* entry matches nothing, so the semantic check must stand down — otherwise a
|
|
97
|
+
* perfectly valid entry naming a column on that source would be wrongly rejected.
|
|
98
|
+
* The structural check still runs either way, and that is what catches the
|
|
99
|
+
* pasted-list bug.
|
|
100
|
+
*/
|
|
101
|
+
buildValidationContext() {
|
|
102
|
+
const bindings = this.parseSourceBindings();
|
|
103
|
+
const provider = this.ProviderToUse;
|
|
104
|
+
const columns = [];
|
|
105
|
+
let fullyResolved = true;
|
|
106
|
+
const targetEntity = this.TargetEntityID ? provider?.EntityByID(this.TargetEntityID) : undefined;
|
|
107
|
+
if (targetEntity) {
|
|
108
|
+
columns.push(...this.columnsOf(targetEntity));
|
|
109
|
+
}
|
|
110
|
+
else if (this.TargetEntityID) {
|
|
111
|
+
fullyResolved = false; // target entity is set but unresolvable
|
|
112
|
+
}
|
|
113
|
+
for (const binding of bindings) {
|
|
114
|
+
if (binding.Kind !== 'Entity') {
|
|
115
|
+
fullyResolved = false; // columns of non-entity sources aren't enumerable here
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
const entity = provider?.EntityByName(binding.Ref);
|
|
119
|
+
if (!entity) {
|
|
120
|
+
fullyResolved = false;
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
columns.push(...this.columnsOf(entity));
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
KnownColumns: columns,
|
|
127
|
+
KnownSources: bindings.map((b) => b.Ref),
|
|
128
|
+
ColumnsFullyResolved: fullyResolved,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/** Field names of an entity, which are the column names a deny entry may name. */
|
|
132
|
+
columnsOf(entity) {
|
|
133
|
+
return entity.Fields.map((f) => f.Name);
|
|
134
|
+
}
|
|
135
|
+
/** Parse the `SourceBindings` JSON column, tolerating null/blank/garbage. */
|
|
136
|
+
parseSourceBindings() {
|
|
137
|
+
const raw = this.SourceBindings;
|
|
138
|
+
if (raw == null || raw.trim().length === 0)
|
|
139
|
+
return [];
|
|
140
|
+
try {
|
|
141
|
+
const parsed = JSON.parse(raw);
|
|
142
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// A malformed SourceBindings column is not this validator's problem to
|
|
146
|
+
// report, but it does mean we cannot enumerate columns — treat as none,
|
|
147
|
+
// which makes the context not-fully-resolved and stands the semantic
|
|
148
|
+
// check down rather than producing bogus "matches no column" errors.
|
|
149
|
+
return [];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/** Fold guard issues into the entity's ValidationResult. */
|
|
153
|
+
applyIssues(result, issues) {
|
|
154
|
+
for (const issue of issues) {
|
|
155
|
+
const type = issue.Severity === 'Failure' ? ValidationErrorType.Failure : ValidationErrorType.Warning;
|
|
156
|
+
result.Errors.push(new ValidationErrorInfo('LeakageGuard', issue.Message, issue.Value, type));
|
|
157
|
+
if (issue.Severity === 'Failure') {
|
|
158
|
+
result.Success = false;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
MJMLTrainingPipelineEntityServer = __decorate([
|
|
164
|
+
RegisterClass(BaseEntity, 'MJ: ML Training Pipelines')
|
|
165
|
+
], MJMLTrainingPipelineEntityServer);
|
|
166
|
+
export { MJMLTrainingPipelineEntityServer };
|
|
167
|
+
/**
|
|
168
|
+
* Tree-shaking guard — dynamic ClassFactory instantiation is invisible to the
|
|
169
|
+
* bundler, so this keeps the registration alive.
|
|
170
|
+
*/
|
|
171
|
+
export function LoadMJMLTrainingPipelineEntityServer() {
|
|
172
|
+
// no-op
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=MJMLTrainingPipelineEntityServer.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJMLTrainingPipelineEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJMLTrainingPipelineEntityServer.server.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,10 +22,45 @@ export declare class MJQueryEntityServer extends MJQueryEntityExtended {
|
|
|
22
22
|
protected GenerateCompositeEmbedding(): Promise<void>;
|
|
23
23
|
Save(options?: EntitySaveOptions): Promise<boolean>;
|
|
24
24
|
Delete(options?: EntitySaveOptions): Promise<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* Returns the database platform of the connected database.
|
|
27
|
+
* Uses the DB_PLATFORM env var (same source as MJServer's provider selection).
|
|
28
|
+
*/
|
|
29
|
+
private get CurrentPlatform();
|
|
30
|
+
/**
|
|
31
|
+
* Resolves the SQL to use for extraction based on the current database platform.
|
|
32
|
+
*
|
|
33
|
+
* Resolution order:
|
|
34
|
+
* 1. MJ: Query SQLs record matching the current platform's dialect → use that SQL
|
|
35
|
+
* 2. Base Query.SQL field → fall back if no dialect variant exists
|
|
36
|
+
*
|
|
37
|
+
* After resolution, validates the SQL is compatible with the current platform's
|
|
38
|
+
* dialect by attempting a parse. Logs a warning if the SQL appears to be for a
|
|
39
|
+
* different dialect (e.g., T-SQL bracket identifiers on a PostgreSQL database).
|
|
40
|
+
*/
|
|
41
|
+
private resolveExtractionSQL;
|
|
42
|
+
/**
|
|
43
|
+
* Best-effort dialect validation: attempts to parse the SQL with the current platform's
|
|
44
|
+
* dialect. If parsing throws, logs a warning — the SQL may be for a different dialect.
|
|
45
|
+
*
|
|
46
|
+
* This is a heuristic, not a guarantee: node-sql-parser is permissive on many
|
|
47
|
+
* dialect-specific functions (ISNULL, GETDATE pass in both dialects), so a passing
|
|
48
|
+
* parse does not prove the SQL is correct for this dialect. But a failing parse is a
|
|
49
|
+
* strong signal of incompatibility.
|
|
50
|
+
*/
|
|
51
|
+
private validateDialectCompatibility;
|
|
25
52
|
/**
|
|
26
53
|
* Builds the QuerySyncContext from this entity instance for use by the extraction pipeline.
|
|
54
|
+
* Resolves the SQL to the appropriate dialect variant for the connected database.
|
|
27
55
|
*/
|
|
28
56
|
private buildSyncContext;
|
|
57
|
+
/**
|
|
58
|
+
* Re-runs the extraction pipeline on this query. Called by MJQuerySQLEntityServer
|
|
59
|
+
* when a dialect variant matching the current platform is saved — this handles
|
|
60
|
+
* the timing issue where the parent Query is saved before its QuerySQL children
|
|
61
|
+
* exist in the cache.
|
|
62
|
+
*/
|
|
63
|
+
RerunExtraction(): Promise<void>;
|
|
29
64
|
/**
|
|
30
65
|
* Runs the extraction pipeline and saves the UsesTemplate flag.
|
|
31
66
|
* On error, sets UsesTemplate=false and attempts to save so the query remains usable.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MJQueryEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJQueryEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,iBAAiB,EAGjB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"MJQueryEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJQueryEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,iBAAiB,EAGjB,qBAAqB,EAExB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAoB,qBAAqB,EAAmC,MAAM,+BAA+B,CAAC;AAazH;;;;GAIG;AACH,qBACa,mBAAoB,SAAQ,qBAAqB;IAC1D;;;yEAGqE;IAC9D,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAI5C;;OAEG;cACsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAI5F;;;OAGG;cACa,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB5C,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAwCnD,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBpE;;;OAGG;IACH,OAAO,KAAK,eAAe,GAE1B;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;;;;;;;OAQG;IACH,OAAO,CAAC,4BAA4B;IAgBpC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;;;;OAKG;IACU,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7C;;;OAGG;YACW,uBAAuB;IAsBrC;;OAEG;YACW,sBAAsB;IAmBpC;;;OAGG;YACW,wBAAwB;IAiCtC;;OAEG;YACW,sBAAsB;IA4BpC;;OAEG;YACW,oBAAoB;IA4BlC;;OAEG;YACW,6BAA6B;CAgB9C"}
|
|
@@ -9,6 +9,9 @@ import { MJQueryEntityExtended, QueryEngine } from "@memberjunction/core-entitie
|
|
|
9
9
|
import { RegisterClass, MJGlobal, UUIDsEqual } from "@memberjunction/global";
|
|
10
10
|
import { EmbedTextLocalHelper } from "./util.js";
|
|
11
11
|
import { RunExtractionPipeline, CleanupQueryData, ConvertTSQLToPostgreSQL, } from "./query-extraction/index.js";
|
|
12
|
+
import { SQLParser } from "@memberjunction/sql-parser";
|
|
13
|
+
import { GetDialect } from "@memberjunction/sql-dialect";
|
|
14
|
+
import { resolveDbPlatformFromEnv } from "@memberjunction/generic-database-provider";
|
|
12
15
|
/**
|
|
13
16
|
* Server-side query entity with embedding generation, SQL extraction pipeline,
|
|
14
17
|
* and dialect auto-conversion. Extends `MJQueryEntityExtended` which provides
|
|
@@ -98,21 +101,86 @@ let MJQueryEntityServer = class MJQueryEntityServer extends MJQueryEntityExtende
|
|
|
98
101
|
}
|
|
99
102
|
}
|
|
100
103
|
// ─── Pipeline Delegation ─────────────────────────────────────────────────────
|
|
104
|
+
/**
|
|
105
|
+
* Returns the database platform of the connected database.
|
|
106
|
+
* Uses the DB_PLATFORM env var (same source as MJServer's provider selection).
|
|
107
|
+
*/
|
|
108
|
+
get CurrentPlatform() {
|
|
109
|
+
return resolveDbPlatformFromEnv() ?? 'sqlserver';
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Resolves the SQL to use for extraction based on the current database platform.
|
|
113
|
+
*
|
|
114
|
+
* Resolution order:
|
|
115
|
+
* 1. MJ: Query SQLs record matching the current platform's dialect → use that SQL
|
|
116
|
+
* 2. Base Query.SQL field → fall back if no dialect variant exists
|
|
117
|
+
*
|
|
118
|
+
* After resolution, validates the SQL is compatible with the current platform's
|
|
119
|
+
* dialect by attempting a parse. Logs a warning if the SQL appears to be for a
|
|
120
|
+
* different dialect (e.g., T-SQL bracket identifiers on a PostgreSQL database).
|
|
121
|
+
*/
|
|
122
|
+
resolveExtractionSQL() {
|
|
123
|
+
const platform = this.CurrentPlatform;
|
|
124
|
+
// 1. Check for a dialect-specific QuerySQL record
|
|
125
|
+
const platformSQL = this.GetPlatformSQL(platform);
|
|
126
|
+
// If GetPlatformSQL returned something different from the base SQL, use it
|
|
127
|
+
const resolvedSQL = platformSQL || this.SQL;
|
|
128
|
+
if (!resolvedSQL || resolvedSQL.trim().length === 0) {
|
|
129
|
+
return '';
|
|
130
|
+
}
|
|
131
|
+
// Validate dialect compatibility
|
|
132
|
+
this.validateDialectCompatibility(resolvedSQL, platform);
|
|
133
|
+
return resolvedSQL;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Best-effort dialect validation: attempts to parse the SQL with the current platform's
|
|
137
|
+
* dialect. If parsing throws, logs a warning — the SQL may be for a different dialect.
|
|
138
|
+
*
|
|
139
|
+
* This is a heuristic, not a guarantee: node-sql-parser is permissive on many
|
|
140
|
+
* dialect-specific functions (ISNULL, GETDATE pass in both dialects), so a passing
|
|
141
|
+
* parse does not prove the SQL is correct for this dialect. But a failing parse is a
|
|
142
|
+
* strong signal of incompatibility.
|
|
143
|
+
*/
|
|
144
|
+
validateDialectCompatibility(sql, platform) {
|
|
145
|
+
try {
|
|
146
|
+
const dialect = GetDialect(platform);
|
|
147
|
+
// Attempt to parse — will throw on strong dialect markers
|
|
148
|
+
// (e.g., [bracket] identifiers fail on PG, :: casts fail on T-SQL)
|
|
149
|
+
SQLParser.ExtractSelectColumns(sql, dialect);
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
const otherDialect = platform === 'postgresql' ? 'T-SQL (SQL Server)' : 'PostgreSQL';
|
|
153
|
+
console.warn(`[MJQueryEntityServer] Query "${this.Name}" — SQL may be incompatible with the ` +
|
|
154
|
+
`current database platform "${platform}". The SQL appears to use ${otherDialect} syntax. ` +
|
|
155
|
+
`Consider adding a dialect-specific variant via MJ: Query SQLs.`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
101
158
|
/**
|
|
102
159
|
* Builds the QuerySyncContext from this entity instance for use by the extraction pipeline.
|
|
160
|
+
* Resolves the SQL to the appropriate dialect variant for the connected database.
|
|
103
161
|
*/
|
|
104
162
|
buildSyncContext() {
|
|
105
163
|
return {
|
|
106
164
|
queryID: this.ID,
|
|
107
165
|
queryName: this.Name,
|
|
108
|
-
sql: this.
|
|
166
|
+
sql: this.resolveExtractionSQL(),
|
|
109
167
|
isSaved: this.IsSaved,
|
|
110
168
|
contextUser: this.ContextCurrentUser,
|
|
111
169
|
metadataProvider: this.ProviderToUse,
|
|
112
170
|
runViewProvider: this.RunViewProviderToUse,
|
|
171
|
+
platform: this.CurrentPlatform,
|
|
113
172
|
parameterHints: this.ParameterHints,
|
|
114
173
|
};
|
|
115
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Re-runs the extraction pipeline on this query. Called by MJQuerySQLEntityServer
|
|
177
|
+
* when a dialect variant matching the current platform is saved — this handles
|
|
178
|
+
* the timing issue where the parent Query is saved before its QuerySQL children
|
|
179
|
+
* exist in the cache.
|
|
180
|
+
*/
|
|
181
|
+
async RerunExtraction() {
|
|
182
|
+
await this.extractAndSyncDataAsync();
|
|
183
|
+
}
|
|
116
184
|
/**
|
|
117
185
|
* Runs the extraction pipeline and saves the UsesTemplate flag.
|
|
118
186
|
* On error, sets UsesTemplate=false and attempts to save so the query remains usable.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MJQueryEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJQueryEntityServer.server.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EACH,UAAU,EAGV,QAAQ,
|
|
1
|
+
{"version":3,"file":"MJQueryEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJQueryEntityServer.server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { EntitySaveOptions } from '@memberjunction/core';
|
|
2
|
+
import { MJQuerySQLEntity } from '@memberjunction/core-entities';
|
|
3
|
+
/**
|
|
4
|
+
* Server-side subclass for MJ: Query SQLs.
|
|
5
|
+
*
|
|
6
|
+
* After a QuerySQL record is saved, if its dialect matches the current database
|
|
7
|
+
* platform, triggers re-extraction on the parent Query. This handles the timing
|
|
8
|
+
* issue where metadata sync creates the parent Query first (extraction runs but
|
|
9
|
+
* the dialect variant doesn't exist yet), then creates QuerySQL child records.
|
|
10
|
+
*
|
|
11
|
+
* The QueryEngine cache uses BaseEngine's `CacheLocal: true`, so by the time
|
|
12
|
+
* Save() returns the `_querySQLs` array already contains the new record —
|
|
13
|
+
* no force refresh needed.
|
|
14
|
+
*/
|
|
15
|
+
export declare class MJQuerySQLEntityServer extends MJQuerySQLEntity {
|
|
16
|
+
Save(options?: EntitySaveOptions): Promise<boolean>;
|
|
17
|
+
/**
|
|
18
|
+
* Ensures QueryEngine is loaded. In CLI/sync contexts, Config() may not
|
|
19
|
+
* have been called yet. This is a no-op if already loaded (BaseEngine
|
|
20
|
+
* skips reloading when data is already cached and forceRefresh is false).
|
|
21
|
+
*/
|
|
22
|
+
private ensureQueryEngineLoaded;
|
|
23
|
+
private triggerParentExtractionIfDialectMatches;
|
|
24
|
+
/**
|
|
25
|
+
* Checks whether this QuerySQL record's SQLDialectID corresponds to the
|
|
26
|
+
* given database platform by looking up the dialect's PlatformKey in
|
|
27
|
+
* QueryEngine's cached SQLDialects.
|
|
28
|
+
*/
|
|
29
|
+
private isDialectForPlatform;
|
|
30
|
+
private loadParentQuery;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=MJQuerySQLEntityServer.server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJQuerySQLEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJQuerySQLEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,iBAAiB,EAGpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAe,MAAM,+BAA+B,CAAC;AAK9E;;;;;;;;;;;GAWG;AACH,qBACa,sBAAuB,SAAQ,gBAAgB;IACzC,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBlE;;;;OAIG;YACW,uBAAuB;YAMvB,uCAAuC;IAwBrD;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,eAAe;CAU1B"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { BaseEntity, LogError, LogStatus, } from '@memberjunction/core';
|
|
8
|
+
import { MJQuerySQLEntity, QueryEngine } from '@memberjunction/core-entities';
|
|
9
|
+
import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
|
|
10
|
+
import { resolveDbPlatformFromEnv } from '@memberjunction/generic-database-provider';
|
|
11
|
+
/**
|
|
12
|
+
* Server-side subclass for MJ: Query SQLs.
|
|
13
|
+
*
|
|
14
|
+
* After a QuerySQL record is saved, if its dialect matches the current database
|
|
15
|
+
* platform, triggers re-extraction on the parent Query. This handles the timing
|
|
16
|
+
* issue where metadata sync creates the parent Query first (extraction runs but
|
|
17
|
+
* the dialect variant doesn't exist yet), then creates QuerySQL child records.
|
|
18
|
+
*
|
|
19
|
+
* The QueryEngine cache uses BaseEngine's `CacheLocal: true`, so by the time
|
|
20
|
+
* Save() returns the `_querySQLs` array already contains the new record —
|
|
21
|
+
* no force refresh needed.
|
|
22
|
+
*/
|
|
23
|
+
let MJQuerySQLEntityServer = class MJQuerySQLEntityServer extends MJQuerySQLEntity {
|
|
24
|
+
async Save(options) {
|
|
25
|
+
const saveResult = await super.Save(options);
|
|
26
|
+
if (!saveResult) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
// Only trigger re-extraction if this dialect variant matches the
|
|
30
|
+
// current environment's database platform. A SQL Server environment
|
|
31
|
+
// receiving a PostgreSQL variant (or vice versa) should not re-extract.
|
|
32
|
+
try {
|
|
33
|
+
await this.triggerParentExtractionIfDialectMatches();
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
// Non-fatal — the QuerySQL record saved successfully, extraction
|
|
37
|
+
// is a side effect that can be retried by re-saving the record.
|
|
38
|
+
LogError(`[MJQuerySQLEntityServer] Post-save extraction failed for QuerySQL ${this.ID}:`, e);
|
|
39
|
+
}
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Ensures QueryEngine is loaded. In CLI/sync contexts, Config() may not
|
|
44
|
+
* have been called yet. This is a no-op if already loaded (BaseEngine
|
|
45
|
+
* skips reloading when data is already cached and forceRefresh is false).
|
|
46
|
+
*/
|
|
47
|
+
async ensureQueryEngineLoaded() {
|
|
48
|
+
if (QueryEngine.Instance.Queries.length === 0) {
|
|
49
|
+
await QueryEngine.Instance.Config(false, this.ContextCurrentUser);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async triggerParentExtractionIfDialectMatches() {
|
|
53
|
+
const currentPlatform = resolveDbPlatformFromEnv() ?? 'sqlserver';
|
|
54
|
+
await this.ensureQueryEngineLoaded();
|
|
55
|
+
if (!this.isDialectForPlatform(currentPlatform)) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const parentQuery = this.loadParentQuery();
|
|
59
|
+
if (!parentQuery) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
// The parent query has SQL to extract — re-run the pipeline. The
|
|
63
|
+
// QueryEngine cache already has our QuerySQL record (CacheLocal event
|
|
64
|
+
// fires synchronously in super.Save()), so resolveExtractionSQL()
|
|
65
|
+
// will find the dialect variant via GetPlatformSQL().
|
|
66
|
+
if (parentQuery.SQL && parentQuery.SQL.trim().length > 0) {
|
|
67
|
+
LogStatus(`[MJQuerySQLEntityServer] Triggering re-extraction on "${parentQuery.Name}" — dialect variant saved for ${currentPlatform}`);
|
|
68
|
+
await parentQuery.RerunExtraction();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Checks whether this QuerySQL record's SQLDialectID corresponds to the
|
|
73
|
+
* given database platform by looking up the dialect's PlatformKey in
|
|
74
|
+
* QueryEngine's cached SQLDialects.
|
|
75
|
+
*/
|
|
76
|
+
isDialectForPlatform(platform) {
|
|
77
|
+
const dialect = QueryEngine.Instance.SQLDialects.find(d => UUIDsEqual(d.ID, this.SQLDialectID));
|
|
78
|
+
return dialect?.PlatformKey === platform;
|
|
79
|
+
}
|
|
80
|
+
loadParentQuery() {
|
|
81
|
+
const query = QueryEngine.Instance.Queries.find(q => UUIDsEqual(q.ID, this.QueryID));
|
|
82
|
+
if (!query) {
|
|
83
|
+
LogError(`[MJQuerySQLEntityServer] Parent query ${this.QueryID} not found in QueryEngine cache`);
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
return query;
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
MJQuerySQLEntityServer = __decorate([
|
|
90
|
+
RegisterClass(BaseEntity, 'MJ: Query SQLs')
|
|
91
|
+
], MJQuerySQLEntityServer);
|
|
92
|
+
export { MJQuerySQLEntityServer };
|
|
93
|
+
//# sourceMappingURL=MJQuerySQLEntityServer.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJQuerySQLEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJQuerySQLEntityServer.server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DatabasePlatform } from "@memberjunction/core";
|
|
2
2
|
import type { ParseResult } from "./types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Runs all SQLParser extraction calls in a single pass and returns a unified ParseResult.
|
|
5
5
|
* Downstream pipeline stages consume this result instead of calling the parser individually.
|
|
6
6
|
*
|
|
7
7
|
* @param sql - The query SQL to parse
|
|
8
|
-
* @param
|
|
8
|
+
* @param platform - The database platform to use for dialect selection (defaults to 'sqlserver')
|
|
9
9
|
*/
|
|
10
|
-
export declare function parseQuerySQL(sql: string,
|
|
10
|
+
export declare function parseQuerySQL(sql: string, platform?: DatabasePlatform): ParseResult;
|
|
11
11
|
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/parse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/parse.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,gBAA8B,GAAG,WAAW,CAQhG"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { SQLParser } from "@memberjunction/sql-parser";
|
|
2
|
-
import {
|
|
3
|
-
/** Default dialect for the extraction pipeline (primary SQL is T-SQL) */
|
|
4
|
-
const defaultDialect = new SQLServerDialect();
|
|
2
|
+
import { GetDialect } from "@memberjunction/sql-dialect";
|
|
5
3
|
/**
|
|
6
4
|
* Runs all SQLParser extraction calls in a single pass and returns a unified ParseResult.
|
|
7
5
|
* Downstream pipeline stages consume this result instead of calling the parser individually.
|
|
8
6
|
*
|
|
9
7
|
* @param sql - The query SQL to parse
|
|
10
|
-
* @param
|
|
8
|
+
* @param platform - The database platform to use for dialect selection (defaults to 'sqlserver')
|
|
11
9
|
*/
|
|
12
|
-
export function parseQuerySQL(sql,
|
|
10
|
+
export function parseQuerySQL(sql, platform = 'sqlserver') {
|
|
11
|
+
const dialect = GetDialect(platform);
|
|
13
12
|
const analysis = SQLParser.Analyze(sql);
|
|
14
13
|
const deterministicParams = SQLParser.ExtractParameterInfo(sql);
|
|
15
14
|
const tableRefs = SQLParser.ExtractTableRefs(sql, dialect);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAIzD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,WAA6B,WAAW;IAC/E,MAAM,OAAO,GAAqB,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,mBAAmB,GAAG,SAAS,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEnE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AACvE,CAAC"}
|
|
@@ -15,7 +15,7 @@ import { QueryEngine } from "@memberjunction/core-entities";
|
|
|
15
15
|
*/
|
|
16
16
|
export async function RunExtractionPipeline(ctx) {
|
|
17
17
|
// ── STAGE 1: PARSE ──
|
|
18
|
-
const parseResult = parseQuerySQL(ctx.sql);
|
|
18
|
+
const parseResult = parseQuerySQL(ctx.sql, ctx.platform);
|
|
19
19
|
// ── STAGE 2: RESOLVE ──
|
|
20
20
|
const resolveResult = resolve(ctx, parseResult);
|
|
21
21
|
// ── STAGE 3: ENRICH (best-effort, non-fatal) ──
|
|
@@ -94,7 +94,7 @@ async function sync(ctx, finalParams, finalFields, resolveResult) {
|
|
|
94
94
|
// Fields: when finalFields is null, preserve existing fields instead of deleting them.
|
|
95
95
|
// Deletion only happens when we have a positive new field list (handled inside SyncFields via diff).
|
|
96
96
|
if (finalFields) {
|
|
97
|
-
syncPromises.push(SyncFields(ctx.queryID, finalFields, ctx.contextUser, ctx.metadataProvider, ctx.runViewProvider, ctx.isSaved));
|
|
97
|
+
syncPromises.push(SyncFields(ctx.queryID, finalFields, ctx.contextUser, ctx.metadataProvider, ctx.runViewProvider, ctx.isSaved, ctx.platform));
|
|
98
98
|
}
|
|
99
99
|
// When finalFields is null, we intentionally do NOT call RemoveAllRecords — existing fields are preserved.
|
|
100
100
|
// Entities
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/pipeline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EACH,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,4BAA4B,EAC5B,gCAAgC,EAChC,kCAAkC,GACrC,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAU5D;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAqB;IAC7D,uBAAuB;IACvB,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IMetadataProvider, IRunViewProvider, UserInfo } from "@memberjunction/core";
|
|
1
|
+
import { IMetadataProvider, IRunViewProvider, UserInfo, DatabasePlatform } from "@memberjunction/core";
|
|
2
2
|
import type { ExtractedField, ExtractedParameter, EntityMetadataEntry, ResolvedCompositionReference } from "./types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Synchronizes extracted query parameters with the database.
|
|
@@ -11,7 +11,7 @@ export declare function SyncParameters(queryID: string, extractedParams: Extract
|
|
|
11
11
|
* Expands wildcards, maps ExtractedField to MJQueryFieldEntity with sqlBaseType/sqlFullType override,
|
|
12
12
|
* handles add/update/remove.
|
|
13
13
|
*/
|
|
14
|
-
export declare function SyncFields(queryID: string, extractedFields: ExtractedField[], contextUser: UserInfo, metadataProvider: IMetadataProvider, runViewProvider: IRunViewProvider, isSaved: boolean): Promise<void>;
|
|
14
|
+
export declare function SyncFields(queryID: string, extractedFields: ExtractedField[], contextUser: UserInfo, metadataProvider: IMetadataProvider, runViewProvider: IRunViewProvider, isSaved: boolean, platform?: DatabasePlatform): Promise<void>;
|
|
15
15
|
/**
|
|
16
16
|
* Synchronizes extracted entity metadata entries with QueryEntity records in the database.
|
|
17
17
|
* Matches by entity ID, handles add/remove.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAA4B,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAA4B,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AASjI,OAAO,KAAK,EACR,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,4BAA4B,EAC/B,MAAM,SAAS,CAAC;AAiFjB;;;;GAIG;AACH,wBAAsB,cAAc,CAChC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,kBAAkB,EAAE,EACrC,WAAW,EAAE,QAAQ,EACrB,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC,CAoDf;AAuED;;;;GAIG;AACH,wBAAsB,UAAU,CAC5B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,cAAc,EAAE,EACjC,WAAW,EAAE,QAAQ,EACrB,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,gBAA8B,GACzC,OAAO,CAAC,IAAI,CAAC,CAqDf;AAgID;;;GAGG;AACH,wBAAsB,YAAY,CAC9B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,mBAAmB,EAAE,EACrC,WAAW,EAAE,QAAQ,EACrB,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC,CAiDf;AAMD;;;GAGG;AACH,wBAAsB,gBAAgB,CAClC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,4BAA4B,EAAE,EAC5C,WAAW,EAAE,QAAQ,EACrB,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC,CA2Ef;AA8BD;;;GAGG;AACH,wBAAsB,gBAAgB,CAClC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,QAAQ,EACrB,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,EAChB,gBAAgB,CAAC,EAAE,iBAAiB,GACrC,OAAO,CAAC,IAAI,CAAC,CAsBf"}
|
|
@@ -36,9 +36,22 @@ function normalizeParamType(rawType) {
|
|
|
36
36
|
return { type: 'string', isObject: false, isUnknown: true };
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
|
-
* Maps a generic field type to a SQL base/full type pair.
|
|
39
|
+
* Maps a generic field type to a SQL base/full type pair appropriate for the given platform.
|
|
40
40
|
*/
|
|
41
|
-
function defaultSQLTypesForField(fieldType) {
|
|
41
|
+
function defaultSQLTypesForField(fieldType, platform = 'sqlserver') {
|
|
42
|
+
if (platform === 'postgresql') {
|
|
43
|
+
switch (fieldType) {
|
|
44
|
+
case 'number':
|
|
45
|
+
return { baseType: 'numeric', fullType: 'numeric(18,2)' };
|
|
46
|
+
case 'date':
|
|
47
|
+
return { baseType: 'timestamptz', fullType: 'timestamptz' };
|
|
48
|
+
case 'boolean':
|
|
49
|
+
return { baseType: 'boolean', fullType: 'boolean' };
|
|
50
|
+
default:
|
|
51
|
+
return { baseType: 'varchar', fullType: 'text' };
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// SQL Server defaults
|
|
42
55
|
switch (fieldType) {
|
|
43
56
|
case 'number':
|
|
44
57
|
return { baseType: 'decimal', fullType: 'decimal(18,2)' };
|
|
@@ -153,7 +166,7 @@ function updateParameterIfChanged(existing, extracted) {
|
|
|
153
166
|
* Expands wildcards, maps ExtractedField to MJQueryFieldEntity with sqlBaseType/sqlFullType override,
|
|
154
167
|
* handles add/update/remove.
|
|
155
168
|
*/
|
|
156
|
-
export async function SyncFields(queryID, extractedFields, contextUser, metadataProvider, runViewProvider, isSaved) {
|
|
169
|
+
export async function SyncFields(queryID, extractedFields, contextUser, metadataProvider, runViewProvider, isSaved, platform = 'sqlserver') {
|
|
157
170
|
try {
|
|
158
171
|
const existingFields = await loadExistingRecords('MJ: Query Fields', queryID, runViewProvider, contextUser, isSaved);
|
|
159
172
|
const fieldNamesToSync = extractedFields.map(f => f.name.toLowerCase());
|
|
@@ -165,7 +178,7 @@ export async function SyncFields(queryID, extractedFields, contextUser, metadata
|
|
|
165
178
|
for (let i = 0; i < fieldsToAdd.length; i++) {
|
|
166
179
|
const field = fieldsToAdd[i];
|
|
167
180
|
const newField = await metadataProvider.GetEntityObject('MJ: Query Fields', contextUser);
|
|
168
|
-
applyFieldValues(newField, queryID, field, i + 1, metadataProvider);
|
|
181
|
+
applyFieldValues(newField, queryID, field, i + 1, metadataProvider, platform);
|
|
169
182
|
factories.push(() => newField.Save());
|
|
170
183
|
}
|
|
171
184
|
// Update existing fields if properties changed
|
|
@@ -192,7 +205,7 @@ export async function SyncFields(queryID, extractedFields, contextUser, metadata
|
|
|
192
205
|
/**
|
|
193
206
|
* Applies extracted field values to a new MJQueryFieldEntity.
|
|
194
207
|
*/
|
|
195
|
-
function applyFieldValues(entity, queryID, field, sequence, md) {
|
|
208
|
+
function applyFieldValues(entity, queryID, field, sequence, md, platform = 'sqlserver') {
|
|
196
209
|
entity.QueryID = queryID;
|
|
197
210
|
entity.Name = field.name;
|
|
198
211
|
entity.Description = field.description;
|
|
@@ -203,7 +216,7 @@ function applyFieldValues(entity, queryID, field, sequence, md) {
|
|
|
203
216
|
entity.SQLFullType = field.sqlFullType;
|
|
204
217
|
}
|
|
205
218
|
else {
|
|
206
|
-
const { baseType, fullType } = defaultSQLTypesForField(field.type);
|
|
219
|
+
const { baseType, fullType } = defaultSQLTypesForField(field.type, platform);
|
|
207
220
|
entity.SQLBaseType = baseType;
|
|
208
221
|
entity.SQLFullType = fullType;
|
|
209
222
|
}
|
|
@@ -227,6 +240,13 @@ function applyFieldValues(entity, queryID, field, sequence, md) {
|
|
|
227
240
|
*/
|
|
228
241
|
function updateFieldIfChanged(existing, extracted, sequence, md) {
|
|
229
242
|
let hasChanges = false;
|
|
243
|
+
// Update name if casing changed (e.g. PascalCase → lowercase for PG).
|
|
244
|
+
// QueryField names must match the SQL output exactly because result row
|
|
245
|
+
// property access is case-sensitive — row["JoinYear"] vs row["joinyear"].
|
|
246
|
+
if (existing.Name !== extracted.name) {
|
|
247
|
+
existing.Name = extracted.name;
|
|
248
|
+
hasChanges = true;
|
|
249
|
+
}
|
|
230
250
|
if (existing.Description !== extracted.description) {
|
|
231
251
|
existing.Description = extracted.description;
|
|
232
252
|
hasChanges = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/custom/query-extraction/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IMetadataProvider, IRunViewProvider, UserInfo } from "@memberjunction/core";
|
|
1
|
+
import type { IMetadataProvider, IRunViewProvider, UserInfo, DatabasePlatform } from "@memberjunction/core";
|
|
2
2
|
import type { MJQueryEntityExtended } from "@memberjunction/core-entities";
|
|
3
3
|
import type { MJParameterInfo, MJParseResult, SQLSelectColumn, SQLTableReference } from "@memberjunction/sql-parser";
|
|
4
4
|
/**
|
|
@@ -106,11 +106,15 @@ export interface ResolveResult {
|
|
|
106
106
|
export interface QuerySyncContext {
|
|
107
107
|
queryID: string;
|
|
108
108
|
queryName: string;
|
|
109
|
+
/** The SQL to extract from — resolved for the current platform (from QuerySQLs or base SQL). */
|
|
109
110
|
sql: string;
|
|
110
111
|
isSaved: boolean;
|
|
111
112
|
contextUser: UserInfo;
|
|
112
113
|
metadataProvider: IMetadataProvider;
|
|
113
114
|
runViewProvider: IRunViewProvider;
|
|
115
|
+
/** The database platform of the connected database. Determines which SQL dialect
|
|
116
|
+
* is used for parsing and which SQL types are used for field extraction. */
|
|
117
|
+
platform: DatabasePlatform;
|
|
114
118
|
/** Caller-provided tested parameter sample values (paramName → sampleValue).
|
|
115
119
|
* When present, these take highest priority over LLM-generated or heuristic sampleValues. */
|
|
116
120
|
parameterHints?: Map<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/custom/query-extraction/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAMrH;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpE,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kHAAkH;IAClH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,sHAAsH;IACtH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IACzC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAChD,mBAAmB,EAAE,KAAK,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;CACN;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACxE;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,mBAAmB,EAAE,eAAe,EAAE,CAAC;IACvC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,aAAa,EAAE,eAAe,EAAE,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,uBAAuB,EAAE,4BAA4B,EAAE,CAAC;IACxD,sBAAsB,EAAE,eAAe,EAAE,CAAC;IAC1C,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACzD,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC,4HAA4H;IAC5H,cAAc,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gGAAgG;IAChG,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,QAAQ,CAAC;IACtB,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,eAAe,EAAE,gBAAgB,CAAC;IAClC;iFAC6E;IAC7E,QAAQ,EAAE,gBAAgB,CAAC;IAC3B;kGAC8F;IAC9F,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export * from './custom/MJConversationDetailEntityServer.server.js';
|
|
|
5
5
|
export * from './custom/MJConversationDetailAttachmentEntityServer.server.js';
|
|
6
6
|
export * from './custom/MJDuplicateRunEntityServer.server.js';
|
|
7
7
|
export * from './custom/MJQueryEntityServer.server.js';
|
|
8
|
+
export * from './custom/MJQuerySQLEntityServer.server.js';
|
|
8
9
|
export * from './custom/MJTemplateContentEntityServer.server.js';
|
|
9
10
|
export * from './custom/MJUserViewEntityServer.server.js';
|
|
10
11
|
export * from './custom/MJActionEntityServer.server.js';
|
|
@@ -29,6 +30,7 @@ export * from './custom/MJAIAgentSessionBridgeParticipantEntityServer.server.js'
|
|
|
29
30
|
export * from './custom/MJAIRemoteBrowserProviderEntityServer.server.js';
|
|
30
31
|
export * from './custom/MJAISkillPermissionEntityServer.server.js';
|
|
31
32
|
export * from './custom/MJAISkillEntityServer.server.js';
|
|
33
|
+
export * from './custom/MJMLTrainingPipelineEntityServer.server.js';
|
|
32
34
|
export * from './custom/MJUserRoutineEntityServer.server.js';
|
|
33
35
|
export * from './custom/MJUserRoutineRecipientEntityServer.server.js';
|
|
34
36
|
export * from './custom/json-schema-lite.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kDAAkD,CAAC;AACjE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,uDAAuD,CAAC;AACtE,cAAc,oDAAoD,CAAC;AACnE,cAAc,+DAA+D,CAAC;AAC9E,cAAc,uDAAuD,CAAC;AACtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oDAAoD,CAAC;AACnE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAE9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AAAA,cAAc,+CAA+C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kDAAkD,CAAC;AACjE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,uDAAuD,CAAC;AACtE,cAAc,oDAAoD,CAAC;AACnE,cAAc,+DAA+D,CAAC;AAC9E,cAAc,uDAAuD,CAAC;AACtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,uCAAuC,CAAC;AACtD,cAAc,kDAAkD,CAAC;AACjE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oDAAoD,CAAC;AACnE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAE9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AAAA,cAAc,+CAA+C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export * from './custom/MJConversationDetailEntityServer.server.js';
|
|
|
5
5
|
export * from './custom/MJConversationDetailAttachmentEntityServer.server.js';
|
|
6
6
|
export * from './custom/MJDuplicateRunEntityServer.server.js';
|
|
7
7
|
export * from './custom/MJQueryEntityServer.server.js';
|
|
8
|
+
export * from './custom/MJQuerySQLEntityServer.server.js';
|
|
8
9
|
export * from './custom/MJTemplateContentEntityServer.server.js';
|
|
9
10
|
export * from './custom/MJUserViewEntityServer.server.js';
|
|
10
11
|
export * from './custom/MJActionEntityServer.server.js';
|
|
@@ -29,6 +30,7 @@ export * from './custom/MJAIAgentSessionBridgeParticipantEntityServer.server.js'
|
|
|
29
30
|
export * from './custom/MJAIRemoteBrowserProviderEntityServer.server.js';
|
|
30
31
|
export * from './custom/MJAISkillPermissionEntityServer.server.js';
|
|
31
32
|
export * from './custom/MJAISkillEntityServer.server.js';
|
|
33
|
+
export * from './custom/MJMLTrainingPipelineEntityServer.server.js';
|
|
32
34
|
export * from './custom/MJUserRoutineEntityServer.server.js';
|
|
33
35
|
export * from './custom/MJUserRoutineRecipientEntityServer.server.js';
|
|
34
36
|
export * from './custom/json-schema-lite.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kDAAkD,CAAC;AACjE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,uDAAuD,CAAC;AACtE,cAAc,oDAAoD,CAAC;AACnE,cAAc,+DAA+D,CAAC;AAC9E,cAAc,uDAAuD,CAAC;AACtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oDAAoD,CAAC;AACnE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAE9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AAAA,cAAc,+CAA+C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kDAAkD,CAAC;AACjE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,uDAAuD,CAAC;AACtE,cAAc,oDAAoD,CAAC;AACnE,cAAc,+DAA+D,CAAC;AAC9E,cAAc,uDAAuD,CAAC;AACtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,uCAAuC,CAAC;AACtD,cAAc,kDAAkD,CAAC;AACjE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,oDAAoD,CAAC;AACnE,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAE9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AAAA,cAAc,+CAA+C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/core-entities-server",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.49.0",
|
|
5
5
|
"description": "Entity subclasses for the metadata layer of MemberJunction that are only used on server side applications like MJAPI, distributed as part of each release of MemberJunction",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -21,29 +21,30 @@
|
|
|
21
21
|
"typescript": "^5.9.3"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@memberjunction/actions-base": "5.
|
|
25
|
-
"@memberjunction/ai": "5.
|
|
26
|
-
"@memberjunction/ai-core-plus": "5.
|
|
27
|
-
"@memberjunction/ai-engine-base": "5.
|
|
28
|
-
"@memberjunction/ai-prompts": "5.
|
|
29
|
-
"@memberjunction/ai-provider-bundle": "5.
|
|
30
|
-
"@memberjunction/ai-vector-dupe": "5.
|
|
31
|
-
"@memberjunction/ai-vectordb": "5.
|
|
32
|
-
"@memberjunction/ai-vectors-memory": "5.
|
|
33
|
-
"@memberjunction/aiengine": "5.
|
|
34
|
-
"@memberjunction/core": "5.
|
|
35
|
-
"@memberjunction/core-entities": "5.
|
|
36
|
-
"@memberjunction/
|
|
37
|
-
"@memberjunction/
|
|
38
|
-
"@memberjunction/
|
|
39
|
-
"@memberjunction/
|
|
40
|
-
"@memberjunction/integration-
|
|
41
|
-
"@memberjunction/
|
|
42
|
-
"@memberjunction/
|
|
43
|
-
"@memberjunction/sql-
|
|
44
|
-
"@memberjunction/sql-
|
|
45
|
-
"@memberjunction/
|
|
46
|
-
"@memberjunction/
|
|
24
|
+
"@memberjunction/actions-base": "5.49.0",
|
|
25
|
+
"@memberjunction/ai": "5.49.0",
|
|
26
|
+
"@memberjunction/ai-core-plus": "5.49.0",
|
|
27
|
+
"@memberjunction/ai-engine-base": "5.49.0",
|
|
28
|
+
"@memberjunction/ai-prompts": "5.49.0",
|
|
29
|
+
"@memberjunction/ai-provider-bundle": "5.49.0",
|
|
30
|
+
"@memberjunction/ai-vector-dupe": "5.49.0",
|
|
31
|
+
"@memberjunction/ai-vectordb": "5.49.0",
|
|
32
|
+
"@memberjunction/ai-vectors-memory": "5.49.0",
|
|
33
|
+
"@memberjunction/aiengine": "5.49.0",
|
|
34
|
+
"@memberjunction/core": "5.49.0",
|
|
35
|
+
"@memberjunction/core-entities": "5.49.0",
|
|
36
|
+
"@memberjunction/predictive-studio-core": "5.49.0",
|
|
37
|
+
"@memberjunction/doc-utils": "5.49.0",
|
|
38
|
+
"@memberjunction/generic-database-provider": "5.49.0",
|
|
39
|
+
"@memberjunction/global": "5.49.0",
|
|
40
|
+
"@memberjunction/integration-engine": "5.49.0",
|
|
41
|
+
"@memberjunction/integration-pk-classifier": "5.49.0",
|
|
42
|
+
"@memberjunction/scheduling-engine": "5.49.0",
|
|
43
|
+
"@memberjunction/sql-converter": "5.49.0",
|
|
44
|
+
"@memberjunction/sql-dialect": "5.49.0",
|
|
45
|
+
"@memberjunction/sql-parser": "5.49.0",
|
|
46
|
+
"@memberjunction/sqlserver-dataprovider": "5.49.0",
|
|
47
|
+
"@memberjunction/tag-engine": "5.49.0",
|
|
47
48
|
"nunjucks": "3.2.4",
|
|
48
49
|
"rxjs": "~7.8.1",
|
|
49
50
|
"zod": "~3.24.4"
|