NEXUS - Synapse Notebook Explorer for VS CodeNEXUS (Notebook EXecution Unified System for Synapse) - A VS Code extension for editing, executing, and managing Azure Synapse Spark notebooks with interactive DataFrame visualization and advanced productivity features. Quick Start
1. Configure WorkspaceRun
2. AuthenticateClick the sign-in icon (🔑) or run
3. Browse & Execute
4. Publish
Features🔐 Authentication
📓 Notebook Management
▶️ Execution
📊 Interactive DataFramesEnhanced
Features:
🪄 Magic Commands
|
| Command | Description | Shortcut |
|---|---|---|
NEXUS: Configure Workspace |
Set workspace connection | ⚙️ |
NEXUS: Authenticate with Azure |
Sign in to Azure | 🔑 |
NEXUS: Refresh Notebooks |
Reload notebook list | 🔄 |
NEXUS: Search Notebooks |
Filter by name | 🔍 |
NEXUS: Create Local Notebook |
Create new notebook | 📄 |
NEXUS: Open Notebook |
View notebook | 📖 |
NEXUS: Configure Notebook Settings |
Set Spark config | ⚙️ |
NEXUS: Run Notebook |
Execute all cells | ▶️ |
NEXUS: Stop Spark Session |
Terminate session | ⏹️ |
NEXUS: Show Publish Diff |
Compare & publish | 📊 |
NEXUS: Delete Notebook |
Remove notebook | 🗑️ |
Session Management
stateDiagram-v2
[*] --> NotStarted
NotStarted --> Creating: First cell execution
Creating --> Starting: Session created
Starting --> Idle: Session ready
Idle --> Busy: Execute code
Busy --> Idle: Execution complete
Idle --> Shutting_Down: Stop session / Change config
Shutting_Down --> [*]
Busy --> Error: Execution failed
Error --> Idle: Retry
Starting --> Error: Startup failed
Lifecycle:
- First Execution: Creates new session (30-60 seconds)
- Subsequent Executions: Reuses existing session (<5 seconds)
- Isolation: Each notebook has independent session
- Configuration Changes: Auto-restarts session with new settings
- Manual Stop: Click ⏹️ button in toolbar
- Auto-Recovery: Failed sessions automatically removed
Active Sessions View:
- Real-time list of running Spark sessions
- Shows notebook name, pool, state, executors
- Auto-refreshes every 30 seconds
- Right-click to stop individual sessions
Requirements
- VS Code: Version 1.80 or later
- Node.js: Version 18 or later (for development)
- Azure Synapse: Workspace with configured Spark pools
- Azure CLI: For Azure CLI authentication (
az login) - Permissions:
- Synapse Contributor or Synapse Artifact Publisher (for notebook CRUD)
- Synapse Compute Operator (for execution)
Troubleshooting
Authentication
- Azure CLI not found: Install Azure CLI from https://aka.ms/install-azure-cli
- Token expired: Run
az loginor re-authenticate via command palette - Interactive auth fails: Check Azure AD redirect URI configuration
Notebooks
- Empty notebook list: Verify workspace name, then click Refresh (🔄)
- Cannot create notebook: Ensure Synapse Contributor permissions
- Notebook won't open: Check notebook exists and you have Read access
Execution
- "Session does not exist": Wait 2 seconds after session creation, or stop and restart session
- Slow first execution: Session startup takes 30-60 seconds (normal)
- Config changes ignored: Stop session manually before changing settings
- %run fails: Verify notebook exists in workspace and depth ≤ 10
Performance
- Slow notebook loading: Large workspaces (1000+ notebooks) take time to paginate
- Search not working: Click Refresh first, then search
- High memory usage: Stop unused sessions via Active Sessions view
Debug Logging
Open Debug Console (View → Debug Console) to see detailed logs:
- Session creation and verification
- Livy API requests/responses
- Cache operations
- Error details with HTTP status codes
Known Issues
- Session startup: 30-60 seconds on first cell execution (Spark limitation)
- Large notebooks: 100+ cells may have slower diff loading
- Interactive auth: Requires manual redirect URI configuration in Azure AD
- Executor metrics: Not yet available in Active Sessions view
Release Notes
Version 0.0.1 (October 2025)
Initial release with comprehensive Synapse notebook management:
Authentication:
- ✅ Azure CLI + Interactive OAuth
- ✅ Automatic token refresh
Notebook Management:
- ✅ CRUD operations with pagination (1000+ notebooks)
- ✅ Search and filter
- ✅ Folder support
- ✅ Local caching
Execution:
- ✅ Persistent Spark sessions with reuse
- ✅ Per-notebook configuration
- ✅ Active Sessions view with auto-refresh
- ✅ Language support (Python, Scala, SQL, Markdown)
Advanced Features:
- ✅ Interactive DataFrame
display()with sort/filter/pagination - ✅ Magic commands (
%run,%%sql,%%pyspark,%%markdown) - ✅ Nested
%runexecution (depth ≤ 10) - ✅ Publish/diff/revert workflow
Feedback
Report issues or request features in the GitHub repository. Contributions welcome!
See DEVELOPMENT.md for developer documentation.
Enjoy managing your Synapse notebooks! 🚀