@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,6 @@
1
+ /**
2
+ * DuckDB implementation of metadata storage for self-hosting
3
+ */
1
4
  import { DuckDBInstance } from '@duckdb/node-api';
2
5
  export class DuckDBMetadataStorage {
3
6
  dbPath;
@@ -11,6 +14,7 @@ export class DuckDBMetadataStorage {
11
14
  return;
12
15
  this.instance = await DuckDBInstance.create(this.dbPath);
13
16
  this.connection = await this.instance.connect();
17
+ // Create tables if they don't exist
14
18
  await this.connection.run(`
15
19
  CREATE TABLE IF NOT EXISTS check_executions (
16
20
  rule_id TEXT NOT NULL,
@@ -131,6 +135,7 @@ export class DuckDBMetadataStorage {
131
135
  async saveRule(rule) {
132
136
  if (!this.connection)
133
137
  throw new Error('DuckDB storage not initialized');
138
+ // For now, just store minimal fields to satisfy the interface
134
139
  await this.connection.run(`
135
140
  INSERT OR REPLACE INTO monitoring_rules (
136
141
  id, source_id, name, table_name, rule_type, check_interval_minutes,
@@ -176,6 +181,7 @@ export class DuckDBMetadataStorage {
176
181
  async storeSchemaBaseline(baseline, adaptationReason) {
177
182
  if (!this.connection)
178
183
  throw new Error('DuckDB storage not initialized');
184
+ // Use INSERT OR REPLACE to handle updates
179
185
  await this.connection.run(`
180
186
  INSERT OR REPLACE INTO schema_baselines (
181
187
  rule_id,
@@ -1 +1 @@
1
- {"version":3,"file":"duckdb-storage.js","sourceRoot":"","sources":["../../src/metadata/duckdb-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"duckdb-storage.js","sourceRoot":"","sources":["../../src/metadata/duckdb-storage.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,34 @@
1
+ /**
2
+ * Factory for creating metadata storage instances
3
+ */
1
4
  import type { MetadataStorage } from './interface.js';
2
5
  import type { MetadataStorageConfig } from './types.js';
6
+ /**
7
+ * Create and initialize a metadata storage instance.
8
+ *
9
+ * Defaults to embedded DuckDB when called without arguments (zero-setup).
10
+ * Pass a config object to use PostgreSQL or customize the DuckDB path.
11
+ *
12
+ * @param config - Optional storage configuration. Omit for default DuckDB storage.
13
+ * @returns Initialized MetadataStorage ready for use
14
+ * @throws {Error} If `type` is `'postgresql'` and `url` is not provided
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // Zero-setup DuckDB (default)
19
+ * const storage = await createMetadataStorage();
20
+ *
21
+ * // Custom DuckDB path
22
+ * const storage = await createMetadataStorage({ type: 'duckdb', path: './data/meta.db' });
23
+ *
24
+ * // PostgreSQL
25
+ * const storage = await createMetadataStorage({
26
+ * type: 'postgresql',
27
+ * url: 'postgresql://user:pass@host:5432/freshguard_metadata',
28
+ * });
29
+ * ```
30
+ *
31
+ * @since 0.6.0
32
+ */
3
33
  export declare function createMetadataStorage(config?: MetadataStorageConfig): Promise<MetadataStorage>;
4
34
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/metadata/factory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AA+BxD,wBAAsB,qBAAqB,CACzC,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAoB1B"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/metadata/factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAIxD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAoB1B"}
@@ -1,8 +1,39 @@
1
+ /**
2
+ * Factory for creating metadata storage instances
3
+ */
1
4
  import { DuckDBMetadataStorage } from './duckdb-storage.js';
2
5
  import { PostgreSQLMetadataStorage } from './postgresql-storage.js';
6
+ /**
7
+ * Create and initialize a metadata storage instance.
8
+ *
9
+ * Defaults to embedded DuckDB when called without arguments (zero-setup).
10
+ * Pass a config object to use PostgreSQL or customize the DuckDB path.
11
+ *
12
+ * @param config - Optional storage configuration. Omit for default DuckDB storage.
13
+ * @returns Initialized MetadataStorage ready for use
14
+ * @throws {Error} If `type` is `'postgresql'` and `url` is not provided
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // Zero-setup DuckDB (default)
19
+ * const storage = await createMetadataStorage();
20
+ *
21
+ * // Custom DuckDB path
22
+ * const storage = await createMetadataStorage({ type: 'duckdb', path: './data/meta.db' });
23
+ *
24
+ * // PostgreSQL
25
+ * const storage = await createMetadataStorage({
26
+ * type: 'postgresql',
27
+ * url: 'postgresql://user:pass@host:5432/freshguard_metadata',
28
+ * });
29
+ * ```
30
+ *
31
+ * @since 0.6.0
32
+ */
3
33
  export async function createMetadataStorage(config) {
4
34
  let storage;
5
35
  if (!config) {
36
+ // Default to DuckDB for simplicity
6
37
  storage = new DuckDBMetadataStorage();
7
38
  }
8
39
  else if (config.type === 'duckdb') {
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/metadata/factory.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AA6BpE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAA8B;IAE9B,IAAI,OAAwB,CAAC;IAE7B,IAAI,CAAC,MAAM,EAAE,CAAC;QAEZ,OAAO,GAAG,IAAI,qBAAqB,EAAE,CAAC;IACxC,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,GAAG,IAAI,yBAAyB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,MAAM,gBAAgB,GAAU,MAAM,CAAC,IAAI,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,yBAAyB,gBAA0B,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IAC3B,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/metadata/factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAA8B;IAE9B,IAAI,OAAwB,CAAC;IAE7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,mCAAmC;QACnC,OAAO,GAAG,IAAI,qBAAqB,EAAE,CAAC;IACxC,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,GAAG,IAAI,yBAAyB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,MAAM,gBAAgB,GAAU,MAAM,CAAC,IAAI,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,yBAAyB,gBAA0B,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IAC3B,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,3 +1,29 @@
1
+ /**
2
+ * Metadata storage for persisting check execution history
3
+ *
4
+ * FreshGuard uses a metadata store to record every check execution so that
5
+ * volume-anomaly baselines and historical trends are available across runs.
6
+ *
7
+ * Use the {@link createMetadataStorage} factory to create an instance:
8
+ * - **DuckDB** (default, zero-setup) — embedded file or `:memory:`
9
+ * - **PostgreSQL** — shared metadata across multiple workers
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { createMetadataStorage } from '@freshguard/freshguard-core';
14
+ *
15
+ * // Zero-setup embedded DuckDB (default)
16
+ * const storage = await createMetadataStorage();
17
+ *
18
+ * // PostgreSQL for shared deployments
19
+ * const pgStorage = await createMetadataStorage({
20
+ * type: 'postgresql',
21
+ * url: process.env.METADATA_DATABASE_URL!,
22
+ * });
23
+ * ```
24
+ *
25
+ * @module @freshguard/freshguard-core/metadata
26
+ */
1
27
  export type { MetadataStorage } from './interface.js';
2
28
  export type { MetadataCheckExecution, MetadataMonitoringRule, MetadataStorageConfig } from './types.js';
3
29
  export { createMetadataStorage } from './factory.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxG,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxG,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,3 +1,29 @@
1
+ /**
2
+ * Metadata storage for persisting check execution history
3
+ *
4
+ * FreshGuard uses a metadata store to record every check execution so that
5
+ * volume-anomaly baselines and historical trends are available across runs.
6
+ *
7
+ * Use the {@link createMetadataStorage} factory to create an instance:
8
+ * - **DuckDB** (default, zero-setup) — embedded file or `:memory:`
9
+ * - **PostgreSQL** — shared metadata across multiple workers
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { createMetadataStorage } from '@freshguard/freshguard-core';
14
+ *
15
+ * // Zero-setup embedded DuckDB (default)
16
+ * const storage = await createMetadataStorage();
17
+ *
18
+ * // PostgreSQL for shared deployments
19
+ * const pgStorage = await createMetadataStorage({
20
+ * type: 'postgresql',
21
+ * url: process.env.METADATA_DATABASE_URL!,
22
+ * });
23
+ * ```
24
+ *
25
+ * @module @freshguard/freshguard-core/metadata
26
+ */
1
27
  export { createMetadataStorage } from './factory.js';
2
28
  export { DuckDBMetadataStorage } from './duckdb-storage.js';
3
29
  export { PostgreSQLMetadataStorage } from './postgresql-storage.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,4 +1,10 @@
1
+ /**
2
+ * Core metadata storage abstraction interface
3
+ */
1
4
  import type { MonitoringRule, SchemaBaseline } from '../types.js';
5
+ /**
6
+ * Simplified execution record for metadata storage
7
+ */
2
8
  interface MetadataExecution {
3
9
  ruleId: string;
4
10
  status: 'ok' | 'alert' | 'failed' | 'pending';
@@ -13,13 +19,40 @@ interface MetadataExecution {
13
19
  error?: string;
14
20
  }
15
21
  export interface MetadataStorage {
22
+ /**
23
+ * Save execution result for historical analysis
24
+ */
16
25
  saveExecution(execution: MetadataExecution): Promise<void>;
26
+ /**
27
+ * Get historical execution data for anomaly detection baseline
28
+ * @param ruleId The monitoring rule ID
29
+ * @param days Number of days to look back
30
+ * @returns Array of execution records
31
+ */
17
32
  getHistoricalData(ruleId: string, days: number): Promise<MetadataExecution[]>;
33
+ /**
34
+ * Save monitoring rule configuration
35
+ */
18
36
  saveRule(rule: MonitoringRule): Promise<void>;
37
+ /**
38
+ * Get monitoring rule by ID
39
+ */
19
40
  getRule(ruleId: string): Promise<MonitoringRule | null>;
41
+ /**
42
+ * Store schema baseline for comparison
43
+ */
20
44
  storeSchemaBaseline(baseline: SchemaBaseline, adaptationReason?: string): Promise<void>;
45
+ /**
46
+ * Get schema baseline for a rule
47
+ */
21
48
  getSchemaBaseline(ruleId: string): Promise<SchemaBaseline | null>;
49
+ /**
50
+ * Initialize storage (create tables, etc.)
51
+ */
22
52
  initialize(): Promise<void>;
53
+ /**
54
+ * Close storage connections
55
+ */
23
56
  close(): Promise<void>;
24
57
  }
25
58
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/metadata/interface.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlE,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAI9B,aAAa,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAQ3D,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAK9E,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAK9C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAKxD,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAKxF,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAKlE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAK5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/metadata/interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElE;;GAEG;AACH,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D;;;;;OAKG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE9E;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAExD;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExF;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAElE;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -1,2 +1,5 @@
1
+ /**
2
+ * Core metadata storage abstraction interface
3
+ */
1
4
  export {};
2
5
  //# sourceMappingURL=interface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/metadata/interface.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/metadata/interface.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * PostgreSQL implementation of metadata storage using existing Drizzle schema
3
+ */
1
4
  import type { MetadataStorage } from './interface.js';
2
5
  import type { MetadataStorageConfig } from './types.js';
3
6
  import type { SchemaBaseline, MonitoringRule } from '../types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"postgresql-storage.d.ts","sourceRoot":"","sources":["../../src/metadata/postgresql-storage.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlE,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,qBAAa,yBAA0B,YAAW,eAAe;IAO7D,OAAO,CAAC,QAAQ,CAAC,aAAa;IANhC,OAAO,CAAC,MAAM,CAAC,CAAe;IAC9B,OAAO,CAAC,EAAE,CAAC,CAA6B;gBAKrB,aAAa,EAAE,MAAM,EACtC,cAAc,CAAC,EAAE,qBAAqB;IAUlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,aAAa,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB1D,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAiD7E,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC7C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA4CvD,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCvF,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAyCjE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
1
+ {"version":3,"file":"postgresql-storage.d.ts","sourceRoot":"","sources":["../../src/metadata/postgresql-storage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlE,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,qBAAa,yBAA0B,YAAW,eAAe;IAO7D,OAAO,CAAC,QAAQ,CAAC,aAAa;IANhC,OAAO,CAAC,MAAM,CAAC,CAAe;IAC9B,OAAO,CAAC,EAAE,CAAC,CAA6B;gBAKrB,aAAa,EAAE,MAAM,EACtC,cAAc,CAAC,EAAE,qBAAqB;IAUlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,aAAa,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB1D,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAiD7E,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC7C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA4CvD,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCvF,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAyCjE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * PostgreSQL implementation of metadata storage using existing Drizzle schema
3
+ */
1
4
  import { drizzle } from 'drizzle-orm/postgres-js';
2
5
  import { sql, and, desc, gt } from 'drizzle-orm';
3
6
  import postgres from 'postgres';
@@ -8,8 +11,13 @@ export class PostgreSQLMetadataStorage {
8
11
  connectionUrl;
9
12
  client;
10
13
  db;
14
+ // Schema configuration for future use with custom table names
15
+ // private _schemaConfig: ResolvedSchemaConfig;
11
16
  constructor(connectionUrl, metadataConfig) {
12
17
  this.connectionUrl = connectionUrl;
18
+ // Resolve schema configuration with defaults (for validation)
19
+ // Schema configuration validation happens in constructor but isn't used yet
20
+ // TODO: Implement custom table names using resolved configuration
13
21
  if (metadataConfig?.schema) {
14
22
  new SchemaConfigResolver(metadataConfig);
15
23
  }
@@ -20,6 +28,7 @@ export class PostgreSQLMetadataStorage {
20
28
  try {
21
29
  this.client = postgres(this.connectionUrl);
22
30
  this.db = drizzle(this.client);
31
+ // Test connection by attempting a simple query
23
32
  await this.db.execute(sql `SELECT 1`);
24
33
  }
25
34
  catch (error) {
@@ -34,7 +43,7 @@ export class PostgreSQLMetadataStorage {
34
43
  try {
35
44
  await this.db.insert(checkExecutions).values({
36
45
  ruleId: execution.ruleId,
37
- sourceId: execution.ruleId,
46
+ sourceId: execution.ruleId, // Use ruleId as sourceId for simplicity
38
47
  status: execution.status,
39
48
  rowCount: execution.rowCount,
40
49
  lagMinutes: execution.lagMinutes,
@@ -169,6 +178,7 @@ export class PostgreSQLMetadataStorage {
169
178
  throw MetadataStorageError.initializationFailed('Database not initialized');
170
179
  }
171
180
  try {
181
+ // Use Drizzle with ON CONFLICT to handle updates
172
182
  await this.db
173
183
  .insert(schemaBaselines)
174
184
  .values({
@@ -221,7 +231,7 @@ export class PostgreSQLMetadataStorage {
221
231
  return {
222
232
  ruleId: row.ruleId,
223
233
  tableName: row.tableName,
224
- schema: row.schema,
234
+ schema: row.schema, // JSONB column
225
235
  schemaHash: row.schemaHash,
226
236
  capturedAt: row.capturedAt,
227
237
  };
@@ -1 +1 @@
1
- {"version":3,"file":"postgresql-storage.js","sourceRoot":"","sources":["../../src/metadata/postgresql-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgresql-storage.js","sourceRoot":"","sources":["../../src/metadata/postgresql-storage.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,15 @@
1
+ /**
2
+ * Schema configuration resolver for PostgreSQL metadata storage
3
+ *
4
+ * Provides configuration resolution with sensible defaults,
5
+ * table prefix application, and qualified table name generation.
6
+ *
7
+ * @license MIT
8
+ */
1
9
  import type { MetadataStorageConfig } from './types.js';
10
+ /**
11
+ * Resolved schema configuration with applied defaults
12
+ */
2
13
  export interface ResolvedSchemaConfig {
3
14
  schemaName: string;
4
15
  tablePrefix: string;
@@ -11,20 +22,62 @@ export interface ResolvedSchemaConfig {
11
22
  monitoringRules: string;
12
23
  };
13
24
  }
25
+ /**
26
+ * Schema configuration resolver
27
+ *
28
+ * Resolves metadata storage configuration with defaults and validates parameters.
29
+ * Provides qualified table names for PostgreSQL operations.
30
+ */
14
31
  export declare class SchemaConfigResolver {
15
32
  private readonly config;
16
33
  constructor(metadataConfig: MetadataStorageConfig);
34
+ /**
35
+ * Get resolved configuration
36
+ */
17
37
  getConfig(): ResolvedSchemaConfig;
38
+ /**
39
+ * Get qualified table name (schema.prefix_tableName)
40
+ */
18
41
  getQualifiedTableName(baseTableName: keyof ResolvedSchemaConfig['tables']): string;
42
+ /**
43
+ * Get schema name
44
+ */
19
45
  getSchemaName(): string;
46
+ /**
47
+ * Get table prefix
48
+ */
20
49
  getTablePrefix(): string;
50
+ /**
51
+ * Get table name with prefix applied
52
+ */
21
53
  getTableName(baseTableName: keyof ResolvedSchemaConfig['tables']): string;
54
+ /**
55
+ * Resolve configuration with defaults
56
+ */
22
57
  private resolveConfiguration;
58
+ /**
59
+ * Apply table prefix to table name
60
+ */
23
61
  private applyTablePrefix;
62
+ /**
63
+ * Create qualified table name (schema.table)
64
+ */
24
65
  private createQualifiedName;
66
+ /**
67
+ * Validate configuration parameters
68
+ */
25
69
  private validateConfiguration;
70
+ /**
71
+ * Check if identifier is valid for PostgreSQL
72
+ */
26
73
  private isValidIdentifier;
74
+ /**
75
+ * Check if table prefix is valid
76
+ */
27
77
  private isValidTablePrefix;
78
+ /**
79
+ * Check if identifier is a PostgreSQL reserved keyword
80
+ */
28
81
  private isReservedKeyword;
29
82
  }
30
83
  //# sourceMappingURL=schema-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-config.d.ts","sourceRoot":"","sources":["../../src/metadata/schema-config.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAMxD,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,cAAc,EAAE;QACd,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAQD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;gBAElC,cAAc,EAAE,qBAAqB;IAQjD,SAAS,IAAI,oBAAoB;IAOjC,qBAAqB,CAAC,aAAa,EAAE,MAAM,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM;IAOlF,aAAa,IAAI,MAAM;IAOvB,cAAc,IAAI,MAAM;IAOxB,YAAY,CAAC,aAAa,EAAE,MAAM,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM;IAOzE,OAAO,CAAC,oBAAoB;IAoC5B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,qBAAqB;IAkC7B,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,iBAAiB;CAY1B"}
1
+ {"version":3,"file":"schema-config.d.ts","sourceRoot":"","sources":["../../src/metadata/schema-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,cAAc,EAAE;QACd,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;gBAElC,cAAc,EAAE,qBAAqB;IAKjD;;OAEG;IACH,SAAS,IAAI,oBAAoB;IAIjC;;OAEG;IACH,qBAAqB,CAAC,aAAa,EAAE,MAAM,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM;IAIlF;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM;IAIzE;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiC5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+B7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAY1B"}
@@ -1,33 +1,68 @@
1
+ /**
2
+ * Schema configuration resolver for PostgreSQL metadata storage
3
+ *
4
+ * Provides configuration resolution with sensible defaults,
5
+ * table prefix application, and qualified table name generation.
6
+ *
7
+ * @license MIT
8
+ */
1
9
  import { ConfigurationError } from '../errors/index.js';
10
+ /**
11
+ * Schema configuration resolver
12
+ *
13
+ * Resolves metadata storage configuration with defaults and validates parameters.
14
+ * Provides qualified table names for PostgreSQL operations.
15
+ */
2
16
  export class SchemaConfigResolver {
3
17
  config;
4
18
  constructor(metadataConfig) {
5
19
  this.config = this.resolveConfiguration(metadataConfig);
6
20
  this.validateConfiguration();
7
21
  }
22
+ /**
23
+ * Get resolved configuration
24
+ */
8
25
  getConfig() {
9
26
  return this.config;
10
27
  }
28
+ /**
29
+ * Get qualified table name (schema.prefix_tableName)
30
+ */
11
31
  getQualifiedTableName(baseTableName) {
12
32
  return this.config.qualifiedNames[baseTableName];
13
33
  }
34
+ /**
35
+ * Get schema name
36
+ */
14
37
  getSchemaName() {
15
38
  return this.config.schemaName;
16
39
  }
40
+ /**
41
+ * Get table prefix
42
+ */
17
43
  getTablePrefix() {
18
44
  return this.config.tablePrefix;
19
45
  }
46
+ /**
47
+ * Get table name with prefix applied
48
+ */
20
49
  getTableName(baseTableName) {
21
50
  return this.config.tables[baseTableName];
22
51
  }
52
+ /**
53
+ * Resolve configuration with defaults
54
+ */
23
55
  resolveConfiguration(metadataConfig) {
24
56
  const schemaConfig = metadataConfig.schema ?? {};
57
+ // Apply defaults
25
58
  const schemaName = schemaConfig.name ?? 'public';
26
59
  const tablePrefix = schemaConfig.tablePrefix ?? '';
60
+ // Apply table prefix to base table names
27
61
  const tables = {
28
62
  checkExecutions: this.applyTablePrefix(schemaConfig.tables?.checkExecutions ?? 'checkExecutions', tablePrefix),
29
63
  monitoringRules: this.applyTablePrefix(schemaConfig.tables?.monitoringRules ?? 'monitoringRules', tablePrefix),
30
64
  };
65
+ // Create qualified names (schema.tableName)
31
66
  const qualifiedNames = {
32
67
  checkExecutions: this.createQualifiedName(schemaName, tables.checkExecutions),
33
68
  monitoringRules: this.createQualifiedName(schemaName, tables.monitoringRules),
@@ -39,48 +74,77 @@ export class SchemaConfigResolver {
39
74
  qualifiedNames,
40
75
  };
41
76
  }
77
+ /**
78
+ * Apply table prefix to table name
79
+ */
42
80
  applyTablePrefix(tableName, prefix) {
43
81
  if (!prefix)
44
82
  return tableName;
83
+ // Only add prefix if not already present
45
84
  if (tableName.startsWith(prefix)) {
46
85
  return tableName;
47
86
  }
48
87
  return `${prefix}${tableName}`;
49
88
  }
89
+ /**
90
+ * Create qualified table name (schema.table)
91
+ */
50
92
  createQualifiedName(schemaName, tableName) {
93
+ // For public schema, we can omit it in many contexts, but always include for consistency
51
94
  return `${schemaName}.${tableName}`;
52
95
  }
96
+ /**
97
+ * Validate configuration parameters
98
+ */
53
99
  validateConfiguration() {
100
+ // Validate schema name
54
101
  if (!this.isValidIdentifier(this.config.schemaName)) {
55
102
  throw ConfigurationError.invalidValue('schema.name', this.config.schemaName, 'valid PostgreSQL schema name');
56
103
  }
104
+ // Validate table prefix
57
105
  if (this.config.tablePrefix && !this.isValidTablePrefix(this.config.tablePrefix)) {
58
106
  throw ConfigurationError.invalidValue('schema.tablePrefix', this.config.tablePrefix, 'valid PostgreSQL table prefix');
59
107
  }
108
+ // Validate table names
60
109
  Object.entries(this.config.tables).forEach(([key, tableName]) => {
61
110
  if (!this.isValidIdentifier(tableName)) {
62
111
  throw ConfigurationError.invalidValue(`schema.tables.${key}`, tableName, 'valid PostgreSQL table name');
63
112
  }
64
113
  });
65
114
  }
115
+ /**
116
+ * Check if identifier is valid for PostgreSQL
117
+ */
66
118
  isValidIdentifier(identifier) {
67
119
  if (!identifier || typeof identifier !== 'string') {
68
120
  return false;
69
121
  }
122
+ // PostgreSQL identifier rules:
123
+ // - Start with letter or underscore
124
+ // - Contain only letters, digits, underscores
125
+ // - Max 63 characters
70
126
  const identifierPattern = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
71
127
  return (identifier.length <= 63 &&
72
128
  identifierPattern.test(identifier) &&
73
129
  !this.isReservedKeyword(identifier.toLowerCase()));
74
130
  }
131
+ /**
132
+ * Check if table prefix is valid
133
+ */
75
134
  isValidTablePrefix(prefix) {
76
135
  if (!prefix || typeof prefix !== 'string') {
77
136
  return false;
78
137
  }
138
+ // Table prefix should be alphanumeric with underscores, max 20 chars
79
139
  const prefixPattern = /^[a-zA-Z0-9_]*$/;
80
140
  return (prefix.length <= 20 &&
81
141
  prefixPattern.test(prefix));
82
142
  }
143
+ /**
144
+ * Check if identifier is a PostgreSQL reserved keyword
145
+ */
83
146
  isReservedKeyword(identifier) {
147
+ // Common PostgreSQL reserved keywords that would cause issues
84
148
  const reservedKeywords = new Set([
85
149
  'select', 'from', 'where', 'insert', 'update', 'delete', 'create', 'drop',
86
150
  'table', 'index', 'view', 'user', 'group', 'order', 'by', 'limit',