CPQ-BML VS Code Extension
A high-performance, feature-rich development environment for Oracle CPQ BigMachines Language (BML). Built for CPQ developers, architects, and AI pair-programmers.
⚡ Quick Start: Key Capabilities & Documentation
For complete architectural blueprints, Control Flow Graphs (CFGs), and code examples, explore our Knowledge Base:
| Feature Area |
Description |
Deep Dive Guide |
| 🔍 Cloud Property Inspector |
Dedicated React 19 + Pure CSS inspector panel for Actions, Attributes, Integrations, Transactions, and Parts. Fast search, cursor code injection, and read-only virtual JSON docs (cpq-cloud://) preventing dirty unsaved buffers. |
Cloud Inspector Guide |
| 🕸 Visual Dependency & Blast Radius Graph |
Full-topology interactive dependency visualizer powered by Cytoscape.js and React 19. Traces caller/callee trees and calculates blast radius impact across BML libraries, commerce actions, and rules. |
Advanced Architectures |
| 💡 IntelliSense & Autocomplete |
Workspace util library suggestions (util.pricing.), BMQL $var dynamic completion, parameter signatures, Call Hierarchy (Shift+Alt+H), and F12 Go to Definition. |
IntelliSense Guide |
| 🛠 BML Beautifier & Formatter |
Deterministic 4-stage formatting, brace styles (collapse/expand), minimal range diffing, on-type formatting, and .bmlbeautifyrc. |
Beautifier Guide |
| 🔍 Real-Time Security & Linter |
Real-time squiggles and Alt+Enter Quick-Fixes for BMQL injection risks, queries in loops, unbounded while loops, and type validation. |
Linter Guide |
| ⚡ BML Logic Scratchpad |
Offline interactive sandbox to test pure BML algorithms (math, string manipulation, dates, dict, json) and view print logs instantly. |
Scratchpad |
| 🤖 Model Context Protocol (MCP) |
Seamless multi-client MCP auto-registration for Cursor, Copilot, Google Antigravity, Claude Desktop, and ChatGPT. |
MCP Server Guide |
| ☁ Safe Cloud Sync & 3-Way Diff |
OAuth2/Basic Auth client, side-by-side diff review on pull conflicts, and live debug streaming to CPQ DevKit Terminal. |
REST API Guide |
| 🏗 BML & BMQL Scaffolding |
Explorer context scaffolding for library functions with docHeaders and -meta.json sidecars, plus parameterized BMQL queries. |
Scaffolding |
| 🚦 CI/CD Security Audit |
Workspace-wide BML security and quality audit via MCP audit_bml_code tool — detects BMQL injection risks, queries in loops, and failing quality scores. |
Linter Guide |
| ⚙ Interactive Settings Panel |
Webview UI dashboard for managing environments, credentials, formatter options, MCP traffic inspection, and diagnostics. |
Settings Panel Guide |
| 🔤 Smart Spell Checker |
Morphological inflection analyzer and domain dictionary designed for BML identifiers and comments. |
Spell Check Guide |
| 📄 XSLT & XML Subsystem |
Document Engine XSL template formatting, XPath 1.0 autocompletion, and BML transformxml() integration. |
XSLT Guide |
| 📊 Code Quality & Metrics |
McCabe Cyclomatic Complexity, Halstead Software Science, Maintainability Index (MI), and visual dashboard. |
Metrics Guide |
⌨ Key Shortcuts & Common Commands
| Action |
Shortcut (Windows/Linux) |
Shortcut (macOS) |
Command Palette (Ctrl/Cmd+Shift+P) |
| Format Document |
Shift+Alt+F |
Shift+Option+F |
Format Document |
| Call Hierarchy |
Shift+Alt+H |
Shift+Option+H |
Show Call Hierarchy |
| Go to Definition |
F12 |
F12 |
Go to Definition |
| Find All References |
Shift+F12 |
Shift+F12 |
Find All References |
| Quick Fix / Lightbulb |
Ctrl+. |
Cmd+. |
Quick Fix... |
| Architecture & Blast Radius Graph |
- |
- |
CPQ-BML: Open Architecture & Blast Radius Dependency Graph |
| Inspect Cloud Component |
- |
- |
CPQ-BML: Inspect Component / Action / Attribute |
| Open BML Scratchpad |
- |
- |
CPQ-BML: Open BML Logic Scratchpad (Offline Sandbox) |
| Run BML Script Locally |
- |
- |
CPQ-BML: Run BML Script Locally (Scratchpad) |
| Scaffold Library Function |
- |
- |
CPQ-BML: Scaffold New Library Function (with -meta.json sidecar) |
| Scaffold BMQL Query |
- |
- |
CPQ-BML: Scaffold Parameterized BMQL Query |
| Switch Environment |
- |
- |
CPQ-BML: Switch Active CPQ Environment |
| Export Team Profiles |
- |
- |
CPQ-BML: Export Team Profiles (cpq/profiles.json) |
| Open Settings Panel |
- |
- |
CPQ-BML: Open Settings |
| Show Code Metrics |
- |
- |
BML: Show Code Metrics |
| Pull Function from CPQ |
- |
- |
CPQ: Pull Function |
| Debug Function Remotely |
- |
- |
CPQ: Debug Function |
| Deploy Function |
- |
- |
CPQ: Deploy Current Util Function to CPQ |
⚙ Configuration Setup
Configure your CPQ environments in .env (workspace root) or through the Settings Panel (CPQ-BML: Open Settings):
# Oracle CPQ Cloud Environment Setup (.env)
CPQ_SITE_URL=https://sitename.oracle.com
CPQ_USERNAME=api_developer
CPQ_PASSWORD=YourPasswordHere!
CPQ_AUTH_METHOD=basic
CPQ_REST_VERSION=v17
CPQ_COMMERCE_PROCESS=oraclecpqo
CPQ_COMMERCE_DOCUMENT=transaction
To customize formatting options across your project, create a .bmlbeautifyrc file:
{
"indent_size": 4,
"brace_style": "collapse",
"space_before_conditional": true,
"preserve_newlines": true,
"max_preserve_newlines": 2,
"uppercase_reserved_words": true
}
💻 Local Development & Contributions
# Clone the repository
git clone https://github.com/vikram-vn/cpq-bml.git
cd cpq-bml
# Install dependencies
npm install
# Compile the extension bundle
npm run compile
Press F5 in VS Code to launch the Extension Development Host.
📐 Architectural & Code Quality Standards
- File Length Constraint: No JavaScript file in the codebase may exceed 500 lines of code. Enforced via
node scripts/check-rules.js.
- Module Aliasing: All internal requires in
app/ use @/ alias resolution via scripts/register-alias.js. Direct relative paths (./ or ../) are strictly prohibited.
- Webview Tech Stack: All webview user interfaces (Inspector, Architecture Graph, Settings Panel) are built exclusively in React 19 and Pure CSS, compiled via esbuild. No raw CSS strings in JS.
📄 License & Disclaimer
- License: Licensed under the MIT License.
- Disclaimer: This extension is an independent open-source tool and is not affiliated with or endorsed by Oracle Corporation.
| |