@memberjunction/core-entities-server 6.2.0-edge.4 → 6.2.0-edge.6
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/MJAIAgentSessionEntityServer.server.d.ts +9 -3
- package/dist/custom/MJAIAgentSessionEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJAIAgentSessionEntityServer.server.js +21 -6
- package/dist/custom/MJAIAgentSessionEntityServer.server.js.map +1 -1
- package/dist/custom/MJComponentEntityServer.server.d.ts +9 -0
- package/dist/custom/MJComponentEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJComponentEntityServer.server.js +25 -1
- package/dist/custom/MJComponentEntityServer.server.js.map +1 -1
- package/dist/custom/MJConversationEntityServer.server.d.ts +13 -0
- package/dist/custom/MJConversationEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJConversationEntityServer.server.js +33 -0
- package/dist/custom/MJConversationEntityServer.server.js.map +1 -0
- package/dist/custom/MJDashboardEntityServer.server.d.ts +14 -0
- package/dist/custom/MJDashboardEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJDashboardEntityServer.server.js +38 -0
- package/dist/custom/MJDashboardEntityServer.server.js.map +1 -0
- package/dist/custom/MJDataContextItemEntityServer.server.d.ts +33 -0
- package/dist/custom/MJDataContextItemEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJDataContextItemEntityServer.server.js +84 -0
- package/dist/custom/MJDataContextItemEntityServer.server.js.map +1 -0
- package/dist/custom/MJDuplicateRunEntityServer.server.d.ts +34 -2
- package/dist/custom/MJDuplicateRunEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJDuplicateRunEntityServer.server.js +103 -23
- package/dist/custom/MJDuplicateRunEntityServer.server.js.map +1 -1
- package/dist/custom/MJEntityAlternateBaseViewEntityServer.server.d.ts +73 -0
- package/dist/custom/MJEntityAlternateBaseViewEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJEntityAlternateBaseViewEntityServer.server.js +391 -0
- package/dist/custom/MJEntityAlternateBaseViewEntityServer.server.js.map +1 -0
- package/dist/custom/MJEntityFieldPermissionEntityServer.server.d.ts +96 -22
- package/dist/custom/MJEntityFieldPermissionEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJEntityFieldPermissionEntityServer.server.js +239 -55
- package/dist/custom/MJEntityFieldPermissionEntityServer.server.js.map +1 -1
- package/dist/custom/MJFileEntityServer.server.d.ts +45 -0
- package/dist/custom/MJFileEntityServer.server.d.ts.map +1 -0
- package/dist/custom/MJFileEntityServer.server.js +101 -0
- package/dist/custom/MJFileEntityServer.server.js.map +1 -0
- package/dist/custom/MJQueryEntityServer.server.d.ts +13 -1
- package/dist/custom/MJQueryEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJQueryEntityServer.server.js +56 -8
- package/dist/custom/MJQueryEntityServer.server.js.map +1 -1
- package/dist/custom/MJQuerySQLEntityServer.server.js +3 -3
- package/dist/custom/MJQuerySQLEntityServer.server.js.map +1 -1
- package/dist/custom/MJRowLevelSecurityFilterEntityServer.server.d.ts +26 -14
- package/dist/custom/MJRowLevelSecurityFilterEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJRowLevelSecurityFilterEntityServer.server.js +57 -32
- package/dist/custom/MJRowLevelSecurityFilterEntityServer.server.js.map +1 -1
- package/dist/custom/MJUserRoleEntityServer.server.d.ts +74 -7
- package/dist/custom/MJUserRoleEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJUserRoleEntityServer.server.js +206 -20
- package/dist/custom/MJUserRoleEntityServer.server.js.map +1 -1
- package/dist/custom/MJUserRoutineEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJUserRoutineEntityServer.server.js +12 -3
- package/dist/custom/MJUserRoutineEntityServer.server.js.map +1 -1
- package/dist/custom/MJUserViewEntityServer.server.d.ts +43 -1
- package/dist/custom/MJUserViewEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJUserViewEntityServer.server.js +169 -11
- package/dist/custom/MJUserViewEntityServer.server.js.map +1 -1
- package/dist/custom/MJVectorIndexEntityServer.server.d.ts +83 -11
- package/dist/custom/MJVectorIndexEntityServer.server.d.ts.map +1 -1
- package/dist/custom/MJVectorIndexEntityServer.server.js +285 -42
- package/dist/custom/MJVectorIndexEntityServer.server.js.map +1 -1
- package/dist/custom/anonymousOwnershipKeyGuard.d.ts +42 -0
- package/dist/custom/anonymousOwnershipKeyGuard.d.ts.map +1 -0
- package/dist/custom/anonymousOwnershipKeyGuard.js +36 -0
- package/dist/custom/anonymousOwnershipKeyGuard.js.map +1 -0
- package/dist/custom/approvalStamp.d.ts +37 -0
- package/dist/custom/approvalStamp.d.ts.map +1 -0
- package/dist/custom/approvalStamp.js +67 -0
- package/dist/custom/approvalStamp.js.map +1 -0
- package/dist/custom/fieldPermissionAccess.d.ts +31 -0
- package/dist/custom/fieldPermissionAccess.d.ts.map +1 -0
- package/dist/custom/fieldPermissionAccess.js +38 -0
- package/dist/custom/fieldPermissionAccess.js.map +1 -0
- package/dist/custom/fieldPermissionReconciler.d.ts.map +1 -1
- package/dist/custom/fieldPermissionReconciler.js +12 -2
- package/dist/custom/fieldPermissionReconciler.js.map +1 -1
- package/dist/custom/query-extraction/pipeline.d.ts.map +1 -1
- package/dist/custom/query-extraction/pipeline.js +56 -5
- package/dist/custom/query-extraction/pipeline.js.map +1 -1
- package/dist/custom/query-extraction/resolve.d.ts.map +1 -1
- package/dist/custom/query-extraction/resolve.js +25 -7
- package/dist/custom/query-extraction/resolve.js.map +1 -1
- package/dist/custom/query-extraction/sync.d.ts +1 -1
- package/dist/custom/query-extraction/sync.d.ts.map +1 -1
- package/dist/custom/query-extraction/sync.js +84 -21
- package/dist/custom/query-extraction/sync.js.map +1 -1
- package/dist/custom/query-extraction/types.d.ts +7 -0
- package/dist/custom/query-extraction/types.d.ts.map +1 -1
- package/dist/custom/rowFilterValidation.d.ts +47 -2
- package/dist/custom/rowFilterValidation.d.ts.map +1 -1
- package/dist/custom/rowFilterValidation.js +122 -11
- package/dist/custom/rowFilterValidation.js.map +1 -1
- package/dist/custom/systemUserGuardState.d.ts +73 -0
- package/dist/custom/systemUserGuardState.d.ts.map +1 -0
- package/dist/custom/systemUserGuardState.js +161 -0
- package/dist/custom/systemUserGuardState.js.map +1 -0
- package/dist/custom/template-extraction/parser.js +5 -2
- package/dist/custom/template-extraction/parser.js.map +1 -1
- package/dist/custom/template-extraction/pipeline.d.ts +6 -1
- package/dist/custom/template-extraction/pipeline.d.ts.map +1 -1
- package/dist/custom/template-extraction/pipeline.js +15 -6
- package/dist/custom/template-extraction/pipeline.js.map +1 -1
- package/dist/custom/template-extraction/types.d.ts +2 -2
- package/dist/custom/template-extraction/types.d.ts.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/package.json +30 -30
|
@@ -4,25 +4,159 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
+
var MJUserViewEntityServer_1;
|
|
7
8
|
import { RegisterClass, CleanAndParseJSON } from "@memberjunction/global";
|
|
8
|
-
import { BaseEntity, LogError, ValidationErrorInfo, ValidationErrorType } from "@memberjunction/core";
|
|
9
|
-
import { MJUserViewEntityExtended } from '@memberjunction/core-entities';
|
|
9
|
+
import { BaseEntity, ExtractAlternateBaseViewFromDisplayState, LogError, ValidationErrorInfo, ValidationErrorType } from "@memberjunction/core";
|
|
10
|
+
import { ComputeUserViewFingerprintAsync, MJUserViewEntityExtended } from '@memberjunction/core-entities';
|
|
10
11
|
import { AIPromptParams } from "@memberjunction/ai-core-plus";
|
|
11
12
|
import { AIEngine } from "@memberjunction/aiengine";
|
|
12
13
|
import { AIPromptRunner } from "@memberjunction/ai-prompts";
|
|
13
|
-
|
|
14
|
+
import { ApplyApprovalRulesAsync, ApprovalRefusalResult } from "./approvalStamp.js";
|
|
15
|
+
import { IsClientClauseScreeningProvider } from "@memberjunction/generic-database-provider";
|
|
16
|
+
let MJUserViewEntityServer = MJUserViewEntityServer_1 = class MJUserViewEntityServer extends MJUserViewEntityExtended {
|
|
14
17
|
/**
|
|
15
18
|
* This property is hard-coded to true in this class because we DO support smart filters in this class. If you want to disable smart filters for a specific view you can override this property in your subclass and set it to false.
|
|
16
19
|
*/
|
|
17
20
|
get SmartFilterImplemented() {
|
|
18
21
|
return true;
|
|
19
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Applies the approval rules (see `ApplyApprovalRulesAsync`). The base save regenerates the
|
|
25
|
+
* WhereClause before it writes, so an approving save stamps the fingerprint after the write,
|
|
26
|
+
* from the definition as stored, with one more write.
|
|
27
|
+
*/
|
|
28
|
+
async Save(options) {
|
|
29
|
+
let approving;
|
|
30
|
+
try {
|
|
31
|
+
approving = !options?.ReplayOnly && await ApplyApprovalRulesAsync(this, 'ApprovalStatus', this.ApprovalStatus);
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
this.RegisterResultHistoryEntry(ApprovalRefusalResult(this, e));
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if (!await super.Save(options)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
if (approving) {
|
|
41
|
+
try {
|
|
42
|
+
this.ApprovedFingerprint = await ComputeUserViewFingerprintAsync(this);
|
|
43
|
+
if (!await super.Save(options)) {
|
|
44
|
+
LogError(`[MJUserViewEntityServer] View "${this.Name}" was approved but its fingerprint was not saved: ${this.LatestResult?.CompleteMessage}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
LogError(`[MJUserViewEntityServer] View "${this.Name}" was approved but its fingerprint could not be computed: ${e instanceof Error ? e.message : String(e)}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
20
53
|
Validate() {
|
|
21
54
|
const result = super.Validate();
|
|
22
55
|
this.validateCustomWhereClauseAuthorization(result);
|
|
56
|
+
this.validatePinnedAlternateBaseView(result);
|
|
57
|
+
this.validateStoredClauses(result);
|
|
23
58
|
result.Success = result.Success && result.Errors.length === 0;
|
|
24
59
|
return result;
|
|
25
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Validates that a pinned `DisplayState.alternateBaseView` (if newly set or changed)
|
|
63
|
+
* corresponds to a registered, usable alternate base view on the view's target entity.
|
|
64
|
+
* Existing saved views whose pinned alternate base view did not change are allowed to save
|
|
65
|
+
* other edits (e.g. renaming or clearing the pin after an admin disabled the alternate view).
|
|
66
|
+
*/
|
|
67
|
+
validatePinnedAlternateBaseView(result) {
|
|
68
|
+
const pinnedName = this.AlternateBaseView;
|
|
69
|
+
if (!pinnedName || !this.ViewEntityInfo) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const smartPromptModified = Boolean(this.SmartFilterEnabled &&
|
|
73
|
+
(this.GetFieldByName('SmartFilterPrompt')?.Dirty === true ||
|
|
74
|
+
this.GetFieldByName('SmartFilterEnabled')?.Dirty === true));
|
|
75
|
+
if (this.IsSaved && !this.hasAlternateBaseViewChanged() && !smartPromptModified) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const abv = this.ViewEntityInfo.GetAlternateBaseView(pinnedName);
|
|
79
|
+
if (!abv) {
|
|
80
|
+
result.Errors.push(new ValidationErrorInfo('DisplayState', `Alternate Base View '${pinnedName}' is not registered on entity '${this.ViewEntityInfo.Name}'.`, pinnedName, ValidationErrorType.Failure));
|
|
81
|
+
}
|
|
82
|
+
else if (!abv.IsUsable) {
|
|
83
|
+
result.Errors.push(new ValidationErrorInfo('DisplayState', `Alternate Base View '${pinnedName}' on entity '${this.ViewEntityInfo.Name}' has status '${abv.Status}' and cannot be used.`, pinnedName, ValidationErrorType.Failure));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
hasAlternateBaseViewChanged() {
|
|
87
|
+
const displayStateField = this.GetFieldByName('DisplayState');
|
|
88
|
+
if (!displayStateField?.Dirty) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
const oldPinned = ExtractAlternateBaseViewFromDisplayState(typeof displayStateField.OldValue === 'string' ? displayStateField.OldValue : null);
|
|
92
|
+
return (oldPinned ?? null) !== (this.AlternateBaseView ?? null);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* SECURITY: screens the SQL this view stores with the clause screen the RunView API applies to
|
|
96
|
+
* client filters — its WhereClause (set directly, compiled from FilterState, or made by a Smart
|
|
97
|
+
* Filter) and the ORDER BY built from SortState / GridState. Any user who can save a view can
|
|
98
|
+
* write these, and the provider splices them into view SQL. A CustomWhereClause is left to the
|
|
99
|
+
* Owner gate above. Only a new view or a changed clause is screened here; the provider screens
|
|
100
|
+
* every stored clause again when the view runs. Both use the provider's own screen, so a clause
|
|
101
|
+
* is judged the same way at save and at run.
|
|
102
|
+
*/
|
|
103
|
+
validateStoredClauses(result) {
|
|
104
|
+
const changed = (...fields) => !this.IsSaved || fields.some(f => this.GetFieldByName(f)?.Dirty === true);
|
|
105
|
+
if (!this.CustomWhereClause && changed('WhereClause', 'CustomWhereClause')) {
|
|
106
|
+
const where = MJUserViewEntityServer_1.neutralizeViewTemplates(this.WhereClause ?? '');
|
|
107
|
+
this.screenStoredClause(result, 'WhereClause', where, 'view WhereClause');
|
|
108
|
+
}
|
|
109
|
+
const orderBy = changed('SortState', 'GridState') ? this.storedOrderBy() : null;
|
|
110
|
+
if (orderBy) {
|
|
111
|
+
// The provider transforms a stored sort for its platform before running it; screen that form.
|
|
112
|
+
this.screenStoredClause(result, 'SortState', orderBy, 'OrderBy', this.ViewEntityInfo);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* The ORDER BY built from SortState / GridState, or null when SortState is not valid JSON. Such
|
|
117
|
+
* a view cannot build an ORDER BY when it runs either, so there is nothing to screen.
|
|
118
|
+
*/
|
|
119
|
+
storedOrderBy() {
|
|
120
|
+
try {
|
|
121
|
+
return this.OrderByClause;
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Adds a validation failure on `field` when the provider's client-clause screen refuses `clause`,
|
|
129
|
+
* or when the provider cannot screen (fails closed).
|
|
130
|
+
*/
|
|
131
|
+
screenStoredClause(result, field, clause, label, entityInfo) {
|
|
132
|
+
if (!clause.trim())
|
|
133
|
+
return;
|
|
134
|
+
const provider = this.ProviderToUse;
|
|
135
|
+
// When MJUserViewEntityServer is resolved in a mixed-tier process (e.g. CLI test runner)
|
|
136
|
+
// against a Network provider (GraphQLDataProvider), defer SQL AST screening to MJServer's
|
|
137
|
+
// Database provider when the GraphQL mutation executes on the server.
|
|
138
|
+
if (provider && provider.ProviderType === 'Network') {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
try {
|
|
142
|
+
if (!IsClientClauseScreeningProvider(provider)) {
|
|
143
|
+
throw new Error(`Invalid ${label}: the data provider cannot screen client SQL`);
|
|
144
|
+
}
|
|
145
|
+
provider.ScreenClientClause(clause, label, this.ActiveUser, entityInfo);
|
|
146
|
+
}
|
|
147
|
+
catch (e) {
|
|
148
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
149
|
+
result.Errors.push(new ValidationErrorInfo(field, message, clause, ValidationErrorType.Failure));
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* A `{%UserView "id"%}` template becomes a subquery only when the view runs, and the provider
|
|
154
|
+
* screens that rendered clause. Here each template stands in as `SELECT NULL` so the rest of
|
|
155
|
+
* the clause can be parsed.
|
|
156
|
+
*/
|
|
157
|
+
static neutralizeViewTemplates(whereClause) {
|
|
158
|
+
return whereClause.replace(/{%[^%]+%}/g, 'SELECT NULL');
|
|
159
|
+
}
|
|
26
160
|
/**
|
|
27
161
|
* SECURITY gate: `CustomWhereClause = 1` tells the platform to fold the stored
|
|
28
162
|
* `WhereClause` into view SQL verbatim — it bypasses both the auto-generation in
|
|
@@ -39,8 +173,9 @@ let MJUserViewEntityServer = class MJUserViewEntityServer extends MJUserViewEnti
|
|
|
39
173
|
}
|
|
40
174
|
const customDirty = this.GetFieldByName('CustomWhereClause')?.Dirty === true;
|
|
41
175
|
const whereDirty = this.GetFieldByName('WhereClause')?.Dirty === true;
|
|
42
|
-
|
|
43
|
-
|
|
176
|
+
// A new record is always authorized: a field first written without NewRecord() seeding it
|
|
177
|
+
// does not read as dirty. On an existing record, only a change needs authorizing.
|
|
178
|
+
if (this.IsSaved && !customDirty && !whereDirty) {
|
|
44
179
|
return;
|
|
45
180
|
}
|
|
46
181
|
const user = this.ContextCurrentUser
|
|
@@ -56,6 +191,12 @@ let MJUserViewEntityServer = class MJUserViewEntityServer extends MJUserViewEnti
|
|
|
56
191
|
*/
|
|
57
192
|
async GenerateSmartFilterWhereClause(prompt, entityInfo) {
|
|
58
193
|
try {
|
|
194
|
+
if (this.AlternateBaseView && entityInfo) {
|
|
195
|
+
const pinnedAbv = entityInfo.GetAlternateBaseView(this.AlternateBaseView);
|
|
196
|
+
if (!pinnedAbv || !pinnedAbv.IsUsable) {
|
|
197
|
+
return { whereClause: '', userExplanation: '' };
|
|
198
|
+
}
|
|
199
|
+
}
|
|
59
200
|
// Ensure AIEngine is configured
|
|
60
201
|
await AIEngine.Instance.Config(false, this.ContextCurrentUser);
|
|
61
202
|
// Find the Smart Filter Generation prompt
|
|
@@ -129,18 +270,30 @@ let MJUserViewEntityServer = class MJUserViewEntityServer extends MJUserViewEnti
|
|
|
129
270
|
* This data is used to populate the Nunjucks template variables.
|
|
130
271
|
*/
|
|
131
272
|
BuildTemplateData(entityInfo) {
|
|
273
|
+
const pinnedAbv = this.AlternateBaseView
|
|
274
|
+
? entityInfo.GetAlternateBaseView(this.AlternateBaseView)
|
|
275
|
+
: undefined;
|
|
276
|
+
const effectiveBaseView = pinnedAbv && pinnedAbv.IsUsable ? pinnedAbv.ViewName : entityInfo.BaseView;
|
|
132
277
|
const processedViews = [entityInfo.BaseView];
|
|
278
|
+
if (effectiveBaseView !== entityInfo.BaseView) {
|
|
279
|
+
processedViews.push(effectiveBaseView);
|
|
280
|
+
}
|
|
133
281
|
const md = this.ProviderToUse;
|
|
134
282
|
const listsEntity = md.EntityByName("MJ: Lists");
|
|
135
283
|
const listDetailsEntity = md.EntityByName("MJ: List Details");
|
|
136
284
|
// Build fields description
|
|
137
|
-
|
|
285
|
+
let fieldsDescription = entityInfo.Fields.map(f => {
|
|
138
286
|
let ret = `${f.Name} (${f.Type})`;
|
|
139
287
|
if (f.RelatedEntity) {
|
|
140
288
|
ret += ` (fkey to ${f.RelatedEntityBaseView})`;
|
|
141
289
|
}
|
|
142
290
|
return ret;
|
|
143
291
|
}).join(',');
|
|
292
|
+
if (pinnedAbv && pinnedAbv.IsUsable) {
|
|
293
|
+
fieldsDescription +=
|
|
294
|
+
`\n[Base View Context: Reading from alternate base view '${pinnedAbv.EffectiveDisplayName}' (${pinnedAbv.ViewName}): ${pinnedAbv.Description}. ` +
|
|
295
|
+
`Do NOT duplicate conditions already enforced by this base view unless the user explicitly asks to refine them.]`;
|
|
296
|
+
}
|
|
144
297
|
// Build related views description
|
|
145
298
|
const relatedViewsDescription = this.BuildRelatedViewsDescription(entityInfo, md, processedViews);
|
|
146
299
|
// Build lists fields
|
|
@@ -151,16 +304,21 @@ let MJUserViewEntityServer = class MJUserViewEntityServer extends MJUserViewEnti
|
|
|
151
304
|
const listDetailsFields = listDetailsEntity ? listDetailsEntity.Fields.map(f => {
|
|
152
305
|
return f.Name + ' (' + f.SQLFullType + ')';
|
|
153
306
|
}).join(', ') : '';
|
|
154
|
-
|
|
307
|
+
const templateData = {
|
|
155
308
|
entityName: entityInfo.Name,
|
|
156
309
|
entityId: entityInfo.ID,
|
|
157
|
-
baseView:
|
|
310
|
+
baseView: effectiveBaseView,
|
|
158
311
|
fieldsDescription,
|
|
159
|
-
relatedViewsDescription:
|
|
312
|
+
relatedViewsDescription: relatedViewsDescription.length > 0 ? relatedViewsDescription : '',
|
|
160
313
|
listsSchema: listsEntity?.SchemaName || '__mj',
|
|
161
314
|
listsFields,
|
|
162
|
-
listDetailsFields
|
|
315
|
+
listDetailsFields,
|
|
163
316
|
};
|
|
317
|
+
if (pinnedAbv && pinnedAbv.IsUsable) {
|
|
318
|
+
templateData.alternateBaseViewName = pinnedAbv.Name;
|
|
319
|
+
templateData.alternateBaseViewDescription = pinnedAbv.Description;
|
|
320
|
+
}
|
|
321
|
+
return templateData;
|
|
164
322
|
}
|
|
165
323
|
/**
|
|
166
324
|
* Builds the description of related views for the prompt template.
|
|
@@ -199,7 +357,7 @@ let MJUserViewEntityServer = class MJUserViewEntityServer extends MJUserViewEnti
|
|
|
199
357
|
return [fkeyViewsDesc, relatedEntitiesDesc].filter(s => s.length > 0).join('\n');
|
|
200
358
|
}
|
|
201
359
|
};
|
|
202
|
-
MJUserViewEntityServer = __decorate([
|
|
360
|
+
MJUserViewEntityServer = MJUserViewEntityServer_1 = __decorate([
|
|
203
361
|
RegisterClass(BaseEntity, 'MJ: User Views')
|
|
204
362
|
], MJUserViewEntityServer);
|
|
205
363
|
export { MJUserViewEntityServer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MJUserViewEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJUserViewEntityServer.server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MJUserViewEntityServer.server.js","sourceRoot":"","sources":["../../src/custom/MJUserViewEntityServer.server.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,20 +7,29 @@ import { MJVectorIndexEntity } from "@memberjunction/core-entities";
|
|
|
7
7
|
*
|
|
8
8
|
* Provisioning is DETACHED from the save that triggers it: the save returns once the metadata row is
|
|
9
9
|
* written, and the provider call runs afterwards (see {@link Save}). That call is bounded by
|
|
10
|
-
* {@link CREATE_INDEX_TIMEOUT_MS}: past it the hook stops waiting
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* {@link CREATE_INDEX_TIMEOUT_MS}: past it the hook stops waiting and records `timed-out`. The provider
|
|
11
|
+
* call itself is abandoned, not cancelled (there is no cancellation handle), so the bound limits how
|
|
12
|
+
* long this record's provisioning stays open, not the provider's work.
|
|
13
13
|
* Pinecone's createIndex returns as soon as the request is accepted (we never pass waitUntilReady),
|
|
14
14
|
* so the bound only ever trips on a hung connection, not on a slow index build.
|
|
15
|
+
*
|
|
16
|
+
* Whatever the outcome, it is written onto the row's `ProviderConfig` as a {@link VectorIndexProvisionState}.
|
|
15
17
|
*/
|
|
16
18
|
export declare class MJVectorIndexEntityServer extends MJVectorIndexEntity {
|
|
17
19
|
/** Upper bound on one provider CreateIndex call. */
|
|
18
20
|
static readonly CREATE_INDEX_TIMEOUT_MS = 60000;
|
|
21
|
+
/** Upper bound on the one embedding call that learns a model's width (see resolveDimensions). */
|
|
22
|
+
static readonly DIMENSION_PROBE_TIMEOUT_MS = 30000;
|
|
23
|
+
/** Width used only when the record has none and the probe cannot answer (OpenAI text-embedding-3-small). */
|
|
24
|
+
static readonly DEFAULT_DIMENSIONS = 1536;
|
|
25
|
+
/** The one string embedded to learn a model's width; its content is irrelevant, only the vector's length is read. */
|
|
26
|
+
private static readonly DIMENSION_PROBE_TEXT;
|
|
19
27
|
/**
|
|
20
28
|
* After saving, if this is a new record, create the index in the provider.
|
|
21
29
|
* The provider call is deliberately NOT awaited: the client only needs the metadata row, and the
|
|
22
30
|
* request that triggered the save (an "Auto" index from the UI, or the Config page) must not wait
|
|
23
|
-
* on the provider.
|
|
31
|
+
* on the provider. Save() never throws over provisioning; the outcome is recorded on the row's
|
|
32
|
+
* `ProviderConfig` instead (see {@link createIndexInProvider}).
|
|
24
33
|
*/
|
|
25
34
|
Save(options?: EntitySaveOptions): Promise<boolean>;
|
|
26
35
|
/**
|
|
@@ -34,9 +43,23 @@ export declare class MJVectorIndexEntityServer extends MJVectorIndexEntity {
|
|
|
34
43
|
*/
|
|
35
44
|
private sanitizeIndexName;
|
|
36
45
|
/**
|
|
37
|
-
*
|
|
46
|
+
* The detached half of {@link Save}: provision, then write the outcome onto the row.
|
|
47
|
+
*
|
|
48
|
+
* Before this, a provider that refused (`success: false`), threw, or never answered reached only
|
|
49
|
+
* the server log, and the committed row looked exactly like one with an index behind it. The
|
|
50
|
+
* row's `ProviderConfig` now says which of the {@link VectorIndexProvisionState}s it is in.
|
|
51
|
+
*
|
|
52
|
+
* Keep this name: the integration suite's content-vectorization fixture stubs it by name to keep
|
|
53
|
+
* the provider out of the run.
|
|
38
54
|
*/
|
|
39
55
|
private createIndexInProvider;
|
|
56
|
+
/**
|
|
57
|
+
* Create the index in the vector database provider and report what happened.
|
|
58
|
+
*
|
|
59
|
+
* Returns rather than logs, so {@link createIndexInProvider} records every outcome the same way.
|
|
60
|
+
* Throws only when the driver throws or the call times out; the caller classifies both.
|
|
61
|
+
*/
|
|
62
|
+
private provisionIndexInProvider;
|
|
40
63
|
/**
|
|
41
64
|
* Delete the index from the vector database provider.
|
|
42
65
|
*/
|
|
@@ -50,14 +73,34 @@ export declare class MJVectorIndexEntityServer extends MJVectorIndexEntity {
|
|
|
50
73
|
* Resolve the embedding dimensions to create the provider index at.
|
|
51
74
|
*
|
|
52
75
|
* Prefers this index's own `Dimensions` column, which is where the operator states it and what the
|
|
53
|
-
* embedding call already honors.
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
76
|
+
* embedding call already honors. When the record carries none (every index created from the UI:
|
|
77
|
+
* the Config page's Create Index and the "Vector Index: Auto" path both leave it null, and
|
|
78
|
+
* `MJ: AI Models` has no width column to copy from), the width is learned by embedding one short
|
|
79
|
+
* string with the index's own model and reading the vector's length. Every provider fixes the width
|
|
80
|
+
* at create time, so guessing it wrong gives an index the sync can never write to: a 384-dimension
|
|
81
|
+
* model's vectors are rejected by a `VECTOR(1536)` column or a 1536-wide Pinecone index outright.
|
|
57
82
|
*
|
|
58
|
-
* 1536 (OpenAI text-embedding-3-small) remains the fallback
|
|
83
|
+
* 1536 (OpenAI text-embedding-3-small) remains the fallback only when the probe cannot run or
|
|
84
|
+
* fails, and the failure is logged so the width can be set by hand. A wrong fallback does not go
|
|
85
|
+
* unnoticed: the vectorize pipeline compares every returned vector against the index's width and
|
|
86
|
+
* refuses the batch before upserting it.
|
|
59
87
|
*/
|
|
60
88
|
private resolveDimensions;
|
|
89
|
+
/**
|
|
90
|
+
* Embed one short string with this index's embedding model and return the vector's length, or null
|
|
91
|
+
* when there is no model, no user context, or the call fails. `ModelID` is pinned so the answer
|
|
92
|
+
* comes from the model the index is for; the run row is skipped since this is not a real workload.
|
|
93
|
+
*/
|
|
94
|
+
private probeModelDimensions;
|
|
95
|
+
/**
|
|
96
|
+
* Resolve the distance metric to request the provider index be created with.
|
|
97
|
+
*
|
|
98
|
+
* `Metric` on this row is what the operator asked for; `cosine` is the fallback. This used to be
|
|
99
|
+
* hardcoded to `cosine` at the call site, which made the `Metric` write-back a tautology: the
|
|
100
|
+
* column simply echoed a constant this file had chosen, so it could never disagree with the
|
|
101
|
+
* provider and could never tell you the provider had done something else.
|
|
102
|
+
*/
|
|
103
|
+
private resolveMetric;
|
|
61
104
|
/**
|
|
62
105
|
* Resolve `work` or reject after `timeoutMs`, whichever comes first. The timer is cleared when the
|
|
63
106
|
* work settles, so a fast provider leaves nothing behind. On timeout the provider may still finish
|
|
@@ -66,8 +109,37 @@ export declare class MJVectorIndexEntityServer extends MJVectorIndexEntity {
|
|
|
66
109
|
private static withTimeout;
|
|
67
110
|
/**
|
|
68
111
|
* After provider creates the index, save the returned metadata back to our record.
|
|
69
|
-
* Stores ExternalID, Dimensions, Metric, and
|
|
112
|
+
* Stores ExternalID, Dimensions, Metric, the provisioning state, and provider config as JSON.
|
|
113
|
+
*
|
|
114
|
+
* **Provider truth beats our request.** `Dimensions` and `Metric` are read off the provider's
|
|
115
|
+
* own response when it reports them, and only fall back to what we asked for. A provider is
|
|
116
|
+
* free to round, clamp or ignore a requested dimension, and the whole point of these two
|
|
117
|
+
* columns is to be checkable against the embeddings we later generate; a column that can
|
|
118
|
+
* only ever repeat our own request is not a check.
|
|
119
|
+
*
|
|
120
|
+
* A failed write-back is logged rather than recorded: the index exists, and the only way to
|
|
121
|
+
* record anything on the row is the same save that just failed.
|
|
70
122
|
*/
|
|
71
123
|
private saveProviderMetadata;
|
|
124
|
+
private writeBackFailureMessage;
|
|
125
|
+
/** The provider's own dimension, when it reported a usable one. */
|
|
126
|
+
private readProviderDimension;
|
|
127
|
+
/** The provider's own metric, when it reported a recognized one. */
|
|
128
|
+
private readProviderMetric;
|
|
129
|
+
/**
|
|
130
|
+
* Write the provisioning outcome onto the row, so a row that has no index behind it says so
|
|
131
|
+
* instead of looking identical to one that does.
|
|
132
|
+
*
|
|
133
|
+
* Best-effort by construction: this runs after the caller's save has already returned, and a
|
|
134
|
+
* second failure here must not replace the original diagnosis with a save error.
|
|
135
|
+
*/
|
|
136
|
+
private recordProvisionState;
|
|
137
|
+
/** The `provisionState` recorded on `ProviderConfig`, or undefined when there is none or it cannot be read. */
|
|
138
|
+
private readProvisionState;
|
|
139
|
+
/**
|
|
140
|
+
* Merge the provisioning outcome into the existing `ProviderConfig` JSON bag, preserving any
|
|
141
|
+
* driver-specific keys already there (e.g. Pinecone's `namespaceField`).
|
|
142
|
+
*/
|
|
143
|
+
private buildProviderConfig;
|
|
72
144
|
}
|
|
73
145
|
//# sourceMappingURL=MJVectorIndexEntityServer.server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MJVectorIndexEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJVectorIndexEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,
|
|
1
|
+
{"version":3,"file":"MJVectorIndexEntityServer.server.d.ts","sourceRoot":"","sources":["../../src/custom/MJVectorIndexEntityServer.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAAmD,MAAM,sBAAsB,CAAC;AAEtH,OAAO,EAAE,mBAAmB,EAA0B,MAAM,+BAA+B,CAAC;AA0C5F;;;;;;;;;;;;;;GAcG;AACH,qBACa,yBAA0B,SAAQ,mBAAmB;IAC9D,oDAAoD;IACpD,gBAAuB,uBAAuB,SAAU;IACxD,iGAAiG;IACjG,gBAAuB,0BAA0B,SAAU;IAC3D,4GAA4G;IAC5G,gBAAuB,kBAAkB,QAAQ;IACjD,qHAAqH;IACrH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAqB;IAEjE;;;;;;OAMG;IACmB,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAazE;;OAEG;IACmB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAShD;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;;;;;;;;OASG;YACW,qBAAqB;IAmCnC;;;;;OAKG;YACW,wBAAwB;IA6DtC;;OAEG;YACW,uBAAuB;IA+BrC;;;OAGG;YACW,mBAAmB;IAgDjC;;;;;;;;;;;;;;;OAeG;YACW,iBAAiB;IAY/B;;;;OAIG;YACW,oBAAoB;IAqClC;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IASrB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAe1B;;;;;;;;;;;;OAYG;YACW,oBAAoB;IAiClC,OAAO,CAAC,uBAAuB;IAM/B,mEAAmE;IACnE,OAAO,CAAC,qBAAqB;IAM7B,oEAAoE;IACpE,OAAO,CAAC,kBAAkB;IAS1B;;;;;;OAMG;YACW,oBAAoB;IAelC,+GAA+G;IAC/G,OAAO,CAAC,kBAAkB;IAgB1B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAuB9B"}
|