2026 W39
Dashboard analysis, Cloud login, ClickHouse SCD2 materializations, reverse ETL destinations, and pipeline workflow improvements.
Date range: September 12-27, 2026. This release adds dashboard analysis tools, Cloud login for the Bruin CLI, ClickHouse SCD2 materializations, and reverse ETL destinations, while improving pipeline filtering, notifications, and run diagnostics.
Highlights
- Show images in dashboards and split a widget into tabs.
- Automatically trigger an agent when a pipeline run succeeds.
- Log in to Bruin Cloud from the CLI through your browser.
- SCD2 materializations for ClickHouse assets.
- New reverse ETL destinations: HubSpot and CleverTap.
Bruin Cloud
Dashboards
- New Image tables and widgets → In dashboard YAML, set a column or widget to
type: image, mapsrc,title,caption, andaltfields, and choosefit: containorcoverto render URL-backed images. Also available in DAC. - Improved Query result previews → Select a SQL chart or table widget → Results to inspect the raw rows behind a visualization without leaving the dashboard.
- New Tabbed widgets → In dashboard YAML, set
type: tabsto combine complete widgets in one container, with a separate query, encoding, notes, and download view for each tab. Also available in DAC. - New Tab-scoped filters → In dashboard YAML, add
tabto a filter to show it in that tab's filter bar; applying a filter now refreshes only widgets that use it. Also available in DAC. - New Dashboard notes → In dashboard YAML, define dimension-scoped notes and reuse them across widgets; publish the dashboard before agents use new or changed note definitions. Also available in DAC.
- New Drag-and-drop widget ordering → Open a dashboard in edit mode and drag widgets directly on the canvas, including widgets inside tabs.
- Improved Full-width widget defaults → Widgets without an explicit width now use all 12 columns in Cloud and repo-defined dashboards.
- Improved Dashboard filter validation → Dashboard filters validate declared values and reuse a shared options cache, so dependent dropdowns update more reliably and invalid selections fail clearly.
- Fix Dashboard editing fixes → Deleting a widget now reflows its row, row menus stay within the viewport, and move-to-folder remains available from the menu.
- Improved YAML editor indentation → Pressing Enter or pasting a multiline block keeps nested mappings and list mappings aligned with the current indentation.
Pipelines and runs
- New Pipeline tags and filters → In Pipelines, use tag badges, search by owner or tags, include unowned pipelines, and combine the filters with text search.
- Improved Next-run and status details → Pipeline and run pages now distinguish scheduled, continuous, unscheduled, loading, and unavailable states, keep statuses visible beside long run IDs, and show blocking or non-blocking check failures.
- Fix Run task status updates → Cloud run actions now mark task instances by default when a run is marked successful or failed, including bulk, API, backfill, and MCP actions.
- Fix Backfill run durations → Marked backfill runs without a real execution start no longer display inflated multi-day durations.
Data apps
- New Access controls → Use private or team visibility and grant individual viewer or editor access from the Share menu in the data-app list or builder.
Scheduled agents
- New Pipeline success triggers → In a scheduled agent's Schedule section, select one or more pipelines to start the agent when any scheduled run succeeds. Pipeline triggers work independently of cron schedules and Cloud notifications.
- Improved Advanced trigger conditions → Open Advanced to customize the event types and conditions used by a scheduled-agent trigger, while simple pipeline selections stay focused on scheduled runs.
- Improved Run history and trigger details → Browse scheduled-agent runs with a total count and Previous/Next pagination, and see whether each run started from a schedule, a manual action, or a pipeline.
Connections and GitHub
- Improved GCP service account uploads → In GCP connection forms and connection sets, choose Upload JSON file to populate the editable service-account field, with inline validation for invalid files.
- New Multiple GitHub accounts → Connect personal and organization GitHub installations together, filter repositories by account, and use the selected project's installation for GitOps writes.
- Improved GitHub connection controls → Team Settings now shows one clear GitHub connection status and one Refresh action that re-discovers installations without a browser round-trip.
- Fix Connection validation messages → Snowflake forms support password-only and key-pair authentication again, and rejected connection details are distinguished from an unreachable validation service.
Notifications and agents
- Improved Run-tag filters → Notification rules can filter on run tags such as
manual,scheduled, andbackfill, plus pipeline and asset owners and tags, with suggestions scoped to the selected projects, pipelines, and assets. - Improved Pipeline notification emails → Notification emails now use clearer success, warning, and failure cards with event details and direct links to the relevant run, asset, or quality check.
- Improved Permission guidance → Capability-gated dashboard, scheduled-run, and agent-chat pages now explain which Cloud CLI permission is missing and link directly to the settings needed to enable it.
- Improved Custom MCP secret handling → The custom MCP server form now directs secrets to Environment variables with
${VAR}references and keeps argument values out of saved labels. - Improved Warehouse-first data answers → When MCP servers are attached, agents now check the warehouse first for data questions and use MCP directly for actions or offered live pulls.
Bruin CLI
- New Cloud browser login → Run
bruin cloud loginto approve access in your browser, choose teams and a permission level, set an expiration, and store the credential locally; usebruin auth statusorbruin logoutto manage it. - New Scheduled-agent pipeline triggers → Use
bruin cloud scheduled-agents pipeline-trigger get|set|deleteto configure a scheduled agent's pipeline-success trigger with standard Cloud authentication and JSON output. - New Asset-level run status → Use
bruin cloud runs mark-status --assetto mark one asset instance successful or failed without changing the rest of the run. - Improved ClickHouse SCD2 and table options → Track row history with
scd2_by_timeorscd2_by_columnmaterializations, and set table engines, sort keys, TTL, and partitions in ClickHouse asset definitions. Materializations can also run across a cluster, and connections accept query settings. - New HubSpot reverse ETL options → HubSpot reverse ETL assets accept
incremental_strategy: updateto change existing records only anddeleteto archive them. Setreject_modeandwrite_nullsto control rejected rows and empty fields. - Improved Filtered pipeline runs →
bruin runnow validates dependencies against the selected assets when using--tagor--exclude-tag, so excluded assets no longer block discovery runs unnecessarily. - Fix Faster low-volume logs → Secret masking no longer holds ordinary low-volume CLI output for minutes before flushing.
- New Semantic note definitions → Define reusable, dimension-aware notes in semantic models with validated dimension options.
Bruin VS Code
- Fix Readable table-diff errors → The Table Diff panel now shows the actual CLI error message instead of the raw JSON error object when a diff fails.
DAC
- Fix Dark export backgrounds → PNG and PDF dashboard exports now preserve the active dark theme background.
ingestr
- New HubSpot and CleverTap reverse ETL → Write warehouse rows to HubSpot CRM objects and associations or CleverTap profiles and events through reverse ETL destinations, with matching and reject handling for each API.
- Improved Safer column renaming →
--columnsrenames now preserve values for schema-less sources, and automatic naming no longer mutates source schemas or primary keys during single-table and CDC runs. - Fix Fail-fast reverse ETL writes → A reverse ETL write error with
fail_fastnow stops the source read immediately instead of consuming the rest of the stream. - Improved BigQuery staging location → When a BigQuery destination omits
location,_bruin_stagingnow follows the target dataset's region. A mismatched existing staging dataset fails fast with an actionable error. - Fix Quieter Snowflake first runs → Handled destination-table probes no longer print misleading driver errors during normal ingestion; use
--debugwhen you need the driver's details.