<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://docs.tenzir.com/changelog/platform</id>
    <title>Tenzir Platform Changelog</title>
    <updated>2026-04-21T00:00:00.000Z</updated>
    <generator>Tenzir Changelog</generator>
    <author>
        <name>Tenzir</name>
        <uri>https://tenzir.com</uri>
    </author>
    <link rel="alternate" href="https://docs.tenzir.com/changelog/platform"/>
    <link rel="self" href="https://docs.tenzir.com/changelog/platform.xml"/>
    <subtitle>Release notes and changelog for Tenzir Platform</subtitle>
    <icon>https://docs.tenzir.com/favicon.svg</icon>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.31.0]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-31-0</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-31-0"/>
        <updated>2026-04-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release introduces organizations to the Tenzir Platform, giving teams a shared home for collaborating across workspaces with admin and member roles. Workspace management has also been enhanced with rename support and a unified Users tab for managing access.]]></summary>
        <content type="html"><![CDATA[<p>This release introduces organizations to the Tenzir Platform, giving teams a shared home for collaborating across workspaces with admin and member roles. Workspace management has also been enhanced with rename support and a unified Users tab for managing access.</p>

<h2>Features</h2>

<h3>Workspace management improvements</h3>
<p><small>Apr 21, 2026 · <a href="https://github.com/lava">@lava</a>, <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>Workspace management has been enhanced with new capabilities for administrators. You can now rename workspaces directly from the workspace settings, and the Users tab now provides a unified interface for managing workspace access. Administrators can view all users with access to a workspace in a single table and easily change user roles between member and admin roles using dropdown controls.</p>

<h3>Organizations</h3>
<p><small>Apr 21, 2026 · <a href="https://github.com/lava">@lava</a>, <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>The Tenzir Platform now supports organizations, giving teams a shared home for collaborating across workspaces. Organization admins can invite members, assign admin or member roles, and manage which workspaces belong to the organization. Members get access to all workspaces owned by the organization and can leave from their user settings at any time.</p>
<p>Learn more in the <a href="https://docs.tenzir.com/guides/platform-management/manage-organizations/">organization management guide</a>.</p>
]]></content>
        <published>2026-04-21T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.30.3]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-30-3</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-30-3"/>
        <updated>2026-04-09T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This patch release fixes an issue with the container build of the bundled seaweedFS image.]]></summary>
        <content type="html"><![CDATA[<p>This patch release fixes an issue with the container build of the bundled seaweedFS image.</p>
]]></content>
        <published>2026-04-09T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.30.2]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-30-2</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-30-2"/>
        <updated>2026-04-09T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release fixes an issue where the pipeline table stayed filtered after navigating away from a pipeline's detail page. It adds thousands separators to numeric values in the Insights tab for better readability. It also updates dependencies to address security issues.]]></summary>
        <content type="html"><![CDATA[<p>This release fixes an issue where the pipeline table stayed filtered after navigating away from a pipeline's detail page. It adds thousands separators to numeric values in the Insights tab for better readability. It also updates dependencies to address security issues.</p>

<h2>Changes</h2>

<h3>Readable numbers in the Insights tab</h3>
<p><small>Apr 7, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We added thousands separators to numeric values in the pipeline Insights tab, making large numbers easier to read at a glance.</p>

<h2>Bug Fixes</h2>

<h3>Fix pipeline table filter not clearing</h3>
<p><small>Apr 7, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We fixed an issue where the pipeline table stayed filtered after viewing a pipeline's detail page and navigating away to another tab. Returning to the Pipelines page would show only the previously viewed pipeline, and clearing the search had no effect.</p>
]]></content>
        <published>2026-04-09T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.30.1]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-30-1</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-30-1"/>
        <updated>2026-04-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release fixes an issue that prevented users from accessing the public Tenzir Platform instance at app.tenzir.com.]]></summary>
        <content type="html"><![CDATA[<p>This release fixes an issue that prevented users from accessing the public Tenzir Platform instance at app.tenzir.com.</p>
]]></content>
        <published>2026-04-02T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.30.0]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-30-0</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-30-0"/>
        <updated>2026-04-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release introduces a new Stream view in the Explorer that displays pipeline results as a continuous, expandable event list. It also adds a time range selector, sortable table columns, and copyable inspector values, alongside several bug fixes for package management and the library view.]]></summary>
        <content type="html"><![CDATA[<p>This release introduces a new Stream view in the Explorer that displays pipeline results as a continuous, expandable event list. It also adds a time range selector, sortable table columns, and copyable inspector values, alongside several bug fixes for package management and the library view.</p>

<h2>Features</h2>

<h3>Field selection in the table view</h3>
<p><small>Mar 27, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>You can now choose which fields are visible in the Explorer's table view. When you select a schema in the sidebar, its fields are listed below. Click a field to hide its column from the table. Shift+click a field to show only that field. A "fields hidden" indicator in the table header lets you clear all hidden fields at once. Field selections are remembered per schema and reset when you run a new pipeline.</p>

<h3>Schema filtering in the Stream view</h3>
<p><small>Mar 26, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>You can now filter events in the Stream view by clicking schemas in the sidebar. The schemas panel shows color-coded dots matching each schema's badge color, and selecting one or more schemas limits the view to only those events. Same-name schema variants are merged into a single entry in the sidebar for easier navigation.</p>

<h3>Stream view in the Explorer</h3>
<p><small>Mar 26, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We added a new Stream view to the Explorer that shows all pipeline results as a continuous list of expandable events. You can switch between the Table, Chart, and Stream views using the view selector in the toolbar. The Stream view displays events from all schemas together, with color-coded badges to distinguish between them. Each row shows a one-line preview that you can expand to inspect the full event. The view remembers your selection across pipeline runs, and the event list scrolls horizontally as a whole, with schema badges staying pinned on the left.</p>

<h3>Sortable columns in the Explorer table</h3>
<p><small>Mar 13, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>You can now sort the Explorer table by clicking column headers. Sortable columns show a sort indicator, and clicking cycles through ascending, descending, and unsorted states. Sorting works for both top-level and nested fields.</p>

<h3>Copyable field names and values in the inspector</h3>
<p><small>Mar 12, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>You can now click on field names and values in the Explorer inspector to copy them to the clipboard. Field names copy the full dot-separated path, and values copy their TQL representation.</p>

<h3>Time range selector in the Explorer</h3>
<p><small>Mar 12, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>You can now select a time range directly from the Explorer header. Choose from quick presets like 5 minutes or 12 hours, or open the custom popover to pick from a grid of relative durations or set an absolute date range. The selector is currently available for pipelines that start with the <code>export</code> operator.</p>

<h2>Changes</h2>

<h3>Unified package detail view in the library</h3>
<p><small>Mar 12, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We combined the 'About' and 'Install' tabs in the package detail drawer into a single scrollable view. Package information, examples, and configuration options are now shown on one page instead of requiring tab switches.</p>

<h2>Bug Fixes</h2>

<h3>Show custom packages in the library view</h3>
<p><small>Mar 24, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We fixed an issue where custom packages installed on a node were not visible in the library view. Previously, only packages from the official Tenzir library were shown. Custom packages are now included alongside library packages.</p>

<h3>Fix rotated text in package detail accordion</h3>
<p><small>Mar 24, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We fixed a bug where operator description text on the package detail page appeared rotated 90 degrees, overlapping other content.</p>

<h3>Package installs for packages with user-defined operators</h3>
<p><small>Mar 17, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>Packages containing user-defined operators can again be installed through the
platform. Previously, installing such packages failed because the operator
arguments were serialized incorrectly. This only affected installs through the
platform UI—command-line package installs were not impacted.</p>
]]></content>
        <published>2026-04-02T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.29.2]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-29-2</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-29-2"/>
        <updated>2026-03-12T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release upgrades dependencies to address known security vulnerabilities and fixes an issue where the Insights tab selection could get stuck in an invalid state.]]></summary>
        <content type="html"><![CDATA[<p>This release upgrades dependencies to address known security vulnerabilities and fixes an issue where the Insights tab selection could get stuck in an invalid state.</p>

<h2>Bug Fixes</h2>

<h3>Upgrade dependencies to fix known vulnerabilities</h3>
<p><small>Mar 12, 2026 · <a href="https://github.com/lava">@lava</a></small></p>
<p>We upgraded Python dependencies and added system-level package upgrades to the Docker images to address known vulnerabilities.</p>

<h3>Fix Insights tab guard not resetting tab selection</h3>
<p><small>Mar 11, 2026 · <a href="https://github.com/realllydan">@realllydan</a></small></p>
<p>We fixed an issue where switching away from a pipeline that has the Insights tab available to one that does not could leave the tab selection in an invalid state.</p>
]]></content>
        <published>2026-03-12T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.29.1]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-29-1</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-29-1"/>
        <updated>2026-03-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release fixes an issue where ephemeral nodes were causing the frontend to display a 500 error message or be displayed with incorrect connection status.]]></summary>
        <content type="html"><![CDATA[<p>This release fixes an issue where ephemeral nodes were causing the frontend to display a 500 error message or be displayed with incorrect connection status.</p>

<h2>Features</h2>

<h3>Add PRIVATE_WEBSOCKET_GATEWAY_ENDPOINT environment variable</h3>
<p><small>Mar 10, 2026 · <a href="https://github.com/lava">@lava</a></small></p>
<p>The app container now supports a <code>PRIVATE_WEBSOCKET_GATEWAY_ENDPOINT</code> environment variable that overrides the existing <code>PUBLIC_WEBSOCKET_GATEWAY_ENDPOINT</code> for calls in the app backend. This allows configuring different endpoints when the frontend and backend live in different networks.</p>

<h3>Add experimental Insights tab to pipeline detail view</h3>
<p><small>Mar 10, 2026 · <a href="https://github.com/realllydan">@realllydan</a></small></p>
<p>The pipeline detail modal now includes an experimental Insights tab that visualizes per-operator backpressure, helping users identify bottlenecks in their pipelines. This tab is only available for pipelines running on the experimental new executor.</p>

<h2>Bug Fixes</h2>

<h3>Fix ephemeral nodes not showing correctly in the UI</h3>
<p><small>Mar 10, 2026 · <a href="https://github.com/lava">@lava</a></small></p>
<p>We fixed an issue where ephemeral nodes were causing the frontend to fail to render or be displayed with incorrect connection status.</p>
]]></content>
        <published>2026-03-10T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.29.0]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-29-0</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-29-0"/>
        <updated>2026-03-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[With this release, the Tenzir Platform preserves deep links through the login flow, so users are redirected to their original destination after signing in. It also includes several bug fixes and a performance improvement for loading across the platform.]]></summary>
        <content type="html"><![CDATA[<p>With this release, the Tenzir Platform preserves deep links through the login flow, so users are redirected to their original destination after signing in. It also includes several bug fixes and a performance improvement for loading across the platform.</p>

<h2>Features</h2>

<h3>Preserve deep links through login flow</h3>
<p><small>Mar 5, 2026 · <a href="https://github.com/lava">@lava</a></small></p>
<p>When you click a deep link in Tenzir Platform but aren't logged in, you're now redirected to your original destination after signing in, instead of landing on the home page.</p>

<h2>Changes</h2>

<h3>Faster loading across the platform</h3>
<p><small>Feb 18, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We improved how the nodes list loads, making dependent views feel faster and more responsive across the platform.</p>

<h2>Bug Fixes</h2>

<h3>Fix blocked profile images for some login providers</h3>
<p><small>Feb 27, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We fixed an issue where profile images from Gravatar and Microsoft accounts were blocked by the content security policy, causing broken or missing avatars.</p>

<h3>Fix diagnostics showing data from the wrong pipeline</h3>
<p><small>Feb 27, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We fixed an issue where the diagnostics pane could show diagnostics from a different pipeline than the one currently open in the detail modal.</p>

<h3>Fix unstable context list order</h3>
<p><small>Feb 18, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We fixed an issue where the context list could appear in a random order when no search was active, causing items to jump around. The list now uses a stable alphabetical order so it stays consistent and easier to interact with.</p>

<h3>Fix unintended logout on inaccessible workspace links</h3>
<p><small>Feb 18, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We fixed an issue where opening a pipeline link for a workspace you don’t have access to would log you out. You are now redirected to the access page where you can open the link in your default workspace.</p>
]]></content>
        <published>2026-03-05T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.28.3]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-28-3</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-28-3"/>
        <updated>2026-02-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release improves the clarity and usability of Explorer charts with better legends, tooltips, and an expanded color palette. It also fixes several UI bugs including unresponsive pipeline lists and stale workspace cleanup.]]></summary>
        <content type="html"><![CDATA[<p>This release improves the clarity and usability of Explorer charts with better legends, tooltips, and an expanded color palette. It also fixes several UI bugs including unresponsive pipeline lists and stale workspace cleanup.</p>

<h2>Changes</h2>

<h3>Improved Chart Legends, Tooltips, and Colors</h3>
<p><small>Feb 18, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We improved the clarity and usability of Explorer charts. Legends are now collapsible, easier to read, and support filtering series directly. Pie chart legends adapt better to available space, and tooltips provide clearer information.</p>
<p>We also expanded the chart color palette for better visual distinction between series, fixed bar chart x-axis labels overlapping when there are many data points, and refined chart layout and behavior for a smoother overall experience.</p>

<h2>Bug Fixes</h2>

<h3>Fix workspace switcher not displaying Google profile pictures</h3>
<p><small>Feb 18, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>Resolved an issue where your Google profile picture did not appear in the workspace switcher. The image now loads and displays correctly.</p>

<h3>Fix stale loop variables in static workspace cleanup</h3>
<p><small>Feb 17, 2026 · <a href="https://github.com/lava">@lava</a></small></p>
<p>Fixed a bug where the static workspace synchronization used stale loop
variables during cleanup, causing stale workspaces to persist and the last
configured workspace to be incorrectly deleted.</p>

<h3>Fix pipeline list not responding after pressing ESC</h3>
<p><small>Feb 17, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We fixed an issue where pressing ESC to close a pipeline detail view caused the pipeline list to stop responding to clicks.</p>
]]></content>
        <published>2026-02-24T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.28.2]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-28-2</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-28-2"/>
        <updated>2026-02-17T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release brings the Platform's dependencies up to date with the latest CVE fixes.]]></summary>
        <content type="html"><![CDATA[<p>This release brings the Platform's dependencies up to date with the latest CVE fixes.</p>

<h2>Bug Fixes</h2>

<h3>Patch security vulnerabilities</h3>
<p><small>Feb 17, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We updated the Platform's underlying framework dependencies to include their latest security fixes.</p>
]]></content>
        <published>2026-02-17T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.28.1]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-28-1</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-28-1"/>
        <updated>2026-02-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release upgrades pnpm to 9.15.0 in the frontend Docker image to address CVE-2024-53866.]]></summary>
        <content type="html"><![CDATA[<p>This release upgrades pnpm to 9.15.0 in the frontend Docker image to address CVE-2024-53866.</p>

<h2>Bug Fixes</h2>

<h3>Security update for pnpm CVE-2024-53866</h3>
<p><small>Feb 10, 2026 · <a href="https://github.com/lava">@lava</a></small></p>
<p>We upgraded pnpm to 9.15.0 in the frontend Docker image to address CVE-2024-53866.</p>
]]></content>
        <published>2026-02-10T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.28.0]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-28-0</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-28-0"/>
        <updated>2026-02-09T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release unifies the library's Available and Installed tabs into a single view, making package management more streamlined. It also adds pipeline activity sorting, series isolation in activity charts, a line wrap toggle in the Inspector, platform version display, and a backslash escaping fix.]]></summary>
        <content type="html"><![CDATA[<p>This release unifies the library's Available and Installed tabs into a single view, making package management more streamlined. It also adds pipeline activity sorting, series isolation in activity charts, a line wrap toggle in the Inspector, platform version display, and a backslash escaping fix.</p>

<h2>Features</h2>

<h3>Isolate series in pipeline activity chart</h3>
<p><small>Feb 6, 2026 · <a href="https://github.com/gitryder">@gitryder</a> · <a href="https://github.com/tenzir/platform/pull/64">#64</a></small></p>
<p>You can now click on the Ingress or Egress legend item to isolate that series in the activity chart. Clicking again shows both series, making it easier to analyze each metric when lines overlap.</p>

<h3>Wrap lines in the Inspector</h3>
<p><small>Feb 6, 2026 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We added a toggle in the Explorer table Inspector that lets you wrap lines for easier reading.</p>

<h3>View the current platform version</h3>
<p><small>Feb 3, 2026 · <a href="https://github.com/gitryder">@gitryder</a> · <a href="https://github.com/tenzir/platform/pull/42">#42</a></small></p>
<p>We now display the current platform version at the bottom of the workspace switcher dropdown,️ making it easier to always see which version you’re on.</p>

<h3>Sort pipelines by activity</h3>
<p><small>Jan 28, 2026 · <a href="https://github.com/gitryder">@gitryder</a> · <a href="https://github.com/tenzir/platform/pull/38">#38</a></small></p>
<p>We added sorting for the Live Activity column in the pipelines table, so you can easily order pipelines by their activity level.</p>

<h2>Changes</h2>

<h3>Unified library tabs</h3>
<p><small>Jan 28, 2026 · <a href="https://github.com/gitryder">@gitryder</a> · <a href="https://github.com/tenzir/platform/pull/29">#29</a></small></p>
<p>We unified the Available and Installed library tabs into a single view, so you can see which packages are installed without switching tabs. You can also uninstall packages directly from the same page.</p>

<h2>Bug Fixes</h2>

<h3>Fixed backslash escaping in TQL string rendering</h3>
<p><small>Feb 9, 2026 · <a href="https://github.com/lava">@lava</a></small></p>
<p>We fixed a bug in the Inspector where strings containing backslashes were not displayed correctly. Backslashes were not being escaped in TQL string rendering. For example, a string like <code>Hello \World\</code> was previously rendered as <code>"Hello \World\"</code> instead of <code>"Hello \\World\\"</code>. The fix ensures backslashes are properly escaped when displayed.</p>
]]></content>
        <published>2026-02-09T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.27.1]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-27-1</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-27-1"/>
        <updated>2026-02-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release fixes a bug where users could experience authentication failures due to stale user keys in their session. The platform now proactively checks for expired keys and refreshes them automatically.]]></summary>
        <content type="html"><![CDATA[<p>This release fixes a bug where users could experience authentication failures due to stale user keys in their session. The platform now proactively checks for expired keys and refreshes them automatically.</p>

<h2>Bug Fixes</h2>

<h3>Fixed workspace switcher on pipeline detail page</h3>
<p><small>Feb 2, 2026 · <a href="https://github.com/gitryder">@gitryder</a> · <a href="https://github.com/tenzir/platform/pull/56">#56</a></small></p>
<p>We fixed an issue where the workspace switcher dropdown did not open on the pipeline detail page.</p>

<h3>User key expiration handling</h3>
<p><small><a href="https://github.com/lava">@lava</a></small></p>
<p>Fixed a bug that could leave users with a stale user key in their session, causing authentication failures. The platform now proactively checks for expired user keys and refreshes them automatically.</p>
]]></content>
        <published>2026-02-02T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.27.0]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-27-0</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-27-0"/>
        <updated>2026-01-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release improves the pipeline detail view with faster loading and a convenient close button for quick navigation. Error messages are now cleaner with collapsible technical details, and we fixed issues where the UI could hang or become unresponsive. This release also includes security hardening for standalone deployments, including server-side token storage, configurable security headers, and Content Security Policy support.]]></summary>
        <content type="html"><![CDATA[<p>This release improves the pipeline detail view with faster loading and a convenient close button for quick navigation. Error messages are now cleaner with collapsible technical details, and we fixed issues where the UI could hang or become unresponsive. This release also includes security hardening for standalone deployments, including server-side token storage, configurable security headers, and Content Security Policy support.</p>

<h2>Features</h2>

<h3>Add security headers and CSP for standalone deployment</h3>
<p><small>Jan 22, 2026 · <a href="https://github.com/lava">@lava</a></small></p>
<p>The platform frontend now supports configurable response headers and Content Security Policy (CSP) for standalone deployments.</p>
<p>Set <code>TENZIR_PLATFORM_UI_ENABLE_RESPONSE_HEADERS_DEFAULT=true</code> to enable default security headers (X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, Cross-Origin-Opener-Policy, Cross-Origin-Resource-Policy). Use <code>TENZIR_PLATFORM_UI_RESPONSE_HEADERS_DEFAULT</code> with a JSON object to override with custom headers.</p>
<p>Set <code>TENZIR_PLATFORM_UI_ENABLE_RESPONSE_HEADERS_HSTS=true</code> to enable HTTP Strict Transport Security for HTTPS deployments.</p>
<p>Set <code>TENZIR_PLATFORM_UI_ENABLE_RESPONSE_HEADERS_CSP=true</code> to enable Content Security Policy, which helps prevent XSS and other injection attacks.</p>

<h3>Faster pipeline detail view</h3>
<p><small>Jan 21, 2026 · <a href="https://github.com/gitryder">@gitryder</a> · <a href="https://github.com/tenzir/platform/pull/19">#19</a></small></p>
<p>We improved how pipeline details load, making the view faster than before when navigating between pipelines. We also added a close button next to the overflow menu on the right so you can quickly exit a pipeline while browsing pipeline details.</p>

<h3>Store authentication tokens server-side</h3>
<p><small>Jan 20, 2026 · <a href="https://github.com/lava">@lava</a></small></p>
<p>Authentication tokens (idToken and userKey) are now stored in the server-side session database instead of browser cookies. This improves security by keeping sensitive tokens accessible only via the session cookie identifier, preventing direct client-side access to authentication credentials.</p>

<h3>Add optional Caddy reverse proxy for seaweed S3 storage</h3>
<p><small>Jan 19, 2026 · <a href="https://github.com/lava">@lava</a></small></p>
<p>The seaweed S3 storage component now supports an optional Caddy reverse proxy that improves S3 error handling. Set <code>TENZIR_ENABLE_CADDY=true</code> to enable it. The reverse proxy intercepts 404 responses and returns proper S3-style error messages.</p>

<h2>Changes</h2>

<h3>Cleaner error messages</h3>
<p><small>Jan 21, 2026 · <a href="https://github.com/gitryder">@gitryder</a> · <a href="https://github.com/tenzir/platform/pull/37">#37</a></small></p>
<p>We now hide technical error details in error messages. You can click "Show error details" to expand them anytime, and use the copy button to share with support.</p>

<h2>Bug Fixes</h2>

<h3>Fix hangup in UI</h3>
<p><small>Jan 26, 2026 · <a href="https://github.com/lava">@lava</a></small></p>
<p>Fixed a potential infinite hang in the Tenzir UI that could
be triggered by a rare race condition where the Tenzir Node
returned duplicate pipeline ids.</p>

<h3>Fixed pipeline deletion</h3>
<p><small>Jan 21, 2026 · <a href="https://github.com/gitryder">@gitryder</a> · <a href="https://github.com/tenzir/platform/pull/19">#19</a></small></p>
<p>We fixed an issue where deleting a pipeline could cause the interface to become unresponsive.</p>
]]></content>
        <published>2026-01-26T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.26.0]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-26-0</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-26-0"/>
        <updated>2025-12-23T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release adds HashiCorp Vault as an external secret store for workspaces. The integration supports token and AppRole authentication with the KV v2 secrets engine.]]></summary>
        <content type="html"><![CDATA[<p>This release adds HashiCorp Vault as an external secret store for workspaces. The integration supports token and AppRole authentication with the KV v2 secrets engine.</p>

<h2>Features</h2>

<h3>HashiCorp Vault secret store support</h3>
<p><small>Dec 23, 2025 · <a href="https://github.com/lava">@lava</a>, <a href="https://github.com/mavam">@mavam</a></small></p>
<p>You can now use HashiCorp Vault as an external secret store for your workspaces.
The integration supports token and AppRole authentication methods, and works
with the KV v2 secrets engine. Add a Vault secret store via the CLI:</p>
<pre><code class="language-bash">tenzir-platform secret store add vault \
  --address=https://vault.example.com \
  --mount=secret \
  --token=&#x3C;token>
</code></pre>
<p>Or with AppRole authentication (recommended for production):</p>
<pre><code class="language-bash">tenzir-platform secret store add vault \
  --address=https://vault.example.com \
  --mount=secret \
  --role-id=&#x3C;id> --secret-id=&#x3C;id>
</code></pre>
<p>The <code>--mount</code> option specifies the path to a KV v2 secrets engine. For Vault
Enterprise, use <code>--namespace</code> to specify the namespace. Vault secrets are
returned as JSON by default. Append a <code>:key</code> suffix to retrieve a specific field
as a string, for example, <code>secret("database:password")</code>.</p>

<h3>Custom gateway URL in deployment instructions</h3>
<p><small>Dec 22, 2025 · <a href="https://github.com/lava">@lava</a></small></p>
<p>When using a Sovereign Edition instance of the Tenzir Platform with a custom
Tenzir Gateway URL, the "Other" tab now displays the gateway endpoint for easy
copying.</p>
]]></content>
        <published>2025-12-23T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.25.1]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-25-1</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-25-1"/>
        <updated>2025-12-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This patch release fixes an issue with default filesystem paths in the Tenzir Platform docker containers for Sovereign Edition users.]]></summary>
        <content type="html"><![CDATA[<p>This patch release fixes an issue with default filesystem paths in the Tenzir Platform docker containers for Sovereign Edition users.</p>

<h2>Changes</h2>

<h3>Replace tenant_manager/ path with platform_api/ in example configs</h3>
<p><small>Dec 16, 2025 · <a href="https://github.com/lava">@lava</a></small></p>
<p>We switched the docker images used by our example setups from one combined <code>tenzir/platform</code> image for both the Tenzir Platform API and the Tenzir Gateway to use separate images <code>tenzir/platform-api</code> and <code>tenzir/platform-gateway</code>.</p>
<p>⚠️ <strong>NOTE</strong>: We continue building and uploading the combined <code>tenzir/platform</code> image, although we recommend switching to the new images. Due to an internal CI issue, for versions <code>v1.24.0</code> and <code>v1.25.0</code> it is necessary to change the configured command from <code>tenant_manager/*</code> to <code>platform_api/*</code>, for example <code>tenant_manager/rest/server/local.py</code> becomes <code>platform_api/rest/server/local.py</code>. We recommend skipping these versions if possible.</p>
]]></content>
        <published>2025-12-16T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.25.0]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-25-0</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-25-0"/>
        <updated>2025-12-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release includes some UI fixes and minor improvements to smooth out common workflows. We fixed incorrect rendering of negative durations, resolved an issue where the node selector reset during navigation, and addressed a layout issue that could hide the install button in the package drawer.]]></summary>
        <content type="html"><![CDATA[<p>This release includes some UI fixes and minor improvements to smooth out common workflows. We fixed incorrect rendering of negative durations, resolved an issue where the node selector reset during navigation, and addressed a layout issue that could hide the install button in the package drawer.</p>

<h2>Bug Fixes</h2>

<h3>Fixed node selector resetting on navigation</h3>
<p><small>Dec 17, 2025 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>The node selector now remembers your last selected node when navigating between pages. Previously, it would reset to the default node unexpectedly.</p>

<h3>Fixed incorrect rendering of negative durations</h3>
<p><small>Dec 17, 2025 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We fixed an issue where negative durations did not display correctly in the app. They now render as expected.</p>

<h3>Fix hidden footer in package drawer</h3>
<p><small>Dec 11, 2025 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We fixed an issue where the footer in the pinned package drawer could become hidden. The layout now adjusts correctly so the install button always stays visible.</p>
]]></content>
        <published>2025-12-15T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.24.0]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-24-0</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-24-0"/>
        <updated>2025-12-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release includes many small UI fixes, as well as new TLS options for the websocket gateway.]]></summary>
        <content type="html"><![CDATA[<p>This release includes many small UI fixes, as well as new TLS options for the websocket gateway.</p>

<h2>Features</h2>

<h3>Add option to require client certificates for the Tenzir Gateway</h3>
<p><small>Dec 17, 2025 · <a href="https://github.com/lava">@lava</a></small></p>
<p>Add a new TENZIR_PLATFORM_REQUIRE_CLIENT_CERTS environment variable that, when set to true, requires connecting clients to present a valid certificate signed by one of the CAs specified in TLS_CAFILE.</p>

<h3>Add option to require client certificates for the Tenzir Gateway</h3>
<p><small>Dec 10, 2025 · <a href="https://github.com/lava">@lava</a></small></p>
<p>The Tenzir Gateway now understands the new <code>TENZIR_PLATFORM_REQUIRE_CLIENT_CERTS</code> environment
variable that, when set to true, requires connecting clients to present a valid certificate
signed by one of the CAs specified in <code>TLS_CAFILE</code>.</p>

<h2>Bug Fixes</h2>

<h3>Fixed total ingress/egress showing incorrect values after page reload</h3>
<p><small>Dec 17, 2025 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>Previously, the total ingress and egress metrics could show incorrect values after reloading the page. They now correctly display data for the last 24 hours.</p>
]]></content>
        <published>2025-12-10T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.23.1]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-23-1</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-23-1"/>
        <updated>2025-11-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We fixed an issue where dashboard cells without a fixed node ID sometimes failed to render. These cells now render correctly using sensible fallbacks.]]></summary>
        <content type="html"><![CDATA[<p>We fixed an issue where dashboard cells without a fixed node ID sometimes failed to render. These cells now render correctly using sensible fallbacks.</p>

<h2>Bug Fixes</h2>

<h3>Fix blank dashboard cells</h3>
<p><small>Dec 17, 2025 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We fixed an issue where dashboard cells with no fixed node ID sometimes did not render. Those cells now display correctly using sensible fallbacks.</p>
]]></content>
        <published>2025-11-24T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tenzir Platform v1.23.0]]></title>
        <id>https://docs.tenzir.com/changelog/platform/v1-23-0</id>
        <link href="https://docs.tenzir.com/changelog/platform/v1-23-0"/>
        <updated>2025-11-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The seaweedfs service in our example setups now runs as non-root user and automatically adds the correct CORS headers. Be sure to read the \"Changes\" section below if you're using it in a self-hosted environment. As always, a slew of frontend improvements are included in this release as well.]]></summary>
        <content type="html"><![CDATA[<p>The seaweedfs service in our example setups now runs as non-root user and automatically adds the correct CORS headers. Be sure to read the "Changes" section below if you're using it in a self-hosted environment. As always, a slew of frontend improvements are included in this release as well.</p>

<h2>Features</h2>

<h3>Type Icons in the Explorer</h3>
<p><small>Dec 17, 2025 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We replaced text labels with icons for types in the Explorer table header, giving it a cleaner, more compact look. You can hover over any icon to see the full type name.</p>

<h3>Fix some issues with the seaweed container</h3>
<p><small>Dec 17, 2025 · <a href="https://github.com/lava">@lava</a></small></p>
<p>The docker compose example stacks now add the correct CORS setting for the upload and download endpoints by default.</p>

<h3>Editor Shortcuts Help</h3>
<p><small>Dec 17, 2025 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>The editor now includes a shortcuts help section that shows useful keyboard shortcuts at a glance. You can open it by clicking the info button next to the copy pipeline link button.</p>

<h2>Changes</h2>

<h3>Switch default user for seaweed container</h3>
<p><small>Dec 17, 2025 · <a href="https://github.com/lava">@lava</a></small></p>
<p>To conform with best practices, we updated the <code>tenzir-seaweed</code> image to use a non-root user by default.</p>
<p><strong>NOTE</strong>: This is a breaking change due to the updated permissions of the seaweed data volume.
If you have an existing docker compose stack, either manually specify the root user in your <code>docker-compose.yaml</code>:</p>
<pre><code class="language-yaml">services:
  seaweed:
    user: root
</code></pre>
<p>Or run a one-time command after upgrading to change the permissions of the seaweed data volume:</p>
<pre><code class="language-sh">docker compose run --user root --entrypoint /bin/sh seaweed
$ chown -R seaweed:seaweed /var/lib/seaweedfs
</code></pre>

<h2>Bug Fixes</h2>

<h3>Fixed background color on the pipeline detail page</h3>
<p><small>Dec 17, 2025 · <a href="https://github.com/gitryder">@gitryder</a></small></p>
<p>We fixed an issue that caused the pipeline detail page to show an incorrect background color.</p>

<h3>Fix static dashboard configuration issues</h3>
<p><small>Dec 17, 2025 · <a href="https://github.com/lava">@lava</a></small></p>
<p>Fixed an issue that could lead to statically configured dashboards not being shown on the Dashboards page.</p>
]]></content>
        <published>2025-11-20T00:00:00.000Z</published>
    </entry>
</feed>