Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,46 @@ This project uses [*towncrier*](https://towncrier.readthedocs.io/) and the chang

<!-- towncrier release notes start -->

## [Infrahub - v1.11.10](https://github.com/opsmill/infrahub/tree/infrahub-v1.11.10) - 2026-10-30

### Security

- Updated the base Python version of the Infrahub container image and the development environment from 3.14.7 to 3.14.10, so the `pip` bundled in the image no longer ships a `certifi` version affected by GHSA-6q48-6c7w-9gw2.

### Added

- Added Redis Sentinel support: when `INFRAHUB_CACHE_URL` is set to a `redis+sentinel://` URL, Infrahub connects to the Sentinel nodes and follows a failover of the Redis master, so a `redis-sentinel-proxy` is no longer needed. See [High availability](https://docs.infrahub.app/deploy-manage/install-configure/production-deployment/high-availability). ([#9449](https://github.com/opsmill/infrahub/issues/9449))
- Added the `INFRAHUB_BROKER_QUEUE_TYPE` setting to declare the durable RabbitMQ queues as quorum queues, so that they stay available when a node of a RabbitMQ cluster stops.

### Changed

- **Breaking:** Raised the Redis requirement to version 6.0 or later, or a Redis-compatible service that supports the `HELLO` command, because Infrahub now opens every Redis connection with `HELLO`, which Redis 5.0 and earlier reject. ([#9449](https://github.com/opsmill/infrahub/issues/9449))
- Changed the error message for a GraphQL query with a syntax error to start with "Query is not valid, ". ([#11232](https://github.com/opsmill/infrahub/issues/11232))
- Removed the concurrency limit from the `clean-up-deadlocks` task, so a run that never finishes, for example after a task worker restarts while the run is starting, no longer stops later runs from removing locks left behind by inactive task workers.

### Fixed

- Fixed creating or upserting an object whose computed attribute reads a related object given by a human-friendly ID: a related object that does not exist is now reported by name instead of causing an internal server error that clients retried for several minutes, and a related object of a generic kind given with its specific kind is now found. ([#11018](https://github.com/opsmill/infrahub/issues/11018))
- Fixed repository sync ignoring a changed `transformation` on an existing artifact definition in `.infrahub.yml`, which also deleted the artifact definition when its Transformation was renamed. ([#11036](https://github.com/opsmill/infrahub/issues/11036))
- The Git repository sync, deadlock clean-up and failed-merge detection tasks, which run every minute, no longer store a result in the task manager database and the cache for each run. ([#11166](https://github.com/opsmill/infrahub/issues/11166))
- Fixed filters, search, and finding an object by name or human-friendly ID on a branch matching objects by a value that the branch had already changed. ([#11218](https://github.com/opsmill/infrahub/issues/11218))
- Fixed an invalid GraphQL query, a GraphQL query with a syntax error, a webhook rename to an existing name and the deletion of the default IP namespace returning HTTP 500 instead of 422, which made the SDK retry a repository import for 5 minutes before it failed. ([#11232](https://github.com/opsmill/infrahub/issues/11232))
- Fixed proposed change checks that stayed in progress forever, and blocked the merge, when one of their runs failed or timed out. ([#11277](https://github.com/opsmill/infrahub/issues/11277))
- Fixed GraphQL queries that request two or more custom root fields in one request, such as two `InfrahubResourcePoolUtilization` fields, failing with a database read error or hanging.
- Fixed certain schema changes being accepted when data violates them: a schema load or a branch merge is now refused when existing values fall outside a Number attribute's new `min_value`, `max_value` or `excluded_values`, outside a schema-defined number pool's new `start_range` or `end_range`, or no longer match a relationship's new `peer` or a hierarchical node's new `parent` or `children`.
- Fixed merges that re-run a Generator set to execute after merge leaving an unused diff stored in the database. Upgrading deletes the diffs that earlier merges left behind.
- Fixed repository sync ignoring a changed `class_name` on an existing Python Transformation in `.infrahub.yml`.
- Fixed repository sync ignoring a changed `class_name` on an existing check definition in `.infrahub.yml`.
- Fixed repository sync ignoring added, changed or removed `targets` on an existing check definition in `.infrahub.yml`, and made the sync fail with an import error when the target group does not exist.
- Fixed task results accumulating in Redis without ever expiring: results now expire two days after they are written.
- Fixed the "Documentation" links in the web interface for built-in object types, such as artifacts, generators, transformations, repositories and accounts: they pointed to documentation pages that no longer exist. Added "Documentation" links to built-in object types that had none, such as check definitions, trigger rules, groups, webhooks, resource pools and permissions. When a schema's `documentation` value starts with `http`, the "Documentation" link now opens that URL directly, instead of the documentation home page or a broken link; any other value still opens that path in the documentation that ships with Infrahub. Links to the documentation that ships with Infrahub now end with a trailing slash, so they open the page directly instead of through a redirect that fails when Infrahub runs behind a reverse proxy.
- Fixed the `infrahub-testcontainers` package starting Neo4j 2025.10.1 instead of 2026.05.0, the version that Infrahub ships with, in test runs of Infrahub Community that do not set `NEO4J_DOCKER_IMAGE`.
- Fixed the scroll bars of tables, such as object lists, being hidden behind the table's pinned header, footer and actions column, which stopped mouse users from scrolling.

### Housekeeping

- The container image build now installs the `uv` version defined in `define-versions.yml` (0.13.6) instead of the latest release, and stops when no version is given.

## [Infrahub - v1.11.9](https://github.com/opsmill/infrahub/tree/infrahub-v1.11.9) - 2026-10-22

### Security
Expand Down
1 change: 0 additions & 1 deletion changelog/+base-python-3-14-10.security.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/+check-definition-class-name.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/+check-definition-targets.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/+clean-up-deadlocks-concurrency.changed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/+generator-capture-unstored-diff.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/+graphql-concurrent-query-fields.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/+hidden-table-scrollbars.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/+inapp-docs-links.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/+python-transform-class-name.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/+rabbitmq-quorum-queues.added.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/+schema-change-stored-data-checks.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/+task-results-redis-expiry.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/+testcontainers-neo4j-image.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/+uv-pin-in-image-build.housekeeping.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/11018.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/11036.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/11166.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/11218.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/11232.changed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/11232.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/11277.fixed.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/9449.added.md

This file was deleted.

1 change: 0 additions & 1 deletion changelog/9449.changed.md

This file was deleted.

2 changes: 1 addition & 1 deletion development/deploy.tf
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ provider "kubectl" {

locals {
target_namespace = "infrahub"
infrahub_version = "1.11.9"
infrahub_version = "1.11.10"
}

### Infrahub
Expand Down
4 changes: 2 additions & 2 deletions development/k8s/infrahub-values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# yamllint disable rule:line-length
infrahub:
global:
infrahubTag: 1.11.9
infrahubTag: 1.11.10
infrahubServer:
podLabels:
infrahub/service: server
Expand Down Expand Up @@ -84,7 +84,7 @@ infrahub:
global:
prefect:
image:
prefectTag: 1.11.9 # the task manager runs the Infrahub image, so it follows infrahubTag
prefectTag: 1.11.10 # the task manager runs the Infrahub image, so it follows infrahubTag
server:
replicaCount: 3
affinity:
Expand Down
6 changes: 3 additions & 3 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ services:
- 6362:6362

task-manager:
image: "${INFRAHUB_DOCKER_IMAGE:-registry.opsmill.io/opsmill/infrahub}:${VERSION:-1.11.9}"
image: "${INFRAHUB_DOCKER_IMAGE:-registry.opsmill.io/opsmill/infrahub}:${VERSION:-1.11.10}"
command: uvicorn --host 0.0.0.0 --port 4200 --factory infrahub.prefect_server.app:create_infrahub_prefect
restart: unless-stopped
depends_on:
Expand Down Expand Up @@ -314,7 +314,7 @@ services:
retries: 5

infrahub-server:
image: "${INFRAHUB_DOCKER_IMAGE:-registry.opsmill.io/opsmill/infrahub}:${VERSION:-1.11.9}"
image: "${INFRAHUB_DOCKER_IMAGE:-registry.opsmill.io/opsmill/infrahub}:${VERSION:-1.11.10}"
restart: unless-stopped
command: >
gunicorn --config backend/infrahub/serve/gunicorn_config.py
Expand Down Expand Up @@ -360,7 +360,7 @@ services:
deploy:
mode: replicated
replicas: 2
image: "${INFRAHUB_DOCKER_IMAGE:-registry.opsmill.io/opsmill/infrahub}:${VERSION:-1.11.9}"
image: "${INFRAHUB_DOCKER_IMAGE:-registry.opsmill.io/opsmill/infrahub}:${VERSION:-1.11.10}"
command: prefect worker start --type infrahubasync --pool infrahub-worker --with-healthcheck
restart: unless-stopped
depends_on:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ These examples are for reference purposes and may require customization for your

The examples connect Infrahub and Prefect directly to the Redis Sentinel nodes, which requires the following versions:

- Infrahub 1.11.9 or later. Earlier versions do not have the `INFRAHUB_CACHE_URL` setting, so they ignore it and connect to `INFRAHUB_CACHE_ADDRESS`, which defaults to `localhost`. Their task manager image also includes a version of Docket, the component that coordinates Prefect's background services, that does not accept `redis+sentinel://` URLs. The task manager runs the Infrahub image, so the examples set the task manager image tag, `prefectTag`, to the same version as `infrahubTag`.
- Infrahub 1.11.10 or later. Earlier versions do not have the `INFRAHUB_CACHE_URL` setting, so they ignore it and connect to `INFRAHUB_CACHE_ADDRESS`, which defaults to `localhost`. Their task manager image also includes a version of Docket, the component that coordinates Prefect's background services, that does not accept `redis+sentinel://` URLs. The task manager runs the Infrahub image, so the examples set the task manager image tag, `prefectTag`, to the same version as `infrahubTag`.
- Infrahub Enterprise chart 4.22.0 or later. Earlier charts include a `prefect-server` chart that rejects the `backgroundServices.messaging.redis.url` value, so the installation fails. Chart 4.22.0 is also the first release in which the task manager takes its startup lock in Redis through that messaging URL.
- Redis 6.0 or later, for the Redis nodes and for Sentinel. Infrahub opens each connection with the `HELLO` command, which Redis 5.0 and earlier reject.

Expand Down
Loading
Loading