@memberjunction/codegen-lib 6.1.0-edge.5 → 6.1.0-edge.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -0
- package/dist/Angular/angular-codegen.d.ts +9 -6
- package/dist/Angular/angular-codegen.d.ts.map +1 -1
- package/dist/Angular/angular-codegen.js +80 -51
- package/dist/Angular/angular-codegen.js.map +1 -1
- package/dist/Angular/join-grid-related-entity-component.d.ts.map +1 -1
- package/dist/Angular/join-grid-related-entity-component.js +5 -2
- package/dist/Angular/join-grid-related-entity-component.js.map +1 -1
- package/dist/Angular/related-entity-components.d.ts +11 -0
- package/dist/Angular/related-entity-components.d.ts.map +1 -1
- package/dist/Angular/related-entity-components.js +23 -0
- package/dist/Angular/related-entity-components.js.map +1 -1
- package/dist/Angular/timeline-related-entity-component.d.ts.map +1 -1
- package/dist/Angular/timeline-related-entity-component.js +3 -2
- package/dist/Angular/timeline-related-entity-component.js.map +1 -1
- package/dist/Config/config.d.ts +29 -2
- package/dist/Config/config.d.ts.map +1 -1
- package/dist/Config/config.js +54 -5
- package/dist/Config/config.js.map +1 -1
- package/dist/Database/codeGenDatabaseProvider.d.ts +64 -1
- package/dist/Database/codeGenDatabaseProvider.d.ts.map +1 -1
- package/dist/Database/codeGenDatabaseProvider.js +49 -3
- package/dist/Database/codeGenDatabaseProvider.js.map +1 -1
- package/dist/Database/dbSchema.js +2 -1
- package/dist/Database/dbSchema.js.map +1 -1
- package/dist/Database/entity-field-change-tracking.d.ts +53 -0
- package/dist/Database/entity-field-change-tracking.d.ts.map +1 -0
- package/dist/Database/entity-field-change-tracking.js +120 -0
- package/dist/Database/entity-field-change-tracking.js.map +1 -0
- package/dist/Database/entity-level-tree-cycles.d.ts.map +1 -1
- package/dist/Database/entity-level-tree-cycles.js +3 -2
- package/dist/Database/entity-level-tree-cycles.js.map +1 -1
- package/dist/Database/field-metadata-lock.d.ts +47 -0
- package/dist/Database/field-metadata-lock.d.ts.map +1 -0
- package/dist/Database/field-metadata-lock.js +159 -0
- package/dist/Database/field-metadata-lock.js.map +1 -0
- package/dist/Database/manage-metadata.d.ts +133 -51
- package/dist/Database/manage-metadata.d.ts.map +1 -1
- package/dist/Database/manage-metadata.js +574 -306
- package/dist/Database/manage-metadata.js.map +1 -1
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.d.ts +10 -2
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.d.ts.map +1 -1
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js +113 -42
- package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js.map +1 -1
- package/dist/Database/providers/postgresql/metadataSupportObjects.js +31 -8
- package/dist/Database/providers/postgresql/metadataSupportObjects.js.map +1 -1
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.d.ts +47 -2
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.d.ts.map +1 -1
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js +176 -30
- package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js.map +1 -1
- package/dist/Database/providers/sqlserver/__tests__/BaseViewEmissionGoldenMaster.test.js +15 -2
- package/dist/Database/providers/sqlserver/__tests__/BaseViewEmissionGoldenMaster.test.js.map +1 -1
- package/dist/Database/reconcileFieldLevelSecurity.d.ts +22 -0
- package/dist/Database/reconcileFieldLevelSecurity.d.ts.map +1 -0
- package/dist/Database/reconcileFieldLevelSecurity.js +47 -0
- package/dist/Database/reconcileFieldLevelSecurity.js.map +1 -0
- package/dist/Database/sql_codegen.d.ts +34 -0
- package/dist/Database/sql_codegen.d.ts.map +1 -1
- package/dist/Database/sql_codegen.js +152 -14
- package/dist/Database/sql_codegen.js.map +1 -1
- package/dist/Manifest/GenerateClassRegistrationsManifest.d.ts.map +1 -1
- package/dist/Manifest/GenerateClassRegistrationsManifest.js +3 -2
- package/dist/Manifest/GenerateClassRegistrationsManifest.js.map +1 -1
- package/dist/Misc/action_subclasses_codegen.js +2 -2
- package/dist/Misc/action_subclasses_codegen.js.map +1 -1
- package/dist/Misc/advanced_generation.d.ts +17 -5
- package/dist/Misc/advanced_generation.d.ts.map +1 -1
- package/dist/Misc/advanced_generation.js +69 -23
- package/dist/Misc/advanced_generation.js.map +1 -1
- package/dist/Misc/codegen-reporter.d.ts +2 -0
- package/dist/Misc/codegen-reporter.d.ts.map +1 -1
- package/dist/Misc/codegen-reporter.js +6 -2
- package/dist/Misc/codegen-reporter.js.map +1 -1
- package/dist/Misc/entity_subclasses_codegen.d.ts.map +1 -1
- package/dist/Misc/entity_subclasses_codegen.js +30 -20
- package/dist/Misc/entity_subclasses_codegen.js.map +1 -1
- package/dist/Misc/graphql_server_codegen.d.ts +39 -0
- package/dist/Misc/graphql_server_codegen.d.ts.map +1 -1
- package/dist/Misc/graphql_server_codegen.js +63 -9
- package/dist/Misc/graphql_server_codegen.js.map +1 -1
- package/dist/Misc/remote_operations_codegen.d.ts +36 -1
- package/dist/Misc/remote_operations_codegen.d.ts.map +1 -1
- package/dist/Misc/remote_operations_codegen.js +178 -8
- package/dist/Misc/remote_operations_codegen.js.map +1 -1
- package/dist/Misc/schema-emit.d.ts.map +1 -1
- package/dist/Misc/schema-emit.js +2 -1
- package/dist/Misc/schema-emit.js.map +1 -1
- package/dist/Misc/sql_logging.d.ts +63 -8
- package/dist/Misc/sql_logging.d.ts.map +1 -1
- package/dist/Misc/sql_logging.js +169 -42
- package/dist/Misc/sql_logging.js.map +1 -1
- package/dist/Misc/util.d.ts +12 -0
- package/dist/Misc/util.d.ts.map +1 -1
- package/dist/Misc/util.js +71 -8
- package/dist/Misc/util.js.map +1 -1
- package/dist/plugins/index.d.ts +3 -0
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +28 -1
- package/dist/plugins/index.js.map +1 -1
- package/dist/runCodeGen.d.ts.map +1 -1
- package/dist/runCodeGen.js +134 -26
- package/dist/runCodeGen.js.map +1 -1
- package/package.json +29 -29
|
@@ -7,11 +7,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { EntityInfo, CodeNameFromString, ResolveStartupMode } from '@memberjunction/core';
|
|
8
8
|
import { CodeGenDatabaseProvider, } from '../../codeGenDatabaseProvider.js';
|
|
9
9
|
import { SQLServerDialect } from '@memberjunction/sql-dialect';
|
|
10
|
-
import { RegisterClass } from '@memberjunction/global';
|
|
10
|
+
import { ordinalCompare, RegisterClass } from '@memberjunction/global';
|
|
11
11
|
import { sortBySequenceAndCreatedAt } from '../../../Misc/util.js';
|
|
12
12
|
import { configInfo, dbDatabase, mj_core_schema } from '../../../Config/config.js';
|
|
13
13
|
import { MSSQLConnection, getSqlConfig } from '../../../Config/db-connection.js';
|
|
14
|
-
import { logError, logWarning, startSpinner, succeedSpinner } from '../../../Misc/status_logging.js';
|
|
14
|
+
import { logError, logStatus, logWarning, startSpinner, succeedSpinner } from '../../../Misc/status_logging.js';
|
|
15
15
|
import { SQLServerProviderConfigData, setupSQLServerClient } from '@memberjunction/sqlserver-dataprovider';
|
|
16
16
|
import { UserCache } from '@memberjunction/generic-database-provider';
|
|
17
17
|
import { SQLServerCodeGenConnection } from './SQLServerCodeGenConnection.js';
|
|
@@ -30,6 +30,18 @@ const ssDialect = new SQLServerDialect();
|
|
|
30
30
|
* override codegen behavior — same extension hook every other MJ class uses.
|
|
31
31
|
*/
|
|
32
32
|
let SQLServerCodeGenProvider = class SQLServerCodeGenProvider extends CodeGenDatabaseProvider {
|
|
33
|
+
constructor() {
|
|
34
|
+
super(...arguments);
|
|
35
|
+
// ─── PERMISSIONS ─────────────────────────────────────────────────────
|
|
36
|
+
/**
|
|
37
|
+
* B3: roles with a blank `SQLName` are app-tier-only BY DESIGN (decision D3a) — the grant
|
|
38
|
+
* emitters skip them, and this makes the skip visible: one INFO line per role per run, so
|
|
39
|
+
* "why doesn't my role work for direct SQL?" is answerable without reading provider source.
|
|
40
|
+
*/
|
|
41
|
+
this._appTierOnlyRolesLogged = new Set();
|
|
42
|
+
/** Service-protected DENY skips are warned once per role per run (see generateFieldSecurityDenies). */
|
|
43
|
+
this._serviceProtectedDenySkipsWarned = new Set();
|
|
44
|
+
}
|
|
33
45
|
/** @inheritdoc */
|
|
34
46
|
get Dialect() {
|
|
35
47
|
return ssDialect;
|
|
@@ -202,7 +214,8 @@ SELECT * FROM [${esc(schema)}].[${esc(tableName)}];`;
|
|
|
202
214
|
*/
|
|
203
215
|
generateCRUDCreate(entity) {
|
|
204
216
|
const spName = this.getCRUDRoutineName(entity, 'Create');
|
|
205
|
-
const firstKey = entity.FirstPrimaryKey;
|
|
217
|
+
const firstKey = entity.FirstPrimaryKey; // first-pk-ok: read only inside the UNIQUEIDENTIFIER branch, which is guarded by entity.PrimaryKeys.length === 1; the IDENTITY and composite branches iterate entity.PrimaryKeys
|
|
218
|
+
const identityKey = entity.PrimaryKeys.find(k => k.AutoIncrement);
|
|
206
219
|
const efString = this.generateCRUDParamString(entity.Fields, false);
|
|
207
220
|
const permissions = this.generateCRUDPermissions(entity, spName, 'Create');
|
|
208
221
|
let preInsertCode = '';
|
|
@@ -210,8 +223,15 @@ SELECT * FROM [${esc(schema)}].[${esc(tableName)}];`;
|
|
|
210
223
|
let selectInsertedRecord = '';
|
|
211
224
|
let additionalFieldList = '';
|
|
212
225
|
let additionalValueList = '';
|
|
213
|
-
if (
|
|
214
|
-
|
|
226
|
+
if (identityKey) {
|
|
227
|
+
// IDENTITY key. On a composite key such as (TenantID, ID IDENTITY) the remaining key
|
|
228
|
+
// columns are caller-supplied: they must be inserted and included in the row lookup.
|
|
229
|
+
// For a single-column identity key callerSuppliedKeys is empty and nothing is added.
|
|
230
|
+
const callerSuppliedKeys = entity.PrimaryKeys.filter(k => !k.AutoIncrement);
|
|
231
|
+
additionalFieldList = callerSuppliedKeys.map(k => `[${k.Name}]`).join(',\n ');
|
|
232
|
+
additionalValueList = callerSuppliedKeys.map(k => `@${k.CodeName}`).join(',\n ');
|
|
233
|
+
const callerSuppliedKeyPredicates = callerSuppliedKeys.map(k => ` AND [${k.Name}] = @${k.CodeName}`).join('');
|
|
234
|
+
selectInsertedRecord = `SELECT * FROM [${entity.SchemaName}].[${entity.BaseView}] WHERE [${identityKey.Name}] = SCOPE_IDENTITY()${callerSuppliedKeyPredicates}`;
|
|
215
235
|
}
|
|
216
236
|
else if (firstKey.Type.toLowerCase().trim() === 'uniqueidentifier' && entity.PrimaryKeys.length === 1) {
|
|
217
237
|
const hasDefaultValue = firstKey.DefaultValue && firstKey.DefaultValue.trim().length > 0;
|
|
@@ -666,8 +686,8 @@ CREATE INDEX ${indexName} ON [${entity.SchemaName}].[${entity.BaseTable}] (${col
|
|
|
666
686
|
if (entity.PrimaryKeys.length !== 1) {
|
|
667
687
|
throw new Error(`[Hierarchy] Entity '${entity.Name}' has ${entity.PrimaryKeys.length} primary key fields. MemberJunction hierarchy TVF generation requires a single-column primary key.`);
|
|
668
688
|
}
|
|
669
|
-
const primaryKey = entity.FirstPrimaryKey.Name;
|
|
670
|
-
const primaryKeyType = entity.FirstPrimaryKey.SQLFullType;
|
|
689
|
+
const primaryKey = entity.FirstPrimaryKey.Name; // first-pk-ok: guarded by the PrimaryKeys.length !== 1 throw above; hierarchy TVFs are single-column by design
|
|
690
|
+
const primaryKeyType = entity.FirstPrimaryKey.SQLFullType; // first-pk-ok: guarded by the PrimaryKeys.length !== 1 throw above; hierarchy TVFs are single-column by design
|
|
671
691
|
const schemaName = entity.SchemaName;
|
|
672
692
|
const tableName = entity.BaseTable;
|
|
673
693
|
const fieldName = field.Name;
|
|
@@ -738,8 +758,8 @@ GO
|
|
|
738
758
|
if (entity.PrimaryKeys.length !== 1) {
|
|
739
759
|
throw new Error(`[Hierarchy] Entity '${entity.Name}' has ${entity.PrimaryKeys.length} primary key fields. MemberJunction hierarchy TVF generation requires a single-column primary key.`);
|
|
740
760
|
}
|
|
741
|
-
const primaryKey = entity.FirstPrimaryKey.Name;
|
|
742
|
-
const primaryKeyType = entity.FirstPrimaryKey.SQLFullType;
|
|
761
|
+
const primaryKey = entity.FirstPrimaryKey.Name; // first-pk-ok: guarded by the PrimaryKeys.length !== 1 throw above; hierarchy TVFs are single-column by design
|
|
762
|
+
const primaryKeyType = entity.FirstPrimaryKey.SQLFullType; // first-pk-ok: guarded by the PrimaryKeys.length !== 1 throw above; hierarchy TVFs are single-column by design
|
|
743
763
|
const schemaName = entity.SchemaName;
|
|
744
764
|
const tableName = entity.BaseTable;
|
|
745
765
|
const fieldName = field.Name;
|
|
@@ -806,8 +826,8 @@ GO
|
|
|
806
826
|
if (entity.PrimaryKeys.length !== 1) {
|
|
807
827
|
throw new Error(`[Hierarchy] Entity '${entity.Name}' has ${entity.PrimaryKeys.length} primary key fields. MemberJunction hierarchy TVF generation requires a single-column primary key.`);
|
|
808
828
|
}
|
|
809
|
-
const primaryKey = entity.FirstPrimaryKey.Name;
|
|
810
|
-
const primaryKeyType = entity.FirstPrimaryKey.SQLFullType;
|
|
829
|
+
const primaryKey = entity.FirstPrimaryKey.Name; // first-pk-ok: guarded by the PrimaryKeys.length !== 1 throw above; hierarchy TVFs are single-column by design
|
|
830
|
+
const primaryKeyType = entity.FirstPrimaryKey.SQLFullType; // first-pk-ok: guarded by the PrimaryKeys.length !== 1 throw above; hierarchy TVFs are single-column by design
|
|
811
831
|
const schemaName = entity.SchemaName;
|
|
812
832
|
const tableName = entity.BaseTable;
|
|
813
833
|
const fieldName = field.Name;
|
|
@@ -883,7 +903,7 @@ GO
|
|
|
883
903
|
const classNameFirstChar = entity.BaseTableCodeName.charAt(0).toLowerCase();
|
|
884
904
|
const schemaName = entity.SchemaName;
|
|
885
905
|
const functionName = `fn${entity.BaseTable}${field.Name}_GetHierarchyMeta`;
|
|
886
|
-
const primaryKey = entity.FirstPrimaryKey.Name;
|
|
906
|
+
const primaryKey = entity.FirstPrimaryKey.Name; // first-pk-ok: hierarchy TVF argument; sql_codegen.getHierarchyFKs skips composite-key entities and the TVF generator throws for them
|
|
887
907
|
return `OUTER APPLY\n [${schemaName}].[${functionName}]([${classNameFirstChar}].[${primaryKey}], [${classNameFirstChar}].[${field.Name}]) AS ${alias}`;
|
|
888
908
|
}
|
|
889
909
|
/**
|
|
@@ -896,8 +916,8 @@ GO
|
|
|
896
916
|
if (entity.PrimaryKeys.length !== 1) {
|
|
897
917
|
throw new Error(`[Hierarchy] Entity '${entity.Name}' has ${entity.PrimaryKeys.length} primary key fields. MemberJunction hierarchy TVF generation requires a single-column primary key.`);
|
|
898
918
|
}
|
|
899
|
-
const primaryKey = entity.FirstPrimaryKey.Name;
|
|
900
|
-
const primaryKeyType = entity.FirstPrimaryKey.SQLFullType;
|
|
919
|
+
const primaryKey = entity.FirstPrimaryKey.Name; // first-pk-ok: guarded by the PrimaryKeys.length !== 1 throw above; hierarchy TVFs are single-column by design
|
|
920
|
+
const primaryKeyType = entity.FirstPrimaryKey.SQLFullType; // first-pk-ok: guarded by the PrimaryKeys.length !== 1 throw above; hierarchy TVFs are single-column by design
|
|
901
921
|
const schemaName = entity.SchemaName;
|
|
902
922
|
const tableName = entity.BaseTable;
|
|
903
923
|
const fieldName = field.Name;
|
|
@@ -969,10 +989,102 @@ GO
|
|
|
969
989
|
const classNameFirstChar = entity.BaseTableCodeName.charAt(0).toLowerCase();
|
|
970
990
|
const schemaName = entity.SchemaName;
|
|
971
991
|
const functionName = `fn${entity.BaseTable}${field.Name}_GetRootID`;
|
|
972
|
-
const primaryKey = entity.FirstPrimaryKey.Name;
|
|
992
|
+
const primaryKey = entity.FirstPrimaryKey.Name; // first-pk-ok: hierarchy TVF argument; sql_codegen.getHierarchyFKs skips composite-key entities and the TVF generator throws for them
|
|
973
993
|
return `OUTER APPLY\n [${schemaName}].[${functionName}]([${classNameFirstChar}].[${primaryKey}], [${classNameFirstChar}].[${field.Name}]) AS ${alias}`;
|
|
974
994
|
}
|
|
975
|
-
|
|
995
|
+
logAppTierOnlyRoleSkip(roleName) {
|
|
996
|
+
const name = (roleName ?? '').trim();
|
|
997
|
+
if (!name || this._appTierOnlyRolesLogged.has(name))
|
|
998
|
+
return;
|
|
999
|
+
this._appTierOnlyRolesLogged.add(name);
|
|
1000
|
+
logStatus(` ℹ️ Role '${name}' is app-tier-only (no SQLName); no DB grants emitted.`);
|
|
1001
|
+
}
|
|
1002
|
+
/**
|
|
1003
|
+
* Reconciliation preamble (decision D7): REVOKE every live catalog permission entry on
|
|
1004
|
+
* this object held by a MANAGED role, so the GRANTs/DENYs that follow re-assert exactly
|
|
1005
|
+
* the current desired state. This is what makes REMOVAL take effect — deleting an
|
|
1006
|
+
* `EntityPermission` or `EntityFieldPermission` row stops the assert, and the standing
|
|
1007
|
+
* REVOKE clears the stale grant/deny on the next run (the assert-only model never revoked
|
|
1008
|
+
* anything; a deleted Deny row would otherwise block direct users forever). Removing a
|
|
1009
|
+
* DENY is also spelled REVOKE. Grants to principals outside the managed scope are not in
|
|
1010
|
+
* the snapshot and are never touched. Empty when no run context (e.g. catalog unreadable)
|
|
1011
|
+
* — emission degrades to the historical assert-only behavior.
|
|
1012
|
+
*/
|
|
1013
|
+
generateManagedPermissionRevokes(schemaName, objectName) {
|
|
1014
|
+
const context = this._fieldSecurityRunContext;
|
|
1015
|
+
if (!context)
|
|
1016
|
+
return '';
|
|
1017
|
+
const entries = context.CatalogPermissions.get(`${schemaName}.${objectName}`.toLowerCase());
|
|
1018
|
+
if (!entries || entries.length === 0)
|
|
1019
|
+
return '';
|
|
1020
|
+
let sOutput = '';
|
|
1021
|
+
for (const entry of entries) {
|
|
1022
|
+
const column = entry.ColumnName ? ` ([${entry.ColumnName}])` : '';
|
|
1023
|
+
sOutput += `\nREVOKE ${entry.PermissionName}${column} ON [${schemaName}].[${objectName}] FROM [${entry.RoleName}]`;
|
|
1024
|
+
}
|
|
1025
|
+
return sOutput;
|
|
1026
|
+
}
|
|
1027
|
+
/**
|
|
1028
|
+
* Field-level security column DENYs: for each role holding a `ReadAccess = 'Deny'` row on
|
|
1029
|
+
* this entity's fields, emit `DENY SELECT ([col], ...) ON [schema].[BaseView] TO [role]` so
|
|
1030
|
+
* a SQL user connecting DIRECTLY with that role cannot read the denied columns. Constraints:
|
|
1031
|
+
* - **Only when the entity has `EnableFieldLevelSecurity`.** Rows on a disabled entity are
|
|
1032
|
+
* retained but inactive at the app tier, so mirroring them would make the two tiers
|
|
1033
|
+
* disagree — and the DB tier is the one an administrator cannot see. Disabling an entity
|
|
1034
|
+
* revokes its DENYs on the next run via the reconciliation pass below.
|
|
1035
|
+
* - **Explicit `ReadAccess = 'Deny'` only** — never synthesized from a `No Access` or a
|
|
1036
|
+
* missing row. `No Access` is neutral and blocks nothing on its own, so mirroring it
|
|
1037
|
+
* would make the DB tier stricter than the app tier rather than the conservative subset
|
|
1038
|
+
* it is meant to be. The emitted pattern stays object-level GRANT + column-level DENY,
|
|
1039
|
+
* avoiding SQL Server's column-GRANT-overrides-object-DENY quirk entirely.
|
|
1040
|
+
* - **Custom roles only** — the orchestrator's run context excludes the standard
|
|
1041
|
+
* UI/Developer/Integration roles from `RoleSQLNameByID`, so Deny rows against them are
|
|
1042
|
+
* app-tier-enforced only (MJ_Connect keeps its cdp_* memberships).
|
|
1043
|
+
* - **Service-login backstop**: a role any protected principal is a member of is skipped
|
|
1044
|
+
* with a prominent warning — a DENY there would strip the column from the API service
|
|
1045
|
+
* login itself (DENY beats every sibling role's GRANT).
|
|
1046
|
+
* - **Unrestrictable targets** (PKs, `__mj_` columns, the security/identity entities) are
|
|
1047
|
+
* filtered defensively even though save-time guards should make such rows impossible.
|
|
1048
|
+
*/
|
|
1049
|
+
generateFieldSecurityDenies(entity) {
|
|
1050
|
+
const context = this._fieldSecurityRunContext;
|
|
1051
|
+
if (!context)
|
|
1052
|
+
return '';
|
|
1053
|
+
if (!entity.EnableFieldLevelSecurity)
|
|
1054
|
+
return ''; // rules retained but inactive — mirror nothing
|
|
1055
|
+
const deniedColumnsByRole = new Map();
|
|
1056
|
+
for (const field of entity.Fields) {
|
|
1057
|
+
if (!field.HasFieldPermissions)
|
|
1058
|
+
continue;
|
|
1059
|
+
if (field.IsUnrestrictableField || field.IsOnUnrestrictableEntity)
|
|
1060
|
+
continue; // defensive — save-time guards should prevent these rows
|
|
1061
|
+
for (const fp of field.FieldPermissions) {
|
|
1062
|
+
if ((fp.ReadAccess ?? '').trim().toLowerCase() !== 'deny')
|
|
1063
|
+
continue;
|
|
1064
|
+
const sqlName = context.RoleSQLNameByID.get((fp.RoleID ?? '').trim().toLowerCase());
|
|
1065
|
+
if (!sqlName)
|
|
1066
|
+
continue; // blank SQLName (app-tier-only) or standard role (never DB-mirrored)
|
|
1067
|
+
if (context.ServiceProtectedRoleSQLNames.has(sqlName.trim().toLowerCase())) {
|
|
1068
|
+
if (!this._serviceProtectedDenySkipsWarned.has(sqlName)) {
|
|
1069
|
+
this._serviceProtectedDenySkipsWarned.add(sqlName);
|
|
1070
|
+
logWarning(` ⚠️ SKIPPED field-security DENY to role '${sqlName}': a protected service login is a member of this role. ` +
|
|
1071
|
+
`A column DENY here would strip the column from the service login itself (DENY beats every sibling GRANT) and break the API for all users. ` +
|
|
1072
|
+
`Remove the service login from the role to enable DB-tier enforcement; app-tier enforcement is unaffected.`);
|
|
1073
|
+
}
|
|
1074
|
+
continue;
|
|
1075
|
+
}
|
|
1076
|
+
const columns = deniedColumnsByRole.get(sqlName) ?? [];
|
|
1077
|
+
if (!columns.includes(field.Name))
|
|
1078
|
+
columns.push(field.Name);
|
|
1079
|
+
deniedColumnsByRole.set(sqlName, columns);
|
|
1080
|
+
}
|
|
1081
|
+
}
|
|
1082
|
+
let sOutput = '';
|
|
1083
|
+
for (const [sqlName, columns] of [...deniedColumnsByRole.entries()].sort(([a], [b]) => ordinalCompare(a, b))) {
|
|
1084
|
+
sOutput += `\nDENY SELECT (${columns.map(c => `[${c}]`).join(', ')}) ON [${entity.SchemaName}].[${entity.BaseView}] TO [${sqlName}]`;
|
|
1085
|
+
}
|
|
1086
|
+
return sOutput;
|
|
1087
|
+
}
|
|
976
1088
|
/** @inheritdoc */
|
|
977
1089
|
generateViewPermissions(entity) {
|
|
978
1090
|
let sOutput = '';
|
|
@@ -980,13 +1092,22 @@ GO
|
|
|
980
1092
|
if (ep.RoleSQLName && ep.RoleSQLName.length > 0) {
|
|
981
1093
|
sOutput += (sOutput === '' ? `GRANT SELECT ON [${entity.SchemaName}].[${entity.BaseView}] TO ` : ', ') + `[${ep.RoleSQLName}]`;
|
|
982
1094
|
}
|
|
1095
|
+
else {
|
|
1096
|
+
this.logAppTierOnlyRoleSkip(ep.Role);
|
|
1097
|
+
}
|
|
983
1098
|
}
|
|
984
|
-
|
|
1099
|
+
// Order matters: wipe (REVOKE within the managed scope) → assert grants → assert
|
|
1100
|
+
// field-security DENYs. The whole body executes every run via applyPermissions.
|
|
1101
|
+
const revokes = this.generateManagedPermissionRevokes(entity.SchemaName, entity.BaseView);
|
|
1102
|
+
const grants = (sOutput === '' ? '' : '\n') + sOutput;
|
|
1103
|
+
const denies = this.generateFieldSecurityDenies(entity);
|
|
1104
|
+
return revokes + grants + denies;
|
|
985
1105
|
}
|
|
986
1106
|
/**
|
|
987
1107
|
* Generates `GRANT EXECUTE` SQL for a CRUD stored procedure, granting permission only
|
|
988
1108
|
* to roles whose `EntityPermission` record allows the specified CRUD operation type.
|
|
989
|
-
* Produces a single comma-separated `GRANT EXECUTE ON ... TO [role1], [role2]` statement
|
|
1109
|
+
* Produces a single comma-separated `GRANT EXECUTE ON ... TO [role1], [role2]` statement,
|
|
1110
|
+
* preceded by the managed-scope reconciliation REVOKEs (see generateManagedPermissionRevokes).
|
|
990
1111
|
*/
|
|
991
1112
|
generateCRUDPermissions(entity, routineName, type) {
|
|
992
1113
|
let sOutput = '';
|
|
@@ -999,8 +1120,12 @@ GO
|
|
|
999
1120
|
sOutput += (sOutput === '' ? `GRANT EXECUTE ON [${entity.SchemaName}].[${routineName}] TO ` : ', ') + `[${ep.RoleSQLName}]`;
|
|
1000
1121
|
}
|
|
1001
1122
|
}
|
|
1123
|
+
else {
|
|
1124
|
+
this.logAppTierOnlyRoleSkip(ep.Role);
|
|
1125
|
+
}
|
|
1002
1126
|
}
|
|
1003
|
-
|
|
1127
|
+
const revokes = this.generateManagedPermissionRevokes(entity.SchemaName, routineName);
|
|
1128
|
+
return revokes + (sOutput === '' ? '' : '\n') + sOutput;
|
|
1004
1129
|
}
|
|
1005
1130
|
/** @inheritdoc */
|
|
1006
1131
|
generateFullTextSearchPermissions(entity, functionName) {
|
|
@@ -1010,9 +1135,13 @@ GO
|
|
|
1010
1135
|
if (ep.RoleSQLName && ep.RoleSQLName.length > 0) {
|
|
1011
1136
|
sOutput += (sOutput === '' ? `GRANT SELECT ON [${entity.SchemaName}].[${functionName}] TO ` : ', ') + `[${ep.RoleSQLName}]`;
|
|
1012
1137
|
}
|
|
1138
|
+
else {
|
|
1139
|
+
this.logAppTierOnlyRoleSkip(ep.Role);
|
|
1140
|
+
}
|
|
1013
1141
|
}
|
|
1014
1142
|
}
|
|
1015
|
-
|
|
1143
|
+
const revokes = this.generateManagedPermissionRevokes(entity.SchemaName, functionName);
|
|
1144
|
+
return revokes + (sOutput === '' ? '' : '\n') + sOutput;
|
|
1016
1145
|
}
|
|
1017
1146
|
// ─── CASCADE DELETES ─────────────────────────────────────────────────
|
|
1018
1147
|
/** @inheritdoc */
|
|
@@ -1030,7 +1159,13 @@ GO
|
|
|
1030
1159
|
generateCascadeCursorDelete(parentEntity, relatedEntity, fkField) {
|
|
1031
1160
|
const qi = this.Dialect.QuoteIdentifier.bind(this.Dialect);
|
|
1032
1161
|
const qs = this.Dialect.QuoteSchema.bind(this.Dialect);
|
|
1033
|
-
const
|
|
1162
|
+
const parentKey = this.resolveCascadeParentKeyField(parentEntity, fkField);
|
|
1163
|
+
if (!parentKey) {
|
|
1164
|
+
const warning = this.unresolvedCascadeKeyComment(parentEntity, relatedEntity, fkField);
|
|
1165
|
+
logWarning(`WARNING in ${this.getCRUDRoutineName(parentEntity, 'Delete')} generation: ${warning.trim()}`);
|
|
1166
|
+
return '\n' + warning;
|
|
1167
|
+
}
|
|
1168
|
+
const whereClause = `${qi(fkField.CodeName)} = @${parentKey.CodeName}`;
|
|
1034
1169
|
const spName = this.getCRUDRoutineName(relatedEntity, 'Delete');
|
|
1035
1170
|
const variablePrefix = `${relatedEntity.CodeName}_${fkField.CodeName}`;
|
|
1036
1171
|
const pkComponents = this.buildPrimaryKeyComponents(relatedEntity, variablePrefix);
|
|
@@ -1064,7 +1199,13 @@ GO
|
|
|
1064
1199
|
generateCascadeCursorUpdate(parentEntity, relatedEntity, fkField) {
|
|
1065
1200
|
const qi = this.Dialect.QuoteIdentifier.bind(this.Dialect);
|
|
1066
1201
|
const qs = this.Dialect.QuoteSchema.bind(this.Dialect);
|
|
1067
|
-
const
|
|
1202
|
+
const parentKey = this.resolveCascadeParentKeyField(parentEntity, fkField);
|
|
1203
|
+
if (!parentKey) {
|
|
1204
|
+
const warning = this.unresolvedCascadeKeyComment(parentEntity, relatedEntity, fkField);
|
|
1205
|
+
logWarning(`WARNING in ${this.getCRUDRoutineName(parentEntity, 'Delete')} generation: ${warning.trim()}`);
|
|
1206
|
+
return '\n' + warning;
|
|
1207
|
+
}
|
|
1208
|
+
const whereClause = `${qi(fkField.CodeName)} = @${parentKey.CodeName}`;
|
|
1068
1209
|
const variablePrefix = `${relatedEntity.CodeName}_${fkField.CodeName}`;
|
|
1069
1210
|
const spName = this.getCRUDRoutineName(relatedEntity, 'Update');
|
|
1070
1211
|
const updateParams = this.buildUpdateCursorParameters(relatedEntity, fkField, variablePrefix);
|
|
@@ -1580,9 +1721,9 @@ ORDER BY
|
|
|
1580
1721
|
* PK, and unique key detection.
|
|
1581
1722
|
* 3. **Cleanup**: Drops the temp tables.
|
|
1582
1723
|
*/
|
|
1583
|
-
getPendingEntityFieldsSQL(mjCoreSchema, entityIDs) {
|
|
1724
|
+
getPendingEntityFieldsSQL(mjCoreSchema, entityIDs, excludeSchemas) {
|
|
1584
1725
|
return this.buildPendingFieldsTempTables(mjCoreSchema) +
|
|
1585
|
-
this.buildPendingFieldsMainQuery(mjCoreSchema, entityIDs) +
|
|
1726
|
+
this.buildPendingFieldsMainQuery(mjCoreSchema, entityIDs, excludeSchemas) +
|
|
1586
1727
|
this.buildPendingFieldsCleanup();
|
|
1587
1728
|
}
|
|
1588
1729
|
/**
|
|
@@ -1616,13 +1757,19 @@ FROM [${schema}].[vwTableUniqueKeys];
|
|
|
1616
1757
|
* Uses MaxSequences CTE to calculate proper field ordering and NumberedRows
|
|
1617
1758
|
* CTE to deduplicate results.
|
|
1618
1759
|
*/
|
|
1619
|
-
buildPendingFieldsMainQuery(schema, entityIDs) {
|
|
1760
|
+
buildPendingFieldsMainQuery(schema, entityIDs, excludeSchemas) {
|
|
1620
1761
|
// When scoped, narrow the scan to specific entities. SQL injection isn't a concern
|
|
1621
1762
|
// here — entityIDs are MJ-internal UUIDs from the metadata cache, not user input —
|
|
1622
1763
|
// but we quote each ID anyway for SQL Server's UUID literal syntax.
|
|
1623
1764
|
const scopeFilter = entityIDs && entityIDs.length > 0
|
|
1624
1765
|
? `AND sf.EntityID IN (${entityIDs.map(id => `'${id}'`).join(',')})`
|
|
1625
1766
|
: '';
|
|
1767
|
+
// includeSchemas is compiled into excludeSchemas before this query runs. Without this
|
|
1768
|
+
// filter, Pass 1 (unscoped entityIDs) inserts pending fields for EVERY schema in the
|
|
1769
|
+
// database — e.g. a Forms CodeGen run emitted Common Activity Files EntityField rows.
|
|
1770
|
+
const schemaFilter = excludeSchemas && excludeSchemas.length > 0
|
|
1771
|
+
? `AND e.SchemaName NOT IN (${excludeSchemas.map(s => `'${s.replace(/'/g, "''")}'`).join(',')})`
|
|
1772
|
+
: '';
|
|
1626
1773
|
return `WITH MaxSequences AS (
|
|
1627
1774
|
SELECT
|
|
1628
1775
|
EntityID,
|
|
@@ -1636,11 +1783,9 @@ NumberedRows AS (
|
|
|
1636
1783
|
SELECT
|
|
1637
1784
|
sf.EntityID,
|
|
1638
1785
|
ISNULL(ms.MaxSequence, 0) + 100000 + sf.Sequence AS Sequence,
|
|
1639
|
-
-- The RAW schema ordinal
|
|
1640
|
-
--
|
|
1641
|
-
--
|
|
1642
|
-
-- (Sequence above stays as-is: it is what this query ORDERs BY, and what the renumber pass
|
|
1643
|
-
-- later overwrites from the schema.)
|
|
1786
|
+
-- The RAW schema ordinal. The INSERT emitter uses it for DefaultInView only; the emitted
|
|
1787
|
+
-- Sequence is an apply-time MAX()+1 subquery. (Sequence above is only this query's ORDER BY
|
|
1788
|
+
-- key — never inserted — and the renumber pass overwrites every row from the schema.)
|
|
1644
1789
|
sf.Sequence AS SourceOrdinal,
|
|
1645
1790
|
sf.FieldName,
|
|
1646
1791
|
sf.Description,
|
|
@@ -1689,6 +1834,7 @@ NumberedRows AS (
|
|
|
1689
1834
|
WHERE
|
|
1690
1835
|
EntityFieldID IS NULL
|
|
1691
1836
|
${scopeFilter}
|
|
1837
|
+
${schemaFilter}
|
|
1692
1838
|
)
|
|
1693
1839
|
SELECT *
|
|
1694
1840
|
FROM NumberedRows
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLServerCodeGenProvider.js","sourceRoot":"","sources":["../../../../src/Database/providers/sqlserver/SQLServerCodeGenProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SQLServerCodeGenProvider.js","sourceRoot":"","sources":["../../../../src/Database/providers/sqlserver/SQLServerCodeGenProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { EntityInfo, Metadata } from '@memberjunction/core';
|
|
|
3
3
|
import { SQLServerDialect } from '@memberjunction/sql-dialect';
|
|
4
4
|
import { SQLServerCodeGenProvider } from '../SQLServerCodeGenProvider.js';
|
|
5
5
|
import { SQLCodeGenBase } from '../../../sql_codegen.js';
|
|
6
|
+
import { SQLLogging } from '../../../../Misc/sql_logging.js';
|
|
6
7
|
function buildProviderStub(entities) {
|
|
7
8
|
return {
|
|
8
9
|
Entities: entities,
|
|
@@ -171,11 +172,15 @@ let originalProvider;
|
|
|
171
172
|
function installMetadata(entities) {
|
|
172
173
|
Metadata.Provider = buildProviderStub(entities);
|
|
173
174
|
}
|
|
175
|
+
// These cases run the emitter against a recording connection with no CodeGen_Run file open.
|
|
176
|
+
let restoreSQLOutput;
|
|
174
177
|
beforeAll(() => {
|
|
175
178
|
originalProvider = Metadata.Provider;
|
|
179
|
+
restoreSQLOutput = SQLLogging.suppressOutputForTests();
|
|
176
180
|
});
|
|
177
181
|
afterAll(() => {
|
|
178
182
|
Metadata.Provider = originalProvider;
|
|
183
|
+
restoreSQLOutput();
|
|
179
184
|
});
|
|
180
185
|
beforeEach(() => {
|
|
181
186
|
generator = new SQLCodeGenBase();
|
|
@@ -455,7 +460,8 @@ describe('base view emission — geo virtual columns', () => {
|
|
|
455
460
|
// display fields present the block is appended after ',\n' and aligns
|
|
456
461
|
// normally. A formatting fix here would change every geo entity's stored
|
|
457
462
|
// view text and force a one-time regeneration wave — hence pinned, not fixed.
|
|
458
|
-
|
|
463
|
+
// ShouldJoinRecordGeoCodes needs SupportsGeoCoding AND a writable Geo* field (no native lat/lng).
|
|
464
|
+
const entity = sitesEntity([pk('SITES-ENTITY-0006'), nameField('SITES-ENTITY-0006', { Name: 'Address', ExtendedType: 'GeoAddress', IsNameField: false })]);
|
|
459
465
|
const { viewSQL } = await generator.generateBaseViewPieces(pool, entity);
|
|
460
466
|
expect(viewSQL).toContain(`SELECT
|
|
461
467
|
s.*, __mj_rgc.[Latitude] AS [__mj_Latitude],
|
|
@@ -470,6 +476,13 @@ LEFT OUTER JOIN
|
|
|
470
476
|
AND __mj_rgc.[LocationType] = 'Primary'
|
|
471
477
|
GO`);
|
|
472
478
|
});
|
|
479
|
+
it('GM-VIEW-10c: SupportsGeoCoding without a writable Geo field does NOT join vwRecordGeoCodes', async () => {
|
|
480
|
+
// ShouldJoinRecordGeoCodes requires a writable Geo* field, not just the entity flag.
|
|
481
|
+
const entity = sitesEntity([pk('SITES-ENTITY-0006')]);
|
|
482
|
+
const { viewSQL } = await generator.generateBaseViewPieces(pool, entity);
|
|
483
|
+
expect(viewSQL).not.toContain('vwRecordGeoCodes');
|
|
484
|
+
expect(viewSQL).not.toContain('__mj_Latitude');
|
|
485
|
+
});
|
|
473
486
|
it('GM-VIEW-10b: with FK display fields present, the geo block is appended after ",\\n" and aligns on its own lines', async () => {
|
|
474
487
|
const entity = new EntityInfo({
|
|
475
488
|
ID: 'SITES-ENTITY-0006',
|
|
@@ -481,7 +494,7 @@ GO`);
|
|
|
481
494
|
BaseViewGenerated: true,
|
|
482
495
|
DeleteType: 'Hard',
|
|
483
496
|
SupportsGeoCoding: true,
|
|
484
|
-
EntityFields: [pk('SITES-ENTITY-0006'), customerFK({ EntityID: 'SITES-ENTITY-0006' })],
|
|
497
|
+
EntityFields: [pk('SITES-ENTITY-0006'), nameField('SITES-ENTITY-0006', { Name: 'Address', ExtendedType: 'GeoAddress', IsNameField: false }), customerFK({ EntityID: 'SITES-ENTITY-0006' })],
|
|
485
498
|
EntityPermissions: [],
|
|
486
499
|
});
|
|
487
500
|
installMetadata([entity, customersEntity()]);
|