3437 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
Gaetan SENN
66c9562298 Add activity tracking for user suspension due to failed login attempts (#25836)
* feat: log user suspension to activity when rate limit reached

- Add AUTH_FAIL action to activity constants
- Log to directus_activity table when user gets suspended after exceeding login attempt limit
- Includes user ID, IP, user agent, origin and descriptive comment for audit trail
- Only logs when accountability context is available (web requests)

* feat: add github username to contributors for CLA

* build: add changeset

* fix: use UPDATE action

* feat: remove @directus/constants scope

* refactor: clean up code formating

* feat: add revision for activity update

* refactor: fix linter

* fix: remove local db

* fix: inject full user for revision and remove activity comment

* Update .changeset/four-doodles-give.md

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-09-16 10:04:38 -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
Rob Luton
beef548855 2FA Setup for OAuth Users (#25695)
* migration for requiring 2fa flow

* establish the flow

* update types and schemas

* hide require_2fa field from admin

* fix checkbox and endpoints

* working flow

* use existing tfa methods and endpoints instead of creating new ones

* send user to tfa setup if require2FA flag is truthy

* add translations

* Allow OAuth users to enter OTP on login page

* autofocus on OTP field to clarify flow

* adjust openid driver to handle OTP

* use OTP for selected provider

* add last provider to localStorage

* force oauth user to add email address before enabling 2FA

* allow user to cancel 2fa setup

* move redirect to oauth drivers so that it only happens on next login

* translations

* changeset

* should not allow user to cancel 2fa setup if being enforced by role

* refactor to allow tfa setup statuses instead of using a boolean

* send oauth users with role-based 2fa enforcement through the same setup flow as users requesting 2fa themselves

* remove field for tfa_status since it is not needed in the app

* fix state issue with user tfa status checkbox

* fix typescript complaint

* remove email requirement for oauth users

* go back to using boolean for setup status

* fix bool checks and force automatic logout

* replace changeset

* get password requirement from authenticated user instead of trusting the request

* Update api/src/controllers/users.ts

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

* Update api/src/services/tfa.ts

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

* deal with access to own provider field

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

* give update permissions to require_tfa_setup by default

* replace instaces of "default" with existing constants

* fix incorrect redirect url for oauth users with tfa enabled

* cleanup

* Update .changeset/twenty-sloths-wait.md

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

* remove duplicate redirect and cookie handling

* add request and cancel tfa endpoints to sdk

* make OTP input appear under the specific provider used, and fix input transition animation

* discard changes prior to enabling 2fa

* change verbiage of 2fa notice

* Update app/src/composables/use-tfa-setup.ts

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

* Update app/src/composables/use-tfa-setup.ts

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

* Update .changeset/twenty-sloths-wait.md

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

* change 2FA to TFA in var and method names

* another vestige of unused require_password argument

* remove request_tfa_setup db field in favor of local storage for users manually requesting 2fa

* Fix build

* Update .changeset/twenty-sloths-wait.md

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

* remove unused file

---------

Co-authored-by: Alex Gaillard <alex@directus.io>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-09-12 13:15:14 +02:00
daedalus
c97d2ca57b Fix constraint errors not being propagated in MSSQL (#25801)
* Propogate unique constraint errors

* add changeset

* Update slimy-laws-relate.md
2025-09-09 18:45:58 +02: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
Alex Gaillard
82ee4efa45 Fix permissionsCacheable erroring on null operator value (#25753)
* Add early return for filter == null with test case

* Remove snake case

* Change == to ===

* Amend tests

* expand tests

* Update .changeset/tangy-beans-check.md

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

* Rename cachable to cacheable

* Rename cachable to cacheable

---------

Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2025-08-26 13:37:02 -04:00
Brainslug
2ba0ef331c API: Nodemailer using SESv2 (#25730)
* upgrade aws ses to v2

* update nodemailer ses usage

* prettier

* basic mailer tests

* prettier

* Create khaki-carrots-tie.md
2025-08-20 13:18:15 -04:00
Alex Gaillard
88e4143df9 Release 11.10.2 (#25679) 2025-08-12 15:50:04 -04:00
Hannes Küttner
498a53a33e fix: (re)allow excess arguments in cli commands (#25675)
* fix: (re)allow excess arguments in cli commands

* add changeset
2025-08-12 09:16:08 -04:00
Alex Gaillard
3a561ad801 Release 11.10.1 (#25669) 2025-08-11 18:50:25 +00:00
ian
041cefbfa2 Add support for private_key_jwt auth method in OpenID driver (#25644)
* Add support for  auth method in openid driver

* Add changeset

* Update .changeset/five-shrimps-tell.md

* Parse string private keys

* Document json requirement instead
2025-08-11 14:52:40 +00:00
ian
54f164c2b9 Add placeholders for error operation (#25664)
Co-authored-by: Florian C. Wachmann <dev@formfcw.com>
2025-08-11 11:05:42 +02:00
ian
61a222ca1b Add new error operation to Flows (#25558)
* Add error operation

* Update app/src/operations/error/index.ts

* Add changeset

* Past tense

---------

Co-authored-by: Alex Gaillard <alex@directus.io>
2025-08-08 11:36:04 -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
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