[//]: # (This file is auto-generated by bin/refresh_remote_content) [//]: # (Do not edit manually - changes will be overwritten) # Karafka Web Changelog ## Karafka Web Changelog / 0.11.6 (2026-02-01) - **[Feature]** Provide ability to pause/resume all partitions of a topic at once across all consumer processes via the Health Overview page (Pro). Topic-level commands are broadcast to all processes, and each process applies the command to partitions it owns within the specified consumer group. This simplifies bulk operations compared to pausing/resuming individual partitions one by one. - [Enhancement] Optimize partition command tracker to use index-based lookup instead of iterating over 10,000 partitions during rebalance events. The tracker now maintains a partition index for O(n) lookups where n is the number of partitions with pending commands. - [Enhancement] Report `group.instance.id` (static membership ID) per subscription group in consumer reports. This enables identifying consumers using Kafka's static group membership feature. The ID is displayed in the per-consumer subscription view header and in Health Overview below each process ID, making it easy to find a process by its static membership ID. Consumer schema version bumped to 1.6.0. - [Enhancement] Display `min.insync.replicas` alongside replication factor on the topic replication page with fault tolerance indicators (Pro). Shows specific warnings for different resilience issues: no redundancy (RF=1), zero fault tolerance (RF ≤ minISR), and low durability (minISR=1). Each warning includes impact details, environment-aware severity messaging, and recommended actions. Helps users identify misconfigured topics that would cause outages or data loss. - [Enhancement] Add `.options` CSS class for table columns containing action buttons, providing consistent `width: 1%; white-space: nowrap` styling to prevent column width fluctuation. - [Enhancement] Add commands topic presence status check for Pro users. Warns when the `karafka_consumers_commands` topic is missing, which is required for commanding features (pause, resume, trace). - [Enhancement] Disable "Quiet All" and "Stop All" buttons when only swarm or embedded consumers are running (Pro). These commands only work on standalone consumer processes. - [Enhancement] Use low-ack producer variant (`acks: 0`) for Web UI reporting. Since Web UI reporting serves analytical purposes, fire-and-forget semantics minimize latency and overhead while occasional message loss is acceptable. Falls back to the original producer for idempotent/transactional producers. - [Refactor] Refactor Status model into a DSL-based architecture with individual check classes. Each status check is now a separate class in `Karafka::Web::Ui::Models::Status::Checks` that declares its dependencies using `depends_on :check_name` DSL. Shared state is managed through a `Context` class, and the `Step` struct has been extracted to its own file. This improves maintainability, testability, and makes it easier to add new status checks in the future. - [Fix] Fix session keys to use strings instead of symbols for compatibility with Roda's session management. - [Fix] Fix actions and selector alignment in explorer and errors views by wrapping col-span elements in proper grid container. ## Karafka Web Changelog / 0.11.5 (2025-11-14) - [Enhancement] Utilize newly released Roda session management `:env_key` to isolate Karafka Web session from the main application session. ## Karafka Web Changelog / 0.11.4 (2025-11-01) - [Enhancement] Show placeholder rows for partitions with no data during rebalances in health view. The UI now displays all topic partitions (0 to N-1) with "No data available" indicators for partitions currently being rebalanced, preventing confusion from disappearing partitions. Consumer reports now include `partitions_cnt` field extracted from librdkafka statistics. Consumer schema version bumped to 1.5.0 (breaking change). - [Enhancement] Track and report UI errors originating from Roda/Puma web processes directly to Kafka errors topic for visibility and debugging. UI errors are dispatched asynchronously from web processes using a dedicated listener. - [Enhancement] Require Karafka 2.5.2 at minimum and migrate from string-based execution mode comparisons to the new ExecutionMode object API. - [Enhancement] Increase Web UI processing consumer backoff time to 30 seconds when encountering incompatible schema errors to prevent error spam during rolling upgrades. - [Enhancement] Add unique `id` field to error reports to track duplicate error occurrences. Error schema version bumped to 1.2.0 while maintaining backward compatibility with older error formats (1.0.0, 1.1.0) in the Web UI. - [Enhancement] Add container-aware metrics collection for Docker/Kubernetes environments. The Web UI now reports accurate container memory limits from cgroups (v1 and v2) instead of misleading host metrics, while maintaining full backward compatibility with non-containerized deployments. - [Enhancement] Add per-message report migration system to handle schema evolution for consumer reports. This allows transparent migration of old report formats (e.g., schema 1.2.x using `process[:name]`) to current expectations (schema 1.3.0+ using `process[:id]`), ensuring backward compatibility with reports from older karafka-web versions (≤ v0.8.2) that may still exist in Kafka topics. - [Change] Reduce `max_messages` for consumer reports processing from 1000 to 200 to prevent excessive memory usage in large-scale deployments. Processing 1000 messages at once can impact memory consumption significantly in big systems, while 200 messages provides better memory efficiency with negligible impact on throughput. - [Refactor] Extract metrics collection logic from monolithic Sampler into focused, single-responsibility classes (Metrics::Base, Metrics::Os, Metrics::Container, Metrics::Network, Metrics::Server, Metrics::Jobs) and consumer groups enrichment into dedicated enricher (Enrichers::Base, Enrichers::ConsumerGroups) for improved maintainability and testability. - [Testing] Add Docker-based integration tests for container metrics collection. Tests verify cgroup v1/v2 detection, memory limit reading, and fallback behavior across multiple containerized scenarios with different resource constraints. - [Fix] Fix "OS memory used" metric on Linux reporting same value as RSS instead of system-wide memory usage. The metric now correctly sums memory usage across all processes (or all container processes when running in Docker/Kubernetes) to match macOS behavior and original design intent. - [Fix] Fix crash when processing old consumer reports from schema versions < 1.3.0 (karafka-web ≤ v0.8.2) that used `process[:name]` field instead of `process[:id]`. The error `undefined method 'to_sym' for nil` would occur when these old reports were encountered during upgrades. Reports are now automatically migrated in-place to the current schema format. ## Karafka Web Changelog / 0.11.3 (2025-09-29) - [Enhancement] Upgrade DaisyUI to 5.1. - [Change] Remove Ruby `3.1` support according to the EOL schedule. - [Change] Normalize how libs and dependencies are required (no functional change for the end user) - [Fix] Fix a case where the states JSON would contain multiple entries for the same processes causing `JSON.parse` with `allow_duplicate_key: false` to fail. - [Fix] Fix incorrect reference to `IncompatibleSchemaError`. ## Karafka Web Changelog / 0.11.2 (2025-08-18) - [Enhancement] Make sure that TTL counters related `#inspect` are thread-safe. - [Change] Add new CI action to trigger auto-doc refresh. - [Change] Update daisyUI to `5.0.50` ## Karafka Web Changelog / 0.11.1 (2025-06-23) - [Fix] Extremely high error turnover from hundreds of partitions can cause a deadlock in the reporter for transactional Web producer. ## Karafka Web Changelog / 0.11.0 (2025-06-15) - **[Feature]** Provide ability to pause/resume partitions on running consumers via the UI (Pro). - **[Feature]** Provide ability to edit offsets of running consumers (Pro). - **[Feature]** Support consumers that have mismatching schema in the Status page. - **[Feature]** Provide ability to navigate to a timestamp in the Explorer (Pro). - **[Feature]** Provide ability to create and delete topics from the Web UI (Pro). - **[Feature]** Provide ability to manage topics configuration from the Web UI (Pro). - **[Feature]** Provide ability to manage topics partitioning from the Web UI (Pro). - **[Feature]** Provide ability to inject custom CSS and JS to adjust the Web UI. - [Enhancement] Support KIP-82 (header values of arrays). - [Enhancement] Include crawl-based link validator to the CI to ensure no dead links are generated. - [Enhancement] Allow for custom links in the navigation (Pro). - [Enhancement] Optimize topic specific lookups (Pro). - [Enhancement] Replace simple in-process metadata cache with user tracking version for multi-process deployments improvements. - [Enhancement] Move web ui topics configuration into config. - [Enhancement] Upgrade DaisyUI to 5.0 and Tailwind to 4.0. - [Enhancement] Make consumer sampler/stats gathering compatible across debian/alpine/wolfi OSes (chen-anders) - [Enhancement] Promote consumers lags statistics chart to OSS. - [Enhancement] Promote consumers RSS statistics chart to OSS. - [Enhancement] Remove state cache usage that complicated ability to manage topics. - [Enhancement] Improve flash messages. - [Enhancement] Improve handling of post-submit redirects. - [Enhancement] Provide better support for fully transactional consumers. - [Enhancement] Error out when `#setup` is called after `#enable!`. - [Enhancement] Use more performant Kafka API calls to describe topics. - [Enhancement] Inject `.action-NAME` and `.controller-NAME` body classes for usage with custom CSS and JS. - [Enhancement] Improve error handling in the commanding iterator listener (Pro). - [Enhancement] Introduce `trace_id` to the errors tracked for DLQ correlation (if in use) (Pro). - [Enhancement] Normalize how topics with partitions data is being displayed (`topic-[0,1,2]` etc). - [Change] Do not fully hide config-disabled features but make them disabled. - [Change] Remove per-consumer process duplicated details from Subscriptions and Jobs tabs. - [Change] Move to trusted-publishers and remove signing since no longer needed. - [Refactor] Make sure all temporary topics have a `it-` prefix in their name. - [Refactor] Introduce a `bin/verify_topics_naming` script to ensure proper test topics naming convention. - [Fix] Closest time based lookup redirect fails. - [Fix] Fi incorrect error type in commanding listener from `web.controlling.controller.error` to `web.commanding.listener.error` (Pro). - [Fix] Topic named messages collides with the explorer routes. - [Fix] Fix a case where live poll button enabling would not immediately start refreshes. - [Fix] Fix negative message deserialization allocation stats. - [Fix] Fix incorrect background color in some of the alert notices. - [Fix] Support dark mode in error pages. - [Fix] Fix incorrect names in some of the tables headers. - [Fix] Normalize position of commanding buttons in regards to other UI elements. - [Fix] Fix incorrect indentation of some of the info messages. - [Fix] Fix tables headers inconsistent alignments. - [Fix] Fix incorrect warning box header color in the dark mode. - [Fix] Fix missing breadcrumbs on the consumers overview page. - [Fix] Fix a case where disabled buttons would be enabled back too early. - [Fix] The recent page breadcrumbs and offset id are not refreshed on change. - [Fix] Direct URL access with too big partition causes librdkafka crash. - [Fix] Fix incorrect breadcrumbs for pending consumer jobs. - [Fix] Allow for using default search matchers in Karafka Web UI topics including Errors. - [Fix] Ensure that when flashes or alerts are visible, pages are not auto-refreshed (would cause them to dissapear). - [Fix] Time selector in the explorer does not disappear after clicking out. - [Fix] Tombstone message presentation epoch doesn't make sense. - [Fix] Fix incorrectly displayed "No jobs" alert info. - [Fix] Previous / next navigation in the explorer does not work when moving to transactional checkpoints. - [Fix] Errors explorer does not work with transactional produced data. - [Fix] Errors explorer in OSS does not have pagination. - [Maintenance] Require `karafka-core` `>= 2.4.8` and `karafka` `>= 2.4.16`. - [Maintenance] Update `AirDatepicker` to `3.6.0`. ## Karafka Web Changelog / 0.10.4 (2024-11-26) - **[Breaking]** Drop Ruby `3.0` support according to the EOL schedule. - [Enhancement] Extract producers tracking `sync_threshold` into an internal config. - [Enhancement] Support complex Pro license loading strategies (Pro). - [Enhancement] Change default `retention.ms` for the metrics topic to support Redpanda Cloud defaults (#450). - [Enhancement] Include subscription group id in the consumers error tracking metadata. - [Enhancement] Collect metadata details of low level client errors when error tracking. - [Enhancement] Collect metadata details of low level listener errors when error tracking. - [Fix] Toggle menu button post-turbo refresh stops working. ## Karafka Web Changelog / 0.10.3 (2024-09-17) - **[Feature]** Introduce ability to brand Web UI with environment (Pro). - [Enhancement] Provide assignment status in the routing (Pro). - [Enhancement] Support schedule cancellation via Web UI. - [Enhancement] Rename "probing" to "tracing" to better reflect what this commanding option does. - [Fix] Fix not working primary and secondary alert styles. ## Karafka Web Changelog / 0.10.2 (2024-09-03) - **[Feature]** Support Future Messages management (Pro). - [Enhancement] Do not live-reload when form active. - [Fix] Undefined method `deep_merge` for an instance of Hash. - [Fix] Prevent live-polling on elements wrapped in a button. - [Fix] Fix errors extractor failure on first message-less tick / eofed ## Karafka Web Changelog / 0.10.1 (2024-08-23) - **[Feature]** Support Recurring Tasks management (Pro). - [Enhancement] Optimize command buttons so they occupy less space. - [Enhancement] Improve tables headers capitalization. - [Enhancement] Prevent live-polling when user hovers over actionable links to mitigate race conditions. - [Fix] Fix partial lack of tables hover in daily mode. - [Fix] Fix lack of tables hover in dark mode. - [Fix] Normalize various tables types styling. - [Fix] Fix ranges selectors position on wide screens. ## Karafka Web Changelog / 0.10.0 (2024-08-19) - **[Breaking]** Rename and reorganize visibility filter to policies engine since it is not only about visibility. - **[Feature]** Replace Bootstrap with with tailwind + DaisyUI. - **[Feature]** Redesign the UI and move navigation to the left to make space for future features. - **[Feature]** Support per request policies for inspection and operations limitation. - **[Feature]** Provide Search capabilities in the Explorer (Pro). - **[Feature]** Provide dark mode. - [Enhancement] Set `enable.partition.eof` to `false` for Web UI consumer group as it is not needed. - [Enhancement] Allow for configuration of extra `kafka` scope options for the Web UI consumer group. - [Enhancement] Support Karafka `#eofed` consumer action. - [Enhancement] Provide topics watermarks inspection page (Pro). - [Enhancement] Use Turbo to improve usability. - [Enhancement] Round poll age reporting to precision of 2 reducing the payload size. - [Enhancement] Round utilization reporting to precision of 2 reducing the payload size. - [Enhancement] Validate states materialization lag in the status view. - [Enhancement] Promote topics data pace to OSS. - [Enhancement] Rename and normalize dashboard tabs. - [Enhancement] Enable live data polling on the first visit so it does not have to be enabled manually. - [Enhancement] Allow disabling ability to republish messages via policies. - [Enhancement] Display raw numerical timestamp alongside message time. - [Enhancement] Support `/topics` root redirect. - [Enhancement] Prevent explorer from displaying too big payloads (bigger than 1MB by default) - [Enhancement] Include deserialization object allocation stats. - [Enhancement] Improve how charts with many topics work. - [Enhancement] Count and display executed jobs independently from processed batches. - [Enhancement] Prevent karafka-web from being configured before karafka is configured. - [Enhancement] Use `ostruct` from RubyGems in testing. - [Enhancement] Indicate in the status reporting whether Karafka is OSS or Pro. - [Enhancement] Ship JS and CSS assets using Brotli and Gzip when possible. - [Enhancement] Introduce a `/ux` page to ease with styling improvements and components management. - [Enhancement] disallow usage of `