Tags

Tags give the ability to mark specific points in history as being important
  • 2.52.2

    protected Release: 2.52.2
    - Code generation capability for Go plugins with `deltafi plugin generate` command
    - Added a dedicated `/health` endpoint to nginx to determine if nginx is accepting connections
    
    - Database migrations now conditionally skip TimescaleDB and pg_squeeze operations when the extensions are not installed, allowing DeltaFi to run with plain PostgreSQL
    - Changed the java action-kit to fire plugin artifact onUpdate hooks at startup to match the other action-kits behavior
    - Enabled HTTP/1.1 keepalive connections between nginx and upstream services in compose to mirror the Kubernetes settings
    - In TimedDataSource, the `timedIngressAction` GraphQL field now allows null for pending flows during a plugin install
    
    - Exclude gradle plugins when publishing to nexus, they are published to the gradle plugin portal
    - Fixed the version information in the generated pom files
    - Fixed the default plugin artifact seeding in the java action-kit, so the artifact is available immediately to actions after it is published
    - Removed redundant auth check from the http redirect configuration
    - When a snapshot revert fails to find an image, any associated flows left behind can now be cleared by removing the failed plugin
    
    - Updated Java dependencies due to critical CVEs
    
    - Prepare go action kit for production
    
    - Database migrations now conditionally skip TimescaleDB and pg_squeeze operations when the extensions are not installed
    - Flyway repair runs automatically (once) for upgrades from pre-V69 to update checksums for modified migrations
    - The `timescaleAnalyticsEnabled` property is automatically disabled when TimescaleDB is not installed
    **Note:** Migrating an existing TimescaleDB installation to plain PostgreSQL is not supported. New installations may use plain PostgreSQL. TimescaleDB will be officially removed in 3.0.
    - Database migration V71 adds `snapshot_coordinates` column to `plugins` table (quick)
  • 2.52.1

    protected Release: 2.52.1
    - Added `deltafi.pluginEnv` to `site/values.yaml` to inject environment variables into all plugin containers/pods
    - Added `pluginEnvVars` to the plugins query that is available to users with the `Admin` role
    - Added a mutation `redeployAllPlugins` that creates a fresh deployment of all installed plugins
    - Artifact registry extensions for the Python action kit
    
    - Changed `deltafi up` so it always redeploys existing plugins with the latest settings after a successful upgrade
    - Updated the gradle-nexus publish-plugin and switched  to the new Sontaype Central bridge API
  • 2.52.0

    protected Release: 2.52.0
    - Updated UI tech stack to PrimeVue 4
    - New `UnpackAvro` action
    - ActiveMQ and NATS listener bridges
    
    - Added line number and object folding for JSON to DeltaFile Viewer.
    - Added a copy to clipboard to the DeltaFile Viewer.
    - Added error badges for invalid flows to sidebar menu for DataSources, Transforms, and DataSinks.
    - Added the `UnpackAvro` action to unpack embedded-schema Avro object container files into metadata and record content.
    
    - Raw DeltaFi query and viewer now use graphql introspection to get and display DeltaFi data.
    - Improved Viewer Trace readout for large numbers of milliseconds to convert to sec, min, etc
    - Exposed configuration for S3 proxy to default site.yaml. Added configuration to docs.
    
    - Fixed import of On-error Data Source
    - Fixed wrong permissions on several calls
    - Fixed jankiness of trim with name creating a new lookup table
    - Fixed css issues causing the dialogs to look weird after the PrimeVue v4 upgrade
    - UI: Fixed a bug that caused the content viewer list to only show the first 5 items.
    - Use the go v2 semantic versioning for go action kit
  • 2.51.2

    protected Release: 2.51.2
    - C++ action kit [beta]
    - Go action kit [beta]
    
    - C++ language plugin action kit
      - Full support for all action kit features (full parity with Java)
      - Plugin test framework
      - Example plugin (deltafi-cpp-hello-world) replicates Java hello world plugin functionality
      - Published as monolithic single header cmake project at  gitlab.com/deltafi/deltafi/deltafi-cpp-action-kit
    - Go language plugin action kit
      - Full support for all action kit features (full parity with Java)
      - Plugin test framework
      - Example plugin (deltafi-go-hello-world) replicates Java hello world plugin functionality
      - Go module published to gitlab.com/deltafi/deltafi/deltafi-go-action-kit
    
    - Reorganized DeltaFi UI Cypress coverage into area suites and updated CI to run those suites directly, reducing Cypress startup overhead and improving UI test runtime.
    
    - Upgrade tui to compile with golang 1.26.1
  • 2.51.0

    protected Release: 2.51.0
    - Artifact registry feature
    - TUI metric graphs
    - Egress rate limiting
    - Clean CVE bill of health
    
    - Artifact registry feature for managing plugin artifacts has been added, including management APIs and new extensions for the Java action kit
    - API documentation section for REST and GraphQL APIs
    - Comprehensive documentation for dirwatcher
    - Rate limiting support for data sinks, allowing operators to control egress rates by files or bytes per time period
    - Rate limited count displayed in dashboard stats, leader dashboard, and queue metrics page
    - TUI data-source and data-sink get and list commands display rate limits
    - Documentation for Egress Sink service
    - Added `deltafi graph` command for interactive time-series visualization from VictoriaMetrics
      - Supports 30+ predefined metrics via `--metric` flag (bytes, files, egress, CPU, memory, queue depth, etc.)
      - Supports custom MetricsQL queries via `--query` flag with optional `--title` to add to metric list
      - Interactive controls: zoom (+/-), refresh (r), series toggle (1-0), filter modal (f), change metric (c/↑/↓), help (?), and left/right panning
    - Added `/api/v2/timeseries` REST endpoint in deltafi-core for proxying VictoriaMetrics queries
    
    - Added a zoom in/out slider to system map page and now can zoom out further
    - Moved Filtered Page search options to right side popout
    - Removed 3 level of of nested nav options from left side navigation bar for Error, Filtered, Fleet, and Graphana links and Pages
    - Changed the opacity of Filter tabs to be more visible on the right
    - Moved `deltafi graph` (flow visualization) command to `deltafi flow graph`
    
    - Filtered nodes in the DeltaFile Viewer Flow Graph are now clickable to show filter cause and context
    - Fixed issue where user config wasnt being loaded into useMenuItems properly
    - Fixed hamburger tab that pops out left side navigation to be just a transparent navigation button
    - Fixed the error on the Dashboard Page being thrown when node.data.resources.disk was undefined
    - Fixed Errors Page dropdown when selecting "All" nothing was showing.
    - Fixed issue with Errors page showing none errors in the dataTable when Filters were selected
    - Fixed issue of System Map not updating and showing changes to flows on/pause/off unless you hard refresh
    - Clustermonitor and nodemonitor no longer block on or send to VictoriaMetrics when metrics are disabled
    - Status checks no longer require VictoriaMetrics or Grafana resources when metrics or dashboards are disabled
    - Grafana dashboard ConfigMaps are no longer created when dashboards are disabled
    - Fleet config property diff now shows effective default values for omitted properties instead of treating them as missing, fixing leader/member comparisons for default-valued properties.
    - Fixed a bug where plugin upgrades could cause flows to become inactive or disappear when snapshot-restored placeholder flows existed
    - Fixed a race condition where flow rebuilds during variable changes or revalidation could hit duplicate key constraint violations
    
    - Upgrade Java base image to deltafi/deltafi-java-jre:21.0.10-alpine-1
    - Upgrade Jackson library to 2.21.1 (from 2.20.0)
    - Upgrade Spring Boot to 3.5.10 (from 3.5.7)
    - Upgrade nodemonitor docker to 29.3.0
    - Upgrade s3proxy to deltafi/s3proxy:3.0.0-3
    - Upgrade valkey to deltafi/valkey:9.0.3-0
    - Upgrade Grafana to deltafi/grafana:12.4.1-0
    - Upgrade Promtail to grafana/promtail:3.6.7
    - Upgrade VictoriaMetrics to deltafi/victoria-metrics:v1.137.0-0
    - Upgrade Logrotate to deltafi/logrotate:1.0.0-5
    - Upgrade Vector to deltafi/vector:0.53.0-alpine-1
    - Upgrade Compose Postgres to deltafi/timescaledb:2.19.3-pg16-9
    - Upgrade Compose Postgres lookup to deltafi/postgres:16.13-0
    - Upgrade compose NGINX to deltafi/nginx:1.29.5-alpine3.23-1
  • 2.50.2

    protected Release: 2.50.2
    - VictoriaMetrics upgrade to deltafi/victoria-metrics:v1.136.0-0
    - S3Proxy upgrade to deltafi/s3proxy:3.0.0-2
    - Valkey upgrade to deltafi/valkey:9.0.2-0
    - Compose TimescaleDB upgrade to deltafi/timescaledb:2.19.3-pg16-8
    - Compose Postgres upgrade to deltafi/postgres:16.12-0
  • 2.50.1

    protected Release: 2.50.1
    - Enable provenance Grafana dashboard in Kubernetes orchestration
    - Enable/disable knobs in `site/values.yaml` for dashboards (Grafana), metrics (VictoriaMetrics), analytics, and log viewer (Dozzle)
    - `deltafi.dashboards.enabled` — controls Grafana container and GrafanaAlertCheck in core
    - `deltafi.metrics.enabled` — controls VictoriaMetrics container and `metricsEnabled` system property
    - `deltafi.analytics.enabled` — controls analytics container and `timescaleAnalyticsEnabled`, `parquetAnalyticsEnabled`, `provenanceEnabled` system properties
    - `deltafi.logviewer.enabled` — controls Dozzle container (Compose only)
    - System properties locked by env var configuration show "Disabled by configuration" in the UI
    
    - Changed the default value of `parquetAnalyticsEnabled` system property to `true`
    - Changed the `deltafi postgres status` command so it does not require a running core to execute
    - Removed `depends_on: deltafi-victoriametrics` from nodemonitor and node-fastdelete (required for victoriametrics profile support)
    
    - Fixed an issue in compose orchestration where health checks left behind defunct processes
    - GUI: Highlight for current item on contextual menu bar for items with sub-menu was off-center
    
    - Helm `enable.grafana` — use `deltafi.dashboards.enabled` instead. When the new key is defined, `enable.grafana` is ignored.
    - Helm `enable.victoriametrics` — use `deltafi.metrics.enabled` instead. When the new key is defined, `enable.victoriametrics` is ignored.
    
    - Upgrade Dozzle image to deltafi/dozzle:v10.0.2-0
  • 2.50.0

    protected Release: 2.50.0
    - Command palette (⌘K or /) for quick page navigation and DeltaFile search
    - Hamburger menu with slide-out sidebar containing full navigation tree
    - Contextual nav bar that shows sibling pages based on current route, or pinned shortcuts on standalone pages
    - Error count badge in the top bar linking to errors page
    - Search trigger button in top bar with ⌘K hotkey hint
    - Global keyboard shortcuts: ⌘D (Dashboard), ⌘S (Search), ⌘E (Errors), ⌘U (Upload), ⌘M (System Map), ⌘P (Plugins), ⌘T (Transforms)
    - The properties are now searchable on the System Properties Page
    - Added unit tests for deltafi-analytics compactor package (~600 lines covering two-stage aggregation, age-off, corrupt file detection, provenance compaction)
    - Added unit tests for deltafi-analytics config package (~300 lines covering GraphQL response parsing, error handling, thread safety)
    - Added comprehensive test coverage for deltafi-dirwatcher (http transport, config, delay queue, and watcher)
    - Fleet Errors page: view and manage errors across all fleet members from the leader, with bulk acknowledge, resume, replay, and replay+acknowledge operations
      - Fleet Errors supports filtering by member, tags, data source, error message, acknowledgement status, and time range
      - Fleet Errors displays error summaries by member, by flow, and by message with aggregated counts
      - Parallel action execution on up to 5 fleet members simultaneously
    - REST API: Added federated error endpoints under `/api/v2/leader/errors/`:
      - `POST /search` - Search errors across fleet members
      - `POST /acknowledge` - Acknowledge errors across fleet members
      - `POST /resume` - Resume errors across fleet members
      - `POST /replay` - Replay errors across fleet members
      - `POST /replay-and-acknowledge` - Replay and acknowledge errors across fleet members
      - `POST /summary/by-data-source` - Get error summary by data source
      - `POST /summary/by-message` - Get error summary by error message
    - GraphQL: Added `modifiedAfter` and `modifiedBefore` parameters to by-flow mutations for time-based filtering:
      - `resumeByFlow`
      - `acknowledgeByFlow`
      - `replayErrorsByFlow`
      - `replayAndAcknowledgeErrorsByFlow`
    - GraphQL: Added `errorCause` parameter to `ErrorSummaryFilter` for filtering error summaries by error message
    - New GraphQL endpoint `saveSystemPluginVariable` allows a single variable to be added to the system plugin variables
    - New GraphQL endpoint `removeSystemPluginVariable` allows a single variable to be remove from the system plugin variables
    - Added `deltafi.globalEnv` in `site/values.yaml` to inject environment variables into all DeltaFi-built services. Works in both Kubernetes mode (via Helm templates, supports `valueFrom`) and Compose mode (written to `common.env`)
    
    - Moved Versions page under Administration menu
    - Navigation system replaced: Left menu pane replaced with contextual nav bar showing relevant siblings
    - Moved Fleet Errors filters from the top of the page to the right side popout
    - UI: Moved command palette button down into the menu nav bar
    - Analytics deployment now includes common environment variables (Helm and Compose)
    - Generated `common.env` now includes a header comment and sorted keys
    
    - Fixed issue with Search Page saving and using the wrong filter options when using the nav back button
    - Fixed settling time validation in dirwatcher to properly compare time.Duration values
    - Optimized error summary queries (errorSummaryByMessage, errorSummaryByFlow) with covering indexes and elimination of unnecessary joins
    - Fixed lineage tree performance when a DeltaFile has many children by capping displayed children per node to 20 with an overflow indicator
    - Fixed an issue where the lookup results had a null created and modified date time when there were no matching results
    - GUI: When fleet error page is active, menu bar highlights both fleet and deltafile error pages
    
    - Improved test coverage for deltafi-clustermonitor with 12 additional edge case tests
    - Modernized dirwatcher code to use `any` instead of `interface{}`, `min()` builtin, and `slices.Contains()`
    - Improved CLI rendering performance with optimized string handling
    - Added comprehensive unit test coverage for CLI utilities (time parsing, flag handling, shell detection, diff operations, SSL management, deployment modes)
    
    - Upgraded golang applications to use golang 1.26.0
    - Java base image upgraded to deltafi/deltafi-java-jre:21.0.10-alpine-0
    - Python base image upgraded to deltafi/python:3.13.12-0
    - Updated Kubernetes client libraries to 0.35.1
    - Updated CLI UI libraries (charmbracelet ecosystem)
  • 2.49.6

    protected Release: 2.49.6
    - Add missing javadoc to deltafi-common
    - Added `SET` variable data type for order-independent collection properties. SET values are stored in sorted order, preventing false positives in fleet configuration diffs when the same values are entered in different order.
    
    - Changed `allowedAnalyticsAnnotations` and `provenanceAnnotationsAllowed` system properties from `LIST` to `SET` data type
    - Collection property values (LIST, SET, MAP) are now displayed as pills instead of raw comma-separated strings
    
    - Fixed list property editor creating duplicate entries when a value contains a comma
    - Fixed Grafana dashboard timeouts caused by excessive `maxDataPoints` values. With Graphite, high values meant "don't downsample." With VictoriaMetrics/PromQL, they cause the expression to be evaluated at every step (~100K times), overwhelming the server. Stat panels now use `maxDataPoints: 1`; time series panels use the Grafana default (panel width).
    - Fixed an issue where flows created by plugin registration could conflict with flow placeholders created by snapshot resets
    
    - Add missing javadoc to deltafi-action-kit and deltafi-action-kit-test
    - Update to plugin CI template
    
    - Existing `allowedAnalyticsAnnotations` and `provenanceAnnotationsAllowed` property values are automatically normalized (sorted) on startup
  • 2.49.5

    protected Release: 2.49.5
    - PostgreSQL configuration parameters are now configurable via Helm values (Kubernetes) and site values (Compose)
    - PostgreSQL tuning documentation at Advanced Topics > PostgreSQL Tuning
    
    - Replaced the close button on the Message of the Day dialog with an Acknowledge button
    - PostgreSQL default `random_page_cost` set to `1.1` (SSD-optimized, was PostgreSQL default of `4.0`)
    - PostgreSQL default `effective_io_concurrency` set to `200` (SSD-optimized, was PostgreSQL default of `1`)
    - PostgreSQL default `log_autovacuum_min_duration` set to `0` (log all autovacuum runs, was disabled)
    - Lookup PostgreSQL instance now uses right-sized defaults: `shared_buffers=32MB`, `max_connections=100`, `max_worker_processes=4`
    - Simplified authorization to use path-based checks only (removed subdomain-based authorization)
    
    - Added SKIP LOCKED protection to additional database operations to prevent deadlocks under concurrent load
    - Fixed thread safety issue with shared XPath instance in ExtractXml
    - DeltaFi UI will render regardless of the subdomain that is used
    - TUI: Fixed silent error handling in CA chain append command
    - TUI: Fixed shadowed error in compose secret directory lookup
    - TUI: Fixed nil context passed to GraphQL client
    
    - Removed subdomain ingresses for `metrics`, `ingress`, `victoriametrics`, and `minio` (K8s)
    - Removed subdomain routing from nginx configuration (Compose)
    
    - Sped up allowed annotation lookup
    - Improved queue monitoring performance by batching Valkey queue size lookups
    - Update references to old action types in code comments and test data
    - Reuse DocumentBuilderFactory and DocumentBuilder in ExtractXml instead of creating new instances per content item
    - Pre-compile regex patterns in MetadataToContent to avoid repeated compilation per metadata entry
    
    - PostgreSQL now starts with SSD-optimized planner settings and autovacuum logging enabled. Review the [PostgreSQL Tuning](advanced/postgres-tuning.md) documentation for recommended `shared_buffers` sizing based on your host RAM (default remains 128MB).
    - Subdomain URLs (e.g., `metrics.local.deltafi`, `minio.local.deltafi`) will no longer work
      - Use the main domain with appropriate paths instead
  • 2.49.4

    protected Release: 2.49.4
    - PostgreSQL configuration parameters are now configurable via Helm values (Kubernetes) and site values (Compose)
    - PostgreSQL tuning documentation at Advanced Topics > PostgreSQL Tuning
    
    - PostgreSQL default `random_page_cost` set to `1.1` (SSD-optimized, was PostgreSQL default of `4.0`)
    - PostgreSQL default `effective_io_concurrency` set to `200` (SSD-optimized, was PostgreSQL default of `1`)
    - PostgreSQL default `log_autovacuum_min_duration` set to `0` (log all autovacuum runs, was disabled)
    - Lookup PostgreSQL instance now uses right-sized defaults: `shared_buffers=32MB`, `max_connections=100`, `max_worker_processes=4`
    - Simplified authorization to use path-based checks only (removed subdomain-based authorization)
    
    - Added SKIP LOCKED protection to additional database operations to prevent deadlocks under concurrent load
    - Fixed thread safety issue with shared XPath instance in ExtractXml
    - DeltaFi UI will render regardless of the subdomain that is used
    - TUI: Fixed silent error handling in CA chain append command
    - TUI: Fixed shadowed error in compose secret directory lookup
    - TUI: Fixed nil context passed to GraphQL client
    
    - Removed subdomain ingresses for `metrics`, `ingress`, `victoriametrics`, and `minio` (K8s)
    - Removed subdomain routing from nginx configuration (Compose)
    
    - Sped up allowed annotation lookup
    - Improved queue monitoring performance by batching Valkey queue size lookups
    - Update references to old action types in code comments and test data
    - Reuse DocumentBuilderFactory and DocumentBuilder in ExtractXml instead of creating new instances per content item
    - Pre-compile regex patterns in MetadataToContent to avoid repeated compilation per metadata entry
    
    - PostgreSQL now starts with SSD-optimized planner settings and autovacuum logging enabled. Review the [PostgreSQL Tuning](advanced/postgres-tuning.md) documentation for recommended `shared_buffers` sizing based on your host RAM (default remains 128MB).
    - Subdomain URLs (e.g., `metrics.local.deltafi`, `minio.local.deltafi`) will no longer work
      - Use the main domain with appropriate paths instead
  • 2.49.3

    protected Release: 2.49.3
    - PostgreSQL configuration parameters are now configurable via Helm values (Kubernetes) and site values (Compose)
    - PostgreSQL tuning documentation at Advanced Topics > PostgreSQL Tuning
    
    - PostgreSQL default `random_page_cost` set to `1.1` (SSD-optimized, was PostgreSQL default of `4.0`)
    - PostgreSQL default `effective_io_concurrency` set to `200` (SSD-optimized, was PostgreSQL default of `1`)
    - PostgreSQL default `log_autovacuum_min_duration` set to `0` (log all autovacuum runs, was disabled)
    - Lookup PostgreSQL instance now uses right-sized defaults: `shared_buffers=32MB`, `max_connections=100`, `max_worker_processes=4`
    - Simplified authorization to use path-based checks only (removed subdomain-based authorization)
    
    - Added SKIP LOCKED protection to additional database operations to prevent deadlocks under concurrent load
    - Fixed thread safety issue with shared XPath instance in ExtractXml
    - DeltaFi UI will render regardless of the subdomain that is used
    - TUI: Fixed silent error handling in CA chain append command
    - TUI: Fixed shadowed error in compose secret directory lookup
    - TUI: Fixed nil context passed to GraphQL client
    
    - Removed subdomain ingresses for `metrics`, `ingress`, `victoriametrics`, and `minio` (K8s)
    - Removed subdomain routing from nginx configuration (Compose)
    
    - Sped up allowed annotation lookup
    - Improved queue monitoring performance by batching Valkey queue size lookups
    - Update references to old action types in code comments and test data
    - Reuse DocumentBuilderFactory and DocumentBuilder in ExtractXml instead of creating new instances per content item
    - Pre-compile regex patterns in MetadataToContent to avoid repeated compilation per metadata entry
    
    - PostgreSQL now starts with SSD-optimized planner settings and autovacuum logging enabled. Review the [PostgreSQL Tuning](advanced/postgres-tuning.md) documentation for recommended `shared_buffers` sizing based on your host RAM (default remains 128MB).
    - Subdomain URLs (e.g., `metrics.local.deltafi`, `minio.local.deltafi`) will no longer work
      - Use the main domain with appropriate paths instead
  • 2.49.2

    protected Release: 2.49.2
    - Fleet Dashboard table view now preserve sort order for columns selected
    - Added comprehensive tests for DuckDB MAP/annotation access patterns in deltafi-analytics
    
    - Analytics: Updated DuckDB MAP access syntax for v1.2+ compatibility (map['key'] now returns value directly instead of list)
    - Replaced Kubernetes Dashboard with Headlamp
    - Updated `JsonArraySplit` action to allow for splitting files with one JSON object per line
    
    - Fixed issue where annotations werent being persisted on the search page.
    - Fixed issue when leaving the Fleet Dashboard page and going to another page and coming back the data not pulling or showing
    - Fixed issue were updates to topics were not showing up in serveral of our views and only update on a hard refresh
    - Analytics cache services (AnnotationKey, AnnotationValue, ErrorCause, EventGroup, ActionName) now cache integer IDs instead of managed Hibernate entities, preventing session corruption errors under high concurrency
    - Annotation batch processing now handles individual annotation failures gracefully instead of losing the entire batch when one entry fails
    - Fixed an issue where snapshots could be partially applied when one portion of the snapshot failed to restore
    - Fixed an issue where `deltafi-core` was not properly terminated when there is a startup error
    - Fixed PostgreSQL deadlocks between auto-resume and delete operations by adding `FOR UPDATE SKIP LOCKED` to resume, content-delete, and bulk-delete queries, and converting per-row statements to single bulk operations
    - TUI: Config command now reports errors when cluster shutdown fails during orchestration mode change
    
    - Refactor clustermonitor from a shell script using nc/kubectl to a native go app in a small footprint container
    - TUI: Codebase cleanup from static analysis
    
    - Upgraded deltafi-analytics DuckDB driver from github.com/marcboeker/go-duckdb v1.8.5 to github.com/duckdb/duckdb-go v2.5.5
    - Upgraded deltafi-analytics parquet-go from v0.26.0 to v0.27.0
    - Upgrade KinD control plane to 1.35
    - Upgrade TUI k8s client to 1.35
    - Upgrade to deltafi/timescaledb:2.19.3-pg16-7
  • 2.49.1

    protected Release: 2.49.1
    - Updates to our mocking service
    - Added a new command `deltafi docker-login` that allows DeltaFi to install plugins from image repositories that require authentication when running in compose mode
    
    - Improved UI CI test pipeline performance with parallelization and early failure termination
    - UI e2e tests now use retryable setup to handle transient initialization failures
    - Added `runTest.sh` argument passthrough for running individual test specs
    
    - Added guards to UI tests to prevent spurious timeouts and failures when under heavy load
    - TUI: Unit test failure
    - TUI: Linter failure
    - Fixed race condition where the mock service worker may not be ready before the app fetches initial data
    
    - Moved UI viewport tests into Page Structure groups across all Cypress specs to share page loads and reduce test runtime
    
    - Upgraded Java JRE base image to deltafi/deltafi-java-jre:21.0.9-alpine-7
    - Upgraded MSW (Mock Service Worker) from v1 to v2 for UI test mocking
    - Updated Go applications to float the latest patch release of Golang 1.25.x
    - Upgrade KinD to the latest executable and control plane images (0.31.0)
    - Upgrade compose nginx to deltafi/nginx:1.29.4-alpine3.23-1
    - Upgrade Grafana sidecar to kiwigrid/k8s-sidecar:2.5.0
    - Upgrade subprojects:
      - Upgrade Grafana to deltafi/grafana:12.4.0-7
      - Upgrade VictoriaMetrics to victoriametrics/victoria-metrics:v1.134.0
      - Upgrade logrotate to deltafi/logrotate:1.0.0-4
      - Upgrade Vector to deltafi/vector:0.53.0-alpine-0
      - Upgrade Dozzle to deltafi/dozzle:v9.0.3
      - Upgrade S3-Proxy to deltafi/s3proxy:3.0.0-1
      - Upgrade Promtail to grafana/promtail:3.6.4
      - Upgrade Valkey to deltafi/valkey:9.0.1-1
      - Upgrade TimescaleDB to deltafi/timescaledb:2.19.3-pg16-6
      - Upgrade Postgres to deltafi/postgres:16.11-1