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.
- package/README.md +118 -25
- package/dist/backup/backup.service.js +16 -10
- package/dist/backup/backup.service.js.map +1 -1
- package/dist/cli/commands/init.js +126 -21
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/migrate-config.d.ts +1 -0
- package/dist/cli/commands/migrate-config.js +172 -0
- package/dist/cli/commands/migrate-config.js.map +1 -0
- package/dist/cli/commands/restore.js +1 -1
- package/dist/cli/commands/restore.js.map +1 -1
- package/dist/cli/commands/test.js +92 -13
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/index.js +5 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config/config.schema.d.ts +5 -1
- package/dist/config/config.schema.js +25 -0
- package/dist/config/config.schema.js.map +1 -1
- package/dist/config/config.service.d.ts +2 -0
- package/dist/config/config.service.js +59 -5
- package/dist/config/config.service.js.map +1 -1
- package/dist/config/permissions.checker.d.ts +10 -0
- package/dist/config/permissions.checker.js +137 -0
- package/dist/config/permissions.checker.js.map +1 -0
- package/dist/config/pgpass.helper.d.ts +15 -0
- package/dist/config/pgpass.helper.js +184 -0
- package/dist/config/pgpass.helper.js.map +1 -0
- package/dist/config/secrets.validator.d.ts +17 -0
- package/dist/config/secrets.validator.js +169 -0
- package/dist/config/secrets.validator.js.map +1 -0
- package/dist/storage/storage.service.js +15 -1
- package/dist/storage/storage.service.js.map +1 -1
- package/dist/utils/logger.d.ts +6 -0
- package/dist/utils/logger.js +37 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/wal/wal-archiver.service.js +8 -3
- package/dist/wal/wal-archiver.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ENV_VAR_MAPPING = exports.SENSITIVE_FIELDS = void 0;
|
|
4
|
+
exports.maskSecretValue = maskSecretValue;
|
|
5
|
+
exports.getNestedValue = getNestedValue;
|
|
6
|
+
exports.setNestedValue = setNestedValue;
|
|
7
|
+
exports.hasSecretsInConfig = hasSecretsInConfig;
|
|
8
|
+
exports.loadSecretsFromEnv = loadSecretsFromEnv;
|
|
9
|
+
exports.mergeSecretsIntoConfig = mergeSecretsIntoConfig;
|
|
10
|
+
exports.validateSecrets = validateSecrets;
|
|
11
|
+
exports.formatMigrationInstructions = formatMigrationInstructions;
|
|
12
|
+
exports.SENSITIVE_FIELDS = [
|
|
13
|
+
'postgres.password',
|
|
14
|
+
'storage.accessKeyId',
|
|
15
|
+
'storage.secretAccessKey',
|
|
16
|
+
'storage.cloudinaryApiKey',
|
|
17
|
+
'storage.cloudinaryApiSecret',
|
|
18
|
+
'encryption.secret',
|
|
19
|
+
'alerts.smtpUser',
|
|
20
|
+
'alerts.smtpPass',
|
|
21
|
+
'alerts.slackWebhook',
|
|
22
|
+
];
|
|
23
|
+
exports.ENV_VAR_MAPPING = {
|
|
24
|
+
'postgres.password': 'DBDOCK_DB_PASSWORD',
|
|
25
|
+
'storage.accessKeyId': 'DBDOCK_STORAGE_ACCESS_KEY',
|
|
26
|
+
'storage.secretAccessKey': 'DBDOCK_STORAGE_SECRET_KEY',
|
|
27
|
+
'storage.cloudinaryApiKey': 'DBDOCK_CLOUDINARY_API_KEY',
|
|
28
|
+
'storage.cloudinaryApiSecret': 'DBDOCK_CLOUDINARY_API_SECRET',
|
|
29
|
+
'encryption.secret': 'DBDOCK_ENCRYPTION_SECRET',
|
|
30
|
+
'alerts.smtpUser': 'DBDOCK_SMTP_USER',
|
|
31
|
+
'alerts.smtpPass': 'DBDOCK_SMTP_PASS',
|
|
32
|
+
'alerts.slackWebhook': 'DBDOCK_SLACK_WEBHOOK',
|
|
33
|
+
};
|
|
34
|
+
function maskSecretValue(value) {
|
|
35
|
+
if (!value)
|
|
36
|
+
return '********';
|
|
37
|
+
if (value.length <= 4)
|
|
38
|
+
return '****';
|
|
39
|
+
return value.slice(0, 2) + '****' + value.slice(-2);
|
|
40
|
+
}
|
|
41
|
+
function getNestedValue(obj, path) {
|
|
42
|
+
const keys = path.split('.');
|
|
43
|
+
let current = obj;
|
|
44
|
+
for (const key of keys) {
|
|
45
|
+
if (current === null || current === undefined || typeof current !== 'object') {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
current = current[key];
|
|
49
|
+
}
|
|
50
|
+
return current;
|
|
51
|
+
}
|
|
52
|
+
function setNestedValue(obj, path, value) {
|
|
53
|
+
const keys = path.split('.');
|
|
54
|
+
let current = obj;
|
|
55
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
56
|
+
const key = keys[i];
|
|
57
|
+
if (!(key in current) || typeof current[key] !== 'object') {
|
|
58
|
+
current[key] = {};
|
|
59
|
+
}
|
|
60
|
+
current = current[key];
|
|
61
|
+
}
|
|
62
|
+
current[keys[keys.length - 1]] = value;
|
|
63
|
+
}
|
|
64
|
+
function hasSecretsInConfig(config) {
|
|
65
|
+
const foundSecrets = [];
|
|
66
|
+
for (const field of exports.SENSITIVE_FIELDS) {
|
|
67
|
+
const value = getNestedValue(config, field);
|
|
68
|
+
if (value !== undefined && value !== null && value !== '') {
|
|
69
|
+
foundSecrets.push(field);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return foundSecrets;
|
|
73
|
+
}
|
|
74
|
+
function loadSecretsFromEnv() {
|
|
75
|
+
const secrets = {};
|
|
76
|
+
for (const [fieldPath, envVar] of Object.entries(exports.ENV_VAR_MAPPING)) {
|
|
77
|
+
const value = process.env[envVar];
|
|
78
|
+
if (value !== undefined && value !== '') {
|
|
79
|
+
secrets[fieldPath] = value;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return secrets;
|
|
83
|
+
}
|
|
84
|
+
function mergeSecretsIntoConfig(config, secrets) {
|
|
85
|
+
const merged = JSON.parse(JSON.stringify(config));
|
|
86
|
+
for (const [fieldPath, value] of Object.entries(secrets)) {
|
|
87
|
+
if (value !== undefined) {
|
|
88
|
+
setNestedValue(merged, fieldPath, value);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return merged;
|
|
92
|
+
}
|
|
93
|
+
function validateSecrets(config, requireEnvOnly = false) {
|
|
94
|
+
const result = {
|
|
95
|
+
valid: true,
|
|
96
|
+
missingSecrets: [],
|
|
97
|
+
warnings: [],
|
|
98
|
+
mode: requireEnvOnly ? 'strict' : 'legacy',
|
|
99
|
+
};
|
|
100
|
+
const secretsInConfig = hasSecretsInConfig(config);
|
|
101
|
+
const envSecrets = loadSecretsFromEnv();
|
|
102
|
+
if (requireEnvOnly && secretsInConfig.length > 0) {
|
|
103
|
+
result.valid = false;
|
|
104
|
+
result.warnings.push('Strict mode enabled: secrets must be provided via environment variables only.');
|
|
105
|
+
for (const field of secretsInConfig) {
|
|
106
|
+
const envVar = exports.ENV_VAR_MAPPING[field];
|
|
107
|
+
result.warnings.push(` - ${field} found in config, use ${envVar} instead`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else if (secretsInConfig.length > 0) {
|
|
111
|
+
result.warnings.push('⚠️ Security Warning: Secrets detected in configuration file.');
|
|
112
|
+
result.warnings.push(' Consider moving them to environment variables for better security:');
|
|
113
|
+
for (const field of secretsInConfig) {
|
|
114
|
+
const envVar = exports.ENV_VAR_MAPPING[field];
|
|
115
|
+
result.warnings.push(` - ${field} → ${envVar}`);
|
|
116
|
+
}
|
|
117
|
+
result.warnings.push('');
|
|
118
|
+
result.warnings.push(' Run "npx dbdock migrate-config" to migrate automatically.');
|
|
119
|
+
}
|
|
120
|
+
const requiredSecrets = getRequiredSecrets(config);
|
|
121
|
+
for (const field of requiredSecrets) {
|
|
122
|
+
const configValue = getNestedValue(config, field);
|
|
123
|
+
const envValue = envSecrets[field];
|
|
124
|
+
if (!configValue && !envValue) {
|
|
125
|
+
result.valid = false;
|
|
126
|
+
const envVar = exports.ENV_VAR_MAPPING[field];
|
|
127
|
+
result.missingSecrets.push(`${field} (set via ${envVar})`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return result;
|
|
131
|
+
}
|
|
132
|
+
function getRequiredSecrets(config) {
|
|
133
|
+
const required = [];
|
|
134
|
+
required.push('postgres.password');
|
|
135
|
+
const storageProvider = getNestedValue(config, 'storage.provider');
|
|
136
|
+
if (storageProvider === 's3' || storageProvider === 'r2') {
|
|
137
|
+
required.push('storage.accessKeyId');
|
|
138
|
+
required.push('storage.secretAccessKey');
|
|
139
|
+
}
|
|
140
|
+
else if (storageProvider === 'cloudinary') {
|
|
141
|
+
required.push('storage.cloudinaryApiKey');
|
|
142
|
+
required.push('storage.cloudinaryApiSecret');
|
|
143
|
+
}
|
|
144
|
+
const encryptionEnabled = getNestedValue(config, 'encryption.enabled');
|
|
145
|
+
if (encryptionEnabled) {
|
|
146
|
+
required.push('encryption.secret');
|
|
147
|
+
}
|
|
148
|
+
return required;
|
|
149
|
+
}
|
|
150
|
+
function formatMigrationInstructions(secretsInConfig) {
|
|
151
|
+
const lines = [
|
|
152
|
+
'',
|
|
153
|
+
'╔════════════════════════════════════════════════════════════════╗',
|
|
154
|
+
'║ SECURITY RECOMMENDATION ║',
|
|
155
|
+
'╠════════════════════════════════════════════════════════════════╣',
|
|
156
|
+
'║ Move these secrets from config file to environment variables: ║',
|
|
157
|
+
'╠════════════════════════════════════════════════════════════════╣',
|
|
158
|
+
];
|
|
159
|
+
for (const field of secretsInConfig) {
|
|
160
|
+
const envVar = exports.ENV_VAR_MAPPING[field];
|
|
161
|
+
lines.push(`║ ${field.padEnd(25)} → ${envVar.padEnd(30)} ║`);
|
|
162
|
+
}
|
|
163
|
+
lines.push('╠════════════════════════════════════════════════════════════════╣');
|
|
164
|
+
lines.push('║ Run: npx dbdock migrate-config ║');
|
|
165
|
+
lines.push('╚════════════════════════════════════════════════════════════════╝');
|
|
166
|
+
lines.push('');
|
|
167
|
+
return lines.join('\n');
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=secrets.validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.validator.js","sourceRoot":"","sources":["../../src/config/secrets.validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,21 @@ let StorageService = StorageService_1 = class StorageService {
|
|
|
52
52
|
if (!storageConfig.endpoint) {
|
|
53
53
|
throw new Error('R2 account ID is required in endpoint');
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
let accountId;
|
|
56
|
+
const endpoint = storageConfig.endpoint.trim();
|
|
57
|
+
if (endpoint.includes('://')) {
|
|
58
|
+
const match = endpoint.match(/https?:\/\/([^.]+)/);
|
|
59
|
+
if (!match || !match[1]) {
|
|
60
|
+
throw new Error('Invalid R2 endpoint format. Expected account ID or URL like https://accountId.r2.cloudflarestorage.com');
|
|
61
|
+
}
|
|
62
|
+
accountId = match[1];
|
|
63
|
+
}
|
|
64
|
+
else if (endpoint.includes('.')) {
|
|
65
|
+
accountId = endpoint.split('.')[0];
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
accountId = endpoint;
|
|
69
|
+
}
|
|
56
70
|
this.adapter = new r2_adapter_1.R2StorageAdapter({
|
|
57
71
|
accountId,
|
|
58
72
|
bucket: storageConfig.bucket,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../src/storage/storage.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,6DAA+D;AAE/D,4DAA+D;AAC/D,sDAAyD;AACzD,sDAAyD;AACzD,sEAAyE;AACzE,2DAA0D;AAGnD,IAAM,cAAc,sBAApB,MAAM,cAAc;IAIL;IAHH,MAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,CAAkB;IAEjC,YAAoB,aAAkC;QAAlC,kBAAa,GAAb,aAAa,CAAqB;QACpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,iBAAiB;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAExD,QAAQ,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC/B,KAAK,+BAAe,CAAC,KAAK;gBACxB,IAAI,CAAC,OAAO,GAAG,IAAI,mCAAmB,CACpC,aAAa,CAAC,SAAS,IAAI,WAAW,CACvC,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;gBACrD,MAAM;YAER,KAAK,+BAAe,CAAC,EAAE;gBACrB,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;oBACjE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBACjD,CAAC;gBACD,IAAI,CAAC,OAAO,GAAG,IAAI,6BAAgB,CAAC;oBAClC,QAAQ,EAAE,aAAa,CAAC,QAAQ;oBAChC,MAAM,EAAE,aAAa,CAAC,MAAM;oBAC5B,WAAW,EAAE,aAAa,CAAC,WAAW;oBACtC,eAAe,EAAE,aAAa,CAAC,eAAe;iBAC/C,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;gBAClD,MAAM;YAER,KAAK,+BAAe,CAAC,EAAE;gBACrB,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;oBACjE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBACjD,CAAC;gBACD,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBAC3D,CAAC;gBACD,MAAM,
|
|
1
|
+
{"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../src/storage/storage.service.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { Logger as NestLogger } from '@nestjs/common';
|
|
2
|
+
export declare function maskCredentials(message: string): string;
|
|
2
3
|
export declare class DBDockLogger extends NestLogger {
|
|
4
|
+
log(message: string, ...optionalParams: unknown[]): void;
|
|
5
|
+
error(message: string, ...optionalParams: unknown[]): void;
|
|
6
|
+
warn(message: string, ...optionalParams: unknown[]): void;
|
|
7
|
+
debug(message: string, ...optionalParams: unknown[]): void;
|
|
8
|
+
verbose(message: string, ...optionalParams: unknown[]): void;
|
|
3
9
|
logBackupStart(backupId: string, type: string): void;
|
|
4
10
|
logBackupComplete(backupId: string, duration: number, size: number): void;
|
|
5
11
|
logBackupError(backupId: string, error: Error): void;
|
package/dist/utils/logger.js
CHANGED
|
@@ -1,8 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DBDockLogger = void 0;
|
|
4
|
+
exports.maskCredentials = maskCredentials;
|
|
4
5
|
const common_1 = require("@nestjs/common");
|
|
6
|
+
const SENSITIVE_PATTERNS = [
|
|
7
|
+
{ pattern: /password['":\s]*['"]?([^'"}\s,]+)/gi, replacement: 'password: ********' },
|
|
8
|
+
{ pattern: /secret['":\s]*['"]?([^'"}\s,]+)/gi, replacement: 'secret: ********' },
|
|
9
|
+
{ pattern: /accesskey['":\s]*['"]?([^'"}\s,]+)/gi, replacement: 'accessKey: ********' },
|
|
10
|
+
{ pattern: /secretkey['":\s]*['"]?([^'"}\s,]+)/gi, replacement: 'secretKey: ********' },
|
|
11
|
+
{ pattern: /apikey['":\s]*['"]?([^'"}\s,]+)/gi, replacement: 'apiKey: ********' },
|
|
12
|
+
{ pattern: /apisecret['":\s]*['"]?([^'"}\s,]+)/gi, replacement: 'apiSecret: ********' },
|
|
13
|
+
{ pattern: /webhook['":\s]*['"]?(https?:\/\/[^'"}\s,]+)/gi, replacement: 'webhook: ********' },
|
|
14
|
+
{ pattern: /PGPASSWORD=([^\s]+)/gi, replacement: 'PGPASSWORD=********' },
|
|
15
|
+
{ pattern: /Bearer\s+([A-Za-z0-9\-._~+/]+=*)/gi, replacement: 'Bearer ********' },
|
|
16
|
+
{ pattern: /Basic\s+([A-Za-z0-9+/]+=*)/gi, replacement: 'Basic ********' },
|
|
17
|
+
];
|
|
18
|
+
function maskCredentials(message) {
|
|
19
|
+
let masked = message;
|
|
20
|
+
for (const { pattern, replacement } of SENSITIVE_PATTERNS) {
|
|
21
|
+
masked = masked.replace(pattern, replacement);
|
|
22
|
+
}
|
|
23
|
+
return masked;
|
|
24
|
+
}
|
|
5
25
|
class DBDockLogger extends common_1.Logger {
|
|
26
|
+
log(message, ...optionalParams) {
|
|
27
|
+
super.log(maskCredentials(message), ...optionalParams);
|
|
28
|
+
}
|
|
29
|
+
error(message, ...optionalParams) {
|
|
30
|
+
super.error(maskCredentials(message), ...optionalParams);
|
|
31
|
+
}
|
|
32
|
+
warn(message, ...optionalParams) {
|
|
33
|
+
super.warn(maskCredentials(message), ...optionalParams);
|
|
34
|
+
}
|
|
35
|
+
debug(message, ...optionalParams) {
|
|
36
|
+
super.debug(maskCredentials(message), ...optionalParams);
|
|
37
|
+
}
|
|
38
|
+
verbose(message, ...optionalParams) {
|
|
39
|
+
super.verbose(maskCredentials(message), ...optionalParams);
|
|
40
|
+
}
|
|
6
41
|
logBackupStart(backupId, type) {
|
|
7
42
|
this.log(`Backup started: ${backupId} (type: ${type})`);
|
|
8
43
|
}
|
|
@@ -10,7 +45,7 @@ class DBDockLogger extends common_1.Logger {
|
|
|
10
45
|
this.log(`Backup completed: ${backupId} (duration: ${duration}ms, size: ${this.formatBytes(size)})`);
|
|
11
46
|
}
|
|
12
47
|
logBackupError(backupId, error) {
|
|
13
|
-
this.error(`Backup failed: ${backupId} - ${error.message}
|
|
48
|
+
this.error(`Backup failed: ${backupId} - ${error.message}`);
|
|
14
49
|
}
|
|
15
50
|
logRestoreStart(backupId, targetTime) {
|
|
16
51
|
const timeInfo = targetTime ? ` to time: ${targetTime}` : '';
|
|
@@ -20,7 +55,7 @@ class DBDockLogger extends common_1.Logger {
|
|
|
20
55
|
this.log(`Restore completed: ${backupId} (duration: ${duration}ms)`);
|
|
21
56
|
}
|
|
22
57
|
logRestoreError(backupId, error) {
|
|
23
|
-
this.error(`Restore failed: ${backupId} - ${error.message}
|
|
58
|
+
this.error(`Restore failed: ${backupId} - ${error.message}`);
|
|
24
59
|
}
|
|
25
60
|
logWalArchive(walFile) {
|
|
26
61
|
this.log(`WAL archived: ${walFile}`);
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -136,10 +136,15 @@ let WalArchiverService = WalArchiverService_1 = class WalArchiverService {
|
|
|
136
136
|
}
|
|
137
137
|
catch (error) {
|
|
138
138
|
metadata.status = wal_types_1.WalStatus.FAILED;
|
|
139
|
-
|
|
140
|
-
|
|
139
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
140
|
+
metadata.error = errorMessage;
|
|
141
|
+
const cleanError = new Error(errorMessage);
|
|
142
|
+
if (error instanceof Error && error.name) {
|
|
143
|
+
cleanError.name = error.name;
|
|
144
|
+
}
|
|
145
|
+
this.logger.logWalArchiveError(walFile, cleanError);
|
|
141
146
|
await this.saveWalMetadata(metadata);
|
|
142
|
-
throw
|
|
147
|
+
throw cleanError;
|
|
143
148
|
}
|
|
144
149
|
}
|
|
145
150
|
createHashStream() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wal-archiver.service.js","sourceRoot":"","sources":["../../src/wal/wal-archiver.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"wal-archiver.service.js","sourceRoot":"","sources":["../../src/wal/wal-archiver.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dbdock",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.4",
|
|
4
4
|
"description": "Enterprise-grade PostgreSQL backup and restore in under 60 seconds. CLI-first tool with encryption, compression, and multi-cloud storage.",
|
|
5
5
|
"author": "Naheem Olaide <naheemolaide@gmail.com>",
|
|
6
6
|
"private": false,
|