Manage multiple NetSuite client accounts, deploy SuiteScript files to the NetSuite File Cabinet, track every change in Git, and restore any previous version — all from a single VS Code sidebar panel.
🔐 Privacy & Data Security
This extension does not collect, store, or transmit any of your data.
All connections are made directly from your machine to your own NetSuite account and your own GitHub repository. No data ever passes through PragvAI or any third-party server. Your OAuth credentials are stored exclusively in VS Code's built-in encrypted SecretStorage on your local device — never written to plain files, never sent anywhere outside your own accounts.
Direct connection. Your data stays yours.
Features
🔌 Multi-Client Management
Configure unlimited NetSuite accounts — each with its own credentials, Git repository, File Cabinet path, and deploy settings. Switch between Production and Sandbox environments. Export all clients (including OAuth credentials) to a JSON backup and restore them on any machine.
⬆ Deploy to NetSuite
Detects all uncommitted local file changes and shows a confirmation modal with a per-file diff preview before any upload. Uploads changed files to the NetSuite File Cabinet via SOAP SuiteTalk 2024.1. Auto-creates any missing subfolders. Supports .js .ts .xml .html .css .json .txt .ss.
⬇ Fetch from NetSuite
Recursively walks the entire NetSuite folder tree, downloads all files, and syncs to your local repo. A file picker modal lets you select specific files to fetch instead of pulling everything. Unchanged files are skipped.
📝 Automatic Version History
Every deploy appends a structured version block to .js and .ts files — version number, timestamp, author name, and your deploy comment. Never overwrites prior entries.
// ── Deploy History ──────────────────────────────────────────────────
// v1 | 2025-05-17 10:00:00 | PragvAI | Initial deploy
// v2 | 2025-05-17 11:30:00 | John | Fixed priority logic
// ─────────────────────────────────────────────────────────────────────
🕐 Version Browser & Restore
Browse the full Git commit history for any file. Preview any past version inline. Restore a previous version with one click — it overwrites the local file, uploads to NetSuite, and commits to Git.
🐙 Git Integration
All deploys and fetches automatically commit and push to your GitHub branch. A separate Push to Git action commits without touching NetSuite. Pull-with-rebase runs before every push.
💾 Auto-Deploy on Save
Enable per client. Watches for file saves with a 3-second debounce and automatically deploys changed files to NetSuite and commits to Git — even when the sidebar is hidden.
📊 Deploy History Log
Every deploy, fetch, and git push is recorded with timestamp, file count, result status, and comment. Filter by client. Clear history per client or all at once.
📦 Export & Import Clients
Export all client configurations including OAuth credentials to a portable JSON file. Import restores both config and credentials into SecretStorage — full setup migration to a new machine in seconds.
🔒 Offline Device-Locked Licensing
RSA-2048 signed license keys. Verification is done entirely offline — no internet required during activation or normal use. Keys are bound to your VS Code device ID.
🎨 Dark & Light Theme
Toggle between dark and light mode. Preference is saved across sessions.
Prerequisites
Before setting up the extension, make sure you have the following ready:
NetSuite
- A NetSuite account with Token-Based Authentication (TBA) enabled
- An Integration record in NetSuite (Setup → Integration → Manage Integrations) with TBA checked
- An Access Token linked to an employee record that has File Cabinet permissions (Documents → Files → File Cabinet)
- Your Account ID (found in Setup → Company → Company Information, or in your NetSuite URL e.g.
1234567or1234567_SB1for sandbox) - The Consumer Key, Consumer Secret, Token ID, and Token Secret from your Integration and Access Token records
- The Internal ID of the File Cabinet folder you want to deploy into (right-click the folder in File Cabinet → Internal ID)
GitHub
- A GitHub account and an existing repository (or create one before setup)
- A Personal Access Token (PAT) with
reposcope (GitHub → Settings → Developer Settings → Personal Access Tokens) - Git installed on your machine (
git --versionto verify)
Local Machine
- VS Code 1.85 or later
- A local folder path where the extension will create the Git repo (e.g.
/Users/you/projects/netsuite)
Setup
- Install the extension and open the PragvAI NetSuite panel from the Activity Bar
- On first launch, activate your license key (click ✉ Email for Free Trial to request one)
- Go to + Add Client and complete the 3-step wizard:
- Step 1 — NetSuite Account ID, Consumer Key/Secret, Token ID/Secret, File Cabinet folder
- Step 2 — GitHub remote URL, branch, local parent folder, and personal access token
- Step 3 — Both connections are tested automatically; Save is enabled only when both pass
- Click Fetch to pull your existing NetSuite files into the local repo
- Edit your SuiteScript files locally, then click ⬆ NetSuite to deploy
NetSuite Authentication
Uses OAuth 1.0a Token-Based Authentication (TBA) with SOAP SuiteTalk (NetSuitePort_2024_1).
You need:
- An Integration record in NetSuite with TBA enabled
- An Access Token linked to an employee record with File Cabinet permissions
Requirements
- VS Code 1.85 or later
- NetSuite account with TBA credentials
- GitHub repository and personal access token
Publisher
PragadasTechnologies — [email protected]