Skip to content

Changelog

June 5, 2026

SQL definitions: reusable snippets across your queries

You can now create SQL definitions scoped to a database connection—versioned, named SQL snippets that you can reference inline in any query with {{ definition("name") }}. Definitions get their own home in the Data page sidebar where you can create, edit, describe, and preview them, and the expansion is applied both for human-run queries and for queries the chat agent runs on your behalf.

The chat agent understands definitions too, so when it writes SQL it can reach for your team’s definitions automatically. Admins can also let the agent propose and save new definitions when it spots a pattern worth keeping around—so the SQL your team relies on becomes a real, reusable building block instead of something everyone re-types.

AI context now flows from groups

You can give a group its own AI context, and it now flows into chat, chart-editing, and automation agents whenever a member of that group is interacting. If different teams think about your data differently—engineering versus sales versus finance—you can finally encode that nuance per team without trying to cram it all into one global context block.

Chart agents spawned from inside a dashboard also now inherit the dashboard’s AI context, so editing a chart in place picks up the same guidance the dashboard agent has.

Billing got more transparent

The billing settings page got two new sections aimed at admins who actually need to reason about cost:

  • Invoices lists recent Stripe invoices for the org with date, amount, status, and a hosted link straight to the invoice—no more bouncing into Stripe just to grab a PDF.
  • The AI usage sections now have a billing period selector, so you can review totals and per-member breakdowns from any past period (capped to when your org was created). The current-period overage warning stays scoped to today’s period, so historical browsing doesn’t surface old warnings.

Skills and definitions join the public API

Following recent additions for Insights, automations, members, AI usage, data source access, and MCP servers, the public API now covers two more building blocks:

  • Skills: list, create, fetch, update, and archive AI skills via /api/public/organizations/{orgId}/skills.
  • Definitions: full CRUD for SQL definitions via /api/public/organizations/{orgId}/definitions.

If you’re provisioning Basedash from your own tools—or syncing skills and definitions from a runbook or repo—you can now keep both fully in sync from outside the app.

Fixes and improvements

  • Returned typed structured payloads from the Basedash MCP server’s ask_question and get_data_sources tools, so MCP clients can consume them without parsing text.
  • Fixed an MCP OAuth issue where rotating a refresh token could prematurely invalidate a still-valid access token.
  • Tightened up the OAuth metadata the MCP server advertises, including bearer header support, resource name, and protected resource linkage.
  • Capped the pie chart center metric at the standard number-chart size so it no longer balloons in larger charts.
May 29, 2026

Oracle is now a native data source

You can now connect Oracle as a direct database connection alongside Postgres, MySQL, SQL Server, and the rest. Connections use node-oracledb in Thin mode, so there’s no Oracle Instant Client install to babysit—standard host/port/service-name (and SSL/SSH-tunnel) connections work out of the box, and schema introspection runs through the ALL_* views the way you’d expect.

The chat agent knows about Oracle SQL gotchas, the connection picker shows the Oracle logo inline, and we hid the Airbyte Oracle DB connector now that there’s a first-class native option that talks directly to your database.

MCP servers join the public API

The public API now covers MCP servers end-to-end: you can list, create, update, fetch, and delete the MCP connectors attached to an organization through /api/public/organizations/{orgId}/mcp-servers. This closes one of the larger gaps after last week’s automations, members, AI usage, and data source access endpoints.

If you provision Basedash from your IDP or runbooks, you can now keep MCP server configs in sync from outside the app—useful for environments where every connector needs to be reviewable and reproducible.

Insights got more flexible

Insights schedules now include a “Never” option. Turn off automatic generation entirely while keeping Insights enabled so people on your team can still trigger them manually from the app—useful for trial accounts and for orgs that only want Insights on demand.

The public Insights API also now returns a rendered chart image URL alongside each insight’s chart, reusing the same cached screenshot the in-app and Slack/email surfaces use. If you’re piping Insights into your own tools or docs, you no longer have to render the chart yourself to embed the visual.

Data source pages keep getting better

We polished the data source detail page another pass. Renaming now happens through the command menu everywhere instead of inline-editing the title, the overflow actions in the sidebar and page headers were consolidated into one consistent menu, and direct SQL connections get a dialect-aware Connection details section with blurred-until-revealed credentials, masked secrets, and a one-click warehouse password reveal. Airbyte connectors can now load their full spec/config on demand with the same secret-masking treatment, and Fivetran connectors got a cleaner “managed in Fivetran” block.

If you belong to multiple organizations, the login flow now lands you in the alphabetically-first org instead of an arbitrary one, so the default destination is predictable.

The chat agent can manage its own skills

The chat agent can now create, update, and delete AI skills directly. When you tell it something worth remembering—a recurring instruction, a domain convention, or a piece of business context—it can save that as a durable, reusable skill (with a generated routing description) instead of relying on you to add it manually in settings.

We also generate routing descriptions for new and renamed skills automatically, which improves how the agent picks the right skill on each turn—so skills you’ve already created should kick in more reliably.

Fixes and improvements

  • Surfaced chat file upload errors with a clear toast and preserved the user’s draft and selected attachment, instead of swallowing the failure silently.
  • Fixed chat attachment submission so failed uploads no longer wipe the composer and you can retry without re-attaching the file.
  • Fixed an Insights cron edge case where a top-of-hour fan-out across multiple pods could publish the same insight twice on the same day.
  • Fixed shared chart exports on public dashboards so JWT-locked variables and legacy variable names round-trip correctly through CSV/Excel exports.
  • Paginated schema sync so very large warehouses sync reliably without stalling the event loop on big table sets.
  • Added a realistic example payload to the public Insights API spec so the generated docs show what an insight response actually looks like.
May 22, 2026

Filter individual charts independently from dashboards

Chart filters can now be scoped to a single chart instead of the whole dashboard. You decide whether a filter applies dashboard-wide or just to one chart, and you can promote a chart-level filter to the dashboard or demote a dashboard filter back to a single chart whenever you want to rearrange things.

This makes dashboards with mixed analytic surfaces much more workable—one chart can have its own time range or status filter while the rest of the dashboard keeps using its defaults, without forking the underlying SQL.

Embed individual charts, not just dashboards

Public sharing now works at the chart level. Open the share popover on a chart that lives in a publicly shared dashboard and you’ll get a link and iframe snippet you can drop into your own product, docs, or internal tools. The embedded chart renders full-bleed, supports any chart-scoped filters you’ve configured, and keeps a small “Made in Basedash” badge in the corner.

Inherited dashboard access is shown read-only in the popover so it’s obvious who can already see the chart, and the embed strips app chrome (sidebar and chat toggles) while keeping the chart’s own filter controls visible.

Data source pages got a major rework

Connector homepages now live in the main content area with inline editing for everything: AI context autosaves on blur, access is managed with the same share-popover pattern as dashboards (everyone / group / member rows with their own permission dropdowns), and the danger zone is a type-to-confirm field that flips the delete button from secondary to primary the moment you type the right name. Sync moved out of the page header and into the sidebar footer, and switching between data sources of the same type no longer leaves your scroll position in a strange place.

Warehouse credentials are now obscured by default behind a “Show credentials” overlay with per-field copy buttons (including the password once it’s fetched), so it’s harder to accidentally leak secrets while screen-sharing. Settings pages also got fresher empty states, consistent section subtitles, and a unified AI context textarea.

The public API now covers most of Basedash

Following last week’s Insights API, this week the public API adds endpoints for automations (list, create, update, archive, fetch, plus run management), members (invite by email and update role or profile), AI usage (current billing-period totals plus a per-member breakdown), and data source access (read or replace the policy with either “everyone” or restricted groups and members).

Together with Insights, this means you can wire most of Basedash’s surface area into your own tools—pin reports into a runbook, drive provisioning from your IDP, monitor AI spend, or audit who can query what.

Slack and email responses now ship with chart images

Slack chat replies and automation notifications (Slack and email) now include rendered chart screenshots inline, matching the flow that already ships for Insights. When the chat agent or an automation generates a chart, the image is placed right where the chart appears in the response, so you can see the answer directly in the thread or message without clicking through to Basedash.

Chart screenshots are also now rendered at 2× device scale, so the visuals look noticeably sharper in Slack messages, email digests, and anywhere else server-side renders show up.

Fixes and improvements

  • Fixed Google sign-in so it works on the first try instead of occasionally bouncing users back to the login page.
  • Recovered chats that got stuck mid-generation by adding an automatic recovery sweep, so the message composer no longer stays disabled after a thinking step finishes.
  • Added a Slack disclaimer message that posts automatically when the Basedash app is added to a Slack channel, so everyone in the channel knows what to expect.
  • Filtered the Slack private channel picker so it only shows channels the configuring user actually belongs to.
  • Capped Slack messages at Slack’s 50-block limit with a clean truncation footer instead of failing to post long responses.
  • Added horizontal scrolling for dashboard filter rows so long filter sets no longer break the header layout.
  • Improved dropdown option rendering when a filter’s label and value differ, with smarter width splitting and full-text hover.
  • Fixed multi-select filter handling when option values contain commas so selections round-trip correctly.
  • Always show number chart titles on public sharing links, matching the in-app behavior.
  • Tightened line chart stroke widths for a cleaner look at typical chart sizes.
  • Fixed markdown blockquotes (and inline code, bold, italic, and links) so they’re legible in dark Insight and automation emails.
  • Required explicit confirmation, including the resource type, when deleting data sources, with case-insensitive matching.
  • Changed the default role for invited members from “inherit from inviter” to “Member” so admins are no longer created by accident.
  • Fixed Fivetran destinations failing when an organization name starts with a number.
  • Fixed Postgres JSONB queries using -> and ->> getting mangled by pagination logic on cached connections.
  • Fixed the chat agent retrieving stale chart context when dashboard context was too large to inline.
  • Fixed inline chat charts that reference dashboards so they pick up the correct dashboard date defaults and variable values.
  • Stopped surfacing unhandled errors when chat message prefetching failed transiently.
  • Eliminated repeated 404 spam from /connections//{schemas,tables} requests when no connection was selected.
  • Fixed chart screenshot rendering in production so Slack and email chart images render reliably.
May 15, 2026

Sankey charts are here

You can now visualize flows—funnels, transitions, attribution paths, anything with a source-to-target shape—as proper Sankey diagrams. Pick source, target, and value columns from any SQL result and Basedash renders a responsive SVG flow chart with hover tooltips, drilldown variables, and optional per-node color overrides.

The AI chat agent knows how to build Sankeys directly from edge-list SQL results, so you can just describe the flow you want and Basedash picks the right shape and wiring on its own. Sankey charts work end-to-end across dashboards, Insights, and public renders.

Insights run on your schedule

Each organization can now choose how often Insights are generated: daily, weekdays only, weekly on a chosen day, or monthly on a specific date. Pick the cadence that matches how your team actually checks in instead of having Insights arrive every morning whether you need them or not.

The new controls live in Insights settings and apply across the org. We also brushed up surrounding copy that previously described Insights as daily-only.

Insights notifications now show the chart

When an Insight publishes to Slack or email, the post now includes a 700x500 image of the actual chart rendered server-side, with a clean text-only fallback if rendering fails. You get the visual context inline without having to click through to Basedash to see what changed.

We also rolled out a new public Insights API so you can list, generate, fetch (with raw chart data), and delete Insights programmatically—useful for piping insight outputs into your own workflows or pinning specific runs into your own tooling.

Chat can build and manage automations for you

The chat agent now has full read-and-write access to automations: it can list, create, update, and delete them, and successful tool calls render as clickable automation cards in the thread that take you straight to the automation detail page. Ask in natural language to spin up a recurring report or tweak a schedule and the agent does it inline with sensible defaults, instead of peppering you with follow-up questions.

The agent is also better at proactively suggesting automations when it sees a good fit, and it now anchors new chats to the conversation initiator and their browser time zone—so the schedules and recipients it picks default to the right person and the right local time.

Fixes and improvements

  • Sorted connected data sources alphabetically by display name across navigation, command menus, and selectors so they appear in a predictable order.
  • Unified active members, pending invites, and deactivated members into a single Members settings list with status filtering and live name/email search.
  • Surfaced pending invites in the group add-member picker so you can add invitees to groups before they accept.
  • Added dashboard folders to favorites—favorited folders show up as collapsible groups in the sidebar.
  • Let members with edit or manage access on a folder create dashboards inside it, instead of restricting folder-scoped dashboard creation to admins.
  • Refined chart card header layout so titles and action buttons no longer compete for space, and tightened hover/loader behavior.
  • Standardized secondary metric label styling across line, vertical bar, funnel, table, and number charts for a more consistent look at any width.
  • Fixed chart time zone edge cases so day and month buckets and date-only values no longer shift by a day depending on locale.
  • Fixed number chart label truncation so long secondary labels shrink and ellipsize while keeping the metric value fully visible.
  • Rendered mutating-query thinking steps in chat with status text and the full SQL block, so you can inspect exactly what the agent is about to run.
  • Switched generated Slack messages to Slack markdown blocks so tables, headers, dividers, task lists, and fenced code render cleanly instead of as raw text.
  • Tightened AI guidance for number chart labels so the secondary label stays short and unit-like instead of repeating the chart title.
  • Split the chat assistant job pool into user-initiated and automation queues so a fan-out of scheduled reports can’t slow down interactive chats.
May 8, 2026

Past chats are now a tap away on mobile

The mobile chat experience now has a dedicated chat history menu in the /mobile/chats header. Tap the new button to open a dropdown of your accessible past chats grouped by recency, and jump straight into any of them.

Each entry also shows the avatar of whoever created the chat, so it’s faster to spot your own threads versus ones a teammate kicked off—matching the behavior of the chat list on desktop.

Smoother line charts and a richer metric layout

Line charts now render with rounded SVG paths, a halo stroke, and a padded clip region, so lines look cleaner and don’t get cut off at the chart edges. Legends are smarter too: when metrics already convey the segment information, the legend won’t redundantly repeat it.

We also reworked how metrics show up across line, vertical bar, funnel, table, and number charts. Layouts are more consistent, secondary labels are standardized, and grouped vertical bar breakdowns now show per-segment metrics that light up the linked row when you hover. The legacy “breakdown legend” switch has been replaced by a more flexible “Label only” metric option. As a small but welcome bonus, extreme or invalid percent-change values are now capped at ±999% so KPIs never display a runaway number.

New Security setting to require Google sign-in

Admins can now require their organization’s members to sign in with Google. Flip the new toggle in Security settings and OTP and magic-link sign-in attempts will be transparently redirected back to the login page, where Google sign-in starts automatically with the user’s email pre-filled.

The setting plays nicely with your existing auth: SAML SSO still takes precedence when it’s configured, and the Google-required toggle is automatically disabled if you turn SSO on, so you can’t end up in a conflicting state.

Slack AI replies are simpler and quieter

When you mention the Basedash app in Slack, the assistant now stays on a single “Thinking” status while it works—no more noisy stream of intermediate reasoning or tool-call updates inside the thread. Once the answer is ready, Basedash posts the final response as a regular Slack message and clears the assistant status, so threads stay focused on the actual answer instead of mid-generation churn.

Fixes and improvements

  • Improved truncation and scrolling behavior for metrics in number, table, and funnel charts so long values stay readable.
  • Standardized secondary metric label styling across chart types for a more consistent look.
  • Smoothed the sign-in flow for invited users on Google-required orgs: OTP and magic-link entry points now route them straight into Google sign-in.
  • Tightened legend behavior for stacked vertical bar charts so they retain their legends where it makes sense.