1742 Commits

Author SHA1 Message Date
ian
17665bf348 Release 11.12.0 (#25850)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-16 19:42:40 +00:00
Florian C. Wachmann
5bdf3e6ed1 Add cache-busting to image asset URLs in the studio (#25833)
* refactor getAssetUrl() util to enhance parameter handling for consistency

* add tests

* refactor: update getAssetUrl calls to use object parameter for isDownload option

* refactor: update getAssetUrl calls to use object parameter

* refactor and add modified date to the File Display asset URL

* refactor and add modified date to the Image Display asset URL

* refactor and add modified date to the User Display asset URL

* add cache buster to File Interface and update to use refactored getAssetUrl()

* add cache buster to User View and update to use refactored getAssetUrl()

* add cache buster to Comment Input and update to use refactored getAssetUrl()

* add cache buster to Comment Header and update to use refactored getAssetUrl()

* add cache buster to Module Bar Avatar and update to use refactored getAssetUrl()

* add cache buster to User Popover and update to use refactored getAssetUrl()

* make value prop optional in File component

* simplify getAssetUrl call in customLogoPath

* add optional modified_on field to Avatar type

* add changeset

* add avatar fields to user item query

* add modified_on field to user avatar in loadUsers API call

* add avatar.modified_on field to user fetch API call

* add modified_on field to user_created.avatar in useComments function to provide the field in <comment-item-header>

* add hydration for avatar.modified_on field in module-bar-avatar component

* add modified_on field to file query and update image thumbnail computed
2025-09-15 16:07:19 -04:00
daedalus
ca8bdff41f Add mcp support (#25578)
* init

* initial tool

* cleanup

* prefer server over mcpserver

* add admin tool check

* type defineTool

* update ping tool

* improve tool handling

* update tool definition

* rework typres and add initial tool

* add schema to input

* add schema to handler opts

* add system prompt

* rename defineTool types

* Update tool.ts

* handle zod errors

* return correct format

* fix tool list

* prefer names from tool definition

* continue items improv

* return zod as schema output

* pass data down from zod parse

* handle no input schema tool

* update response format

* add handler note

* Ensure collection exists before access

* prefer name in tool file

* remove redundant message

* fix type issue and typo

* sanitize query

* add singleton support

* add remaining item tool commands

* support validate schema

* remove single actions and deleteByQuery

* fix toarray import

* updated tool types

* add back missing rpc message import

* remove unnecessary input schema

* updated tool registration

* separate schema

* removed partial

* remove tool name prefix on schema

* file tool wip

* pass down correct collection for folders/files

* fix global list

* add base64 asset retrieval support

* enable files tool

* add multi tool result type support

* add schema tool

* add missing file schema to files tool

* add create singleton support

* fixed system tool missing inputSchema

* inputschema is not optional

* initial flows tools

* forgot to push the index

* fix closing the connection

* Update server.ts

* format

* revert

* inputSchema is not optional

* add notification handler

* fix tool handlers

* simplified express handler and fixed non-closing get requests from inspector

* add comment

* changed sse error code

* small tweaks

* auto sanitize query

* utilize relevant file/folder service over generic item

* prefer admin flag over explicit check

* add base description

* updated flows

* improve overview command

* dont include invalid field properties

* fix typings for schema overview

* add note to schema overview

* add schema overview interface choices

* reorg

* remove util and default opt out of mcp prevent delete

* fixed unreturned code paths

* fix service typing

* prevent delete should be opt in

* fix import

* fmt

* fix query

* added flows tool test

* added some tool util funcs for better testing

* return deleted keys on item delete

* add item tool tests

* Update items.test.ts

* fix delete for schema tool

* add schema tests

* export the transport class

* make handleRequest async

* await the handleREquest function

* reverted misleading async change

* Added awaiting to server tests

* added some files tests

* fmt

* fix mcp file test types

* move collection, field and relation to their own tools

* Add prompts

* enable trigger flow

* improve prompts

* test wip

* add prompts to build

* remove invalid args for schema tools

* finish collection and field tests

* finish relation tests

* add catalog for mcp sdk

* prefer zod builtin for json schema conversion

* Do not use custom types in json schema

* fix data extraction and validation process

* do not allow additional properties

* MCP -> Schema Tool and Prompt Updates (#25617)

* separate system prompt description and system prompt

* stop duplicating field names to save context

* fetch only collections list first - add keys to fetch detailed schema

* updated schema prompt

* add repeater support for schema tool

* add collection item dropdown support

* items prompt

* long form prompts (need to tighten and condense)

* simplified query schema

* fmt

* Improve typings

* add basic prompt support and add type file

* add query support

* Finalize prompt support

* remove outdata env values

* MCP settings page (#25687)

* Render MCP in all caps

* Bootstrap AI settings page

* Add migration for mcp settings

* Add translations for mcp settings

* Setup fields in system data

* Add more translations

* Add use-collection-validation composable

* Bootstrap mcp prompts validation interface

* Finish settings page

* Add changeset

* Run formatter and resolve stylelint warning

* remove changeset

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* remove unnecessary object strict changes

* revert import ordering

* designate specific file per tool

* default delete to disabled

* account for empty messages

* remove custom type for relation item

* MCP -> Schema Tool -> Add support for relationships (#25693)

* rough in relations for schema detail

* Update schema.ts

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* cleanup schemas

* MCP Settings -> Improvements (#25696)

* add sidebar component for consistency

* add the translations we can for mcp prompts schema

* fix icon for collection

* set proper order

* clean up interaction

* handle edge case where ai prompts collection is deleted but value still saved in settings

* Ignore AI settings in general settings (#25698)

* add system prompt override

* allow disabling system prompt

* add import from url option to files tool

* remove legacy type arg

* add url to result

* add url to flows

* add endpoint for read

* add url display to prompt

* add changeset

* fmt

* Do not utilize custom type in file import

* Improve appearance of v-notice components (in the MCP settings) (#25714)

* add indentContent prop to v-notice for improved alignment of slot content and change appearance of the button inside the v-notice

* add snapshot

* fix mcp system prompt note display

* Add dynamic mimetype and audio support

* Allow disabling mcp feature via env

* update changeset

* MCP -> Update Settings Labels and Notes (#25725)

* update copy for settings labels and descriptions

* add divider

* suggestions from mtkg team

* use success notice when validated

* update validation success msg

* add top notice

* just the endpoint and nothing but the endpoint

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* fix systemPrompt to system_prompt

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* utilize flow service for definition and limit to manual flows

* remove unnecessary check

* fmt

* ensure json expected fields are json

* Update folder tests

* prefer test

* add asset tool tests

* improve mcp test typing for folder and asset

* update collection tests

* prefer plural tool naming

* update field tests

* remove create action for files

* update file tests

* update flow tests

* update item tests

* update operation tests

* update relation tests

* add system tests

* Update trigger flow tests

* reorg asset error test to error handling

* add admin accountability for relation tests

* update schema tests

* prefer test over it

* add admin check

* prefer aftereach for clear mock

* improve protocol error

* MCP -> Possible Relations Tool Fix (#25754)

* remove extra try catch and switch to zod v4 built in errors

* replace custom schemas

* replace schemas

* resolve typing and format

* prefer discriminate union for actions

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* add json rpc error for invalid prompt

* prefer non protocol for tools and fix protocal errors for prompts

* promptsCollection should be optional

* fix server issues

* update server tests

* fix useCollectionValidation tests

* Remove remaining file create artifacts

* Remove custom types to allow proper validation

* restrict access to non public

* adjust schema tool to be non admin

* fix schema tool tests

* add non admin tool check in tests

* allow either field or data.field for relation create

* 405 to indicate no stream support

* ensure system accountability is not admin

* MCP Prompt Cleanup (#25745)

* asset-tool prompt

* trim files prompt

* remove tags example

* remove create from files prompt

* cleanup collection

* cleanup items

* add missing examples to operations

* add xml structure to improve comprehension

* flows and operations improvements

* remove create action from files tool

* fix query schema

* remove reused ref for OpenAI support

* update fields

* cleanup collections

* detailed field example

* cleanup folder

* update relations

* unconfuse folders and collection folders

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* fmt

* FlowItemInputSchema should be partial

* Fix operation tool input schema

* Fix schema tool tests

* MCP -> Improve collections tool prompts (#25781)

* Fix collection <> folder issue

* improve system fields handling

* Add asset downscaling

* fmt

* Add tool title annotation and prefix name with `directus`

* Fix tests for updated naming

* improve asset tests

* Update title to correct location

* Improve `inputSchema` for LLM ingestion (#25789)

* do not use top level unions

* support multi field create

* update prompt

* support transaction al calls on fieldsService methods

* cleanup

---------

Co-authored-by: bryantgillespie <hey@bryantgillespie.com>

* update field tests

* fix relations prompt

* Do not skip internal collections as long as permissions allow

* Update api/src/services/server.ts

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>

* Update app.ts

Co-Authored-By: Brainslug <br41nslug@users.noreply.github.com>

* whoops

* revert ws changes

---------

Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Bryant Gillespie <bryant@hireclockwork.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Florian C. Wachmann <dev@formfcw.com>
Co-authored-by: bryantgillespie <hey@bryantgillespie.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
2025-09-15 22:02:40 +02:00
Nitwel
89cd877560 Fix USER_CREATED, USER_UPDATED, DATE_CREATED, and DATE_UPDATED values in content versioning (#25744)
* initial testing

* bypass accountability and fix error

* continue implementing new content versioning

* fix versionRaw and tweak post nulling

* fix circular references

* improve deep-map and add testing

* add blackbox tests

* add load tests

* update loadtests

* update testsuite

* update load-tests

* undo package.json change

* add way to run everything in parallel

* add github actions

* fix gh action

* improve logging and add wait

* update runners and fmt

* cleanup

* add deadlock tests

* fix deadlock tests for oracle and mssql

* cleanup

* shorten transaction duration

* add web preview option to load tests

* fix lockfile

* fix import for QueryOptions

* format

* use admin for versioned writes

* Fix workflow permissions warning

* move loadtests to separate branch

* fix admin on read

* fix another bug

* update pnpm lock

* fix gql read one

* fix requesting version in gql

* rename bypassAccountability to skipTracking

* not filter default value fields

* content versioning processing values properly

* fix prepareDelta

* continue trying out approaches for inserting user and date defaults

* first final iteration of cv defaulting

* update tests

* stupid mistake fix

* always use overwriteDefaults if present

* fix building and o2m

* map delta to include default values

* fix for promotion

* fix 2 small bugs

* fix promoting

* cleanup

* fmt

* fix and improve tests

* final tweaks

* Update pnpm-lock.yaml

* Apply suggestion from @ComfortablyCoding

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* Remove additional --- in changeset

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Alex Gaillard <alex@directus.io>
2025-09-15 14:32:14 -04:00
daedalus
85902b51d0 Replace tsup with tsdown (#25750)
* migrate from tsup to tsdown

* add changeset

* update to latest
2025-09-02 18:02:00 +00:00
Alex Gaillard
f55913653b Release 11.11.0 (#25765) 2025-08-27 18:04:33 +00:00
Nitwel
ea31721914 Improve Content Versioning (#25437)
* initial testing

* bypass accountability and fix error

* continue implementing new content versioning

* fix versionRaw and tweak post nulling

* fix circular references

* improve deep-map and add testing

* add blackbox tests

* add load tests

* update loadtests

* update testsuite

* update load-tests

* undo package.json change

* add way to run everything in parallel

* add github actions

* fix gh action

* improve logging and add wait

* update runners and fmt

* cleanup

* add deadlock tests

* fix deadlock tests for oracle and mssql

* cleanup

* shorten transaction duration

* add web preview option to load tests

* fix lockfile

* fix import for QueryOptions

* format

* use admin for versioned writes

* Fix workflow permissions warning

* move loadtests to separate branch

* fix admin on read

* fix another bug

* update pnpm lock

* fix gql read one

* fix requesting version in gql

* rename bypassAccountability to skipTracking

* not filter default value fields

* update tests

* stupid mistake fix

* fix gql *_by_version

* Create great-experts-clap.md

* Revert "fix gql *_by_version"

This reverts commit 82bf7239e8.

* Update .changeset/great-experts-clap.md

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* Update .changeset/great-experts-clap.md

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* Update great-experts-clap.md

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Alex Gaillard <alex@directus.io>
2025-08-27 13:25:21 -04:00
Rob Luton
8dba01ee21 Condition for clearing value of hidden field (#25646)
Co-authored-by: Florian C. Wachmann <dev@formfcw.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-22 19:07:08 +00:00
Alex Gaillard
3a561ad801 Release 11.10.1 (#25669) 2025-08-11 18:50:25 +00:00
Rijk van Zanten
52ed9656f5 Fix mysql wrongly reporting index as true in some cases (#25650)
* Match index statistics on table schema as well

* Add changeset
2025-08-08 12:52:05 -04:00
Rijk van Zanten
21f85040ea Run formatter (#25604) 2025-08-05 14:52:35 -04:00
Rijk van Zanten
7d2310badd Finish dependency move (#25583)
* Dangerously update API deps

* Dangerously move app dependencies to pnpm-workspace

* Move all dependencies to catalog

* Sort catalog

* Pnpm update

* Use pnpm 10.14

* Update for zod breaking change

* Fix unhead breaking change

* Downgrade major api upgrades

* Downgrade app major upgrades

* Fix app tests

* Downgrade isolated-vm

* Add changeset

* Fix template in head

* Resolve unhead lang signature

* Downgrade unhead

* Downgrade keyv/redis

It uses a different redis lib under the hood which is incompatible

* Resolve import in test

* Update and move workspace root dependencies

* Update CSS for updated linter rules

* Oops

* Run formatter

* Update rule name

* Run prettier

* Move utils peer to catalog

* Add focus-trap dependency
2025-08-04 18:13:12 -04:00
Rijk van Zanten
c9b81e51a4 Update and move 'simple' dependencies (#25580)
* Update and move 'simple' dependencies

* Add changeset
2025-08-01 14:36:51 -04:00
Rijk van Zanten
3491af9de4 Make tests deterministic, remove @directus/random (#25575)
* Make tests deterministic by dropping random

* Remove random dep

* Drop random package

* Update pnpm lock

* Update app/src/composables/use-permissions/collection/lib/is-action-allowed.test.ts

---------

Co-authored-by: Alex Gaillard <alex@directus.io>
2025-07-31 17:16:40 -04:00
Matthew Rumery
17bf9be79e Add Services Type support for @directus/extensions (#25368)
* feat: add services type

* refactor: replace UserIntegrityCheckFlag from @directus/types

* refactor: replace AbstractServiceOptions from @directus/types

* refactor: replace MutationOptions from @directus/types

* refactor: replace ActionEventParams from @directus/types

* refactor: replace AbstractService from @directus/types

* refactor: replace Webhook from @directus/types

* refactor: replace Range, Stat, ReadOptions, & ChunkedUploadContent from @directus/types

* refactor: replace asset types from @directus/types

* refactor: replace LoginResult from @directus/types

* refactor: replace snapshot types from @directus/types

* refactor: replace Action & PayloadServiceProcessRelationResult from @directus/types

* refactor: replace ExportFormat from @directus/types

* refactor: replace database types from @directus/types

* feat: implement ExtensionsServices within @directus/extensions

* feat: replace QueryOptions from @directus/types

* fix: formatting issue

* fix: adjust extensions services type

* fix: generic type for each service

* fix: typescript errors for missing imports

* refactor: update ReadOptions & ChunkedUploadContext type exports to pull from @directus/types

* refactor: move DirectusError to @directus/types & add DirectusExtensionsError to @directus/types

* feat: add MailService, GraphQLService, SpecificationService, and move required exports to @directus/types

* refactor: move extension types to @directus/types

* refactor: move extension constants to @directus/constants

* refactor: adjust type imports for @directus/composables

* refactor: adjust imports for @directus/extensions-registry

* refactor: adjust import for @directus/errors

* refactor: adjust imports for @directus/themes

* refactor: adjust imports for @directus/extensions-sdk

* refactor: adjust imports for studio app

* feat: implement ExtensionService and migrate types to @directus/types

* fix: revert sdk type changes

* fix: reexport types moved from @directus/extensions to @directus/types

* fix: remove @directus/themes from @directus/extensions

* refactor: move AppField to fields file

* chore: remove @directus/themes from @directus/types

* chore: remove @directus/extensions from @directus/types

* fix: rebase issue with DirectusError generic

* chore: remove @directus/types from sdk

* fix: add missing exports to original packages

* fix: update getAppExtensionChunk return type

* chore: revert DirectusError changes

* chore: revert Collection fields key

* refactor: rename RawSchemaCollection to ApiCollection

* fix: add RawCollection from @directus/types

* fix: import GraphQLParams from @directus/types

* fix: formatting issue

* chore: add changeset

* chore: revert rename of ApiOutput

* Update .changeset/purple-crews-sink.md

* Update .changeset/purple-crews-sink.md

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* Update .changeset/purple-crews-sink.md

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* Update .changeset/purple-crews-sink.md

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* Update .changeset/purple-crews-sink.md

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* Update .changeset/purple-crews-sink.md

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* Update .changeset/purple-crews-sink.md

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>

* Update .changeset/purple-crews-sink.md

Co-authored-by: ian <licitdev@gmail.com>

* fix: rebase pnpm-lock error

---------

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Alex Gaillard <alex@directus.io>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2025-07-31 12:54:50 -04:00
Rijk van Zanten
d8cd3a6c49 Update & move deps for @directus/extensions-sdk (#25564)
* Update & move deps

* Add changeset;
2025-07-30 17:44:46 -04:00
Rijk van Zanten
8b1424484d Update dependencies and tests for @directus/extensions-registry (#25563)
* Upgrade and move deps

* Add docblock

* Gen tests

* Gen docs & tests

* Gen docs & tests

* Add changeset
2025-07-30 17:29:33 -04:00
Rijk van Zanten
68c92b481e Move error packages dependencies (#25562)
* Move errors deps to workspace catalog

* Move errors deps to workspace catalog

* Add changeset
2025-07-30 16:37:48 -04:00
Rijk van Zanten
31fad759d7 Move and update deps for @directus/env (#25561)
* Update dependency

* Add changeset
2025-07-30 16:33:33 -04:00
Rijk van Zanten
fb4c92c923 Dependencies & tests for create-directus-project (#25559)
* Move and update dependencies

* Gen tests for check-requirements

* Add test coverage to create-directus-project

* Fix typescript issues in index file

* Add changeset
2025-07-30 16:11:50 -04:00
Alex Gaillard
e109a6f2d6 Release 11.10.0 (#25557) 2025-07-30 17:12:15 +00:00
Rijk van Zanten
0d5458e578 Update dependencies in create-directus-extension (#25550)
* Pull inquirer from catalog

* Only run when not in a test

* Add vitest

* Add test coverage for index file

* Add vitest config

* Add changeset

* Run w/ prettier
2025-07-29 17:48:46 -04:00
Rijk van Zanten
fffe988275 Upgrade dependencies and add tests to @directus/composables (#25545)
* Update dependencies and move to catalog

* Add use-collection test

* Add 100% test coverage for use-collection

* Add tests for use-custom-selection

* Add tests for use-custom-selection

* Update workspace packages

* Make tests work with vitest 3

* Gen use-element-size tests

* Gen tests for use-filter-fields

* Gen tests for use-groupable

* Run formatter

* Run formatter some more

* Match node type to engine in package.json

* Gen tests for use-layout

* Gen tests for useSizeClass

* Gen tests for use-sync

* Add deprecation warning to useSync

* Gen tests for use-system

* Run formatter

* Update types for node type update

* Run formatter

* Add changeset
2025-07-29 16:43:47 -04:00
Rijk van Zanten
a773087ba0 Remove empty components package (#25542) 2025-07-28 18:17:28 +00:00
Rijk van Zanten
4f94a26b56 Add native support for RTL direction (#25494)
* Setup language_direction user setting

* Add option translations

* Add rtl const

* Return dir from getCurrentLanguage

* Set htmlAttrs for lang / dir

* Update tests, fix fallback

* Add test:watch script

* Add rtl transform in icon file

* Make sure the progress bar animates rtl

Devil's in the details

* Make sure sidebar animates correctly on smaller screens

* Care too much about the details

* Fix directionality on slider

* Fix drawer transitions

* Arrow alignment in settings

* Stacked drawers effect

* Full screen navigation

* Revert menu alignment

* Fix nudging on smoke click

* Add changeset

* Update app/src/components/v-menu.vue

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Format

* Format rebased work

* One more formatting quirk

* Update app/src/lang/translations/en-US.yaml

Co-authored-by: Florian C. Wachmann <dev@formfcw.com>

* Update .changeset/giant-cloths-play.md

Co-authored-by: Florian C. Wachmann <dev@formfcw.com>

* Add translation

* Remove importants

* Improve typing in get-current-language

* Update app/src/views/private/private-view.vue

Co-authored-by: Florian C. Wachmann <dev@formfcw.com>

* Update app/src/views/private/private-view.vue

Co-authored-by: Florian C. Wachmann <dev@formfcw.com>

* Fix tooltip directions

* Refactor user store to setup script

* Add language/dir to userStore

* Replace getCurrentLanguage w/ userStore

* Make html attrs reactive

* Rename language_direction to text_direction

* Appease the robot overlords

* Add text-direction to user type

* Make text-direction not nullable

* Fix arrow alignment

* fix top tooltips

* run formatter

* mirror directional icons

* Fix positioning for rtl

* Fix flow attachments

* Replace magic number with const

* Start refactoring arrows business logic

No way to properly write unit tests for these bits otherwise. Increases the surface of this PR quite a bit, but feels like a necessary evil...

* Move minMaxPoint to separate file

* Move is-point-in-panel out

* Move generateCorner to separate file

* Update docs

* Move range function out

* Move find-best-position to separate file

* Move get-points to separate file

* Move generate-path out of main fn

* Move create-line to separate file

* Rewrite docblock

* Add tests for generate arrows

* Make sure icons are only mirrored in rtl

* Add RTL for flow arrows

* Run formatter

* Remove extraneous setLanguage calls

* Fix mocks

* Fix generate test

* Fix review notes

* Fix pinia test stubbing

* Fix test runner and add coverage for rtl

* Mock global pinia in v-info test

* Remove unused imports

* Remove unused type

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Florian C. Wachmann <dev@formfcw.com>
2025-07-28 13:59:32 -04:00
Rijk van Zanten
a524999cf2 Sort weights when constructing google font ID (#25452)
* Add test suite for use-fonts

* Fix multiple weights not being sorted

Fixes #25034

* Add changeset

* Support multi-word fonts

* Run formatter

* Accept deep partial in useFonts

* Update packages/themes/src/composables/use-fonts.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/themes/src/composables/use-fonts.test.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-28 13:53:06 -04:00
Nitwel
217520ffde Add support for bundling with Rolldown and improve app extensions loading by streaming from disk (#25317)
* stream app extensions from the filesystem instead of storing them in the heap

* cleanup

* temp commit

* fmt and cleanup

* rename import and remove rollup

* fix lock file

* add EXTENSIONS_ROLLDOWN to switch between roll-up/down

* add comment

* fmt

* Update .changeset/violet-sloths-shine.md

Co-authored-by: ian <licitdev@gmail.com>

* Update api/package.json

Co-authored-by: ian <licitdev@gmail.com>

---------

Co-authored-by: ian <licitdev@gmail.com>
2025-07-23 13:20:24 -04:00
Rijk van Zanten
e72483fb76 Add Codecov upload on test CI (#25470)
* Add consistent test:coverage scripts

* Add missing coverage deps

* Submit to codecov

* Update .github/workflows/check.yml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Add codecov config

* Run formatter, remove branches

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-07-17 16:29:02 -04:00
Rijk van Zanten
4df14e803d Update deps in @directus/extensions (#25486)
* Update deps in @directus/extensions

Fixes #24012

* Add changeset

* Revise changeset

* Update minimum engine

* Require node 20

* Update .changeset/cruel-chairs-cut.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Revised changeset once more

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-07-17 15:27:19 -04:00
Rijk van Zanten
2edbea9386 Move common dependencies to catalog (#25467)
* Update pnpm to v10

* Update package.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Allow builds

* Move common dependencies to catalog

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-15 14:40:28 -04:00
Nitwel
3c293ce7eb Ensure password env options are always strings (#25248)
* ensure password env options are always strings

* allow for regex keys in type-map

* fmt

* fix tests

* fmt

* add more tests

* Update .changeset/fluffy-cases-kneel.md

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-07-11 12:00:24 -04:00
Nitwel
0e5440ce92 Fix replacing process.env.NODE_ENV on backend extensions (#25180)
* fix replacing process.env.NODE_ENV on backend extensions

* use actual process.env['NODE_ENV']

* default to production to make it less of a breaking change

* Update shiny-eagles-stare.md

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-07-11 09:54:22 -04:00
ian
7d789979d8 Hide accepted terms field in settings (#25391)
* Hide accepted terms

* Add changeset
2025-07-10 11:39:31 -04:00
Alex Gaillard
b8a47c621a Release 11.9.0 (#25358) 2025-06-25 17:58:44 +00:00
Nitwel
0e532648e0 Added backlink query param (#25284)
* Added backlink query param

* add to sdk

* fmt

* fix and add more tests

* fmt

* Add check for boolean just in case

Query params should be strings, adding check since type is unknown

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Ensure no duplication

* small fix

* Create shaggy-bears-begin.md

* Update .changeset/shaggy-bears-begin.md

Co-authored-by: ian <licitdev@gmail.com>

---------

Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-23 10:12:45 -04:00
Nitwel
bd064fe1d2 Fix default value of extension options not allowing any (#25273)
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-06-20 12:59:10 -04:00
Nitwel
3961dc0593 Add key/value information to db errors (#25112)
* Add key/value infomation to db errors

* make key/value error info consistent across DBs

* fmt and fix tests

* fix errors and clean up code

* fix tests

* fmt and fix tests

* fix linter...

* fix tests

* jeezz that formatter and linter.....

* fix fields in pg error

* rename key to value

* Update .changeset/sour-lands-sniff.md

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-06-19 18:43:07 -04:00
Rijk van Zanten
556f36fb42 Add anonymous project id to telemetry (#25300)
* Install uuid

* Add project id on migrate/install

* Include project id in telemetry

* Add changeset

* Fix snapshot

* Use migration timestamp for project_id UUID generation

Updated the migration to use the timestamp from 'directus_migrations' as the msecs value when generating the project_id UUID.

* Fix formatting

* Add into types and sdk

* update changeset

---------

Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Connor Winston <connor@winston.guru>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-06-19 14:48:59 -04:00
Brainslug
d0164c1ebb Dependabot updates (#25267)
* Bump tar-fs to 2.1.2

* Bump vue-i18n to 11.1.2

* Bump vite to 4.5.14

* Bump vite to 5.4.19

* Bump undici to 7.5.0

* Create six-dryers-punch.md

* fix lock
2025-06-19 10:12:42 -04:00
daedalus
97f09abe3e Add AUTH_.+_ISSUER_DISCOVERY_MUST_SUCCEED and AUTH_.+_CLIENT_HTTP env variables to the openid provider (#25002)
* attempt to re-create client if preload failed

* allow for client failure exit

* allow for client http option overrides

* add changeset

* Show "Service Unavailable" if provider is not available on sso button

---------

Co-authored-by: Nitwel <mail@nitwel.de>
2025-06-19 15:22:54 +02:00
Nitwel
80f21ac9c9 Fix translating m2a filters on GQL only when applicable (#24830)
* fix translating filters on GQL only when applicable

* fmt

* fmt

* fmt

* fix merge

* cleanup code and update test schema

* cleanup

* fmt

* fmt

* fix gql schema gen for m2a

* Debug

* fix replacing on _and

* remove console.log

* fix ts error

* fmt

* add changeset

---------

Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-06-18 17:18:14 -04:00
Alex Gaillard
c85234cff5 Add BSL License Banner (#25299)
* Build out license-banner component

* Implement display logic

* Add migration

* Mobile styles and add correct links

* Add dynamic color support for license SVG

* Add UTM links

* Changes from design review

* Copy changes and styles to fit

* Add changeset

* Add all packages to changeset

* Improve translation interpolation to allow for accurate translations

* Combine license_banner_seen and license_banner_disabled to accepted_terms and rename env var

* Format

* Capitalize translation

* Fix formatting error

* Use nbsp character instead of interpolation (#25308)

Co-authored-by: Alex Gaillard <alex@directus.io>

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2025-06-17 21:46:39 +00:00
Abdón Rodríguez
3ad3c7de4e Update @directus/extensions-sdk to Rollup v4 (#25035)
* Force Rollup v4 with resolutions

* Replace rollup-plugin-styles with rollup-plugin-styler

* Add changeset

---------

Co-authored-by: Nitwel <mail@nitwel.de>
2025-06-17 16:57:42 +02:00
Alex Gaillard
a5a659dce3 Add revert function to /files/:item and react to emit (#25281)
* Add revert function to /files/:item and react to emit

* Set modified_on by default on upload

---------

Co-authored-by: ian <licitdev@gmail.com>
2025-06-16 15:44:51 -04:00
Nitwel
8271718520 Replace mapValuesDeep with deepMap (#25216)
* fix cohersion of values only in rest

* fix tests

* Update late-pans-draw.md

* default back to keep old behavior

* fmt

* combined mapValuesDeep into deepMap and cleaned function up.

* ran formatter

* Update .changeset/fine-boats-brush.md

---------

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-06-16 12:32:45 -04:00
Florian C. Wachmann
59f04a294d Add keyboard accessibility (#25214)
* update base styles

* remove rendundant focus styles in v-button

* update base styles

* ensure keyboard navigation for the base layout

* make clickable v-icon component accessible and update instances accordingly

* make v-fancy-select accessible

* make clickable v-chip component accessible

* update focus ring offset for select cell in table row component

* add focus-visible style for search and filter icons

* make shortcuts in permissions row accessible with button elements and focus-visible styles

* enhance accessibility for custom input in select-radio component

* make field name clickable by changing span to button for improved accessibility

* add border-radius to focus-visible style for improved consistency

* implement focus trap in v-dialog component

* refactor focus ring styles for improved accessibility and consistency

* update focus ring styles for base layout

* add skip menu component for improved navigation accessibility

* refactor live preview component to improve accessibility

* implement focus trap and escape key handling in v-menu component for improved accessibility

* refactor select-color component styles for improved focus ring consistency

* improve search input component accessibility

* enhance node component styles for improved focus visibility

* refactor v-input and v-select components for improved accessibility

* update snapshots

* improve keyboard navigation of v-list-group and v-list-item

* remove unused focus ring styles from private view component

* add noFocusReturn prop to v-menu for improved focus management

* refactor module-bar-avatar component for improved focus management and accessibility

* refactor notifications-preview component to improve structure

* add aria-expanded attribute to sidebar-button component for improved accessibility

* update useFocusTrap configuration to prevent escape key from deactivating focus trap

* refactor header component to improve selection button behavior and accessibility

* add apply event to dialogs for improved user interaction & accessibility

- Updated v-dialog components to emit an 'apply' event for better handling of user actions.
- Enhanced various components including v-drawer, v-upload, and v-remove to utilize the new 'apply' event.
- Improved accessibility and user experience by allowing actions to be triggered on specific conditions.

* enhance table layout for improved keyboard accessibility

* enhance focus visibility styles for breadcrumb and version button components

* add another focus ring offset variable

* enhance focus ring styles for active version item in version menu

* enhance context menu toggle styles for improved focus visibility

* refactor select-dropdown-m2o component for improved structure and accessibility

* update focus ring offset for block style in v-checkbox component

* refactor focus ring styles for improved accessibility on main elements

* enhance keyboard accessibility for table row interactions

* enhance keyboard accessibility for item links in list components

* update focus ring styles for markdown editor to improve accessibility

* refactor input handling and improve activation logic for autocomplete component

* enhance color picker interaction by adding toggle functionality and improving focus handling

* enhance icon interface interaction by adding click and keydown event handling for better accessibility

* refactor datetime interface by replacing v-input with v-list-item for improved structure and accessibility

* enhance focus styles for map interface to improve accessibility

* enhance focus styles for list items in datetime and select-dropdown interfaces to improve accessibility

* improve translation interface accessibility

* refactor group detail interface for improved accessibility and interaction

* enhance dialog interactions with apply handlers for improved user experience

* enhance v-checkbox and select-multiple-checkbox components with focus handling for custom inputs

* enhance v-checkbox and select-multiple-checkbox components for improved accessibility

* update tests

* refactor: replace label div with button for improved accessibility and interaction

* refactor: replace v-input with v-list-item for improved interaction and accessibility

* style: adjust spacing in v-checkbox for improved layout and readability

* refactor: update addOtherValue function to accept focus parameter for improved interaction

* fix: add tabindex to file input for better accessibility and set button type for cancel action

* refactor: replace v-input with v-list-item for improved interaction and accessibility

* fix: add immediate option to watch for internalActive in useOverlayFocusTrap for better responsiveness

* add applyShortcut prop to v-dialog, v-drawer, and overlay-item for customizable keyboard shortcuts

* feat: implement file input interaction with v-list-item for improved Accessibility

* improve accessibility for comments sidebar

* refactor: replace div with button in v-detail and revision-item for improved accessibility

* fix: update button attributes and focus-visible styles for improved accessibility

* feat: add apply event to dialogs for improved interaction handling

* fix: refactor removeField function for improved clarity and accessibility

* update key binding in v-fancy-select template for improved rendering

* fix: enhance keyboard interaction for table row

* fix: add button type attribute and style for 'set to now' functionality in date picker

* fix: ensure primary key updates only when there are internal edits in overlay-item

* update dialog apply handlers

* add changeset

* prettier

* rename focusCustomInput prop to autofocusCustomInput for clarity

* re-rename class to `other-input`

* add class to buttons in field template and translation input for improved clarity

* remove unnecessary offset property from v-list-item styles

* refactor: move headerColor style to the style block

* style: add `-webkit-user-select` to each occurrence of `user-select`

* style: move outline reset css to the `*:not(svg *)`

* Refactor itemsMap object to allItems array

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>

* fix previous code suggestion issues

* reduce z-index value for skip menu component

* refactor: move @apply scripts from template to script block

* refactor larger inline scripts to script block

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2025-06-06 11:54:53 -04:00
Alex Gaillard
ccf2f3d38f Release v11.8.0 (#25252) 2025-05-28 13:29:21 -04:00
Nitwel
8c1f0a428d Fix coercion of values only for rest (#25207)
* fix cohersion of values only in rest

* fix tests

* Update late-pans-draw.md

* default back to keep old behavior

* fmt

* slight test cleanup

* test name
2025-05-22 16:32:33 +02:00
Nico
4bc636c8e0 fix: added ADMIN_PASSWORD, ADMIN_TOKEN, KEY, and SECRET to TYPE_MAP to treat them as strings by default (#25196)
* fix: added ADMIN_PASSWORD, ADMIN_TOKEN, KEY, and SECRET to TYPE_MAP to treat them as strings by default

* Create neat-wasps-change.md

* Update neat-wasps-change.md

---------

Co-authored-by: Nitwel <mail@nitwel.de>
2025-05-19 15:53:44 +00:00
ian
a6b840b08e Bump @directus/utils (#25147) 2025-04-29 21:45:17 +00:00