Commit Graph

2237 Commits

Author SHA1 Message Date
ian
f073a5335e Fix logic to update parent bundles enabled status (#22587) 2024-05-28 15:26:38 +02:00
Zehir
7d2a1392f4 Fix #22572 Invalid query for random string (#22573)
* Fix #22572 Invalid query for random string

* Add changeset

* Run prettier

* Fix unit tests warnings

* redo validation with Joi

* make validation on object level

documents itself and is cleaner to expand on

* Update changeset

* Allow integer only

* Require min value of 1

* Report as query error, ignore unknown queries

---------

Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-05-26 09:13:17 -04:00
Brainslug
9335664aa8 Session token "safety window" when refreshing (#22503)
Co-authored-by: Hannes Küttner <4376726+hanneskuettner@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-05-21 11:50:00 +00:00
Brainslug
8609b4a2db Fix database session duration (#22501) 2024-05-16 17:07:28 +02:00
Brainslug
9a6e23639b Prevent "invalid token" from being blocking (#22459)
* Throw a consistent invalid credentials error and remove invalid session cookies on the response

* updated tests

* prettier

* Added tests for cookie clearing

* prettier

* Update api/src/middleware/authenticate.test.ts

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Update api/src/middleware/authenticate.test.ts

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Update api/src/middleware/authenticate.ts

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-05-14 14:01:40 +02:00
Hannes Küttner
c2ba3e1349 Fix regression in count database helper when counting filtered related fields (#22448)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-05-13 12:28:03 +02:00
Hannes Küttner
1a7bdb1b95 Fix filter compare value casting for filter operators that take 2 or more values (#22410) 2024-05-08 15:13:51 +02:00
Daniel Biegler
c893b9fa65 Add public registration (#22125)
* WIP: add new register dummy-route

* fix notice on register route

* WIP register form

* WIP: registering ui and controller for testing

* fix lint ordering problem

* wip: users service

* add migration, initial style for fields in settings

* redo how emails will be filtered

* WIP add filter in the register handler

* conditionally render register link depending on settings

* WIP: add email validation

* wip add email sending

* make clicking the email link work

* rm console log

* update controller

* dont send emails for existing emails

* add translation

* only show register link when unauthenticated

* add different redirects

* only allow selecting non-admin roles

* redirect to users page

* update translation

* move logic from controller to usersservice

* rm remnant of logic from controller

* add stall time to registration

* update translation

* rm comments

* rm unused var

* add changeset

* update translation for success

* remove sso related stuff from registration

* also allow setting first and last name

* update error check

* add @directus/errors to app

* replace error strings with enum

* rename to public_registration

* rename to public_registration_verify_email

* add notes to fields

* add types package to changeset

* dont stall if no work is being done

* allow null-role and resending of reg. email

* add public registration env vars, rm RATE_LIMITER_GLOBAL_STORE

RATE_LIMITER_GLOBAL_STORE wasnt being used. Lets just stick to RATE_LIMITER_STORE for all rate limiters. TODO: also remove from docs!

* use ratelimiter for registration, use stall time env var

* add registration limiter docs, rm global store variable from docs

* update changeset

* add ignore-notice

Co-authored-by: Hannes Küttner <4376726+hanneskuettner@users.noreply.github.com>

* use and document new `EMAIL_VERIFICATION_TOKEN_TTL`, also doc `REGISTER_STALL_TIME`

* change variable name

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

* apply variable rename to usage

* change backticks to single quote

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

* inline variables

* add fields to server info, update types

- The other ratelimiters also expose points and duration, done
- Add `public_registration_verify_email` so that we can render different success messages

* tiny wording tweak of registration mail

* add new user status 'unverified' and check for it

* add unverified status translation

* decouple email verification and validation

* enable register rate limiter by default and up its config

* add autocomplete=new-password on the registration form

* added sdk functions

* add gql query for new fields

* added register api reference

* updated verify sdk function name

* added reference block for email verify endpoint

* updated reference examples

* WIP: add gql resolvers

* add ratelimiter to mutation

* remove ratelimiter registration point+duration info

* rm points and duration from gql

* Update docs/reference/system/users.md

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

---------

Co-authored-by: Hannes Küttner <4376726+hanneskuettner@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-05-07 23:20:24 +02:00
Hannes Küttner
1d7e0b7160 Fix bundle (re-)loading (#22013)
* Fix bundle (re-)loading (fixes #21942 and #21946)

* Add changeset

* Use .some instead of .find for checking existance

* Fix names

* Cleanup

* Add comments

* Update changeset

* moved out type check

* Clearer params, fix bundle check

* Use enabled state from parent

* Clarify changeset

---------

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Brainslug <tim@brainslug.nl>
2024-05-07 14:42:23 +00:00
Pascal Jufer
b7135fdf64 Fix handling of invalid and empty filter queries (#22048)
Co-authored-by: Hannes Küttner <4376726+hanneskuettner@users.noreply.github.com>
2024-05-07 15:47:58 +02:00
Pascal Jufer
537d7f1e36 Revert "Consolidate content versioning (#22227)" (#22412)
This reverts commit 5a258dd406.
2024-05-07 17:25:19 +08:00
ian
5a258dd406 Consolidate content versioning (#22227)
* Add migration

* Use the new delta field

* Add cast-json flag

* Fix typing

* Fetch existing deltas if version created during migration

* Add changeset

* Add version delta field into sdk schema
2024-05-06 21:02:23 +02:00
Rijk van Zanten
ec2604f913 Don't require KEY or SECRET to be set on startup (#22320)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-05-06 13:00:10 +00:00
Brainslug
e70a90c267 Improved values redacting (#22332)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-05-02 14:54:16 +02:00
Brainslug
a6172f8a6a Improved session token validation (#22353)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-05-02 14:53:41 +02:00
Hannes Küttner
d10385d303 Fix large and real numbers in search query (#22345)
* Add db search helper

* Use raw query for redshift

* Fix SQL injection possibility

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

* WIP fix for MS SQL

* Improved big int support and value limit checking

* prettier

* updated for failing test

* Added missing lower bound

* Add missing lower bound at another place

* Rewrite helpers for postgres

* updated constants

* extracted utils

* updated types

* prettier

* renamed searchhelper to numberhelper and extracted parseNumericString util

* moved constants up the tree

* moved constants and types to packages

* prettier

* Add type guard for numeric field

* Fix import - so much for auto imports...

* Use isIn helper

* Drop implementation specific test

* Remove temporary vite file

* Move parseNumericString to its own file

* Rename orWhere

* Fix wrong type

* Fix test after merge

* Change constants import location

* updated postgres valid condition

* Added same stringify logic for oracle

* Add helper for sqlite and catch big int parsing error

* Add curly brackets and redundant catch argument

---------

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Brainslug <tim@brainslug.nl>
2024-04-30 17:22:53 +02:00
ian
df254cc093 Add falsy fallback condition to search query (#22342)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Hannes Küttner <4376726+hanneskuettner@users.noreply.github.com>
2024-04-30 11:02:57 +02:00
Pascal Jufer
160b982928 Patch Tuesday 🐸 (#22063)
Co-authored-by: Hannes Küttner <4376726+hanneskuettner@users.noreply.github.com>
2024-04-30 10:49:20 +02:00
Pascal Jufer
4b75c375df Client-side restart of failed transactions on CockroachDB (#22240) 2024-04-25 14:19:17 +02:00
Pascal Jufer
4fe4c6e988 Fix filter validation for field functions (#22060)
Co-authored-by: Hannes Küttner <4376726+hanneskuettner@users.noreply.github.com>
2024-04-24 16:10:04 +00:00
Hannes Küttner
bc3f698851 Fix count helper function for self-referencing relations (#22297)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-04-24 14:07:18 +02:00
Hannes Küttner
7c08452305 Fix ambiguous column SQL error for M2A relations (#22262) 2024-04-19 23:05:48 +02:00
Hannes Küttner
c5fe153c62 Fix caching for marketplace account / type extension listing (#22254)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-04-19 12:20:46 +00:00
José Varela
476a2482ad Api: Clear system cache only if specified on /utils/cache/clear (#22234)
* Clear system cache only if specified

* Add changeset

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2024-04-17 17:07:10 -04:00
Rijk van Zanten
be895926ef Revert "Don't influence Cache-Control through CACHE_AUTO_PURGE" (#22235)
* Revert "Don't influence Cache-Control through `CACHE_AUTO_PURGE` (#22203)"

This reverts commit 12fb7719fe.

* Add changeset
2024-04-17 17:01:09 -04:00
José Varela
4bb03df6da Api: Bubble up the error to prevent unhandledRejection (#22231)
* Bubble up the error to prevent `unhandledRejection`

* Add changeset

* Remove unused async context

* Catch callback errors

Just in the off chance the bus.publish will throw an error

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2024-04-17 16:00:20 -04:00
José Varela
bf47a19428 API: Prevent endless loop on get-schema (#22230)
* Prevent endless loop on `get-schema`

* Make magic value configurable

* Fix linter warning

* Add changeset

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2024-04-17 15:50:27 -04:00
Hannes Küttner
12fb7719fe Don't influence Cache-Control through CACHE_AUTO_PURGE (#22203)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-04-16 09:55:41 +00:00
Rijk van Zanten
577f08e5f5 Remove nested transactions (#22023)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
2024-04-16 10:13:33 +02:00
Pascal Jufer
6c35f43460 Fix nested queries with unlimited default limit (#22049)
* Fix nested queries with unlimited default limit

* Add changeset
2024-04-15 11:52:41 +02:00
José Varela
dfe6cca40b Api / Assets: Prevent backpressure on sending big files (#22175)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-04-15 08:29:57 +00:00
José Varela
75c03bdd99 Api / Graphql : Allow version as singleton argument on singleton (#22184)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-04-12 10:50:32 +00:00
Rijk van Zanten
58c1e308fc Tweak default email in init cli command email_from config (#22162)
* Change default email from in init .env to example.com

Directus's domain has a strict dmarc quarantine, so this will never work. Changing it to example should make it super obvious it's just an example.

* Add changeset
2024-04-10 11:45:17 -04:00
Pascal Jufer
c9105eaead Use Item/PrimaryKey from and move Alterations to @directus/types (#22027)
Co-authored-by: ian <licitdev@gmail.com>
2024-04-08 10:12:26 +02:00
Rijk van Zanten
1ff4bf3330 Improve schema retrieval by caching the schema cache creation (#21824)
* Don't await non-async function

* Add process lock to system schema cache generation

* Add changeset

* Publish message on failure as well to release waiting process

* Update api/src/utils/get-schema.ts

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Update api/src/utils/get-schema.ts

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Unsubscribe on callback

* Optimize db init

* Add timeout and infinite loop protection

* Reduce max attempts

* Clear timeout on callback

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-04-03 14:51:22 -04:00
Pascal Jufer
1120568b45 Fix migration for module bundle extensions (#21857)
* Fix migration/settings for module bundle extensions

* Revert settings lookup

* Add changeset
2024-04-01 14:34:48 +02:00
Pascal Jufer
b4dc3bcd28 Fix randomUUID import in Webhooks deprecation migration (#22029) 2024-03-31 23:27:32 -04:00
Brainslug
59bb45bd38 Remove or re-install missing extensions (#21969)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-03-30 15:47:42 +01:00
Rijk van Zanten
43cf048d21 Update migrations to fix initialization on MS SQL and CockroachDB (#22019)
* Alter migration to succeed in Crdb 23

* Add changeset
2024-03-29 15:07:45 -04:00
Daniel Biegler
7f14e387ed Fix 15553 remove webhooks (1/2) (#21808)
* add deprecation notice to webhooks

I dont like how the "Flows"-Link is not a real router-link so it reloads the page but we could sort this out later in the PR

* add feature flag store

* make links reactive

* add depreaction to webhook item route too

* better progressive deprecation, update translation

* fix batch deletion of webhooks

* remove batch editing (it doesnt work), remove irrelevant now code

* add changeset

* add up migration

* improve upon migration

* disallow creation of new webhooks

* remove create action

* remove isvisible field

no longer used

* remove feature flags store

no longer needed

* rm featureflag store remnants

* hide webhook fields from migration

* update comment

* change width of notice

* rm button for creating webhooks

* add changeset

* Update api/src/database/migrations/20240311A-deprecate-webhooks.ts

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Update api/src/controllers/webhooks.ts

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* prettier

* add changeset for system data

* update changesets

* remove top padding

* update deprecation notice

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* remove ability to patch webhooks and relevant snippets from its item route

* rm bottom padding since v-form has its own

* remove Flows created by the up-migration

* only add run-script if needed

* filter whitespace values out

* deprecate webhooks on service level

* fix tests for webhooksservice

* reuse deprecation error

* add deprecation and update test for updateBatch

* update changeset

* remove webhook initialization and handling

* remove check for POST

people could use raw values for PATCH, SEARCH, etc.

* Filter empty collections in migration

* skip run script for GET requests

---------

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Brainslug <tim@brainslug.nl>
2024-03-28 17:10:06 +01:00
Gerard Lamusse
8336b4d868 Add onUpdate constraint to relations service (#21190)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-03-25 13:02:49 +00:00
Connor Winston
7259938c47 Truncate User-Agent to 1024 Chars and Migrate DB Column (#21687)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-03-25 12:58:02 +00:00
Brainslug
5650cdd33c Hiding non session SSO providers from the app (#21874) 2024-03-25 11:55:53 +01:00
José Varela
114b249d00 Notify other instances when extension is updated (#21908)
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-03-25 11:15:41 +01:00
Brainslug
90476ccf17 WebSocket Session Authentication (#21837)
* session auth experiments

* simplified cookie parsing

* forgot the package json

* Create brave-walls-scream.md

* prettier
2024-03-19 11:37:23 -04:00
kaifulee
2204a41383 chore: remove repetitive words (#21835)
Signed-off-by: kaifulee <cuishuang@outlook.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-03-14 11:06:51 +00:00
ian
233054440f Optimise multi-field update operations (#21818) 2024-03-13 18:44:58 +01:00
daedalus
7bea23b7f5 Add the ability to configure the error, bug and feature URLs (#21174)
* add report url fields

* update field template to be agnostic

* add changeset

* various fixes

* rename handler to load path level

* add translations

* updated docs

* fix tests

* add placeholder support for system-display-template

* refactor project to report and move to their own settings section

* example urls should be more concrete

Co-Authored-By: Pascal Jufer <5363448+paescuj@users.noreply.github.com>

* move hardcoded default report urls to constants

Co-Authored-By: Pascal Jufer <5363448+paescuj@users.noreply.github.com>

* Make nav reactive, so URL changes are immediate

* change order of report urls

* change icon to feedback

* move composable to top level

* remove ref, use from prop

* Update .changeset/tender-timers-develop.md

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* rm select_a_collection_or_tree_fields translation key

---------

Co-authored-by: Pascal Jufer <5363448+paescuj@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
2024-03-13 15:04:25 +01:00
Rijk van Zanten
6ea2891b21 Add scope in gql schema cache key (#21821)
* Add scope in gql schema cache key

* Add changeset
2024-03-12 13:29:50 -04:00
Rijk van Zanten
f0e910ee58 Add LRU cache to GraphQLSchema generation (#21783)
* Install mnemonist

* Add LRU cache for graphql schema

* Add changeset

* Update api/src/services/graphql/index.ts

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Add env var to /env and docs

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-03-11 17:23:34 -04:00