@memberjunction/sqlserver-dataprovider 2.64.0 → 2.66.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/README.md +85 -0
- package/dist/SqlLogger.d.ts +1 -0
- package/dist/SqlLogger.d.ts.map +1 -1
- package/dist/SqlLogger.js +27 -1
- package/dist/SqlLogger.js.map +1 -1
- package/dist/types.d.ts +23 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -23,6 +23,7 @@ The `@memberjunction/sqlserver-dataprovider` package implements MemberJunction's
|
|
|
23
23
|
- **Row-Level Security**: Enforce data access controls at the database level
|
|
24
24
|
- **SQL Logging**: Real-time SQL statement capture for debugging and migration generation
|
|
25
25
|
- **Session Management**: Multiple concurrent SQL logging sessions with user filtering
|
|
26
|
+
- **Pattern Filtering**: Include/exclude SQL statements using simple wildcards or regex patterns ([details](#pattern-filtering))
|
|
26
27
|
|
|
27
28
|
## Installation
|
|
28
29
|
|
|
@@ -479,6 +480,7 @@ The SQL Server Data Provider includes comprehensive SQL logging capabilities tha
|
|
|
479
480
|
- **Automatic cleanup** - Sessions auto-expire and clean up empty files
|
|
480
481
|
- **Concurrent sessions** - Support multiple active logging sessions
|
|
481
482
|
- **Parameter capture** - Logs both SQL statements and their parameters
|
|
483
|
+
- **Pattern filtering** - Include/exclude statements using simple wildcards or regex
|
|
482
484
|
|
|
483
485
|
### Programmatic Usage
|
|
484
486
|
|
|
@@ -510,6 +512,89 @@ console.log(`Session ${logger.id} has captured ${logger.statementCount} statemen
|
|
|
510
512
|
await logger.dispose();
|
|
511
513
|
```
|
|
512
514
|
|
|
515
|
+
### Pattern Filtering
|
|
516
|
+
|
|
517
|
+
SQL logging sessions support pattern-based filtering to include or exclude specific SQL statements. You can use either **regex patterns** for advanced matching or **simple wildcard patterns** for ease of use.
|
|
518
|
+
|
|
519
|
+
#### Pattern Types
|
|
520
|
+
|
|
521
|
+
1. **Simple Wildcard Patterns** (Recommended for most users):
|
|
522
|
+
- Use `*` as a wildcard character
|
|
523
|
+
- Case-insensitive by default
|
|
524
|
+
- Examples:
|
|
525
|
+
- `*AIPrompt*` - Matches anything containing "AIPrompt"
|
|
526
|
+
- `spCreate*` - Matches anything starting with "spCreate"
|
|
527
|
+
- `*Run` - Matches anything ending with "Run"
|
|
528
|
+
- `UserTable` - Exact match only
|
|
529
|
+
|
|
530
|
+
2. **Regular Expression Patterns** (For advanced users):
|
|
531
|
+
- Full regex support with flags
|
|
532
|
+
- More powerful but requires regex knowledge
|
|
533
|
+
- Examples:
|
|
534
|
+
- `/spCreate.*Run/i` - Case-insensitive regex
|
|
535
|
+
- `/^SELECT.*FROM.*vw/` - Queries from views
|
|
536
|
+
- `/INSERT INTO (Users|Roles)/i` - Insert into Users or Roles
|
|
537
|
+
|
|
538
|
+
#### Exclude Mode (Default)
|
|
539
|
+
|
|
540
|
+
```typescript
|
|
541
|
+
// Exclude specific patterns from logging
|
|
542
|
+
const logger = await dataProvider.createSqlLogger('./logs/sql/filtered.sql', {
|
|
543
|
+
sessionName: 'Production Operations',
|
|
544
|
+
filterPatterns: [
|
|
545
|
+
/spCreateAIPromptRun/i, // Regex: Exclude AI prompt runs
|
|
546
|
+
/spUpdateAIPromptRun/i, // Regex: Exclude AI prompt updates
|
|
547
|
+
/^SELECT.*FROM.*vw.*Metadata/i, // Regex: Exclude metadata view queries
|
|
548
|
+
/INSERT INTO EntityFieldValue/i // Regex: Exclude field value inserts
|
|
549
|
+
],
|
|
550
|
+
filterType: 'exclude' // Default - exclude matching patterns
|
|
551
|
+
});
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
#### Include Mode
|
|
555
|
+
|
|
556
|
+
```typescript
|
|
557
|
+
// Only log specific patterns
|
|
558
|
+
const auditLogger = await dataProvider.createSqlLogger('./logs/sql/audit.sql', {
|
|
559
|
+
sessionName: 'User Audit Trail',
|
|
560
|
+
filterPatterns: [
|
|
561
|
+
/INSERT INTO Users/i,
|
|
562
|
+
/UPDATE Users/i,
|
|
563
|
+
/DELETE FROM Users/i,
|
|
564
|
+
/sp_ChangePassword/i
|
|
565
|
+
],
|
|
566
|
+
filterType: 'include' // Only log statements matching these patterns
|
|
567
|
+
});
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
#### Using with MetadataSync
|
|
571
|
+
|
|
572
|
+
When configuring SQL logging in MetadataSync's `.mj-sync.json`, you can use string patterns that support both formats:
|
|
573
|
+
|
|
574
|
+
```json
|
|
575
|
+
{
|
|
576
|
+
"sqlLogging": {
|
|
577
|
+
"enabled": true,
|
|
578
|
+
"filterPatterns": [
|
|
579
|
+
"*AIPrompt*", // Simple: Exclude anything with "AIPrompt"
|
|
580
|
+
"/^EXEC sp_/i", // Regex: Exclude stored procedures
|
|
581
|
+
"*EntityFieldValue*", // Simple: Exclude EntityFieldValue operations
|
|
582
|
+
"/INSERT INTO (__mj|mj)/i" // Regex: Exclude system table inserts
|
|
583
|
+
],
|
|
584
|
+
"filterType": "exclude"
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
#### Filter Pattern Options
|
|
590
|
+
- `filterPatterns`: Array of patterns (RegExp objects in code, strings in config)
|
|
591
|
+
- `filterType`:
|
|
592
|
+
- `'exclude'` (default): Skip logging if ANY pattern matches
|
|
593
|
+
- `'include'`: Only log if ANY pattern matches
|
|
594
|
+
- If no patterns are specified, all SQL is logged (backward compatible)
|
|
595
|
+
|
|
596
|
+
> **Note**: Filtering is applied to the actual SQL that will be logged. If `logRecordChangeMetadata` is false and a simplified SQL fallback is provided, the filtering tests against the simplified version.
|
|
597
|
+
|
|
513
598
|
### Runtime Control via GraphQL
|
|
514
599
|
|
|
515
600
|
```typescript
|
package/dist/SqlLogger.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export declare class SqlLoggingSessionImpl implements SqlLoggingSession {
|
|
|
22
22
|
private _emittedStatementCount;
|
|
23
23
|
private _fileHandle;
|
|
24
24
|
private _disposed;
|
|
25
|
+
private _compiledPatterns;
|
|
25
26
|
constructor(id: string, filePath: string, options?: SqlLoggingOptions);
|
|
26
27
|
/**
|
|
27
28
|
* Gets the count of SQL statements actually written to the log file
|
package/dist/SqlLogger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlLogger.d.ts","sourceRoot":"","sources":["../src/SqlLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"SqlLogger.d.ts","sourceRoot":"","sources":["../src/SqlLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,SAAS,EAAE,IAAI,CAAC;IAChC,SAAgB,OAAO,EAAE,iBAAiB,CAAC;IAC3C,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,iBAAiB,CAAuB;gBAEpC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB;IAYzE;;;OAGG;IACH,IAAW,cAAc,IAAI,MAAM,CAElC;IAED;;;OAGG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxC;;;;;;;;OAQG;IACU,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2I3J;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BrC,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,eAAe;IAwBvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAqB7B"}
|
package/dist/SqlLogger.js
CHANGED
|
@@ -35,6 +35,7 @@ exports.SqlLoggingSessionImpl = void 0;
|
|
|
35
35
|
const fs = __importStar(require("fs"));
|
|
36
36
|
const path = __importStar(require("path"));
|
|
37
37
|
const sql_formatter_1 = require("sql-formatter");
|
|
38
|
+
const global_1 = require("@memberjunction/global");
|
|
38
39
|
/**
|
|
39
40
|
* Internal implementation of SqlLoggingSession that handles SQL statement logging to files.
|
|
40
41
|
* This class manages file I/O, SQL formatting, and filtering based on session options.
|
|
@@ -51,6 +52,10 @@ class SqlLoggingSessionImpl {
|
|
|
51
52
|
this.filePath = filePath;
|
|
52
53
|
this.startTime = new Date();
|
|
53
54
|
this.options = options;
|
|
55
|
+
// Compile patterns once during construction
|
|
56
|
+
if (options.filterPatterns && options.filterPatterns.length > 0) {
|
|
57
|
+
this._compiledPatterns = (0, global_1.ensureRegExps)(options.filterPatterns);
|
|
58
|
+
}
|
|
54
59
|
}
|
|
55
60
|
/**
|
|
56
61
|
* Gets the count of SQL statements actually written to the log file
|
|
@@ -115,7 +120,7 @@ class SqlLoggingSessionImpl {
|
|
|
115
120
|
return; // Skip logging mutation statements
|
|
116
121
|
}
|
|
117
122
|
if (verbose) {
|
|
118
|
-
console.log(`Session ${this.id}: Statement passed filters, proceeding to
|
|
123
|
+
console.log(`Session ${this.id}: Statement passed type filters, proceeding to process`);
|
|
119
124
|
}
|
|
120
125
|
let logEntry = '';
|
|
121
126
|
// Add description comment if provided
|
|
@@ -132,6 +137,27 @@ class SqlLoggingSessionImpl {
|
|
|
132
137
|
logEntry = logEntry.replace(`-- ${description}\n`, `-- ${description} (core SP call only)\n`);
|
|
133
138
|
}
|
|
134
139
|
}
|
|
140
|
+
// Apply pattern filtering on the processed query
|
|
141
|
+
if (this._compiledPatterns && this._compiledPatterns.length > 0) {
|
|
142
|
+
const filterType = this.options.filterType || 'exclude'; // Default to exclude
|
|
143
|
+
const anyPatternMatches = this._compiledPatterns.some(pattern => pattern.test(processedQuery));
|
|
144
|
+
if (verbose) {
|
|
145
|
+
console.log(`Session ${this.id}: Pattern filter check - filterType: ${filterType}, patterns: ${this._compiledPatterns.length}, anyMatch: ${anyPatternMatches}`);
|
|
146
|
+
console.log(`Session ${this.id}: Testing against processedQuery: ${processedQuery.substring(0, 100)}...`);
|
|
147
|
+
}
|
|
148
|
+
if (filterType === 'exclude' && anyPatternMatches) {
|
|
149
|
+
if (verbose) {
|
|
150
|
+
console.log(`Session ${this.id}: Skipping - exclude pattern matched`);
|
|
151
|
+
}
|
|
152
|
+
return; // Skip logging if any exclude pattern matches
|
|
153
|
+
}
|
|
154
|
+
if (filterType === 'include' && !anyPatternMatches) {
|
|
155
|
+
if (verbose) {
|
|
156
|
+
console.log(`Session ${this.id}: Skipping - no include pattern matched`);
|
|
157
|
+
}
|
|
158
|
+
return; // Skip logging if no include pattern matches
|
|
159
|
+
}
|
|
160
|
+
}
|
|
135
161
|
// Replace schema names with Flyway placeholders if migration format
|
|
136
162
|
if (this.options.formatAsMigration) {
|
|
137
163
|
processedQuery = processedQuery.replace(/\[(\w+)\]\./g, '[${flyway:defaultSchema}].');
|
package/dist/SqlLogger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlLogger.js","sourceRoot":"","sources":["../src/SqlLogger.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAoD;
|
|
1
|
+
{"version":3,"file":"SqlLogger.js","sourceRoot":"","sources":["../src/SqlLogger.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -98,6 +98,29 @@ export interface SqlLoggingOptions {
|
|
|
98
98
|
sessionName?: string;
|
|
99
99
|
/** Whether to output verbose debug information to console (default: false) */
|
|
100
100
|
verboseOutput?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Array of patterns to filter SQL statements.
|
|
103
|
+
* Supports both regex (RegExp objects) and simple wildcard patterns (strings).
|
|
104
|
+
* How these patterns are applied depends on filterType.
|
|
105
|
+
*
|
|
106
|
+
* String patterns support:
|
|
107
|
+
* - Simple wildcards: "*AIPrompt*", "spCreate*", "*Run"
|
|
108
|
+
* - Regex strings: "/spCreate.*Run/i", "/^SELECT.*FROM/i"
|
|
109
|
+
*
|
|
110
|
+
* RegExp examples:
|
|
111
|
+
* - /spCreateAIPromptRun/i - Match stored procedure calls
|
|
112
|
+
* - /^SELECT.*FROM.*vw.*Metadata/i - Match metadata view queries
|
|
113
|
+
* - /INSERT INTO EntityFieldValue/i - Match specific inserts
|
|
114
|
+
*/
|
|
115
|
+
filterPatterns?: (string | RegExp)[];
|
|
116
|
+
/**
|
|
117
|
+
* Determines how filterPatterns are applied:
|
|
118
|
+
* - 'exclude': If ANY pattern matches, the SQL is NOT logged (default)
|
|
119
|
+
* - 'include': If ANY pattern matches, the SQL IS logged
|
|
120
|
+
*
|
|
121
|
+
* Note: If filterPatterns is empty/undefined, all SQL is logged regardless of filterType.
|
|
122
|
+
*/
|
|
123
|
+
filterType?: 'include' | 'exclude';
|
|
101
124
|
}
|
|
102
125
|
/**
|
|
103
126
|
* Interface for SQL logging session with disposable pattern
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2GAA2G;IAC3G,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC;IACzB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;IACrC,qCAAqC;IACrC,eAAe,CAAC,EAAE,CAChB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,GAAG,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,OAAO,EACvB,UAAU,CAAC,EAAE,OAAO,EACpB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,QAAQ,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+BAA+B;IAC/B,WAAW,CAAC,EAAE,QAAQ,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,sBAAsB;IACrE;;OAEG;IACH,IAAI,UAAU,IAAI,GAAG,CAEpB;IAED;;OAEG;IACH,IAAI,2BAA2B,IAAI,MAAM,CAExC;gBAGC,UAAU,EAAE,GAAG,EACf,gBAAgB,CAAC,EAAE,MAAM,EACzB,2BAA2B,GAAE,MAAU,EACvC,cAAc,CAAC,EAAE,MAAM,EAAE,EACzB,cAAc,CAAC,EAAE,MAAM,EAAE;CAY5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2GAA2G;IAC3G,cAAc,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;IAClD,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4IAA4I;IAC5I,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oJAAoJ;IACpJ,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kFAAkF;IAClF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/sqlserver-dataprovider",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.66.0",
|
|
4
4
|
"description": "MemberJunction: SQL Server Client Data Provider",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -20,14 +20,14 @@
|
|
|
20
20
|
"typescript": "^5.4.5"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@memberjunction/actions": "2.
|
|
24
|
-
"@memberjunction/ai": "2.
|
|
25
|
-
"@memberjunction/ai-vector-dupe": "2.
|
|
26
|
-
"@memberjunction/aiengine": "2.
|
|
27
|
-
"@memberjunction/core": "2.
|
|
28
|
-
"@memberjunction/core-entities": "2.
|
|
29
|
-
"@memberjunction/global": "2.
|
|
30
|
-
"@memberjunction/queue": "2.
|
|
23
|
+
"@memberjunction/actions": "2.66.0",
|
|
24
|
+
"@memberjunction/ai": "2.66.0",
|
|
25
|
+
"@memberjunction/ai-vector-dupe": "2.66.0",
|
|
26
|
+
"@memberjunction/aiengine": "2.66.0",
|
|
27
|
+
"@memberjunction/core": "2.66.0",
|
|
28
|
+
"@memberjunction/core-entities": "2.66.0",
|
|
29
|
+
"@memberjunction/global": "2.66.0",
|
|
30
|
+
"@memberjunction/queue": "2.66.0",
|
|
31
31
|
"mssql": "^11.0.1",
|
|
32
32
|
"rxjs": "^7.8.1",
|
|
33
33
|
"sql-formatter": "^15.3.2",
|