dbdock 1.1.2 → 1.1.4

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 (37) hide show
  1. package/README.md +118 -25
  2. package/dist/backup/backup.service.js +16 -10
  3. package/dist/backup/backup.service.js.map +1 -1
  4. package/dist/cli/commands/init.js +126 -21
  5. package/dist/cli/commands/init.js.map +1 -1
  6. package/dist/cli/commands/migrate-config.d.ts +1 -0
  7. package/dist/cli/commands/migrate-config.js +172 -0
  8. package/dist/cli/commands/migrate-config.js.map +1 -0
  9. package/dist/cli/commands/restore.js +1 -1
  10. package/dist/cli/commands/restore.js.map +1 -1
  11. package/dist/cli/commands/test.js +92 -13
  12. package/dist/cli/commands/test.js.map +1 -1
  13. package/dist/cli/index.js +5 -0
  14. package/dist/cli/index.js.map +1 -1
  15. package/dist/config/config.schema.d.ts +5 -1
  16. package/dist/config/config.schema.js +25 -0
  17. package/dist/config/config.schema.js.map +1 -1
  18. package/dist/config/config.service.d.ts +2 -0
  19. package/dist/config/config.service.js +59 -5
  20. package/dist/config/config.service.js.map +1 -1
  21. package/dist/config/permissions.checker.d.ts +10 -0
  22. package/dist/config/permissions.checker.js +137 -0
  23. package/dist/config/permissions.checker.js.map +1 -0
  24. package/dist/config/pgpass.helper.d.ts +15 -0
  25. package/dist/config/pgpass.helper.js +184 -0
  26. package/dist/config/pgpass.helper.js.map +1 -0
  27. package/dist/config/secrets.validator.d.ts +17 -0
  28. package/dist/config/secrets.validator.js +169 -0
  29. package/dist/config/secrets.validator.js.map +1 -0
  30. package/dist/storage/storage.service.js +15 -1
  31. package/dist/storage/storage.service.js.map +1 -1
  32. package/dist/utils/logger.d.ts +6 -0
  33. package/dist/utils/logger.js +37 -2
  34. package/dist/utils/logger.js.map +1 -1
  35. package/dist/wal/wal-archiver.service.js +8 -3
  36. package/dist/wal/wal-archiver.service.js.map +1 -1
  37. package/package.json +1 -1
@@ -49,6 +49,8 @@ const class_transformer_1 = require("class-transformer");
49
49
  const class_validator_1 = require("class-validator");
50
50
  const config_schema_1 = require("./config.schema");
51
51
  const fs = __importStar(require("fs"));
52
+ const secrets_validator_1 = require("./secrets.validator");
53
+ const permissions_checker_1 = require("./permissions.checker");
52
54
  let DBDockConfigService = class DBDockConfigService {
53
55
  nestConfig;
54
56
  config;
@@ -59,14 +61,27 @@ let DBDockConfigService = class DBDockConfigService {
59
61
  loadAndValidateConfig() {
60
62
  const configPath = this.nestConfig.get('DBDOCK_CONFIG_PATH', 'dbdock.config.json');
61
63
  let configData;
64
+ let configFromFile = false;
62
65
  if (fs.existsSync(configPath)) {
63
66
  const configFile = fs.readFileSync(configPath, 'utf-8');
64
67
  configData = JSON.parse(configFile);
68
+ configFromFile = true;
69
+ this.checkConfigFilePermissions(configPath);
65
70
  }
66
71
  else {
67
72
  configData = this.loadFromEnvironment();
68
73
  }
69
74
  configData = this.transformCLIToProgrammatic(configData);
75
+ const envSecrets = (0, secrets_validator_1.loadSecretsFromEnv)();
76
+ configData = (0, secrets_validator_1.mergeSecretsIntoConfig)(configData, envSecrets);
77
+ if (configFromFile) {
78
+ this.warnAboutLegacySecrets(configData);
79
+ }
80
+ const strictMode = process.env.DBDOCK_STRICT_MODE === 'true';
81
+ const secretsValidation = (0, secrets_validator_1.validateSecrets)(configData, strictMode);
82
+ if (!secretsValidation.valid && strictMode) {
83
+ this.handleError(`❌ DBDock Security Error:\n\n${secretsValidation.warnings.join('\n')}`);
84
+ }
70
85
  const configInstance = (0, class_transformer_1.plainToInstance)(config_schema_1.DBDockConfig, configData);
71
86
  const errors = (0, class_validator_1.validateSync)(configInstance, {
72
87
  whitelist: true,
@@ -79,6 +94,24 @@ let DBDockConfigService = class DBDockConfigService {
79
94
  this.validateStorageProvider(configInstance);
80
95
  this.config = configInstance;
81
96
  }
97
+ checkConfigFilePermissions(configPath) {
98
+ try {
99
+ const permResult = (0, permissions_checker_1.checkFilePermissions)(configPath);
100
+ if (!permResult.secure) {
101
+ console.warn('\x1b[33m%s\x1b[0m', `⚠️ Config file has insecure permissions (${permResult.currentMode}).\n` +
102
+ ` Recommended: ${permResult.recommendedMode}\n` +
103
+ ` Fix with: chmod 600 ${configPath}\n`);
104
+ }
105
+ }
106
+ catch {
107
+ }
108
+ }
109
+ warnAboutLegacySecrets(configData) {
110
+ const secretsInConfig = (0, secrets_validator_1.hasSecretsInConfig)(configData);
111
+ if (secretsInConfig.length > 0) {
112
+ console.warn('\x1b[33m%s\x1b[0m', (0, secrets_validator_1.formatMigrationInstructions)(secretsInConfig));
113
+ }
114
+ }
82
115
  transformCLIToProgrammatic(configData) {
83
116
  if (configData.postgres && !configData.database) {
84
117
  return configData;
@@ -192,20 +225,29 @@ let DBDockConfigService = class DBDockConfigService {
192
225
  host: this.nestConfig.get('DB_HOST', 'localhost'),
193
226
  port: this.nestConfig.get('DB_PORT', 5432),
194
227
  user: this.nestConfig.get('DB_USER', 'postgres'),
195
- password: this.nestConfig.get('DB_PASSWORD', ''),
228
+ password: this.nestConfig.get('DBDOCK_DB_PASSWORD') ||
229
+ this.nestConfig.get('DB_PASSWORD', ''),
196
230
  database: this.nestConfig.get('DB_NAME', 'postgres'),
197
231
  },
198
232
  storage: {
199
- provider: this.nestConfig.get('STORAGE_PROVIDER', 'local'),
233
+ provider: this.nestConfig.get('STORAGE_PROVIDER', config_schema_1.StorageProvider.LOCAL),
200
234
  bucket: this.nestConfig.get('STORAGE_BUCKET', 'dbdock-backups'),
201
235
  endpoint: this.nestConfig.get('STORAGE_ENDPOINT'),
202
- accessKeyId: this.nestConfig.get('STORAGE_ACCESS_KEY'),
203
- secretAccessKey: this.nestConfig.get('STORAGE_SECRET_KEY'),
236
+ accessKeyId: this.nestConfig.get('DBDOCK_STORAGE_ACCESS_KEY') ||
237
+ this.nestConfig.get('STORAGE_ACCESS_KEY'),
238
+ secretAccessKey: this.nestConfig.get('DBDOCK_STORAGE_SECRET_KEY') ||
239
+ this.nestConfig.get('STORAGE_SECRET_KEY'),
204
240
  localPath: this.nestConfig.get('STORAGE_LOCAL_PATH', './backups'),
241
+ cloudinaryCloudName: this.nestConfig.get('CLOUDINARY_CLOUD_NAME'),
242
+ cloudinaryApiKey: this.nestConfig.get('DBDOCK_CLOUDINARY_API_KEY') ||
243
+ this.nestConfig.get('CLOUDINARY_API_KEY'),
244
+ cloudinaryApiSecret: this.nestConfig.get('DBDOCK_CLOUDINARY_API_SECRET') ||
245
+ this.nestConfig.get('CLOUDINARY_API_SECRET'),
205
246
  },
206
247
  encryption: {
207
248
  enabled: this.nestConfig.get('ENCRYPTION_ENABLED', true),
208
- secret: this.nestConfig.get('ENCRYPTION_SECRET'),
249
+ secret: this.nestConfig.get('DBDOCK_ENCRYPTION_SECRET') ||
250
+ this.nestConfig.get('ENCRYPTION_SECRET'),
209
251
  iterations: this.nestConfig.get('ENCRYPTION_ITERATIONS', 100000),
210
252
  },
211
253
  pitr: {
@@ -213,6 +255,18 @@ let DBDockConfigService = class DBDockConfigService {
213
255
  walIntervalSeconds: this.nestConfig.get('PITR_WAL_INTERVAL', 300),
214
256
  retentionDays: this.nestConfig.get('PITR_RETENTION_DAYS', 30),
215
257
  },
258
+ alerts: {
259
+ smtpHost: this.nestConfig.get('SMTP_HOST'),
260
+ smtpPort: this.nestConfig.get('SMTP_PORT'),
261
+ smtpUser: this.nestConfig.get('DBDOCK_SMTP_USER') ||
262
+ this.nestConfig.get('SMTP_USER'),
263
+ smtpPass: this.nestConfig.get('DBDOCK_SMTP_PASS') ||
264
+ this.nestConfig.get('SMTP_PASS'),
265
+ from: this.nestConfig.get('SMTP_FROM'),
266
+ to: this.nestConfig.get('ALERT_EMAILS')?.split(','),
267
+ slackWebhook: this.nestConfig.get('DBDOCK_SLACK_WEBHOOK') ||
268
+ this.nestConfig.get('SLACK_WEBHOOK'),
269
+ },
216
270
  };
217
271
  }
218
272
  get(key) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../src/config/config.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../src/config/config.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface PermissionsCheckResult {
2
+ secure: boolean;
3
+ currentMode: string;
4
+ recommendedMode: string;
5
+ warning?: string;
6
+ }
7
+ export declare function checkFilePermissions(filePath: string): PermissionsCheckResult;
8
+ export declare function isFileWorldReadable(filePath: string): boolean;
9
+ export declare function suggestPermissionsFix(filePath: string): string;
10
+ export declare function checkDirectoryPermissions(dirPath: string): PermissionsCheckResult;
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.checkFilePermissions = checkFilePermissions;
37
+ exports.isFileWorldReadable = isFileWorldReadable;
38
+ exports.suggestPermissionsFix = suggestPermissionsFix;
39
+ exports.checkDirectoryPermissions = checkDirectoryPermissions;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const os = __importStar(require("os"));
43
+ function checkFilePermissions(filePath) {
44
+ if (os.platform() === 'win32') {
45
+ return {
46
+ secure: true,
47
+ currentMode: 'N/A (Windows)',
48
+ recommendedMode: 'N/A (Windows)',
49
+ };
50
+ }
51
+ try {
52
+ const stats = fs.statSync(filePath);
53
+ const mode = stats.mode;
54
+ const ownerRead = (mode & 0o400) !== 0;
55
+ const ownerWrite = (mode & 0o200) !== 0;
56
+ const groupRead = (mode & 0o040) !== 0;
57
+ const groupWrite = (mode & 0o020) !== 0;
58
+ const otherRead = (mode & 0o004) !== 0;
59
+ const otherWrite = (mode & 0o002) !== 0;
60
+ const modeString = (mode & 0o777).toString(8).padStart(3, '0');
61
+ const isWorldReadable = otherRead;
62
+ const isGroupReadable = groupRead;
63
+ const hasWriteByOthers = otherWrite || groupWrite;
64
+ const secure = !isWorldReadable && !hasWriteByOthers;
65
+ let warning;
66
+ if (isWorldReadable) {
67
+ warning = 'Config file is world-readable. Anyone on this system can read your secrets.';
68
+ }
69
+ else if (hasWriteByOthers) {
70
+ warning = 'Config file is writable by group or others. This could allow unauthorized modifications.';
71
+ }
72
+ else if (isGroupReadable) {
73
+ warning = 'Config file is readable by group members.';
74
+ }
75
+ return {
76
+ secure,
77
+ currentMode: modeString,
78
+ recommendedMode: '600',
79
+ warning,
80
+ };
81
+ }
82
+ catch (error) {
83
+ return {
84
+ secure: true,
85
+ currentMode: 'unknown',
86
+ recommendedMode: '600',
87
+ };
88
+ }
89
+ }
90
+ function isFileWorldReadable(filePath) {
91
+ if (os.platform() === 'win32') {
92
+ return false;
93
+ }
94
+ try {
95
+ const stats = fs.statSync(filePath);
96
+ return (stats.mode & 0o004) !== 0;
97
+ }
98
+ catch {
99
+ return false;
100
+ }
101
+ }
102
+ function suggestPermissionsFix(filePath) {
103
+ const absolutePath = path.resolve(filePath);
104
+ return `chmod 600 "${absolutePath}"`;
105
+ }
106
+ function checkDirectoryPermissions(dirPath) {
107
+ if (os.platform() === 'win32') {
108
+ return {
109
+ secure: true,
110
+ currentMode: 'N/A (Windows)',
111
+ recommendedMode: 'N/A (Windows)',
112
+ };
113
+ }
114
+ try {
115
+ const stats = fs.statSync(dirPath);
116
+ const mode = stats.mode;
117
+ const modeString = (mode & 0o777).toString(8).padStart(3, '0');
118
+ const otherRead = (mode & 0o004) !== 0;
119
+ const otherWrite = (mode & 0o002) !== 0;
120
+ const otherExecute = (mode & 0o001) !== 0;
121
+ const secure = !otherWrite;
122
+ return {
123
+ secure,
124
+ currentMode: modeString,
125
+ recommendedMode: '700',
126
+ warning: otherWrite ? 'Directory is writable by others' : undefined,
127
+ };
128
+ }
129
+ catch {
130
+ return {
131
+ secure: true,
132
+ currentMode: 'unknown',
133
+ recommendedMode: '700',
134
+ };
135
+ }
136
+ }
137
+ //# sourceMappingURL=permissions.checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.checker.js","sourceRoot":"","sources":["../../src/config/permissions.checker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface PgPassEntry {
2
+ hostname: string;
3
+ port: string;
4
+ database: string;
5
+ username: string;
6
+ password: string;
7
+ }
8
+ export declare function getPgPassPath(): string;
9
+ export declare function checkPgPassPermissions(): boolean;
10
+ export declare function parsePgPassLine(line: string): PgPassEntry | null;
11
+ export declare function findPgPassEntry(host: string, port: number, database: string, user: string): string | null;
12
+ export declare function hasPgPassEntry(host: string, port: number, database: string, user: string): boolean;
13
+ export declare function createPgPassEntry(host: string, port: number, database: string, user: string, password: string): string;
14
+ export declare function appendToPgPass(entry: string): void;
15
+ export declare function getPgPassInstructions(host: string, port: number, database: string, user: string): string;
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getPgPassPath = getPgPassPath;
37
+ exports.checkPgPassPermissions = checkPgPassPermissions;
38
+ exports.parsePgPassLine = parsePgPassLine;
39
+ exports.findPgPassEntry = findPgPassEntry;
40
+ exports.hasPgPassEntry = hasPgPassEntry;
41
+ exports.createPgPassEntry = createPgPassEntry;
42
+ exports.appendToPgPass = appendToPgPass;
43
+ exports.getPgPassInstructions = getPgPassInstructions;
44
+ const fs = __importStar(require("fs"));
45
+ const path = __importStar(require("path"));
46
+ const os = __importStar(require("os"));
47
+ function getPgPassPath() {
48
+ if (os.platform() === 'win32') {
49
+ const appData = process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming');
50
+ return path.join(appData, 'postgresql', 'pgpass.conf');
51
+ }
52
+ return path.join(os.homedir(), '.pgpass');
53
+ }
54
+ function checkPgPassPermissions() {
55
+ if (os.platform() === 'win32') {
56
+ return true;
57
+ }
58
+ const pgpassPath = getPgPassPath();
59
+ try {
60
+ const stats = fs.statSync(pgpassPath);
61
+ const mode = stats.mode & 0o777;
62
+ return mode === 0o600;
63
+ }
64
+ catch {
65
+ return false;
66
+ }
67
+ }
68
+ function parsePgPassLine(line) {
69
+ const trimmed = line.trim();
70
+ if (!trimmed || trimmed.startsWith('#')) {
71
+ return null;
72
+ }
73
+ const parts = [];
74
+ let current = '';
75
+ let escaped = false;
76
+ for (let i = 0; i < trimmed.length; i++) {
77
+ const char = trimmed[i];
78
+ if (escaped) {
79
+ current += char;
80
+ escaped = false;
81
+ }
82
+ else if (char === '\\') {
83
+ escaped = true;
84
+ }
85
+ else if (char === ':') {
86
+ parts.push(current);
87
+ current = '';
88
+ }
89
+ else {
90
+ current += char;
91
+ }
92
+ }
93
+ parts.push(current);
94
+ if (parts.length !== 5) {
95
+ return null;
96
+ }
97
+ return {
98
+ hostname: parts[0],
99
+ port: parts[1],
100
+ database: parts[2],
101
+ username: parts[3],
102
+ password: parts[4],
103
+ };
104
+ }
105
+ function matchesPattern(value, pattern) {
106
+ if (pattern === '*') {
107
+ return true;
108
+ }
109
+ return value === pattern;
110
+ }
111
+ function findPgPassEntry(host, port, database, user) {
112
+ const pgpassPath = getPgPassPath();
113
+ if (!fs.existsSync(pgpassPath)) {
114
+ return null;
115
+ }
116
+ if (!checkPgPassPermissions()) {
117
+ console.warn(`Warning: .pgpass file permissions too open. ` +
118
+ `Run "chmod 600 ${pgpassPath}" to fix.`);
119
+ return null;
120
+ }
121
+ try {
122
+ const content = fs.readFileSync(pgpassPath, 'utf-8');
123
+ const lines = content.split('\n');
124
+ for (const line of lines) {
125
+ const entry = parsePgPassLine(line);
126
+ if (!entry)
127
+ continue;
128
+ const hostMatches = matchesPattern(host, entry.hostname);
129
+ const portMatches = matchesPattern(String(port), entry.port);
130
+ const dbMatches = matchesPattern(database, entry.database);
131
+ const userMatches = matchesPattern(user, entry.username);
132
+ if (hostMatches && portMatches && dbMatches && userMatches) {
133
+ return entry.password;
134
+ }
135
+ }
136
+ }
137
+ catch {
138
+ return null;
139
+ }
140
+ return null;
141
+ }
142
+ function hasPgPassEntry(host, port, database, user) {
143
+ return findPgPassEntry(host, port, database, user) !== null;
144
+ }
145
+ function createPgPassEntry(host, port, database, user, password) {
146
+ const escape = (s) => s.replace(/\\/g, '\\\\').replace(/:/g, '\\:');
147
+ return `${escape(host)}:${port}:${escape(database)}:${escape(user)}:${escape(password)}`;
148
+ }
149
+ function appendToPgPass(entry) {
150
+ const pgpassPath = getPgPassPath();
151
+ const dir = path.dirname(pgpassPath);
152
+ if (!fs.existsSync(dir)) {
153
+ fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
154
+ }
155
+ let existingContent = '';
156
+ if (fs.existsSync(pgpassPath)) {
157
+ existingContent = fs.readFileSync(pgpassPath, 'utf-8');
158
+ if (!existingContent.endsWith('\n')) {
159
+ existingContent += '\n';
160
+ }
161
+ }
162
+ fs.writeFileSync(pgpassPath, existingContent + entry + '\n', { mode: 0o600 });
163
+ }
164
+ function getPgPassInstructions(host, port, database, user) {
165
+ const pgpassPath = getPgPassPath();
166
+ const entry = `${host}:${port}:${database}:${user}:YOUR_PASSWORD`;
167
+ return `
168
+ To use .pgpass for secure password storage:
169
+
170
+ 1. Add this line to ${pgpassPath}:
171
+ ${entry}
172
+
173
+ 2. Set proper permissions (Unix/Mac):
174
+ chmod 600 ${pgpassPath}
175
+
176
+ 3. Remove the password from your dbdock.config.json
177
+
178
+ Benefits:
179
+ - Password not exposed via PGPASSWORD environment variable
180
+ - Secure file permissions prevent unauthorized access
181
+ - Works with all PostgreSQL tools (psql, pg_dump, etc.)
182
+ `;
183
+ }
184
+ //# sourceMappingURL=pgpass.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pgpass.helper.js","sourceRoot":"","sources":["../../src/config/pgpass.helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare const SENSITIVE_FIELDS: readonly ["postgres.password", "storage.accessKeyId", "storage.secretAccessKey", "storage.cloudinaryApiKey", "storage.cloudinaryApiSecret", "encryption.secret", "alerts.smtpUser", "alerts.smtpPass", "alerts.slackWebhook"];
2
+ export declare const ENV_VAR_MAPPING: Record<string, string>;
3
+ export type SensitiveField = (typeof SENSITIVE_FIELDS)[number];
4
+ export declare function maskSecretValue(value: string | undefined): string;
5
+ export declare function getNestedValue(obj: Record<string, unknown>, path: string): unknown;
6
+ export declare function setNestedValue(obj: Record<string, unknown>, path: string, value: unknown): void;
7
+ export declare function hasSecretsInConfig(config: Record<string, unknown>): string[];
8
+ export declare function loadSecretsFromEnv(): Record<string, string | undefined>;
9
+ export declare function mergeSecretsIntoConfig(config: Record<string, unknown>, secrets: Record<string, string | undefined>): Record<string, unknown>;
10
+ export interface SecretsValidationResult {
11
+ valid: boolean;
12
+ missingSecrets: string[];
13
+ warnings: string[];
14
+ mode: 'strict' | 'legacy';
15
+ }
16
+ export declare function validateSecrets(config: Record<string, unknown>, requireEnvOnly?: boolean): SecretsValidationResult;
17
+ export declare function formatMigrationInstructions(secretsInConfig: string[]): string;