Directus v11.12.0stable Released Sep 16, 2025
⚠️ Breaking Change Impact Score: 7/10

Directus v11.12.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 **Fixed `USER_CREATED`, `USER_UPDATED`, `DATE_CREATED`, and `DATE_UPDATED` values in content versioning. These fields now correctly reflect the actual user and timestamp of creation or last update, rather than the user and date of promotion. ([#25744](https://github.com/directus/directus/pull/25744))**
Read the original context ↗
Source flags breaking changes — review applicability
📄 .MD
⚡ Executive Summary (TL;DR)

Directus v11.12.0. Source highlight: ⚠️ Potential Breaking Changes

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 **Fixed `USER_CREATED`, `USER_UPDATED`, `DATE_CREATED`, and `DATE_UPDATED` values in content versioning. These fields now correctly reflect the actual user and timestamp of creation or last update, rather than the user and date of promotion. ([#25744](https://github.com/directus/directus/pull/25744))**

✨ New Features & Capabilities (6)

  • Add MCP support (#25578 by @ComfortablyCoding)
  • Added description and primary key copy option to the policy page sidebar (#25755 by @khanahmad4527)
  • Add MCP support (#25578 by @ComfortablyCoding)
  • **@directus/format-title**
  • Add MCP support (#25578 by @ComfortablyCoding)
  • **@directus/system-data**

🔧 Bug Fixes & Patches (6)

  • Fixed `USER_CREATED`, `USER_UPDATED`, `DATE_CREATED`, and `DATE_UPDATED` values in content versioning. These fields now correctly reflect the actual user and timestamp of creation or last update, rather than the user and date of promotion. (#25744 by @Nitwel)
  • Fixed `USER_CREATED`, `USER_UPDATED`, `DATE_CREATED`, and `DATE_UPDATED` values in content versioning. These fields now correctly reflect the actual user and timestamp of creation or last update, rather than the user and date of promotion. (#25744 by @Nitwel)
  • Fixed OAuth flow to allow for 2FA setup (#25695 by @robluton)
  • Fixed OAuth flow to allow for 2FA setup (#25695 by @robluton)
  • Ensured that custom validation messages are displayed in the drawer (#25786 by @formfcw)
  • Added cache-busting to image asset URLs in the studio to ensure updated images are always loaded (#25833 by @formfcw)
📄 View Raw Release Notes (Original Developer Log)
### ⚠️ Potential Breaking Changes **Fixed `USER_CREATED`, `USER_UPDATED`, `DATE_CREATED`, and `DATE_UPDATED` values in content versioning. These fields now correctly reflect the actual user and timestamp of creation or last update, rather than the user and date of promotion. ([#25744](https://github.com/directus/directus/pull/25744))** - Requesting a non-existent version will now return a Forbidden error. - The `USER_CREATED`, `USER_UPDATED`, `DATE_CREATED`, and `DATE_UPDATED` fields will now represent the last actual changes, not the promotion metadata. - **@directus/app** - Fixed `USER_CREATED`, `USER_UPDATED`, `DATE_CREATED`, and `DATE_UPDATED` values in content versioning. These fields now correctly reflect the actual user and timestamp of creation or last update, rather than the user and date of promotion. ([#25744](https://github.com/directus/directus/pull/25744) by @Nitwel) - **@directus/api** - Fixed `USER_CREATED`, `USER_UPDATED`, `DATE_CREATED`, and `DATE_UPDATED` values in content versioning. These fields now correctly reflect the actual user and timestamp of creation or last update, rather than the user and date of promotion. ([#25744](https://github.com/directus/directus/pull/25744) by @Nitwel) ### ✨ New Features & Improvements - **@directus/app** - Add MCP support ([#25578](https://github.com/directus/directus/pull/25578) by @ComfortablyCoding) - Fixed OAuth flow to allow for 2FA setup ([#25695](https://github.com/directus/directus/pull/25695) by @robluton) - Added description and primary key copy option to the policy page sidebar ([#25755](https://github.com/directus/directus/pull/25755) by @khanahmad4527) - **@directus/api** - Add MCP support ([#25578](https://github.com/directus/directus/pull/25578) by @ComfortablyCoding) - Fixed OAuth flow to allow for 2FA setup ([#25695](https://github.com/directus/directus/pull/25695) by @robluton) - **@directus/format-title** - Add MCP support ([#25578](https://github.com/directus/directus/pull/25578) by @ComfortablyCoding) - **@directus/system-data** - Add MCP support ([#25578](https://github.com/directus/directus/pull/25578) by @ComfortablyCoding) - **@directus/env** - Add MCP support ([#25578](https://github.com/directus/directus/pull/25578) by @ComfortablyCoding) - **@directus/sdk** - Add MCP support ([#25578](https://github.com/directus/directus/pull/25578) by @ComfortablyCoding) ### 🐛 Bug Fixes & Optimizations - **@directus/app** - Ensured that custom validation messages are displayed in the drawer ([#25786](https://github.com/directus/directus/pull/25786) by @formfcw) - Added cache-busting to image asset URLs in the studio to ensure updated images are always loaded ([#25833](https://github.com/directus/directus/pull/25833) by @formfcw) - Fixed issue causing incorrect relationships to be used in custom interfaces ([#25638](https://github.com/directus/directus/pull/25638) by @robluton) - Ensured that M2M fields in the directus_files collection use the correct interface ([#25602](https://github.com/directus/directus/pull/25602) by @robluton) - **@directus/api** - Upgraded joi dependency from 17.13.3 to 18.0.0 ([#25613](https://github.com/directus/directus/pull/25613) by @dependabot) - Added activity tracking for user suspension due to failed login attempts ([#25836](https://github.com/directus/directus/pull/25836) by @gaetansenn) - Fixed constraint errors not being propagated in MSSQL ([#25801](https://github.com/directus/directus/pull/25801) by @ComfortablyCoding) - **@directus/utils** - Upgraded joi dependency from 17.13.3 to 18.0.0 ([#25613](https://github.com/directus/directus/pull/25613) by @dependabot) - Upgraded tmp dependency from 0.2.4 to 0.2.5 ([#25670](https://github.com/directus/directus/pull/25670) by @dependabot) - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/validation** - Upgraded joi dependency from 17.13.3 to 18.0.0 ([#25613](https://github.com/directus/directus/pull/25613) by @dependabot) - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/types** - Fixed `USER_CREATED`, `USER_UPDATED`, `DATE_CREATED`, and `DATE_UPDATED` values in content versioning. These fields now correctly reflect the actual user and timestamp of creation or last update, rather than the user and date of promotion. ([#25744](https://github.com/directus/directus/pull/25744) by @Nitwel) - Added cache-busting to image asset URLs in the studio to ensure updated images are always loaded ([#25833](https://github.com/directus/directus/pull/25833) by @formfcw) - **@directus/storage-driver-cloudinary** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/storage-driver-supabase** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/storage-driver-azure** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/storage-driver-local** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/extensions-registry** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/storage-driver-gcs** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/storage-driver-s3** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/schema-builder** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/format-title** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/update-check** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/composables** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/system-data** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/extensions** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/constants** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/pressure** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/storage** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/errors** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/memory** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/schema** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/stores** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/env** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) - **@directus/sdk** - Replaced tsup with tsdown ([#25750](https://github.com/directus/directus/pull/25750) by @ComfortablyCoding) ### 📦 Published Versions - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[email protected]` - `@directus/[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]`