Commit Graph

514 Commits

Author SHA1 Message Date
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
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
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
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
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
7c08452305 Fix ambiguous column SQL error for M2A relations (#22262) 2024-04-19 23:05:48 +02: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
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
Brainslug
5650cdd33c Hiding non session SSO providers from the app (#21874) 2024-03-25 11:55:53 +01: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
Pascal Jufer
ce7ce211f8 Remove over-engineered sanitizeError function (#21750) 2024-03-08 21:42:28 +01:00
Azri Kahar
a9b628baa6 Deep merge relational fields in content versions (#21386)
* deep merge content version saves

* update content version graphql

* moved version merging to its own middleware

* added query param to request the unmodified version

* make sure the App uses the raw version format

* prettier

* removed unused middleware

* initial recursive version merging

* use loop instead of spreading

* cleanup

* accept boolean strings as versionRaw query value

* added middleware sanity check

* initial mergeVersionsRaw tests

* initial mergeVersionsRaw tests

* started merge tests

* initial m2o tests

* initial tests

* fixed logic for initial tests

* prettier

* more tests

* fixed brought up by tests

* first level relational tests

* testing nested relations

* fixed recursiveness

* more prettier

* namin consistency

* the prettiest

* Create chilled-icons-provide.md

* Add breaking change note

* updated graphql for version merging

* prettier

* added new sdk query param

* implemented judds feedback

* Enable singleton

* Slightly reformat/reword breaking change

Thanks @w0kyj!

* Clarify comment about primitive type substitution

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

* replaced for in loops

* applied isObject check

* prettier

* Short issue link

* Update changeset

* added sso guide warning

* pretttier

* update sso guide instead of warning

* prettier

* reverted SSO guide from other PR, nothing to see here

* Added cloneDeep to be safe

* removed snake case

---------

Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2024-03-04 11:57:51 -05:00
Brainslug
5477d7d61b Fix URL Redirection in OAuth2/OpenID/SAML (#21238)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
2024-03-04 04:43:48 +00:00
Brainslug
77d73398f1 Session Based Authentication (#21239)
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-03-04 01:59:45 +01:00
Pascal Jufer
79c2701a74 Drop uuid dependency in favor of Node.js built-in (#21625) 2024-02-29 05:07:20 +01:00
Riley Park
721c833b36 (#21573) Be more relaxed with UUID validation (#21613)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-02-29 03:34:13 +00:00
Pascal Jufer
7f4d431971 Fix permission merge (#21542) 2024-02-24 00:34:40 +01:00
Brainslug
2c4883ae42 Filter system collections based on the system property (#21197)
Co-authored-by: Jan Arends <jan.arends@mailbox.org>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-02-14 14:40:57 +01:00
Daniel Biegler
062c8f23f6 Add focal point support for images (#20768)
* add visual feedback for invalid value

* add focal point MVP

* Revert "add visual feedback for invalid value"

This reverts commit 1df1868342.

Accidently committed some local testing stuff. Pls disregard! :)

* fix wrong cropping

* fix text for new cropping, import correct type

* fix saving

* place initial focal point to saved value or center, display different cancel text

* split up tooltips

* honor rotations & flips when saving focal point

* apply custom cropper styles for focal mode

* Create loud-crews-fix.md

* add test and only crop when covering with fixed dimensions to preserve default behaviour

* linter gods pls forgive me

* replace json field with two int fields

* add focal point to sdk

* fix transformation for the two new db columns

* update test for new columns, add new tests

* wip: saving now differentiates between only img data and focal point and only enable saving if there are changes

but this is not optimal. would be better to check beforehand if we can collapse
to requests to one. Now its bad because
one request might succeed and the other fails.

* refactor image editor change persistence

now we save it in one request!

* Update loud-crews-fix.md

* add `focal_point_x` and `focal_point_y` to possible asset transformations

* fix assigning localdragmode upon cropper init

* reuse fetched fields in type

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

* update file type

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

* update changeset

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

* improve type for `ASSET_TRANSFORM_QUERY_KEYS`

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

* Apply suggestions from code review

Trying out the batch change feature from github for the first time. Lets see.

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

* rename `persistChanges` to `saveImage`

* Add docs for focal points (#20959)

* Add user guide

* Added to API Reference

* Prettier

* Spellchecker

* default null

Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>

* from -> around

Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>

* from -> around

---------

Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>

* add changeset for docs

* run prettier lets goooooooo

* move & show focal point fields and add divider

---------

Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Kevin Lewis <kvn@lws.io>
2024-01-22 18:35:06 +01:00
daedalus
b39964eda2 Do not queue any extension reloads if a reload job is pending (#20849)
Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-01-17 11:59:46 +00:00
Pascal Jufer
3610a8dbc3 Maintain snapshot order (#21076) 2024-01-14 15:10:33 +01:00
ian
4a3a65cfde Add support for IP ranges and CIDR notations (#20971)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-01-09 00:44:09 +01:00
Rijk van Zanten
2c18b543d2 Move environment variable handling to new @directus/env package (#20985)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2024-01-07 04:35:58 +01:00
Mahendra Kumar
40b25bc81b fix(api) treat bigInt as string all across the system (#20888)
* fix(api) treat bigInt as string all across the system

* add changeset

* use bigint notations to declare last constant

* Update .changeset/small-poems-deny.md

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

* moved constants to root context

---------

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-01-04 13:14:10 +01:00
Rijk van Zanten
2b9056cc80 Refactor default import logger with useLogger (#20872)
* useLogger

* Rework to useLogger and no globals

* Only export useLogger / createLogger

* Temp remove logger tests

* Refactor logger

* Refactor logger

* Refactor logger

* Refactor logger use

* Fix tests

* Fix logger usage in bootstrap

* Run formatter

* Remove logger tests

Feels drastic, but I'm about to rewrite them into @directus/logger :)

* Fix log operation test
2023-12-26 11:38:38 -05:00
Rijk van Zanten
2c4be084c8 Replace default imports with useEnv (#20863)
* Use useEnv instead of default import

* Don't export default

* Update tests to mock useEnv

* Fix env usages

* Fix test issues

* replace setEnv use

* Fix various tests

* Fix more tests

* Fix more tests

* Fix get-cache-headers tests

* Fix sanitize-query test

* Fix logger tests

* Fix heartbeat tests

* Remove borked integration test

* Fix more tests

* Finish fixing tests
2023-12-24 11:56:06 -05:00
Connor Winston
89e7333a2d Change Schema Snapshot Sort Ordering of Fields/Relations (#20704)
Co-authored-by: Connor <12714889+ConnorSimply@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-12-22 00:03:30 +01:00
Rijk van Zanten
c222511f1f Update telemetry (#20825)
* Setup shared redis abstraction

* Install directus/memory

* Add mini useEnv util for test mocking purposes

* Export missing class from directus/memory

* Update readme to include kv

* Uninstall memory

* Setup telemetry lib

* Reduce concurrency

* Finalize reporting

* Add tests for send-report

* Add tests for init

* Add tests for tracker

* Add tests for get-item-count

* Add test for wait time

* Add test for get-user-count

* Add test for get-user-item-count

* Fix type issue

* Throw error on non-ok fetch

* Init telemetry on server startup

* Tweak submission logic

* Fix tests, submit version

* Update config-options reference

* Cool kids don't use + in large numbers

* Add changesets

* Update docs/self-hosted/config-options.md

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

* Use vi stubGlobal

* Update api/src/env.ts

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

* Unstub as well

* Mock telemetry start in app test

* Update api/src/telemetry/types/report.ts

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>

* Fix default value in env

* Use toBoolean for env var casting

* Don't rely on knex as

Apparently it doesn't work reliably with count()

* Update api/src/telemetry/lib/init-telemetry.ts

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>

* Use getDatabaseClient for consistent clients

* Rename ingress->url

* Send my apologies to the formatting bot

* Fix version

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
2023-12-21 14:08:42 -05:00
Rijk van Zanten
545d392e93 Deprecate utils/package.js in favor of directus/version (#20840)
* Deprecate utils/package.js in favor of directus/version

* Add changeset

* Drop version console log

* Make info reactive

* Fix import order

* Update directus/version.js

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

* Fix tests

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-12-21 13:53:22 -05:00
Brainslug
c3211fcab6 added version to the API 2023-12-20 17:57:43 -05:00
Pascal Jufer
98532788d5 Selective Patch Tuesday 🐸 (#20796) 2023-12-20 00:26:15 +01:00
Wasim Thoufiq
12643385db Fix BigInt primary key routing (#20744)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-12-14 17:13:47 +00:00
Pascal Jufer
5e72ea1b08 Patch Tuesday 🐸 (#20714) 2023-12-12 04:36:50 +01:00
Pascal Jufer
81c9156508 Update Vitest to v1 (#20694) 2023-12-10 19:49:45 +01:00
Pascal Jufer
a5215d674b Update TypeScript to 5.3.2 (#20571) 2023-11-29 13:54:56 +01:00
Azri Kahar
2ed5ac0871 Fix full permissions & minimal app permissions (#20505)
* revert #8391

* revert #20347

* revert #20347

* undo revert of validation and presets null logic

* add changeset
2023-11-22 14:56:29 -05:00
Pascal Jufer
ba7fac402e Update Prettier v3.1.0 (#20481) 2023-11-20 16:23:22 +01:00
Rijk van Zanten
7df84c0a89 Add support for EXTENSIONS_LOCATION setting (#20207)
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-11-16 13:29:03 +00:00
Pascal Jufer
b9532cabe3 App TS fixes (#20421) 2023-11-14 16:42:35 +01:00
Pascal Jufer
976ebf1330 Refactor env mocking (#20384) 2023-11-10 16:32:35 +01:00