Commit Graph

3421 Commits

Author SHA1 Message Date
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
daedalus
89365a14a7 Fix admin users email not trimmed on project initialization (#25465)
* Trim first user email on setup

* add changeset

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2025-08-04 14:55:38 -04:00
Jens Kuerschner
833892e92e Add the ability to override the email from property (#25459)
* add override option for mailer service extensions

* added changeset

* sign cla

* optimize mailer "pooling"

* Adjust to allow smtp without pass as the default does

* Fixing format issues

* Optimize caching by following codeRabbit recommendations + formatting

* Optimize new type

* Reducing changes to FROM override only

* add unit tests

* Fixing micro format issue

* optimizations

* simplify tests

* update changeset wording

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-08-04 13:46:39 -04:00
daedalus
2836948dab Update dependency form-data (#25579)
* update form-data

* update subdep form-data

* add changeset

* add form-data to catalog
2025-08-01 19:26:36 +02: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
Alex Gaillard
e109a6f2d6 Release 11.10.0 (#25557) 2025-07-30 17:12:15 +00: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
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
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
Hugues BUREAU
c254ff6a62 Add authenticate hook to WebSockets (#25344)
* feat: add websocket.authenticate filter

* docs: add websocket.authenticate to filters list

* chore: add 8byr0 to contributors

* feat: emit websocket.authenticate hook for all modes

* prefer accountabilityoverrides over ip

* default accountability to generated default

* add changeset

* Remove old doc changes

* Remove extra space

* requested changes

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

* rework emitter mock

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
2025-07-22 11:30:10 -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
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
José Varela
4c20947871 Fix: Import CSV with nested dot notation does not work (#25454)
* Allow nested relations in CSV headers

* Add changeset
2025-07-15 16:08:21 +02: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
Nitwel
f65f63c660 Exclude database-only tables from snapshots (#25271)
* fix snapshots including untracked collections

* update changeset to major

* Update .changeset/slick-seas-learn.md

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

---------

Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-07-10 11:56:26 -04:00
Alex Gaillard
be48429caa Merge pull request #25359 from that1matt/fix-typescript-errors-api
Fix TypeScript errors in `/api` folder
2025-07-10 11:52:42 -04:00
amos
b1ea1408f2 Remove duplicate logic in readAll of fields (#25184)
* fix(fields): avoid redundant iterations in readAll by using map

* remove duplicate code

* Update pnpm-lock.yaml

* Update pnpm-lock.yaml

---------

Co-authored-by: Nitwel <mail@nitwel.de>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-07-10 11:38:03 -04:00
Nitwel
a4cff08d6f Fix parsing functions in aliases (#25139)
* fix parsing functions in aliases

* fix building

* fix tests

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-07-10 11:36:20 -04:00
Matthew Rumery
c00e1e5c39 Merge branch 'main' into fix-typescript-errors-api 2025-07-09 10:48:33 -06:00
ian
46564d7a00 Release 11.9.3 (#25426) 2025-07-09 11:11:46 +00:00
Brainslug
d9c67ab22f Fix manual flows trigger (#25406)
* treat all IDs as string for comparison

* Create orange-rules-train.md

* Update .changeset/orange-rules-train.md

---------

Co-authored-by: ian <licitdev@gmail.com>
2025-07-09 18:22:31 +08:00
Brainslug
d84dcc36f7 Merge commit from fork
* sanitize filename_disk

* removed comments

* using default uuid instead

* make sure we clean up temp files on database error

* rethrow original error

* move ops to single var
2025-07-09 18:20:53 +08:00
Matthew Rumery
6f90464416 Merge branch 'main' into fix-typescript-errors-api 2025-07-01 10:23:58 -06:00
Alex Gaillard
7532b2b8fc Release 11.9.2 (#25388) 2025-07-01 15:16:35 +00:00
Matthew Rumery
cc962b68f2 Merge branch 'main' into fix-typescript-errors-api 2025-07-01 09:06:02 -06:00
Joshua Bemenderfer
45a3534aba Fix requireSelection check for manual trigger flows (#25386)
* Add missing `requireSelection` check. Fixes #25385

Should resolve the 403 error on manual flows with no selection.

* add `requireSelection` check before key permission check

* Fix type error

* add changeset

* Update famous-drinks-stare.md

* Adjust permission check to be based on targetKeys

* Ensure at least one targetKey exists before permission check

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-07-01 16:45:44 +02:00
Matthew Rumery
04cd23ae28 Merge branch 'main' into fix-typescript-errors-api 2025-06-30 13:25:13 -06:00
Alex Gaillard
3f4e6df99c Release 11.9.1 (#25382) 2025-06-30 16:32:50 +00:00
Matthew Rumery
65316ea184 fix: typescript errors in api 2025-06-25 14:15:06 -06:00
Alex Gaillard
b8a47c621a Release 11.9.0 (#25358) 2025-06-25 17:58:44 +00:00
ian
52ab5078fb Remove unnecessary redacting of env for log operation (#25356) 2025-06-26 00:42:23 +08:00
Brainslug
22be460c76 Fix manual flows to only trigger with appropriate permissions (#25354)
* fix manual flows only being triggered with appropiate permissions

* update changeset

* check for access to the ids

* also check required keys

* small tweaks

* ran prettier

* Update .changeset/seven-flies-exist.md

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

* Format imports

---------

Co-authored-by: Nitwel <mail@nitwel.de>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-06-25 23:43:16 +08:00
Brainslug
859f664f56 Improve redaction in Flows' Log to Console operation (#25355)
* Add log-to-console redaction

* added sensitive user keys for redaction

* Added changeset

* Update .changeset/tame-ears-doubt.md

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

---------

Co-authored-by: ian <licitdev@gmail.com>
2025-06-25 23:22:28 +08:00
Brainslug
e74f3e4e92 Update info.version in the OpenAPI specs (#25353)
* Removed incorrect open api spec version

* added unique hashed version

* Added changeset

* ran prettier

* Changes

---------

Co-authored-by: ian <licitdev@gmail.com>
2025-06-25 22:53:59 +08:00
daedalus
2dfff7232d Fix existing numeric_precision, numeric_scale and max_length not respected on schema changes (#25346)
* Respect existing max_length for string fields

* Respect existing numeric_scale/numeric_precision for float/decimal fields

* add changeset
2025-06-24 17:29:46 +02: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
2a4ada9ebb Fix skipping marketplace for local extensions (#25323)
* fix skipping marketplace for local extensions

* fmt

* fix!!😊

* 
2025-06-20 16:30:07 -04:00
smgrol
e0d1dca723 Add support for non array group claims (#25173)
* Set array type for groupClaimName

* Change if statement

* Update contributors.yml

* Fix prettier

* Update groups type of openid and oauth2 drivers

* Update contributors.yml

* simplify groups check further with ternary

* Do not log debug iof no rolemapping

* add changeset

* fmt

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-06-20 10:43:11 -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
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
ian
0246dee321 Fix license banner migration (#25318) 2025-06-19 01:44:10 +08:00
Jonas
219b6649d2 Fix logging of invalid url in isUrlAllowed (#25235)
* fix logging of invalid url in isUrlAllowed

The logger just logged the URL that is checked instead of the URL that we try to parse.

* sign Contributor License Agreement

* Create slimy-peas-pump.md

---------

Co-authored-by: ian <licitdev@gmail.com>
2025-06-18 10:25:59 +08: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
José Varela
80f1c0b0de Api: Fix Marketplace extension ID (#25304)
* Fix Marketplace extension ID

* Add changeset

* cleanup

* fmt

---------

Co-authored-by: Nitwel <mail@nitwel.de>
2025-06-17 14:48:14 +02:00
Nitwel
feb35d356f Fix permissions for shares for non-admin users (#25229)
* fix permissions for shares for non-admin users

* fix imports

* fix tests
2025-06-16 20:10:44 +02: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