@sfdxy/anypoint-connect 0.10.0 → 0.11.1
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/LICENSE +21 -0
- package/README.md +100 -618
- package/package.json +7 -6
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Avinava
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="assets/logo.svg" alt="Anypoint Connect Banner" width="600" />
|
|
2
|
+
<img src="docs/assets/logo.svg" alt="Anypoint Connect Banner" width="600" />
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
6
|
<a href="https://www.npmjs.com/package/@sfdxy/anypoint-connect"><img src="https://img.shields.io/npm/v/@sfdxy/anypoint-connect?style=flat-square&color=34d399" alt="npm version" /></a>
|
|
7
7
|
<a href="https://github.com/Avinava/anypoint-connect/actions"><img src="https://img.shields.io/github/actions/workflow/status/Avinava/anypoint-connect/ci.yml?style=flat-square&color=38bdf8" alt="CI" /></a>
|
|
8
|
-
<a href="https://github.com/Avinava/anypoint-connect/blob/
|
|
8
|
+
<a href="https://github.com/Avinava/anypoint-connect/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/@sfdxy/anypoint-connect?style=flat-square&color=818cf8" alt="License" /></a>
|
|
9
9
|
<a href="https://www.npmjs.com/package/@sfdxy/anypoint-connect"><img src="https://img.shields.io/npm/dm/@sfdxy/anypoint-connect?style=flat-square&color=fbbf24" alt="Downloads" /></a>
|
|
10
10
|
</p>
|
|
11
11
|
|
|
@@ -14,13 +14,16 @@
|
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
16
|
<p align="center">
|
|
17
|
-
<a href="
|
|
18
|
-
<a href="#
|
|
19
|
-
<a href="#
|
|
20
|
-
<a href="#mcp-server">MCP
|
|
21
|
-
<a href="#
|
|
17
|
+
<a href="https://avinava.github.io/anypoint-connect/">Documentation</a> •
|
|
18
|
+
<a href="#quick-start">Quick Start</a> •
|
|
19
|
+
<a href="#what-it-does">Capabilities</a> •
|
|
20
|
+
<a href="#mcp-server">MCP</a> •
|
|
21
|
+
<a href="#safety">Safety</a> •
|
|
22
|
+
<a href="#ecosystem">Ecosystem</a>
|
|
22
23
|
</p>
|
|
23
24
|
|
|
25
|
+
---
|
|
26
|
+
|
|
24
27
|
## Quick Start
|
|
25
28
|
|
|
26
29
|
```bash
|
|
@@ -37,616 +40,103 @@ anc auth login
|
|
|
37
40
|
anc auth status
|
|
38
41
|
```
|
|
39
42
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
## Setup
|
|
45
|
-
|
|
46
|
-
### 1. Install
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
# Global install from npm (recommended)
|
|
50
|
-
npm install -g @sfdxy/anypoint-connect
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
<details>
|
|
54
|
-
<summary>Install from source</summary>
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
git clone https://github.com/Avinava/anypoint-connect.git
|
|
58
|
-
cd anypoint-connect
|
|
59
|
-
npm install && npm run build
|
|
60
|
-
npm link # makes "anc" available globally
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
</details>
|
|
64
|
-
|
|
65
|
-
Verify the install:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
anc --version
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### 2. Create a Connected App in Anypoint Platform
|
|
72
|
-
|
|
73
|
-
You need a **Connected App** in Anypoint to authenticate. Here's how to create one:
|
|
74
|
-
|
|
75
|
-
1. Log in to [Anypoint Platform](https://anypoint.mulesoft.com)
|
|
76
|
-
2. Go to **Access Management → Connected Apps**
|
|
77
|
-
3. Click **Create app**, choose **App that acts on a user's behalf**
|
|
78
|
-
4. Set the **Redirect URI** to:
|
|
79
|
-
```
|
|
80
|
-
http://localhost:3000/api/callback
|
|
81
|
-
```
|
|
82
|
-
5. Grant these scopes:
|
|
83
|
-
|
|
84
|
-
| Scope Category | Permissions |
|
|
85
|
-
|---------------|-------------|
|
|
86
|
-
| **General** | View Organization, View Environment |
|
|
87
|
-
| **Runtime Manager** | Read Applications, Create/Modify Applications |
|
|
88
|
-
| **CloudHub** | Read Applications, Manage Applications |
|
|
89
|
-
| **Monitoring** | Read Metrics |
|
|
90
|
-
| **Design Center** | Read/Write Designer |
|
|
91
|
-
| **Exchange** | Exchange Contributor |
|
|
92
|
-
| **Audit Logs** | View Audit Logs *(optional)* |
|
|
93
|
-
|
|
94
|
-
6. Copy the **Client ID** and **Client Secret** — you'll need them in the next step.
|
|
95
|
-
|
|
96
|
-
### 3. Configure Credentials
|
|
97
|
-
|
|
98
|
-
Run the interactive setup and paste your Client ID and Secret when prompted:
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
anc config init
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
Anypoint Connect Setup — Profile: default
|
|
106
|
-
Credentials saved to: ~/.anypoint-connect/profiles/default/config.json
|
|
107
|
-
Tokens saved to: ~/.anypoint-connect/profiles/default/tokens.enc (AES-256-GCM)
|
|
108
|
-
|
|
109
|
-
Client ID: <paste your Client ID>
|
|
110
|
-
Client Secret: <paste your Client Secret>
|
|
111
|
-
Callback URL: (http://localhost:3000/api/callback)
|
|
112
|
-
Base URL: (https://anypoint.mulesoft.com)
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
Verify your config:
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
anc config show
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
### 4. Authenticate
|
|
122
|
-
|
|
123
|
-
This opens your browser for OAuth login and stores encrypted tokens locally:
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
anc auth login
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
Check your auth status anytime:
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
anc auth status
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### 5. You're Ready!
|
|
43
|
+
No Connected App yet? The four-step setup, including the exact scopes to grant, is in
|
|
44
|
+
[Getting started](https://avinava.github.io/anypoint-connect/getting-started/). Requires Node.js
|
|
45
|
+
`>=20.0.0`.
|
|
136
46
|
|
|
137
47
|
```bash
|
|
138
|
-
# List apps in an environment
|
|
139
48
|
anc apps list --env Sandbox
|
|
140
|
-
|
|
141
|
-
# Tail logs
|
|
142
49
|
anc logs tail my-api --env Sandbox
|
|
143
|
-
|
|
144
|
-
# Check deployment metrics
|
|
145
50
|
anc monitor view --env Production
|
|
146
51
|
```
|
|
147
52
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
## Multi-Org / Multi-Profile Setup
|
|
151
|
-
|
|
152
|
-
If you work across multiple Anypoint organizations, use **named profiles**:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
# Create separate profiles
|
|
156
|
-
anc config init --profile org-a
|
|
157
|
-
anc config init --profile org-b
|
|
158
|
-
|
|
159
|
-
# Authenticate each
|
|
160
|
-
anc auth login --profile org-a
|
|
161
|
-
anc auth login --profile org-b
|
|
162
|
-
|
|
163
|
-
# Bind a project directory to a profile
|
|
164
|
-
cd ~/projects/org-a-integrations
|
|
165
|
-
anc config use org-a
|
|
166
|
-
# Creates .anypoint-connect.json → { "profile": "org-a" }
|
|
167
|
-
# All commands in this folder now auto-use "org-a"
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
### Managing Config
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
anc config show # Show config (secrets masked)
|
|
174
|
-
anc config show --profile org-a # Show specific profile
|
|
175
|
-
anc config set defaultEnv Production # Update a value
|
|
176
|
-
anc config profiles # List all profiles
|
|
177
|
-
|
|
178
|
-
# Override per-session
|
|
179
|
-
ANYPOINT_PROFILE=org-b anc apps list --env Sandbox
|
|
180
|
-
```
|
|
53
|
+
Working across several organizations? Use named profiles —
|
|
54
|
+
[Profiles and multiple orgs](https://avinava.github.io/anypoint-connect/profiles/).
|
|
181
55
|
|
|
182
|
-
|
|
56
|
+
## What it does
|
|
183
57
|
|
|
184
|
-
|
|
58
|
+
| Area | Examples |
|
|
59
|
+
| --- | --- |
|
|
60
|
+
| Applications | Status, deployment spec, resources, settings, deploy, redeploy, rollback, restart, scale, stop, start, delete |
|
|
61
|
+
| Logs | Tail, download, error clustering with context windows, recurring patterns, statistical health |
|
|
62
|
+
| Monitoring | Request metrics, percentiles, time series, per-replica, JVM memory and GC, freeform AMQL |
|
|
63
|
+
| Exchange | Search, asset detail, spec download, JAR publication, environment comparison |
|
|
64
|
+
| API Manager | Instances, policies, SLA tiers, alerts |
|
|
65
|
+
| Design Center | Projects, files, read, update, publish |
|
|
66
|
+
| Platform | Environments, entitlements, audit log |
|
|
67
|
+
| Anypoint MQ | Queues, depth and throughput, dead-letter browsing, test publishing |
|
|
68
|
+
| Object Store v2 | Stores, keys, values |
|
|
185
69
|
|
|
186
|
-
|
|
70
|
+
Every command is documented in the
|
|
71
|
+
[CLI reference](https://avinava.github.io/anypoint-connect/cli-reference/).
|
|
187
72
|
|
|
188
|
-
|
|
189
|
-
|----------|--------|---------|
|
|
190
|
-
| **1** | `--profile` CLI flag | `anc apps list --profile org-a --env Sandbox` |
|
|
191
|
-
| **2** | `ANYPOINT_PROFILE` env var | `export ANYPOINT_PROFILE=org-a` |
|
|
192
|
-
| **3** | `.anypoint-connect.json` in project | `{ "profile": "org-a" }` (walks up from cwd) |
|
|
193
|
-
| **4** | Fallback | `"default"` |
|
|
73
|
+
## MCP server
|
|
194
74
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
| Priority | Source | When to use |
|
|
198
|
-
|----------|--------|-------------|
|
|
199
|
-
| **1 (highest)** | Environment variables | CI/CD pipelines, Docker, per-session overrides |
|
|
200
|
-
| **2** | Profile config.json | Day-to-day development — persists per profile |
|
|
201
|
-
| **3 (lowest)** | `.env` in cwd | Legacy/project-local fallback |
|
|
202
|
-
|
|
203
|
-
Storage layout:
|
|
204
|
-
|
|
205
|
-
```
|
|
206
|
-
~/.anypoint-connect/
|
|
207
|
-
└── profiles/
|
|
208
|
-
├── default/
|
|
209
|
-
│ ├── config.json OAuth credentials (chmod 600)
|
|
210
|
-
│ └── tokens.enc AES-256-GCM encrypted tokens
|
|
211
|
-
└── org-a/
|
|
212
|
-
├── config.json
|
|
213
|
-
└── tokens.enc
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
---
|
|
217
|
-
|
|
218
|
-
## Architecture
|
|
219
|
-
|
|
220
|
-
```mermaid
|
|
221
|
-
graph LR
|
|
222
|
-
CLI["CLI — anc"] --> AC["AnypointClient"]
|
|
223
|
-
MCP["MCP Server"] --> AC
|
|
224
|
-
LIB["Library"] --> AC
|
|
225
|
-
|
|
226
|
-
AC --> HTTP["HttpClient"]
|
|
227
|
-
HTTP --> AP["Anypoint Platform API"]
|
|
228
|
-
|
|
229
|
-
AC --> CH2["CloudHub2"]
|
|
230
|
-
AC --> MON["Monitoring"]
|
|
231
|
-
AC --> LOGS["Logs"]
|
|
232
|
-
AC --> EX["Exchange"]
|
|
233
|
-
AC --> APIM["API Manager"]
|
|
234
|
-
AC --> DC["Design Center"]
|
|
235
|
-
AC --> AUDIT["Audit Log"]
|
|
236
|
-
AC --> MQ["Anypoint MQ"]
|
|
237
|
-
AC --> OS["Object Store"]
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
<details>
|
|
241
|
-
<summary>Source tree</summary>
|
|
242
|
-
|
|
243
|
-
```
|
|
244
|
-
src/
|
|
245
|
-
├── auth/ OAuth2 + encrypted token storage
|
|
246
|
-
│ ├── OAuthFlow.ts Browser callback at /api/callback
|
|
247
|
-
│ ├── TokenManager.ts Auto-refresh with 5-min buffer
|
|
248
|
-
│ ├── FileStore.ts AES-256-GCM encrypted tokens
|
|
249
|
-
│ └── TokenStore.ts Storage interface
|
|
250
|
-
├── client/ HTTP + facade
|
|
251
|
-
│ ├── AnypointClient.ts Main facade (single entry point)
|
|
252
|
-
│ ├── HttpClient.ts Axios with Bearer injection
|
|
253
|
-
│ ├── RateLimiter.ts Token bucket throttling
|
|
254
|
-
│ └── Cache.ts TTL in-memory cache with observability
|
|
255
|
-
├── api/ Domain API clients
|
|
256
|
-
│ ├── CloudHub2Api.ts Deploy, redeploy, restart, scale, poll
|
|
257
|
-
│ ├── LogsApi.ts Tail, download (CH2 native)
|
|
258
|
-
│ ├── MonitoringApi.ts AMQL queries (request + JVM metrics), JSON/CSV export
|
|
259
|
-
│ ├── ExchangeApi.ts Search assets, download specs
|
|
260
|
-
│ ├── ApiManagerApi.ts API instances, policies, SLA tiers
|
|
261
|
-
│ ├── DesignCenterApi.ts Projects, files, lock/save, publish
|
|
262
|
-
│ ├── AuditLogApi.ts Platform audit events (who changed what)
|
|
263
|
-
│ ├── AnypointMQApi.ts Queue/exchange management, message browsing
|
|
264
|
-
│ ├── ObjectStoreApi.ts Object Store v2 — stores, keys, values
|
|
265
|
-
│ └── AccessManagementApi.ts User, environments, org entitlements
|
|
266
|
-
├── analysis/ Log analysis pipeline
|
|
267
|
-
│ ├── LogAnalyzer.ts Pipeline orchestrator
|
|
268
|
-
│ ├── parser.ts Multi-line joiner + JSON Logger parser
|
|
269
|
-
│ ├── error-context.ts Error context windows (before/after)
|
|
270
|
-
│ ├── error-grouper.ts Clusters similar errors
|
|
271
|
-
│ ├── pattern-detector.ts Recurring message templates
|
|
272
|
-
│ ├── stats.ts Level distribution, error spikes
|
|
273
|
-
│ ├── types.ts Shared type definitions
|
|
274
|
-
│ └── utils.ts Noise detection, templatization
|
|
275
|
-
├── commands/ CLI commands
|
|
276
|
-
│ ├── config.ts init | show | set | path | profiles | use
|
|
277
|
-
│ ├── auth.ts login | logout | status (--profile)
|
|
278
|
-
│ ├── apps.ts list | status | restart | scale
|
|
279
|
-
│ ├── deploy.ts deploy with prod safety net
|
|
280
|
-
│ ├── logs.ts tail | download
|
|
281
|
-
│ ├── monitor.ts view | perf | trend | workers | memory | memory-trend | compare | download
|
|
282
|
-
│ ├── exchange.ts search | info | download-spec
|
|
283
|
-
│ ├── api.ts list | policies | sla-tiers
|
|
284
|
-
│ └── design-center.ts list | files | pull | push | publish
|
|
285
|
-
├── safety/ Production guards
|
|
286
|
-
│ └── guards.ts Env detection, JAR validation, confirmation
|
|
287
|
-
├── utils/
|
|
288
|
-
│ └── config.ts Profile-based config resolution
|
|
289
|
-
├── cli.ts CLI entry point (bin: anc)
|
|
290
|
-
├── mcp.ts MCP server entry point
|
|
291
|
-
└── index.ts Library barrel export
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
</details>
|
|
295
|
-
|
|
296
|
-
---
|
|
297
|
-
|
|
298
|
-
## CLI Reference
|
|
299
|
-
|
|
300
|
-
### Applications
|
|
75
|
+
56 tools for AI agents. Set up credentials first — the server has nothing to offer an unauthenticated
|
|
76
|
+
session.
|
|
301
77
|
|
|
302
78
|
```bash
|
|
303
|
-
anc
|
|
304
|
-
anc
|
|
305
|
-
anc apps restart my-api --env Production # prod confirmation prompt
|
|
306
|
-
anc apps scale my-api --env Sandbox --replicas 2
|
|
307
|
-
anc apps scale my-api --env Production --replicas 3 --force # skip confirmation
|
|
308
|
-
|
|
309
|
-
# Delete is a bound two-step operation
|
|
310
|
-
anc apps delete my-api --env Sandbox # dry run; prints deployment ID
|
|
311
|
-
anc apps delete my-api --env Sandbox --confirm <DEPLOYMENT_ID>
|
|
312
|
-
|
|
313
|
-
# Production also requires an explicit environment acknowledgement
|
|
314
|
-
anc apps delete my-api --env Production --confirm <DEPLOYMENT_ID> --allow-production
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
### Deploy
|
|
318
|
-
|
|
319
|
-
```bash
|
|
320
|
-
# Standard deploy
|
|
321
|
-
anc deploy target/my-api-1.2.0-mule-application.jar \
|
|
322
|
-
--app my-api --env Sandbox --runtime 4.8.0
|
|
323
|
-
|
|
324
|
-
# Production deploy — triggers safety confirmation
|
|
325
|
-
anc deploy target/my-api.jar --app my-api --env Production
|
|
326
|
-
# ⚠️ PRODUCTION DEPLOYMENT
|
|
327
|
-
# App: my-api
|
|
328
|
-
# Environment: Production
|
|
329
|
-
# Current: v1.1.0 (APPLIED, 2 replicas)
|
|
330
|
-
# New Version: v1.2.0
|
|
331
|
-
# Type 'deploy to production' to confirm: _
|
|
332
|
-
|
|
333
|
-
# CI/CD (skip confirmation)
|
|
334
|
-
anc deploy app.jar --app my-api --env Production --force
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
### Logs
|
|
338
|
-
|
|
339
|
-
```bash
|
|
340
|
-
# Stream logs in real-time
|
|
341
|
-
anc logs tail my-api --env Sandbox
|
|
342
|
-
anc logs tail my-api --env Sandbox --level ERROR --search "NullPointerException"
|
|
343
|
-
|
|
344
|
-
# Download logs
|
|
345
|
-
anc logs download my-api --env Sandbox --from 24h
|
|
346
|
-
anc logs download my-api --env Production --from 7d --level ERROR
|
|
347
|
-
anc logs download my-api --env Production \
|
|
348
|
-
--from "2026-02-01T00:00:00Z" --to "2026-02-14T00:00:00Z" --output prod-logs.log
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
### Monitoring
|
|
352
|
-
|
|
353
|
-
```bash
|
|
354
|
-
# View metrics table (default: last 24h)
|
|
355
|
-
anc monitor view --env Sandbox
|
|
356
|
-
anc monitor view --env Production --app my-api --from 7d
|
|
357
|
-
|
|
358
|
-
# Performance percentiles
|
|
359
|
-
anc monitor perf --env Production
|
|
360
|
-
|
|
361
|
-
# JVM memory usage
|
|
362
|
-
anc monitor memory --env Production
|
|
363
|
-
anc monitor memory --env Production --app my-api
|
|
364
|
-
|
|
365
|
-
# Memory trend over time
|
|
366
|
-
anc monitor memory-trend --env Production --app my-api --granularity 1h
|
|
367
|
-
|
|
368
|
-
# Worker/replica metrics
|
|
369
|
-
anc monitor workers --env Production --app my-api
|
|
370
|
-
|
|
371
|
-
# Cross-environment comparison
|
|
372
|
-
anc monitor compare
|
|
373
|
-
|
|
374
|
-
# Export
|
|
375
|
-
anc monitor download --env Production --from 30d --format json
|
|
376
|
-
anc monitor download --env Sandbox --from 7d --format csv --output metrics.csv
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
### Exchange
|
|
380
|
-
|
|
381
|
-
```bash
|
|
382
|
-
anc exchange search "order" --type rest-api --limit 10
|
|
383
|
-
anc exchange info my-api-spec
|
|
384
|
-
anc exchange info org-id/my-api-spec --version 1.2.0
|
|
385
|
-
anc exchange download-spec my-api-spec -o spec.json
|
|
386
|
-
```
|
|
387
|
-
|
|
388
|
-
### API Manager
|
|
389
|
-
|
|
390
|
-
```bash
|
|
391
|
-
anc api list --env Production
|
|
392
|
-
anc api policies "order-api" --env Production
|
|
393
|
-
anc api policies 18888853 --env Production
|
|
394
|
-
anc api sla-tiers "order-api" --env Production
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
### Design Center
|
|
398
|
-
|
|
399
|
-
```bash
|
|
400
|
-
# List projects & files
|
|
401
|
-
anc dc list
|
|
402
|
-
anc dc files my-api-spec --branch develop
|
|
403
|
-
|
|
404
|
-
# Pull a spec file (auto-decodes JSON-encoded content)
|
|
405
|
-
anc dc pull my-api-spec api.raml -o local-spec.raml
|
|
406
|
-
|
|
407
|
-
# Push (smart path resolution: auto-matches local filename to remote)
|
|
408
|
-
anc dc push my-api-spec local-spec.raml --message "Add new endpoint"
|
|
409
|
-
|
|
410
|
-
# Push with explicit remote path
|
|
411
|
-
anc dc push my-api-spec local-spec.raml --path api.raml
|
|
412
|
-
|
|
413
|
-
# Publish to Exchange
|
|
414
|
-
anc dc publish my-api-spec --version 1.2.0 --classifier raml
|
|
415
|
-
anc dc publish my-api-spec --version 2.0.0 --classifier oas3 --api-version v2
|
|
416
|
-
```
|
|
417
|
-
|
|
418
|
-
### Authentication
|
|
419
|
-
|
|
420
|
-
```bash
|
|
421
|
-
anc auth login # Default profile
|
|
422
|
-
anc auth login --profile client-a # Specific profile
|
|
423
|
-
anc auth status # Check current auth
|
|
424
|
-
anc auth logout # Clear stored tokens
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
---
|
|
428
|
-
|
|
429
|
-
## MCP Server
|
|
430
|
-
|
|
431
|
-
The MCP server exposes all Anypoint operations as tools for AI assistants (Claude, Cursor, etc.).
|
|
432
|
-
|
|
433
|
-
### Prerequisites
|
|
434
|
-
|
|
435
|
-
```bash
|
|
436
|
-
anc config init # one-time setup (or --profile <name> for multi-org)
|
|
437
|
-
anc auth login # get tokens
|
|
79
|
+
anc config init
|
|
80
|
+
anc auth login
|
|
438
81
|
```
|
|
439
82
|
|
|
440
|
-
|
|
83
|
+
Every host runs the same command; only the file and the wrapping key differ.
|
|
441
84
|
|
|
442
|
-
|
|
85
|
+
| Host | Where it goes | Wrapping key |
|
|
86
|
+
| --- | --- | --- |
|
|
87
|
+
| Claude Code | `.mcp.json`, or `claude mcp add` | `mcpServers` |
|
|
88
|
+
| Claude Desktop | `claude_desktop_config.json` | `mcpServers` |
|
|
89
|
+
| Codex | `.codex/config.toml`, or `codex mcp add` | `[mcp_servers.anypoint-connect]` |
|
|
90
|
+
| VS Code, Copilot Chat | `.vscode/mcp.json` | `servers`, plus `"type": "stdio"` |
|
|
91
|
+
| Copilot CLI, Gemini, other MCP clients | `.mcp.json` | `mcpServers` |
|
|
443
92
|
|
|
444
93
|
```json
|
|
445
94
|
{
|
|
446
95
|
"mcpServers": {
|
|
447
96
|
"anypoint-connect": {
|
|
448
97
|
"command": "npx",
|
|
449
|
-
"args": ["-y", "@sfdxy/anypoint-connect", "mcp"]
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
```
|
|
454
|
-
|
|
455
|
-
Or if installed globally, use the CLI directly:
|
|
456
|
-
|
|
457
|
-
```json
|
|
458
|
-
{
|
|
459
|
-
"mcpServers": {
|
|
460
|
-
"anypoint-connect": {
|
|
461
|
-
"command": "anc",
|
|
462
|
-
"args": ["mcp"]
|
|
98
|
+
"args": ["-y", "@sfdxy/anypoint-connect@0.11.0", "mcp"]
|
|
463
99
|
}
|
|
464
100
|
}
|
|
465
101
|
}
|
|
466
102
|
```
|
|
467
103
|
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
> **Deploy safety.** The mutating deploy tools (`deploy_app`, `update_app_artifact`, `rollback_app`, `publish_app_jar`, `deploy_jar`) are **dry-run by default**: called without `confirm: true` they return a preview of exactly what would change and modify nothing. Re-call with `confirm: true` to apply. Redeploys of an existing app change **only** the artifact reference — runtime, target/space, replicas, and settings are always preserved.
|
|
473
|
-
|
|
474
|
-
| Tool | Description |
|
|
475
|
-
|------|-------------|
|
|
476
|
-
| **Identity & Org** | |
|
|
477
|
-
| `whoami` | Get authenticated user & org info |
|
|
478
|
-
| `list_environments` | List all environments in the org |
|
|
479
|
-
| `get_entitlements` | Get org license: vCores, MQ, Object Store, API quotas, subscription |
|
|
480
|
-
| **Applications** | |
|
|
481
|
-
| `list_apps` | List deployed apps with status, version, vCores, and replica count |
|
|
482
|
-
| `get_app_status` | Detailed deployment status: resources (CPU/memory), autoscaling, JVM, replicas |
|
|
483
|
-
| `get_deployment_spec` | Full deployment spec (ref, runtime, target kind, vCores, replica states) — look before you leap |
|
|
484
|
-
| `get_app_resources` | Consolidated resource allocation view for all apps in an environment |
|
|
485
|
-
| `get_app_settings` | Read application properties and secure property keys |
|
|
486
|
-
| `deploy_app` | ⚠️ Create a new deployment, or safely redeploy an existing one (artifact ref only). For an existing app, prefer `update_app_artifact` |
|
|
487
|
-
| `update_app_artifact` | ⚠️ Safe production redeploy — change only the artifact version, preserving runtime/target/replicas/settings |
|
|
488
|
-
| `rollback_app` | ⚠️ Roll an app back to the newest distinct historical artifact, or a requested version |
|
|
489
|
-
| `update_app_settings` | ⚠️ Merge application properties while preserving protected values and deployment infrastructure |
|
|
490
|
-
| `restart_app` | ⚠️ Rolling restart of an application |
|
|
491
|
-
| `scale_app` | ⚠️ Scale application replicas (1–8) |
|
|
492
|
-
| `stop_app` | ⚠️ Stop an application without deleting the deployment |
|
|
493
|
-
| `start_app` | Start a previously stopped application |
|
|
494
|
-
| `delete_app` | ⚠️ Permanently delete a deployment using dry-run plus deployment-ID-bound confirmation |
|
|
495
|
-
| **Logs & Analysis** | |
|
|
496
|
-
| `get_logs` | Fetch recent log entries with optional keyword search |
|
|
497
|
-
| `download_logs` | Download logs for a time range |
|
|
498
|
-
| `analyze_errors` | Clustered error groups with before/after context windows |
|
|
499
|
-
| `get_log_patterns` | Top recurring message templates with counts |
|
|
500
|
-
| `get_log_stats` | Statistical health summary: error rate, spikes, noise % |
|
|
501
|
-
| **Monitoring (AMQL)** | |
|
|
502
|
-
| `get_metrics` | Inbound/outbound request count and response time |
|
|
503
|
-
| `get_performance_metrics` | Percentile-based performance metrics (p50/p95/p99) |
|
|
504
|
-
| `get_metrics_timeseries` | Time-series metrics for trending analysis |
|
|
505
|
-
| `get_worker_metrics` | Per-worker/replica performance metrics |
|
|
506
|
-
| `get_memory_metrics` | JVM memory usage: heap, GC stats, thread counts |
|
|
507
|
-
| `get_memory_timeseries` | JVM memory time-series for leak detection and trending |
|
|
508
|
-
| `compare_env_performance` | Compare performance across all environments |
|
|
509
|
-
| `raw_amql_query` | Execute freeform AMQL queries for ad-hoc analysis |
|
|
510
|
-
| **Exchange** | |
|
|
511
|
-
| `search_exchange` | Search assets in Exchange |
|
|
512
|
-
| `get_exchange_asset` | Get detailed asset info: versions, dependencies, instances, files |
|
|
513
|
-
| `download_api_spec` | Download RAML/OAS spec from Exchange |
|
|
514
|
-
| `publish_app_jar` | ⚠️ Upload a locally built application JAR to Exchange as a deployable asset |
|
|
515
|
-
| `deploy_jar` | ⚠️ Publish a JAR and deploy it in one call (create new app, or safe artifact update) |
|
|
516
|
-
| **API Manager** | |
|
|
517
|
-
| `list_api_instances` | List managed API instances with governance info |
|
|
518
|
-
| `get_api_policies` | Get policies and SLA tiers for an API |
|
|
519
|
-
| `get_api_alerts` | View configured alerts for an API instance |
|
|
520
|
-
| **Design Center** | |
|
|
521
|
-
| `list_design_center_projects` | List all API spec projects |
|
|
522
|
-
| `get_design_center_files` | List files in a Design Center project |
|
|
523
|
-
| `read_design_center_file` | Read file content with smart path resolution |
|
|
524
|
-
| `update_design_center_file` | ⚠️ Push updated file (lock/save/unlock) |
|
|
525
|
-
| `publish_to_exchange` | ⚠️ Publish Design Center project to Exchange |
|
|
526
|
-
| **Audit Log** | |
|
|
527
|
-
| `get_audit_log` | Query platform changes: who did what, when |
|
|
528
|
-
| **Anypoint MQ** | |
|
|
529
|
-
| `list_queues` | List MQ destinations (queues/exchanges) in a region |
|
|
530
|
-
| `get_queue_stats` | Queue depth, in-flight, and throughput stats |
|
|
531
|
-
| `get_dlq_messages` | Browse dead-letter queue messages without consuming |
|
|
532
|
-
| `publish_mq_message` | Publish a message to an MQ queue (test, replay, seed data) |
|
|
533
|
-
| **Object Store v2** | |
|
|
534
|
-
| `list_stores` | List Object Stores in an environment |
|
|
535
|
-
| `get_store_keys` | List keys in an Object Store with pagination |
|
|
536
|
-
| `get_store_value` | Retrieve and auto-format a value by key |
|
|
537
|
-
| `put_store_value` | ⚠️ Write or update a value by key |
|
|
538
|
-
| `delete_store_value` | ⚠️ Delete a key and its value |
|
|
539
|
-
| **Profile** | |
|
|
540
|
-
| `get_project_profile` | Show active profile, resolution source, and available profiles |
|
|
541
|
-
| `set_project_profile` | Bind project directory to a named profile |
|
|
542
|
-
|
|
543
|
-
### MCP Prompts
|
|
544
|
-
|
|
545
|
-
| Prompt | Description |
|
|
546
|
-
|--------|-------------|
|
|
547
|
-
| `pre-deploy-check` | Readiness check before promoting an app between environments |
|
|
548
|
-
| `troubleshoot-app` | Systematic diagnosis: replica health, error patterns, metrics anomalies |
|
|
549
|
-
| `api-governance-audit` | Review policies, SLA tiers, and security gaps across all APIs |
|
|
550
|
-
| `environment-overview` | Full health report: app status, error rates, performance rankings |
|
|
551
|
-
| `improve-api-spec` | Guided pull→analyze→improve→push workflow for API spec quality |
|
|
552
|
-
|
|
553
|
-
### MCP Resource
|
|
554
|
-
|
|
555
|
-
| Resource | URI |
|
|
556
|
-
|----------|-----|
|
|
557
|
-
| Environments | `anypoint://environments` |
|
|
558
|
-
| Cache Diagnostics | `anypoint://diagnostics/cache` |
|
|
559
|
-
|
|
560
|
-
### Example Interactions
|
|
561
|
-
|
|
562
|
-
- *"What apps are running in Sandbox?"*
|
|
563
|
-
- *"Show me the resource allocation across all Production apps"*
|
|
564
|
-
- *"Show me the last 50 error logs for my-api in Production"*
|
|
565
|
-
- *"Analyze the errors in my-api in Production — what's failing and why?"*
|
|
566
|
-
- *"What are the top log patterns for billing-api in Development?"*
|
|
567
|
-
- *"Give me a health summary of external-sapi in Production"*
|
|
568
|
-
- *"Compare Development and Production environments"*
|
|
569
|
-
- *"What policies are applied to the Order API?"*
|
|
570
|
-
- *"Show me the RAML spec for the order-api project"*
|
|
571
|
-
- *"Improve the API descriptions for order-api"*
|
|
572
|
-
- *"Scale order-service to 3 replicas in Production"*
|
|
573
|
-
- *"Show me the JVM memory usage for all apps in Production"*
|
|
574
|
-
- *"Is my-api leaking memory? Show me the heap trend over the past week"*
|
|
575
|
-
- *"What changed in the platform in the last 24 hours?"*
|
|
576
|
-
- *"Check our org entitlements — do we have MQ provisioned?"*
|
|
577
|
-
- *"Show me the app settings for billing-api in Production"*
|
|
578
|
-
- *"Run this AMQL query: SELECT COUNT(requests) FROM mulesoft.app.inbound..."*
|
|
579
|
-
- *"What's in the dead-letter queue for order-events?"*
|
|
580
|
-
- *"Search the logs for correlation ID abc-123"*
|
|
581
|
-
- *"Deploy order-api v1.3.0 to Sandbox with 2 replicas"*
|
|
582
|
-
- *"Publish target/example-api-1.0.0-mule-application.jar and deploy it to Sandbox"*
|
|
583
|
-
- *"Bump example-api in Production to v1.4.12 (artifact only)"*
|
|
584
|
-
- *"Roll example-api back to its newest distinct historical artifact"*
|
|
585
|
-
- *"Redeploy billing-service to Production with the latest version from Exchange"*
|
|
586
|
-
- *"Update the db.url property for order-api in Sandbox"*
|
|
587
|
-
- *"Stop the test-processor app in Development"*
|
|
588
|
-
- *"Start the test-processor app back up"*
|
|
589
|
-
- *"What versions of order-management-api are in Exchange?"*
|
|
590
|
-
- *"Are there any alerts configured for the Order API?"*
|
|
591
|
-
- *"Write a watermark value to the default Object Store in Sandbox"*
|
|
592
|
-
- *"Delete the stale cache key from Object Store"*
|
|
593
|
-
- *"Publish a test message to the order-events queue"*
|
|
104
|
+
Installed globally, use `"command": "anc", "args": ["mcp"]` and skip the download. No `env` block is
|
|
105
|
+
needed: the active profile resolves from the project's `.anypoint-connect.json`, falling back to
|
|
106
|
+
`default`. Credentials never pass through the protocol — the server holds the session, the agent calls
|
|
107
|
+
tools.
|
|
594
108
|
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
109
|
+
Per-host examples, prompts, and resources are in the
|
|
110
|
+
[MCP guide](https://avinava.github.io/anypoint-connect/mcp/); the full tool table is in the
|
|
111
|
+
[catalog](https://avinava.github.io/anypoint-connect/tools/).
|
|
598
112
|
|
|
599
|
-
|
|
600
|
-
Exchange, then deploy it — or in a single `deploy_jar` call. Every mutating step is **dry-run by
|
|
601
|
-
default**; add `confirm: true` to apply.
|
|
113
|
+
## Safety
|
|
602
114
|
|
|
603
|
-
**
|
|
115
|
+
Every mutating operation is **dry-run by default**: without `confirm: true` it returns a preview and
|
|
116
|
+
changes nothing. Redeploying an existing app changes **only** the artifact reference, so runtime, target,
|
|
117
|
+
replicas, and settings are preserved and a version bump cannot silently downgrade a runtime or halve
|
|
118
|
+
capacity. `update_app_settings` PATCHes only application properties, merging protected values rather than
|
|
119
|
+
blanking them. Deletion requires a deployment-ID-bound confirmation — plus a separate acknowledgement in
|
|
120
|
+
production — so it fails closed if the deployment changed since you looked.
|
|
604
121
|
|
|
605
122
|
```jsonc
|
|
606
|
-
//
|
|
123
|
+
// preview
|
|
607
124
|
deploy_jar({ "jarPath": "target/example-api-1.0.0-mule-application.jar", "appName": "example-api", "environment": "Sandbox" })
|
|
608
125
|
// apply
|
|
609
126
|
deploy_jar({ "jarPath": "target/example-api-1.0.0-mule-application.jar", "appName": "example-api", "environment": "Sandbox", "confirm": true })
|
|
610
127
|
```
|
|
611
128
|
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
```jsonc
|
|
615
|
-
// 1. publish the built jar to Exchange
|
|
616
|
-
publish_app_jar({ "jarPath": "target/example-api-1.0.0-mule-application.jar", "confirm": true })
|
|
617
|
-
|
|
618
|
-
// 2. see exactly what is running before you touch it
|
|
619
|
-
get_deployment_spec({ "appName": "example-api", "environment": "Production" })
|
|
620
|
-
|
|
621
|
-
// 3. safe production bump — changes only the artifact ref, waits for it to settle
|
|
622
|
-
update_app_artifact({ "appName": "example-api", "environment": "Production", "version": "1.0.0", "wait": true, "confirm": true })
|
|
623
|
-
|
|
624
|
-
// 4. something wrong? roll back to the newest distinct historical artifact
|
|
625
|
-
rollback_app({ "appName": "example-api", "environment": "Production", "confirm": true })
|
|
626
|
-
```
|
|
627
|
-
|
|
628
|
-
For an **existing** app, `deploy_jar`, `deploy_app`, and `update_app_artifact` all change **only** the
|
|
629
|
-
artifact reference — the runtime, target/space, replicas, and settings are preserved, so a redeploy
|
|
630
|
-
can never silently downgrade the runtime or relocate the app. Infrastructure changes on an existing
|
|
631
|
-
app are rejected; create a new deployment or use the dedicated settings/scale tools instead.
|
|
632
|
-
|
|
633
|
-
`update_app_settings` follows the same narrow-update rule: it PATCHes only the application-properties
|
|
634
|
-
configuration. Existing plain properties and protected-property placeholders are merged into the
|
|
635
|
-
request, while artifact coordinates, desired state, runtime, target, replicas, and other
|
|
636
|
-
configuration services are left untouched.
|
|
129
|
+
Full model in [Safety](https://avinava.github.io/anypoint-connect/safety/); the build, publish, deploy,
|
|
130
|
+
and rollback path in [Deploying a JAR](https://avinava.github.io/anypoint-connect/deployment-tools/).
|
|
637
131
|
|
|
638
|
-
|
|
639
|
-
`confirm` to receive the current deployment ID and a complete preview. Re-call with `confirm: true`
|
|
640
|
-
and that exact `expectedDeploymentId`; production also requires `confirmProduction: true`. If the
|
|
641
|
-
application was recreated between calls, the changed deployment ID makes the operation fail closed.
|
|
642
|
-
Deletion removes only the deployment and preserves its Exchange artifact and unrelated Anypoint
|
|
643
|
-
resources. Use `stop_app` instead when the deployment configuration must remain available.
|
|
132
|
+
## When something fails
|
|
644
133
|
|
|
645
|
-
|
|
134
|
+
Access problems come in six distinct states — not configured, not authenticated, environment not visible,
|
|
135
|
+
not permitted, transient, and ready — and they have different fixes. The error text names which one you
|
|
136
|
+
are in. See [Access readiness](https://avinava.github.io/anypoint-connect/readiness/) and
|
|
137
|
+
[Troubleshooting](https://avinava.github.io/anypoint-connect/troubleshooting/).
|
|
646
138
|
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
## Programmatic Usage
|
|
139
|
+
## Library
|
|
650
140
|
|
|
651
141
|
```typescript
|
|
652
142
|
import { AnypointClient } from '@sfdxy/anypoint-connect';
|
|
@@ -656,60 +146,52 @@ const client = new AnypointClient({
|
|
|
656
146
|
clientSecret: process.env.ANYPOINT_CLIENT_SECRET!,
|
|
657
147
|
});
|
|
658
148
|
|
|
659
|
-
// Get user info
|
|
660
149
|
const me = await client.whoami();
|
|
661
|
-
|
|
150
|
+
const envs = await client.accessManagement.getEnvironments(me.organization.id);
|
|
151
|
+
```
|
|
662
152
|
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
153
|
+
The API clients give you token refresh, rate limiting, and caching, but not the confirmation gates — those
|
|
154
|
+
live in the CLI and MCP layers. More in the
|
|
155
|
+
[library guide](https://avinava.github.io/anypoint-connect/library/).
|
|
666
156
|
|
|
667
|
-
|
|
668
|
-
const sandbox = envs.find(e => e.name === 'Sandbox')!;
|
|
669
|
-
const apps = await client.cloudHub2.getDeployments(orgId, sandbox.id);
|
|
157
|
+
## Documentation
|
|
670
158
|
|
|
671
|
-
|
|
672
|
-
for await (const entries of client.logs.tailLogs(orgId, sandbox.id, 'my-api')) {
|
|
673
|
-
entries.forEach(e => console.log(`[${e.priority}] ${e.message}`));
|
|
674
|
-
}
|
|
159
|
+
Published at **<https://avinava.github.io/anypoint-connect/>** with search.
|
|
675
160
|
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
)
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
});
|
|
690
|
-
```
|
|
161
|
+
| Page | Contents |
|
|
162
|
+
| --- | --- |
|
|
163
|
+
| [Getting started](docs/getting-started.md) | Install, Connected App, scopes, credentials, authenticate |
|
|
164
|
+
| [Profiles](docs/profiles.md) | Multiple organizations, resolution order, storage layout |
|
|
165
|
+
| [Access readiness](docs/readiness.md) | The six access states and their fixes |
|
|
166
|
+
| [CLI reference](docs/cli-reference.md) | Every command group |
|
|
167
|
+
| [MCP server](docs/mcp.md) | Host setup, prompts, resources |
|
|
168
|
+
| [Tool catalog](docs/tools.md) | All 56 tools, and how to choose between overlapping ones |
|
|
169
|
+
| [Safety model](docs/safety.md) | Dry runs, narrow updates, bound deletion |
|
|
170
|
+
| [Deploying a JAR](docs/deployment-tools.md) | Build, publish, deploy, roll back |
|
|
171
|
+
| [Library API](docs/library.md) | Programmatic use |
|
|
172
|
+
| [Troubleshooting](docs/troubleshooting.md) | Symptoms and causes |
|
|
173
|
+
| [Architecture](docs/architecture.md) | Layers and design notes |
|
|
691
174
|
|
|
692
|
-
|
|
175
|
+
## Ecosystem
|
|
693
176
|
|
|
694
|
-
|
|
177
|
+
The canonical package matrix and supported combination live in the
|
|
178
|
+
[`mule-skills` ecosystem hub](https://avinava.github.io/mule-skills/ecosystem/). This is the only tool
|
|
179
|
+
in the set that needs Anypoint credentials. A complete release crosses two boundaries: `mule-build`
|
|
180
|
+
produces and versions the artifact, while this package puts it in an environment. More detail is on
|
|
181
|
+
the local [ecosystem page](docs/ecosystem.md).
|
|
695
182
|
|
|
696
|
-
|
|
183
|
+
## Development
|
|
697
184
|
|
|
698
185
|
```bash
|
|
699
|
-
|
|
700
|
-
npm
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
git push --follow-tags
|
|
704
|
-
|
|
705
|
-
# 3. GitHub Actions will:
|
|
706
|
-
# - Run CI (build, test, lint)
|
|
707
|
-
# - Publish to npm as @sfdxy/anypoint-connect
|
|
708
|
-
# - Create a GitHub Release with auto-generated notes
|
|
186
|
+
npm install
|
|
187
|
+
npm run build
|
|
188
|
+
npm test
|
|
189
|
+
npm run lint
|
|
709
190
|
```
|
|
710
191
|
|
|
711
|
-
|
|
192
|
+
Releases are tag-triggered: bump the version, push the tag with `git push --follow-tags`, and GitHub
|
|
193
|
+
Actions runs CI, publishes to npm with provenance, and creates the release.
|
|
712
194
|
|
|
713
195
|
## License
|
|
714
196
|
|
|
715
|
-
MIT
|
|
197
|
+
[MIT](LICENSE)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sfdxy/anypoint-connect",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "CLI + MCP toolkit for Anypoint Platform — deploy, tail logs, pull metrics, manage API specs, with production safety nets",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -17,10 +17,11 @@
|
|
|
17
17
|
"test:coverage": "vitest run --coverage",
|
|
18
18
|
"lint": "tsc --noEmit",
|
|
19
19
|
"format": "prettier --write .",
|
|
20
|
-
"format:check": "prettier --check ."
|
|
20
|
+
"format:check": "prettier --check .",
|
|
21
|
+
"audit:prod": "npm audit --omit=dev --audit-level=moderate"
|
|
21
22
|
},
|
|
22
23
|
"engines": {
|
|
23
|
-
"node": ">=
|
|
24
|
+
"node": ">=20.0.0"
|
|
24
25
|
},
|
|
25
26
|
"dependencies": {
|
|
26
27
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
@@ -34,10 +35,10 @@
|
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"@types/node": "^20.10.0",
|
|
37
|
-
"@vitest/coverage-v8": "^1.
|
|
38
|
+
"@vitest/coverage-v8": "^4.1.11",
|
|
38
39
|
"prettier": "^3.8.1",
|
|
39
40
|
"typescript": "^5.3.3",
|
|
40
|
-
"vitest": "^1.
|
|
41
|
+
"vitest": "^4.1.11"
|
|
41
42
|
},
|
|
42
43
|
"author": "Avinava",
|
|
43
44
|
"license": "MIT",
|
|
@@ -45,7 +46,7 @@
|
|
|
45
46
|
"type": "git",
|
|
46
47
|
"url": "git+https://github.com/Avinava/anypoint-connect.git"
|
|
47
48
|
},
|
|
48
|
-
"homepage": "https://github.
|
|
49
|
+
"homepage": "https://avinava.github.io/anypoint-connect/",
|
|
49
50
|
"bugs": {
|
|
50
51
|
"url": "https://github.com/Avinava/anypoint-connect/issues"
|
|
51
52
|
},
|