Mashery / Boomi CAM API Wizard
A VSCode extension with a guided, step-by-step wizard that generates all the JSON
configuration files needed to deploy a Mashery / Boomi CAM API through the CI/CD
pipeline (scripts/deploy-apis.js).
Screenshots
Mashery Connection — authenticate to validate request paths and set the member email.

| Step |
|
| 1 — API |
 |
| 2 — Endpoints |
 |
| 3 — Package |
 |
| 4 — Plans |
 |
| 5 — Applications |
 |
| 6 — Keys |
 |
| 7 — Environments |
 |
| 8 — Generate |
 |
Screenshots are bundled in the extension and render in VS Code's Extensions view.
Generated Files
| File |
Description |
api.json |
Core API service (name, version, QPS limit, cache, RFC 3986, robots policy, OAuth 2.0 security profile) |
endpoints.json |
Endpoint routing, key/method detection, backend auth, CORS, endpoint cache, processor, more settings |
package.json |
Mashery package (near-quota threshold, quota notifications) |
plans.json |
Rate-limit plans (QPS ceiling, rate limits, key provisioning rules) |
application.json |
Developer application(s) linked to plans |
keys.json |
Package key status (and an optional custom API key) |
Output Structure
A folder named after your API is created with a base/ + env/ layout. The deploy
pipeline deep-merges base/ with the active env/<NODE_ENV>.json:
<api-name>/
base/ api.json endpoints.json package.json plans.json application.json keys.json (shared defaults)
env/ dev.json qa.json prod.json (per-env overrides)
Each env/<env>.json holds only the fields that differ from base (api, package,
plans keyed by name, endpoints keyed by name). Empty environments are skipped.
How to Use
- Open VSCode, press
Ctrl+Shift+P, and run Mashery: Open API Configuration Wizard
(also available from the Explorer right-click menu).
- (Optional but recommended) Open the 🔌 Mashery Connection panel at the top and connect
(see below). This enables request-path validation and sets the member email.
- Fill in each step and press Next.
- On the final step, choose an output folder. The wizard shows the exact destination
(
…/<api-name>/base + /env) and whether it will update an existing folder or create a new one.
- Click Generate JSON Files to write
base/ (6 files) and env/ (dev/qa/prod overrides).
Mashery Connection (optional)
The 🔌 Mashery Connection panel authenticates with the Mashery V3 API using an OAuth
password grant (POST /v3/token). It is used for two things only:
- Request-path validation — fetches existing endpoint paths so the wizard can flag a
Request Path that's already configured in Mashery.
- Member email — the Step 5 Member field is locked to the account you connect with.
You also get the access token (copyable) to call the APIs yourself.
Connecting sends the credentials you enter to api.mashery.com to obtain the token.
The Mashery API is typically only reachable over your corporate VPN.
Fields: API Base URL · Scope (Area UUID) · Client ID · Client Secret · Username · Password.
Wizard Steps
- API — Service name, version, description, QPS limit, cache TTL, RFC 3986 encode,
robots policy, and a collapsible OAuth 2.0 Security block.
- Endpoints — Domains & traffic routing, key & method detection, plus collapsible
Security (backend auth), Performance (endpoint cache), CORS,
Processor / Call Transformation, and More Settings sections.
The Request Path Alias is validated on blur — it must start with
/, must be unique
within the config, and (when connected) must not already exist in Mashery.
- Package — Package name, description, near-quota threshold, notify-admin emails, and a
collapsible Quota Notifications block.
- Plans — Rate limits, QPS ceiling, key lifespan, max keys, provisioning rules.
- Applications — Member email (auto-filled and locked from your connection), application
name, plan assignment, and optional description / URI / OAuth redirect URI / tags.
- Keys — Initial key status (active / waiting / disabled). A custom API key is written to
keys.json only if you enter one.
- Environments — Per-environment (dev / qa / prod) overrides that are deep-merged onto the
base config at deploy time: API QPS/cache, package near-quota, per-plan numeric limits, and
per-endpoint Security / Performance / CORS / Processor / More-Settings. Blank fields inherit base.
- Generate — Preview all files (base + env), see the resolved output path with an
update-vs-new note, and write to disk.
Editing an Existing Config
Click 📂 Load Existing API Config (or run Mashery: Edit Existing API Configuration) and
pick an API folder. It supports both the base/ + env/ layout and a flat folder of JSON files,
loads everything into the wizard, and lets you edit and regenerate. Endpoints loaded this way are
treated as pre-existing, so their Request Paths are not flagged as duplicates while unchanged.
If you keep the same Service Name and output folder, Generate overwrites the same folder in
place; changing the Service Name writes to a new sibling folder.
Development
cd E:\mashery-api-wizard
npm install
npm run compile # tsc
npm test # compile + run test/generate.test.js
npm run package # build the .vsix (vsce package)
# Press F5 in VSCode to launch the Extension Development Host.
# After recompiling, reload the dev host (Ctrl+R) so the webview picks up changes.
| |