@quiltdata/benchling-webhook 0.5.4-20251102T020826Z → 0.5.4-20251103T180145Z
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 +26 -17
- package/dist/bin/benchling-webhook.d.ts +1 -1
- package/dist/bin/benchling-webhook.d.ts.map +1 -1
- package/dist/bin/benchling-webhook.js +8 -23
- package/dist/bin/benchling-webhook.js.map +1 -1
- package/dist/bin/cdk-dev.js +51 -0
- package/dist/bin/cli.js +8 -22
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/commands/deploy.d.ts +4 -2
- package/dist/bin/commands/deploy.d.ts.map +1 -1
- package/dist/bin/commands/deploy.js +88 -300
- package/dist/bin/commands/deploy.js.map +1 -1
- package/dist/bin/config-profiles.d.ts +59 -0
- package/dist/bin/config-profiles.d.ts.map +1 -0
- package/dist/bin/config-profiles.js +272 -0
- package/dist/bin/config-profiles.js.map +1 -0
- package/dist/bin/create-secret.d.ts +3 -0
- package/dist/bin/create-secret.d.ts.map +1 -1
- package/dist/bin/create-secret.js +51 -48
- package/dist/bin/create-secret.js.map +1 -1
- package/dist/lib/benchling-auth-validator.d.ts +65 -0
- package/dist/lib/benchling-auth-validator.d.ts.map +1 -0
- package/dist/lib/benchling-auth-validator.js +213 -0
- package/dist/lib/benchling-auth-validator.js.map +1 -0
- package/dist/lib/benchling-webhook-stack.d.ts +5 -23
- package/dist/lib/benchling-webhook-stack.d.ts.map +1 -1
- package/dist/lib/benchling-webhook-stack.js +25 -145
- package/dist/lib/benchling-webhook-stack.js.map +1 -1
- package/dist/lib/config-logger.d.ts +191 -0
- package/dist/lib/config-logger.d.ts.map +1 -0
- package/dist/lib/config-logger.js +372 -0
- package/dist/lib/config-logger.js.map +1 -0
- package/dist/lib/configuration-saver.d.ts +75 -0
- package/dist/lib/configuration-saver.d.ts.map +1 -0
- package/dist/lib/configuration-saver.js +145 -0
- package/dist/lib/configuration-saver.js.map +1 -0
- package/dist/lib/configuration-validator.d.ts +63 -0
- package/dist/lib/configuration-validator.d.ts.map +1 -0
- package/dist/lib/configuration-validator.js +136 -0
- package/dist/lib/configuration-validator.js.map +1 -0
- package/dist/lib/configuration-wizard.d.ts +52 -0
- package/dist/lib/configuration-wizard.d.ts.map +1 -0
- package/dist/lib/configuration-wizard.js +193 -0
- package/dist/lib/configuration-wizard.js.map +1 -0
- package/dist/lib/quilt-config-resolver.d.ts +53 -0
- package/dist/lib/quilt-config-resolver.d.ts.map +1 -0
- package/dist/lib/quilt-config-resolver.js +100 -0
- package/dist/lib/quilt-config-resolver.js.map +1 -0
- package/dist/lib/s3-bucket-validator.d.ts +76 -0
- package/dist/lib/s3-bucket-validator.d.ts.map +1 -0
- package/dist/lib/s3-bucket-validator.js +237 -0
- package/dist/lib/s3-bucket-validator.js.map +1 -0
- package/dist/lib/types/config.d.ts +398 -0
- package/dist/lib/types/config.d.ts.map +1 -0
- package/dist/lib/types/config.js +11 -0
- package/dist/lib/types/config.js.map +1 -0
- package/dist/lib/utils/config-loader.js.map +1 -1
- package/dist/lib/utils/config-resolver.d.ts +26 -26
- package/dist/lib/utils/config-resolver.d.ts.map +1 -1
- package/dist/lib/utils/config-resolver.js +29 -29
- package/dist/lib/utils/config-resolver.js.map +1 -1
- package/dist/lib/utils/config.d.ts +2 -0
- package/dist/lib/utils/config.d.ts.map +1 -1
- package/dist/lib/utils/config.js.map +1 -1
- package/dist/lib/xdg-cli-wrapper.d.ts +113 -0
- package/dist/lib/xdg-cli-wrapper.d.ts.map +1 -0
- package/dist/lib/xdg-cli-wrapper.js +288 -0
- package/dist/lib/xdg-cli-wrapper.js.map +1 -0
- package/dist/lib/xdg-config.d.ts +187 -0
- package/dist/lib/xdg-config.d.ts.map +1 -0
- package/dist/lib/xdg-config.js +562 -0
- package/dist/lib/xdg-config.js.map +1 -0
- package/dist/package.json +38 -26
- package/dist/scripts/config-health-check.d.ts +78 -0
- package/dist/scripts/config-health-check.d.ts.map +1 -0
- package/dist/scripts/config-health-check.js +559 -0
- package/dist/scripts/config-health-check.js.map +1 -0
- package/dist/scripts/infer-quilt-config.d.ts +50 -0
- package/dist/scripts/infer-quilt-config.d.ts.map +1 -0
- package/dist/scripts/infer-quilt-config.js +353 -0
- package/dist/scripts/infer-quilt-config.js.map +1 -0
- package/dist/scripts/install-wizard.d.ts +34 -0
- package/dist/scripts/install-wizard.d.ts.map +1 -0
- package/dist/scripts/install-wizard.js +719 -0
- package/dist/scripts/install-wizard.js.map +1 -0
- package/dist/scripts/sync-secrets.d.ts +63 -0
- package/dist/scripts/sync-secrets.d.ts.map +1 -0
- package/dist/scripts/sync-secrets.js +424 -0
- package/dist/scripts/sync-secrets.js.map +1 -0
- package/env.template +60 -47
- package/package.json +38 -26
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Diagnostic Logging
|
|
3
|
+
*
|
|
4
|
+
* Provides comprehensive logging for configuration operations:
|
|
5
|
+
* - Configuration sources tracking
|
|
6
|
+
* - Operation audit trail
|
|
7
|
+
* - Troubleshooting insights
|
|
8
|
+
* - Performance metrics
|
|
9
|
+
*
|
|
10
|
+
* @module lib/config-logger
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Log level enumeration
|
|
14
|
+
*/
|
|
15
|
+
export declare enum LogLevel {
|
|
16
|
+
DEBUG = "DEBUG",
|
|
17
|
+
INFO = "INFO",
|
|
18
|
+
WARN = "WARN",
|
|
19
|
+
ERROR = "ERROR"
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Log entry structure
|
|
23
|
+
*/
|
|
24
|
+
export interface LogEntry {
|
|
25
|
+
timestamp: string;
|
|
26
|
+
level: LogLevel;
|
|
27
|
+
operation: string;
|
|
28
|
+
message: string;
|
|
29
|
+
data?: Record<string, unknown>;
|
|
30
|
+
source?: string;
|
|
31
|
+
profileName?: string;
|
|
32
|
+
duration?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Configuration operation types
|
|
36
|
+
*/
|
|
37
|
+
export declare enum ConfigOperation {
|
|
38
|
+
READ = "read",
|
|
39
|
+
WRITE = "write",
|
|
40
|
+
VALIDATE = "validate",
|
|
41
|
+
MERGE = "merge",
|
|
42
|
+
SYNC_SECRETS = "sync-secrets",
|
|
43
|
+
INFER_CONFIG = "infer-config",
|
|
44
|
+
CREATE_PROFILE = "create-profile",
|
|
45
|
+
DELETE_PROFILE = "delete-profile"
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Configuration logger for diagnostic and audit purposes
|
|
49
|
+
*/
|
|
50
|
+
export declare class ConfigLogger {
|
|
51
|
+
private logFile;
|
|
52
|
+
private enableConsole;
|
|
53
|
+
private minLogLevel;
|
|
54
|
+
/**
|
|
55
|
+
* Creates a new configuration logger
|
|
56
|
+
*
|
|
57
|
+
* @param options - Logger configuration options
|
|
58
|
+
*/
|
|
59
|
+
constructor(options?: {
|
|
60
|
+
logFile?: string;
|
|
61
|
+
enableConsole?: boolean;
|
|
62
|
+
minLogLevel?: LogLevel;
|
|
63
|
+
});
|
|
64
|
+
/**
|
|
65
|
+
* Gets log level priority for comparison
|
|
66
|
+
*
|
|
67
|
+
* @param level - Log level
|
|
68
|
+
* @returns Priority number (higher = more severe)
|
|
69
|
+
*/
|
|
70
|
+
private getLogLevelPriority;
|
|
71
|
+
/**
|
|
72
|
+
* Checks if log level should be output
|
|
73
|
+
*
|
|
74
|
+
* @param level - Log level to check
|
|
75
|
+
* @returns True if should log
|
|
76
|
+
*/
|
|
77
|
+
private shouldLog;
|
|
78
|
+
/**
|
|
79
|
+
* Formats log entry for output
|
|
80
|
+
*
|
|
81
|
+
* @param entry - Log entry
|
|
82
|
+
* @returns Formatted log string
|
|
83
|
+
*/
|
|
84
|
+
private formatLogEntry;
|
|
85
|
+
/**
|
|
86
|
+
* Writes log entry to file and console
|
|
87
|
+
*
|
|
88
|
+
* @param entry - Log entry to write
|
|
89
|
+
*/
|
|
90
|
+
private writeLog;
|
|
91
|
+
/**
|
|
92
|
+
* Logs a debug message
|
|
93
|
+
*
|
|
94
|
+
* @param operation - Configuration operation
|
|
95
|
+
* @param message - Log message
|
|
96
|
+
* @param data - Additional data
|
|
97
|
+
*/
|
|
98
|
+
debug(operation: ConfigOperation | string, message: string, data?: Record<string, unknown>): void;
|
|
99
|
+
/**
|
|
100
|
+
* Logs an info message
|
|
101
|
+
*
|
|
102
|
+
* @param operation - Configuration operation
|
|
103
|
+
* @param message - Log message
|
|
104
|
+
* @param data - Additional data
|
|
105
|
+
*/
|
|
106
|
+
info(operation: ConfigOperation | string, message: string, data?: Record<string, unknown>): void;
|
|
107
|
+
/**
|
|
108
|
+
* Logs a warning message
|
|
109
|
+
*
|
|
110
|
+
* @param operation - Configuration operation
|
|
111
|
+
* @param message - Log message
|
|
112
|
+
* @param data - Additional data
|
|
113
|
+
*/
|
|
114
|
+
warn(operation: ConfigOperation | string, message: string, data?: Record<string, unknown>): void;
|
|
115
|
+
/**
|
|
116
|
+
* Logs an error message
|
|
117
|
+
*
|
|
118
|
+
* @param operation - Configuration operation
|
|
119
|
+
* @param message - Log message
|
|
120
|
+
* @param data - Additional data
|
|
121
|
+
*/
|
|
122
|
+
error(operation: ConfigOperation | string, message: string, data?: Record<string, unknown>): void;
|
|
123
|
+
/**
|
|
124
|
+
* Logs configuration operation with timing
|
|
125
|
+
*
|
|
126
|
+
* @param operation - Configuration operation
|
|
127
|
+
* @param profileName - Profile name
|
|
128
|
+
* @param source - Configuration source
|
|
129
|
+
* @param fn - Function to execute and time
|
|
130
|
+
* @returns Result of the function
|
|
131
|
+
*/
|
|
132
|
+
logOperation<T>(operation: ConfigOperation, profileName: string, source: string, fn: () => Promise<T> | T): Promise<T>;
|
|
133
|
+
/**
|
|
134
|
+
* Logs configuration read operation
|
|
135
|
+
*
|
|
136
|
+
* @param profileName - Profile name
|
|
137
|
+
* @param configType - Configuration type
|
|
138
|
+
* @param success - Whether read was successful
|
|
139
|
+
* @param source - Configuration source
|
|
140
|
+
*/
|
|
141
|
+
logRead(profileName: string, configType: string, success: boolean, source?: string): void;
|
|
142
|
+
/**
|
|
143
|
+
* Logs configuration write operation
|
|
144
|
+
*
|
|
145
|
+
* @param profileName - Profile name
|
|
146
|
+
* @param configType - Configuration type
|
|
147
|
+
* @param success - Whether write was successful
|
|
148
|
+
* @param source - Configuration source
|
|
149
|
+
*/
|
|
150
|
+
logWrite(profileName: string, configType: string, success: boolean, source?: string): void;
|
|
151
|
+
/**
|
|
152
|
+
* Logs configuration validation
|
|
153
|
+
*
|
|
154
|
+
* @param profileName - Profile name
|
|
155
|
+
* @param isValid - Whether configuration is valid
|
|
156
|
+
* @param errors - Validation errors
|
|
157
|
+
*/
|
|
158
|
+
logValidation(profileName: string, isValid: boolean, errors?: string[]): void;
|
|
159
|
+
/**
|
|
160
|
+
* Logs secrets sync operation
|
|
161
|
+
*
|
|
162
|
+
* @param profileName - Profile name
|
|
163
|
+
* @param secretArn - Secret ARN
|
|
164
|
+
* @param action - Action performed (created/updated/skipped)
|
|
165
|
+
*/
|
|
166
|
+
logSecretsSync(profileName: string, secretArn: string, action: string): void;
|
|
167
|
+
/**
|
|
168
|
+
* Gets the log file path
|
|
169
|
+
*
|
|
170
|
+
* @returns Log file path
|
|
171
|
+
*/
|
|
172
|
+
getLogFile(): string;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Gets or creates the global configuration logger
|
|
176
|
+
*
|
|
177
|
+
* @param options - Logger options (only used on first call)
|
|
178
|
+
* @returns Configuration logger instance
|
|
179
|
+
*/
|
|
180
|
+
export declare function getConfigLogger(options?: {
|
|
181
|
+
logFile?: string;
|
|
182
|
+
enableConsole?: boolean;
|
|
183
|
+
minLogLevel?: LogLevel;
|
|
184
|
+
}): ConfigLogger;
|
|
185
|
+
/**
|
|
186
|
+
* Sets the global configuration logger
|
|
187
|
+
*
|
|
188
|
+
* @param logger - Logger instance
|
|
189
|
+
*/
|
|
190
|
+
export declare function setConfigLogger(logger: ConfigLogger): void;
|
|
191
|
+
//# sourceMappingURL=config-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-logger.d.ts","sourceRoot":"","sources":["../../lib/config-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration Diagnostic Logging
|
|
4
|
+
*
|
|
5
|
+
* Provides comprehensive logging for configuration operations:
|
|
6
|
+
* - Configuration sources tracking
|
|
7
|
+
* - Operation audit trail
|
|
8
|
+
* - Troubleshooting insights
|
|
9
|
+
* - Performance metrics
|
|
10
|
+
*
|
|
11
|
+
* @module lib/config-logger
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.ConfigLogger = exports.ConfigOperation = exports.LogLevel = void 0;
|
|
15
|
+
exports.getConfigLogger = getConfigLogger;
|
|
16
|
+
exports.setConfigLogger = setConfigLogger;
|
|
17
|
+
const fs_1 = require("fs");
|
|
18
|
+
const path_1 = require("path");
|
|
19
|
+
const os_1 = require("os");
|
|
20
|
+
/**
|
|
21
|
+
* Log level enumeration
|
|
22
|
+
*/
|
|
23
|
+
var LogLevel;
|
|
24
|
+
(function (LogLevel) {
|
|
25
|
+
LogLevel["DEBUG"] = "DEBUG";
|
|
26
|
+
LogLevel["INFO"] = "INFO";
|
|
27
|
+
LogLevel["WARN"] = "WARN";
|
|
28
|
+
LogLevel["ERROR"] = "ERROR";
|
|
29
|
+
})(LogLevel || (exports.LogLevel = LogLevel = {}));
|
|
30
|
+
/**
|
|
31
|
+
* Configuration operation types
|
|
32
|
+
*/
|
|
33
|
+
var ConfigOperation;
|
|
34
|
+
(function (ConfigOperation) {
|
|
35
|
+
ConfigOperation["READ"] = "read";
|
|
36
|
+
ConfigOperation["WRITE"] = "write";
|
|
37
|
+
ConfigOperation["VALIDATE"] = "validate";
|
|
38
|
+
ConfigOperation["MERGE"] = "merge";
|
|
39
|
+
ConfigOperation["SYNC_SECRETS"] = "sync-secrets";
|
|
40
|
+
ConfigOperation["INFER_CONFIG"] = "infer-config";
|
|
41
|
+
ConfigOperation["CREATE_PROFILE"] = "create-profile";
|
|
42
|
+
ConfigOperation["DELETE_PROFILE"] = "delete-profile";
|
|
43
|
+
})(ConfigOperation || (exports.ConfigOperation = ConfigOperation = {}));
|
|
44
|
+
/**
|
|
45
|
+
* Configuration logger for diagnostic and audit purposes
|
|
46
|
+
*/
|
|
47
|
+
class ConfigLogger {
|
|
48
|
+
/**
|
|
49
|
+
* Creates a new configuration logger
|
|
50
|
+
*
|
|
51
|
+
* @param options - Logger configuration options
|
|
52
|
+
*/
|
|
53
|
+
constructor(options) {
|
|
54
|
+
const { logFile, enableConsole = true, minLogLevel = LogLevel.INFO } = options || {};
|
|
55
|
+
// Default log file location
|
|
56
|
+
const logDir = (0, path_1.resolve)((0, os_1.homedir)(), ".config", "benchling-webhook", "logs");
|
|
57
|
+
if (!(0, fs_1.existsSync)(logDir)) {
|
|
58
|
+
(0, fs_1.mkdirSync)(logDir, { recursive: true });
|
|
59
|
+
}
|
|
60
|
+
this.logFile = logFile || (0, path_1.resolve)(logDir, "config.log");
|
|
61
|
+
this.enableConsole = enableConsole;
|
|
62
|
+
this.minLogLevel = minLogLevel;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Gets log level priority for comparison
|
|
66
|
+
*
|
|
67
|
+
* @param level - Log level
|
|
68
|
+
* @returns Priority number (higher = more severe)
|
|
69
|
+
*/
|
|
70
|
+
getLogLevelPriority(level) {
|
|
71
|
+
switch (level) {
|
|
72
|
+
case LogLevel.DEBUG:
|
|
73
|
+
return 0;
|
|
74
|
+
case LogLevel.INFO:
|
|
75
|
+
return 1;
|
|
76
|
+
case LogLevel.WARN:
|
|
77
|
+
return 2;
|
|
78
|
+
case LogLevel.ERROR:
|
|
79
|
+
return 3;
|
|
80
|
+
default:
|
|
81
|
+
return 1;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Checks if log level should be output
|
|
86
|
+
*
|
|
87
|
+
* @param level - Log level to check
|
|
88
|
+
* @returns True if should log
|
|
89
|
+
*/
|
|
90
|
+
shouldLog(level) {
|
|
91
|
+
return this.getLogLevelPriority(level) >= this.getLogLevelPriority(this.minLogLevel);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Formats log entry for output
|
|
95
|
+
*
|
|
96
|
+
* @param entry - Log entry
|
|
97
|
+
* @returns Formatted log string
|
|
98
|
+
*/
|
|
99
|
+
formatLogEntry(entry) {
|
|
100
|
+
const parts = [
|
|
101
|
+
entry.timestamp,
|
|
102
|
+
`[${entry.level}]`,
|
|
103
|
+
`[${entry.operation}]`,
|
|
104
|
+
entry.message,
|
|
105
|
+
];
|
|
106
|
+
if (entry.source) {
|
|
107
|
+
parts.push(`source=${entry.source}`);
|
|
108
|
+
}
|
|
109
|
+
if (entry.profileName) {
|
|
110
|
+
parts.push(`profile=${entry.profileName}`);
|
|
111
|
+
}
|
|
112
|
+
if (entry.duration !== undefined) {
|
|
113
|
+
parts.push(`duration=${entry.duration}ms`);
|
|
114
|
+
}
|
|
115
|
+
if (entry.data) {
|
|
116
|
+
parts.push(`data=${JSON.stringify(entry.data)}`);
|
|
117
|
+
}
|
|
118
|
+
return parts.join(" ");
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Writes log entry to file and console
|
|
122
|
+
*
|
|
123
|
+
* @param entry - Log entry to write
|
|
124
|
+
*/
|
|
125
|
+
writeLog(entry) {
|
|
126
|
+
if (!this.shouldLog(entry.level)) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const formattedLog = this.formatLogEntry(entry);
|
|
130
|
+
// Write to file
|
|
131
|
+
try {
|
|
132
|
+
(0, fs_1.appendFileSync)(this.logFile, formattedLog + "\n", "utf-8");
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
console.error(`Failed to write log: ${error.message}`);
|
|
136
|
+
}
|
|
137
|
+
// Write to console
|
|
138
|
+
if (this.enableConsole) {
|
|
139
|
+
switch (entry.level) {
|
|
140
|
+
case LogLevel.DEBUG:
|
|
141
|
+
console.debug(formattedLog);
|
|
142
|
+
break;
|
|
143
|
+
case LogLevel.INFO:
|
|
144
|
+
console.log(formattedLog);
|
|
145
|
+
break;
|
|
146
|
+
case LogLevel.WARN:
|
|
147
|
+
console.warn(formattedLog);
|
|
148
|
+
break;
|
|
149
|
+
case LogLevel.ERROR:
|
|
150
|
+
console.error(formattedLog);
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Logs a debug message
|
|
157
|
+
*
|
|
158
|
+
* @param operation - Configuration operation
|
|
159
|
+
* @param message - Log message
|
|
160
|
+
* @param data - Additional data
|
|
161
|
+
*/
|
|
162
|
+
debug(operation, message, data) {
|
|
163
|
+
this.writeLog({
|
|
164
|
+
timestamp: new Date().toISOString(),
|
|
165
|
+
level: LogLevel.DEBUG,
|
|
166
|
+
operation,
|
|
167
|
+
message,
|
|
168
|
+
data,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Logs an info message
|
|
173
|
+
*
|
|
174
|
+
* @param operation - Configuration operation
|
|
175
|
+
* @param message - Log message
|
|
176
|
+
* @param data - Additional data
|
|
177
|
+
*/
|
|
178
|
+
info(operation, message, data) {
|
|
179
|
+
this.writeLog({
|
|
180
|
+
timestamp: new Date().toISOString(),
|
|
181
|
+
level: LogLevel.INFO,
|
|
182
|
+
operation,
|
|
183
|
+
message,
|
|
184
|
+
data,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Logs a warning message
|
|
189
|
+
*
|
|
190
|
+
* @param operation - Configuration operation
|
|
191
|
+
* @param message - Log message
|
|
192
|
+
* @param data - Additional data
|
|
193
|
+
*/
|
|
194
|
+
warn(operation, message, data) {
|
|
195
|
+
this.writeLog({
|
|
196
|
+
timestamp: new Date().toISOString(),
|
|
197
|
+
level: LogLevel.WARN,
|
|
198
|
+
operation,
|
|
199
|
+
message,
|
|
200
|
+
data,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Logs an error message
|
|
205
|
+
*
|
|
206
|
+
* @param operation - Configuration operation
|
|
207
|
+
* @param message - Log message
|
|
208
|
+
* @param data - Additional data
|
|
209
|
+
*/
|
|
210
|
+
error(operation, message, data) {
|
|
211
|
+
this.writeLog({
|
|
212
|
+
timestamp: new Date().toISOString(),
|
|
213
|
+
level: LogLevel.ERROR,
|
|
214
|
+
operation,
|
|
215
|
+
message,
|
|
216
|
+
data,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Logs configuration operation with timing
|
|
221
|
+
*
|
|
222
|
+
* @param operation - Configuration operation
|
|
223
|
+
* @param profileName - Profile name
|
|
224
|
+
* @param source - Configuration source
|
|
225
|
+
* @param fn - Function to execute and time
|
|
226
|
+
* @returns Result of the function
|
|
227
|
+
*/
|
|
228
|
+
async logOperation(operation, profileName, source, fn) {
|
|
229
|
+
const startTime = Date.now();
|
|
230
|
+
this.info(operation, "Starting operation", {
|
|
231
|
+
profileName,
|
|
232
|
+
source,
|
|
233
|
+
});
|
|
234
|
+
try {
|
|
235
|
+
const result = await fn();
|
|
236
|
+
const duration = Date.now() - startTime;
|
|
237
|
+
this.info(operation, "Operation completed successfully", {
|
|
238
|
+
profileName,
|
|
239
|
+
source,
|
|
240
|
+
duration,
|
|
241
|
+
});
|
|
242
|
+
return result;
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
const duration = Date.now() - startTime;
|
|
246
|
+
this.error(operation, `Operation failed: ${error.message}`, {
|
|
247
|
+
profileName,
|
|
248
|
+
source,
|
|
249
|
+
duration,
|
|
250
|
+
error: error.stack,
|
|
251
|
+
});
|
|
252
|
+
throw error;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Logs configuration read operation
|
|
257
|
+
*
|
|
258
|
+
* @param profileName - Profile name
|
|
259
|
+
* @param configType - Configuration type
|
|
260
|
+
* @param success - Whether read was successful
|
|
261
|
+
* @param source - Configuration source
|
|
262
|
+
*/
|
|
263
|
+
logRead(profileName, configType, success, source) {
|
|
264
|
+
const entry = {
|
|
265
|
+
timestamp: new Date().toISOString(),
|
|
266
|
+
level: success ? LogLevel.INFO : LogLevel.ERROR,
|
|
267
|
+
operation: ConfigOperation.READ,
|
|
268
|
+
message: `Configuration read ${success ? "successful" : "failed"}`,
|
|
269
|
+
profileName,
|
|
270
|
+
source,
|
|
271
|
+
data: {
|
|
272
|
+
configType,
|
|
273
|
+
},
|
|
274
|
+
};
|
|
275
|
+
this.writeLog(entry);
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Logs configuration write operation
|
|
279
|
+
*
|
|
280
|
+
* @param profileName - Profile name
|
|
281
|
+
* @param configType - Configuration type
|
|
282
|
+
* @param success - Whether write was successful
|
|
283
|
+
* @param source - Configuration source
|
|
284
|
+
*/
|
|
285
|
+
logWrite(profileName, configType, success, source) {
|
|
286
|
+
const entry = {
|
|
287
|
+
timestamp: new Date().toISOString(),
|
|
288
|
+
level: success ? LogLevel.INFO : LogLevel.ERROR,
|
|
289
|
+
operation: ConfigOperation.WRITE,
|
|
290
|
+
message: `Configuration write ${success ? "successful" : "failed"}`,
|
|
291
|
+
profileName,
|
|
292
|
+
source,
|
|
293
|
+
data: {
|
|
294
|
+
configType,
|
|
295
|
+
},
|
|
296
|
+
};
|
|
297
|
+
this.writeLog(entry);
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Logs configuration validation
|
|
301
|
+
*
|
|
302
|
+
* @param profileName - Profile name
|
|
303
|
+
* @param isValid - Whether configuration is valid
|
|
304
|
+
* @param errors - Validation errors
|
|
305
|
+
*/
|
|
306
|
+
logValidation(profileName, isValid, errors) {
|
|
307
|
+
const entry = {
|
|
308
|
+
timestamp: new Date().toISOString(),
|
|
309
|
+
level: isValid ? LogLevel.INFO : LogLevel.WARN,
|
|
310
|
+
operation: ConfigOperation.VALIDATE,
|
|
311
|
+
message: `Configuration validation ${isValid ? "passed" : "failed"}`,
|
|
312
|
+
profileName,
|
|
313
|
+
data: errors ? { errors } : undefined,
|
|
314
|
+
};
|
|
315
|
+
this.writeLog(entry);
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Logs secrets sync operation
|
|
319
|
+
*
|
|
320
|
+
* @param profileName - Profile name
|
|
321
|
+
* @param secretArn - Secret ARN
|
|
322
|
+
* @param action - Action performed (created/updated/skipped)
|
|
323
|
+
*/
|
|
324
|
+
logSecretsSync(profileName, secretArn, action) {
|
|
325
|
+
const entry = {
|
|
326
|
+
timestamp: new Date().toISOString(),
|
|
327
|
+
level: LogLevel.INFO,
|
|
328
|
+
operation: ConfigOperation.SYNC_SECRETS,
|
|
329
|
+
message: `Secrets ${action}`,
|
|
330
|
+
profileName,
|
|
331
|
+
data: {
|
|
332
|
+
secretArn,
|
|
333
|
+
action,
|
|
334
|
+
},
|
|
335
|
+
};
|
|
336
|
+
this.writeLog(entry);
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Gets the log file path
|
|
340
|
+
*
|
|
341
|
+
* @returns Log file path
|
|
342
|
+
*/
|
|
343
|
+
getLogFile() {
|
|
344
|
+
return this.logFile;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
exports.ConfigLogger = ConfigLogger;
|
|
348
|
+
/**
|
|
349
|
+
* Global configuration logger instance
|
|
350
|
+
*/
|
|
351
|
+
let globalLogger = null;
|
|
352
|
+
/**
|
|
353
|
+
* Gets or creates the global configuration logger
|
|
354
|
+
*
|
|
355
|
+
* @param options - Logger options (only used on first call)
|
|
356
|
+
* @returns Configuration logger instance
|
|
357
|
+
*/
|
|
358
|
+
function getConfigLogger(options) {
|
|
359
|
+
if (!globalLogger) {
|
|
360
|
+
globalLogger = new ConfigLogger(options);
|
|
361
|
+
}
|
|
362
|
+
return globalLogger;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Sets the global configuration logger
|
|
366
|
+
*
|
|
367
|
+
* @param logger - Logger instance
|
|
368
|
+
*/
|
|
369
|
+
function setConfigLogger(logger) {
|
|
370
|
+
globalLogger = logger;
|
|
371
|
+
}
|
|
372
|
+
//# sourceMappingURL=config-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-logger.js","sourceRoot":"","sources":["../../lib/config-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { XDGConfig } from "./xdg-config";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration metadata
|
|
4
|
+
*/
|
|
5
|
+
export interface ConfigMetadata {
|
|
6
|
+
savedAt: string;
|
|
7
|
+
source: string;
|
|
8
|
+
version?: string;
|
|
9
|
+
inferredAt?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Save options for configuration persistence
|
|
13
|
+
*/
|
|
14
|
+
export interface SaveOptions {
|
|
15
|
+
xdgConfig?: XDGConfig;
|
|
16
|
+
source?: string;
|
|
17
|
+
skipValidation?: boolean;
|
|
18
|
+
merge?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Configuration saver for persisting configuration to XDG files
|
|
22
|
+
*/
|
|
23
|
+
export declare class ConfigurationSaver {
|
|
24
|
+
/**
|
|
25
|
+
* Default XDG config instance
|
|
26
|
+
*/
|
|
27
|
+
private static defaultXDGConfig;
|
|
28
|
+
/**
|
|
29
|
+
* Get or create default XDG config instance
|
|
30
|
+
*/
|
|
31
|
+
private static getDefaultXDGConfig;
|
|
32
|
+
/**
|
|
33
|
+
* Save configuration to user config file
|
|
34
|
+
*
|
|
35
|
+
* @param config - Configuration to save
|
|
36
|
+
* @param options - Save options
|
|
37
|
+
* @returns Saved configuration with metadata
|
|
38
|
+
*/
|
|
39
|
+
static save(config: Record<string, string | number | boolean>, options?: SaveOptions): Promise<Record<string, string | number | boolean>>;
|
|
40
|
+
/**
|
|
41
|
+
* Save inferred configuration to derived config file
|
|
42
|
+
*
|
|
43
|
+
* @param config - Inferred configuration
|
|
44
|
+
* @param options - Save options
|
|
45
|
+
*/
|
|
46
|
+
static saveToDerived(config: Record<string, string | number | boolean>, options?: SaveOptions): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Save deployment outputs to deployment config file
|
|
49
|
+
*
|
|
50
|
+
* @param config - Deployment configuration
|
|
51
|
+
* @param options - Save options
|
|
52
|
+
*/
|
|
53
|
+
static saveToDeployment(config: Record<string, string | number | boolean>, options?: SaveOptions): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Create metadata for configuration
|
|
56
|
+
*
|
|
57
|
+
* @param options - Metadata options
|
|
58
|
+
* @returns Configuration metadata
|
|
59
|
+
*/
|
|
60
|
+
static getMetadata(options?: Partial<ConfigMetadata>): ConfigMetadata;
|
|
61
|
+
/**
|
|
62
|
+
* Get the current version
|
|
63
|
+
*
|
|
64
|
+
* @returns Version string
|
|
65
|
+
*/
|
|
66
|
+
private static getVersion;
|
|
67
|
+
/**
|
|
68
|
+
* Validate configuration before saving
|
|
69
|
+
*
|
|
70
|
+
* @param config - Configuration to validate
|
|
71
|
+
* @throws {Error} If configuration is invalid
|
|
72
|
+
*/
|
|
73
|
+
private static validateConfig;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=configuration-saver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration-saver.d.ts","sourceRoot":"","sources":["../../lib/configuration-saver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAA0B;IAEzD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAQlC;;;;;;OAMG;WACiB,IAAI,CACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACjD,OAAO,GAAE,WAAgB,GAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IA8CrD;;;;;OAKG;WACiB,aAAa,CAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACjD,OAAO,GAAE,WAAgB,GAC1B,OAAO,CAAC,IAAI,CAAC;IAqBhB;;;;;OAKG;WACiB,gBAAgB,CAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACjD,OAAO,GAAE,WAAgB,GAC1B,OAAO,CAAC,IAAI,CAAC;IAkBhB;;;;;OAKG;WACW,WAAW,CAAC,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc;IAShF;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAMzB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAQhC"}
|