Directus v11.9.0stable Released Jun 25, 2025
⚠️ 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))**
Read the original context ↗
Source flags breaking changes — review applicability
📄 .MD
⚡ 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]`