⚠️ Breaking Change
Impact Score: 7/10
Directus v11.9.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 **Added support for LDAP login and enhanced parameter consistency for refresh/logout commands. Allowed overriding the mode in refresh and logout commands to be inline with login ([#25132](https://github.com/directus/directus/pull/25132))**
⚡ Executive Summary (TL;DR)
Directus v11.9.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 **Added support for LDAP login and enhanced parameter consistency for refresh/logout commands. Allowed overriding the mode in refresh and logout commands to be inline with login ([#25132](https://github.com/directus/directus/pull/25132))**
✨ New Features & Capabilities (6)
- Added support for LDAP login and enhanced parameter consistency for refresh/logout commands. Allowed overriding the mode in refresh and logout commands to be inline with login (#25132 by @ComfortablyCoding)
- Added Keyboard Accessibility (#25214 by @formfcw)
- Improved the UX of the field permissions by changing its interface to a checkbox tree (#25253 by @formfcw)
- Added `AUTH_.+_ISSUER_DISCOVERY_MUST_SUCCEED` and `AUTH_.+_CLIENT_HTTP` env variables to the `openid` provider (#25002 by @ComfortablyCoding)
- Added `backlink` query parameter to exclude back-relations when expanding `*.*` in the fields query parameter (#25284 by @Nitwel)
- **@directus/composables**
🔧 Bug Fixes & Patches (6)
- Fixed manual flows to only trigger with appropriate permissions (#25354 by @br41nslug)
- Added BSL license banner to display for first admin user (#25299 by @AlexGaillard)
- Fixed system filters showing null (#25294 by @br41nslug)
- Ensured to revert changes on error after drag & drop in kanban and calendar layout (#25329 by @formfcw)
- Prevented table column widths from having null values (#25298 by @robluton)
- Ensured that the redirection to the collection view after editing an item takes the bookmark query into account (#25327 by @formfcw)
📄 View Raw Release Notes (Original Developer Log)
### ⚠️ Potential Breaking Changes
**Added support for LDAP login and enhanced parameter consistency for refresh/logout commands. Allowed overriding the mode in refresh and logout commands to be inline with login ([#25132](https://github.com/directus/directus/pull/25132))**
The `login` method now accepts a payload object instead of separate email and password parameters.
This enables support for both standard and LDAP authentication, but requires updates to code that previously called `sdk.login(email, password)`.
The new usage is `sdk.login({ email, password })` or `sdk.login({ identifier, password })` for LDAP.
The `refresh` and `logout` command method parameters have been updated to be consistent across usage. The functions now accept an options object instead of their previous regular parameters.
For example the new usage for `refresh` is `sdk.request(refresh({ mode: "json", refresh_token }))` instead of `sdk.request(refresh('json', refresh_token))`.
- **@directus/api**
- Fixed manual flows to only trigger with appropriate permissions ([#25354](https://github.com/directus/directus/pull/25354) by @br41nslug)
- **@directus/sdk**
- Added support for LDAP login and enhanced parameter consistency for refresh/logout commands. Allowed overriding the mode in refresh and logout commands to be inline with login ([#25132](https://github.com/directus/directus/pull/25132) by @ComfortablyCoding)
- **@directus/extensions-sdk**
- Update to Rollup v4 ([#25035](https://github.com/directus/directus/pull/25035) by @abdonrd)
### ✨ New Features & Improvements
- **@directus/app**
- Added Keyboard Accessibility ([#25214](https://github.com/directus/directus/pull/25214) by @formfcw)
- Improved the UX of the field permissions by changing its interface to a checkbox tree ([#25253](https://github.com/directus/directus/pull/25253) by @formfcw)
- **@directus/api**
- Added `AUTH_.+_ISSUER_DISCOVERY_MUST_SUCCEED` and `AUTH_.+_CLIENT_HTTP` env variables to the `openid` provider ([#25002](https://github.com/directus/directus/pull/25002) by @ComfortablyCoding)
- Added `backlink` query parameter to exclude back-relations when expanding `*.*` in the fields query parameter ([#25284](https://github.com/directus/directus/pull/25284) by @Nitwel)
- **@directus/composables**
- Added Keyboard Accessibility ([#25214](https://github.com/directus/directus/pull/25214) by @formfcw)
- **@directus/env**
- Added `AUTH_.+_ISSUER_DISCOVERY_MUST_SUCCEED` and `AUTH_.+_CLIENT_HTTP` env variables to the `openid` provider ([#25002](https://github.com/directus/directus/pull/25002) by @ComfortablyCoding)
- **@directus/sdk**
- Added `backlink` query parameter to exclude back-relations when expanding `*.*` in the fields query parameter ([#25284](https://github.com/directus/directus/pull/25284) by @Nitwel)
- **@directus/types**
- Added `backlink` query parameter to exclude back-relations when expanding `*.*` in the fields query parameter ([#25284](https://github.com/directus/directus/pull/25284) by @Nitwel)
### 🐛 Bug Fixes & Optimizations
- **@directus/app**
- Added BSL license banner to display for first admin user ([#25299](https://github.com/directus/directus/pull/25299) by @AlexGaillard)
- Fixed system filters showing null ([#25294](https://github.com/directus/directus/pull/25294) by @br41nslug)
- Ensured to revert changes on error after drag & drop in kanban and calendar layout ([#25329](https://github.com/directus/directus/pull/25329) by @formfcw)
- Prevented table column widths from having null values ([#25298](https://github.com/directus/directus/pull/25298) by @robluton)
- Ensured that the redirection to the collection view after editing an item takes the bookmark query into account ([#25327](https://github.com/directus/directus/pull/25327) by @formfcw)
- Allowed selecting custom collections for `items.sort` action hook ([#25340](https://github.com/directus/directus/pull/25340) by @ComfortablyCoding)
- Improved nested folder rendering performance ([#25276](https://github.com/directus/directus/pull/25276) by @AlexGaillard)
- Fixed the “Save as Copy” action for files ([#25351](https://github.com/directus/directus/pull/25351) by @Nitwel)
- Updated dependencies tar-fs, vue-i18n, vite and undici ([#25267](https://github.com/directus/directus/pull/25267) by @br41nslug)
- Ensured that the archive filter would only apply if permissions were granted for the archive field ([#25352](https://github.com/directus/directus/pull/25352) by @formfcw)
- **@directus/api**
- Added BSL license banner to display for first admin user ([#25299](https://github.com/directus/directus/pull/25299) by @AlexGaillard)
- Updated `info.version` in the OpenAPI specs ([#25353](https://github.com/directus/directus/pull/25353) by @br41nslug)
- Replaced mapValuesDeep with deepMap. ([#25216](https://github.com/directus/directus/pull/25216) by @Nitwel)
- Fixed existing `numeric_precision`, `numeric_scale` and `max_length` not respected on schema changes ([#25346](https://github.com/directus/directus/pull/25346) by @ComfortablyCoding)
- Fixed translating m2a filters on GQL only when applicable ([#24830](https://github.com/directus/directus/pull/24830) by @Nitwel)
- Added anonymous project id for improved telemetry ([#25300](https://github.com/directus/directus/pull/25300) by @rijkvanzanten)
- Added support for non array group claims in OpenID and OAuth2 ([#25173](https://github.com/directus/directus/pull/25173) by @smgrol)
- Fixed logging of invalid url in isUrlAllowed ([#25235](https://github.com/directus/directus/pull/25235) by @MrGreenTea)
- Added key/value information to db errors ([#25112](https://github.com/directus/directus/pull/25112) by @Nitwel)
- Improved redaction in Flows' Log to Console operation ([#25355](https://github.com/directus/directus/pull/25355) by @br41nslug)
- Fixed Marketplace extension ID when extension was not on database yet ([#25304](https://github.com/directus/directus/pull/25304) by @joselcvarela)
- Fixed permissions for shares for non-admin users ([#25229](https://github.com/directus/directus/pull/25229) by @Nitwel)
- **@directus/env**
- Added BSL license banner to display for first admin user ([#25299](https://github.com/directus/directus/pull/25299) by @AlexGaillard)
- **@directus/types**
- Added BSL license banner to display for first admin user ([#25299](https://github.com/directus/directus/pull/25299) by @AlexGaillard)
- Added anonymous project id for improved telemetry ([#25300](https://github.com/directus/directus/pull/25300) by @rijkvanzanten)
- **@directus/system-data**
- Added BSL license banner to display for first admin user ([#25299](https://github.com/directus/directus/pull/25299) by @AlexGaillard)
- Added anonymous project id for improved telemetry ([#25300](https://github.com/directus/directus/pull/25300) by @rijkvanzanten)
- **@directus/components**
- Updated dependencies tar-fs, vue-i18n, vite and undici ([#25267](https://github.com/directus/directus/pull/25267) by @br41nslug)
- **@directus/extensions-sdk**
- Updated dependencies tar-fs, vue-i18n, vite and undici ([#25267](https://github.com/directus/directus/pull/25267) by @br41nslug)
- **@directus/storage-driver-cloudinary**
- Updated dependencies tar-fs, vue-i18n, vite and undici ([#25267](https://github.com/directus/directus/pull/25267) by @br41nslug)
- **@directus/storage-driver-supabase**
- Updated dependencies tar-fs, vue-i18n, vite and undici ([#25267](https://github.com/directus/directus/pull/25267) by @br41nslug)
- **@directus/themes**
- Updated dependencies tar-fs, vue-i18n, vite and undici ([#25267](https://github.com/directus/directus/pull/25267) by @br41nslug)
- **@directus/utils**
- Replaced mapValuesDeep with deepMap. ([#25216](https://github.com/directus/directus/pull/25216) by @Nitwel)
- Fixed translating m2a filters on GQL only when applicable ([#24830](https://github.com/directus/directus/pull/24830) by @Nitwel)
- **@directus/schema-builder**
- Fixed translating m2a filters on GQL only when applicable ([#24830](https://github.com/directus/directus/pull/24830) by @Nitwel)
- **@directus/sdk**
- Added anonymous project id for improved telemetry ([#25300](https://github.com/directus/directus/pull/25300) by @rijkvanzanten)
- **@directus/errors**
- Added key/value information to db errors ([#25112](https://github.com/directus/directus/pull/25112) by @Nitwel)
- **@directus/extensions**
- Fixed default value of extension options not allowing any ([#25273](https://github.com/directus/directus/pull/25273) by @Nitwel)
### 📦 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]`