From 28a3eb4e7f24dea98fbd773ea8d5edeee657d342 Mon Sep 17 00:00:00 2001 From: opsmill-bot Date: Fri, 30 Oct 2026 11:10:08 +0000 Subject: [PATCH 1/5] chore: update docker-compose for release 1.11.10 --- docker-compose.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index c43144e3bef..d56eaea0916 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -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: @@ -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 @@ -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: From 34c38d9e2dfee345557c43da07d6ef57e0287a8b Mon Sep 17 00:00:00 2001 From: Fatih Acar Date: Fri, 30 Oct 2026 11:12:01 +0000 Subject: [PATCH 2/5] chore: release 1.11.10 --- CHANGELOG.md | 39 ++++++++++++ changelog/+base-python-3-14-10.security.md | 1 - .../+check-definition-class-name.fixed.md | 1 - changelog/+check-definition-targets.fixed.md | 1 - .../+generator-capture-unstored-diff.fixed.md | 1 - .../+graphql-concurrent-query-fields.fixed.md | 1 - changelog/+hidden-table-scrollbars.fixed.md | 1 - changelog/+inapp-docs-links.fixed.md | 1 - .../+python-transform-class-name.fixed.md | 1 - changelog/+rabbitmq-quorum-queues.added.md | 1 - ...+schema-change-stored-data-checks.fixed.md | 1 - changelog/+task-results-redis-expiry.fixed.md | 1 - .../+testcontainers-neo4j-image.fixed.md | 1 - .../+uv-pin-in-image-build.housekeeping.md | 1 - changelog/11018.fixed.md | 1 - changelog/11036.fixed.md | 1 - changelog/11166.fixed.md | 1 - changelog/11218.fixed.md | 1 - changelog/11232.changed.md | 1 - changelog/11232.fixed.md | 1 - changelog/11277.fixed.md | 1 - changelog/9449.added.md | 1 - changelog/9449.changed.md | 1 - .../infrahub/release-1_11_10.mdx | 59 +++++++++++++++++++ 24 files changed, 98 insertions(+), 22 deletions(-) delete mode 100644 changelog/+base-python-3-14-10.security.md delete mode 100644 changelog/+check-definition-class-name.fixed.md delete mode 100644 changelog/+check-definition-targets.fixed.md delete mode 100644 changelog/+generator-capture-unstored-diff.fixed.md delete mode 100644 changelog/+graphql-concurrent-query-fields.fixed.md delete mode 100644 changelog/+hidden-table-scrollbars.fixed.md delete mode 100644 changelog/+inapp-docs-links.fixed.md delete mode 100644 changelog/+python-transform-class-name.fixed.md delete mode 100644 changelog/+rabbitmq-quorum-queues.added.md delete mode 100644 changelog/+schema-change-stored-data-checks.fixed.md delete mode 100644 changelog/+task-results-redis-expiry.fixed.md delete mode 100644 changelog/+testcontainers-neo4j-image.fixed.md delete mode 100644 changelog/+uv-pin-in-image-build.housekeeping.md delete mode 100644 changelog/11018.fixed.md delete mode 100644 changelog/11036.fixed.md delete mode 100644 changelog/11166.fixed.md delete mode 100644 changelog/11218.fixed.md delete mode 100644 changelog/11232.changed.md delete mode 100644 changelog/11232.fixed.md delete mode 100644 changelog/11277.fixed.md delete mode 100644 changelog/9449.added.md delete mode 100644 changelog/9449.changed.md create mode 100644 docs/docs/release-notes/infrahub/release-1_11_10.mdx diff --git a/CHANGELOG.md b/CHANGELOG.md index b5bf7a3d381..c3fb3a887f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,45 @@ This project uses [*towncrier*](https://towncrier.readthedocs.io/) and the chang +## [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 + +- 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)) + +### 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 diff --git a/changelog/+base-python-3-14-10.security.md b/changelog/+base-python-3-14-10.security.md deleted file mode 100644 index 7204c13b63d..00000000000 --- a/changelog/+base-python-3-14-10.security.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/changelog/+check-definition-class-name.fixed.md b/changelog/+check-definition-class-name.fixed.md deleted file mode 100644 index ebbdbba50a9..00000000000 --- a/changelog/+check-definition-class-name.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fixed repository sync ignoring a changed `class_name` on an existing check definition in `.infrahub.yml`. diff --git a/changelog/+check-definition-targets.fixed.md b/changelog/+check-definition-targets.fixed.md deleted file mode 100644 index 046bc79a762..00000000000 --- a/changelog/+check-definition-targets.fixed.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/changelog/+generator-capture-unstored-diff.fixed.md b/changelog/+generator-capture-unstored-diff.fixed.md deleted file mode 100644 index f58eb46c1ea..00000000000 --- a/changelog/+generator-capture-unstored-diff.fixed.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/changelog/+graphql-concurrent-query-fields.fixed.md b/changelog/+graphql-concurrent-query-fields.fixed.md deleted file mode 100644 index 1c98a37eacc..00000000000 --- a/changelog/+graphql-concurrent-query-fields.fixed.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/changelog/+hidden-table-scrollbars.fixed.md b/changelog/+hidden-table-scrollbars.fixed.md deleted file mode 100644 index b4b5bbff4ed..00000000000 --- a/changelog/+hidden-table-scrollbars.fixed.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/changelog/+inapp-docs-links.fixed.md b/changelog/+inapp-docs-links.fixed.md deleted file mode 100644 index e59d60fd245..00000000000 --- a/changelog/+inapp-docs-links.fixed.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/changelog/+python-transform-class-name.fixed.md b/changelog/+python-transform-class-name.fixed.md deleted file mode 100644 index 7806033d9f9..00000000000 --- a/changelog/+python-transform-class-name.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fixed repository sync ignoring a changed `class_name` on an existing Python Transformation in `.infrahub.yml`. diff --git a/changelog/+rabbitmq-quorum-queues.added.md b/changelog/+rabbitmq-quorum-queues.added.md deleted file mode 100644 index af1923ee91a..00000000000 --- a/changelog/+rabbitmq-quorum-queues.added.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/changelog/+schema-change-stored-data-checks.fixed.md b/changelog/+schema-change-stored-data-checks.fixed.md deleted file mode 100644 index 5f0c523a443..00000000000 --- a/changelog/+schema-change-stored-data-checks.fixed.md +++ /dev/null @@ -1 +0,0 @@ -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`. diff --git a/changelog/+task-results-redis-expiry.fixed.md b/changelog/+task-results-redis-expiry.fixed.md deleted file mode 100644 index 34d99378956..00000000000 --- a/changelog/+task-results-redis-expiry.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fixed task results accumulating in Redis without ever expiring: results now expire two days after they are written. diff --git a/changelog/+testcontainers-neo4j-image.fixed.md b/changelog/+testcontainers-neo4j-image.fixed.md deleted file mode 100644 index ddb7bcb1c18..00000000000 --- a/changelog/+testcontainers-neo4j-image.fixed.md +++ /dev/null @@ -1 +0,0 @@ -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`. diff --git a/changelog/+uv-pin-in-image-build.housekeeping.md b/changelog/+uv-pin-in-image-build.housekeeping.md deleted file mode 100644 index b1fbfff7f6a..00000000000 --- a/changelog/+uv-pin-in-image-build.housekeeping.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/changelog/11018.fixed.md b/changelog/11018.fixed.md deleted file mode 100644 index 689b29d262e..00000000000 --- a/changelog/11018.fixed.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/changelog/11036.fixed.md b/changelog/11036.fixed.md deleted file mode 100644 index 93974dd81cd..00000000000 --- a/changelog/11036.fixed.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/changelog/11166.fixed.md b/changelog/11166.fixed.md deleted file mode 100644 index e09c156d75b..00000000000 --- a/changelog/11166.fixed.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/changelog/11218.fixed.md b/changelog/11218.fixed.md deleted file mode 100644 index 4a6d05d59de..00000000000 --- a/changelog/11218.fixed.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/changelog/11232.changed.md b/changelog/11232.changed.md deleted file mode 100644 index 65ca768d1e3..00000000000 --- a/changelog/11232.changed.md +++ /dev/null @@ -1 +0,0 @@ -Changed the error message for a GraphQL query with a syntax error to start with "Query is not valid, ". diff --git a/changelog/11232.fixed.md b/changelog/11232.fixed.md deleted file mode 100644 index b1e51f463c1..00000000000 --- a/changelog/11232.fixed.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/changelog/11277.fixed.md b/changelog/11277.fixed.md deleted file mode 100644 index c37b8ada28e..00000000000 --- a/changelog/11277.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fixed proposed change checks that stayed in progress forever, and blocked the merge, when one of their runs failed or timed out. diff --git a/changelog/9449.added.md b/changelog/9449.added.md deleted file mode 100644 index 84d561f86be..00000000000 --- a/changelog/9449.added.md +++ /dev/null @@ -1 +0,0 @@ -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). diff --git a/changelog/9449.changed.md b/changelog/9449.changed.md deleted file mode 100644 index 1a91afda280..00000000000 --- a/changelog/9449.changed.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/docs/docs/release-notes/infrahub/release-1_11_10.mdx b/docs/docs/release-notes/infrahub/release-1_11_10.mdx new file mode 100644 index 00000000000..6c6fece966e --- /dev/null +++ b/docs/docs/release-notes/infrahub/release-1_11_10.mdx @@ -0,0 +1,59 @@ +--- +title: Release 1.11.10 +release_date: 2026-10-30 +release_type: security +description: "Infrahub 1.11.10 updates the base Python version of the container image to 3.14.10 so the bundled pip no longer ships a certifi version affected by GHSA-6q48-6c7w-9gw2, adds Redis Sentinel support and quorum queues for RabbitMQ, and raises the Redis requirement to version 6.0. It also fixes filters and search on a branch, schema changes that existing data violates, repository sync of changed artifact definitions, Transformations and check definitions, and proposed change checks that stayed in progress forever." +--- + + + + + + + + + + + + + + + +
Release Number1.11.10
Release DateOctober 30th, 2026
Tag[infrahub-v1.11.10](https://github.com/opsmill/infrahub/releases/tag/infrahub-v1.11.10)
+ +### 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 + +- 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)) + +### 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. From b6ff45782b64d10dc9a9e1535d8732a458e09178 Mon Sep 17 00:00:00 2001 From: Fatih Acar Date: Fri, 30 Oct 2026 11:33:54 +0000 Subject: [PATCH 3/5] chore: mark the Redis 6.0 requirement of 1.11.10 as breaking --- CHANGELOG.md | 2 +- docs/docs/release-notes/infrahub/release-1_11_10.mdx | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3fb3a887f9..7a1ddc3f5b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,7 +24,7 @@ This project uses [*towncrier*](https://towncrier.readthedocs.io/) and the chang ### Changed -- 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)) +- **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)) ### Fixed diff --git a/docs/docs/release-notes/infrahub/release-1_11_10.mdx b/docs/docs/release-notes/infrahub/release-1_11_10.mdx index 6c6fece966e..6a7fc3f9902 100644 --- a/docs/docs/release-notes/infrahub/release-1_11_10.mdx +++ b/docs/docs/release-notes/infrahub/release-1_11_10.mdx @@ -2,6 +2,7 @@ title: Release 1.11.10 release_date: 2026-10-30 release_type: security +breaking: true description: "Infrahub 1.11.10 updates the base Python version of the container image to 3.14.10 so the bundled pip no longer ships a certifi version affected by GHSA-6q48-6c7w-9gw2, adds Redis Sentinel support and quorum queues for RabbitMQ, and raises the Redis requirement to version 6.0. It also fixes filters and search on a branch, schema changes that existing data violates, repository sync of changed artifact definitions, Transformations and check definitions, and proposed change checks that stayed in progress forever." --- @@ -32,7 +33,7 @@ description: "Infrahub 1.11.10 updates the base Python version of the container ### Changed -- 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)) +- **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)) ### Fixed From c60a6a82ba9e8cf0aa40cf8a8d4db0a0c4b0cf99 Mon Sep 17 00:00:00 2001 From: Fatih Acar Date: Fri, 30 Oct 2026 11:33:54 +0000 Subject: [PATCH 4/5] docs: require Infrahub 1.11.10 for Redis Sentinel in the HA guide and examples --- development/deploy.tf | 2 +- development/k8s/infrahub-values.yaml | 4 ++-- .../production-deployment/high-availability.mdx | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/development/deploy.tf b/development/deploy.tf index dec210b4703..d88865577a3 100644 --- a/development/deploy.tf +++ b/development/deploy.tf @@ -23,7 +23,7 @@ provider "kubectl" { locals { target_namespace = "infrahub" - infrahub_version = "1.11.9" + infrahub_version = "1.11.10" } ### Infrahub diff --git a/development/k8s/infrahub-values.yaml b/development/k8s/infrahub-values.yaml index 6175b45ca9d..e3f37dac1d7 100644 --- a/development/k8s/infrahub-values.yaml +++ b/development/k8s/infrahub-values.yaml @@ -2,7 +2,7 @@ # yamllint disable rule:line-length infrahub: global: - infrahubTag: 1.11.9 + infrahubTag: 1.11.10 infrahubServer: podLabels: infrahub/service: server @@ -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: diff --git a/docs/docs/deploy-manage/install-configure/production-deployment/high-availability.mdx b/docs/docs/deploy-manage/install-configure/production-deployment/high-availability.mdx index 9a5f27b008d..ca802fb4007 100644 --- a/docs/docs/deploy-manage/install-configure/production-deployment/high-availability.mdx +++ b/docs/docs/deploy-manage/install-configure/production-deployment/high-availability.mdx @@ -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. From d863c032946ef290a91bf13069841b31614e592b Mon Sep 17 00:00:00 2001 From: Fatih Acar Date: Fri, 30 Oct 2026 13:13:37 +0000 Subject: [PATCH 5/5] chore: add the clean-up-deadlocks change to the 1.11.10 changelog --- CHANGELOG.md | 1 + changelog/+clean-up-deadlocks-concurrency.changed.md | 1 - docs/docs/release-notes/infrahub/release-1_11_10.mdx | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 changelog/+clean-up-deadlocks-concurrency.changed.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a1ddc3f5b7..ba8c7dde4bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ This project uses [*towncrier*](https://towncrier.readthedocs.io/) and the chang - **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 diff --git a/changelog/+clean-up-deadlocks-concurrency.changed.md b/changelog/+clean-up-deadlocks-concurrency.changed.md deleted file mode 100644 index a092f5b5bb9..00000000000 --- a/changelog/+clean-up-deadlocks-concurrency.changed.md +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/docs/docs/release-notes/infrahub/release-1_11_10.mdx b/docs/docs/release-notes/infrahub/release-1_11_10.mdx index 6a7fc3f9902..ffe5a8adfcf 100644 --- a/docs/docs/release-notes/infrahub/release-1_11_10.mdx +++ b/docs/docs/release-notes/infrahub/release-1_11_10.mdx @@ -35,6 +35,7 @@ description: "Infrahub 1.11.10 updates the base Python version of the container - **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