1041 Commits

Author SHA1 Message Date
rijkvanzanten
c301cfbc82 v9.25.1 2023-04-13 16:32:58 -04:00
rijkvanzanten
4f540b03d0 v9.25.0 2023-04-13 13:32:44 -04:00
jbmolle
5f92a04e45 fix: Use Cloudinary explicit endpoint (#18166)
* update: Use explicit endpoint instead of Cloudinary Admin API to avoid
reaching rate limit of 500 requests / hour

* update: Sign the Contributor License Agreement

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2023-04-13 13:18:39 -04:00
Nitwel
24487711bb Load relational data from api on button-links (#17959)
* load relational data from api on button-links

* make const shared

* lint

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
2023-04-12 17:15:49 -04:00
rijkvanzanten
8f667a3216 Set S3 default protocol to https to match behavior for 9.21-
Fixes #17286, closes #17372
2023-04-12 16:57:25 -04:00
Julius Berger
b207af25ea Add support for AVIF image format (#17303)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2023-04-11 21:57:38 +00:00
Pascal Jufer
15b91dee34 Blackbox tests restructuring (#18122)
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2023-04-11 18:28:37 +02:00
ian
b9087c1aca Move activity Action enum from types to constants package (#18126)
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
2023-04-11 08:30:48 +00:00
Pascal Jufer
1ba69ba851 Add missing typescript devDep to composables (#18127) 2023-04-11 08:29:34 +00:00
Nitwel
9cbfa88e81 Fix default values (#15710)
* Fix default values

* run linter

* use assign

* fix working with permissions

* run linter

* fix set related item to empty when having junction

* check for empty

* Update app/src/views/private/components/drawer-item.vue

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
2023-04-10 21:23:49 +00:00
Azri Kahar
dd3202ce38 Fix diff validation and apply (#18048)
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: ian <licitdev@gmail.com>
2023-04-10 17:53:51 +02:00
Nitwel
88a401ca20 Make headers sticky again (#17850)
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-04-07 12:29:41 +02:00
Pascal Jufer
99e6c7f8fd Clean-up configs (#18093)
* Consolidate gitignore config

* Remove editorconfig in subfolders

* Remove obsolete jest config
2023-04-07 17:29:28 +08:00
Rijk van Zanten
2983e61870 The Great TypeScript Modernization Program Season 3 Episode 6: The Big One (#18014)
* Step 1

* Step 2

* False sense of confidence

* Couple more before dinner

* Update schema package

* Update format-title

* Upgrade specs file

* Close

* Replace ts-node-dev with tsx, and various others

* Replace lodash with lodash-es

* Add lodash-es types

* Update knex import

* More fun is had

* FSE

* Consolidate repos

* Various tweaks and fixes

* Fix specs

* Remove dependency on knex-schema-inspector

* Fix wrong imports of inspector

* Move shared exceptions to new package

* Move constants to separate module

* Move types to new types package

* Use directus/types

* I believe this is no longer needed

* [WIP] Start moving utils to esm

* ESMify Shared

* Move shared utils to  @directus/utils

* Use @directus/utils instead of @directus/shared/utils

* It runs!

* Use correct schemaoverview type

* Fix imports

* Fix the thing

* Start on new update-checker lib

* Use new update-check package

* Swap out directus/shared in app

* Pushing through the last bits now

* Dangerously make extensions SDK ESM

* Use @directus/types in tests

* Copy util function to test

* Fix linter config

* Add missing import

* Hot takes

* Fix build

* Curse these default exports

* No tests in constants

* Add tests

* Remove tests from types

* Add tests for exceptions

* Fix test

* Fix app tests

* Fix import in test

* Fix various tests

* Fix specs export

* Some more tests

* Remove broken integration tests

These were broken beyond repair.. They were also written before we really knew what we we're doing with tests, so I think it's better to say goodbye and start over with these

* Regenerate lockfile

* Fix imports from merge

* I create my own problems

* Make sharp play nice

* Add vitest config

* Install missing blackbox dep

* Consts shouldn't be in types

tsk tsk tsk tsk

* Fix type/const usage in extensions-sdk

* cursed.default

* Reduce circular deps

* Fix circular dep in items service

* vvv

* Trigger testing for all vendors

* Add workaround for rollup

* Prepend the file protocol for the ESM loader to be compatible with Windows
"WARN: Only URLs with a scheme in: file and data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'"

* Fix postgres

* Schema package updates

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

* Resolve cjs/mjs extensions

* Clean-up eslint config

* fixed extension concatination

* using string interpolation for consistency

* Revert MySQL optimisation

* Revert testing for all vendors

* Replace tsx with esbuild-kit/esm-loader

Is a bit faster and we can rely on the built-in `watch` and `inspect`
functionalities of Node.js

Note: The possibility to watch other files (.env in our case) might be
added in the future, see https://github.com/nodejs/node/issues/45467

* Use exact version for esbuild-kit/esm-loader

* Fix import

---------

Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-04-04 17:41:56 -04:00
rijkvanzanten
517e7cb55c v9.24.0 2023-04-04 17:13:31 -04:00
Nitwel
ac36125439 export types in shared (#17954) 2023-03-27 09:55:37 -04:00
rijkvanzanten
6b9982eae2 v9.23.4 2023-03-24 11:34:21 -04:00
rijkvanzanten
21a0b910ac v9.23.3 2023-03-23 14:11:49 -04:00
rijkvanzanten
74508c70b8 v9.23.2 2023-03-23 13:35:11 -04:00
Rijk van Zanten
9526b4e5b2 Improve S3 asset read performance (#17835)
* Create new s3 client for each read

* Temp disable ts while debugging

* Add concurrency test

* Add minio to other tests

* Reduce unavailable count

* Trigger blackbox tests whenever packages are updated

* Prevent minio-mc from exiting

* Decrease requests and increase test timeout

* Spam more requests over longer period

* Increase request timeout

* Run autocannon directly with larger image

* Fix tests

* Lock version

* My favorite file

---------

Co-authored-by: ian <licitdev@gmail.com>
2023-03-20 18:16:30 -04:00
Nitwel
a9a5e2a26d Fix options being null (#17847) 2023-03-20 13:54:27 +01:00
Pascal Jufer
0293c88aa3 Patch Tuesday 🐸 (#17811)
* Update root deps

* Update `directus` deps

* Update `@directus/app` deps

* Update usage of knex-mock-client

* Update `@directus/shared` deps

* Update `extensions-sdk` deps

* Update `@directus/specs` deps

* Update `@directus/storage` deps

* Update `@directus/storage-driver-azure` deps

* Update `@directus/storage-driver-cloudinary` deps

* Update `@directus/storage-driver-gcs` deps

* Update `@directus/storage-driver-local` deps

* Update `@directus/storage-driver-s3` deps

* Update `@directus/utils` deps

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
2023-03-17 15:15:03 +08:00
Connor
34acd97a01 Fix Flow Error Handling (#17519)
* Validate Operation Result is Serializable

* Enumerate Flow Error Object so it gets logged

* Add ability for error to be a JSON string and parse it

* Make the request operation throw useful error

* Revert DockerCompose in "Validate Operation Result is Serializable"

This partially reverts commit c7e76716a5.

* Fix Typescript Errors

* Move isValidJSON to Shared Util and add Tests

* return the error message excluding stack trace

* allow for non-exception errors

* Apply suggestions from code review

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

* Clean-up after wrong suggestion

* Clean-up processing of error data

* Use content-type json if body is object

* Reformat error data check

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-03-15 08:29:55 +00:00
rijkvanzanten
e468f58eec v9.23.1 2023-03-01 09:51:57 -05:00
rijkvanzanten
47b9824954 v9.23.0 2023-02-28 12:51:36 -05:00
Nitwel
21bb26988e Improve preview of relational columns in tabular layout (#15269)
* improve preview of relational tabular columns

* update pnpm-lock

* Use the improved get method (#15548)

* Update app/src/layouts/tabular/index.ts

---------

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
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>
2023-02-24 22:01:57 +08:00
Roger Stringer
c208286727 downgrade @rollup/plugin-commonjs to 23.0.4 (#17539)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-02-16 15:54:24 +01:00
Pascal Jufer
37faf3bd5d Patch Tuesday 🐸 (#17530)
* Update root deps

* Reformat files with new prettier version

* Update `directus` deps

* Update `@directus/app` deps

* Update `@directus/shared` deps

* Update components snapshots after updates

prop order has changed

* Update `extensions-sdk` deps

* pin version of zod in shared

* Update `@directus/storage` deps

* Update `@directus/storage-driver-azure` deps

* Update `storage-driver-cloudinary` deps

* Update `@directus/storage-driver-cloudinary` deps

* Update `@directus/storage-driver-local` deps

* Update `@directus/storage-driver-s3` deps

* Update `@directus/utils` deps

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2023-02-16 17:47:39 +08:00
DracoBlue
f39b029b5a Removed (old) MIT-License information (#17488)
It is GPL3
2023-02-10 16:54:04 -05:00
Pascal Jufer
26318dbe62 Patch Tuesday 🐸 (#17353) 2023-01-31 23:15:49 -05:00
Azri Kahar
89fcb19a16 Expose schema endpoints (#14713)
* Expose schema endpoints

* respond with 204

* fix payload for export flag

* allow export as YAML

* use SchemaService

* move getStringFromStream to utils

* clearer exceptions with logs

* check empty request body

* specs

* add bypassCache flag and remove flushCaches calls

* Identify integer typed fields in Oracle

* Fix uuid foreign keys type for Oracle

* Detect autoincrement for CockroachDB

* Bypass cache for fields and relations services

* Add same DB tests

* Test if working for all vendors

* Add schema snapshot testing into sequential flow

* Fix schema re-apply attempts when it's a different database vendor (#14816)

* prevent diffing on certain properties

* fix apply-snapshot test

* prevent updates to autoincrement fields' schema

* sanitize relations

* remove `colleciton.schema.sql` parsing in test

It is now being sanitized by `sanitizeCollection()` function in get-snapshot-diff.ts

* Change concurrency group to not cancel test running on main

* remove multipart for apply & add hash checking

* check incoming version & add force query param

* refine error message & stub for nested hash

* add `vendor` top-level property

as an additional safety net for cross db vendor applies

* sanitize generated schema snapshots

* snapshot joi validation

* diff joi validation

* minor cleanup

* extract applyDiff & use deep-diff applyChange

* use applyDiff in schema service

* Mark vendor as optional

* Update tests to apply diffs

* move force flag check into service

* Patch mssql vendor typo

* Set relation no action in cyclic relations

* Update mysql timestamp default value

* Oracle cannot define no action

* Update oracle timestamp type default values

* add hash checking for outdated diffs

* fix diff service & endpoint

* Add hashes when returning after

* Fix self referencing relations for Oracle

* Add temp fix for CURRENT_TIMESTAMP defaults in Oracle

* clean up driver and database client types

* only require diff hash if not kind N

* update hash comparison logic for create/delete

* Set no action constraint for self referencing M2M in MSSQL

* Add basic hash check tests

* omit default value when hashing auto increments

Specifically for CockroachDB with differing sequences

* add vendor check

* update specs

* Validate vendors with type definition

* Spread the vendors input array

* re-add Export component

* re-add js-yaml to root

* Propagate mutation options for schema apply

* Verify that snapshots differ and clear cache before hash tests

* Fix unit test

* Revert temp fix for CURRENT_TIMESTAMP defaults in Oracle

* Define and reuse type for export format

* Define and reuse list of database clients

* change `were` to `was`

* change `where` to `were`

* add some empty lines for readability

* tweak exception message

* fix test

* use object-hash

* use boolean to check whether file is included

* simplify request content type check

* throw error when multiple files were uploaded

* use nullish coalesce instead of short circuit

* Update api/src/services/schema.ts

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

* Remove unnecessary `Omit` on `SnapshotWithHash` type

* Revert "Remove unnecessary `Omit` on `SnapshotWithHash` type"

This reverts commit d22ac771ec.

* check empty snapshot earlier

* use allow-list logic via pick instead of omit

* Update api/src/services/schema.ts

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

* Move to own /schema endpoint controller

* Fix refs to schema endpoint

* move streamToString to utils package

* move get-versioned-hash and add test

* extract kind into an enum

* Fix mysql5 timestamp value

* Fix test collection existing on rerun

* resolve TODO comment in blackbox test

* Drop deep level hashes in diff

These hashes are used only for more accurate error reporting
but are otherwise superfluous, since changes are already
detected by the top level hash.
Therefore we remove them in favor of a simpler diff format and
implementation.

* Revert schema "fix" for createItem, add comment

* Strict diff schema validation

* Revert CrDB auto-increment detection patch in 816c998

* Clear systemCache to expose newly added fields

* Use DiffKind constants

* Extract diff & snapshot validation into own tested utils

* Apply suggestions from @azrikahar

* Update knex-schema-inspector to 3.0.1

Includes the fix for CrDB auto-increment detection (knex/knex-schema-inspector#135)

* Update knex-schema-inspector in packages

* Update lock file

* add test for schema service

* add test for export service

* add relevant tests to modified util functions

* fix csv test to account for os end of line

* fix files controller test

* dedupe test data for schema service

* Align schema specs with docs

* Update api/src/controllers/schema.ts

* Revert testing for all vendors

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-01-31 17:36:49 +00:00
Pascal Jufer
c38812d0b0 Make sure gcs storage tests use unique file paths (#17282) 2023-01-24 07:35:32 -05:00
Azri Kahar
6c108a9582 update knex version (#17240) 2023-01-19 10:16:56 -05:00
Nitwel
6c2df2dca3 passthrough all package.json data (#17179) 2023-01-17 14:30:17 +01:00
ian
25e3c16b3f Use countDistinct for item and total counts (#17184)
* Use countDistinct for item and total counts

* Propagate changes to export sidebar detail

* Try to trigger GH actions

* fix use-collection mock

* cover countDistinct in use-items test

* simplify primaryKeyField usage

* Revert typing

* Update mock values for differentiation

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
2023-01-17 16:18:34 +08:00
rijkvanzanten
5e27e8c928 v9.22.4 2023-01-11 17:47:39 -05:00
rijkvanzanten
065c77dc1d v9.22.4 2023-01-11 17:05:16 -05:00
Rijk van Zanten
99d0c17dcf Make sure azure tests use unique file paths (#17104) 2023-01-11 16:52:43 -05:00
Nitwel
dc358ea5f6 Use updated constants from shared (#17098) 2023-01-11 21:35:18 +01:00
rijkvanzanten
9f708d67bc v9.22.3 2023-01-11 12:16:11 -05:00
rijkvanzanten
b9a5005859 v9.22.2 2023-01-11 11:27:56 -05:00
Rijk van Zanten
874dda8078 Make forcePathStyle configurable (#17081)
* Make forcePathStyle configurable

Defaulting to true when an endpoint was provided caused issues.

* Fix test setup
2023-01-10 17:40:48 -05:00
ian
bcbbd81257 Cast numeric filter values as number for _eq and _neq operators (#16657)
* Cast numeric filter values as number for _eq and _neq operators

* Add check for empty string

* Add check for booleans
2023-01-06 16:06:39 -05:00
José Varela
d928275447 Storage / S3: Only pass key and secret if defined (#16942)
* Only pass key and secret if defined
Otherwise, use machine config

* Make conditions more readable

* Opionated formatting tweaks

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2023-01-06 12:59:26 -05:00
Rijk van Zanten
b0350d3ce0 Don't double-root file ref (#17039)
Fixes #17022, fixes ENG-392
2023-01-06 12:03:49 -05:00
Nitwel
2ac022d286 Extension Improvements (#16822)
* add link command and small improvements

* put local bundles into own folder on link

* get rid of packs and add bundle support for local extensions

* make bundle type extensions work locally and remove traces of pack

* fix hot reloading of bundles

* fix app.js not refreshing

* fixed linter errors

* add endpoint to install extensions

* update package.json validation and support top level extensions

* update endpoints

* added some URL escapes and ran linter

* remove installation part

* readd endpoint

* update dependencies

* fix types and validation in extension-sdk

* run linter

* fix linter

* add defaults to manifest

* Added missing constant export

* ensure all the extension folders

* ignore unneeded vite error

* update linking process

* run parser separate

* add await

* fixed linter errors

Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
2023-01-04 15:20:33 +01:00
Brainslug
dc1a218c58 export extension contexts (#16667) 2022-12-23 15:26:32 -05:00
Azri Kahar
6bf5de1f9d Re-use getEndpoint utility function (#16700)
* re-use getEndpoint util

* rename endpoint var to route in calendar layout

* move loading below early return statements
2022-12-23 11:50:21 -05:00
Rijk van Zanten
40f94e6907 Patch Tuesday 🐸 (#16875)
* Update versions

* Fix usage of fullcalendar

* Patch Tuesday Additions 🐸🐸 (#16878)

* Interop default in vitest

* Update exif-reader

* remove deprecated @types/pino

* remove old "grant" package type shim

* Small clean-up of dependencies (#16576)

* Remove outdated type deps & update concurrently

* fix lock file

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

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
2022-12-23 10:45:15 -05:00
Azri Kahar
fdeddf0118 Fix use-items loading state when an existing request gets canceled (#16881)
* prevent canceled requests from clearing loadingTimeout

* rename CancelTokenSource variable

* don't set loading to false if there's still loadingTimeout

* updated request cancellation to use the abort controller

* azri's getItemCount fix

* prevent cancelled requests from throwing errors

* prevent count request from firing twice

* Remove fetchOnInit option

Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-12-22 21:31:43 +00:00