@memberjunction/codegen-lib 5.50.0 → 6.1.0-edge.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/LICENSE +7 -0
- package/README.md +194 -0
- package/dist/Database/codeGenDatabaseProvider.d.ts +15 -0
- package/dist/Database/codeGenDatabaseProvider.d.ts.map +1 -1
- package/dist/Database/codeGenDatabaseProvider.js.map +1 -1
- package/dist/Database/manage-metadata.d.ts +21 -0
- package/dist/Database/manage-metadata.d.ts.map +1 -1
- package/dist/Database/manage-metadata.js +119 -4
- package/dist/Database/manage-metadata.js.map +1 -1
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.d.ts +37 -3
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.d.ts.map +1 -1
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js +65 -4
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js.map +1 -1
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.d.ts +2 -0
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.d.ts.map +1 -1
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js +12 -1
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js.map +1 -1
- package/dist/Database/providers/sqlserver/__tests__/LayeredBaseView.test.d.ts +2 -0
- package/dist/Database/providers/sqlserver/__tests__/LayeredBaseView.test.d.ts.map +1 -0
- package/dist/Database/providers/sqlserver/__tests__/LayeredBaseView.test.js +252 -0
- package/dist/Database/providers/sqlserver/__tests__/LayeredBaseView.test.js.map +1 -0
- package/dist/Database/search-guardrails.d.ts +146 -0
- package/dist/Database/search-guardrails.d.ts.map +1 -0
- package/dist/Database/search-guardrails.js +233 -0
- package/dist/Database/search-guardrails.js.map +1 -0
- package/dist/Database/sql.d.ts.map +1 -1
- package/dist/Database/sql.js +42 -10
- package/dist/Database/sql.js.map +1 -1
- package/dist/Database/sql_codegen.d.ts +40 -0
- package/dist/Database/sql_codegen.d.ts.map +1 -1
- package/dist/Database/sql_codegen.js +110 -21
- package/dist/Database/sql_codegen.js.map +1 -1
- package/dist/Manifest/GenerateClassRegistrationsManifest.d.ts +2 -2
- package/dist/Manifest/GenerateClassRegistrationsManifest.d.ts.map +1 -1
- package/dist/Manifest/GenerateClassRegistrationsManifest.js +50 -26
- package/dist/Manifest/GenerateClassRegistrationsManifest.js.map +1 -1
- package/dist/Misc/advanced_generation.d.ts.map +1 -1
- package/dist/Misc/advanced_generation.js +8 -1
- package/dist/Misc/advanced_generation.js.map +1 -1
- package/package.json +38 -35
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure heuristics for the CodeGen "Smart Field Identification" pipeline.
|
|
3
|
+
*
|
|
4
|
+
* The LLM behind the prompt template at
|
|
5
|
+
* `metadata/prompts/templates/codegen/smart-field-identification.template.md`
|
|
6
|
+
* is liberal with `AllowUserSearchAPI`, `IncludeInUserSearchAPI`, and the
|
|
7
|
+
* `Contains` predicate. These helpers are the code-level safety net that
|
|
8
|
+
* applies regardless of what the model returns. They live in their own
|
|
9
|
+
* module so they can be unit-tested without spinning up the database layer.
|
|
10
|
+
*
|
|
11
|
+
* Conventions:
|
|
12
|
+
* - All functions are pure and side-effect free.
|
|
13
|
+
* - `*FieldName` predicates do simple regex matches on the field name; they
|
|
14
|
+
* intentionally don't try to read field type or extended-type metadata.
|
|
15
|
+
* - "Identifier-shaped" means a unique business identifier the user types
|
|
16
|
+
* in full (Email, SKU, OrderNumber). "Name-like" means a human-readable
|
|
17
|
+
* prefix users type into a search box (Name, Title, FirstName).
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Hard cap on searchable fields per entity. The plan calls out 0–2 as typical
|
|
21
|
+
* and >3 as exceptional (`plans/codegen-search-tightening.md` §Phase 2: "Per-entity
|
|
22
|
+
* cap of 3" / "slice to at most 3 fields"), so 3 is the absolute backstop. This
|
|
23
|
+
* cap kicks in after eligibility filtering — fields blocked by other guardrails
|
|
24
|
+
* don't count against the cap.
|
|
25
|
+
*/
|
|
26
|
+
export const MAX_SEARCHABLE_FIELDS_PER_ENTITY = 3;
|
|
27
|
+
/**
|
|
28
|
+
* Match narrative field names that should never participate in plain
|
|
29
|
+
* (non-FTS) `LIKE` search. These force unindexed `LIKE '%term%'` scans
|
|
30
|
+
* even when MaxLength is small, and the data is rarely the right global-
|
|
31
|
+
* search target anyway. If a narrative field genuinely needs to be
|
|
32
|
+
* searchable, it belongs in `fullTextSearchFields[]` on an FTS-enabled
|
|
33
|
+
* entity, not in `searchableFields`.
|
|
34
|
+
*
|
|
35
|
+
* Matches:
|
|
36
|
+
* - Exact names: Comments, Note(s), Description, Bio, Body, Memo,
|
|
37
|
+
* Summary, Content, Remark(s), Details
|
|
38
|
+
* - Suffix variants: ReleaseNotes, EndpointDescription, BodyText
|
|
39
|
+
*
|
|
40
|
+
* The suffix half is the noisier matcher — false positives on names
|
|
41
|
+
* like `ReleaseNotes` or `RequestBody` are intentional (those are also
|
|
42
|
+
* narrative content), but if a real-world entity gets caught
|
|
43
|
+
* unfairly, an operator can set `AutoUpdateIncludeInUserSearchAPI=0`
|
|
44
|
+
* on that field to opt out of LLM-driven flips.
|
|
45
|
+
*/
|
|
46
|
+
export function isNarrativeFieldName(fieldName) {
|
|
47
|
+
if (!fieldName)
|
|
48
|
+
return false;
|
|
49
|
+
const exact = /^(Comments?|Notes?|Description|Bio|Body|Memo|Summary|Content|Remarks?|Details)$/i;
|
|
50
|
+
if (exact.test(fieldName))
|
|
51
|
+
return true;
|
|
52
|
+
const suffix = /(Comment|Note|Description|Bio|Body|Memo|Summary|Content|Remark)s?$/i;
|
|
53
|
+
return suffix.test(fieldName);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Identifier-shaped field names — values users type in full, where `Exact`
|
|
57
|
+
* is the right predicate by default.
|
|
58
|
+
*/
|
|
59
|
+
export function isIdentifierFieldName(fieldName) {
|
|
60
|
+
if (!fieldName)
|
|
61
|
+
return false;
|
|
62
|
+
return /^(Email|SKU|SSN|ISBN|ZipCode|PostalCode|Phone(Number)?|.+(Number|Code|ID))$/i.test(fieldName)
|
|
63
|
+
&& !/^ID$/i.test(fieldName); // bare "ID" is the PK, not an identifier
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Name-like field names — human-readable prefixes where `BeginsWith` is the
|
|
67
|
+
* right predicate by default.
|
|
68
|
+
*/
|
|
69
|
+
export function isNameLikeFieldName(fieldName) {
|
|
70
|
+
if (!fieldName)
|
|
71
|
+
return false;
|
|
72
|
+
return /^(Name|Title|FirstName|LastName|MiddleName|DisplayName|FullName|Label)$/i.test(fieldName);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Match entity names that are detail / line-item / step / param / mapping
|
|
76
|
+
* children of a parent record. These are reached through their parent — they
|
|
77
|
+
* are never global-search targets even when they have text columns.
|
|
78
|
+
*
|
|
79
|
+
* Whole-word boundaries on the trailing token are intentional — we don't
|
|
80
|
+
* want to false-positive on entities like `Stepford Cities` (silly example,
|
|
81
|
+
* but the principle holds).
|
|
82
|
+
*/
|
|
83
|
+
export function isDetailOrLineItemEntity(entityName) {
|
|
84
|
+
if (!entityName)
|
|
85
|
+
return false;
|
|
86
|
+
const n = entityName.trim();
|
|
87
|
+
return /(\b|\s)(Details?|Lines?|Items?|Steps?|Params?|Mappings?)$/i.test(n);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Default predicate for a searchable field when the LLM didn't supply one
|
|
91
|
+
* (or supplied an inappropriate `Contains` we had to reject).
|
|
92
|
+
*/
|
|
93
|
+
export function defaultPredicateFor(fieldName) {
|
|
94
|
+
if (isIdentifierFieldName(fieldName))
|
|
95
|
+
return 'Exact';
|
|
96
|
+
if (isNameLikeFieldName(fieldName))
|
|
97
|
+
return 'BeginsWith';
|
|
98
|
+
return 'BeginsWith';
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Normalize a single LLM-proposed predicate against the field context.
|
|
102
|
+
*
|
|
103
|
+
* Rules:
|
|
104
|
+
* - `Contains` is reserved for fields included in `fullTextSearchFields[]`
|
|
105
|
+
* on an FTS-enabled entity. Anywhere else, we rewrite `Contains` to
|
|
106
|
+
* the field's default predicate.
|
|
107
|
+
* - `Exact` and `EndsWith` pass through unchanged.
|
|
108
|
+
* - `BeginsWith` passes through unchanged.
|
|
109
|
+
* - If the LLM didn't propose a predicate at all (or proposed one we
|
|
110
|
+
* rejected), fall back to `defaultPredicateFor()`.
|
|
111
|
+
*/
|
|
112
|
+
export function normalizePredicate(opts) {
|
|
113
|
+
const { fieldName, proposed, isInFullTextSearchFields, entityFullTextSearchEnabled } = opts;
|
|
114
|
+
if (proposed === 'Contains') {
|
|
115
|
+
const ftsEligible = isInFullTextSearchFields && entityFullTextSearchEnabled;
|
|
116
|
+
if (ftsEligible) {
|
|
117
|
+
return { predicate: 'Contains', rewritten: false };
|
|
118
|
+
}
|
|
119
|
+
return { predicate: defaultPredicateFor(fieldName), rewritten: true };
|
|
120
|
+
}
|
|
121
|
+
if (proposed === 'Exact' || proposed === 'EndsWith' || proposed === 'BeginsWith') {
|
|
122
|
+
return { predicate: proposed, rewritten: false };
|
|
123
|
+
}
|
|
124
|
+
return { predicate: defaultPredicateFor(fieldName), rewritten: false };
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Per-entity cap. Given an already-eligible list of field names (PK / type /
|
|
128
|
+
* narrative guardrails have already run), trim to the configured cap,
|
|
129
|
+
* preferring name-like and identifier-shaped fields over ambiguous matches.
|
|
130
|
+
*/
|
|
131
|
+
export function applySearchableFieldsCap(eligibleFieldNames) {
|
|
132
|
+
if (eligibleFieldNames.length <= MAX_SEARCHABLE_FIELDS_PER_ENTITY) {
|
|
133
|
+
return { accepted: [...eligibleFieldNames], dropped: [] };
|
|
134
|
+
}
|
|
135
|
+
// Stable-sort by preference rank (name-like first, then identifier, then
|
|
136
|
+
// anything else), preserving original order within each rank.
|
|
137
|
+
const ranked = eligibleFieldNames.map((name, idx) => ({
|
|
138
|
+
name,
|
|
139
|
+
idx,
|
|
140
|
+
rank: isNameLikeFieldName(name) ? 0 : isIdentifierFieldName(name) ? 1 : 2,
|
|
141
|
+
}));
|
|
142
|
+
ranked.sort((a, b) => a.rank - b.rank || a.idx - b.idx);
|
|
143
|
+
const accepted = ranked.slice(0, MAX_SEARCHABLE_FIELDS_PER_ENTITY).map(r => r.name);
|
|
144
|
+
const acceptedSet = new Set(accepted);
|
|
145
|
+
const dropped = eligibleFieldNames.filter(n => !acceptedSet.has(n));
|
|
146
|
+
return { accepted, dropped };
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* First-pass cleanup of the raw LLM result, applied immediately after the
|
|
150
|
+
* model returns. Catches contradictory shapes the LLM occasionally emits.
|
|
151
|
+
*
|
|
152
|
+
* - If `allowUserSearch === false`, force `searchableFields` and
|
|
153
|
+
* `searchPredicates` to empty (the entity is opted out — any field-level
|
|
154
|
+
* flags would be no-ops at best, misleading at worst).
|
|
155
|
+
* - If `searchableFields` is empty, force `allowUserSearch` to `false`.
|
|
156
|
+
* - Deduplicate `searchableFields` while preserving order.
|
|
157
|
+
*
|
|
158
|
+
* Returns a NEW object (does not mutate the input).
|
|
159
|
+
*/
|
|
160
|
+
export function normalizeSmartFieldResultShape(result) {
|
|
161
|
+
const out = { ...result };
|
|
162
|
+
const fields = Array.isArray(out.searchableFields) ? out.searchableFields : [];
|
|
163
|
+
// Dedupe while preserving order.
|
|
164
|
+
const seen = new Set();
|
|
165
|
+
const deduped = [];
|
|
166
|
+
for (const name of fields) {
|
|
167
|
+
if (typeof name === 'string' && name.length > 0 && !seen.has(name)) {
|
|
168
|
+
seen.add(name);
|
|
169
|
+
deduped.push(name);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
out.searchableFields = deduped;
|
|
173
|
+
if (out.allowUserSearch === false) {
|
|
174
|
+
out.searchableFields = [];
|
|
175
|
+
out.searchPredicates = [];
|
|
176
|
+
}
|
|
177
|
+
else if (deduped.length === 0) {
|
|
178
|
+
out.allowUserSearch = false;
|
|
179
|
+
out.searchPredicates = [];
|
|
180
|
+
}
|
|
181
|
+
return out;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Heuristic: does the entity name match an audit / log / run-history /
|
|
185
|
+
* change-tracking shape? Mirrors the existing `isLikelyLogOrAuditEntity`
|
|
186
|
+
* heuristic on `ManageMetadataBase` so callers outside the class (e.g.
|
|
187
|
+
* tests) can ask the same question without having to subclass.
|
|
188
|
+
*/
|
|
189
|
+
export function isLikelyLogOrAuditEntityName(name) {
|
|
190
|
+
if (!name)
|
|
191
|
+
return false;
|
|
192
|
+
const n = name.trim();
|
|
193
|
+
if (/\bLogs?$/i.test(n))
|
|
194
|
+
return true;
|
|
195
|
+
if (/\bAudit\b/i.test(n))
|
|
196
|
+
return true;
|
|
197
|
+
if (/\bRecord Changes?$/i.test(n))
|
|
198
|
+
return true;
|
|
199
|
+
if (/\bRuns?$/i.test(n) && !/Test Runs?$/i.test(n))
|
|
200
|
+
return true;
|
|
201
|
+
if (/\bRun (History|Steps|Messages)$/i.test(n))
|
|
202
|
+
return true;
|
|
203
|
+
if (/\bExecution Logs?$/i.test(n))
|
|
204
|
+
return true;
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Decide whether an LLM-proposed entity-level enable (0 → 1 flip on
|
|
209
|
+
* `AllowUserSearchAPI`) should be allowed through. Returns a reason string
|
|
210
|
+
* when blocked, `null` when accepted.
|
|
211
|
+
*
|
|
212
|
+
* The plan's gating conditions:
|
|
213
|
+
* - `confidence === 'high'`
|
|
214
|
+
* - `acceptedSearchableFields.length >= 1` (post-guardrail)
|
|
215
|
+
* - entity is NOT log/audit-shaped
|
|
216
|
+
* - entity is NOT detail/line-item-shaped
|
|
217
|
+
*/
|
|
218
|
+
export function entityLevelEnableBlockedReason(opts) {
|
|
219
|
+
if (opts.confidence !== 'high') {
|
|
220
|
+
return `confidence is '${opts.confidence ?? 'unknown'}' (need 'high')`;
|
|
221
|
+
}
|
|
222
|
+
if (opts.acceptedSearchableFieldsCount < 1) {
|
|
223
|
+
return 'no searchable fields survived guardrails';
|
|
224
|
+
}
|
|
225
|
+
if (isLikelyLogOrAuditEntityName(opts.entityName)) {
|
|
226
|
+
return 'entity name matches log/audit/run-history shape';
|
|
227
|
+
}
|
|
228
|
+
if (isDetailOrLineItemEntity(opts.entityName)) {
|
|
229
|
+
return 'entity name matches detail/line-item/step/param/mapping shape';
|
|
230
|
+
}
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=search-guardrails.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-guardrails.js","sourceRoot":"","sources":["../../src/Database/search-guardrails.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/Database/sql.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAY,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAKvF,OAAO,gDAAgD,CAAC;AAYxD;;GAEG;AACH,qBAAa,cAAc;IAC3B,OAAO,CAAC,WAAW,CAAwC;IAE3D;;;;;;;;;;OAUG;IACH,SAAS,KAAK,UAAU,IAAI,uBAAuB,CAgBlD;IAED;;;;;;;;;;;;OAYG;IACI,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,GAAG,2BAA2B,GAAG,OAAO,EAC/D,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,OAAO,EACtB,WAAW,EAAE,OAAO,GAAG,MAAM;IAUjE;;;;OAIG;IACI,qBAAqB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,EAAE;IAgEpE;;;;;OAKG;IACH,OAAO,CAAC,gCAAgC;IAexC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAiBb,qBAAqB,CAAC,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/Database/sql.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAY,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAKvF,OAAO,gDAAgD,CAAC;AAYxD;;GAEG;AACH,qBAAa,cAAc;IAC3B,OAAO,CAAC,WAAW,CAAwC;IAE3D;;;;;;;;;;OAUG;IACH,SAAS,KAAK,UAAU,IAAI,uBAAuB,CAgBlD;IAED;;;;;;;;;;;;OAYG;IACI,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,GAAG,2BAA2B,GAAG,OAAO,EAC/D,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,OAAO,EACtB,WAAW,EAAE,OAAO,GAAG,MAAM;IAUjE;;;;OAIG;IACI,qBAAqB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,EAAE;IAgEpE;;;;;OAKG;IACH,OAAO,CAAC,gCAAgC;IAexC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAiBb,qBAAqB,CAAC,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA+FpJ,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE;IAkB9C,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAc1C,uBAAuB,CAAC,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAe5H;;;;;OAKG;YACW,2BAA2B;IAmBzC;;;;;;;;;;;;;OAaG;YACW,yBAAyB;IAwD1B,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAY5F,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAa;IAClC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlD,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B3D,gBAAgB,CAAC,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAc9G"}
|
package/dist/Database/sql.js
CHANGED
|
@@ -186,11 +186,34 @@ export class SQLUtilityBase {
|
|
|
186
186
|
e.IncludeInAPI &&
|
|
187
187
|
!e.VirtualEntity &&
|
|
188
188
|
(!excludeEntities || !excludeEntities.includes(e.Name)));
|
|
189
|
+
// LAYERED entities are a subset of the above — BaseViewGenerated is false because the
|
|
190
|
+
// application owns BaseView, but CodeGen still writes the INNER view, so unlike a fully
|
|
191
|
+
// custom view that inner half CAN be regenerated when it fails to refresh.
|
|
192
|
+
const layeredEntities = customViewEntities.filter(e => e.HasLayeredBaseView);
|
|
189
193
|
let sqlCommand = '';
|
|
190
194
|
if (this.dbProvider.NeedsViewRefresh) {
|
|
191
|
-
// Refresh custom views first so they're up to date before generated views are processed
|
|
195
|
+
// Refresh custom views first so they're up to date before generated views are processed.
|
|
196
|
+
//
|
|
197
|
+
// LAYERED entities need their INNER view refreshed BEFORE the outer one. The custom view
|
|
198
|
+
// selects `g.*` from the generated view, and SQL Server caches a view's column list when the
|
|
199
|
+
// view is created: refreshing the outer against a stale inner re-caches the OLD column set,
|
|
200
|
+
// so a newly added column stays missing. That failure is indistinguishable from the column
|
|
201
|
+
// never having been added at all, which is why the order is explicit rather than incidental.
|
|
202
|
+
//
|
|
203
|
+
// Both halves are guarded on existence, because on the first run after layering is enabled
|
|
204
|
+
// NEITHER exists yet: the inner view is created later in this same run, and the outer one
|
|
205
|
+
// only afterwards by an application migration that selects from it. An unguarded refresh
|
|
206
|
+
// would fail the whole run on the one pass that is supposed to bootstrap the arrangement.
|
|
207
|
+
// The missing inner view is not lost — identifyFailedViewRefreshes below detects and
|
|
208
|
+
// regenerates it.
|
|
209
|
+
for (const entity of layeredEntities) {
|
|
210
|
+
sqlCommand += this.dbProvider.generateIfViewExistsSQL(entity.SchemaName, entity.GeneratedViewName, this.dbProvider.generateViewRefreshSQL(entity.SchemaName, entity.GeneratedViewName));
|
|
211
|
+
}
|
|
192
212
|
for (const entity of customViewEntities) {
|
|
193
|
-
|
|
213
|
+
const refreshSQL = this.dbProvider.generateViewRefreshSQL(entity.SchemaName, entity.BaseView);
|
|
214
|
+
sqlCommand += entity.HasLayeredBaseView
|
|
215
|
+
? this.dbProvider.generateIfViewExistsSQL(entity.SchemaName, entity.BaseView, refreshSQL)
|
|
216
|
+
: refreshSQL;
|
|
194
217
|
}
|
|
195
218
|
for (const entity of l) {
|
|
196
219
|
// if an excludeEntities variable was provided, skip this entity if it's in the list
|
|
@@ -201,9 +224,10 @@ export class SQLUtilityBase {
|
|
|
201
224
|
}
|
|
202
225
|
// Execute the initial refresh attempts (custom views + generated views together)
|
|
203
226
|
bSuccess = await this.executeSQLScript(ds, sqlCommand, false) && bSuccess;
|
|
204
|
-
// Now check which
|
|
205
|
-
//
|
|
206
|
-
|
|
227
|
+
// Now check which CodeGen-OWNED views failed to refresh and regenerate them. A fully custom
|
|
228
|
+
// view is not in this list — we can't regenerate one. A layered entity IS, because the view
|
|
229
|
+
// CodeGen writes for it is the inner one, and `GeneratedViewName` resolves to exactly that.
|
|
230
|
+
const failedEntities = await this.identifyFailedViewRefreshes(ds, [...l, ...layeredEntities]);
|
|
207
231
|
if (failedEntities.length > 0) {
|
|
208
232
|
logMessage(`Detected ${failedEntities.length} views that failed to refresh. Attempting to regenerate view definitions...`, 'Info');
|
|
209
233
|
// Regenerate the failed views using the SQL CodeGen approach
|
|
@@ -223,8 +247,11 @@ export class SQLUtilityBase {
|
|
|
223
247
|
}
|
|
224
248
|
getBaseViewFiles(entity) {
|
|
225
249
|
const files = [];
|
|
226
|
-
|
|
227
|
-
|
|
250
|
+
// The VIEW file holds what CodeGen wrote — the inner view for a layered entity. The PERMISSIONS
|
|
251
|
+
// file targets the PUBLIC view, because that is the object consumers read.
|
|
252
|
+
const isGenerated = entity.BaseViewGenerated || entity.HasLayeredBaseView;
|
|
253
|
+
const baseViewFile = this.getDBObjectFileName('view', entity.SchemaName, entity.GeneratedViewName, false, isGenerated);
|
|
254
|
+
const baseViewPermissionsFile = this.getDBObjectFileName('view', entity.SchemaName, entity.BaseView, true, isGenerated);
|
|
228
255
|
const baseViewFilePath = path.join(outputDir('SQL', true), baseViewFile);
|
|
229
256
|
const baseViewPermissionsFilePath = path.join(outputDir('SQL', true), baseViewPermissionsFile);
|
|
230
257
|
if (fs.existsSync(baseViewFilePath)) {
|
|
@@ -272,11 +299,14 @@ export class SQLUtilityBase {
|
|
|
272
299
|
const failedEntities = [];
|
|
273
300
|
for (const entity of entities) {
|
|
274
301
|
try {
|
|
275
|
-
|
|
302
|
+
// GeneratedViewName, not BaseView: for a layered entity the object CodeGen can actually
|
|
303
|
+
// rebuild is the inner view. Testing the application-owned outer view instead would report
|
|
304
|
+
// failures regeneration cannot fix. Identical to BaseView for every non-layered entity.
|
|
305
|
+
const testQuery = this.dbProvider.generateViewTestQuerySQL(entity.SchemaName, entity.GeneratedViewName);
|
|
276
306
|
await ds.query(testQuery);
|
|
277
307
|
}
|
|
278
308
|
catch (e) {
|
|
279
|
-
logMessage(`View ${entity.SchemaName}.${entity.
|
|
309
|
+
logMessage(`View ${entity.SchemaName}.${entity.GeneratedViewName} is invalid and will be regenerated`, 'Warning');
|
|
280
310
|
failedEntities.push(entity);
|
|
281
311
|
}
|
|
282
312
|
}
|
|
@@ -304,7 +334,9 @@ export class SQLUtilityBase {
|
|
|
304
334
|
// restoring dependents that CodeGen is about to rebuild with a fresh
|
|
305
335
|
// definition — the stale captured definition could otherwise be
|
|
306
336
|
// incompatible with the newly-regenerated target.
|
|
307
|
-
|
|
337
|
+
// Keyed on the view CodeGen writes — the inner view for a layered entity — since that is the
|
|
338
|
+
// object about to be rebuilt with a fresh definition.
|
|
339
|
+
const willRegenerate = new Set(entities.map(e => `${e.SchemaName}.${e.GeneratedViewName}`));
|
|
308
340
|
for (const entity of entities) {
|
|
309
341
|
try {
|
|
310
342
|
logMessage(`Regenerating base view for ${entity.Name}...`, 'Info');
|
package/dist/Database/sql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/Database/sql.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/Database/sql.ts"],"names":[],"mappings":"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"}
|
|
@@ -176,6 +176,19 @@ export declare class SQLCodeGenBase {
|
|
|
176
176
|
protected getModifiedCustomBaseViewEntities(): EntityInfo[];
|
|
177
177
|
/**
|
|
178
178
|
* Builds a combined SQL string of sp_refreshview statements for the given entities.
|
|
179
|
+
*
|
|
180
|
+
* For a LAYERED entity the outer refresh is guarded on the application-owned `BaseView`
|
|
181
|
+
* existing, matching {@link generateCustomBaseViewRefreshAndPermissions}. On the first pass
|
|
182
|
+
* after layering is enabled the outer view cannot exist yet — it selects from the inner view
|
|
183
|
+
* that same pass creates — so an unguarded refresh here fails the documented setup procedure.
|
|
184
|
+
*
|
|
185
|
+
* The inner view is refreshed first, before the outer. That ordering is defensive rather than
|
|
186
|
+
* load-bearing: every entity reaching this method is in the modified/new list (see
|
|
187
|
+
* {@link getModifiedCustomBaseViewEntities}), and `logSQLForNewOrModifiedEntity` forces a
|
|
188
|
+
* modified entity's base view DDL into the same migration regardless of whether its text
|
|
189
|
+
* changed — so the inner view is already dropped and recreated in an earlier step, which
|
|
190
|
+
* resets its cached column list more thoroughly than a refresh would. The ordering is kept
|
|
191
|
+
* anyway so this path cannot become wrong if that coupling is ever loosened.
|
|
179
192
|
*/
|
|
180
193
|
protected buildCustomBaseViewRefreshSQL(entities: EntityInfo[]): string;
|
|
181
194
|
generateSingleEntitySQLToSeparateFiles(options: {
|
|
@@ -271,6 +284,33 @@ export declare class SQLCodeGenBase {
|
|
|
271
284
|
viewPermSQL: string;
|
|
272
285
|
}>;
|
|
273
286
|
protected generateViewPermissions(entity: EntityInfo): string;
|
|
287
|
+
/**
|
|
288
|
+
* Emits the refresh + permission statements for an entity whose `BaseView` CodeGen does NOT
|
|
289
|
+
* write — fully custom, or the application-owned outer half of a layered entity.
|
|
290
|
+
*
|
|
291
|
+
* The refresh runs before the grants so SQL Server picks up schema changes (new columns from
|
|
292
|
+
* migrations) before permissions are applied; developers no longer add it by hand.
|
|
293
|
+
*
|
|
294
|
+
* Two things are specific to LAYERED entities:
|
|
295
|
+
*
|
|
296
|
+
* - **Inner before outer.** The custom view selects `g.*` from the generated one, and a view
|
|
297
|
+
* caches its column list. Refreshing the outer against a stale inner re-caches the OLD
|
|
298
|
+
* columns, so a newly added column stays missing — indistinguishable from never having been
|
|
299
|
+
* added at all, which is the exact failure layering exists to eliminate.
|
|
300
|
+
* - **The outer view may not exist yet.** On the first pass after layering is enabled it cannot
|
|
301
|
+
* exist: it selects from the inner view that this very pass creates. Unguarded, the refresh
|
|
302
|
+
* and the `GRANT` both fail — and the step they fail on is the documented setup procedure, so
|
|
303
|
+
* there would be no way to adopt the feature at all. Guarding makes the bootstrap pass skip
|
|
304
|
+
* them and leaves every later pass identical to the unguarded form.
|
|
305
|
+
*/
|
|
306
|
+
protected generateCustomBaseViewRefreshAndPermissions(entity: EntityInfo, permissionsHeader: string, permissionsBody: string): string;
|
|
307
|
+
/**
|
|
308
|
+
* Wraps SQL in an existence check on the application-owned `BaseView`, but only for a layered
|
|
309
|
+
* entity — that is the one arrangement where the view legitimately may not exist yet. For a
|
|
310
|
+
* fully custom base view the object is a standing prerequisite, so a missing one stays a loud
|
|
311
|
+
* failure rather than becoming a silent skip.
|
|
312
|
+
*/
|
|
313
|
+
private guardOnApplicationOwnedView;
|
|
274
314
|
protected generateBaseViewJoins(entity: EntityInfo, entityFields: EntityFieldInfo[]): string;
|
|
275
315
|
/**
|
|
276
316
|
* Check if an entity has native latitude/longitude fields marked with GeoLatitude/GeoLongitude ExtendedType.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql_codegen.d.ts","sourceRoot":"","sources":["../../src/Database/sql_codegen.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sql_codegen.d.ts","sourceRoot":"","sources":["../../src/Database/sql_codegen.ts"],"names":[],"mappings":"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"}
|