November 2025

Bluebricks Release Notes

Promote & Inspect

This release introduces powerful new workflow capabilities, including the ability to promote deployments across environments and a full in-app blueprint viewer. Alongside these upgrades, we've delivered significant improvements in usability, performance, and API consistency, along with a focused set of stability fixes across cost handling, package validation, and slim configuration generation.

🚀 New Features

Promote deployments from Graph and Deployment pages

You can now promote a deployment directly from both the Graph view and the Deployment page. A new modal lets you select a target environment (excluding the current one) and sends you to Deploy with the selected run’s configuration automatically prefilled.

What it means for you: Promoting deployments is faster and less error-prone. No more rebuilding configuration manually or navigating through multiple screens.


View Blueprint in the app

A new read-only Blueprint view page lets you inspect any blueprint version in detail. The page mirrors the familiar creation layout and includes a version switcher, packages list, inputs, tags, and a full code view.

What it means for you: You can quickly explore blueprint history, audit configuration changes, and understand version differences—all without leaving the app or opening external files.

⚡ Improvements

New /api/v1/user/me endpoint

Introduces an authenticated endpoint that derives the user from the JWT and returns consistent user details.

Simplified Run deployment components

Run deployment logic and state have been centralized into the root component, making child components purely presentational. This reduces side effects and improves maintainability.

Custom accessible Drawer component

Replaces the legacy Material Tailwind Drawer with a fully accessible, keyboard-friendly custom Drawer. It supports multiple placements, a focus trap, a consistent overlay, and is now used across logs, JSON drawers, and all sidebar panels.

Truncated long values in Blueprint Inputs

Long field names and values in the blueprint wizard are now truncated with an ellipsis and spaced correctly, preventing layout clashes while keeping the content readable.

Invite button disabled until email is entered

The Invite User modal now keeps the action button disabled until a valid email is entered, improving clarity and avoiding no-op clicks.

Multi-select tag filtering for Packages

Blueprints and Artifacts tables now support filtering by multiple tags at once. Tag options come directly from the backend filters API for accuracy.

Reduced noise from synthetic DOM Event errors

Synthetic DOM Event errors without an underlying error object are now filtered out before reaching Sentry, keeping monitoring focused on actionable issues.

Improved cost policy microcopy and yearly estimate

Cost guardrail wording has been refined (“Limit monthly costs” and “Current usage”), and an inline yearly estimate is now shown and updated automatically as users adjust limits.

Persist plan metadata per deployment run

Plan metadata is now stored directly in deployment activity records for final stages, improving performance and reducing unnecessary plan recomputation. Fallback logic ensures compatibility with older runs.

JWT authentication warnings instead of errors

Missing or invalid JWTs now log at the warning level rather than error level, reducing noise from expected traffic—while still returning the correct 401 status.

Package filters use only latest versions

The filters API now derives artifacts, technologies, and tags exclusively from the latest package versions, with tag grouping by type. This fixes inconsistencies in filtering behavior.

User-initiated state unlock without lock ID

The lock delete API now allows UI-triggered state unlocks without requiring the lock ID, while still enforcing strict validation for runners and basic-auth integrations.

Consistent terminology in Environment Overview

Environment Overview now uses "Monthly cost" consistently, aligning with the cost policy wording.

Improved navigation after disabling a blueprint

Disabling a blueprint now redirects back to the Packages list with a clear notification instead of leaving users on a stale detail page.

Refined Review button behavior

The Review button appears only on hover or focus and only when a deployment has runs, improving clarity in the Deployments table.

🐛 Bug Fixes

Stabilized pods during Infracost outages

Production pods now remain stable during Infracost 503s. Improvements include process-level error handling, socket-error protection, concurrency limits, and a circuit breaker with timeouts and cooldown.

Allow bricks_ properties in child packages

Blueprint publishing no longer fails on child packages that use bricks_ prefixed internal properties (e.g., bricks_depends).

Correct tag aggregation across package versions

Tag handling in the blueprint editor is now accurate across versions: duplicates are merged, removed packages clear their tags, and re-adding versions no longer removes tags from others.

Fixed inactive Review button on deployments without runs

Deployments without runs no longer show an inactive Review button unless hovered or focused.

Correct "Set as default" success message

Setting an environment as default now displays the correct confirmation message instead of the clone success message.

Slim JSON now reflects child property changes

Slim JSON generation now correctly includes modifications to child package properties and outputs, ensuring slim files stay in sync with raw configurations.

Guardrails & Polish

This release focuses on stronger cost guardrails, safer blueprint creation, and a smoother configuration experience, especially around Bricks.json and deployment flows. We’ve also delivered a set of targeted UX and reliability fixes to keep your plans, inputs, and in-app support running smoothly.

🚀 New Features

No new major features in this release—this update is dedicated to refining existing workflows, tightening cost controls, and improving overall stability.

⚡ Improvements

Plan approval guardrails for cost overruns

The Plan page now includes cost guardrails. When a deployment exceeds the environment’s defined budget limit, approval is automatically blocked for non-admin users.

Environment-level policy for pre-release blueprint versions

A new policy toggle under Environment → Policies lets you explicitly allow deployments that use pre-release blueprint versions, giving you more flexibility when testing early builds.

Slim/Raw switch in Bricks.json viewer

The Bricks.json viewer now includes a Slim / Raw switch. The Slim view loads by default (when available) to provide a cleaner, more focused view of configuration data, while Raw gives you full underlying JSON.

Slim configuration displayed as YAML

Slim Bricks.json configurations are now rendered in YAML format, making them easier to read and clearly distinguish from full JSON configurations.

Unsaved-changes warning in blueprint creation

The blueprint creation flow now tracks unsaved changes. If you try to navigate away with pending edits, you’ll see a confirmation modal so you don’t lose work by accident.

🐛 Bug Fixes

Fixed environment dropdown loader on Deploy

Resolved an issue where the Target Environment field on the Deploy page could get stuck in an infinite loading state for certain deployments.

Stable cursor when entering spaced numeric values

The cursor now stays in the correct position when adding spaces between numeric values in Allowed Values fields, preventing jumps that interrupted data entry.

Accurate empty property count in Plan tooltip

The tooltip on the Plan page that shows the count of empty properties now correctly reflects the actual number of affected values.

Fixed input focus when typing $outs references

Typing $outs. on the Deploy page no longer causes the input field to lose focus, making it smoother to work with output references.

Standardized output references to lowercase data.

Output references are now consistently prefixed with lowercase data., eliminating confusion from mixed casing.

Reliable loading of in-app help articles

Pylon knowledge base articles now load reliably. The integration waits for authentication before initialization, preventing errors that previously required a page refresh.

Safe, Smooth, Supported

This release focuses on safer infrastructure execution, smoother in-app support, and a more intuitive experience across environments, deployments, and drift detection. We’ve also shipped several backend enhancements for better observability and API clarity, plus a round of targeted bug fixes to keep everything feeling fast and reliable.

🚀 New Features

Graceful termination for infrastructure executors

Infrastructure runs now handle termination signals gracefully for Terraform, Tofu, Helm, and Kubernetes executions. Runs cleanup correctly, avoids leaving orphaned processes, and reports accurate exit codes.

What it means for you: Cancelling or stopping a run is now safer and more predictable, reducing the risk of hanging jobs, misleading statuses, or partial cleanup in your environments.

In-app support chat with Pylon widget

We've replaced the previous embedded form with a new in-app chat widget, powered by Pylon. You can now start a conversation with support directly from the interface without switching tools.

What it means for you: Getting help is faster and more convenient. Open the in-app chat to ask questions, share context, and resolve issues in real time.

⚡ Improvements

Package API now includes publisher details

The GET /api/v1/package endpoint now includes a published_by field with full user details, making it easier to understand who published a given package version.

Faster metadata fetching for deployment runs

Metadata is now stored directly on the deployment_activities table and read from the database instead of being recalculated on the fly, especially for final run stages.

Dedicated system identity for scheduled jobs

Scheduled jobs now run under a dedicated system user identity, improving audit logs and making it clearer which actions are triggered automatically versus by real users.

Environments list and page refresh

The environments table and environment details page have been redesigned with new columns (including cost and owners), updated action menus, an improved layout, and a cost summary in the Overview tab.

Proactive alerts for Redis memory usage

We’ve added proactive monitoring for Redis memory usage, with thresholds at 80% (warning) and 90% (critical), including alert routing to our internal notification channels.

Write support in the State API

The State API now supports creating and updating deployment states, including compatibility for both legacy and base64 identifiers.

"Assigned environments" in My Profile

Your profile page now includes an “Assigned environments” section showing your environments, role, provider, and a quick review link.

Smoother browsing of large outputs lists

Outputs pages now use infinite scrolling and a debounced search for large result sets, preventing UI freezes when working with many outputs.

Non-blocking drift detection

Drift detection now runs in parallel without blocking other runs, so drift checks won't hold up your everyday deployment workflows.

Cleanup of deprecated environment policy API

A temporary environment policy PATCH endpoint has been fully removed following frontend migration, reducing surface area for deprecated APIs.

Deployments sorted newest first

Deployment lists now show the most recent deployments at the top, so the most relevant activity is always immediately visible.

Outputs filters sorted by latest deployments

Deployment slugs in Outputs filters are now ordered by creation date (newest first), making it easier to find recent deployments.

Clearer publish error messages for packages

When a package publish fails due to invalid configuration, error responses now include the package ID and version to speed up debugging.

More structured log metadata

Dynamic contextual information has been moved into structured metadata fields, resulting in cleaner logs and more consistent log formats.

Quick "View Deployment" from runs

The runs table and plan view now include a “View Deployment” action, letting you jump straight from an individual run to its related deployment.

Accurate active header highlighting

The application header now correctly highlights the active section based on the page you’re viewing, improving navigation clarity.

"Members" renamed to "Users”

In Account Settings, “Members” has been renamed to “Users” for clearer and more consistent terminology throughout the app.

Environment page UI cleanup

The environment page has been tidied up by removing an unused drawer icon and refining call-to-action text for better readability.

Better Drift tab UX

The Drift tab now displays a “paused” badge and clearer On/Off indicators, so you can immediately see the status of drift detection for a deployment.

Frontend types updated for backend parity

Frontend type definitions have been synced to @bluebricks-dev/[email protected], ensuring UI and backend stay aligned.

Filter environments by user via API

The GET /api/v1/environments endpoint now accepts a user_id query parameter, enabling user-specific environment filtering (used in My Profile and related views).


🐛 Bug Fixes

CLI bump no longer adds null outputs

Fixes an issue where running bricks bp bump could introduce unintended null values into the outputs map.

Uninstall disabled for draft and non-connected deployments

You can no longer uninstall deployments that are still in draft status or not connected to a cloud environment, preventing invalid uninstall actions.

Redundant log polling stopped after final state

Once a deployment reaches a final state, the UI now stops sending redundant log polling requests, reducing unnecessary network traffic.

Missing icons in the create flow restored

The blueprint create flow now properly displays copy/info icons and fixes a dropdown icon visibility issue, restoring the intended visual cues.

Long package names no longer break layout

Excessively long package names on the Create page are now constrained in the rename input and no longer misalign action buttons.

Faster promote environment list

The promote environment list now filters out empty cloud environments, significantly improving load times for accounts with many unused environments.

Plan header status animation fixed

Fixes a visual glitch in the plan header when switching between entries in the plan history, resulting in smoother transitions.

Newly added packages stay expanded

When adding packages to a list, newly added packages now remain expanded by default as intended, instead of collapsing immediately.

Last updated

Was this helpful?