@freshguard/freshguard-core 0.13.2 → 0.15.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.
Files changed (196) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/README.md +74 -1
  3. package/SKILL.md +229 -0
  4. package/dist/cli/index.d.ts +13 -0
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +74 -1
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/connectors/azure-sql.d.ts +121 -0
  9. package/dist/connectors/azure-sql.d.ts.map +1 -0
  10. package/dist/connectors/azure-sql.js +489 -0
  11. package/dist/connectors/azure-sql.js.map +1 -0
  12. package/dist/connectors/base-connector.d.ts +139 -0
  13. package/dist/connectors/base-connector.d.ts.map +1 -1
  14. package/dist/connectors/base-connector.js +160 -3
  15. package/dist/connectors/base-connector.js.map +1 -1
  16. package/dist/connectors/bigquery.d.ts +100 -0
  17. package/dist/connectors/bigquery.d.ts.map +1 -1
  18. package/dist/connectors/bigquery.js +143 -2
  19. package/dist/connectors/bigquery.js.map +1 -1
  20. package/dist/connectors/duckdb.d.ts +96 -0
  21. package/dist/connectors/duckdb.d.ts.map +1 -1
  22. package/dist/connectors/duckdb.js +144 -7
  23. package/dist/connectors/duckdb.js.map +1 -1
  24. package/dist/connectors/index.d.ts +28 -0
  25. package/dist/connectors/index.d.ts.map +1 -1
  26. package/dist/connectors/index.js +28 -0
  27. package/dist/connectors/index.js.map +1 -1
  28. package/dist/connectors/mssql.d.ts +119 -0
  29. package/dist/connectors/mssql.d.ts.map +1 -0
  30. package/dist/connectors/mssql.js +483 -0
  31. package/dist/connectors/mssql.js.map +1 -0
  32. package/dist/connectors/mysql.d.ts +85 -0
  33. package/dist/connectors/mysql.d.ts.map +1 -1
  34. package/dist/connectors/mysql.js +118 -3
  35. package/dist/connectors/mysql.js.map +1 -1
  36. package/dist/connectors/postgres.d.ts +85 -0
  37. package/dist/connectors/postgres.d.ts.map +1 -1
  38. package/dist/connectors/postgres.js +113 -6
  39. package/dist/connectors/postgres.js.map +1 -1
  40. package/dist/connectors/redshift.d.ts +90 -0
  41. package/dist/connectors/redshift.d.ts.map +1 -1
  42. package/dist/connectors/redshift.js +131 -7
  43. package/dist/connectors/redshift.js.map +1 -1
  44. package/dist/connectors/snowflake.d.ts +108 -0
  45. package/dist/connectors/snowflake.d.ts.map +1 -1
  46. package/dist/connectors/snowflake.js +137 -3
  47. package/dist/connectors/snowflake.js.map +1 -1
  48. package/dist/connectors/synapse.d.ts +123 -0
  49. package/dist/connectors/synapse.d.ts.map +1 -0
  50. package/dist/connectors/synapse.js +495 -0
  51. package/dist/connectors/synapse.js.map +1 -0
  52. package/dist/db/index.d.ts +25 -0
  53. package/dist/db/index.d.ts.map +1 -1
  54. package/dist/db/index.js +23 -0
  55. package/dist/db/index.js.map +1 -1
  56. package/dist/db/migrate.d.ts +23 -0
  57. package/dist/db/migrate.d.ts.map +1 -1
  58. package/dist/db/migrate.js +38 -0
  59. package/dist/db/migrate.js.map +1 -1
  60. package/dist/db/schema.d.ts +11 -0
  61. package/dist/db/schema.d.ts.map +1 -1
  62. package/dist/db/schema.js +70 -0
  63. package/dist/db/schema.js.map +1 -1
  64. package/dist/errors/debug-factory.d.ts +38 -0
  65. package/dist/errors/debug-factory.d.ts.map +1 -1
  66. package/dist/errors/debug-factory.js +40 -0
  67. package/dist/errors/debug-factory.js.map +1 -1
  68. package/dist/errors/index.d.ts +59 -0
  69. package/dist/errors/index.d.ts.map +1 -1
  70. package/dist/errors/index.js +110 -7
  71. package/dist/errors/index.js.map +1 -1
  72. package/dist/index.d.ts +32 -1
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +37 -1
  75. package/dist/index.js.map +1 -1
  76. package/dist/metadata/duckdb-storage.d.ts +3 -0
  77. package/dist/metadata/duckdb-storage.d.ts.map +1 -1
  78. package/dist/metadata/duckdb-storage.js +6 -0
  79. package/dist/metadata/duckdb-storage.js.map +1 -1
  80. package/dist/metadata/factory.d.ts +30 -0
  81. package/dist/metadata/factory.d.ts.map +1 -1
  82. package/dist/metadata/factory.js +31 -0
  83. package/dist/metadata/factory.js.map +1 -1
  84. package/dist/metadata/index.d.ts +26 -0
  85. package/dist/metadata/index.d.ts.map +1 -1
  86. package/dist/metadata/index.js +26 -0
  87. package/dist/metadata/index.js.map +1 -1
  88. package/dist/metadata/interface.d.ts +33 -0
  89. package/dist/metadata/interface.d.ts.map +1 -1
  90. package/dist/metadata/interface.js +3 -0
  91. package/dist/metadata/interface.js.map +1 -1
  92. package/dist/metadata/postgresql-storage.d.ts +3 -0
  93. package/dist/metadata/postgresql-storage.d.ts.map +1 -1
  94. package/dist/metadata/postgresql-storage.js +12 -2
  95. package/dist/metadata/postgresql-storage.js.map +1 -1
  96. package/dist/metadata/schema-config.d.ts +53 -0
  97. package/dist/metadata/schema-config.d.ts.map +1 -1
  98. package/dist/metadata/schema-config.js +64 -0
  99. package/dist/metadata/schema-config.js.map +1 -1
  100. package/dist/metadata/types.d.ts +3 -0
  101. package/dist/metadata/types.d.ts.map +1 -1
  102. package/dist/metadata/types.js +3 -0
  103. package/dist/metadata/types.js.map +1 -1
  104. package/dist/monitor/baseline-calculator.d.ts +56 -0
  105. package/dist/monitor/baseline-calculator.d.ts.map +1 -1
  106. package/dist/monitor/baseline-calculator.js +72 -0
  107. package/dist/monitor/baseline-calculator.js.map +1 -1
  108. package/dist/monitor/baseline-config.d.ts +77 -0
  109. package/dist/monitor/baseline-config.d.ts.map +1 -1
  110. package/dist/monitor/baseline-config.js +79 -1
  111. package/dist/monitor/baseline-config.js.map +1 -1
  112. package/dist/monitor/freshness.d.ts +40 -0
  113. package/dist/monitor/freshness.d.ts.map +1 -1
  114. package/dist/monitor/freshness.js +82 -3
  115. package/dist/monitor/freshness.js.map +1 -1
  116. package/dist/monitor/index.d.ts +29 -0
  117. package/dist/monitor/index.d.ts.map +1 -1
  118. package/dist/monitor/index.js +29 -0
  119. package/dist/monitor/index.js.map +1 -1
  120. package/dist/monitor/schema-baseline.d.ts +45 -0
  121. package/dist/monitor/schema-baseline.d.ts.map +1 -1
  122. package/dist/monitor/schema-baseline.js +63 -5
  123. package/dist/monitor/schema-baseline.js.map +1 -1
  124. package/dist/monitor/schema-changes.d.ts +45 -0
  125. package/dist/monitor/schema-changes.d.ts.map +1 -1
  126. package/dist/monitor/schema-changes.js +85 -0
  127. package/dist/monitor/schema-changes.js.map +1 -1
  128. package/dist/monitor/volume.d.ts +43 -0
  129. package/dist/monitor/volume.d.ts.map +1 -1
  130. package/dist/monitor/volume.js +89 -0
  131. package/dist/monitor/volume.js.map +1 -1
  132. package/dist/observability/logger.d.ts +91 -0
  133. package/dist/observability/logger.d.ts.map +1 -1
  134. package/dist/observability/logger.js +108 -0
  135. package/dist/observability/logger.js.map +1 -1
  136. package/dist/observability/metrics.d.ts +140 -0
  137. package/dist/observability/metrics.d.ts.map +1 -1
  138. package/dist/observability/metrics.js +184 -7
  139. package/dist/observability/metrics.js.map +1 -1
  140. package/dist/resilience/circuit-breaker.d.ts +112 -2
  141. package/dist/resilience/circuit-breaker.d.ts.map +1 -1
  142. package/dist/resilience/circuit-breaker.js +140 -6
  143. package/dist/resilience/circuit-breaker.js.map +1 -1
  144. package/dist/resilience/index.d.ts +9 -0
  145. package/dist/resilience/index.d.ts.map +1 -1
  146. package/dist/resilience/index.js +13 -0
  147. package/dist/resilience/index.js.map +1 -1
  148. package/dist/resilience/retry-policy.d.ts +105 -0
  149. package/dist/resilience/retry-policy.d.ts.map +1 -1
  150. package/dist/resilience/retry-policy.js +158 -7
  151. package/dist/resilience/retry-policy.js.map +1 -1
  152. package/dist/resilience/timeout-manager.d.ts +137 -0
  153. package/dist/resilience/timeout-manager.d.ts.map +1 -1
  154. package/dist/resilience/timeout-manager.js +151 -4
  155. package/dist/resilience/timeout-manager.js.map +1 -1
  156. package/dist/security/query-analyzer.d.ts +124 -0
  157. package/dist/security/query-analyzer.d.ts.map +1 -1
  158. package/dist/security/query-analyzer.js +150 -9
  159. package/dist/security/query-analyzer.js.map +1 -1
  160. package/dist/security/schema-cache.d.ts +152 -0
  161. package/dist/security/schema-cache.d.ts.map +1 -1
  162. package/dist/security/schema-cache.js +144 -12
  163. package/dist/security/schema-cache.js.map +1 -1
  164. package/dist/types/connector.d.ts +68 -1
  165. package/dist/types/connector.d.ts.map +1 -1
  166. package/dist/types/connector.js +38 -15
  167. package/dist/types/connector.js.map +1 -1
  168. package/dist/types/driver-results.d.ts +28 -0
  169. package/dist/types/driver-results.d.ts.map +1 -1
  170. package/dist/types/driver-results.js +12 -0
  171. package/dist/types/driver-results.js.map +1 -1
  172. package/dist/types.d.ts +113 -1
  173. package/dist/types.d.ts.map +1 -1
  174. package/dist/types.js +8 -0
  175. package/dist/types.js.map +1 -1
  176. package/dist/validation/index.d.ts +8 -0
  177. package/dist/validation/index.d.ts.map +1 -1
  178. package/dist/validation/index.js +12 -0
  179. package/dist/validation/index.js.map +1 -1
  180. package/dist/validation/runtime-validator.d.ts +98 -0
  181. package/dist/validation/runtime-validator.d.ts.map +1 -1
  182. package/dist/validation/runtime-validator.js +114 -1
  183. package/dist/validation/runtime-validator.js.map +1 -1
  184. package/dist/validation/sanitizers.d.ts +59 -0
  185. package/dist/validation/sanitizers.d.ts.map +1 -1
  186. package/dist/validation/sanitizers.js +104 -20
  187. package/dist/validation/sanitizers.js.map +1 -1
  188. package/dist/validation/schemas.d.ts +73 -0
  189. package/dist/validation/schemas.d.ts.map +1 -1
  190. package/dist/validation/schemas.js +132 -5
  191. package/dist/validation/schemas.js.map +1 -1
  192. package/dist/validators/index.d.ts +54 -0
  193. package/dist/validators/index.d.ts.map +1 -1
  194. package/dist/validators/index.js +93 -2
  195. package/dist/validators/index.js.map +1 -1
  196. package/package.json +6 -2
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Base connector class with built-in security validation and observability
3
+ *
4
+ * All database connectors must extend this class to ensure consistent
5
+ * security measures including query validation, timeouts, error sanitization,
6
+ * structured logging, and metrics collection.
7
+ *
8
+ * @license MIT
9
+ */
1
10
  import { DEFAULT_SECURITY_CONFIG } from '../types/connector.js';
2
11
  import { rowString } from '../types/driver-results.js';
3
12
  import { SecurityError, TimeoutError } from '../errors/index.js';
@@ -6,6 +15,18 @@ import { createDatabaseLogger, logTimedOperation } from '../observability/logger
6
15
  import { createComponentMetrics, timeOperation } from '../observability/metrics.js';
7
16
  import { createQueryAnalyzer } from '../security/query-analyzer.js';
8
17
  import { createSchemaCache, generateStructureHash } from '../security/schema-cache.js';
18
+ /**
19
+ * Abstract base connector with security and observability built-in
20
+ *
21
+ * Provides:
22
+ * - SQL injection prevention
23
+ * - Query timeouts
24
+ * - Connection validation
25
+ * - Error sanitization
26
+ * - Read-only query patterns
27
+ * - Structured logging
28
+ * - Metrics collection
29
+ */
9
30
  export class BaseConnector {
10
31
  config;
11
32
  connectionTimeout;
@@ -22,6 +43,7 @@ export class BaseConnector {
22
43
  blockedKeywords;
23
44
  constructor(config, securityConfig) {
24
45
  this.config = config;
46
+ // Merge security configuration with defaults
25
47
  const security = { ...DEFAULT_SECURITY_CONFIG, ...securityConfig };
26
48
  this.connectionTimeout = config.timeout ?? security.connectionTimeout;
27
49
  this.queryTimeout = config.queryTimeout ?? security.queryTimeout;
@@ -29,6 +51,7 @@ export class BaseConnector {
29
51
  this.requireSSL = security.requireSSL;
30
52
  this.allowedPatterns = security.allowedQueryPatterns;
31
53
  this.blockedKeywords = security.blockedKeywords;
54
+ // Initialize observability
32
55
  const databaseType = this.constructor.name.replace('Connector', '').toLowerCase();
33
56
  this.logger = createDatabaseLogger(databaseType, {
34
57
  baseContext: {
@@ -39,6 +62,7 @@ export class BaseConnector {
39
62
  });
40
63
  this.metrics = createComponentMetrics(`database_${databaseType}`);
41
64
  this.enableDetailedLogging = security.enableDetailedLogging !== false;
65
+ // Initialize advanced security features
42
66
  this.enableQueryAnalysis = security.enableQueryAnalysis !== false;
43
67
  this.queryAnalyzer = createQueryAnalyzer({
44
68
  maxRiskScore: security.maxQueryRiskScore ?? 70,
@@ -50,7 +74,9 @@ export class BaseConnector {
50
74
  logger: this.logger.child({ component: 'schema-cache' }),
51
75
  metrics: this.metrics
52
76
  });
77
+ // Validate configuration
53
78
  this.validateConfig(config);
79
+ // Log connector initialization
54
80
  this.logger.info('Database connector initialized', {
55
81
  database: config.database,
56
82
  host: config.host,
@@ -64,6 +90,9 @@ export class BaseConnector {
64
90
  maxQueryComplexityScore: security.maxQueryComplexityScore ?? 80
65
91
  });
66
92
  }
93
+ /**
94
+ * Validate connector configuration for security
95
+ */
67
96
  validateConfig(config) {
68
97
  if (!config.host) {
69
98
  throw new Error('Host is required');
@@ -84,15 +113,27 @@ export class BaseConnector {
84
113
  throw new SecurityError('SSL is required for secure connections');
85
114
  }
86
115
  }
116
+ /**
117
+ * Validate SQL query against security rules with enhanced analysis
118
+ *
119
+ * Combines traditional pattern matching with advanced query complexity analysis
120
+ */
87
121
  async validateQuery(sql, tableNames = []) {
88
122
  const normalizedSql = sql.trim().toUpperCase();
123
+ // Traditional validation (backward compatibility)
89
124
  this.validateQueryTraditional(sql, normalizedSql);
125
+ // Enhanced query analysis (if enabled)
90
126
  if (this.enableQueryAnalysis) {
91
127
  await this.validateQueryWithAnalyzer(sql, tableNames);
92
128
  }
93
129
  }
130
+ /**
131
+ * Traditional query validation for backward compatibility
132
+ */
94
133
  validateQueryTraditional(sql, normalizedSql) {
134
+ // Check for blocked keywords (whole word matching to avoid false positives)
95
135
  for (const keyword of this.blockedKeywords) {
136
+ // eslint-disable-next-line security/detect-non-literal-regexp
96
137
  const keywordRegex = new RegExp(`\\b${keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\b`, 'i');
97
138
  if (keywordRegex.test(normalizedSql)) {
98
139
  this.logger.warn('Blocked SQL keyword detected', {
@@ -102,6 +143,7 @@ export class BaseConnector {
102
143
  throw new SecurityError(`Blocked keyword detected: ${keyword}`);
103
144
  }
104
145
  }
146
+ // Check for incomplete SQL clauses that could indicate malformed queries
105
147
  const incompletePatterns = [
106
148
  /\bWHERE\s*$/i,
107
149
  /\bAND\s*$/i,
@@ -121,6 +163,8 @@ export class BaseConnector {
121
163
  throw new SecurityError(`Incomplete SQL clause: query ends with ${matchedKeyword}`);
122
164
  }
123
165
  }
166
+ // Check if query matches allowed patterns
167
+ // Fix: Trim SQL to handle multiline queries with leading whitespace
124
168
  const trimmedSql = sql.trim();
125
169
  const isAllowed = this.allowedPatterns.some(pattern => pattern.test(trimmedSql));
126
170
  if (!isAllowed) {
@@ -137,15 +181,23 @@ export class BaseConnector {
137
181
  });
138
182
  }
139
183
  }
184
+ /**
185
+ * Enhanced query validation using complexity analyzer
186
+ */
140
187
  async validateQueryWithAnalyzer(sql, tableNames) {
141
188
  try {
189
+ // Get table metadata for analysis
142
190
  const tableMetadata = await this.getTableMetadataForAnalysis(tableNames);
191
+ // Analyze query complexity
143
192
  const analysis = this.queryAnalyzer.analyzeQuery(sql, tableMetadata);
193
+ // Log analysis results
144
194
  this.logQueryAnalysis(sql, analysis);
195
+ // Check if query should be blocked
145
196
  if (!analysis.allowExecution) {
146
197
  const reason = this.getBlockingReason(analysis);
147
198
  throw new SecurityError(`Query blocked by security analysis: ${reason}`);
148
199
  }
200
+ // Log warnings if present
149
201
  if (analysis.securityWarnings.length > 0 || analysis.performanceWarnings.length > 0) {
150
202
  this.logger.warn('Query analysis warnings', {
151
203
  sqlPreview: sql.substring(0, 100),
@@ -158,8 +210,9 @@ export class BaseConnector {
158
210
  }
159
211
  }
160
212
  catch (error) {
213
+ // If analysis fails, fall back to traditional validation
161
214
  if (error instanceof SecurityError) {
162
- throw error;
215
+ throw error; // Re-throw security errors
163
216
  }
164
217
  this.logger.warn('Query analysis failed, using traditional validation only', {
165
218
  error: error instanceof Error ? error.message : 'Unknown error',
@@ -167,15 +220,20 @@ export class BaseConnector {
167
220
  });
168
221
  }
169
222
  }
223
+ /**
224
+ * Get table metadata for query analysis
225
+ */
170
226
  async getTableMetadataForAnalysis(tableNames) {
171
227
  const metadata = [];
172
228
  for (const tableName of tableNames) {
173
229
  try {
230
+ // Try to get from cache first
174
231
  const cached = this.schemaCache.get(this.config.database, tableName);
175
232
  if (cached) {
176
233
  metadata.push(this.convertCachedToTableMetadata(cached));
177
234
  }
178
235
  else {
236
+ // Get fresh metadata and cache it
179
237
  const fresh = await this.getTableMetadataFresh(tableName);
180
238
  if (fresh) {
181
239
  metadata.push(fresh);
@@ -188,10 +246,14 @@ export class BaseConnector {
188
246
  tableName,
189
247
  error: error instanceof Error ? error.message : 'Unknown error'
190
248
  });
249
+ // Continue without this table's metadata
191
250
  }
192
251
  }
193
252
  return metadata;
194
253
  }
254
+ /**
255
+ * Convert cached schema to table metadata format
256
+ */
195
257
  convertCachedToTableMetadata(cached) {
196
258
  return {
197
259
  name: cached.tableName,
@@ -213,8 +275,13 @@ export class BaseConnector {
213
275
  lastUpdated: cached.cachedAt
214
276
  };
215
277
  }
278
+ /**
279
+ * Get fresh table metadata (to be overridden by specific connectors)
280
+ */
216
281
  async getTableMetadataFresh(tableName) {
282
+ // Default implementation - subclasses should override
217
283
  try {
284
+ // Use internal row count to avoid validation recursion
218
285
  const rowCount = await this.getRowCountInternal(tableName, false);
219
286
  return {
220
287
  name: tableName,
@@ -228,6 +295,9 @@ export class BaseConnector {
228
295
  return null;
229
296
  }
230
297
  }
298
+ /**
299
+ * Cache table metadata
300
+ */
231
301
  cacheTableMetadata(metadata) {
232
302
  try {
233
303
  const cachedSchema = {
@@ -238,7 +308,7 @@ export class BaseConnector {
238
308
  type: col.type,
239
309
  nullable: col.nullable,
240
310
  indexed: col.indexed || false,
241
- isPrimaryKey: false,
311
+ isPrimaryKey: false, // Would need specific detection
242
312
  estimatedCardinality: col.cardinality
243
313
  })),
244
314
  indexes: metadata.indexes.map(idx => ({
@@ -246,7 +316,7 @@ export class BaseConnector {
246
316
  columns: idx.columns,
247
317
  unique: idx.unique,
248
318
  type: idx.type ?? 'btree',
249
- isPrimary: false,
319
+ isPrimary: false, // Would need specific detection
250
320
  sizeBytes: undefined
251
321
  })),
252
322
  estimatedRows: metadata.estimatedRows,
@@ -283,6 +353,9 @@ export class BaseConnector {
283
353
  });
284
354
  }
285
355
  }
356
+ /**
357
+ * Log query analysis results
358
+ */
286
359
  logQueryAnalysis(sql, analysis) {
287
360
  const logData = {
288
361
  sqlPreview: sql.substring(0, 100),
@@ -313,6 +386,9 @@ export class BaseConnector {
313
386
  });
314
387
  }
315
388
  }
389
+ /**
390
+ * Get reason why query was blocked
391
+ */
316
392
  getBlockingReason(analysis) {
317
393
  const reasons = [];
318
394
  if (analysis.riskScore > this.queryAnalyzer.getConfig().maxRiskScore) {
@@ -332,15 +408,23 @@ export class BaseConnector {
332
408
  }
333
409
  return reasons.join(', ') || 'security policy violation';
334
410
  }
411
+ /**
412
+ * Escape SQL identifiers to prevent injection
413
+ */
335
414
  escapeIdentifier(identifier) {
415
+ // Only allow alphanumeric, underscore, and dot (for schema.table)
336
416
  if (!/^[a-zA-Z0-9_.]+$/.test(identifier)) {
337
417
  throw new SecurityError(`Invalid identifier: ${identifier}`);
338
418
  }
419
+ // Additional length check
339
420
  if (identifier.length > 256) {
340
421
  throw new SecurityError('Identifier too long');
341
422
  }
342
423
  return identifier;
343
424
  }
425
+ /**
426
+ * Execute function with timeout protection
427
+ */
344
428
  async executeWithTimeout(operation, timeoutMs) {
345
429
  return Promise.race([
346
430
  operation(),
@@ -351,11 +435,15 @@ export class BaseConnector {
351
435
  })
352
436
  ]);
353
437
  }
438
+ /**
439
+ * Sanitize error messages to prevent information leakage
440
+ */
354
441
  sanitizeError(error) {
355
442
  if (!(error instanceof Error)) {
356
443
  return 'Unknown error occurred';
357
444
  }
358
445
  const message = error.message.toLowerCase();
446
+ // Map specific error types to safe messages
359
447
  if (message.includes('connection refused')) {
360
448
  return 'Connection failed - check host and port';
361
449
  }
@@ -371,14 +459,25 @@ export class BaseConnector {
371
459
  if (message.includes('syntax error')) {
372
460
  return 'Invalid query syntax';
373
461
  }
462
+ // Generic message for unknown errors (don't leak database details)
374
463
  return 'Database operation failed';
375
464
  }
465
+ // ==============================================
466
+ // Secure Implementation of Connector Interface
467
+ // ==============================================
468
+ /**
469
+ * Get row count for a table using parameterized query
470
+ */
376
471
  async getRowCount(table) {
377
472
  return this.getRowCountInternal(table, true);
378
473
  }
474
+ /**
475
+ * Internal row count method with optional validation
476
+ */
379
477
  async getRowCountInternal(table, validateQuery = true) {
380
478
  const escapedTable = this.escapeIdentifier(table);
381
479
  const sql = `SELECT COUNT(*) as count FROM ${escapedTable}`;
480
+ // Only validate if not being called for internal metadata purposes
382
481
  if (validateQuery) {
383
482
  await this.validateQuery(sql, [table]);
384
483
  }
@@ -402,13 +501,20 @@ export class BaseConnector {
402
501
  });
403
502
  }, { table, operation: 'getRowCount' });
404
503
  }
504
+ /**
505
+ * Get maximum timestamp value from a column
506
+ */
405
507
  async getMaxTimestamp(table, column) {
406
508
  return this.getMaxTimestampInternal(table, column, true);
407
509
  }
510
+ /**
511
+ * Internal max timestamp method with optional validation
512
+ */
408
513
  async getMaxTimestampInternal(table, column, validateQuery = true) {
409
514
  const escapedTable = this.escapeIdentifier(table);
410
515
  const escapedColumn = this.escapeIdentifier(column);
411
516
  const sql = `SELECT MAX(${escapedColumn}) as max_date FROM ${escapedTable}`;
517
+ // Only validate if not being called for internal metadata purposes
412
518
  if (validateQuery) {
413
519
  await this.validateQuery(sql, [table]);
414
520
  }
@@ -441,13 +547,20 @@ export class BaseConnector {
441
547
  });
442
548
  }, { table, column, operation: 'getMaxTimestamp' });
443
549
  }
550
+ /**
551
+ * Get minimum timestamp value from a column
552
+ */
444
553
  async getMinTimestamp(table, column) {
445
554
  return this.getMinTimestampInternal(table, column, true);
446
555
  }
556
+ /**
557
+ * Internal min timestamp method with optional validation
558
+ */
447
559
  async getMinTimestampInternal(table, column, validateQuery = true) {
448
560
  const escapedTable = this.escapeIdentifier(table);
449
561
  const escapedColumn = this.escapeIdentifier(column);
450
562
  const sql = `SELECT MIN(${escapedColumn}) as min_date FROM ${escapedTable}`;
563
+ // Only validate if not being called for internal metadata purposes
451
564
  if (validateQuery) {
452
565
  await this.validateQuery(sql, [table]);
453
566
  }
@@ -481,9 +594,19 @@ export class BaseConnector {
481
594
  throw new Error(this.sanitizeError(error));
482
595
  }
483
596
  }
597
+ /**
598
+ * Get last modified timestamp for a table
599
+ * Implementation varies by database type
600
+ */
484
601
  getLastModified(_table) {
602
+ // Default implementation - subclasses can override for database-specific methods
603
+ // For most databases, this would be the same as getting max of a timestamp column
604
+ // but specific implementations should override this
485
605
  throw new Error('getLastModified must be implemented by subclass');
486
606
  }
607
+ /**
608
+ * Validate that query results don't exceed max rows limit
609
+ */
487
610
  validateResultSize(results) {
488
611
  if (results.length > this.maxRows) {
489
612
  this.logger.error('Query returned too many rows', {
@@ -500,6 +623,9 @@ export class BaseConnector {
500
623
  });
501
624
  }
502
625
  }
626
+ /**
627
+ * Helper method for specific connectors to log operations with consistent format
628
+ */
503
629
  logOperation(operation, context) {
504
630
  this.logger.info(`Database operation: ${operation}`, {
505
631
  ...context,
@@ -507,6 +633,9 @@ export class BaseConnector {
507
633
  host: this.config.host
508
634
  });
509
635
  }
636
+ /**
637
+ * Helper method for specific connectors to log errors with consistent format
638
+ */
510
639
  logError(operation, error, context) {
511
640
  this.logger.error(`Database operation failed: ${operation}`, error, {
512
641
  ...context,
@@ -514,37 +643,65 @@ export class BaseConnector {
514
643
  host: this.config.host
515
644
  });
516
645
  }
646
+ /**
647
+ * Get schema cache statistics
648
+ */
517
649
  getSchemaCacheStats() {
518
650
  return this.schemaCache.getStats();
519
651
  }
652
+ /**
653
+ * Clear schema cache for testing or maintenance
654
+ */
520
655
  clearSchemaCache() {
521
656
  this.schemaCache.clear();
522
657
  }
658
+ /**
659
+ * Get query analyzer configuration
660
+ */
523
661
  getQueryAnalyzerConfig() {
524
662
  return this.queryAnalyzer.getConfig();
525
663
  }
664
+ /**
665
+ * Cleanup resources (should be called by subclasses in their close method)
666
+ */
526
667
  cleanup() {
527
668
  this.schemaCache.stop();
528
669
  }
670
+ /**
671
+ * Execute a parameterized SQL query (recommended for security)
672
+ * Subclasses should override this to use proper prepared statements
673
+ */
529
674
  async executeParameterizedQuery(sql, parameters = []) {
675
+ // Default implementation falls back to executeQuery for backward compatibility
676
+ // Subclasses should override this to use proper parameterized queries
530
677
  if (parameters.length > 0) {
531
678
  console.warn('Parameters provided but connector does not support parameterized queries. Consider upgrading connector implementation.');
532
679
  }
533
680
  return this.executeQuery(sql);
534
681
  }
682
+ /**
683
+ * Helper method for subclasses to create debug-enabled error factory
684
+ */
535
685
  createDebugErrorFactory(debugConfig) {
536
686
  const mergedConfig = mergeDebugConfig(debugConfig);
537
687
  return new DebugErrorFactory(mergedConfig);
538
688
  }
689
+ /**
690
+ * Helper method for subclasses to log debug information
691
+ */
539
692
  logDebugInfo(debugConfig, debugId, operation, context) {
540
693
  if (debugConfig?.enabled) {
541
694
  console.log(`[DEBUG-${debugId}] ${operation}:`, context);
542
695
  }
543
696
  }
697
+ /**
698
+ * Helper method for subclasses to log debug errors
699
+ */
544
700
  logDebugError(debugConfig, debugId, operation, context) {
545
701
  if (debugConfig?.enabled) {
546
702
  console.error(`[DEBUG-${debugId}] ${operation} failed:`, context);
547
703
  }
548
704
  }
549
705
  }
706
+ // Error classes are now imported from ../errors/index.js
550
707
  //# sourceMappingURL=base-connector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-connector.js","sourceRoot":"","sources":["../../src/connectors/base-connector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-connector.js","sourceRoot":"","sources":["../../src/connectors/base-connector.ts"],"names":[],"mappings":"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"}