Directus v11.0.0stable Released Aug 06, 2024
โš ๏ธ Breaking Change Impact Score: 7/10

Directus v11.0.0 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: directus ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Breaking-change evidence from the source

  • โš ๏ธ Potential Breaking Changes - **@directus/app**
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Directus v11.0.0. Source highlight: Directus v11 contains a brand new permissions system that's based on policies. We've provided a migration, so the upgrade path is the same as with other releases. This is a big release, which changes the paradigm on how permissions are attached and executed. Please make a database backup before upgr

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โš ๏ธ Breaking Changes & Deprecations (1)

  • โš ๏ธ Potential Breaking Changes - **@directus/app**

โœจ New Features & Capabilities (6)

  • Added a new policy based permissions system (#22773 by @rijkvanzanten)
  • Added a new policy based permissions system (#22773 by @rijkvanzanten)
  • Added new collections and fields and updated existing fields and permissions needed for Policies (#22773 by @rijkvanzanten)
  • Added new types and modified existing types required for Policies (#22773 by @rijkvanzanten)
  • Added new dynamic variables to `parseFilter` and added the `processChunk` helper (#22773 by @rijkvanzanten)
  • Updated WebSocket subscriptions to include the new policies collection (#22773 by @rijkvanzanten)

๐Ÿ”ง Bug Fixes & Patches (6)

  • Ensured collections in system permissions interface are scrolled into view when added but out of view (#23036 by @paescuj)
  • Ensured the permissions table under policies is displayed correctly on mobile devices (#22985 by @paescuj)
  • Fixed table layout default query, to not include presetational fields (#22840 by @hanneskuettner)
  • Fixed missing policies in public role policy selection (#23192 by @hanneskuettner)
  • Fixed `groupBy` behavior that resulted in an internal server error when used with relational item permissions (#23185 by @hanneskuettner)
  • Fixed an issue that would cause the API to return an error when a root field in a m2a builder was queried (#23181 by @rijkvanzanten)
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
## Policies Directus v11 contains a brand new permissions system that's based on policies. We've provided a migration, so the upgrade path is the same as with other releases. This is a big release, which changes the paradigm on how permissions are attached and executed. Please make a database backup before upgrading your version of Directus. ### โš ๏ธ Potential Breaking Changes - **@directus/app** - Added a new policy based permissions system ([#22773](https://github.com/directus/directus/pull/22773) by @rijkvanzanten) - **@directus/api** - Replaced the database client library `mysql` with `mysql2`, used for MySQL/MariaDB ([#22534](https://github.com/directus/directus/pull/22534) by @paescuj) - Added a new policy based permissions system ([#22773](https://github.com/directus/directus/pull/22773) by @rijkvanzanten) - **@directus/extensions** - Changed module `preRegisterCheck` signature to align with the changes made for Policies ([#22773](https://github.com/directus/directus/pull/22773) by @rijkvanzanten) - **@directus/system-data** - Added new collections and fields and updated existing fields and permissions needed for Policies ([#22773](https://github.com/directus/directus/pull/22773) by @rijkvanzanten) - **@directus/types** - Added new types and modified existing types required for Policies ([#22773](https://github.com/directus/directus/pull/22773) by @rijkvanzanten) - **@directus/utils** - Added new dynamic variables to `parseFilter` and added the `processChunk` helper ([#22773](https://github.com/directus/directus/pull/22773) by @rijkvanzanten) ### โœจ New Features & Improvements - **@directus/api** - Updated WebSocket subscriptions to include the new policies collection ([#22773](https://github.com/directus/directus/pull/22773) by @rijkvanzanten) - Used explicit headings for CSV export ([#23140](https://github.com/directus/directus/pull/23140) by @jaads) - Implemented new GraphQL queries for policies ([#22773](https://github.com/directus/directus/pull/22773) by @rijkvanzanten) - **@directus/constants** - Added permission actions constant ([#22773](https://github.com/directus/directus/pull/22773) by @rijkvanzanten) - **@directus/sdk** - Implemented new SDK functions for policies ([#22773](https://github.com/directus/directus/pull/22773) by @rijkvanzanten) - **@directus/memory** - Added new `clear` method to cache implementations ([#22773](https://github.com/directus/directus/pull/22773) by @rijkvanzanten) - **@directus/errors** - Added error extension to the `ForbiddenError` ([#22773](https://github.com/directus/directus/pull/22773) by @rijkvanzanten) ### ๐Ÿ› Bug Fixes & Optimizations - **@directus/app** - Ensured collections in system permissions interface are scrolled into view when added but out of view ([#23036](https://github.com/directus/directus/pull/23036) by @paescuj) - Ensured the permissions table under policies is displayed correctly on mobile devices ([#22985](https://github.com/directus/directus/pull/22985) by @paescuj) - Fixed table layout default query, to not include presetational fields ([#22840](https://github.com/directus/directus/pull/22840) by @hanneskuettner) - Fixed missing policies in public role policy selection ([#23192](https://github.com/directus/directus/pull/23192) by @hanneskuettner) - **@directus/api** - Fixed `groupBy` behavior that resulted in an internal server error when used with relational item permissions ([#23185](https://github.com/directus/directus/pull/23185) by @hanneskuettner) - Fixed an issue that would cause the API to return an error when a root field in a m2a builder was queried ([#23181](https://github.com/directus/directus/pull/23181) by @rijkvanzanten) - Fixed `reduceSchema` to strip out collection the user does not have access to ([#22916](https://github.com/directus/directus/pull/22916) by @hanneskuettner) - Fixed user counting where users were double counted and inactive users with policies were counted as well ([#23184](https://github.com/directus/directus/pull/23184) by @rijkvanzanten) - Fixed filter creation in `fetchPolicies` for users without roles ([#22936](https://github.com/directus/directus/pull/22936) by @hanneskuettner) - Fixed aggregation field existence and permission checks ([#23022](https://github.com/directus/directus/pull/23022) by @hanneskuettner) - Fixed down migration erroring on post migration permissions ([#23097](https://github.com/directus/directus/pull/23097) by @ComfortablyCoding) - Fixed permission checking for o2m related fields ([#23199](https://github.com/directus/directus/pull/23199) by @hanneskuettner) - Ensured that policies attached to a user, role and parent roles are correctly prioritized ([#22967](https://github.com/directus/directus/pull/22967) by @paescuj) - Ensured the default `DB_FILENAME` option from the Docker Image is not applied when using MySQL/MariaDB, fixing a corresponding warning ([#22970](https://github.com/directus/directus/pull/22970) by @cliqer) - Fixed the policies migration for the case where permissions had been configured for the public role ([#22811](https://github.com/directus/directus/pull/22811) by @paescuj) - Fix query error on some DB vendors when using multi relation sort ([#22872](https://github.com/directus/directus/pull/22872) by @hanneskuettner) - Migrated `NotificationsService` to new policies system ([#22914](https://github.com/directus/directus/pull/22914) by @hanneskuettner) - Fixed broken permissions for sorting of aggregate query when using the aggregate result as sort field ([#23193](https://github.com/directus/directus/pull/23193) by @hanneskuettner) - Fixed an issue where keys in filter operand objects where incorrectly checked for field permissions ([#22915](https://github.com/directus/directus/pull/22915) by @hanneskuettner) ### ๐Ÿ“ฆ Published Versions - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `[email protected]` - `[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]`