@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.
- package/CHANGELOG.md +15 -1
- package/README.md +74 -1
- package/SKILL.md +229 -0
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +74 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/connectors/azure-sql.d.ts +121 -0
- package/dist/connectors/azure-sql.d.ts.map +1 -0
- package/dist/connectors/azure-sql.js +489 -0
- package/dist/connectors/azure-sql.js.map +1 -0
- package/dist/connectors/base-connector.d.ts +139 -0
- package/dist/connectors/base-connector.d.ts.map +1 -1
- package/dist/connectors/base-connector.js +160 -3
- package/dist/connectors/base-connector.js.map +1 -1
- package/dist/connectors/bigquery.d.ts +100 -0
- package/dist/connectors/bigquery.d.ts.map +1 -1
- package/dist/connectors/bigquery.js +143 -2
- package/dist/connectors/bigquery.js.map +1 -1
- package/dist/connectors/duckdb.d.ts +96 -0
- package/dist/connectors/duckdb.d.ts.map +1 -1
- package/dist/connectors/duckdb.js +144 -7
- package/dist/connectors/duckdb.js.map +1 -1
- package/dist/connectors/index.d.ts +28 -0
- package/dist/connectors/index.d.ts.map +1 -1
- package/dist/connectors/index.js +28 -0
- package/dist/connectors/index.js.map +1 -1
- package/dist/connectors/mssql.d.ts +119 -0
- package/dist/connectors/mssql.d.ts.map +1 -0
- package/dist/connectors/mssql.js +483 -0
- package/dist/connectors/mssql.js.map +1 -0
- package/dist/connectors/mysql.d.ts +85 -0
- package/dist/connectors/mysql.d.ts.map +1 -1
- package/dist/connectors/mysql.js +118 -3
- package/dist/connectors/mysql.js.map +1 -1
- package/dist/connectors/postgres.d.ts +85 -0
- package/dist/connectors/postgres.d.ts.map +1 -1
- package/dist/connectors/postgres.js +113 -6
- package/dist/connectors/postgres.js.map +1 -1
- package/dist/connectors/redshift.d.ts +90 -0
- package/dist/connectors/redshift.d.ts.map +1 -1
- package/dist/connectors/redshift.js +131 -7
- package/dist/connectors/redshift.js.map +1 -1
- package/dist/connectors/snowflake.d.ts +108 -0
- package/dist/connectors/snowflake.d.ts.map +1 -1
- package/dist/connectors/snowflake.js +137 -3
- package/dist/connectors/snowflake.js.map +1 -1
- package/dist/connectors/synapse.d.ts +123 -0
- package/dist/connectors/synapse.d.ts.map +1 -0
- package/dist/connectors/synapse.js +495 -0
- package/dist/connectors/synapse.js.map +1 -0
- package/dist/db/index.d.ts +25 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +23 -0
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrate.d.ts +23 -0
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/migrate.js +38 -0
- package/dist/db/migrate.js.map +1 -1
- package/dist/db/schema.d.ts +11 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +70 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/errors/debug-factory.d.ts +38 -0
- package/dist/errors/debug-factory.d.ts.map +1 -1
- package/dist/errors/debug-factory.js +40 -0
- package/dist/errors/debug-factory.js.map +1 -1
- package/dist/errors/index.d.ts +59 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +110 -7
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +32 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -1
- package/dist/index.js.map +1 -1
- package/dist/metadata/duckdb-storage.d.ts +3 -0
- package/dist/metadata/duckdb-storage.d.ts.map +1 -1
- package/dist/metadata/duckdb-storage.js +6 -0
- package/dist/metadata/duckdb-storage.js.map +1 -1
- package/dist/metadata/factory.d.ts +30 -0
- package/dist/metadata/factory.d.ts.map +1 -1
- package/dist/metadata/factory.js +31 -0
- package/dist/metadata/factory.js.map +1 -1
- package/dist/metadata/index.d.ts +26 -0
- package/dist/metadata/index.d.ts.map +1 -1
- package/dist/metadata/index.js +26 -0
- package/dist/metadata/index.js.map +1 -1
- package/dist/metadata/interface.d.ts +33 -0
- package/dist/metadata/interface.d.ts.map +1 -1
- package/dist/metadata/interface.js +3 -0
- package/dist/metadata/interface.js.map +1 -1
- package/dist/metadata/postgresql-storage.d.ts +3 -0
- package/dist/metadata/postgresql-storage.d.ts.map +1 -1
- package/dist/metadata/postgresql-storage.js +12 -2
- package/dist/metadata/postgresql-storage.js.map +1 -1
- package/dist/metadata/schema-config.d.ts +53 -0
- package/dist/metadata/schema-config.d.ts.map +1 -1
- package/dist/metadata/schema-config.js +64 -0
- package/dist/metadata/schema-config.js.map +1 -1
- package/dist/metadata/types.d.ts +3 -0
- package/dist/metadata/types.d.ts.map +1 -1
- package/dist/metadata/types.js +3 -0
- package/dist/metadata/types.js.map +1 -1
- package/dist/monitor/baseline-calculator.d.ts +56 -0
- package/dist/monitor/baseline-calculator.d.ts.map +1 -1
- package/dist/monitor/baseline-calculator.js +72 -0
- package/dist/monitor/baseline-calculator.js.map +1 -1
- package/dist/monitor/baseline-config.d.ts +77 -0
- package/dist/monitor/baseline-config.d.ts.map +1 -1
- package/dist/monitor/baseline-config.js +79 -1
- package/dist/monitor/baseline-config.js.map +1 -1
- package/dist/monitor/freshness.d.ts +40 -0
- package/dist/monitor/freshness.d.ts.map +1 -1
- package/dist/monitor/freshness.js +82 -3
- package/dist/monitor/freshness.js.map +1 -1
- package/dist/monitor/index.d.ts +29 -0
- package/dist/monitor/index.d.ts.map +1 -1
- package/dist/monitor/index.js +29 -0
- package/dist/monitor/index.js.map +1 -1
- package/dist/monitor/schema-baseline.d.ts +45 -0
- package/dist/monitor/schema-baseline.d.ts.map +1 -1
- package/dist/monitor/schema-baseline.js +63 -5
- package/dist/monitor/schema-baseline.js.map +1 -1
- package/dist/monitor/schema-changes.d.ts +45 -0
- package/dist/monitor/schema-changes.d.ts.map +1 -1
- package/dist/monitor/schema-changes.js +85 -0
- package/dist/monitor/schema-changes.js.map +1 -1
- package/dist/monitor/volume.d.ts +43 -0
- package/dist/monitor/volume.d.ts.map +1 -1
- package/dist/monitor/volume.js +89 -0
- package/dist/monitor/volume.js.map +1 -1
- package/dist/observability/logger.d.ts +91 -0
- package/dist/observability/logger.d.ts.map +1 -1
- package/dist/observability/logger.js +108 -0
- package/dist/observability/logger.js.map +1 -1
- package/dist/observability/metrics.d.ts +140 -0
- package/dist/observability/metrics.d.ts.map +1 -1
- package/dist/observability/metrics.js +184 -7
- package/dist/observability/metrics.js.map +1 -1
- package/dist/resilience/circuit-breaker.d.ts +112 -2
- package/dist/resilience/circuit-breaker.d.ts.map +1 -1
- package/dist/resilience/circuit-breaker.js +140 -6
- package/dist/resilience/circuit-breaker.js.map +1 -1
- package/dist/resilience/index.d.ts +9 -0
- package/dist/resilience/index.d.ts.map +1 -1
- package/dist/resilience/index.js +13 -0
- package/dist/resilience/index.js.map +1 -1
- package/dist/resilience/retry-policy.d.ts +105 -0
- package/dist/resilience/retry-policy.d.ts.map +1 -1
- package/dist/resilience/retry-policy.js +158 -7
- package/dist/resilience/retry-policy.js.map +1 -1
- package/dist/resilience/timeout-manager.d.ts +137 -0
- package/dist/resilience/timeout-manager.d.ts.map +1 -1
- package/dist/resilience/timeout-manager.js +151 -4
- package/dist/resilience/timeout-manager.js.map +1 -1
- package/dist/security/query-analyzer.d.ts +124 -0
- package/dist/security/query-analyzer.d.ts.map +1 -1
- package/dist/security/query-analyzer.js +150 -9
- package/dist/security/query-analyzer.js.map +1 -1
- package/dist/security/schema-cache.d.ts +152 -0
- package/dist/security/schema-cache.d.ts.map +1 -1
- package/dist/security/schema-cache.js +144 -12
- package/dist/security/schema-cache.js.map +1 -1
- package/dist/types/connector.d.ts +68 -1
- package/dist/types/connector.d.ts.map +1 -1
- package/dist/types/connector.js +38 -15
- package/dist/types/connector.js.map +1 -1
- package/dist/types/driver-results.d.ts +28 -0
- package/dist/types/driver-results.d.ts.map +1 -1
- package/dist/types/driver-results.js +12 -0
- package/dist/types/driver-results.js.map +1 -1
- package/dist/types.d.ts +113 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -1
- package/dist/validation/index.d.ts +8 -0
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +12 -0
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/runtime-validator.d.ts +98 -0
- package/dist/validation/runtime-validator.d.ts.map +1 -1
- package/dist/validation/runtime-validator.js +114 -1
- package/dist/validation/runtime-validator.js.map +1 -1
- package/dist/validation/sanitizers.d.ts +59 -0
- package/dist/validation/sanitizers.d.ts.map +1 -1
- package/dist/validation/sanitizers.js +104 -20
- package/dist/validation/sanitizers.js.map +1 -1
- package/dist/validation/schemas.d.ts +73 -0
- package/dist/validation/schemas.d.ts.map +1 -1
- package/dist/validation/schemas.js +132 -5
- package/dist/validation/schemas.js.map +1 -1
- package/dist/validators/index.d.ts +54 -0
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +93 -2
- package/dist/validators/index.js.map +1 -1
- package/package.json +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-changes.js","sourceRoot":"","sources":["../../src/monitor/schema-changes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema-changes.js","sourceRoot":"","sources":["../../src/monitor/schema-changes.ts"],"names":[],"mappings":"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"}
|
package/dist/monitor/volume.d.ts
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secure volume anomaly detection algorithm
|
|
3
|
+
* Detects when row counts deviate significantly from historical baseline with built-in security measures
|
|
4
|
+
*
|
|
5
|
+
* Security features:
|
|
6
|
+
* - Input validation to prevent SQL injection
|
|
7
|
+
* - Error sanitization to prevent information disclosure
|
|
8
|
+
* - Timeout protection against long-running queries
|
|
9
|
+
* - Historical data access controls
|
|
10
|
+
* - Statistical validation and overflow protection
|
|
11
|
+
*
|
|
12
|
+
* @module @freshguard/freshguard-core/monitor/volume
|
|
13
|
+
* @license MIT
|
|
14
|
+
*/
|
|
1
15
|
import type { CheckResult, MonitoringRule, FreshGuardConfig } from '../types.js';
|
|
2
16
|
import type { Connector } from '../types/connector.js';
|
|
3
17
|
import type { MetadataStorage } from '../metadata/interface.js';
|
|
18
|
+
/**
|
|
19
|
+
* Check for volume anomalies by comparing the current row count against a
|
|
20
|
+
* historical baseline. Returns `'alert'` when the deviation exceeds the
|
|
21
|
+
* configured threshold, or `'pending'` while the baseline is being built.
|
|
22
|
+
*
|
|
23
|
+
* Requires metadata storage to persist and retrieve historical row counts.
|
|
24
|
+
* At least 3 historical data points are needed before anomaly detection activates.
|
|
25
|
+
*
|
|
26
|
+
* @param connector - Database connector instance
|
|
27
|
+
* @param rule - Monitoring rule with `ruleType: 'volume_anomaly'`
|
|
28
|
+
* @param metadataStorage - Metadata storage for historical baseline data
|
|
29
|
+
* @param config - Optional configuration including debug settings and timeouts
|
|
30
|
+
* @returns CheckResult with `status`, `rowCount`, `deviation`, and optionally `debug` info
|
|
31
|
+
* @throws {ConfigurationError} If the rule is missing required volume fields
|
|
32
|
+
* @throws {TimeoutError} If the query exceeds the configured timeout
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* import { checkVolumeAnomaly, createMetadataStorage, PostgresConnector } from '@freshguard/freshguard-core';
|
|
37
|
+
*
|
|
38
|
+
* const connector = new PostgresConnector({ host: 'localhost', database: 'mydb', username: 'user', password: 'pass', ssl: true });
|
|
39
|
+
* const storage = await createMetadataStorage();
|
|
40
|
+
* const rule = { id: 'r1', sourceId: 's1', name: 'Orders Volume', tableName: 'orders', ruleType: 'volume_anomaly' as const, checkIntervalMinutes: 15, isActive: true, createdAt: new Date(), updatedAt: new Date() };
|
|
41
|
+
* const result = await checkVolumeAnomaly(connector, rule, storage);
|
|
42
|
+
* console.log(result.status, result.deviation);
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @since 0.1.0
|
|
46
|
+
*/
|
|
4
47
|
export declare function checkVolumeAnomaly(connector: Connector, rule: MonitoringRule, metadataStorage?: MetadataStorage, config?: FreshGuardConfig): Promise<CheckResult>;
|
|
5
48
|
//# sourceMappingURL=volume.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"volume.d.ts","sourceRoot":"","sources":["../../src/monitor/volume.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"volume.d.ts","sourceRoot":"","sources":["../../src/monitor/volume.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,aAAa,CAAC;AAC9F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAYhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,cAAc,EACpB,eAAe,CAAC,EAAE,eAAe,EACjC,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,WAAW,CAAC,CA+LtB"}
|
package/dist/monitor/volume.js
CHANGED
|
@@ -1,14 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secure volume anomaly detection algorithm
|
|
3
|
+
* Detects when row counts deviate significantly from historical baseline with built-in security measures
|
|
4
|
+
*
|
|
5
|
+
* Security features:
|
|
6
|
+
* - Input validation to prevent SQL injection
|
|
7
|
+
* - Error sanitization to prevent information disclosure
|
|
8
|
+
* - Timeout protection against long-running queries
|
|
9
|
+
* - Historical data access controls
|
|
10
|
+
* - Statistical validation and overflow protection
|
|
11
|
+
*
|
|
12
|
+
* @module @freshguard/freshguard-core/monitor/volume
|
|
13
|
+
* @license MIT
|
|
14
|
+
*/
|
|
1
15
|
import { validateTableName } from '../validators/index.js';
|
|
2
16
|
import { TimeoutError, ConfigurationError, ErrorHandler } from '../errors/index.js';
|
|
3
17
|
import { DebugErrorFactory, mergeDebugConfig } from '../errors/debug-factory.js';
|
|
4
18
|
import { BaselineConfigResolver } from './baseline-config.js';
|
|
5
19
|
import { BaselineCalculator } from './baseline-calculator.js';
|
|
20
|
+
/**
|
|
21
|
+
* Check for volume anomalies by comparing the current row count against a
|
|
22
|
+
* historical baseline. Returns `'alert'` when the deviation exceeds the
|
|
23
|
+
* configured threshold, or `'pending'` while the baseline is being built.
|
|
24
|
+
*
|
|
25
|
+
* Requires metadata storage to persist and retrieve historical row counts.
|
|
26
|
+
* At least 3 historical data points are needed before anomaly detection activates.
|
|
27
|
+
*
|
|
28
|
+
* @param connector - Database connector instance
|
|
29
|
+
* @param rule - Monitoring rule with `ruleType: 'volume_anomaly'`
|
|
30
|
+
* @param metadataStorage - Metadata storage for historical baseline data
|
|
31
|
+
* @param config - Optional configuration including debug settings and timeouts
|
|
32
|
+
* @returns CheckResult with `status`, `rowCount`, `deviation`, and optionally `debug` info
|
|
33
|
+
* @throws {ConfigurationError} If the rule is missing required volume fields
|
|
34
|
+
* @throws {TimeoutError} If the query exceeds the configured timeout
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* import { checkVolumeAnomaly, createMetadataStorage, PostgresConnector } from '@freshguard/freshguard-core';
|
|
39
|
+
*
|
|
40
|
+
* const connector = new PostgresConnector({ host: 'localhost', database: 'mydb', username: 'user', password: 'pass', ssl: true });
|
|
41
|
+
* const storage = await createMetadataStorage();
|
|
42
|
+
* const rule = { id: 'r1', sourceId: 's1', name: 'Orders Volume', tableName: 'orders', ruleType: 'volume_anomaly' as const, checkIntervalMinutes: 15, isActive: true, createdAt: new Date(), updatedAt: new Date() };
|
|
43
|
+
* const result = await checkVolumeAnomaly(connector, rule, storage);
|
|
44
|
+
* console.log(result.status, result.deviation);
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* @since 0.1.0
|
|
48
|
+
*/
|
|
6
49
|
export async function checkVolumeAnomaly(connector, rule, metadataStorage, config) {
|
|
7
50
|
const startTime = process.hrtime.bigint();
|
|
8
51
|
const debugConfig = mergeDebugConfig(config?.debug);
|
|
9
52
|
const debugFactory = new DebugErrorFactory(debugConfig);
|
|
10
53
|
const debugId = `fg-${Date.now().toString(36)}-${Math.random().toString(36).substr(2, 5)}`;
|
|
11
54
|
try {
|
|
55
|
+
// Log debug info at start
|
|
12
56
|
if (debugConfig.enabled) {
|
|
13
57
|
console.log(`[DEBUG-${debugId}] Starting volume anomaly check:`, {
|
|
14
58
|
table: rule.tableName,
|
|
@@ -16,16 +60,24 @@ export async function checkVolumeAnomaly(connector, rule, metadataStorage, confi
|
|
|
16
60
|
timestamp: new Date().toISOString()
|
|
17
61
|
});
|
|
18
62
|
}
|
|
63
|
+
// Validate input parameters for security
|
|
19
64
|
validateVolumeRule(rule);
|
|
65
|
+
// Resolve baseline configuration with enhanced options and backwards compatibility
|
|
20
66
|
const baselineConfigResolver = new BaselineConfigResolver(rule);
|
|
21
67
|
const baselineConfig = baselineConfigResolver.getConfig();
|
|
68
|
+
// Extract commonly used values for backwards compatibility
|
|
22
69
|
const baselineWindowDays = baselineConfig.windowDays;
|
|
23
70
|
const deviationThresholdPercent = baselineConfig.deviationThresholdPercent;
|
|
24
71
|
const minimumRowCount = baselineConfig.minimumRowCount;
|
|
25
72
|
const timeoutMs = baselineConfig.timeoutSeconds * 1000;
|
|
73
|
+
// Validate table name to prevent SQL injection
|
|
26
74
|
validateTableName(rule.tableName);
|
|
75
|
+
// Validate configuration parameters (now handled by BaselineConfigResolver)
|
|
76
|
+
// But keep legacy validation for backwards compatibility
|
|
27
77
|
validateVolumeParameters(baselineWindowDays, deviationThresholdPercent, minimumRowCount);
|
|
78
|
+
// Get current row count with timeout protection
|
|
28
79
|
const currentRowCount = await executeWithTimeout(() => getCurrentRowCount(connector, rule.tableName, debugConfig, debugFactory), config?.timeoutMs ?? timeoutMs, 'Volume check row count query timeout');
|
|
80
|
+
// Skip check if below minimum threshold
|
|
29
81
|
if (currentRowCount < minimumRowCount) {
|
|
30
82
|
const executedAt = new Date();
|
|
31
83
|
const executionDurationMs = Number(process.hrtime.bigint() - startTime) / 1000000;
|
|
@@ -46,12 +98,14 @@ export async function checkVolumeAnomaly(connector, rule, metadataStorage, confi
|
|
|
46
98
|
executedAt,
|
|
47
99
|
});
|
|
48
100
|
}
|
|
101
|
+
// Get historical data with graceful fallback
|
|
49
102
|
let historicalExecutions = [];
|
|
50
103
|
if (metadataStorage) {
|
|
51
104
|
try {
|
|
52
105
|
historicalExecutions = await executeWithTimeout(() => metadataStorage.getHistoricalData(rule.id, baselineWindowDays), timeoutMs, 'Volume check historical data query timeout');
|
|
53
106
|
}
|
|
54
107
|
catch (error) {
|
|
108
|
+
// Enhanced error logging for metadata retrieval failure
|
|
55
109
|
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
56
110
|
if (debugConfig.enabled) {
|
|
57
111
|
console.error(`[DEBUG-${debugId}] Metadata storage unavailable:`, {
|
|
@@ -64,11 +118,14 @@ export async function checkVolumeAnomaly(connector, rule, metadataStorage, confi
|
|
|
64
118
|
else {
|
|
65
119
|
console.warn(`Metadata storage unavailable, treating as fresh installation: ${errorMessage}`);
|
|
66
120
|
}
|
|
121
|
+
// Graceful fallback: treat as fresh installation with no history
|
|
67
122
|
historicalExecutions = [];
|
|
68
123
|
}
|
|
69
124
|
}
|
|
125
|
+
// Calculate baseline using enhanced calculator
|
|
70
126
|
const baselineCalculator = new BaselineCalculator(baselineConfig);
|
|
71
127
|
const baselineResult = baselineCalculator.calculateBaseline(historicalExecutions, currentRowCount);
|
|
128
|
+
// If not enough historical data, return ok (can't determine baseline yet)
|
|
72
129
|
if (baselineResult.dataPointsUsed < baselineConfig.minimumDataPoints) {
|
|
73
130
|
const executedAt = new Date();
|
|
74
131
|
const executionDurationMs = Number(process.hrtime.bigint() - startTime) / 1000000;
|
|
@@ -89,10 +146,12 @@ export async function checkVolumeAnomaly(connector, rule, metadataStorage, confi
|
|
|
89
146
|
executedAt,
|
|
90
147
|
});
|
|
91
148
|
}
|
|
149
|
+
// Determine if this is an anomaly using enhanced baseline result
|
|
92
150
|
const isAnomaly = baselineResult.deviationPercent > deviationThresholdPercent;
|
|
93
151
|
const status = isAnomaly ? 'alert' : 'ok';
|
|
94
152
|
const executedAt = new Date();
|
|
95
153
|
const executionDurationMs = Number(process.hrtime.bigint() - startTime) / 1000000;
|
|
154
|
+
// Save execution result to metadata storage
|
|
96
155
|
await saveExecutionResult(metadataStorage, {
|
|
97
156
|
ruleId: rule.id,
|
|
98
157
|
status,
|
|
@@ -111,9 +170,11 @@ export async function checkVolumeAnomaly(connector, rule, metadataStorage, confi
|
|
|
111
170
|
});
|
|
112
171
|
}
|
|
113
172
|
catch (error) {
|
|
173
|
+
// Use secure error handling to prevent information disclosure
|
|
114
174
|
const userMessage = ErrorHandler.getUserMessage(error);
|
|
115
175
|
const executedAt = new Date();
|
|
116
176
|
const executionDurationMs = Number(process.hrtime.bigint() - startTime) / 1000000;
|
|
177
|
+
// Log debug error information
|
|
117
178
|
if (debugConfig.enabled) {
|
|
118
179
|
console.error(`[DEBUG-${debugId}] Volume anomaly check failed:`, {
|
|
119
180
|
table: rule.tableName,
|
|
@@ -132,18 +193,23 @@ export async function checkVolumeAnomaly(connector, rule, metadataStorage, confi
|
|
|
132
193
|
error: userMessage,
|
|
133
194
|
}, debugConfig);
|
|
134
195
|
}
|
|
196
|
+
// Create result with debug information
|
|
135
197
|
const result = createSecureCheckResult('failed', {
|
|
136
198
|
error: userMessage,
|
|
137
199
|
executionDurationMs,
|
|
138
200
|
executedAt,
|
|
139
201
|
debugId,
|
|
140
202
|
});
|
|
203
|
+
// Add debug information if available
|
|
141
204
|
if (debugConfig.enabled && error instanceof Error && 'debug' in error) {
|
|
142
205
|
result.debug = error.debug;
|
|
143
206
|
}
|
|
144
207
|
return result;
|
|
145
208
|
}
|
|
146
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* Save execution result to metadata storage with error handling
|
|
212
|
+
*/
|
|
147
213
|
async function saveExecutionResult(metadataStorage, execution, debugConfig) {
|
|
148
214
|
if (!metadataStorage)
|
|
149
215
|
return;
|
|
@@ -160,6 +226,7 @@ async function saveExecutionResult(metadataStorage, execution, debugConfig) {
|
|
|
160
226
|
});
|
|
161
227
|
}
|
|
162
228
|
catch (error) {
|
|
229
|
+
// Enhanced error logging instead of console.warn
|
|
163
230
|
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
164
231
|
if (debugConfig?.enabled) {
|
|
165
232
|
console.error('[DEBUG] Failed to save volume execution history:', {
|
|
@@ -169,10 +236,14 @@ async function saveExecutionResult(metadataStorage, execution, debugConfig) {
|
|
|
169
236
|
});
|
|
170
237
|
}
|
|
171
238
|
else {
|
|
239
|
+
// Production: use structured logging if available, fallback to console
|
|
172
240
|
console.warn(`Failed to save execution history for rule ${execution.ruleId}: ${errorMessage}`);
|
|
173
241
|
}
|
|
174
242
|
}
|
|
175
243
|
}
|
|
244
|
+
/**
|
|
245
|
+
* Validate monitoring rule parameters for volume anomaly detection
|
|
246
|
+
*/
|
|
176
247
|
function validateVolumeRule(rule) {
|
|
177
248
|
if (!rule) {
|
|
178
249
|
throw new ConfigurationError('Monitoring rule is required');
|
|
@@ -183,6 +254,7 @@ function validateVolumeRule(rule) {
|
|
|
183
254
|
if (rule.tableName.length > 256) {
|
|
184
255
|
throw new ConfigurationError('Table name too long (max 256 characters)');
|
|
185
256
|
}
|
|
257
|
+
// Validate rule type matches
|
|
186
258
|
if (rule.ruleType !== 'volume_anomaly') {
|
|
187
259
|
throw new ConfigurationError('Rule type must be "volume_anomaly" for volume anomaly checks');
|
|
188
260
|
}
|
|
@@ -190,19 +262,25 @@ function validateVolumeRule(rule) {
|
|
|
190
262
|
throw new ConfigurationError('Rule ID is required and must be a string');
|
|
191
263
|
}
|
|
192
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* Validate volume detection parameters
|
|
267
|
+
*/
|
|
193
268
|
function validateVolumeParameters(baselineWindowDays, deviationThresholdPercent, minimumRowCount) {
|
|
269
|
+
// Validate baseline window
|
|
194
270
|
if (typeof baselineWindowDays !== 'number' || !Number.isInteger(baselineWindowDays)) {
|
|
195
271
|
throw new ConfigurationError('Baseline window days must be an integer');
|
|
196
272
|
}
|
|
197
273
|
if (baselineWindowDays < 1 || baselineWindowDays > 365) {
|
|
198
274
|
throw new ConfigurationError('Baseline window days must be between 1 and 365');
|
|
199
275
|
}
|
|
276
|
+
// Validate deviation threshold
|
|
200
277
|
if (typeof deviationThresholdPercent !== 'number' || deviationThresholdPercent < 0) {
|
|
201
278
|
throw new ConfigurationError('Deviation threshold percent must be a positive number');
|
|
202
279
|
}
|
|
203
280
|
if (deviationThresholdPercent > 1000) {
|
|
204
281
|
throw new ConfigurationError('Deviation threshold percent cannot exceed 1000%');
|
|
205
282
|
}
|
|
283
|
+
// Validate minimum row count
|
|
206
284
|
if (typeof minimumRowCount !== 'number' || !Number.isInteger(minimumRowCount)) {
|
|
207
285
|
throw new ConfigurationError('Minimum row count must be an integer');
|
|
208
286
|
}
|
|
@@ -210,6 +288,9 @@ function validateVolumeParameters(baselineWindowDays, deviationThresholdPercent,
|
|
|
210
288
|
throw new ConfigurationError('Minimum row count cannot be negative');
|
|
211
289
|
}
|
|
212
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* Get current row count using connector with error handling
|
|
293
|
+
*/
|
|
213
294
|
async function getCurrentRowCount(connector, tableName, debugConfig, debugFactory) {
|
|
214
295
|
const startTime = performance.now();
|
|
215
296
|
const queryContext = {
|
|
@@ -219,6 +300,7 @@ async function getCurrentRowCount(connector, tableName, debugConfig, debugFactor
|
|
|
219
300
|
operation: 'volume_count'
|
|
220
301
|
};
|
|
221
302
|
try {
|
|
303
|
+
// Log connector operation in debug mode
|
|
222
304
|
if (debugConfig.enabled) {
|
|
223
305
|
console.log(`[DEBUG] Executing volume count via connector:`, {
|
|
224
306
|
table: tableName,
|
|
@@ -230,6 +312,7 @@ async function getCurrentRowCount(connector, tableName, debugConfig, debugFactor
|
|
|
230
312
|
if (isNaN(rowCount) || rowCount < 0) {
|
|
231
313
|
throw debugFactory.createQueryError('Invalid row count returned from connector', undefined, queryContext);
|
|
232
314
|
}
|
|
315
|
+
// Check for overflow protection (2^53 - 1 is safe integer limit)
|
|
233
316
|
if (rowCount > Number.MAX_SAFE_INTEGER) {
|
|
234
317
|
throw debugFactory.createQueryError('Row count exceeds safe integer limit', undefined, queryContext);
|
|
235
318
|
}
|
|
@@ -240,6 +323,9 @@ async function getCurrentRowCount(connector, tableName, debugConfig, debugFactor
|
|
|
240
323
|
throw debugFactory.createQueryError('Failed to get current row count via connector', error instanceof Error ? error : undefined, queryContext);
|
|
241
324
|
}
|
|
242
325
|
}
|
|
326
|
+
/**
|
|
327
|
+
* Execute operation with timeout protection
|
|
328
|
+
*/
|
|
243
329
|
async function executeWithTimeout(operation, timeoutMs, timeoutMessage) {
|
|
244
330
|
return new Promise((resolve, reject) => {
|
|
245
331
|
const timer = setTimeout(() => {
|
|
@@ -251,6 +337,9 @@ async function executeWithTimeout(operation, timeoutMs, timeoutMessage) {
|
|
|
251
337
|
.finally(() => clearTimeout(timer));
|
|
252
338
|
});
|
|
253
339
|
}
|
|
340
|
+
/**
|
|
341
|
+
* Create secure check result with consistent structure
|
|
342
|
+
*/
|
|
254
343
|
function createSecureCheckResult(status, data) {
|
|
255
344
|
return {
|
|
256
345
|
...data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"volume.js","sourceRoot":"","sources":["../../src/monitor/volume.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"volume.js","sourceRoot":"","sources":["../../src/monitor/volume.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured logging system for FreshGuard Core Phase 2
|
|
3
|
+
*
|
|
4
|
+
* Provides JSON-based structured logging with context preservation,
|
|
5
|
+
* sensitive data sanitization, and integration with resilience components.
|
|
6
|
+
*
|
|
7
|
+
* @license MIT
|
|
8
|
+
*/
|
|
1
9
|
import { type Logger as PinoLogger, type LoggerOptions } from 'pino';
|
|
10
|
+
/**
|
|
11
|
+
* Log levels supported by the system
|
|
12
|
+
*/
|
|
2
13
|
export declare enum LogLevel {
|
|
3
14
|
TRACE = "trace",
|
|
4
15
|
DEBUG = "debug",
|
|
@@ -7,57 +18,137 @@ export declare enum LogLevel {
|
|
|
7
18
|
ERROR = "error",
|
|
8
19
|
FATAL = "fatal"
|
|
9
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Structured log context for operations
|
|
23
|
+
*/
|
|
10
24
|
export interface LogContext {
|
|
25
|
+
/** Operation being performed */
|
|
11
26
|
operation?: string;
|
|
27
|
+
/** Table or resource being accessed */
|
|
12
28
|
table?: string;
|
|
29
|
+
/** Database or service being used */
|
|
13
30
|
database?: string;
|
|
31
|
+
/** Duration of operation in milliseconds */
|
|
14
32
|
duration?: number;
|
|
33
|
+
/** Component generating the log */
|
|
15
34
|
component?: string;
|
|
35
|
+
/** Connection identifier */
|
|
16
36
|
connectionId?: string;
|
|
37
|
+
/** Query complexity score */
|
|
17
38
|
queryComplexity?: number;
|
|
39
|
+
/** Retry attempt number */
|
|
18
40
|
retryAttempt?: number;
|
|
41
|
+
/** Circuit breaker state */
|
|
19
42
|
circuitBreakerState?: string;
|
|
43
|
+
/** Additional context data */
|
|
20
44
|
[key: string]: unknown;
|
|
21
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Logger configuration
|
|
48
|
+
*/
|
|
22
49
|
export interface LoggerConfig {
|
|
50
|
+
/** Log level (default: info) */
|
|
23
51
|
level?: LogLevel;
|
|
52
|
+
/** Enable pretty printing for development */
|
|
24
53
|
prettyPrint?: boolean;
|
|
54
|
+
/** Service name for logs */
|
|
25
55
|
serviceName?: string;
|
|
56
|
+
/** Environment (development, production, test) */
|
|
26
57
|
environment?: string;
|
|
58
|
+
/** Enable/disable sensitive data sanitization */
|
|
27
59
|
sanitizeSensitiveData?: boolean;
|
|
60
|
+
/** Additional base context to include in all logs */
|
|
28
61
|
baseContext?: Record<string, unknown>;
|
|
62
|
+
/** Custom Pino options */
|
|
29
63
|
pinoOptions?: Partial<LoggerOptions>;
|
|
30
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Timing information for operations
|
|
67
|
+
*/
|
|
31
68
|
export interface TimingInfo {
|
|
32
69
|
startTime: Date;
|
|
33
70
|
endTime: Date | null;
|
|
34
71
|
duration: number;
|
|
35
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Structured logger with context preservation and sensitive data sanitization
|
|
75
|
+
*/
|
|
36
76
|
export declare class StructuredLogger {
|
|
37
77
|
private readonly logger;
|
|
38
78
|
private readonly config;
|
|
39
79
|
private readonly baseContext;
|
|
40
80
|
constructor(config?: LoggerConfig);
|
|
81
|
+
/**
|
|
82
|
+
* Create a child logger with additional context
|
|
83
|
+
*/
|
|
41
84
|
child(context: LogContext): StructuredLogger;
|
|
85
|
+
/**
|
|
86
|
+
* Create a timing tracker for operations
|
|
87
|
+
*/
|
|
42
88
|
createTimer(): {
|
|
43
89
|
start(): void;
|
|
44
90
|
end(message?: string, context?: LogContext): TimingInfo;
|
|
45
91
|
getDuration(): number;
|
|
46
92
|
};
|
|
93
|
+
/**
|
|
94
|
+
* Log at TRACE level
|
|
95
|
+
*/
|
|
47
96
|
trace(message: string, context?: LogContext): void;
|
|
97
|
+
/**
|
|
98
|
+
* Log at DEBUG level
|
|
99
|
+
*/
|
|
48
100
|
debug(message: string, context?: LogContext): void;
|
|
101
|
+
/**
|
|
102
|
+
* Log at INFO level
|
|
103
|
+
*/
|
|
49
104
|
info(message: string, context?: LogContext): void;
|
|
105
|
+
/**
|
|
106
|
+
* Log at WARN level
|
|
107
|
+
*/
|
|
50
108
|
warn(message: string, context?: LogContext): void;
|
|
109
|
+
/**
|
|
110
|
+
* Log at ERROR level
|
|
111
|
+
*/
|
|
51
112
|
error(message: string, error?: unknown, context?: LogContext): void;
|
|
113
|
+
/**
|
|
114
|
+
* Log at FATAL level
|
|
115
|
+
*/
|
|
52
116
|
fatal(message: string, error?: unknown, context?: LogContext): void;
|
|
117
|
+
/**
|
|
118
|
+
* Generic log method
|
|
119
|
+
*/
|
|
53
120
|
private log;
|
|
121
|
+
/**
|
|
122
|
+
* Get the underlying Pino logger
|
|
123
|
+
*/
|
|
54
124
|
getPinoLogger(): PinoLogger;
|
|
125
|
+
/**
|
|
126
|
+
* Check if a log level is enabled
|
|
127
|
+
*/
|
|
55
128
|
isLevelEnabled(level: LogLevel): boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Get current logger configuration
|
|
131
|
+
*/
|
|
56
132
|
getConfig(): Required<LoggerConfig>;
|
|
133
|
+
/**
|
|
134
|
+
* Flush any pending logs (useful for testing)
|
|
135
|
+
*/
|
|
57
136
|
flush(): void;
|
|
58
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Default logger instance for convenience
|
|
140
|
+
*/
|
|
59
141
|
export declare const defaultLogger: StructuredLogger;
|
|
142
|
+
/**
|
|
143
|
+
* Create a logger for a specific component
|
|
144
|
+
*/
|
|
60
145
|
export declare function createComponentLogger(component: string, config?: LoggerConfig): StructuredLogger;
|
|
146
|
+
/**
|
|
147
|
+
* Create a logger for database operations
|
|
148
|
+
*/
|
|
61
149
|
export declare function createDatabaseLogger(database: string, config?: LoggerConfig): StructuredLogger;
|
|
150
|
+
/**
|
|
151
|
+
* Log a timed operation
|
|
152
|
+
*/
|
|
62
153
|
export declare function logTimedOperation<T>(logger: StructuredLogger, operation: string, fn: () => Promise<T>, context?: LogContext): Promise<T>;
|
|
63
154
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/observability/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/observability/logger.ts"],"names":[],"mappings":"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"}
|