Repository navigation
Releases: SureForgeTech/filemaker-data-api-for-vs-code
Release list
v1.8.0 — Query Builder recovery and safer editing
Release notes prepared 2026-11-02.
Version 1.8.0 adds restored Query Builder sessions, cancellable searches and keyboard shortcuts. It improves certificate setup, sign-in recovery, workspace-trust handling and field presentation, and hardens generated files and saved credentials. Read UPGRADE.md, “Upgrading from 1.7.0 to 1.8.0”.
-
[FIX] Record Editor Save no longer stays at “Saving…” when VS Code restarts the extension after workspace trust is withdrawn; the panel explains how to reopen and warns the user to check the record before retrying.
-
[INTERNAL] The unit tests no longer pass an IP address as a TLS server name, which Node 22 warns about and Node 26 rejects.
-
[INTERNAL] The real VS Code proxy-patch TLS test now skips, with the reason logged, when a plain TCP connection to this machine's own LAN address cannot be opened. Once TCP connects, every certificate, pin and sign-in failure still fails the test.
-
[SECURITY] Schema snapshots and the offline metadata cache refuse to read, write or delete through a symlink under
.vscode/filemaker, so a cloned repository cannot point them at files outside the workspace. -
A failure to save the optional offline schema cache no longer fails a layout schema that the server returned; it is logged as a warning instead.
-
Script parameters sent through the FM Web bridge keep their spaces, line breaks and empty value exactly as written.
-
Log lines that include an error now show the error's name, message and code instead of an empty
{}, with secrets still hidden. -
A layout named
FileMakerno longer produces a generated TypeScript client with twoFileMakerRecordtypes. Layout names that differ only by letter case, such asSalesandsales, now get separate generated type files, with short hashes added where needed, so the files no longer swap places when the server lists layouts in a different order. This applies to Generate Types for Layout as well as Generate Types for All Layouts: a single layout is named from the server's layout list when it can be read, and from the files already in the folder when it cannot, so a cached layout still generates. After a layout has been chosen, offline generation uses cached metadata without requesting the server's layout list or attempting sign-in. The Command Palette layout picker and Generate Types for All Layouts still request a server layout list. A generated file that belongs to a different layout is never replaced, and a layout keeps updating the file it already owns, including a numbered one (such asSales-1a2b3c4d-1.ts) given out by an earlier run, even when numbers in between are missing. Newly generated files carry aLayout SHA-256line that identifies the layout without printing its name; older files are only recognised when theirLayout:line shows the name unambiguously, and any other generated file is left untouched. Delete any oldSales.ts-style file left by an earlier build. -
A restored Query Builder tab now uses the current extension folder and script settings instead of the ones saved before the window reload.
-
The Query Builder keeps the previous results available to export when a later search is canceled.
-
FM Web displays, validates and saves a repeated field under its lowest available repetition key when
Name(1)is absent. -
[SECURITY] Open Generated Types Folder refuses output paths that pass through a symlink outside the workspace.
-
The Query Builder can cancel a search while it is still loading its connection profile, and closing the panel stops that search.
-
The Query Builder now restores the page size and offset after a window reload for the same connection and layout; host saved-query values take precedence.
-
Canceling Browse for a CA certificate keeps the previously selected file path.
-
Saved connection secrets are decrypted with a fixed 16-byte tag check, so a shortened or tampered tag is refused instead of being misread. Secrets saved earlier keep working. No known exploit.
-
The extension's panels now ignore messages that do not come from VS Code itself, so a stray or badly formed message is dropped before it can act. No known exploit.
-
Files written for generated pages, type generation and AI context now stay inside their folder: a path that tries to escape is refused instead of written. No known exploit.
-
The Marketplace listing README now has a Security & Trust section right after the product tour: credentials stay in the OS keychain, nothing is collected or sent to the authors, an untrusted folder stays read only, and the security policy is one link away.
-
A privacy policy at the repository root (PRIVACY.md) now says what the extension stores locally, what never leaves your machine, the proxy-mode exception, which third parties are reached, the GDPR/CCPA stance, and where to send privacy questions; the documentation table, the Marketplace listing and the User Guide all link to it.
-
The Marketplace README now opens the product tour with a Query Builder hero screenshot of the Contacts layout: field pickers, a populated find request and the found rows.
-
The Marketplace README now shows a GIF of the connection flow: add a connection profile, connect, and open the Query Builder.
-
The Query Builder results table sizes its Open column to fit both actions, so View and Edit are both visible and clickable instead of clipping Edit to "View ...".
-
The Query Builder remembers the selected connection, layout, find request, editor tab and result view, so reopening the panel after a window reload restores the work in progress instead of an empty form.
-
The Query Builder clears restored criteria and sort rows when the layout they were written for is no longer among the profile's layouts, so a saved find is never shown or run against another layout.
-
The Query Builder shows a Cancel button while a query is running; pressing it aborts the request in flight and the panel reports the query as cancelled.
-
Error toasts can reconnect to the server in one click after a sign-in failure and open the matching troubleshooting page from the toast; more errors now carry that link, including no free sessions, too many sign-in attempts, HTTP 403/404, certificate problems and connection failures.
-
Five commands gain default keyboard shortcuts: Open Query Builder
Ctrl+Alt+Q, Open Record ViewerCtrl+Alt+V, Open Script RunnerCtrl+Alt+E, Show Request HistoryCtrl+Alt+Hand Open FM Web Layout ModeCtrl+Alt+L(eachCmd+Alton macOS except Show Request History, which staysCtrl+Alt+Hto avoid the system's Hide Others shortcut); rebind or clear them in Keyboard Shortcuts as before. -
The Marketplace listing description and the README lead now open with one sentence: connect to any FileMaker Data API server, run queries, browse schema, edit records and export results without leaving VS Code.
-
Security: the web page generator now uses Next.js 16.4.2, which fixes three published problems in Next.js (an image-handling flaw and a flaw in the
use cachefeature that could each run code, and a denial-of-service flaw). The extension itself did not use the affected parts, but apps you generated earlier keep their old version: runnpm install next@16.4.2in.fmweb/generated/runtime-nextto update them. -
Security:
zodis updated to 4.6.7, which fixes a published security advisory in zod 4.6.5 (the version 1.7.0 shipped): validating a very large array without a length limit could use all available memory. No behavior change. -
The Record Editor shows fields in the same order as your layout, with the right kind of box for each field. The Viewer, find form and FM Web use the same field rules, and Copy no longer covers record values. A container shows its image and, when that image cannot be shown, its address. A repeated field now appears in FM Web. A required repeated field no longer stops a save, and a repeated column in a portal shows its value.
-
Website tables scroll on small screens, documentation links stay on the website, and repeated documentation links are removed.
-
Generated FM Web apps can run their own tests and refresh untouched older shared files. Missing field details, stopped previews and save errors have clearer messages; date hints appear while editing and saved messages clear when browsing.
-
Layout Mode buttons keep their text readable when pointed at or selected with the keyboard. Effective Settings lines up with other screens and keeps its settings buttons on one line. Disclosure controls and separate tabs use the same size and rounded corners as other controls.
-
The generated FM Web page opens again, no longer stretches sideways, and can edit and save records.
-
All screens now share the same fonts, buttons, messages and read-only look.
-
Read-only values stay easy to read, empty messages remain available to screen readers, and headings, panels and control sizes match across screens. Schema Diff opens with Show only changes ticked; clear it to see unchanged fields.
-
Panels no longer sit empty when the extension cannot finish a request. The Record Viewer, Record Editor, Query Builder, Script Runner, Connection Wizard, Layout Mode and Schema Diff now say what went wrong instead of waiting forever, and the reason is written to the output channel.
-
The user guide, upgrade notes and a changelog by version are now on the project's website.
-
Sign-in errors now say what to do: FileMaker error 212 explains both possible causes — a mistyped password or a privilege set missing the
fmrestextended privilege, with the exact FileMaker Pro path — and the error report now shows the matching Troubleshooting link for errors 212 and 9. Other FileMaker codes keep their existing message. -
The Marketplace listing README now shows the version, last-commit and MIT-license badges under its title.
-
The Connection wizard's certificate section has a Browse button that opens the ...
v1.6.0
Released 2026-10-19.
This is a minor release. Your profiles, saved queries, settings and stored data carry over unchanged, and no command or setting was removed. Nothing needs to be done for a normal install. Read UPGRADE.md ("Upgrading from 1.5.0 to 1.6.0") for the few behavior changes you may notice.
In short:
-
New: Layout Mode has standard field sizes and spacing, arranging and standardizing a layout (each undone in one step), and starter templates. The find form, Record Editor, Record Viewer and generated web layout views now show fields the same way.
-
Fixed: a certificate you trusted could still fail with a misleading "not trusted" error under VS Code's default network setting; the message now says why and names the setting to change. Script runs return only the script's answer, copy-as-code is more exact, and profile changes made in another VS Code window show up within two seconds.
-
[FEATURE] Layout Mode adds standard field sizes and spacing, arranging the selection into a standard form and standardizing it (each with one Undo step), and blank, form, two-column and first-portal starter templates (offered for a new, empty web layout). Synced field types and FileMaker field order guide placement; names and behavior bindings stay intact.
-
[FEATURE] Find forms, Record Editor, Record Viewer and generated web layout views share Layout Mode field sizes, top labels and responsive spacing. The next time you generate or preview an FM Web app, its managed runtime files are refreshed to template version 3; a managed file you edited is left alone and named in a warning.
-
[FIX] A certificate you trusted (pinned) could still fail with a misleading "not trusted" error when VS Code's
http.proxySupportsetting isoverride(its default): VS Code then replaces the extension's own connection, so the extension cannot check the certificate you trusted and VS Code's normal check applies instead. A server whose certificate VS Code trusts anyway (for example from Let's Encrypt) keeps working. Underoverridethe trust is not enforced: a different certificate that VS Code trusts would be accepted too. The message now says why, for every kind of request and for proxy connections, and names the fix: sethttp.proxySupporttofallback, or install a public certificate on the server and choose Forget trusted certificate. The trust dialog, the wizard and the message after trusting say the same. Theonvalue was not tested. -
[FIX] Script runs return only the script's answer, including the plain GET form. Layouts, scripts and container fields named
.or..are refused before a request is sent, also in proxy mode. -
[FIX] Copied TypeScript keeps a field named
__proto__. Copied proxy requests keep a trailing slash. Copied API base paths stay as configured (including percent escapes), and curl switches off bracket and brace expansion when needed. -
[FIX] New files written by Write AI Context and new FM Web runtime files are readable by you only; a file that is replaced keeps its permissions (without setuid, setgid or sticky bits).
-
[FIX] Folder names keep visible emoji presentation selectors while refusing hidden standalone selectors. The Output panel and Show Effective Settings now warn when
ai.hiddenFieldsis a string instead of a list; hiding is unchanged: the whole string still counts as one field name, even with commas. -
[FIX] Profile changes made in another VS Code window refresh the connection status, explorer and AI tools within two seconds; configuration and secret changes also refresh them.
-
[FIX] Layout Mode lists fields in FileMaker's field order, not alphabetically. The Record Viewer also asks the server for the layout's field details at the same time as the record when schema metadata is on (it is not added to the request history, and a failure is ignored).
-
[INTERNAL] The test mock of FileMaker Server's default certificate now matches a real server exactly, with an end-to-end test of the trust flow. Connection-limit tests no longer depend on timing.
v1.1.0 — UX, a11y, security, reliability
Major usability, accessibility, security, and reliability release.
Onboarding
- Added a first-run Getting Started walkthrough (Add Profile → Test Connection → Query Builder) with screenshots and clear action verbs.
- Added a dedicated activity-bar container with a FileMaker icon.
- Added a Welcome view that surfaces Add Connection Profile / Open Walkthrough when no profiles exist (previously the empty state was buried behind always-present Environment Sets / Jobs roots).
- Connection wizard restored: fixed a crash on load caused by a missing
<form id="wizardForm">wrapper. Save and Test Connection buttons are now reliably bound. - Connection wizard collapses advanced server fields (
API Base Path,API Version) under a<details>disclosure so first-time users see only what they need. - Connection wizard shows live progress during Test Connection with phase-by-phase status.
- Walkthrough id computed from
context.extension.idat runtime so a publisher rename can't silently break the walkthrough; the first-run flag is now only set after the walkthrough opens successfully.
Connection / Status
- Added a persistent
$(plug) FileMaker: <profile>status-bar item so you always know whether you're connected and to which profile. Click to open the Explorer. - Proactive session-token refresh in
fmClientkeeps long-running sessions alive without manual reconnect. - Exponential-backoff retry on transient login errors during Connect.
- Inline Test Connection result + save guard: badge shows untested / passed / failed / stale; configurable policy (
off/warn/block) controls whether saving without a recent test is allowed.
Errors & Recovery
- Error toasts now offer Retry / Edit Profile / Open Settings actions inline. Retry re-invokes the original command; Edit Profile reopens the wizard for the failing profile; Open Settings jumps to the relevant setting key.
- Structured error reports with the full request chain, redacted headers, and a one-click Copy as Bug Report action that produces a markdown report safe to paste into an issue.
- Graceful fallback in
secretStorewhen VS Code SecretStorage is unavailable (AES-256-GCM PBKDF2 envelope). - Offline-mode status-bar indicator with stale-cache awareness.
- Circuit-breaker registry plus Show Circuit Breaker Status command for diagnosing repeated failures.
Accessibility
- Connection wizard required fields now mark
aria-required, render a visible*, and link hints viaaria-describedbyso screen-reader users get full context. - Authentication mode toggle exposes proper
aria-pressedstate. - Password / username inputs include
autocompletehints. - Focus management: focus lands on the first input on open; Query Builder focuses the profile select after init.
Discoverability
- Command palette flood: ~33 commands gated behind context keys (
filemaker.hasProfiles,filemaker.hasSchemaSnapshots,filemaker.enterpriseMode,filemaker.advanced.powerUserMode). New users see only what's relevant; advanced/diagnostic commands stay hidden until needed. - Power-user mode setting unlocks plugin / circuit-breaker / diagnostics commands.
Settings
- Deduplicated
filemakerDataApiTools.*settings under the canonicalfilemaker.*namespace. Legacy keys now carrymarkdownDeprecationMessage; explicit values continue to be honored with a one-time deprecation toast pointing at the new key. - Validation:
filemaker.schema.hashAlgorithmis checked againstcrypto.getHashes()at activation; an unsupported value surfaces a toast instead of a silent fallback. - Declared
capabilities.untrustedWorkspacesso VS Code's built-in trust banner fires up front (instead of bespoke command-level toasts).
Documentation
- Rewrote USER_GUIDE.md connection sections to match the actual webview UI (the previous copy described a quick-pick flow that no longer existed).
- Walkthrough markdown gained screenshots reused from the marketplace assets.
- Corrected an incorrect tip claiming profiles were workspace-scoped; profiles are global, only saved queries are workspace-scoped.
Security & Reliability
- Token-bucket rate limit plus per-session request budget on the FM bridge server.
- Profile cache keys versioned (
v2::) and include the normalizedserverUrlto prevent cross-profile cache poisoning. - Documented proxy threat model; minimized outbound profile payload.
- Structural validator for inbound webview messages.
Performance
- Replaced 59 per-command
activationEventswithonStartupFinishedand lazy command registration. batchExportFindnow streams CSV rows instead of buffering the entire result set.- Refactored
fmClientto extractSessionTokenTrackerfor clearer proactive-refresh state.
Tests
- New unit-test coverage for
schemaService,batchService, error-action selection, deprecated-setting tracking, command-resolution helpers, connection status bar, and webview structural assertions (catches the kind of HTML/JS mismatch that hid the wizard form bug).
v1.0.0 - Production Release
FileMaker Data API Tools for VS Code - v1.0.0
Free, open-source VS Code extension for the FileMaker Data API.
Install
- Download
filemaker-data-api-tools-1.0.0.vsixbelow. - In VS Code, open Command Palette and run Extensions: Install from VSIX...
- Select the downloaded file and reload.
Highlights
- Full CRUD: find, get, create, edit, delete records
- Query Builder, Record Viewer/Editor, Script Runner, Schema Diff webviews
- Value lists, container fields, portal support, global fields
- Compound find queries with omit support
- Batch export/update with concurrency control
- Enterprise role guards and workspace trust
- 253 tests across 58 test files
- No telemetry