SuiteQL Query EditorConnect to NetSuite accounts and run SuiteQL queries, browse the record schema, and get schema-aware autocompletion and syntax highlighting, directly from VS Code. FeaturesMultiple connectionsSave multiple labeled connections (e.g. "Production", "Sandbox1"), authenticated with either OAuth 1.0a Token-Based Authentication (TBA) or OAuth 2.0 Client Credentials (M2M). Adding a connection asks which method to use, then collects only that method's credentials. Only one connection is active at a time — switching connections disconnects the previous one. The active connection is shown in the status bar; click it to switch or add another. Connections saved before OAuth 2.0 support keep working unchanged; they're treated as TBA. Schema browserA left-panel tree under the SuiteQL activity bar icon, showing every saved connection (connected or not), the active connection's downloaded tables, and each table's columns — sourced live from a per-connection RESTlet (see Requirements below). Schema is downloaded explicitly, never lazily on tree expand: run "SuiteQL: Add Tables to Schema" to open a checkbox picker (pre-selecting commonly-queried tables), select what you want, and it downloads just those tables' columns. Re-running the picker later lets you add more tables without disturbing what's already downloaded. Use "SuiteQL: Filter Schema" to narrow the tree to tables/columns matching a search term — a table matching by its own name shows all its columns; one matching only because a column inside it matches shows just that column. Query editor with schema-aware highlightingOpen a new SuiteQL query with "SuiteQL: New Query", then run it with "SuiteQL:
Run Query" (or AutocompletionCompletion for SQL keywords, table names (after Drag tables/columns into a queryDrag a table or column from the object explorer and drop it into a SuiteQL editor to insert its name at the drop position, or right-click it and choose "Insert into Editor" to insert it at the cursor. Results paneA docked panel showing query results as they come in. Every run defaults to a 100-row cap; check "Fetch all rows" to paginate through the full result set instead. The grid shows at most the first 5,000 rows of a result set (export always writes every row), and Clear removes the results shown for the current file. A running query (including a "Fetch all" pagination loop) can be cancelled mid-flight from its progress notification — the request in flight is aborted immediately rather than being left to run out its retry budget. Export resultsExport the current results to CSV or JSON. JSON export coerces columns back to their real types (numbers, booleans) using the downloaded schema, instead of leaving every value as a quoted string the way NetSuite's REST endpoint returns them. RequirementsNothing to install beyond this extension — its NetSuite client library is bundled in, not a separate download. A NetSuite account with a configured integration record, plus credentials for whichever authentication method you choose. Either one is enough to run queries and use the query editor. OAuth 1.0a (TBA) — the account ID/realm, consumer key/secret, and token ID/secret. Note that NetSuite blocks new TBA integrations from release 2027.1, with tentative full end-of-support at 2028.1, so prefer OAuth 2.0 for a new setup. OAuth 2.0 Client Credentials (M2M) — the account ID/realm, client ID, certificate ID, and the certificate's private key. To set one up in NetSuite:
Paste the private key into the dialog or pick the Schema discovery (the object explorer tree, autocompletion, semantic highlighting)
additionally requires a per-connection RESTlet URL, set via "SuiteQL: Set RESTlet
URL…". Without one, schema discovery is disabled (the object explorer shows a
"RESTlet not configured" prompt) but the editor and query execution still work — you can
still type and run queries by hand. The RESTlet itself is a companion server-side
project ( Commands
Extension Settings
Known Issues
CreditsBuilt on Release Notes0.1.0Adds OAuth 2.0 Client Credentials (M2M) as a second authentication method alongside OAuth 1.0a TBA — connections saved before M2M support keep working unchanged. Everything from the initial version: connection management, a RESTlet-backed schema browser, a query editor with schema-aware syntax/semantic highlighting and autocompletion, drag-and-drop identifier insertion, a results pane with cancellable/paginated execution, and CSV/typed-JSON export. |