Last 7 days
1
Features: 0
Changes: 0
Fixes: 1
Deprecations: 0
Managed data platform and API layer for SQL databases and digital projects.
Latest Directus changelog updates, official release notes, breaking changes, security patches, pricing changes, and developer reactions in one product feed.
Follow this Directus release-notes page to spot useful features, risky migrations, noisy announcements, and source links before they hit your backlog.
Changes.Watch links back to official changelog and release-note sources so summaries stay easy to verify.
Use channels to follow groups of tools around a stack, workflow, or topic.
Rolling windows show how many product updates landed in the last 7, 30, 90, and 365 days, grouped by existing changelog semantics.
1
2
7
28
Fixed storage connection leaks for all drivers and made `exists()` throw on lookup failures, requiring error handling (breaking).
⚠️ Breaking: Minimal app access now restricts readable settings fields and the WYSIWYG editor switches from TinyMCE to Tiptap, dropping TinyMCE customizations.
Updated Vite dependency to 8.1.2 for both @directus/app and @directus/api.
Breaking changes: GraphQL mutations are now limited to single‑use and the /utils/hash/generate and /utils/hash/verify endpoints have been removed.
Added support for non‑interactive mode in the Directus extension creation tool
Added keyboard-editable date entry for datetime fields and inline editing support for JSON repeater interface
Directus 12 enforces active licensing; SSO, custom permission rules, custom LLMs, and AI translations now require a paid license, with a 30‑day grace period on upgrades.
Added token regeneration confirmation with immediate save, introduced opt‑in asset cache revalidation (ETag) via ASSETS_CACHE_REVALIDATE env var, and a `force` flag for schema apply to bypass hash checks
Added UI enhancements: Active/Suspended/Invited tabs in Users view and “Save as New File” option in the image editor
Added timezone support for datetime display, moved shortcut composables, and introduced a comparison modal checkbox to view only modified fields
Added keyboard navigation for cards layout, native Tabs group UI, bulk folder deletion, and a parseNow utility for $NOW variables
Added background data import with configurable timeout and max concurrency, plus API request counting telemetry and Redis namespace control.
Updated Anthropic, Google, and OpenAI models in system data and AI packages; upgraded AI SDK dependencies.
Introduced a global draft version (standardizing the "Draft" display name) and added field permission/version access checks to the Visual Editor, requiring an update to @directus/visual-editing v2.0.0 (potential breaking change).
Added collaboration state (is viewing, is editing) with minor design updates.
Added activity logging for explicit user logout across the app, API, and constants.
Added Netlify as a deployment provider across the app, API, and types packages.
Fixed field selection bug for 20+ fields across app, API, composables, and env packages
Introduces potential breaking changes – prompts, content items, and visual editor elements are now attached to the AI Assistant Context; disabled interfaces are no longer interactive (read‑only fields can’t be opened).
Breaking: Added multi‑domain support for OAuth/OpenID with stricter SSO callback URL generation and port‑matched redirect validation.
Added multi-file and folder tree download support across Directus packages, introduced AI chat sidebar, resizable sidebars, header interface, and number input warnings.
Added ability to open flows in a new tab via Ctrl/Cmd‑click or middle mouse button
Added a multi‑select JSON interface, non‑editable read‑only mode, and UTF‑8 CSV export across app, API, SDK, specs, and storage drivers.
Fixed delayed loading of items in the tabular view of @directus/composables.
Fixed layout display dependent on item count and added loading indicator for setup forms in the Directus app
Breaking change: non‑relational types removed from RELATIONAL_TYPES constant and scope.delete filter hook now runs after permission checks, with hook‑provided keys replacing originals (hooks must handle their own permission checks).
Fixed versioning metadata – USER_CREATED/UPDATED and DATE fields now reflect actual creation/update timestamps, and requesting a non‑existent version now returns a Forbidden error (potential breaking change).
Potential breaking change: Content Versioning now requires explicit field expansion, validates invalid data on query, and applies filters to versioned data.
Fixed focus trap issue in TinyMCE dialogs of the WYSIWYG editor
Added full TypeScript typings for services in the extension context, introducing potential breaking type errors for existing extensions.
Snapshots now exclude database‑only tables, a breaking change that may affect table creation/deletion and introduce data‑loss risk if snapshot workflows aren't adjusted.
Fix manual-trigger flows failing for integer primary keys on the item detail page
Fixed error when making unchanged edits to an O2M field in Directus app
Fixed a bug that prevented the file interface menu from appearing in the drawer in @directus/app
Added LDAP login support and changed the SDK login method to accept a payload object; refresh and logout commands now use an options object, introducing potential breaking changes for existing code.
Added UI improvements: kanban layout respects display format, flow trigger buttons use custom colors, flow logs now show color-coded success/failure with a filter for failed logs, and variable inputs can be toggled for \in and \nin filters.
Fixed bugs and applied performance optimizations.
Restored build permissions to resolve image publishing issues.
Dropped support for MySQL 5.7, a potential breaking change for API users.
Reverted unnecessary editorjs fixes that caused issues
Breaking changes: filter hook no longer passes payload to action hook on create, and GraphQL primary key fields switch from String to ID.
Fixed back state handling in Directus app extension detail page and corrected invalid item duplication field paths after deletions
⚠️ Breaking change: Directus API now returns a different error message when a Flow condition operation fails.
Added new UI features: delete confirmation prompts, translation store access for extensions, M2A render support, email cc/bcc/replyTo fields, enhanced DateTime formatting, calendar selection checkboxes, and Safari SSO icon alignment.
Upgrade required: all Directus packages now need Node.js 22 (potential breaking change).
Kanban layout now supports title and text fields to display related values
Fixed flow logs to correctly display falsy return values
Added ability to map OIDC groups to OIDC roles and expose idToken in auth hooks
Added select‑all and delete buttons to the notifications drawer in the Directus app.
Fixed WYSIWYG file upload in Directus app to correctly use the filename on disk
Added HTML sanitization to comment fields to prevent XSS attacks.
Added retention support for activity and revisions across Directus packages and made the OpenID SSO login timeout configurable.
Changed TUS handling: default chunk size raised to 8 MB and chunkSize enforcement removed when TUS is disabled (potential breaking change).
Fixed /permissions/me endpoint when primary key contains a '/'
Added TUS resumable upload support to Supabase, Azure, Cloudinary, and GCS storage drivers.
Extracted comments into a separate table across SDK, app, API, system, specs, and types (potential breaking change).
Dropped SendGrid email transport support (potential breaking change)
Fixed extension loading errors across API, memory, and env packages
Added multiple new features such as database index creation on fields, password visibility toggle, kanban selection mode, markdown default view option, USER INVITE TOKEN TTL configuration, and uuid() default values; also introduced logs ...
Added ability to set a default sort field for One‑to‑Many interfaces and improved item count details in collections
Added SQLite transaction retry on BUSY errors, Unix socket support via UNIX_SOCKET_PATH, and FILE‑based config casting prefix.
Added a new policy‑based permissions system, with new collections, types, SDK functions, GraphQL queries and migrations
Added a new `created_on` date field for files and updated `uploaded_on` behavior, potentially breaking existing file workflows.
Added support for the ADMIN TOKEN environment variable across Directus packages (api, env, app).
Potential breaking changes: enforced service integrity isolation and admin users now fall under app access limits.
Fixed M2M junction lookup when multiple relations share the same junction table
Added configurable limits for active users (Admin/App/API) and a max token limit for GraphQL queries across core packages.
Added customizable email verification URL for user registration across Directus packages (api, types, env, sdk).
Fixed UI bugs in Directus app (cards layout, calendar view, missing fields, reload button) and translation defaults.
API search behavior changed: queries with non‑applicable search fields now return zero results (potential breaking change).
Fixed hangs during schema retrieval caused by unexpected external errors under high load, preventing the project from becoming unavailable
Added Alterations type and upgraded UI libraries – TinyMCE to v7 and Editor.js to 2.29 with new Slash/Tab shortcuts;
Deprecated Webhooks and auto‑migrated them to Flows, a potential breaking change.
Fixed GraphQL system endpoint schema selection bug in @directus/api.
Added REDIS_ENABLED environment variable to Directus packages
Fixed multiple UI and API bugs, including Flow edit‑mode shortcut, list item heights, sandbox extension reload errors, header type checks, and extensions folder sync failures
Fixed marketplace migration script for MySQL/MariaDB and corrected host field handling in the extensions SDK.
Added Extensions Marketplace, new extensions registry endpoints, and a MIGRATIONS_PATH env variable for custom migrations.
Fixed multiple UI and backend bugs across Directus packages, including field conditions, popover stacking, Unicode email login, CSV import corruption, and Redis bus handling; updated numerous dependencies.
Fixed bugs in presentation links component and cleaned up IP validation for external requests
Added video file support for the public background setting in the Directus app
Added per‑role theme override permissions, image focal‑point support, IP range/CIDR handling, bundle extension toggle, and UI enhancements like hash display and icon options.
Potential breaking changes added: GraphQL content versions fix, SDK type renamed to DirectusExtension, and EXTENSIONS_MUST_LOAD flag to block server start on extension load failures.
Cleaned up unused translation strings in the Directus app
Fixed form padding issues in the default dark theme and enhanced the theme selector UI.
Added comprehensive theming support: UI selector, server‑side theme info, themes as extension type, font/spacing config, background overrides, public page theme scope, and new login page artwork.
Added configurable navigation dividers and borders to the app and themes, with a new "globals" key for theme rule overrides.
Potential breaking changes – license switched from GPL to MIT and codebase migrated from CommonJS to ES modules.
Added Content Versioning support and the ability to enable/disable extensions via the app and API (potential breaking change).
Enabled package bundling and unified tsconfig across modules, refactoring extension utils/types/constants into a new @directus/extensions package (potential breaking change).
⚠️ Potential breaking change: fixed stored field conditions format; may require manual correction for edits made in v10.6.2.
SDK v12 adds cross‑origin cookie support, a new withOptions helper, renames asSearch to withSearch, and fixes refresh request parameter order, which may break existing integrations.
Re-released v10.6.1 to ensure ARM Docker images are published correctly
Replaced vm2 with an isolated VM for sandboxing Flow "Run Script" operation (breaking change) and added env value redaction in logs.
Fixed multiple UI bugs including rating display, thumbnail rendering in relations, WYSIWYG read‑only mode, modal handling, markdown toolbar visibility, and tabular layout errors
Fixed Home/End key support, TinyMCE readonly issue, and browser freeze in field conditions by delaying context retrieval.
Fixed trailing slash handling in URL utility, restoring app extension loading
Released the new Directus SDK (v11.0.0) with a modular architecture, real‑time support, and full TypeScript optimization.
Added overflow‑wrap CSS to log blocks and basic PostgreSQL filter support across data packages
Fixed display template with nested data in calendar layout and corrected event hooks collection list.
Unified Redis configuration into a single set of REDIS env vars and sunset Memcached support, requiring migration.
Added WebSocket subscription support for REST and GraphQL with multiple authentication modes, heartbeat, rate limiting, and horizontal scaling
No functional changes; this release resolves an npm publishing issue that caused raw installations to fail in v10.2
Removed server info disclosure, changing /server/info output (potential breaking and security impact).
Added UI toggle to collapse nested collections and introduced a configurable maximum query limit
Added cache toggle for Flow webhook GET requests, Kanban layout, new chart panels, folder navigation, block editor, and multipart/form support for schema apply endpoint.
Directus core packages switch to BSL 1.1, with several utilities staying MIT; BSL‑licensed code auto‑converts to GPL‑v3 after three years.
Added Mail Templates capability to Flow in both API and App.
Introduced multiple UI improvements such as fallback to "other" group, filled star for required fields, Spanish (Mexico) language, logs sidebar loader, select‑all export, sortable O2M tables, and autoKey config.
Fixed version number mismatch in Docker builds
Potential breaking change: core API switched from CommonJS to ESM – test extensions, rename output to .cjs or bundle to native ESM if needed.
Add optional confirmation dialog with input fields to Manual Trigger in Flows (new feature).
GraphQL auth login/refresh `expires` now returns a string (BigInt) representation, a potential breaking change.
Added new field options such as required repeater fields, null as a valid value type, and improved tag/folder UI clarity.
Redeployed Directus v9.23.1 to resolve npm publish issue
Add new schema endpoint APIs and expose them publicly
Fixed API default offset bug (API 17101)
Added new features like API extension improvements, environment access in flow scripts, Khmer language support, and exported context types for extensions
Fixed region selection issues in S3-compatible storage drivers caused by the upgraded S3 file storage.
Updated Docker image and minimum Node.js requirement to Node 18, requiring environment changes (breaking).
Fixed markdown rendering issues in the Docs module
Improved UI interactions (menu pointer event tweaks, icon performance) and API reliability (null auth data on provider changes, mutation options propagation)
Add support for a package extension bundle type and detect the used package manager in the extension CLI.
Fix cannot reorganise fields inside a collection
Fixed dependency issues present in the npm distribution of v9.20.0
Added SAML authentication support and improved OAuth/OpenID handling (form post responses, log level changes).
Rebuilt the Docker image to include the latest version
Revert recent CI workflow cleanup ('Small Release workflow clean up') to address Docker image failures.
Added S3 Server‑Side Encryption support, Bosnian language, and search in the field‑creation drawer, plus custom labels for auth providers and symlinkable extensions.
Added support for collection .items.query filter hook
Introduced Relational Selection Panel for Insights Variable and added WYSIWYG email body support to the API/App.
Fixed an infinite loop issue caused by v highlight in the app (App 15438).
Fix bug #15433: correctly merge M2M junction values during drawer item validation
Fixed empty form issue for drawer items in one-to-many/treeview (App #15413).
Added SendGrid email transport to the API
Added query hook, components package, SMTP name setting, new flow environment, and configurable threshold checks.
Resolved app error #15160 caused by undefined 'meta' in the v form component
Added "Run Script" operation to both API and App, expanding automation capabilities.
Add styling to links in field notes (App)
Added cache compression for API performance, custom aspect‑ratio support in the image editor, and operation extensions to the Extensions SDK
Redeployed v9.14.5 to retry npm publish
Reverted image editor to use <img> tag
Fixed Docker image build failure.
Added UI enhancements including multi‑select dropdown preview thresholds, spellcheck for WYSIWYG/markdown, raw editor toggle for flow variables, an editor for image components, and a max‑height folder picker.
Fixed missing SSO login buttons on the login page.
Added new API features: emitter events in meta, emitEvents flag for item reads, OpenID discovery failure handling, and caching for app assets.
Added Insights 2.0 and new API capabilities (env‑var to skip mailer verification, custom asset filenames, optional cache size limit) plus UI enhancements like searchable v‑select, default language for translations and TFA enforcement flow.
Updated scaffolding to use the latest Vue, added JobQueue for reloading extensions, enabled activity tracking on password resets, and introduced configurable page sizes and image‑transformation selection in the WYSIWYG editor.
Fixed several bugs across the UI, API, and extensions (calendar view limit, misconfigured scope trigger, flows editing, installer package, export offset, and endpoint route registration)
Added Data Flows support in API and App, introduced system token interface, and enabled MSSQL Azure AD service‑principal authentication.
Added support for non-default connection parameters, default CSP src to "self", float handling in number validation, and timestamp cast flag for system tables
Added GraphQL count aggregation, case‑insensitive operators, and big‑integer auto‑increment primary key support for MySQL/PostgreSQL
Added local export, HSTS header configuration, and nested value sorting support.
Added extensions for MP4 file icons, improved calendar month layout, input translation handling, and app loading background.
Introduced new features including Directus cache headers, translatable bookmark names, LDAP default role support, and SDK improvements like import file method and token refresh handling.
Added new request options to SDK item functions and introduced function support with count in the API/App, along with field‑level validation and default locale handling before login.
Added permission‑aware UI features: disabled dashboard/panel actions based on permissions, blocked M2M edits without permission, shortcut from data model to collection content, and saved last accessed collection.
Added new export experience, OpenID client overrides, IP deny‑list import, and a dry‑run flag for schema apply CLI.
Added new API extensions: authenticate hook, server‑property extension, items.sort event, listen parameter, and Docker timezone support.
Breaking SDK change: type signatures updated and .readMany renamed to .readByQuery; update your SDK usage.
Add missing error translations and fix translation layout across the app.
Added CockroachDB support, CSV/JSON import, soft character limits, and extra logger and filter options across API, SDK, and extensions.
Add extension auto‑reloading and expose registered extensions via the extensions SDK, plus move useLayout composable to shared
Enabled Content Security Policy header by default, enhancing API security.
Add API improvement to exclude MS SQL 'sysdiagrams' and UI enhancements like stacked drawer effect, empty state for revisions, and OpenStreetMap attribution
Added ability to share items with external users and introduced a new date picker component used in datetime interfaces.
Add Archive sidebar component and related UI enhancements such as tooltip, autofocus, and formatted value display
UI tweaks: interface padding, CSS‑based selection styling, corrected advanced filter order, auto‑expand for checkbox trees, and nested render template styling fixes.
Added variable-based default colors for boolean UI and disabled state to translations interface; shared Pinia with extensions
- Introduced several new features: items.read filter hook, AUTH DISABLE default config, selectionMode for tabular/cards, integer support for radio/dropdown, and new interface options (color toggles, fill/curve, crop/contain).
Fix notifications button hover color on dark theme
Fix dependency listing in Docker
Introduced a notifications system with support for @user mentions in comments
Added new capabilities such as AWS SES mailer transport, a database‑await utility, and exposed the server instance via the `server.start` hook; also improved translations and field UI components.
Added UI and role-setting improvements such as direct project creation, removal of beta flag, and streamlined collection navigation options.
Fixed file upload issue in the file interface API.
App now ignores prerelease versions in requirement checks and includes Safari‑specific fixes for date formatting and activity‑tab crashes when a user is missing.
Fixed missing "created on"/"modified on" timestamps in app listings.
Fix cards layout not registering empty custom image sources
Added new features such as Azure storage support, toggle‑all checkbox for relational item selection, cache‑control headers on assets, configurable JWT TTL, API‑generated thumbnail paths and /assets endpoint enhancements.
App: Fixed error occurring when relational interface options lacked a display template field
Fixed JSON handling for template option in code interface
Added new UI and API features: duplicate option for repeater interface, custom password reset URL, /auth/check endpoint, and automatic thumbnail regeneration on image updates.
Added readonly mode to the markdown interface and support for nested file previews in many‑to‑many relationships.
Resolved preview issue for nested O2M relationships
Fixed missing import of lodash’s keyBy function in the App component.
Adjusted calendar vertical alignment UI
Fixed alignment of checkboxes and switches in the app UI.
Added numerous UI enhancements: new base components, useWindowSize and useEventHandler hooks, hex/rgb support in calendar, fullscreen & RTL options for WYSIWYG, color swatch listing, and option to stop slug auto‑generation.
Added custom value support for dropdowns and Redis authentication for caching.
Fixed routing errors on role deletion and corrected default language handling in translations
Added translatable support for interfaces, layouts, core collections, and fields.
Added login‑view notes and a public note setting for projects, plus full‑path relative URLs and migrations to correct module/collection settings.
Add option to choose cropping vs maintaining aspect ratio in the file library; introduce new thumbnail sizes and a /folders API endpoint for upcoming folder support
Fixed reference to the getRandomString function in migrations
Fixed broken breadcrumb links, null default handling, and CLI database install in Docker; added migrations for file metadata and WYSIWYG editor.
Major breaking changes include moving the Admin App to the API’s /public folder, restructuring config files (removing app/settings keys and default project), and changing the password reset flow to POST.
App updated to version 7.11.0
Release of App version 7.11.0 and API version 2.5.0