@sfdxy/anypoint-connect 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -41
- package/dist/api/MonitoringApi.d.ts +50 -5
- package/dist/api/MonitoringApi.d.ts.map +1 -1
- package/dist/api/MonitoringApi.js +86 -10
- package/dist/api/MonitoringApi.js.map +1 -1
- package/dist/auth/FileStore.d.ts +2 -2
- package/dist/auth/FileStore.d.ts.map +1 -1
- package/dist/auth/FileStore.js +8 -7
- package/dist/auth/FileStore.js.map +1 -1
- package/dist/auth/TokenManager.d.ts +1 -0
- package/dist/auth/TokenManager.d.ts.map +1 -1
- package/dist/auth/TokenManager.js +1 -1
- package/dist/auth/TokenManager.js.map +1 -1
- package/dist/cli.js +7 -1
- package/dist/cli.js.map +1 -1
- package/dist/client/AnypointClient.d.ts +1 -0
- package/dist/client/AnypointClient.d.ts.map +1 -1
- package/dist/client/AnypointClient.js +1 -0
- package/dist/client/AnypointClient.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +18 -9
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/config.d.ts +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +76 -24
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/monitor.d.ts +5 -1
- package/dist/commands/monitor.d.ts.map +1 -1
- package/dist/commands/monitor.js +171 -16
- package/dist/commands/monitor.js.map +1 -1
- package/dist/commands/shared.d.ts +2 -2
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/shared.js +6 -4
- package/dist/commands/shared.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools/index.d.ts +1 -0
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +1 -0
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/monitoring.d.ts +2 -1
- package/dist/mcp/tools/monitoring.d.ts.map +1 -1
- package/dist/mcp/tools/monitoring.js +171 -2
- package/dist/mcp/tools/monitoring.js.map +1 -1
- package/dist/mcp/tools/profile.d.ts +7 -0
- package/dist/mcp/tools/profile.d.ts.map +1 -0
- package/dist/mcp/tools/profile.js +82 -0
- package/dist/mcp/tools/profile.js.map +1 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +7 -3
- package/dist/mcp.js.map +1 -1
- package/dist/utils/config.d.ts +79 -16
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +172 -35
- package/dist/utils/config.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/logo.svg" alt="Anypoint Connect Banner" width="100%" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
1
5
|
# Anypoint Connect
|
|
2
6
|
|
|
3
7
|
> CLI + MCP toolkit for Anypoint Platform — deploy, tail logs, pull metrics, manage API specs, with production safety nets.
|
|
@@ -21,6 +25,12 @@ graph TB
|
|
|
21
25
|
LIB["Library — import"]
|
|
22
26
|
end
|
|
23
27
|
|
|
28
|
+
subgraph Config["Config & Profiles"]
|
|
29
|
+
PR["Profile Resolver<br/>flag → env → project → default"]
|
|
30
|
+
PC[".anypoint-connect.json<br/>Project binding"]
|
|
31
|
+
CFG["Profile Config<br/>~/.anypoint-connect/profiles/"]
|
|
32
|
+
end
|
|
33
|
+
|
|
24
34
|
subgraph Core["Core"]
|
|
25
35
|
AC["AnypointClient<br/>Facade"]
|
|
26
36
|
HTTP["HttpClient<br/>Axios + Bearer"]
|
|
@@ -31,7 +41,7 @@ graph TB
|
|
|
31
41
|
subgraph Auth["Auth"]
|
|
32
42
|
TM["TokenManager<br/>Auto-refresh"]
|
|
33
43
|
OAUTH["OAuthFlow<br/>Browser callback"]
|
|
34
|
-
FS["FileStore<br/>AES-256-GCM"]
|
|
44
|
+
FS["FileStore<br/>AES-256-GCM per-profile"]
|
|
35
45
|
end
|
|
36
46
|
|
|
37
47
|
subgraph APIs["Domain APIs"]
|
|
@@ -48,9 +58,12 @@ graph TB
|
|
|
48
58
|
GUARD["Production Guards<br/>Env detection, Confirmation"]
|
|
49
59
|
end
|
|
50
60
|
|
|
51
|
-
CLI -->
|
|
52
|
-
MCP -->
|
|
61
|
+
CLI --> PR
|
|
62
|
+
MCP --> PR
|
|
53
63
|
LIB --> AC
|
|
64
|
+
PC -.-> PR
|
|
65
|
+
PR --> CFG
|
|
66
|
+
CFG --> AC
|
|
54
67
|
AC --> HTTP
|
|
55
68
|
AC --> CACHE
|
|
56
69
|
HTTP --> RL
|
|
@@ -70,6 +83,7 @@ graph TB
|
|
|
70
83
|
HTTP --> AP
|
|
71
84
|
|
|
72
85
|
style Entry fill:#1a1a2e,stroke:#4ecdc4,color:#e0e0e0
|
|
86
|
+
style Config fill:#1a1a2e,stroke:#f4a261,color:#e0e0e0
|
|
73
87
|
style Core fill:#16213e,stroke:#0f3460,color:#e0e0e0
|
|
74
88
|
style Auth fill:#1a1a2e,stroke:#e94560,color:#e0e0e0
|
|
75
89
|
style APIs fill:#16213e,stroke:#533483,color:#e0e0e0
|
|
@@ -107,8 +121,8 @@ src/
|
|
|
107
121
|
│ ├── types.ts Shared type definitions
|
|
108
122
|
│ └── utils.ts Noise detection, templatization
|
|
109
123
|
├── commands/ CLI commands
|
|
110
|
-
│ ├── config.ts init | show | set | path
|
|
111
|
-
│ ├── auth.ts login | logout | status
|
|
124
|
+
│ ├── config.ts init | show | set | path | profiles | use
|
|
125
|
+
│ ├── auth.ts login | logout | status (--profile)
|
|
112
126
|
│ ├── apps.ts list | status | restart | scale
|
|
113
127
|
│ ├── deploy.ts deploy with prod safety net
|
|
114
128
|
│ ├── logs.ts tail | download
|
|
@@ -119,7 +133,7 @@ src/
|
|
|
119
133
|
├── safety/ Production guards
|
|
120
134
|
│ └── guards.ts Env detection, JAR validation, confirmation
|
|
121
135
|
├── utils/
|
|
122
|
-
│ └── config.ts
|
|
136
|
+
│ └── config.ts Profile-based config resolution
|
|
123
137
|
├── cli.ts CLI entry point (bin: anc)
|
|
124
138
|
├── mcp.ts MCP server entry point
|
|
125
139
|
└── index.ts Library barrel export
|
|
@@ -127,34 +141,36 @@ src/
|
|
|
127
141
|
|
|
128
142
|
### Config Resolution
|
|
129
143
|
|
|
130
|
-
|
|
144
|
+
Config uses **named profiles** for multi-org support. A profile is first resolved, then credentials within that profile:
|
|
131
145
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
style RESOLVE fill:#1a1a2e,stroke:#4ecdc4,color:#e0e0e0
|
|
143
|
-
style RUNTIME fill:#0f3460,stroke:#4ecdc4,color:#e0e0e0
|
|
144
|
-
```
|
|
146
|
+
**Profile resolution** (highest priority wins):
|
|
147
|
+
|
|
148
|
+
| Priority | Source | Example |
|
|
149
|
+
|----------|--------|---------|
|
|
150
|
+
| **1** | `--profile` CLI flag | `anc apps list --profile client-a --env Sandbox` |
|
|
151
|
+
| **2** | `ANYPOINT_PROFILE` env var | `export ANYPOINT_PROFILE=client-a` |
|
|
152
|
+
| **3** | `.anypoint-connect.json` in project | `{ "profile": "client-a" }` (walks up from cwd) |
|
|
153
|
+
| **4** | Fallback | `"default"` |
|
|
154
|
+
|
|
155
|
+
**Credential resolution** within a profile (highest priority wins):
|
|
145
156
|
|
|
146
157
|
| Priority | Source | When to use |
|
|
147
158
|
|----------|--------|-------------|
|
|
148
159
|
| **1 (highest)** | Environment variables | CI/CD pipelines, Docker, per-session overrides |
|
|
149
|
-
| **2** |
|
|
150
|
-
| **3 (lowest)** | `.env` in
|
|
160
|
+
| **2** | Profile config.json | Day-to-day development — persists per profile |
|
|
161
|
+
| **3 (lowest)** | `.env` in cwd | Legacy/project-local fallback |
|
|
151
162
|
|
|
152
|
-
|
|
163
|
+
Storage layout:
|
|
153
164
|
|
|
154
165
|
```
|
|
155
166
|
~/.anypoint-connect/
|
|
156
|
-
|
|
157
|
-
|
|
167
|
+
└── profiles/
|
|
168
|
+
├── default/
|
|
169
|
+
│ ├── config.json OAuth credentials (chmod 600)
|
|
170
|
+
│ └── tokens.enc AES-256-GCM encrypted tokens
|
|
171
|
+
└── client-a/
|
|
172
|
+
├── config.json
|
|
173
|
+
└── tokens.enc
|
|
158
174
|
```
|
|
159
175
|
|
|
160
176
|
---
|
|
@@ -192,31 +208,41 @@ npm link # makes "anc" available globally
|
|
|
192
208
|
### 3. Configure
|
|
193
209
|
|
|
194
210
|
```bash
|
|
211
|
+
# Default profile (single-org)
|
|
195
212
|
anc config init
|
|
196
|
-
|
|
197
|
-
#
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
# Default Environment (optional): Sandbox
|
|
201
|
-
# ✔ Configuration saved!
|
|
213
|
+
|
|
214
|
+
# Named profile (multi-org)
|
|
215
|
+
anc config init --profile client-a
|
|
216
|
+
anc config init --profile client-b
|
|
202
217
|
```
|
|
203
218
|
|
|
204
219
|
### 4. Authenticate
|
|
205
220
|
|
|
206
221
|
```bash
|
|
207
|
-
anc auth login
|
|
208
|
-
anc auth
|
|
222
|
+
anc auth login # Default profile
|
|
223
|
+
anc auth login --profile client-a # Specific profile
|
|
224
|
+
anc auth status # Check current auth
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### 5. Bind a Project to a Profile
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
cd ~/projects/client-a-integrations
|
|
231
|
+
anc config use client-a
|
|
232
|
+
# Creates .anypoint-connect.json → { "profile": "client-a" }
|
|
233
|
+
# Now all commands & MCP in this folder auto-use "client-a"
|
|
209
234
|
```
|
|
210
235
|
|
|
211
236
|
### Managing Config
|
|
212
237
|
|
|
213
238
|
```bash
|
|
214
|
-
anc config show
|
|
239
|
+
anc config show # Show config (secrets masked)
|
|
240
|
+
anc config show --profile client-a # Show specific profile
|
|
215
241
|
anc config set defaultEnv Production # Update a value
|
|
216
|
-
anc config
|
|
242
|
+
anc config profiles # List all profiles
|
|
217
243
|
|
|
218
244
|
# Override per-session
|
|
219
|
-
|
|
245
|
+
ANYPOINT_PROFILE=client-b anc apps list --env Sandbox
|
|
220
246
|
```
|
|
221
247
|
|
|
222
248
|
---
|
|
@@ -321,9 +347,10 @@ anc dc publish my-api-spec --version 2.0.0 --classifier oas3 --api-version v2
|
|
|
321
347
|
### Authentication
|
|
322
348
|
|
|
323
349
|
```bash
|
|
324
|
-
anc auth login
|
|
325
|
-
anc auth
|
|
326
|
-
anc auth
|
|
350
|
+
anc auth login # Default profile
|
|
351
|
+
anc auth login --profile client-a # Specific profile
|
|
352
|
+
anc auth status # Check current auth
|
|
353
|
+
anc auth logout # Clear stored tokens
|
|
327
354
|
```
|
|
328
355
|
|
|
329
356
|
---
|
|
@@ -335,7 +362,7 @@ The MCP server exposes all Anypoint operations as tools for AI assistants (Claud
|
|
|
335
362
|
### Prerequisites
|
|
336
363
|
|
|
337
364
|
```bash
|
|
338
|
-
anc config init # one-time setup
|
|
365
|
+
anc config init # one-time setup (or --profile <name> for multi-org)
|
|
339
366
|
anc auth login # get tokens
|
|
340
367
|
```
|
|
341
368
|
|
|
@@ -367,7 +394,7 @@ Or if installed globally, use the CLI directly:
|
|
|
367
394
|
}
|
|
368
395
|
```
|
|
369
396
|
|
|
370
|
-
|
|
397
|
+
The MCP server auto-detects the active profile from the project's `.anypoint-connect.json` (or falls back to `default`). No `env` block needed.
|
|
371
398
|
|
|
372
399
|
### MCP Tools
|
|
373
400
|
|
|
@@ -396,6 +423,8 @@ No `env` block needed — the MCP server reads from `~/.anypoint-connect/` autom
|
|
|
396
423
|
| `read_design_center_file` | Read file content with smart path resolution |
|
|
397
424
|
| `update_design_center_file` | ⚠️ Push updated file (lock/save/unlock) |
|
|
398
425
|
| `publish_to_exchange` | ⚠️ Publish Design Center project to Exchange |
|
|
426
|
+
| `get_project_profile` | Show active profile, resolution source, and available profiles |
|
|
427
|
+
| `set_project_profile` | Bind project directory to a named profile |
|
|
399
428
|
|
|
400
429
|
### MCP Prompts
|
|
401
430
|
|
|
@@ -12,11 +12,42 @@ export interface AppMetricsSummary {
|
|
|
12
12
|
appName: string;
|
|
13
13
|
requestCount: number;
|
|
14
14
|
avgResponseTime: number;
|
|
15
|
-
errorCount: number;
|
|
16
|
-
errorRate: number;
|
|
17
15
|
outboundCount: number;
|
|
18
16
|
outboundAvgResponseTime: number;
|
|
19
17
|
}
|
|
18
|
+
export interface PerformanceMetrics {
|
|
19
|
+
appName: string;
|
|
20
|
+
requestCount: number;
|
|
21
|
+
avgResponseTime: number;
|
|
22
|
+
maxResponseTime: number;
|
|
23
|
+
minResponseTime: number;
|
|
24
|
+
p50: number;
|
|
25
|
+
p95: number;
|
|
26
|
+
p99: number;
|
|
27
|
+
}
|
|
28
|
+
export interface TimeSeriesDataPoint {
|
|
29
|
+
timestamp: number;
|
|
30
|
+
appName: string;
|
|
31
|
+
requestCount: number;
|
|
32
|
+
avgResponseTime: number;
|
|
33
|
+
p95: number;
|
|
34
|
+
}
|
|
35
|
+
export interface WorkerMetrics {
|
|
36
|
+
appName: string;
|
|
37
|
+
workerId: string;
|
|
38
|
+
requestCount: number;
|
|
39
|
+
avgResponseTime: number;
|
|
40
|
+
maxResponseTime: number;
|
|
41
|
+
p95: number;
|
|
42
|
+
}
|
|
43
|
+
export interface CrossEnvMetrics {
|
|
44
|
+
appName: string;
|
|
45
|
+
envName: string;
|
|
46
|
+
requestCount: number;
|
|
47
|
+
avgResponseTime: number;
|
|
48
|
+
p95: number;
|
|
49
|
+
p99: number;
|
|
50
|
+
}
|
|
20
51
|
export interface MetricsExport {
|
|
21
52
|
environment: string;
|
|
22
53
|
period: {
|
|
@@ -27,10 +58,9 @@ export interface MetricsExport {
|
|
|
27
58
|
summary: {
|
|
28
59
|
totalRequests: number;
|
|
29
60
|
avgResponseTime: number;
|
|
30
|
-
totalErrors: number;
|
|
31
|
-
errorRate: number;
|
|
32
61
|
};
|
|
33
62
|
}
|
|
63
|
+
export type TimeSeriesGranularity = 'PT5M' | 'PT15M' | 'PT30M' | 'PT1H' | 'P1D';
|
|
34
64
|
export declare class MonitoringApi {
|
|
35
65
|
private readonly http;
|
|
36
66
|
private readonly cache;
|
|
@@ -49,7 +79,6 @@ export declare class MonitoringApi {
|
|
|
49
79
|
appName: string;
|
|
50
80
|
requestCount: number;
|
|
51
81
|
avgResponseTime: number;
|
|
52
|
-
errorCount: number;
|
|
53
82
|
}>>;
|
|
54
83
|
/**
|
|
55
84
|
* Get outbound metrics for a time range
|
|
@@ -63,6 +92,22 @@ export declare class MonitoringApi {
|
|
|
63
92
|
* Get combined app metrics for a time range
|
|
64
93
|
*/
|
|
65
94
|
getAppMetrics(orgId: string, envId: string, from: number, to: number, appName?: string): Promise<AppMetricsSummary[]>;
|
|
95
|
+
/**
|
|
96
|
+
* Get percentile-based performance metrics per app
|
|
97
|
+
*/
|
|
98
|
+
getPerformanceMetrics(orgId: string, envId: string, from: number, to: number, appName?: string): Promise<PerformanceMetrics[]>;
|
|
99
|
+
/**
|
|
100
|
+
* Get time-series metrics for trending analysis
|
|
101
|
+
*/
|
|
102
|
+
getTimeSeries(orgId: string, envId: string, from: number, to: number, granularity?: TimeSeriesGranularity, appName?: string): Promise<TimeSeriesDataPoint[]>;
|
|
103
|
+
/**
|
|
104
|
+
* Get per-worker/replica performance metrics
|
|
105
|
+
*/
|
|
106
|
+
getWorkerMetrics(orgId: string, envId: string, from: number, to: number, appName?: string): Promise<WorkerMetrics[]>;
|
|
107
|
+
/**
|
|
108
|
+
* Get cross-environment metrics comparison (no env filter)
|
|
109
|
+
*/
|
|
110
|
+
getCrossEnvMetrics(orgId: string, from: number, to: number): Promise<CrossEnvMetrics[]>;
|
|
66
111
|
/**
|
|
67
112
|
* Build a full metrics export for a period
|
|
68
113
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonitoringApi.d.ts","sourceRoot":"","sources":["../../src/api/MonitoringApi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,
|
|
1
|
+
{"version":3,"file":"MonitoringApi.d.ts","sourceRoot":"","sources":["../../src/api/MonitoringApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,13 +30,12 @@ export class MonitoringApi {
|
|
|
30
30
|
async getInboundMetrics(orgId, envId, from, to) {
|
|
31
31
|
const cacheKey = `mon:inbound:${orgId}:${envId}:${from}:${to}`;
|
|
32
32
|
return this.cache.getOrCompute(cacheKey, async () => {
|
|
33
|
-
const query = `SELECT COUNT(requests) AS "request_count", AVG(response_time) AS "avg_response_time",
|
|
33
|
+
const query = `SELECT COUNT(requests) AS "request_count", AVG(response_time) AS "avg_response_time", "app.name" FROM "mulesoft.app.inbound" WHERE "sub_org.id" = '${orgId}' AND "env.id" = '${envId}' AND timestamp BETWEEN ${from} AND ${to} GROUP BY "app.name"`;
|
|
34
34
|
const data = await this.search(query);
|
|
35
35
|
return data.map((row) => ({
|
|
36
36
|
appName: String(row['app.name'] || 'Unknown'),
|
|
37
37
|
requestCount: Number(row['request_count'] || 0),
|
|
38
38
|
avgResponseTime: Number(row['avg_response_time'] || 0),
|
|
39
|
-
errorCount: Number(row['error_count'] || 0),
|
|
40
39
|
}));
|
|
41
40
|
});
|
|
42
41
|
}
|
|
@@ -66,13 +65,10 @@ export class MonitoringApi {
|
|
|
66
65
|
const outboundByApp = new Map(outbound.map((o) => [o.appName, o]));
|
|
67
66
|
let results = inbound.map((row) => {
|
|
68
67
|
const ob = outboundByApp.get(row.appName);
|
|
69
|
-
const errorRate = row.requestCount > 0 ? (row.errorCount / row.requestCount) * 100 : 0;
|
|
70
68
|
return {
|
|
71
69
|
appName: row.appName,
|
|
72
70
|
requestCount: row.requestCount,
|
|
73
71
|
avgResponseTime: row.avgResponseTime,
|
|
74
|
-
errorCount: row.errorCount,
|
|
75
|
-
errorRate,
|
|
76
72
|
outboundCount: ob?.requestCount || 0,
|
|
77
73
|
outboundAvgResponseTime: ob?.avgResponseTime || 0,
|
|
78
74
|
};
|
|
@@ -84,8 +80,6 @@ export class MonitoringApi {
|
|
|
84
80
|
appName: ob.appName,
|
|
85
81
|
requestCount: 0,
|
|
86
82
|
avgResponseTime: 0,
|
|
87
|
-
errorCount: 0,
|
|
88
|
-
errorRate: 0,
|
|
89
83
|
outboundCount: ob.requestCount,
|
|
90
84
|
outboundAvgResponseTime: ob.avgResponseTime,
|
|
91
85
|
});
|
|
@@ -96,13 +90,97 @@ export class MonitoringApi {
|
|
|
96
90
|
}
|
|
97
91
|
return results;
|
|
98
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Get percentile-based performance metrics per app
|
|
95
|
+
*/
|
|
96
|
+
async getPerformanceMetrics(orgId, envId, from, to, appName) {
|
|
97
|
+
const cacheKey = `mon:perf:${orgId}:${envId}:${from}:${to}:${appName || ''}`;
|
|
98
|
+
return this.cache.getOrCompute(cacheKey, async () => {
|
|
99
|
+
let query = `SELECT COUNT(requests) AS "request_count", AVG(response_time) AS "avg_response_time", MAX(response_time) AS "max_response_time", MIN(response_time) AS "min_response_time", PERCENTILE(response_time, 0.5) AS "p50", PERCENTILE(response_time, 0.95) AS "p95", PERCENTILE(response_time, 0.99) AS "p99", "app.name" FROM "mulesoft.app.inbound" WHERE "sub_org.id" = '${orgId}' AND "env.id" = '${envId}' AND timestamp BETWEEN ${from} AND ${to}`;
|
|
100
|
+
if (appName) {
|
|
101
|
+
query += ` AND "app.name" = '${appName}'`;
|
|
102
|
+
}
|
|
103
|
+
query += ` GROUP BY "app.name"`;
|
|
104
|
+
const data = await this.search(query);
|
|
105
|
+
return data.map((row) => ({
|
|
106
|
+
appName: String(row['app.name'] || 'Unknown'),
|
|
107
|
+
requestCount: Number(row['request_count'] || 0),
|
|
108
|
+
avgResponseTime: Number(row['avg_response_time'] || 0),
|
|
109
|
+
maxResponseTime: Number(row['max_response_time'] || 0),
|
|
110
|
+
minResponseTime: Number(row['min_response_time'] || 0),
|
|
111
|
+
p50: Number(row['p50'] || 0),
|
|
112
|
+
p95: Number(row['p95'] || 0),
|
|
113
|
+
p99: Number(row['p99'] || 0),
|
|
114
|
+
}));
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Get time-series metrics for trending analysis
|
|
119
|
+
*/
|
|
120
|
+
async getTimeSeries(orgId, envId, from, to, granularity = 'PT1H', appName) {
|
|
121
|
+
const cacheKey = `mon:ts:${orgId}:${envId}:${from}:${to}:${granularity}:${appName || ''}`;
|
|
122
|
+
return this.cache.getOrCompute(cacheKey, async () => {
|
|
123
|
+
let query = `SELECT timestamp, COUNT(requests) AS "request_count", AVG(response_time) AS "avg_response_time", PERCENTILE(response_time, 0.95) AS "p95", "app.name" FROM "mulesoft.app.inbound" WHERE "sub_org.id" = '${orgId}' AND "env.id" = '${envId}' AND timestamp BETWEEN ${from} AND ${to}`;
|
|
124
|
+
if (appName) {
|
|
125
|
+
query += ` AND "app.name" = '${appName}'`;
|
|
126
|
+
}
|
|
127
|
+
query += ` GROUP BY "app.name" TIMESERIES ${granularity}`;
|
|
128
|
+
const data = await this.search(query, 1000);
|
|
129
|
+
return data.map((row) => ({
|
|
130
|
+
timestamp: Number(row['timestamp'] || 0),
|
|
131
|
+
appName: String(row['app.name'] || 'Unknown'),
|
|
132
|
+
requestCount: Number(row['request_count'] || 0),
|
|
133
|
+
avgResponseTime: Number(row['avg_response_time'] || 0),
|
|
134
|
+
p95: Number(row['p95'] || 0),
|
|
135
|
+
}));
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Get per-worker/replica performance metrics
|
|
140
|
+
*/
|
|
141
|
+
async getWorkerMetrics(orgId, envId, from, to, appName) {
|
|
142
|
+
const cacheKey = `mon:workers:${orgId}:${envId}:${from}:${to}:${appName || ''}`;
|
|
143
|
+
return this.cache.getOrCompute(cacheKey, async () => {
|
|
144
|
+
let query = `SELECT COUNT(requests) AS "request_count", AVG(response_time) AS "avg_response_time", MAX(response_time) AS "max_response_time", PERCENTILE(response_time, 0.95) AS "p95", "app.name", "worker.id" FROM "mulesoft.app.inbound" WHERE "sub_org.id" = '${orgId}' AND "env.id" = '${envId}' AND timestamp BETWEEN ${from} AND ${to}`;
|
|
145
|
+
if (appName) {
|
|
146
|
+
query += ` AND "app.name" = '${appName}'`;
|
|
147
|
+
}
|
|
148
|
+
query += ` GROUP BY "app.name", "worker.id"`;
|
|
149
|
+
const data = await this.search(query, 500);
|
|
150
|
+
return data.map((row) => ({
|
|
151
|
+
appName: String(row['app.name'] || 'Unknown'),
|
|
152
|
+
workerId: String(row['worker.id'] || 'Unknown'),
|
|
153
|
+
requestCount: Number(row['request_count'] || 0),
|
|
154
|
+
avgResponseTime: Number(row['avg_response_time'] || 0),
|
|
155
|
+
maxResponseTime: Number(row['max_response_time'] || 0),
|
|
156
|
+
p95: Number(row['p95'] || 0),
|
|
157
|
+
}));
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Get cross-environment metrics comparison (no env filter)
|
|
162
|
+
*/
|
|
163
|
+
async getCrossEnvMetrics(orgId, from, to) {
|
|
164
|
+
const cacheKey = `mon:crossenv:${orgId}:${from}:${to}`;
|
|
165
|
+
return this.cache.getOrCompute(cacheKey, async () => {
|
|
166
|
+
const query = `SELECT COUNT(requests) AS "request_count", AVG(response_time) AS "avg_response_time", PERCENTILE(response_time, 0.95) AS "p95", PERCENTILE(response_time, 0.99) AS "p99", "app.name", "env.name" FROM "mulesoft.app.inbound" WHERE "sub_org.id" = '${orgId}' AND timestamp BETWEEN ${from} AND ${to} GROUP BY "app.name", "env.name"`;
|
|
167
|
+
const data = await this.search(query, 500);
|
|
168
|
+
return data.map((row) => ({
|
|
169
|
+
appName: String(row['app.name'] || 'Unknown'),
|
|
170
|
+
envName: String(row['env.name'] || 'Unknown'),
|
|
171
|
+
requestCount: Number(row['request_count'] || 0),
|
|
172
|
+
avgResponseTime: Number(row['avg_response_time'] || 0),
|
|
173
|
+
p95: Number(row['p95'] || 0),
|
|
174
|
+
p99: Number(row['p99'] || 0),
|
|
175
|
+
}));
|
|
176
|
+
});
|
|
177
|
+
}
|
|
99
178
|
/**
|
|
100
179
|
* Build a full metrics export for a period
|
|
101
180
|
*/
|
|
102
181
|
async exportMetrics(orgId, envId, envName, from, to) {
|
|
103
182
|
const apps = await this.getAppMetrics(orgId, envId, from, to);
|
|
104
183
|
const totalRequests = apps.reduce((sum, m) => sum + m.requestCount, 0);
|
|
105
|
-
const totalErrors = apps.reduce((sum, m) => sum + m.errorCount, 0);
|
|
106
184
|
const avgResponseTime = apps.length > 0
|
|
107
185
|
? apps.reduce((sum, m) => sum + m.avgResponseTime * m.requestCount, 0) / (totalRequests || 1)
|
|
108
186
|
: 0;
|
|
@@ -116,8 +194,6 @@ export class MonitoringApi {
|
|
|
116
194
|
summary: {
|
|
117
195
|
totalRequests,
|
|
118
196
|
avgResponseTime,
|
|
119
|
-
totalErrors,
|
|
120
|
-
errorRate: totalRequests > 0 ? (totalErrors / totalRequests) * 100 : 0,
|
|
121
197
|
},
|
|
122
198
|
};
|
|
123
199
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonitoringApi.js","sourceRoot":"","sources":["../../src/api/MonitoringApi.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"MonitoringApi.js","sourceRoot":"","sources":["../../src/api/MonitoringApi.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/FileStore.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* File Token Store
|
|
3
|
-
* AES-256-GCM encrypted file storage at ~/.anypoint-connect/tokens.enc
|
|
3
|
+
* AES-256-GCM encrypted file storage at ~/.anypoint-connect/profiles/<profile>/tokens.enc
|
|
4
4
|
*/
|
|
5
5
|
import type { TokenStore, AnypointTokens } from './TokenStore.js';
|
|
6
6
|
export declare class FileStore implements TokenStore {
|
|
7
7
|
private readonly filePath;
|
|
8
8
|
private readonly encryptionKey;
|
|
9
|
-
constructor();
|
|
9
|
+
constructor(profile?: string);
|
|
10
10
|
save(tokens: AnypointTokens): Promise<void>;
|
|
11
11
|
load(): Promise<AnypointTokens | null>;
|
|
12
12
|
clear(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileStore.d.ts","sourceRoot":"","sources":["../../src/auth/FileStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAMlE,qBAAa,SAAU,YAAW,UAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS
|
|
1
|
+
{"version":3,"file":"FileStore.d.ts","sourceRoot":"","sources":["../../src/auth/FileStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAMlE,qBAAa,SAAU,YAAW,UAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAE3B,OAAO,CAAC,EAAE,MAAM;IAUtB,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3C,IAAI,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAsBtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAGnC"}
|
package/dist/auth/FileStore.js
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* File Token Store
|
|
3
|
-
* AES-256-GCM encrypted file storage at ~/.anypoint-connect/tokens.enc
|
|
3
|
+
* AES-256-GCM encrypted file storage at ~/.anypoint-connect/profiles/<profile>/tokens.enc
|
|
4
4
|
*/
|
|
5
5
|
import * as fs from 'fs';
|
|
6
6
|
import * as os from 'os';
|
|
7
7
|
import * as path from 'path';
|
|
8
8
|
import * as crypto from 'crypto';
|
|
9
|
-
import {
|
|
9
|
+
import { getProfileDir } from '../utils/config.js';
|
|
10
10
|
const ENCRYPTION_ALGORITHM = 'aes-256-gcm';
|
|
11
11
|
const TOKEN_FILE_NAME = 'tokens.enc';
|
|
12
12
|
export class FileStore {
|
|
13
13
|
filePath;
|
|
14
14
|
encryptionKey;
|
|
15
|
-
constructor() {
|
|
16
|
-
const
|
|
17
|
-
this.filePath = path.join(
|
|
18
|
-
// Derive key from machine-specific data
|
|
19
|
-
const
|
|
15
|
+
constructor(profile) {
|
|
16
|
+
const profileDir = getProfileDir(profile || 'default');
|
|
17
|
+
this.filePath = path.join(profileDir, TOKEN_FILE_NAME);
|
|
18
|
+
// Derive key from machine-specific data + profile name for isolation
|
|
19
|
+
const profileSuffix = profile || 'default';
|
|
20
|
+
const machineId = `${os.hostname()}-${os.userInfo().username}-anypoint-connect-${profileSuffix}`;
|
|
20
21
|
this.encryptionKey = crypto.scryptSync(machineId, 'anc-salt-v1', 32);
|
|
21
22
|
}
|
|
22
23
|
async save(tokens) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileStore.js","sourceRoot":"","sources":["../../src/auth/FileStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"FileStore.js","sourceRoot":"","sources":["../../src/auth/FileStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenManager.d.ts","sourceRoot":"","sources":["../../src/auth/TokenManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIlE,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"TokenManager.d.ts","sourceRoot":"","sources":["../../src/auth/TokenManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIlE,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,YAAY,CAA+B;gBAEvC,MAAM,EAAE,kBAAkB;IAWhC,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAmBtC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAwBvC,eAAe,IAAI,MAAM;IAKzB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC;IAmBvC,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAclC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAW3E,SAAS;IASvB,OAAO,CAAC,aAAa;CAGxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenManager.js","sourceRoot":"","sources":["../../src/auth/TokenManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"TokenManager.js","sourceRoot":"","sources":["../../src/auth/TokenManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAiB3C,MAAM,OAAO,YAAY;IACJ,MAAM,CAAqB;IAC3B,SAAS,CAAY;IAC9B,KAAK,CAAa;IAClB,YAAY,GAA0B,IAAI,CAAC;IAEnD,YAAY,MAA0B;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,SAAS;QACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC;QACzC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QAEzC,OAAO;YACH,aAAa,EAAE,CAAC,SAAS,IAAI,UAAU;YACvC,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YACrC,SAAS;YACT,UAAU;SACb,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAChB,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC9D,CAAC;QAED,mDAAmD;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAE/B,IAAI,MAAM,CAAC,SAAS,GAAG,GAAG,GAAG,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAC/E,CAAC;YAED,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAChE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED,eAAe;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QACd,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QAChD,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC;QAE1C,8BAA8B;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAE3E,sCAAsC;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAEvD,cAAc;QACd,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAE3B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEtC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACzE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAE9B,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,mBAA2B,IAAI;QACrE,MAAM,MAAM,GAAmB;YAC3B,WAAW;YACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,GAAG,IAAI;YAC/C,SAAS,EAAE,gBAAgB;YAC3B,SAAS,EAAE,QAAQ;SACtB,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,SAAS;QACnB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,YAAY,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEO,aAAa;QACjB,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;IAC/B,CAAC;CACJ"}
|
package/dist/cli.js
CHANGED
|
@@ -14,8 +14,14 @@ import { createExchangeCommand } from './commands/exchange.js';
|
|
|
14
14
|
import { createApiCommand } from './commands/api.js';
|
|
15
15
|
import { createDesignCenterCommand } from './commands/design-center.js';
|
|
16
16
|
import { VERSION } from './version.js';
|
|
17
|
+
import { migrateIfNeeded } from './utils/config.js';
|
|
18
|
+
// Auto-migrate legacy config to profiles/default/ if needed
|
|
19
|
+
migrateIfNeeded();
|
|
17
20
|
const program = new Command();
|
|
18
|
-
program
|
|
21
|
+
program
|
|
22
|
+
.name('anc')
|
|
23
|
+
.description('Anypoint Connect — CLI for Anypoint Platform\n\nSupports named profiles for multi-org workflows. Use --profile on auth/config commands\nor place .anypoint-connect.json in your project to auto-select a profile.')
|
|
24
|
+
.version(VERSION);
|
|
19
25
|
program.addCommand(createConfigCommand());
|
|
20
26
|
program.addCommand(createAuthCommand());
|
|
21
27
|
program.addCommand(createAppsCommand());
|