⚠️ Breaking Change
Impact Score: 7/10
Directus v10.10.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 > [!WARNING]
If you're using extensions in type-folders, please be aware of [breaking changes](https://docs.directus.io/releases/breaking-changes.html#version-10-10-0)
- Updated breaking change note on the typed extension folders ([#21696](https://github.com/directus/directus/pull/21696) by @phazonoverload)
⚡ Executive Summary (TL;DR)
Directus v10.10.0. Source highlight: ✨ New Features & Improvements
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 (3)
- ⚠️ Potential Breaking Changes > [!WARNING]
- If you're using extensions in type-folders, please be aware of [breaking changes](https://docs.directus.io/releases/breaking-changes.html#version-10-10-0)
- - Updated breaking change note on the typed extension folders ([#21696](https://github.com/directus/directus/pull/21696) by @phazonoverload)
✨ New Features & Capabilities (6)
- Integrated the Content Version in the browser URL / history to enable browser navigation and page refresh (#21624 by @paescuj)
- Added a new set of extensions registry endpoints (#21674 by @paescuj)
- Introduced deep relational fields merging for Content Versions (#21386 by @azrikahar)
- Added new MIGRATIONS_PATH environment variable to control where custom migrations are read from (#21674 by @paescuj)
- Added a new set of extensions registry endpoints (#21674 by @paescuj)
- Added new MIGRATIONS_PATH environment variable to control where custom migrations are read from (#21674 by @paescuj)
🔧 Bug Fixes & Patches (6)
- Added disabled state to MFA setup interface (#21588 by @paescuj)
- Enhanced the language selection in translations interface by switching open/close icon and closing dropdown when (#21594 by @paescuj)
- Fixed an issue where "Copy To" action on Flow operations failed when connected to subsequent operations (#21566 by @paescuj)
- Enabled JIT compiler for vue-i18n to drop need for 'unsafe-eval' CSP and excluded legacy API (#21649 by @paescuj)
- Introduced deep relational fields merging for Content Versions (#21386 by @azrikahar)
- Fixed issue that would cause the marketplace registry pagination to fail on certain pages (#21703 by @rijkvanzanten)
📄 View Raw Release Notes (Original Developer Log)
### ✨ New Features & Improvements
This release contains the **extensions marketplace** and big **improvements to content versioning**.
- **@directus/app**
- Integrated the Content Version in the browser URL / history to enable browser navigation and page refresh ([#21624](https://github.com/directus/directus/pull/21624) by @paescuj)
- **@directus/api**
- Added a new set of extensions registry endpoints ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
### ⚠️ Potential Breaking Changes
> [!WARNING]
> If you're using extensions in type-folders, please be aware of [breaking changes](https://docs.directus.io/releases/breaking-changes.html#version-10-10-0)
- **@directus/app**
- Dropped support for the typed folders in the extensions folder ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- Implemented Session Based Authentication ([#21239](https://github.com/directus/directus/pull/21239) by @br41nslug)
- **@directus/api**
- Introduced deep relational fields merging for Content Versions ([#21386](https://github.com/directus/directus/pull/21386) by @azrikahar)
- Dropped support for the typed folders in the extensions folder ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- Implemented Session Based Authentication ([#21239](https://github.com/directus/directus/pull/21239) by @br41nslug)
- Updated the extensions management endpoints to rely on a unique primary key rather than npm package name ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- Added new MIGRATIONS_PATH environment variable to control where custom migrations are read from ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- **@directus/extensions-sdk**
- Dropped support for the typed folders in the extensions folder ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- Updated the extensions management endpoints to rely on a unique primary key rather than npm package name ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- **@directus/extensions**
- Dropped support for the typed folders in the extensions folder ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- **@directus/extensions-registry**
- Added a new set of extensions registry endpoints ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
### 🐛 Bug Fixes & Optimizations
- **@directus/app**
- Added disabled state to MFA setup interface ([#21588](https://github.com/directus/directus/pull/21588) by @paescuj)
- Enhanced the language selection in translations interface by switching open/close icon and closing dropdown when ([#21594](https://github.com/directus/directus/pull/21594) by @paescuj)
toggling split view
- Fixed an issue where "Copy To" action on Flow operations failed when connected to subsequent operations ([#21566](https://github.com/directus/directus/pull/21566) by @paescuj)
- Enabled JIT compiler for vue-i18n to drop need for 'unsafe-eval' CSP and excluded legacy API ([#21649](https://github.com/directus/directus/pull/21649) by @paescuj)
- Introduced deep relational fields merging for Content Versions ([#21386](https://github.com/directus/directus/pull/21386) by @azrikahar)
- Fixed issue that would cause the marketplace registry pagination to fail on certain pages ([#21703](https://github.com/directus/directus/pull/21703) by @rijkvanzanten)
- Ensured app minimal permissions are only shown in Access Control settings when role includes app access and enhanced representation of permission rules ([#21543](https://github.com/directus/directus/pull/21543) by @paescuj)
- Enabled insertion of the translated string newly created via the system-input-translated-string interface ([#21632](https://github.com/directus/directus/pull/21632) by @formfcw)
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- Updated the extensions management endpoints to rely on a unique primary key rather than npm package name ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- Fixed an issue that prevented saving of content versions featuring relational data ([#21509](https://github.com/directus/directus/pull/21509) by @DanielBiegler)
- Aligned "No items" notice across relational list interfaces to prevent jumping on selection of items ([#21609](https://github.com/directus/directus/pull/21609) by @paescuj)
- Fixed gap between action buttons in Builder (M2A) interface ([#21607](https://github.com/directus/directus/pull/21607) by @formfcw)
- Ensured the Marketplace extension metadata buttons are perfectly aligned ([#21700](https://github.com/directus/directus/pull/21700) by @formfcw)
- Fixed the position of the empty fields info in translations interface ([#21591](https://github.com/directus/directus/pull/21591) by @paescuj)
- Ensured the user / project language is used as default value when creating a new custom translation via translation dropdown interface ([#21634](https://github.com/directus/directus/pull/21634) by @formfcw)
- Aligned the menu for toggling invisible collections ([#21593](https://github.com/directus/directus/pull/21593) by @paescuj)
- Ensured that translation strings are preserved when duplicating a field ([#21648](https://github.com/directus/directus/pull/21648) by @formfcw)
- Fixed loading of avatars in comment mentions ([#21587](https://github.com/directus/directus/pull/21587) by @paescuj)
- **@directus/api**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- Fixed potential Open Redirect vulnerability with OAuth2/OpenID/SAML SSO providers (via Directus redirect query parameter), by requiring redirect URLs to be enabled via allow list ([#21238](https://github.com/directus/directus/pull/21238) by @br41nslug)
- Clarified the logged warning if the SAML identifier is not present in SAML response, enhanced error handler middleware for better fallbacks ([#21552](https://github.com/directus/directus/pull/21552) by @flipswitchingmonkey)
- Fixed an issue that would cause email sending to take a while for slower SMTP hosts by no longer awaiting the smtp ([`508508d`](https://github.com/directus/directus/commit/508508d6873066d356e831c489294a2fdab5be4a) by @rijkvanzanten)
response
- Fixed merging of app minimal permissions in permissions endpoint ([#21542](https://github.com/directus/directus/pull/21542) by @paescuj)
- Adjusted UUID validation of fields/keys to be more relaxed, permitting values with non-standard versions ([#21613](https://github.com/directus/directus/pull/21613) by @kashike)
- Fixed an issue that could cause field CrUD to emit too many events ([#21670](https://github.com/directus/directus/pull/21670) by @joselcvarela)
- Dropped `uuid` dependency in favor of Node.js built-in UUID generator ([#21625](https://github.com/directus/directus/pull/21625) by @paescuj)
- Fixed an issue where storage could be unavailable at the first use after the start of Directus ([#21590](https://github.com/directus/directus/pull/21590) by @paescuj)
- **@directus/types**
- Introduced deep relational fields merging for Content Versions ([#21386](https://github.com/directus/directus/pull/21386) by @azrikahar)
- Ensured app minimal permissions are only shown in Access Control settings when role includes app access and enhanced representation of permission rules ([#21543](https://github.com/directus/directus/pull/21543) by @paescuj)
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/sdk**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- Implemented Session Based Authentication ([#21239](https://github.com/directus/directus/pull/21239) by @br41nslug)
- **@directus/components**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/composables**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **create-directus-project**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/data-driver-postgres**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/data-sql**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/data**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/env**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- Implemented Session Based Authentication ([#21239](https://github.com/directus/directus/pull/21239) by @br41nslug)
- Updated the extensions management endpoints to rely on a unique primary key rather than npm package name ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- Fixed potential Open Redirect vulnerability with OAuth2/OpenID/SAML SSO providers (via Directus redirect query parameter), by requiring redirect URLs to be enabled via allow list ([#21238](https://github.com/directus/directus/pull/21238) by @br41nslug)
- Added a new set of extensions registry endpoints ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- Cast env defaults that are typed ([#21702](https://github.com/directus/directus/pull/21702) by @licitdev)
- **@directus/extensions-sdk**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- Added a new set of extensions registry endpoints ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- Added "files"-key to generated package manifests ([#21565](https://github.com/directus/directus/pull/21565) by @DanielBiegler)
- **@directus/extensions**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- Updated the extensions management endpoints to rely on a unique primary key rather than npm package name ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- Added a new set of extensions registry endpoints ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- **@directus/memory**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/random**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/release-notes-generator**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/specs**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- Implemented Session Based Authentication ([#21239](https://github.com/directus/directus/pull/21239) by @br41nslug)
- **@directus/storage-driver-cloudinary**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/storage-driver-local**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/storage-driver-s3**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/storage-driver-supabase**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/storage**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/stores**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/system-data**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- Added CJS exports for system-data package ([#21614](https://github.com/directus/directus/pull/21614) by @br41nslug)
- **@directus/themes**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- Updated the extensions management endpoints to rely on a unique primary key rather than npm package name ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- **@directus/update-check**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/utils**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- Updated the extensions management endpoints to rely on a unique primary key rather than npm package name ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- **@directus/validation**
- Updated dependencies ([#21667](https://github.com/directus/directus/pull/21667) by @paescuj)
- **@directus/extensions-registry**
- Updated the extensions management endpoints to rely on a unique primary key rather than npm package name ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- **@directus/errors**
- Updated the extensions management endpoints to rely on a unique primary key rather than npm package name ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
### 📝 Documentation
- Updated the extensions management endpoints to rely on a unique primary key rather than npm package name ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- Added new MIGRATIONS_PATH environment variable to control where custom migrations are read from ([#21674](https://github.com/directus/directus/pull/21674) by @paescuj)
- Added docs and user guide pages for the Marketplace preview ([#21458](https://github.com/directus/directus/pull/21458) by @phazonoverload)
- Updated breaking change note on the typed extension folders ([#21696](https://github.com/directus/directus/pull/21696) by @phazonoverload)
### 📦 Published Versions
- `@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]`