SuiteCloud Smart Upload
A VS Code extension that adds a safety layer to NetSuite SuiteCloud development. Never deploy blindly again - see exactly what changed before you upload to NetSuite.

Why SuiteCloud Smart Upload?
Working with NetSuite's SuiteCloud CLI is powerful, but deploying files directly can be risky. This extension adds a critical safety layer:
- Visual Diff Before Deploy: See exactly what will change before uploading
- Multi-Environment Comparison: Compare your code across DEV, UAT, and PROD
- Prevent Accidents: No more overwriting production files by mistake
- Bulk Operations: Upload multiple files with progress tracking
Installation
From VS Code Marketplace
- Open VS Code
- Press
Ctrl+Shift+X to open Extensions
- Search for "SuiteCloud Smart Upload"
- Click Install
From VSIX File
- Download the
.vsix file from Releases
- Open VS Code
- Press
Ctrl+Shift+X to open Extensions
- Click the
... menu at the top
- Select "Install from VSIX..."
- Choose the downloaded
.vsix file
Prerequisites
Before using this extension, you need:
NetSuite SuiteCloud CLI installed globally
npm install -g @oracle/suitecloud-cli
A SuiteCloud Project initialized with:
suitecloud project:create -i
NetSuite Authentication configured:
suitecloud account:setup
Features
Safe Upload (Compare & Deploy)
The core feature that prevents deployment mistakes.
How it works:
- Right-click any file in your FileCabinet folder
- Select "Safe Upload (Compare & Deploy)"
- View a side-by-side diff showing:
- 🔴 Red lines: What will be removed
- 🟢 Green lines: What will be added
- ⚪ White lines: Unchanged code
- Click Deploy to upload, or Cancel to abort
Keyboard Shortcut: Ctrl+Shift+Z
Perfect for:
- Reviewing your changes before deployment
- Catching accidental modifications
- Understanding what's different between local and remote
Compare With Different Environment
Compare your local file against any NetSuite environment without deploying.
How it works:
- Right-click a file
- Select "Compare With Different Environment"
- Choose an environment (DEV, UAT, PROD, etc.)
- View the differences in a clean diff panel
Keyboard Shortcut: Ctrl+Shift+E
Perfect for:
- Checking if a fix exists in production
- Verifying environment-specific configurations
- Understanding code differences across environments
3-Way Environment Compare
Compare your local file against TWO environments simultaneously.
How it works:
- Right-click a file
- Select "3-Way Environment Compare"
- Choose two environments to compare
- See three columns:
- Environment 1 (e.g., DEV)
- Your Local File
- Environment 2 (e.g., PROD)
Keyboard Shortcut: Ctrl+Shift+3
Perfect for:
- Identifying what's in DEV but not in PROD
- Spotting environment-specific customizations
- Planning deployment strategies
Upload Multiple Files
Quickly upload multiple files without comparison.
How it works:
- Right-click anywhere in the FileCabinet folder
- Select "Upload Multiple Files"
- Multi-select files from the picker (use
Space to select)
- Press
Enter to upload all selected files
- Watch progress tracking for each file
Keyboard Shortcut: Ctrl+Shift+X
Perfect for:
- Deploying multiple related files
- Initial project setup
- Bulk updates where comparison isn't needed
Usage
Right-click any .js, .ts, .xml, .html, or .css file in your FileCabinet folder:
myScript.js
- Cut
- Copy
- Paste
- ...
- ─────────────────────────
- Safe Upload (Compare & Deploy)
- Compare With Different Environment
- 3-Way Environment Compare
- Upload Multiple Files
Keyboard Shortcuts
| Command |
Shortcut |
Description |
| Safe Upload (Compare & Deploy) |
Ctrl+Shift+Z |
Compare and deploy current file |
| Compare With Different Environment |
Ctrl+Shift+E |
Compare without deploying |
| 3-Way Environment Compare |
Ctrl+Shift+3 |
Compare across two environments |
| Upload Multiple Files |
Ctrl+Shift+X |
Bulk upload files |
How It Works
Behind the scenes, the extension:
- Creates temporary shadow projects to download remote files
- Normalizes line endings (CRLF vs LF) for accurate comparison
- Uses the diff library for professional-grade diff algorithms
- Cleans up automatically - no leftover temporary files
All operations use the official NetSuite SuiteCloud CLI under the hood, so you're always using NetSuite's approved deployment methods.
Configuration
No configuration required!
The extension automatically uses your existing:
- SuiteCloud project configuration (
project.json)
- NetSuite authentication (
account:setup)
- Default AuthID settings
Troubleshooting
Extension commands not appearing?
Make sure you're in a SuiteCloud project. The extension activates when it finds:
manifest.xml
suitecloud.config.js
"SuiteCloud CLI not found"?
Install the NetSuite CLI globally:
npm install -g @oracle/suitecloud-cli
Diff showing all lines as changed?
This was a bug in earlier versions related to line endings. Update to version 1.0.0 or later.
Shadow projects not cleaning up?
The extension automatically removes temporary shadow projects. If you see leftover folders starting with ssu-shadow-, you can safely delete them manually.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature)
- Commit your changes (
git commit -m 'Add amazing feature')
- Push to the branch (
git push origin feature/amazing-feature)
- Open a Pull Request
Roadmap
Potential future features:
- Dependency tracking (warn about missing dependencies)
- Automated testing integration
- Deployment history tracking
- Git integration for commit messages
- Custom diff color themes
Release Notes
1.0.0 (Initial Release)
- Safe upload with visual diff comparison
- Multi-environment file comparison
- 3-way diff viewer for two environments
- Bulk file upload with progress tracking
- Automatic line ending normalization
- Smart shadow project cleanup
License
MIT License - see LICENSE file for details
Support
Made for the NetSuite developer community