Directus v9.21.0stable Released Nov 17, 2022
Impact Score: 5/10

Directus v9.21.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.

Compatibility not verified โ€” check source notes
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Directus v9.21.0. Source highlight: :sparkles: New Features

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.

โœจ New Features & Capabilities (2)

  • #15672 Add support for a package extension bundle type (by @nickrum)
  • #16375 Add editsGuard to drawerItem (by @Nitwel)

โšก Performance & Enhancements (6)

  • #16453 Optimize number of times cache is being cleared in ItemsService `updateBatch` (by @azrikahar)
  • #16436 Allow admin to update Directus User `provider` and `external_identifier` (by @azrikahar)
  • #16099 Returns the nodemailer promise (by @keesvanbemmel)
  • #16436 Allow admin to update Directus User `provider` and `external_identifier` (by @azrikahar)
  • #16365 Allow disabling same width for attached dropdown menu (by @azrikahar)
  • #16280 use correct collection for translation (by @Nitwel)

๐Ÿ”ง Bug Fixes & Patches (6)

  • #16379 Fix sortField selection (by @Nitwel)
  • #16487 Fix shares sidebar drawer's close event (by @azrikahar)
  • #16473 Fix preset resetting itself (by @Nitwel)
  • #16471 Sanitize value in comment-input (by @azrikahar)
  • #16412 Reset page when changing pageSize (by @Nitwel)
  • #16283 Only pass needed values when sorting (by @Nitwel)
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
## v9.21.0 (November 17, 2022) ### :sparkles: New Features - **Extensions** - [#15672](https://github.com/directus/directus/pull/15672) Add support for a package extension bundle type (by @nickrum) ### :rocket: Improvements - **API** - [#16453](https://github.com/directus/directus/pull/16453) Optimize number of times cache is being cleared in ItemsService `updateBatch` (by @azrikahar) - [#16436](https://github.com/directus/directus/pull/16436) Allow admin to update Directus User `provider` and `external_identifier` (by @azrikahar) - [#16099](https://github.com/directus/directus/pull/16099) Returns the nodemailer promise (by @keesvanbemmel) - **App** - [#16436](https://github.com/directus/directus/pull/16436) Allow admin to update Directus User `provider` and `external_identifier` (by @azrikahar) - [#16379](https://github.com/directus/directus/pull/16379) Fix sortField selection (by @Nitwel) - [#16375](https://github.com/directus/directus/pull/16375) Add editsGuard to drawerItem (by @Nitwel) - [#16365](https://github.com/directus/directus/pull/16365) Allow disabling same width for attached dropdown menu (by @azrikahar) - [#16280](https://github.com/directus/directus/pull/16280) use correct collection for translation (by @Nitwel) - [#15861](https://github.com/directus/directus/pull/15861) Keep SidebarOpen state in local storage (by @goth-pl) - **Extensions** - [#15909](https://github.com/directus/directus/pull/15909) Detect used package manager in extension CLI (by @nickrum) ### :bug: Bug Fixes - **App** - [#16487](https://github.com/directus/directus/pull/16487) Fix shares sidebar drawer's close event (by @azrikahar) - [#16473](https://github.com/directus/directus/pull/16473) Fix preset resetting itself (by @Nitwel) - [#16471](https://github.com/directus/directus/pull/16471) Sanitize value in comment-input (by @azrikahar) - [#16412](https://github.com/directus/directus/pull/16412) Reset page when changing pageSize (by @Nitwel) - [#16283](https://github.com/directus/directus/pull/16283) Only pass needed values when sorting (by @Nitwel) - **API** - [#16485](https://github.com/directus/directus/pull/16485) fix syntax in oas (by @cf-ts) - [#16483](https://github.com/directus/directus/pull/16483) Fix condition operation passing even when the checked field isn't present in the payload (by @azrikahar) - [#16461](https://github.com/directus/directus/pull/16461) Fix unsupported date_part() in CrDB (by @licitdev) - [#16438](https://github.com/directus/directus/pull/16438) Fix `cast-csv` read action for csv field's first revision (by @azrikahar) - [#16435](https://github.com/directus/directus/pull/16435) Fix limit in nested a2o queries (by @licitdev) - [#16430](https://github.com/directus/directus/pull/16430) Fix legacy permissions for M2O fields in GraphQL (by @licitdev) - [#16413](https://github.com/directus/directus/pull/16413) Fix __typename selection for functions in GraphQL (by @licitdev) - [#16368](https://github.com/directus/directus/pull/16368) Fix zero value for numeric precision and scale with float/decimal fields (by @azrikahar) - [#16320](https://github.com/directus/directus/pull/16320) Skip checking of virtual alias fields (by @licitdev) - [#16297](https://github.com/directus/directus/pull/16297) Skip serialization for empty or string bigint values in GraphQL (by @licitdev) - [#16234](https://github.com/directus/directus/pull/16234) Check original field name when aliased (by @licitdev) - [#16233](https://github.com/directus/directus/pull/16233) Fix base email template footer link & logo aspect ratio (by @azrikahar) - [#16180](https://github.com/directus/directus/pull/16180) Update last value when triggering nested flows with array values (by @licitdev) - [#16027](https://github.com/directus/directus/pull/16027) Fix date functions for databases not in UTC timezone (by @licitdev) - [#15984](https://github.com/directus/directus/pull/15984) CockroachDB can't recreate constraints with the same name (by @br41nslug) - [#15576](https://github.com/directus/directus/pull/15576) Emit action events with updated schema (by @licitdev) - **specs** - [#16294](https://github.com/directus/directus/pull/16294) Fix "create an item" requestBody schema in OAS (by @azrikahar) - **Misc.** - [#16271](https://github.com/directus/directus/pull/16271) Remove dev dependencies when running blackbox tests (by @licitdev) ### :sponge: Optimizations - **Misc.** - [#16486](https://github.com/directus/directus/pull/16486) use pnpm `shell-emulator` instead of `cross-env` (by @azrikahar) - [#16484](https://github.com/directus/directus/pull/16484) fix list-folders test on Windows (by @azrikahar) - [#16462](https://github.com/directus/directus/pull/16462) Clean-up after Jest to Vitest switch in API (by @paescuj) - [#16380](https://github.com/directus/directus/pull/16380) Clean-up lint / format set-up (by @paescuj) - [#16374](https://github.com/directus/directus/pull/16374) Exclude unnecessary files from packages (by @paescuj) - [#16360](https://github.com/directus/directus/pull/16360) Update the Makefile for testing the Docker image build process (by @paescuj) - **API** - [#16263](https://github.com/directus/directus/pull/16263) Finish switch from Jest to Vitest in API (by @paescuj) ### :package: Dependency Updates - [#16475](https://github.com/directus/directus/pull/16475) Patch Tuesday ๐Ÿธ (by @rijkvanzanten) - [#16441](https://github.com/directus/directus/pull/16441) Replace rollup-plugin-terser with @rollup/plugin-terser (by @rijkvanzanten)