Directus v10.10.0stable Released Mar 05, 2024
⚠️ 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)
Read the original context ↗
Source flags breaking changes — review applicability
📄 .MD
⚡ 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]`