@robinmordasiewicz/f5xc-api-mcp 1.0.82-2512312028 → 1.0.82-2601012247
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 +45 -0
- package/dist/auth/credential-manager.d.ts +55 -29
- package/dist/auth/credential-manager.d.ts.map +1 -1
- package/dist/auth/credential-manager.js +178 -100
- package/dist/auth/credential-manager.js.map +1 -1
- package/dist/auth/http-client.d.ts +5 -0
- package/dist/auth/http-client.d.ts.map +1 -1
- package/dist/auth/http-client.js +63 -11
- package/dist/auth/http-client.js.map +1 -1
- package/dist/auth/index.d.ts +5 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +5 -0
- package/dist/auth/index.js.map +1 -1
- package/dist/config/paths.d.ts +34 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +67 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/index.d.ts +12 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -11
- package/dist/index.js.map +1 -1
- package/dist/profile/index.d.ts +9 -0
- package/dist/profile/index.d.ts.map +1 -0
- package/dist/profile/index.js +8 -0
- package/dist/profile/index.js.map +1 -0
- package/dist/profile/manager.d.ts +75 -0
- package/dist/profile/manager.d.ts.map +1 -0
- package/dist/profile/manager.js +327 -0
- package/dist/profile/manager.js.map +1 -0
- package/dist/profile/types.d.ts +55 -0
- package/dist/profile/types.d.ts.map +1 -0
- package/dist/profile/types.js +8 -0
- package/dist/profile/types.js.map +1 -0
- package/dist/server.d.ts +6 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +8 -2
- package/dist/server.js.map +1 -1
- package/dist/utils/error-handling.d.ts +25 -0
- package/dist/utils/error-handling.d.ts.map +1 -1
- package/dist/utils/error-handling.js +127 -0
- package/dist/utils/error-handling.js.map +1 -1
- package/package.json +1 -1
- package/dist/config/config-manager.d.ts +0 -72
- package/dist/config/config-manager.d.ts.map +0 -1
- package/dist/config/config-manager.js +0 -247
- package/dist/config/config-manager.js.map +0 -1
- package/dist/config/index.d.ts +0 -7
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -7
- package/dist/config/index.js.map +0 -1
- package/dist/config/schema.d.ts +0 -74
- package/dist/config/schema.d.ts.map +0 -1
- package/dist/config/schema.js +0 -75
- package/dist/config/schema.js.map +0 -1
- package/dist/config/types.d.ts +0 -77
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js +0 -31
- package/dist/config/types.js.map +0 -1
|
@@ -74,6 +74,28 @@ export class ConfigurationError extends F5XCError {
|
|
|
74
74
|
this.name = "ConfigurationError";
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* SSL/TLS certificate validation errors
|
|
79
|
+
*/
|
|
80
|
+
export class SSLCertificateError extends F5XCError {
|
|
81
|
+
/** The hostname that failed validation */
|
|
82
|
+
hostname;
|
|
83
|
+
/** Certificate details if available */
|
|
84
|
+
certInfo;
|
|
85
|
+
constructor(message, hostname, certInfo, context) {
|
|
86
|
+
super(message, "SSL_CERT_ERROR", context);
|
|
87
|
+
this.name = "SSLCertificateError";
|
|
88
|
+
this.hostname = hostname;
|
|
89
|
+
this.certInfo = certInfo;
|
|
90
|
+
}
|
|
91
|
+
toJSON() {
|
|
92
|
+
return {
|
|
93
|
+
...super.toJSON(),
|
|
94
|
+
hostname: this.hostname,
|
|
95
|
+
certInfo: this.certInfo,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
77
99
|
/**
|
|
78
100
|
* Validation errors for request parameters
|
|
79
101
|
*/
|
|
@@ -134,6 +156,8 @@ export var ErrorCategory;
|
|
|
134
156
|
ErrorCategory["NETWORK"] = "network";
|
|
135
157
|
/** Configuration errors */
|
|
136
158
|
ErrorCategory["CONFIGURATION"] = "configuration";
|
|
159
|
+
/** SSL/TLS certificate errors */
|
|
160
|
+
ErrorCategory["SSL_CERTIFICATE"] = "ssl_certificate";
|
|
137
161
|
/** Unknown errors */
|
|
138
162
|
ErrorCategory["UNKNOWN"] = "unknown";
|
|
139
163
|
})(ErrorCategory || (ErrorCategory = {}));
|
|
@@ -150,6 +174,9 @@ export function categorizeError(error) {
|
|
|
150
174
|
if (error instanceof ConfigurationError) {
|
|
151
175
|
return ErrorCategory.CONFIGURATION;
|
|
152
176
|
}
|
|
177
|
+
if (error instanceof SSLCertificateError) {
|
|
178
|
+
return ErrorCategory.SSL_CERTIFICATE;
|
|
179
|
+
}
|
|
153
180
|
if (error instanceof F5XCApiError) {
|
|
154
181
|
if (error.status !== undefined) {
|
|
155
182
|
if (error.status === 401 || error.status === 403) {
|
|
@@ -166,6 +193,25 @@ export function categorizeError(error) {
|
|
|
166
193
|
}
|
|
167
194
|
if (error instanceof Error) {
|
|
168
195
|
const message = error.message.toLowerCase();
|
|
196
|
+
const code = error.code?.toLowerCase() ?? "";
|
|
197
|
+
// SSL/TLS certificate errors
|
|
198
|
+
if (message.includes("certificate") ||
|
|
199
|
+
message.includes("ssl") ||
|
|
200
|
+
message.includes("tls") ||
|
|
201
|
+
message.includes("altnames") ||
|
|
202
|
+
message.includes("hostname") && message.includes("match") ||
|
|
203
|
+
message.includes("self signed") ||
|
|
204
|
+
message.includes("self-signed") ||
|
|
205
|
+
message.includes("unable to verify") ||
|
|
206
|
+
code === "cert_has_expired" ||
|
|
207
|
+
code === "depth_zero_self_signed_cert" ||
|
|
208
|
+
code === "unable_to_get_issuer_cert" ||
|
|
209
|
+
code === "unable_to_verify_leaf_signature" ||
|
|
210
|
+
code === "hostname_mismatch" ||
|
|
211
|
+
code === "err_tls_cert_altname_invalid") {
|
|
212
|
+
return ErrorCategory.SSL_CERTIFICATE;
|
|
213
|
+
}
|
|
214
|
+
// Network/connectivity errors
|
|
169
215
|
if (message.includes("network") ||
|
|
170
216
|
message.includes("timeout") ||
|
|
171
217
|
message.includes("econnrefused") ||
|
|
@@ -236,4 +282,85 @@ export function withErrorHandling(fn) {
|
|
|
236
282
|
}
|
|
237
283
|
};
|
|
238
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* Detect and wrap SSL certificate errors with actionable guidance
|
|
287
|
+
*
|
|
288
|
+
* @param error - Original error to analyze
|
|
289
|
+
* @param apiUrl - Optional API URL for context
|
|
290
|
+
* @returns Wrapped SSLCertificateError with helpful guidance or original error
|
|
291
|
+
*/
|
|
292
|
+
export function wrapSSLError(error, apiUrl) {
|
|
293
|
+
if (!(error instanceof Error)) {
|
|
294
|
+
return error instanceof Error ? error : new Error(String(error));
|
|
295
|
+
}
|
|
296
|
+
const message = error.message.toLowerCase();
|
|
297
|
+
let hostname;
|
|
298
|
+
try {
|
|
299
|
+
if (apiUrl) {
|
|
300
|
+
hostname = new URL(apiUrl).hostname;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
catch {
|
|
304
|
+
// Invalid URL, ignore
|
|
305
|
+
}
|
|
306
|
+
// Check for hostname/altname mismatch (the staging certificate issue)
|
|
307
|
+
if (message.includes("altnames") || (message.includes("hostname") && message.includes("match"))) {
|
|
308
|
+
const isStaging = hostname?.includes(".staging.");
|
|
309
|
+
let guidance = `SSL Certificate Error: The server certificate does not cover hostname "${hostname ?? "unknown"}".`;
|
|
310
|
+
if (isStaging) {
|
|
311
|
+
guidance += `
|
|
312
|
+
|
|
313
|
+
This is a known issue with F5 XC staging environments. The wildcard certificate
|
|
314
|
+
*.console.ves.volterra.io does not match multi-level subdomains like
|
|
315
|
+
tenant.staging.console.ves.volterra.io.
|
|
316
|
+
|
|
317
|
+
SOLUTIONS:
|
|
318
|
+
1. (Recommended) Set F5XC_CA_BUNDLE=/path/to/custom-ca.crt
|
|
319
|
+
2. (Development only) Set F5XC_TLS_INSECURE=true to bypass verification
|
|
320
|
+
WARNING: Never use insecure mode in production!
|
|
321
|
+
|
|
322
|
+
Example:
|
|
323
|
+
export F5XC_TLS_INSECURE=true`;
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
guidance += `
|
|
327
|
+
|
|
328
|
+
SOLUTIONS:
|
|
329
|
+
1. Verify the API URL is correct: ${apiUrl ?? "not set"}
|
|
330
|
+
2. If using a custom CA, set F5XC_CA_BUNDLE=/path/to/ca-bundle.crt
|
|
331
|
+
3. Check if the certificate has expired or is self-signed`;
|
|
332
|
+
}
|
|
333
|
+
return new SSLCertificateError(guidance, hostname, undefined, {
|
|
334
|
+
originalError: error.message,
|
|
335
|
+
apiUrl,
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
// Check for self-signed certificates
|
|
339
|
+
if (message.includes("self signed") || message.includes("self-signed")) {
|
|
340
|
+
return new SSLCertificateError(`SSL Certificate Error: Self-signed certificate detected.
|
|
341
|
+
|
|
342
|
+
SOLUTIONS:
|
|
343
|
+
1. (Recommended) Add your CA certificate: F5XC_CA_BUNDLE=/path/to/ca.crt
|
|
344
|
+
2. (Development only) Set F5XC_TLS_INSECURE=true to bypass verification`, hostname, undefined, { originalError: error.message, apiUrl });
|
|
345
|
+
}
|
|
346
|
+
// Check for expired certificates
|
|
347
|
+
if (message.includes("expired") || message.includes("not yet valid")) {
|
|
348
|
+
return new SSLCertificateError(`SSL Certificate Error: Certificate has expired or is not yet valid.
|
|
349
|
+
|
|
350
|
+
Contact your F5 XC administrator to renew the certificate.`, hostname, undefined, { originalError: error.message, apiUrl });
|
|
351
|
+
}
|
|
352
|
+
// Generic SSL error
|
|
353
|
+
if (message.includes("certificate") ||
|
|
354
|
+
message.includes("ssl") ||
|
|
355
|
+
message.includes("tls") ||
|
|
356
|
+
message.includes("unable to verify")) {
|
|
357
|
+
return new SSLCertificateError(`SSL/TLS Error: ${error.message}
|
|
358
|
+
|
|
359
|
+
If this is a staging environment, you may need to:
|
|
360
|
+
1. Set F5XC_CA_BUNDLE=/path/to/ca.crt for custom CA
|
|
361
|
+
2. Set F5XC_TLS_INSECURE=true to disable verification (development only)`, hostname, undefined, { originalError: error.message, apiUrl });
|
|
362
|
+
}
|
|
363
|
+
// Not an SSL error, return original
|
|
364
|
+
return error;
|
|
365
|
+
}
|
|
239
366
|
//# sourceMappingURL=error-handling.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handling.js","sourceRoot":"","sources":["../../src/utils/error-handling.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"error-handling.js","sourceRoot":"","sources":["../../src/utils/error-handling.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robinmordasiewicz/f5xc-api-mcp",
|
|
3
|
-
"version": "1.0.82-
|
|
3
|
+
"version": "1.0.82-2601012247",
|
|
4
4
|
"description": "F5 Distributed Cloud API MCP Server - Exposes F5XC APIs to AI assistants via Model Context Protocol",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration Manager for F5XC API MCP
|
|
3
|
-
* Handles reading/writing configuration files with proper permissions and atomic operations
|
|
4
|
-
*/
|
|
5
|
-
import { ConfigFile, ProfileCredentials } from "./types.js";
|
|
6
|
-
/**
|
|
7
|
-
* Manages F5XC API MCP configuration files
|
|
8
|
-
*/
|
|
9
|
-
export declare class ConfigManager {
|
|
10
|
-
private configDir;
|
|
11
|
-
private configFile;
|
|
12
|
-
constructor(configDir?: string, configFile?: string);
|
|
13
|
-
/**
|
|
14
|
-
* Check if configuration file exists
|
|
15
|
-
*/
|
|
16
|
-
exists(): Promise<boolean>;
|
|
17
|
-
/**
|
|
18
|
-
* Ensure configuration directory exists with proper permissions
|
|
19
|
-
*/
|
|
20
|
-
private ensureConfigDir;
|
|
21
|
-
/**
|
|
22
|
-
* Check and fix file permissions
|
|
23
|
-
*/
|
|
24
|
-
private checkAndFixPermissions;
|
|
25
|
-
/**
|
|
26
|
-
* Read configuration file (async)
|
|
27
|
-
*/
|
|
28
|
-
read(): Promise<ConfigFile>;
|
|
29
|
-
/**
|
|
30
|
-
* Read configuration file synchronously (for initialization)
|
|
31
|
-
* Note: This is used during CredentialManager construction
|
|
32
|
-
*/
|
|
33
|
-
readSync(): ConfigFile;
|
|
34
|
-
/**
|
|
35
|
-
* Write configuration file with atomic operation
|
|
36
|
-
* Uses temp file + rename pattern to ensure consistency
|
|
37
|
-
*/
|
|
38
|
-
write(config: ConfigFile): Promise<void>;
|
|
39
|
-
/**
|
|
40
|
-
* Get list of all profile names
|
|
41
|
-
*/
|
|
42
|
-
listProfiles(): Promise<string[]>;
|
|
43
|
-
/**
|
|
44
|
-
* Get a specific profile by name
|
|
45
|
-
*/
|
|
46
|
-
getProfile(name: string): Promise<ProfileCredentials | null>;
|
|
47
|
-
/**
|
|
48
|
-
* Create or update a profile
|
|
49
|
-
*/
|
|
50
|
-
setProfile(name: string, credentials: ProfileCredentials): Promise<void>;
|
|
51
|
-
/**
|
|
52
|
-
* Delete a profile by name
|
|
53
|
-
*/
|
|
54
|
-
deleteProfile(name: string): Promise<void>;
|
|
55
|
-
/**
|
|
56
|
-
* Get the default profile name
|
|
57
|
-
*/
|
|
58
|
-
getDefaultProfile(): Promise<string | null>;
|
|
59
|
-
/**
|
|
60
|
-
* Set the default profile
|
|
61
|
-
*/
|
|
62
|
-
setDefaultProfile(name: string): Promise<void>;
|
|
63
|
-
/**
|
|
64
|
-
* Update the lastUsedAt timestamp for a profile
|
|
65
|
-
*/
|
|
66
|
-
touchProfile(name: string): Promise<void>;
|
|
67
|
-
/**
|
|
68
|
-
* Get the full configuration file
|
|
69
|
-
*/
|
|
70
|
-
getConfig(): Promise<ConfigFile>;
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=config-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../src/config/config-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACL,UAAU,EACV,kBAAkB,EAMnB,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;gBAEf,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAKnD;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAShC;;OAEG;YACW,eAAe;IAY7B;;OAEG;YACW,sBAAsB;IAsBpC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAiBjC;;;OAGG;IACH,QAAQ,IAAI,UAAU;IAiCtB;;;OAGG;IACG,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC9C;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKvC;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAKlE;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9E;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBhD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKjD;;OAEG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpD;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB/C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;CAGvC"}
|
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration Manager for F5XC API MCP
|
|
3
|
-
* Handles reading/writing configuration files with proper permissions and atomic operations
|
|
4
|
-
*/
|
|
5
|
-
import * as fs from "fs/promises";
|
|
6
|
-
import * as fsSync from "fs";
|
|
7
|
-
import * as path from "path";
|
|
8
|
-
import { DEFAULT_CONFIG, CONFIG_DIR_PERMISSIONS, CONFIG_FILE_PERMISSIONS, getConfigDirPath, getConfigFilePath, } from "./types.js";
|
|
9
|
-
import { validateConfigFile, safeValidateConfigFile } from "./schema.js";
|
|
10
|
-
/**
|
|
11
|
-
* Manages F5XC API MCP configuration files
|
|
12
|
-
*/
|
|
13
|
-
export class ConfigManager {
|
|
14
|
-
configDir;
|
|
15
|
-
configFile;
|
|
16
|
-
constructor(configDir, configFile) {
|
|
17
|
-
this.configDir = configDir || getConfigDirPath();
|
|
18
|
-
this.configFile = configFile || getConfigFilePath();
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Check if configuration file exists
|
|
22
|
-
*/
|
|
23
|
-
async exists() {
|
|
24
|
-
try {
|
|
25
|
-
await fs.access(this.configFile);
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
catch {
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Ensure configuration directory exists with proper permissions
|
|
34
|
-
*/
|
|
35
|
-
async ensureConfigDir() {
|
|
36
|
-
try {
|
|
37
|
-
await fs.mkdir(this.configDir, { recursive: true, mode: CONFIG_DIR_PERMISSIONS });
|
|
38
|
-
// Fix permissions if directory already exists
|
|
39
|
-
await fs.chmod(this.configDir, CONFIG_DIR_PERMISSIONS);
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
throw new Error(`Failed to create config directory: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Check and fix file permissions
|
|
47
|
-
*/
|
|
48
|
-
async checkAndFixPermissions(filePath, expectedPermissions) {
|
|
49
|
-
try {
|
|
50
|
-
const stats = await fs.stat(filePath);
|
|
51
|
-
const currentMode = stats.mode & 0o777;
|
|
52
|
-
if (currentMode !== expectedPermissions) {
|
|
53
|
-
console.warn(`Warning: Config file has insecure permissions (${currentMode.toString(8)}). Fixing to ${expectedPermissions.toString(8)}...`);
|
|
54
|
-
await fs.chmod(filePath, expectedPermissions);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
const err = error;
|
|
59
|
-
if (err.code !== "ENOENT") {
|
|
60
|
-
throw error;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Read configuration file (async)
|
|
66
|
-
*/
|
|
67
|
-
async read() {
|
|
68
|
-
try {
|
|
69
|
-
await this.checkAndFixPermissions(this.configFile, CONFIG_FILE_PERMISSIONS);
|
|
70
|
-
const content = await fs.readFile(this.configFile, "utf-8");
|
|
71
|
-
const data = JSON.parse(content);
|
|
72
|
-
return validateConfigFile(data);
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
const err = error;
|
|
76
|
-
if (err.code === "ENOENT") {
|
|
77
|
-
return DEFAULT_CONFIG;
|
|
78
|
-
}
|
|
79
|
-
throw new Error(`Failed to read config file: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Read configuration file synchronously (for initialization)
|
|
84
|
-
* Note: This is used during CredentialManager construction
|
|
85
|
-
*/
|
|
86
|
-
readSync() {
|
|
87
|
-
try {
|
|
88
|
-
if (!fsSync.existsSync(this.configFile)) {
|
|
89
|
-
return DEFAULT_CONFIG;
|
|
90
|
-
}
|
|
91
|
-
// Check permissions
|
|
92
|
-
const stats = fsSync.statSync(this.configFile);
|
|
93
|
-
const currentMode = stats.mode & 0o777;
|
|
94
|
-
if (currentMode !== CONFIG_FILE_PERMISSIONS) {
|
|
95
|
-
console.warn(`Warning: Config file has insecure permissions (${currentMode.toString(8)}). Run 'f5xc-api-mcp --setup' to fix.`);
|
|
96
|
-
}
|
|
97
|
-
const content = fsSync.readFileSync(this.configFile, "utf-8");
|
|
98
|
-
const data = JSON.parse(content);
|
|
99
|
-
const result = safeValidateConfigFile(data);
|
|
100
|
-
if (!result.success) {
|
|
101
|
-
console.warn(`Warning: Invalid config file: ${result.error}`);
|
|
102
|
-
return DEFAULT_CONFIG;
|
|
103
|
-
}
|
|
104
|
-
return result.data;
|
|
105
|
-
}
|
|
106
|
-
catch (error) {
|
|
107
|
-
console.warn(`Warning: Failed to read config file: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
108
|
-
return DEFAULT_CONFIG;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Write configuration file with atomic operation
|
|
113
|
-
* Uses temp file + rename pattern to ensure consistency
|
|
114
|
-
*/
|
|
115
|
-
async write(config) {
|
|
116
|
-
await this.ensureConfigDir();
|
|
117
|
-
const tempFile = `${this.configFile}.tmp.${Date.now()}`;
|
|
118
|
-
try {
|
|
119
|
-
// Validate before writing
|
|
120
|
-
validateConfigFile(config);
|
|
121
|
-
// Write to temporary file
|
|
122
|
-
const content = JSON.stringify(config, null, 2);
|
|
123
|
-
const tempDir = path.dirname(tempFile);
|
|
124
|
-
// Ensure directories exist
|
|
125
|
-
await fs.mkdir(tempDir, { recursive: true, mode: CONFIG_DIR_PERMISSIONS });
|
|
126
|
-
await fs.writeFile(tempFile, content, { mode: CONFIG_FILE_PERMISSIONS });
|
|
127
|
-
// Ensure target directory exists before rename
|
|
128
|
-
const targetDir = path.dirname(this.configFile);
|
|
129
|
-
await fs.mkdir(targetDir, { recursive: true, mode: CONFIG_DIR_PERMISSIONS });
|
|
130
|
-
// Atomic rename
|
|
131
|
-
await fs.rename(tempFile, this.configFile);
|
|
132
|
-
// Verify permissions
|
|
133
|
-
await this.checkAndFixPermissions(this.configFile, CONFIG_FILE_PERMISSIONS);
|
|
134
|
-
}
|
|
135
|
-
catch (error) {
|
|
136
|
-
// Clean up temp file on error
|
|
137
|
-
try {
|
|
138
|
-
await fs.unlink(tempFile);
|
|
139
|
-
}
|
|
140
|
-
catch {
|
|
141
|
-
// Ignore cleanup errors
|
|
142
|
-
}
|
|
143
|
-
throw new Error(`Failed to write config file: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Get list of all profile names
|
|
148
|
-
*/
|
|
149
|
-
async listProfiles() {
|
|
150
|
-
const config = await this.read();
|
|
151
|
-
return Object.keys(config.profiles);
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Get a specific profile by name
|
|
155
|
-
*/
|
|
156
|
-
async getProfile(name) {
|
|
157
|
-
const config = await this.read();
|
|
158
|
-
return config.profiles[name] || null;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Create or update a profile
|
|
162
|
-
*/
|
|
163
|
-
async setProfile(name, credentials) {
|
|
164
|
-
const config = await this.read();
|
|
165
|
-
// Validate profile name
|
|
166
|
-
if (!/^[a-z0-9_-]+$/i.test(name)) {
|
|
167
|
-
throw new Error("Profile name must contain only alphanumeric characters, hyphens, and underscores");
|
|
168
|
-
}
|
|
169
|
-
// Set metadata if not provided
|
|
170
|
-
if (!credentials.metadata) {
|
|
171
|
-
credentials.metadata = {
|
|
172
|
-
createdAt: new Date().toISOString(),
|
|
173
|
-
lastModifiedAt: new Date().toISOString(),
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
credentials.metadata.lastModifiedAt = new Date().toISOString();
|
|
178
|
-
}
|
|
179
|
-
config.profiles[name] = credentials;
|
|
180
|
-
config.metadata = { lastModifiedAt: new Date().toISOString() };
|
|
181
|
-
await this.write(config);
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Delete a profile by name
|
|
185
|
-
*/
|
|
186
|
-
async deleteProfile(name) {
|
|
187
|
-
const config = await this.read();
|
|
188
|
-
if (!config.profiles[name]) {
|
|
189
|
-
throw new Error(`Profile "${name}" does not exist`);
|
|
190
|
-
}
|
|
191
|
-
delete config.profiles[name];
|
|
192
|
-
// Clear default profile if it was deleted
|
|
193
|
-
if (config.defaultProfile === name) {
|
|
194
|
-
config.defaultProfile = undefined;
|
|
195
|
-
}
|
|
196
|
-
config.metadata = { lastModifiedAt: new Date().toISOString() };
|
|
197
|
-
await this.write(config);
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Get the default profile name
|
|
201
|
-
*/
|
|
202
|
-
async getDefaultProfile() {
|
|
203
|
-
const config = await this.read();
|
|
204
|
-
return config.defaultProfile || null;
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Set the default profile
|
|
208
|
-
*/
|
|
209
|
-
async setDefaultProfile(name) {
|
|
210
|
-
const config = await this.read();
|
|
211
|
-
if (!config.profiles[name]) {
|
|
212
|
-
throw new Error(`Profile "${name}" does not exist`);
|
|
213
|
-
}
|
|
214
|
-
config.defaultProfile = name;
|
|
215
|
-
config.metadata = { lastModifiedAt: new Date().toISOString() };
|
|
216
|
-
await this.write(config);
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Update the lastUsedAt timestamp for a profile
|
|
220
|
-
*/
|
|
221
|
-
async touchProfile(name) {
|
|
222
|
-
const config = await this.read();
|
|
223
|
-
const profile = config.profiles[name];
|
|
224
|
-
if (!profile) {
|
|
225
|
-
return; // Silently ignore if profile doesn't exist
|
|
226
|
-
}
|
|
227
|
-
if (!profile.metadata) {
|
|
228
|
-
profile.metadata = {
|
|
229
|
-
createdAt: new Date().toISOString(),
|
|
230
|
-
lastModifiedAt: new Date().toISOString(),
|
|
231
|
-
lastUsedAt: new Date().toISOString(),
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
profile.metadata.lastUsedAt = new Date().toISOString();
|
|
236
|
-
}
|
|
237
|
-
config.metadata = { lastModifiedAt: new Date().toISOString() };
|
|
238
|
-
await this.write(config);
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Get the full configuration file
|
|
242
|
-
*/
|
|
243
|
-
async getConfig() {
|
|
244
|
-
return this.read();
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
//# sourceMappingURL=config-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../src/config/config-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/config/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/config/index.js
DELETED
package/dist/config/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/config/schema.d.ts
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Zod validation schemas for F5XC API MCP configuration
|
|
3
|
-
*/
|
|
4
|
-
import { z } from "zod";
|
|
5
|
-
import type { ConfigFile, ProfileCredentials } from "./types.js";
|
|
6
|
-
/**
|
|
7
|
-
* Schema for profile metadata
|
|
8
|
-
*/
|
|
9
|
-
export declare const ProfileMetadataSchema: z.ZodObject<{
|
|
10
|
-
description: z.ZodOptional<z.ZodString>;
|
|
11
|
-
createdAt: z.ZodString;
|
|
12
|
-
lastUsedAt: z.ZodOptional<z.ZodString>;
|
|
13
|
-
lastModifiedAt: z.ZodString;
|
|
14
|
-
}, z.core.$strict>;
|
|
15
|
-
/**
|
|
16
|
-
* Schema for profile credentials
|
|
17
|
-
*/
|
|
18
|
-
export declare const ProfileCredentialsSchema: z.ZodObject<{
|
|
19
|
-
apiUrl: z.ZodOptional<z.ZodString>;
|
|
20
|
-
apiToken: z.ZodOptional<z.ZodString>;
|
|
21
|
-
p12File: z.ZodOptional<z.ZodString>;
|
|
22
|
-
p12Password: z.ZodOptional<z.ZodString>;
|
|
23
|
-
metadata: z.ZodOptional<z.ZodObject<{
|
|
24
|
-
description: z.ZodOptional<z.ZodString>;
|
|
25
|
-
createdAt: z.ZodString;
|
|
26
|
-
lastUsedAt: z.ZodOptional<z.ZodString>;
|
|
27
|
-
lastModifiedAt: z.ZodString;
|
|
28
|
-
}, z.core.$strict>>;
|
|
29
|
-
}, z.core.$strict>;
|
|
30
|
-
/**
|
|
31
|
-
* Schema for configuration file
|
|
32
|
-
*/
|
|
33
|
-
export declare const ConfigFileSchema: z.ZodObject<{
|
|
34
|
-
version: z.ZodString;
|
|
35
|
-
defaultProfile: z.ZodOptional<z.ZodString>;
|
|
36
|
-
profiles: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
37
|
-
apiUrl: z.ZodOptional<z.ZodString>;
|
|
38
|
-
apiToken: z.ZodOptional<z.ZodString>;
|
|
39
|
-
p12File: z.ZodOptional<z.ZodString>;
|
|
40
|
-
p12Password: z.ZodOptional<z.ZodString>;
|
|
41
|
-
metadata: z.ZodOptional<z.ZodObject<{
|
|
42
|
-
description: z.ZodOptional<z.ZodString>;
|
|
43
|
-
createdAt: z.ZodString;
|
|
44
|
-
lastUsedAt: z.ZodOptional<z.ZodString>;
|
|
45
|
-
lastModifiedAt: z.ZodString;
|
|
46
|
-
}, z.core.$strict>>;
|
|
47
|
-
}, z.core.$strict>>;
|
|
48
|
-
metadata: z.ZodOptional<z.ZodObject<{
|
|
49
|
-
lastModifiedAt: z.ZodString;
|
|
50
|
-
}, z.core.$strict>>;
|
|
51
|
-
}, z.core.$strict>;
|
|
52
|
-
/**
|
|
53
|
-
* Validate a configuration file
|
|
54
|
-
* @param data - Data to validate
|
|
55
|
-
* @returns Validated ConfigFile or throws ZodError
|
|
56
|
-
*/
|
|
57
|
-
export declare function validateConfigFile(data: unknown): ConfigFile;
|
|
58
|
-
/**
|
|
59
|
-
* Validate profile credentials
|
|
60
|
-
* @param data - Data to validate
|
|
61
|
-
* @returns Validated ProfileCredentials or throws ZodError
|
|
62
|
-
*/
|
|
63
|
-
export declare function validateProfileCredentials(data: unknown): ProfileCredentials;
|
|
64
|
-
/**
|
|
65
|
-
* Safely validate a configuration file
|
|
66
|
-
* @param data - Data to validate
|
|
67
|
-
* @returns Object with success flag and data or error
|
|
68
|
-
*/
|
|
69
|
-
export declare function safeValidateConfigFile(data: unknown): {
|
|
70
|
-
success: boolean;
|
|
71
|
-
data?: ConfigFile;
|
|
72
|
-
error?: string;
|
|
73
|
-
};
|
|
74
|
-
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;kBAOvB,CAAC;AAEZ;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;kBAQ1B,CAAC;AAEZ;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;kBAYlB,CAAC;AAEZ;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,kBAAkB,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAQA"}
|