Directus v12.6.1stable Released Nov 04, 2026
Impact Score: 6/10

Directus v12.6.1 — 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-04.

Compatibility not verified — check source notes
📄 .MD
⚡ Executive Summary (TL;DR)

Directus v12.6.1 introduces new Environment Sync presets, a WYSIWYG allowed link protocols configuration, and numerous security patches addressing critical CVEs. It also optimizes M2M search filtering, table rendering performance, and sandboxed error handling.

Who Does This Impact? (Role-Based Analysis)

💻 Software Engineers & Devs

You can now safely handle custom URL schemes in the WYSIWYG editor and enjoy improved Error object handling in sandboxed script operations.

📊 Product & Engineering Leads

Administrators gain granular control over global, role-scoped, and default view presets during Environment Sync, streamlining multi-instance deployments.

⚙️ DevOps & Security

Upgrade immediately to pick up critical dependency vulnerability patches across multiple core packages and the Node.js bump to v26.13.0.

✨ New Features & Capabilities (2)

  • Added 'Allowed Link Protocols' option to the WYSIWYG interface for custom URL schemes
  • Added presets support to Environment Sync for global and role-scoped bookmarks and default views

⚡ Performance & Enhancements (4)

  • Improved table, select, menu, and color display rendering performance by replacing CSS v-bind() with inline styles
  • Sped up table row selection checks by using a lookup set instead of full array scans
  • Fixed M2M list searching to match related fields instead of junction fields and hidden IDs
  • Updated core dependencies to address multiple CVEs

🔧 Bug Fixes & Patches (4)

  • Fixed login redirects normalizing into protocol-relative URLs
  • Fixed sandbox request URL scope validation not applying to redirect destinations
  • Fixed Run Script operations and sandboxed extensions failing with 'illegal access' on error data
  • Fixed add-mode environment sync pushes silently skipping new permissions with matching source IDs
📄 View Raw Release Notes (Original Developer Log)
### ✨ New Features & Improvements - **@directus/app** - Added an "Allowed Link Protocols" option to the WYSIWYG interface so text and image links with custom URL schemes (e.g. `myapp://`) are kept, and made the link drawer show an error for a scheme that is not allowed instead of saving an empty link ([#28447](https://github.com/directus/directus/pull/28447) by @alvarosabu) - **@directus/utils** - Fixed searching a many-to-many list so it matches the related fields shown in the list, not only the junction's own fields. Searching a number no longer matches hidden ID fields, such as the junction row ID ([#28422](https://github.com/directus/directus/pull/28422) by @robluton) - **@directus/cli** - Added presets to Environment Sync. Global and role-scoped bookmarks and default views are synced; personal presets stay on their instance, and role presets whose role is missing on the target are skipped with a warning and counted in the new `skipped` field of the `--json` data report. Fixed add-mode pushes silently skipping a new permission whose source ID matched an unrelated target record ([#28357](https://github.com/directus/directus/pull/28357) by @bryantgillespie) ### 🐛 Bug Fixes & Optimizations - **@directus/app** - Improved table, select, menu, and color display rendering performance by replacing per-instance CSS `v-bind()` with inline styles ([#28435](https://github.com/directus/directus/pull/28435) by @bryantgillespie) - Fixed searching a many-to-many list so it matches the related fields shown in the list, not only the junction's own fields. Searching a number no longer matches hidden ID fields, such as the junction row ID ([#28422](https://github.com/directus/directus/pull/28422) by @robluton) - Updated `vue-i18n`, `joi`, `follow-redirects`, `decode-uri-component`, `qs`, `glob`, and `@hono/node-server` to address CVEs ([#28451](https://github.com/directus/directus/pull/28451) by @br41nslug) - Added a check to prevent the public page shader and video backgrounds from downloading and rendering on narrow screens when they are hidden. ([#28432](https://github.com/directus/directus/pull/28432) by @bryantgillespie) - Sped up table row selection checks by looking up selected keys in a set instead of scanning the whole selection for every row ([#28438](https://github.com/directus/directus/pull/28438) by @bryantgillespie) - Fixed login redirects normalizing into protocol-relative URLs ([#28456](https://github.com/directus/directus/pull/28456) by @br41nslug) - **@directus/api** - Fixed searching a many-to-many list so it matches the related fields shown in the list, not only the junction's own fields. Searching a number no longer matches hidden ID fields, such as the junction row ID ([#28422](https://github.com/directus/directus/pull/28422) by @robluton) - Updated `vue-i18n`, `joi`, `follow-redirects`, `decode-uri-component`, `qs`, `glob`, and `@hono/node-server` to address CVEs ([#28451](https://github.com/directus/directus/pull/28451) by @br41nslug) - Fixed login redirects normalizing into protocol-relative URLs ([#28456](https://github.com/directus/directus/pull/28456) by @br41nslug) - Fixed sandbox request URL scope validation not being applied to redirect destinations ([#28457](https://github.com/directus/directus/pull/28457) by @br41nslug) - Fixed Run Script operations and sandboxed extensions failing with "illegal access" when their data contained errors, such as the validation errors from a failed Condition operation. Errors are now passed into the sandbox as plain objects (with `name`, `message`, `code`, `status` and `extensions`) instead of `Error` instances ([#28441](https://github.com/directus/directus/pull/28441) by @AlexGaillard) - Bumped nodejs from 26.12.1 to 26.13.0 ([#28459](https://github.com/directus/directus/pull/28459) by @br41nslug) - **@directus/composables** - Updated `vue-i18n`, `joi`, `follow-redirects`, `decode-uri-component`, `qs`, `glob`, and `@hono/node-server` to address CVEs ([#28451](https://github.com/directus/directus/pull/28451) by @br41nslug) - **@directus/extensions-sdk** - Updated `vue-i18n`, `joi`, `follow-redirects`, `decode-uri-component`, `qs`, `glob`, and `@hono/node-server` to address CVEs ([#28451](https://github.com/directus/directus/pull/28451) by @br41nslug) - **@directus/update-check** - Updated `vue-i18n`, `joi`, `follow-redirects`, `decode-uri-component`, `qs`, `glob`, and `@hono/node-server` to address CVEs ([#28451](https://github.com/directus/directus/pull/28451) by @br41nslug) - **@directus/utils** - Updated `vue-i18n`, `joi`, `follow-redirects`, `decode-uri-component`, `qs`, `glob`, and `@hono/node-server` to address CVEs ([#28451](https://github.com/directus/directus/pull/28451) by @br41nslug) - **@directus/validation** - Updated `vue-i18n`, `joi`, `follow-redirects`, `decode-uri-component`, `qs`, `glob`, and `@hono/node-server` to address CVEs ([#28451](https://github.com/directus/directus/pull/28451) by @br41nslug) ### 📦 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]`
← Older Version Directus v12.6.0