Release notes
October 2026

October 2026

Week of October 26

New

  • S3 catalogs with an IAM role — connect a bucket by letting Thunderduck assume a role in your AWS account instead of storing access keys. Setup
  • JDBC sign-in with your account — connect DataGrip, DBeaver and other JDBC tools with auth=browser instead of an API token. Setup
  • Concurrent query limit — each account runs up to 5 queries at once; more wait in line and start automatically, oldest first, showing how many are ahead.
  • Query timeout — admins set how long a query, scheduled job or dbt run may take (default 3 hours) on the new Settings › Workload page.

Improved

  • Settings — redesigned, with every settings page in one place.

Fixed

  • Scheduled jobs owned by an admin — once a company created roles, an admin's scheduled job could fail with "Catalog … does not exist" for catalogs no role granted. Scheduled runs now get their owner's current access, as in Studio.
  • Browsing catalogs from JDBC tools — with driver 0.2.0, DataGrip and DBeaver read every catalog's tables and columns, including schemas whose names contain _.

Week of October 19

New

  • Create scheduled jobs from AI assistants — the MCP server's create_scheduled_job tool schedules SQL (exports included) on a cron schedule, owned by you. Needs the query:write scope.
  • Oracle and SQL Server catalogs — query them like any other catalog and join them with the rest; read-only. Setup
  • Export query results as files — COPY (query) TO '<catalog>/<path>' writes CSV, Parquet, JSON or Excel into your own S3, GCS, Azure or R2 bucket, from Studio, scheduled jobs, the API, the drivers or MCP. Exporting files
  • Explain this error — a button on a failed query, in Studio and Query History, that asks Claude (with your company's own Anthropic key) what went wrong, who should fix it, and suggests a corrected query. Row data is never sent.
  • Suspend and delete users — admins can suspend, reactivate, delete and restore people. Deleting someone hands their scheduled jobs and saved queries to another member, or pauses the jobs. Users & invitations
  • Change Log — Settings → Change Log lists who changed what in your account, with a date range.
  • Schedule a saved query — open a saved query in the Scheduled Jobs form in one click. The form checks the SQL, shows the schedule in plain English and lists the next runs before you create the job. Scheduled jobs

Improved

  • Sign-in pages — larger, easier-to-read text on sign-in, registration and password reset, including error messages. An expired password-reset or verification link now explains what to do and has a Go to sign in button instead of leaving you on a dead end.
  • Dashboard insights — the Dashboard shows your top 5 most expensive queries of the last 7 days and a bar chart of queries by source; both open the matching view in Query History. It also says which compute engine runs your queries: dedicated compute (your own instance) or serverless compute.
  • Assign roles from the Users page — an Assign roles button next to Suspend sets each person's roles. The Roles page is a table: open a role to see who is in it and remove someone from it; Edit opens that role's catalog access (read only, read/write or invisible) on its own page, with deleting the role in a Danger zone at the bottom.
  • AI insight — Explain this error has its own ✦ AI tab in Studio and Query History. When you can fix a query yourself, it now always suggests the corrected SQL; if it can't verify a name against your tables, it says which one to check instead of hiding the suggestion.
  • Dashboard and Alert center — the Dashboard gets the console's new look, with driver logos and clearer AI-agent setup. The Alert center is a table with a filters panel (alert type, severity), sorting by how long an alert has been open or when it opened, readable dates, and paging through its history, which used to stop at the latest 50.
  • Create catalog, step by step — a Create catalog button opens a page of every source with its logo; pick one, enter its details (checked as you type), then review and create. The connection is tested before anything is saved, and the page shows the new catalog's tables loading. Editing a catalog is a page too, with the same fields and checks.
  • Catalogs, Tables and LakeOps pages — a cleaner, larger layout with source logos. Catalogs splits into your catalogs, your file catalogs and shared catalogs (20 per page), and a catalog's name opens it on the Tables page. Deleting a catalog moved to a Danger zone at the bottom of its Edit page.
  • A consistent, easier-to-read console — Scheduled Jobs, Pipelines, Query History, Saved Queries, Users, Roles, Change Log, API Tokens and Environment share the same page header, larger text and clearer tables.
  • Studio and Monitoring — Studio gets the same look, with the table count in the catalog tree and no refresh buttons. Monitoring uses Query History's date range (presets plus a custom date-and-time window), filters by user, source and status, and shows readable durations and counts.
  • One table layout across the console — Catalogs, Roles, Change Log and the Alert center now use it too. Saved Queries, Scheduled Jobs, API Tokens, Environment and Users share the same searchable, sortable table. API Tokens gains a .NET connection example and Environment a Replace action.
  • Pipelines — marked Beta, with Pipelines, Runs, Freshness and Projects tabs, runs grouped by pipeline and project, and replacing a project's Git token. Pipelines
  • Query History — click the Total, In progress, Completed or Failed tiles to filter the table.
  • Roles — managed on pages instead of pop-ups, with a count of people who are in no role. Access control
  • Admin-only actions are hidden from members — the Access menu shows only to admins, and members see "Admins only" instead of a Create button on catalog types.
  • Access errors — a query naming a catalog you can't see now says the catalog "does not exist or you don't have access", and Explain this error points you to an admin.
  • Studio editor — the editor has focus when Studio opens, and Cmd/Ctrl+A selects the query rather than the page.
  • Scheduled job form — wider, with a close button, and it asks before discarding unsaved edits.

Fixed

  • Peak RAM was missing for most queries (shown as 0 on Monitoring), and their CPU time counted the whole machine rather than the query. Both now come from the query's own container.
  • dbt runs failed for companies with an Azure Blob Storage catalog ("unterminated quoted string").
  • MySQL and SQL Server catalogs on Amazon RDS failed TLS verification with the default settings.
  • Queries on MySQL catalogs could fail with "Access denied" even with the right password.
  • Azure Blob Storage catalogs could not connect.
  • A deleted catalog stayed on the Tables page and in the Studio catalog tree.
  • Saving a role's catalog access failed after one of its catalogs was deleted.
  • Catalog passwords are masked in dbt run logs and query errors.
  • Long Explain this error results were cut off in Studio.

Week of October 12

New

  • Cloudflare R2 and Basin catalogs — read files in R2 buckets, and query and write Iceberg tables in Cloudflare Basin. Setup
  • TypeSafe AI integration — answer questions like "is this an angry customer?" as SQL functions, with your TypeSafe API key. TypeSafe AI integration
  • Catalog editing — the Catalogs page is now a table, and admins can edit a catalog's connection and rotate its credentials. Connection changes are confirmed before they are saved. Catalogs
  • Tables explorer — a three-pane view: catalogs and schemas, a sortable table list, and the selected table's details.
  • Alerts — an Alerts page for pipeline alerts, with active and past alerts and a count badge in the menu.
  • Shareable Query History — filters and an opened run live in the URL, so a link opens the same view. New filters, a details panel and a filter by dbt project.
  • Guides — new docs on getting data in, migrating from BigQuery and DuckDB with Iceberg on Glue.

Improved

  • Rolling date windows push down — filters like WHERE d >= current_date - 7 now run inside BigQuery, PostgreSQL and MySQL instead of reading the whole table. Getting data in
  • The same SQL rules everywhere — Studio, the API, the drivers, scheduled jobs and MCP check statements against one set of rules. Accepted SQL · Security model
  • Unfiltered scans of large external tables are refused — a query from an AI assistant that would scan a large PostgreSQL or MySQL table without filtering on an indexed column is stopped before it reaches your database. Scopes & costs
  • Menu — two levels, grouped into Query, Automation, Catalogs, Observability and Access, with loading placeholders across pages.
  • Studio — collapsed panes leave a tab to reopen them, and the Timing tab shows pod time, CPU time and peak memory.
  • LakeOps — a three-pane page with table health, a 128, 256 or 512 MB target file size for compaction, and no dry-run step. Sorting is no longer offered.
  • Home page — clearer getting-started steps with links to the docs.
  • thunderduck.ai — the console and docs moved to thunderduck.ai, and thunderduck.io links redirect. Existing API tokens, drivers and MCP connections keep working.

Fixed

  • Queries on PostgreSQL and MySQL catalogs briefly failed with "Unknown secret storage found: 'local_file'".
  • Queries that aliased a pushed-down table (FROM users u, then u.id) failed.
  • The Timing tab was empty for large queries.
  • The largest queries could fail to start with "No available instance types".
  • Compacting an Iceberg table with deletes reported "row count unknown" although it succeeded.

Week of October 5

New

  • Pipelines — Git-backed dbt pipelines defined in thunderduck.yml: scheduled production runs, branch runs that write to dev catalogs, model freshness, and Slack alerts. Pipelines
  • LakeOps — admins compact Iceberg tables and expire old snapshots on Glue catalogs from the LakeOps page, with a history of each table's operations.
  • .NET SDK — Thunderduck.Data on NuGet, an ADO.NET provider that works with Dapper. .NET (ADO.NET)
  • Home page — getting started, AI agent setup and driver downloads. Studio moved to /studio; old links redirect.
  • Timing tab — where a query spent its time, in Studio and in Query History.
  • Query tuning over MCP — assistants can read your query history and a query's profile, and describe_table shows partitions, indexes and file layout. Pipeline tools let them run a branch, sync a project and check freshness. Tools
  • Claude Code — connect Claude Code and other local MCP clients, and stay signed in between sessions. Connecting Claude & ChatGPT

Improved

  • Catalog tree loads as you open it — Studio's catalog tree and autocomplete, and the Tables page search, load level by level, so large catalogs open quickly.
  • Refresh one catalog — a refresh button on each catalog group on the Tables page.
  • Bigger queries — more threads and memory per container size, a new 16 vCPU / 64 GB size for plans touching 250M+ rows, faster selective joins, and large INSERT and CREATE TABLE … AS statements that use less memory. Limits & cost
  • MCP cost limits priced by compute time — estimates reflect what the query will actually cost to run. Scopes & costs
  • BigQuery — the Tables page lists up to 500 datasets per project.
  • Cancel confirmation — asked in a centred dialog.

Fixed

  • CREATE SCHEMA and DROP SCHEMA on catalog.schema failed.

October 1–4

New

  • Query pushdown — filters on BigQuery, PostgreSQL and MySQL tables run inside those engines, and a single-table query's GROUP BY, ORDER BY and LIMIT too, so less data is read and moved. Getting data in
  • Nessie catalogs — connect an Iceberg catalog on a Nessie server you run, including on MinIO or other S3-compatible storage. Catalogs
  • Your own Anthropic key for column meanings — set it in Settings → Environment. Each refresh now annotates many more tables. Column meanings

Fixed

  • After a password reset or first-time password setup, you are signed in directly instead of being sent back to the login page.