OFusion-sql — VS Code extension
Run SQL against Oracle Fusion Cloud from VS Code. No JDBC, no Java, no SQL Developer: the extension talks to BI Publisher over HTTPS by itself. Queries travel as a parameter of a small BI Publisher proxy report — the SQL is gzipped and base64-encoded, the proxy's data model decodes it inside the database and opens a cursor, and the rows come back as delimited text. InstallDownload the packaged extension from the latest release and install it from inside VS Code: Ctrl/Cmd+Shift+P → Extensions: Install from VSIX…
Publishing (maintainers)Upload the That page needs nothing but the Microsoft account that owns the publisher. The
To build it yourself:
Press F5 in this folder to run from source in an Extension Development Host. Using it
Each editor can run somewhere different. With more than one environment configured, the status bar shows which connection the focused editor uses; click it to pin that editor to another one, or to let it follow the window default again. A pinned editor is marked, so changing the default cannot silently move a query you deliberately aimed at one environment — which is the point when the two tabs open are DEV and PROD. Results come back in one panel per connection, so the same statement run against two environments gives two tabs to compare rather than one replacing the other. Each keeps its own page and paging.
Every query you run is kept under Query History — right-click to run it again, open it in an editor, copy it, or remove it. A query that failed is kept too: that is the one you come back to fix. Right-click a connection for Test, Edit, Duplicate, Delete, and Sign In / Sign Out on SSO connections. Editing opens the same form, with the stored password left alone unless you type a new one; renaming carries the secrets across. Results open beside the editor, one page at a time, with Export CSV — one panel per connection, named after it. Signing inUsername and password — the ordinary case. Works everywhere, and can deploy the proxy report for you the first time you connect. Single sign-on (browser login) — no OAuth client ID required. Choose this mode,
enter the Fusion host and your Fusion username, then click Test Connection.
Both authentication modes require the username in the form. The report path is hidden
and generated as Requires local desktop VS Code and an installed Chrome or Edge browser. The temporary browser session does not reuse your personal browser profile; you may need to sign in again and company policies may block this browser. Only Fusion-domain cookies are stored in VS Code SecretStorage, bound to that exact HTTPS origin. Cookie paths and expiry are respected; updated cookies from report responses are saved. Sign in again when the session expires. Sign Out removes the stored local session; it does not revoke sessions on Oracle's servers or sign out your other browsers. Your BI Publisher REST endpoint must accept browser session cookies. Some environments require additional CSRF handling or reject cookie authentication; a successful portal login alone does not guarantee query access. This mode cannot deploy reports or use the existing password-based SOAP fallback. Existing OAuth connections remain supported through settings; the connection form now uses browser SSO. Saving an old OAuth connection in the form converts it to browser SSO. Single sign-on (OAuth 2.0) — browser sign-in using Authorization Code with
PKCE, so no client secret ships with the extension. The identity domain is
detected from the Fusion host, so all you supply is a client ID: an application
registered in that domain with Where the domain federates onward — Microsoft Entra, Okta, anything — makes no difference. The token still comes from the Oracle domain, and the browser follows the rest of the chain with the session you already have.
Passwords and tokens go to VS Code SecretStorage (the OS keychain). Settings hold only the host, username and report path, so they stay safe to sync. Generating queries with an AI modelFusion: Generate Query with AI (or the ✨ button on a SQL editor) opens a panel: describe what you want, get a statement, then keep asking for changes — each follow-up edits the statement rather than starting over. Copy it, save it to a file, insert it into the editor, or run it straight away. The model works inside a harness. Every reply is inspected before it can
run: exactly one statement, It can check a name rather than guess. When the model is unsure a table or
column exists, it replies with a query against the data dictionary alone. That is
recognised as a lookup rather than an answer — it runs, and the rows go back so
the real query is written from what is there. Up to three lookups, and the prompt
carries what the dictionary actually looks like here: the connected user reads
through synonyms, so The statement is checked before you get it. A model writing SQL for a schema it cannot see will occasionally invent a table or a column, and the result looks perfectly plausible until it is run. So the extension runs it — a single-row page against your active connection. Oracle resolves every identifier and, when it objects, names the offending one:
That error goes straight back to the model, which corrects that identifier
rather than rewriting the query. Up to three attempts, then the statement is
handed over anyway — marked as unverified, because you may know something the
model does not. The panel says which happened: Runs on FUSION-DEV · 7 columns,
or the error it could not get past. Turn the whole thing off with
The model is told what it needs to know to be useful here: Oracle dialect rather
than generic SQL, Bring your own key — Add AI Helper (API Key), offered in the Query History view until one is stored, or from the view toolbar:
Switch between them with Fusion: Select AI Provider; adding a key with
Add AI Helper (API Key) switches to that provider on its own. Change the
model with Keys go to the OS keychain, the same place as connection passwords, and are sent only to the provider you selected. Nothing about your connections, credentials or query results is sent anywhere — only the words you type in the panel and the statement being edited. Settings
Limits
TroubleshootingFusion: Show Log (or Output → Oracle Fusion SQL) records every command, the editor and language it ran against, the connection it chose and the row count — so a command that appears to do nothing can be traced to the step that stopped. Developing
The layers are deliberately separate: LicenseMIT. |