⚠️ Breaking Change
Impact Score: 7/10
Directus v10.8.3 — 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 - **@directus/api**
⚡ Executive Summary (TL;DR)
Directus v10.8.3. 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 - **@directus/api**
✨ New Features & Capabilities (6)
- Ship the new OracleDB pure JavaScript client (thin mode) by default (#19067 by @stevefan1999-personal)
- **@directus/extensions-sdk**
- Added a `--no-install` option to the extensions CLI allowing to skip dependency installation (#20752 by @ComfortablyCoding)
- Export defineTheme from extensions-sdk package (#20580 by @rijkvanzanten)
- **create-directus-extension**
- Added a `--no-install` option to the extensions CLI allowing to skip dependency installation (#20752 by @ComfortablyCoding)
⚡ Performance & Enhancements (1)
- Improved the example for file upload via SDK (#20534 by @paescuj)
🔧 Bug Fixes & Patches (6)
- Fixed GraphQL Content Versions (#20499 by @br41nslug)
- Allowed editing of versions without edit permission on main version item (#20735 by @azrikahar)
- Updated dependencies in all packages (#20714 by @paescuj)
- Updated Vue to 3.3.9 (#20588 by @paescuj)
- Fixed small logical issues detected by newely introduced `no-constant-binary-expression` ESLint rule (#20812 by @azrikahar)
- Fixed action column background and search input height for table mode of one-to-many interface (#20772 by @u12206050)
📄 View Raw Release Notes (Original Developer Log)
### ⚠️ Potential Breaking Changes
- **@directus/api**
- Fixed GraphQL Content Versions ([#20499](https://github.com/directus/directus/pull/20499) by @br41nslug)
- **@directus/sdk**
- Renamed the type `ExtensionItem` to `DirectusExtension`, allowed extending the type with custom fields, exported missing `updateExtensions` composable and documented the version property on extension schema ([#20793](https://github.com/directus/directus/pull/20793) by @ComfortablyCoding)
### ✨ New Features & Improvements
- **@directus/api**
- Ship the new OracleDB pure JavaScript client (thin mode) by default ([#19067](https://github.com/directus/directus/pull/19067) by @stevefan1999-personal)
- **@directus/extensions-sdk**
- Added a `--no-install` option to the extensions CLI allowing to skip dependency installation ([#20752](https://github.com/directus/directus/pull/20752) by @ComfortablyCoding)
- Export defineTheme from extensions-sdk package ([#20580](https://github.com/directus/directus/pull/20580) by @rijkvanzanten)
- **create-directus-extension**
- Added a `--no-install` option to the extensions CLI allowing to skip dependency installation ([#20752](https://github.com/directus/directus/pull/20752) by @ComfortablyCoding)
### 🐛 Bug Fixes & Optimizations
- **@directus/app**
- Allowed editing of versions without edit permission on main version item ([#20735](https://github.com/directus/directus/pull/20735) by @azrikahar)
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- Updated Vue to 3.3.9 ([#20588](https://github.com/directus/directus/pull/20588) by @paescuj)
- Fixed small logical issues detected by newely introduced `no-constant-binary-expression` ESLint rule ([#20812](https://github.com/directus/directus/pull/20812) by @azrikahar)
- Fixed action column background and search input height for table mode of one-to-many interface ([#20772](https://github.com/directus/directus/pull/20772) by @u12206050)
- Added missing translation strings, type & icon for theme extensions ([#20644](https://github.com/directus/directus/pull/20644) by @paescuj)
- Adds possibility to load custom translations on the login page ([#20780](https://github.com/directus/directus/pull/20780) by @br41nslug)
- Fixed drag and drop issues with sortable components in Safari ([#20760](https://github.com/directus/directus/pull/20760) by @azrikahar)
- Fixed hovering over the Delete Collection/Field option results in the trash icon becoming a foreground subdued color ([#20518](https://github.com/directus/directus/pull/20518) by @wasimTQ)
- Fixed various styling issues with block editor interface ([#20733](https://github.com/directus/directus/pull/20733) by @paescuj)
- Updated outdated errors.GRAPHQL_VALIDATION_EXCEPTION translation key to errors.GRAPHQL_VALIDATION ([#20814](https://github.com/directus/directus/pull/20814) by @azrikahar)
- Ensured collections in tabular layout are sorted by the sort field by default, if available ([#20629](https://github.com/directus/directus/pull/20629) by @paescuj)
- Updated date-fns to 3.0.1 ([#20800](https://github.com/directus/directus/pull/20800) by @paescuj)
- Fixed an issue where the alignment of half-width fields could be incorrect with conditions affecting the layout ([#20599](https://github.com/directus/directus/pull/20599) by @paescuj)
- Added translatable label to themes and field translations for theming ([#20641](https://github.com/directus/directus/pull/20641) by @DanielBiegler)
- Fixed the calendar layout to only load items for current range, when no user filter is provided ([#20578](https://github.com/directus/directus/pull/20578) by @JoshTheDerf)
- Changed the default sort column to the mentioned sort field ([#20612](https://github.com/directus/directus/pull/20612) by @wasimTQ)
- Fixed support for pasting comma-separated values into 'Is One Of' filter ([#20587](https://github.com/directus/directus/pull/20587) by @gitstart)
- Updated dependencies ([#20796](https://github.com/directus/directus/pull/20796) by @paescuj)
- Fixed an issue where filters for UUID fields only grew for valid UUIDs ([#20543](https://github.com/directus/directus/pull/20543) by @DanielBiegler)
- Updated Vue to 3.3.11 ([#20711](https://github.com/directus/directus/pull/20711) by @paescuj)
- Upgraded json2csv to @json2csv/plainjs 7.0.4 ([#20822](https://github.com/directus/directus/pull/20822) by @paescuj)
- Fixed an issue where the alignment of half-width fields within groups could be incorrect ([#20563](https://github.com/directus/directus/pull/20563) by @paescuj)
- Added masked option to formatted value display ([#20672](https://github.com/directus/directus/pull/20672) by @licitdev)
- **@directus/api**
- Introduced the `EXTENSIONS_MUST_LOAD` option, allowing to prevent server startup when any API extension fails to load ([#20495](https://github.com/directus/directus/pull/20495) by @azrikahar)
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- Fixed small logical issues detected by newely introduced `no-constant-binary-expression` ESLint rule ([#20812](https://github.com/directus/directus/pull/20812) by @azrikahar)
- Updated date-fns to 3.0.1 ([#20800](https://github.com/directus/directus/pull/20800) by @paescuj)
- Updated dependencies ([#20796](https://github.com/directus/directus/pull/20796) by @paescuj)
- Fixed an issue that caused inconsistent versions to be returned across the API and CLI ([#20840](https://github.com/directus/directus/pull/20840) by @rijkvanzanten)
- Ensured filter values higher than JavaScript max safe integer work with big integer fields ([#20744](https://github.com/directus/directus/pull/20744) by @wasimTQ)
- Updated openapi3-ts to 4.2.0 ([#20828](https://github.com/directus/directus/pull/20828) by @dependabot)
- Fixed issue that caused the graphql spec output to be wrong in the specs endpoint ([#20535](https://github.com/directus/directus/pull/20535) by @br41nslug)
- Updated Tedious dependency ([#20649](https://github.com/directus/directus/pull/20649) by @rijkvanzanten)
- Ensured the CLI's `schema apply` command output is better visible across different terminals / color schemes ([#20792](https://github.com/directus/directus/pull/20792) by @nassan)
- Fixed and enhanced the CLI's `schema apply` command output ([#20816](https://github.com/directus/directus/pull/20816) by @paescuj)
- Made directus_permissions ID nullable in GQL schema ([#20511](https://github.com/directus/directus/pull/20511) by @br41nslug)
- Fixed public_favicon to be correctly set as a system relation ([#20724](https://github.com/directus/directus/pull/20724) by @ComfortablyCoding)
- Removed unused dependencies, ensured types (prod, dev, peer) of dependencies are correct ([#20581](https://github.com/directus/directus/pull/20581) by @paescuj)
- Updated the telemetry report contents ([#20825](https://github.com/directus/directus/pull/20825) by @rijkvanzanten)
- Updated Knex to v3.1.0 ([#20766](https://github.com/directus/directus/pull/20766) by @paescuj)
- **@directus/sdk**
- Fixed a few typos in documentation pages and the readme of the SDK ([#20691](https://github.com/directus/directus/pull/20691) by @omahs)
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- Updated Vue to 3.3.9 ([#20588](https://github.com/directus/directus/pull/20588) by @paescuj)
- Changed `keys` argument in `updateItems` method to `keysOrQuery` to accept both formats ([#20774](https://github.com/directus/directus/pull/20774) by @mahendraHegde)
- Fixed SDK Deep filter types ([#20556](https://github.com/directus/directus/pull/20556) by @br41nslug)
- Fixed mapping literal filter types in the SDK ([#20613](https://github.com/directus/directus/pull/20613) by @br41nslug)
- **@directus/components**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- Updated Vue to 3.3.9 ([#20588](https://github.com/directus/directus/pull/20588) by @paescuj)
- Updated Vue to 3.3.11 ([#20711](https://github.com/directus/directus/pull/20711) by @paescuj)
- **@directus/composables**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- Updated Vue to 3.3.9 ([#20588](https://github.com/directus/directus/pull/20588) by @paescuj)
- Updated dependencies ([#20796](https://github.com/directus/directus/pull/20796) by @paescuj)
- Updated Vue to 3.3.11 ([#20711](https://github.com/directus/directus/pull/20711) by @paescuj)
- **create-directus-extension**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- **create-directus-project**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- **@directus/data-driver-postgres**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- **@directus/data-sql**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- Removed unused dependencies, ensured types (prod, dev, peer) of dependencies are correct ([#20581](https://github.com/directus/directus/pull/20581) by @paescuj)
- **@directus/data**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- **@directus/errors**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- **@directus/extensions-sdk**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- Updated Vue to 3.3.9 ([#20588](https://github.com/directus/directus/pull/20588) by @paescuj)
- Added translatable label to themes and field translations for theming ([#20641](https://github.com/directus/directus/pull/20641) by @DanielBiegler)
- Updated dependencies ([#20796](https://github.com/directus/directus/pull/20796) by @paescuj)
- Updated Vue to 3.3.11 ([#20711](https://github.com/directus/directus/pull/20711) by @paescuj)
- Fixed an issue for bundle extensions where custom devDependencies in the package.json were overriden when a new extension was added to the bundle ([#20750](https://github.com/directus/directus/pull/20750) by @ComfortablyCoding)
- Fixed an issue for bundle extensions where entries in the root package.json are re-ordered when a new extension is added to a bundle ([#20739](https://github.com/directus/directus/pull/20739) by @ComfortablyCoding)
- **@directus/extensions**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- Updated Vue to 3.3.9 ([#20588](https://github.com/directus/directus/pull/20588) by @paescuj)
- Added missing translation strings, type & icon for theme extensions ([#20644](https://github.com/directus/directus/pull/20644) by @paescuj)
- Updated dependencies ([#20796](https://github.com/directus/directus/pull/20796) by @paescuj)
- Updated Vue to 3.3.11 ([#20711](https://github.com/directus/directus/pull/20711) by @paescuj)
- Removed unused dependencies, ensured types (prod, dev, peer) of dependencies are correct ([#20581](https://github.com/directus/directus/pull/20581) by @paescuj)
- Updated Knex to v3.1.0 ([#20766](https://github.com/directus/directus/pull/20766) by @paescuj)
- Fixed an issue for bundle extensions where custom devDependencies in the package.json were overriden when a new extension was added to the bundle ([#20750](https://github.com/directus/directus/pull/20750) by @ComfortablyCoding)
- **@directus/random**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- **@directus/release-notes-generator**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- Updated dependencies ([#20796](https://github.com/directus/directus/pull/20796) by @paescuj)
- Removed unused dependencies, ensured types (prod, dev, peer) of dependencies are correct ([#20581](https://github.com/directus/directus/pull/20581) by @paescuj)
- **@directus/schema**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- Updated Knex to v3.1.0 ([#20766](https://github.com/directus/directus/pull/20766) by @paescuj)
- **@directus/storage-driver-azure**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- **@directus/storage-driver-cloudinary**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- Updated dependencies ([#20796](https://github.com/directus/directus/pull/20796) by @paescuj)
- **@directus/storage-driver-gcs**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- **@directus/storage-driver-local**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- Removed unused dependencies, ensured types (prod, dev, peer) of dependencies are correct ([#20581](https://github.com/directus/directus/pull/20581) by @paescuj)
- **@directus/storage-driver-s3**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- Updated dependencies ([#20796](https://github.com/directus/directus/pull/20796) by @paescuj)
- **@directus/storage**
- Updated dependencies in all packages ([#20714](https://github.com/directus/directus/pull/20714) by @paescuj)
- Removed unused dependencies, ensured types (prod, dev, peer) of dependencies are correct ([#20581](https://github.com/directus/directus/pull/20581) by @paescuj)
- **@directus/stores**
- Updated Vue to 3.3.9 ([#20588](https://github.com/directus/directus/pull/20588) by @paescuj)
- Updated dependencies ([#20796](https://github.com/directus/directus/pull/20796) by @paescuj)
- Updated Vue to 3.3.11 ([#20711](https://github.com/directus/directus/pull/20711) by @paescuj)
- **@directus/themes**
- Updated Vue to 3.3.9 ([#20588](https://github.com/directus/directus/pull/20588) by @paescuj)
- Added translatable label to themes and field translations for theming ([#20641](https://github.com/directus/directus/pull/20641) by @DanielBiegler)
- Updated dependencies ([#20796](https://github.com/directus/directus/pull/20796) by @paescuj)
- Updated Vue to 3.3.11 ([#20711](https://github.com/directus/directus/pull/20711) by @paescuj)
- **@directus/types**
- Updated Vue to 3.3.9 ([#20588](https://github.com/directus/directus/pull/20588) by @paescuj)
- Updated dependencies ([#20796](https://github.com/directus/directus/pull/20796) by @paescuj)
- Updated Vue to 3.3.11 ([#20711](https://github.com/directus/directus/pull/20711) by @paescuj)
- Removed unused dependencies, ensured types (prod, dev, peer) of dependencies are correct ([#20581](https://github.com/directus/directus/pull/20581) by @paescuj)
- Updated Knex to v3.1.0 ([#20766](https://github.com/directus/directus/pull/20766) by @paescuj)
- **@directus/utils**
- Updated Vue to 3.3.9 ([#20588](https://github.com/directus/directus/pull/20588) by @paescuj)
- Updated date-fns to 3.0.1 ([#20800](https://github.com/directus/directus/pull/20800) by @paescuj)
- Updated dependencies ([#20796](https://github.com/directus/directus/pull/20796) by @paescuj)
- Updated Vue to 3.3.11 ([#20711](https://github.com/directus/directus/pull/20711) by @paescuj)
- Removed unused dependencies, ensured types (prod, dev, peer) of dependencies are correct ([#20581](https://github.com/directus/directus/pull/20581) by @paescuj)
- Fixed filters with an implicit logical operator for a field resulting in infinite loop ([#20736](https://github.com/directus/directus/pull/20736) by @ComfortablyCoding)
- **@directus/update-check**
- Updated dependencies ([#20796](https://github.com/directus/directus/pull/20796) by @paescuj)
- Fixed an issue in update-check which could lead to a CLI crash when called again after a few minutes ([#20693](https://github.com/directus/directus/pull/20693) by @paescuj)
- **@directus/specs**
- Updated openapi3-ts to 4.2.0 ([#20828](https://github.com/directus/directus/pull/20828) by @dependabot)
- **@directus/constants**
- Removed unused dependencies, ensured types (prod, dev, peer) of dependencies are correct ([#20581](https://github.com/directus/directus/pull/20581) by @paescuj)
- **@directus/memory**
- Fixed missing KV export ([#20825](https://github.com/directus/directus/pull/20825) by @rijkvanzanten)
### 📝 Documentation
- Documented DB_SSL__CA environment variable ([#20616](https://github.com/directus/directus/pull/20616) by @weberet)
- Replaced dead links ([#20794](https://github.com/directus/directus/pull/20794) by @paescuj)
- Add docs guides for building modules ([#20630](https://github.com/directus/directus/pull/20630) by @phazonoverload)
- Introduced the `EXTENSIONS_MUST_LOAD` option, allowing to prevent server startup when any API extension fails to load ([#20495](https://github.com/directus/directus/pull/20495) by @azrikahar)
- Documented new telemetry environment variables ([#20825](https://github.com/directus/directus/pull/20825) by @rijkvanzanten)
- Added hook events for WebSockets and system collection read/query, and consolidated available events. ([#20425](https://github.com/directus/directus/pull/20425) by @Boegie19)
- Fixed a few typos in documentation pages and the readme of the SDK ([#20691](https://github.com/directus/directus/pull/20691) by @omahs)
- Improved the example for file upload via SDK ([#20534](https://github.com/directus/directus/pull/20534) by @paescuj)
- Fixed example output for array environment syntax prefix ([#20771](https://github.com/directus/directus/pull/20771) by @u12206050)
- Added docs on how to use the Directus UI components within app extension ([#20675](https://github.com/directus/directus/pull/20675) by @estheragbaje)
- Made some corrections to the SSO SAML examples ([#20569](https://github.com/directus/directus/pull/20569) by @paescuj)
- Added docs for the new custom theme extension type ([#20561](https://github.com/directus/directus/pull/20561) by @phazonoverload)
- Added documentation for internal items, files, users, and data model services. ([#20376](https://github.com/directus/directus/pull/20376) by @estheragbaje)
- Fixed GraphQL Content Versions ([#20499](https://github.com/directus/directus/pull/20499) by @br41nslug)
- Renamed the type `ExtensionItem` to `DirectusExtension`, allowed extending the type with custom fields, exported missing `updateExtensions` composable and documented the version property on extension schema ([#20793](https://github.com/directus/directus/pull/20793) by @ComfortablyCoding)
- Added explanation about where to generate static tokens in authentication reference ([#20530](https://github.com/directus/directus/pull/20530) by @phazonoverload)
- Added info about pong reply to WebSocket ping event ([#20765](https://github.com/directus/directus/pull/20765) by @codeit-ninja)
### 📦 Published Versions
- `@directus/[email protected]`
- `@directus/[email protected]`
- `@directus/[email protected]`
- `@directus/[email protected]`
- `@directus/[email protected]`
- `[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]`
- `@directus/[email protected]`