⚠️ 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))**
⚡ 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]`