Commit Graph

817 Commits

Author SHA1 Message Date
Azri Kahar
a706292c55 Enable no-constant-binary-expression eslint rule (#20812)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-12-20 13:24:02 +00:00
Pascal Jufer
98532788d5 Selective Patch Tuesday 🐸 (#20796) 2023-12-20 00:26:15 +01:00
Pascal Jufer
81c9156508 Update Vitest to v1 (#20694) 2023-12-10 19:49:45 +01:00
Brainslug
6671f1c603 GraphQL Content Versions (#20499)
* WIP alternative gql approach for versions

* incorrect schema type

* finally got something working

* ran prettier

* prettier

* prettier

* limited _by_version to items scope

* removed debug comments and logs

* fixed singleton versions

* updated docs

* Added breaking change notice

* undid unneed change

* prettier

* Create six-trees-cry.md

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

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

---------

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
2023-12-07 21:35:27 +08:00
Brainslug
abf0cba75d Fixed GraphQL SDL Error (#20535)
* Fixed missing accountability

* Add changeset

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2023-11-27 10:23:05 -05:00
Brainslug
e05d9240de GQL directus_permissions ID nullable (#20511) 2023-11-23 14:18:19 +01:00
Pascal Jufer
ba7fac402e Update Prettier v3.1.0 (#20481) 2023-11-20 16:23:22 +01:00
Pascal Jufer
c6f47f90b2 More accurate OAS based on authenticated user (#20462) 2023-11-17 17:24:18 +01:00
Pascal Jufer
6953ad46ad Fallback to hostname for OAS URL if no PUBLIC_URL specified (#20460)
* Fallback to hostname for OAS URL if no PUBLIC_URL specified

* Add changeset

* Clearer variable name
2023-11-17 16:49:38 +01:00
Brainslug
90422c30d8 OAS based on permissions (#20386) 2023-11-17 00:15:40 +01:00
Alex Gaillard
3b8d8521bd Update Email Templates to new White Label Style (#20390)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-11-16 14:56:36 +00: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
Connor
5300443b46 Fix File Limit Erroring Logic and DB Merge Logic (#20392)
* Add Extended Busboy Type

* Change Types and Remove Limit Erroring from Controller

* Change File Upload Logic

* Fix Typescript HELL

* Create perfect-oranges-hear.md

* Update api/src/services/files.ts

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

* Update api/src/services/files.ts

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

* Update api/src/services/files.ts

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

* Change copy to move

* Fix TS

* Fix naming of BusboyFileStream type and Erroring

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
2023-11-13 17:59:42 -05:00
Pascal Jufer
976ebf1330 Refactor env mocking (#20384) 2023-11-10 16:32:35 +01:00
Brainslug
fd6eff4a5a Show package version if available (#20303)
* Show package version if available

* Create nice-bottles-flow.md

* Colorize state chip

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-11-08 15:55:43 -05:00
Brainslug
9a1ba0982c Delete files based on "filename_disk" (#20341)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-11-08 15:04:15 +01:00
Rijk van Zanten
40e7046ba8 Use server store for public theme information (#20324)
* from rainbow to lava lamp

* svg paths to divs for performance

* Clean up styles

* Public view themable options

* Make speed themable

* Use server store info for public theming

* Add changeset

---------

Co-authored-by: Ben Haynes <ben@rngr.org>
2023-11-03 15:21:33 -04:00
Brainslug
a09a45eaf7 Unable to import files with predefined ids (#20301)
* Add check for existing file

* Create five-balloons-drum.md
2023-11-02 13:53:40 +01:00
Rijk van Zanten
9afbc6efaf Handle extension names in npm org scopes (#20209)
* Handle extension names in npm org scopes

Fixes #20142

* Add changeset
2023-10-26 18:41:30 -04:00
Azri Kahar
c80f8ee247 Fix caching for Content Versioning (#20153) 2023-10-26 11:25:09 +02:00
Pascal Jufer
42d4f2d56a Merge next into main (#20107)
* Content Versioning (#19463)

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

* Update clean-berries-do.md

* Prerelease mode

* v10.7.0-beta.0

* Ignore format of auto-generated pre.json file

* Update naming conventions for Content Versioning (#19678)

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

* Content versioning tweaks (#19700)

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

* Add additional system fields to Content Versioning & include preview in promote drawer (#19752)

* Use key instead of name for Content Versioning (#19813)

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

* Reorder component tags

* Prompt user to keep or delete the version before promoting (#19829)

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

* Fix multiple constraints to users system table from versions system table for MSSQL (#19912)

* fix multiple constraints from versions to users

* fix users unit test

* Add Sorting by Aggregated Queries (#19568)

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>

* Update API References for Content Versioning (#19911)

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

* Add version argument in GraphQL (#19910)

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

* Merge branch 'main' into next (#19974)

* Show installed extensions in settings pane (#19964)

* Setup boilerplate for extensions page

* Allow reading all extensions from the root endpoint

* Add basic sidebar info detail

* Render list of extensions

* Move extensions manager to folder

* Move stuff related to extensions to @directus/extensions

* Import extensions utils/types/etc from ext. package

* Resolve last imports

* Add no-extensions warning

* Start on extensions grouped

* Remove string type

* Improve naming conventions

* Couple more optimizations

* Add more structure

* Add comments

we finally understand how this works! hehe

* Remove constructor in favor of static set

* Add more comments

* Don't filter in get-extensions

TBD if this will break things horrendously

* Sprinkle on better names / comments

* Render by section, nested bundled extensions

* Fix typo

* Live-saving tip from the formatter

* Don't know where this came frmo

* Add a changeset

* 📈 Insights QoL Part 1 (#19467)

* Start adding Create Default Modal

* Add Metric List

* Number Formatter Utility

* Start on Label Formatting Options and Resizing

* Update Metric List to use New Number Formatter

* fix auto fit and styling

* fix typings for number formatter and error catching

* add conditional formatting to metric list

* Add Number Formatting to Metrics and Size Formats

* Add Option to Hide Percentage and Fix Sizing of Meter

* Add manual sizing for labels

* Add translation strings

* Add comments to insights

* Fix color errors and add icon

* update translations

* Refine Linechart

* Revert "Start adding Create Default Modal"

This reverts commit 184dd0bb73.

* Run prettier

* Remove Console Logging

* Fix Typings

* Create itchy-berries-rule.md

* Format file

* Fix Metric List for Aggre Group PR

* Remove Empty Class

* Run formatter

* Fix linter errors

* Fix import

* Update app/src/panels/label/panel-label.vue

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

* Update app/src/panels/label/panel-label.vue

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

* Update app/src/panels/line-chart/panel-line-chart.vue

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

* Remove commented css

* Remove unneeded logic

* Fix auto resizing and text alignment

* Remove Expect Error Typechecking

* Add Migration

* Fix Prettier

* Lint auto-fixes

* Fix Resizing CSS and JS

* Add Metric List Translation

* Optimize migration

* Format files

* Fix metric-list translations

* Fix type issue in metric-list/index.ts

> Default export of the module has or is using private name 'Aggregate'.ts(4082)
> Default export of the module has or is using private name 'Group'.ts(4082)

* Remove Unit Translations

* De-duplicate migration

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>

* SDK support for Content Versioning (#20000)

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>

* Add basic support for theming! (#20026)

* WIP start integrating theming

* Fix name

* Fix typo

* Move theme definition to json files

* Generate json from vite plugin

* Move default themes to root

* Render theme-provider in app

* Format variable names

* Move build script to separate npm run scrip
t

* Render correct var names in provider

* Render dark mode

* Update dependencies

* Setup styling rules for module bar

* Remove variables

* Don't rely on scoped var in editor

* Move light styles to theme

* Use theme vars in module bar

* Render theme styles in head

* Render alongside rather than wrapped

* Themable nav

* Allow using local devtools

* Do magic

* Fix auto theme fallback

* Update vue-i18n

* Use proper unicode symbol for multiplication

* Reorganize settings sidebar

* Use global translations for appearance options

* Add fields to migration

* Add theming group fields to system data

* Add strings to en-us for theming

* Add theming route that only renders theme group

* Add custom css to theming group

* Add system-theme interface

* Move default themes above custom css

* Move theme to global translations

* Use an array instead of object structure

* Add defaults for system fields

* Update migrations

* Pass theming information to provider

* Don't use default key in theme settings

* Use lodash.merge instead of defu

Better TypeScript type inference

* Nevermind the standalone app

It kinda sucks

* Only override rules

* Fetch theme overrides from user

* Use same field layout as settings

* Add theme overrides to db

* Classic 🤦🏻‍♂️

* Fix import

* Boilerplate overrides interface

* Update themes rules to use type def

* Boilerplate nested sections for themes

* Custom favicon (#19968)

* Add public_favicon field

* Add translation for favicon note

* Allow favicon regardless of permissions

* Return favicon as project info

* Type favicon in store

* Replace set-favicon with generate-fav util

* Render favicon in usehead

* Add changset

* Reads a little cleaner

* Semi-colons are a sign of wealth in wisdom

* Add a theme-overrides interface (#19970)

* Install typebox

* Rough in overrides interface

* Update theming settings in settings

* Upgrade dependencies

* Move theme output generation to separate composable

* Upgrade typebox

* Rename app/use-theme to use theme config

* Rework overrides interface

* Add changeset

* Allow default inheritAttrs

* Fixed handling of multiple WebSocket subscriptions on same target  (#20005)

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

* Add a cache clear method to the UtilsService (#19990)

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

* Change csv db type to text (#19953)

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

* Update placeholder text in file-image interface (#20004)

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

* Use current Directus version in docs (#20008)

* Use theme background instead of background-page

* Replace foreground normal with theme foreground

* Add missing translation

* Use foreground-accent and foreground-subdued from theme

* Rename --brand to --project-color

* Reuse variable color

* Replace primary/secondary/success/warning/danger

* Use theme based vars in api data

* Add header bar theming options

* Add more theming rules

* Nest icon colors

* Fix names

* Fix names in sidebar icon

* Update theming form layout

* Consolidate shades

* Consolidate primary shades

* Add primary shades

* Use shade-calculcated primary alternatives

* Use primary as mixing color

* Define warning/danger/success/secondary as shades

* Support form field label

* Add schema for interface foreground

* Allow setting input colors

* Add Google custom font loading algorithm

* Use font variables from theme

* Use unhead to load google fonts

* Install unhead to themes provider

* Use display font in title text and large dividers

* Add the dark mode default

* Run formatter

* Updating seeds is a no-no

* 😔

* Fix test

---------

Co-authored-by: Nihcep <32708027+Nihcep@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Rob Lee <rob@nodeworks.com>
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>

* Fix build script on components package

* Fix RGB var usage

* Resolve Azri's notes

See https://github.com/directus/directus/pull/20026#pullrequestreview-1676876461

* Fix extensions icon

* Add ability to enable/disable extensions from App Settings (#20015)

* Add migrations for directus extensions table

* Prevent duplicate extensions from being loaded

* Add extension settings type

* Add settings getter with db sync

* Add commented out columns

For part 2!

* Load settings when loading extensions

* Normalize settings into extension info

* Use system-like output for extensions endpoint

* Render extensions overview from new meta type

* white         space

* Bundle shared stuff as node exports as well

* Format file

* Fix output type of nested bundle entries

* Update package lock

* Hide uninstalled extensions

* Add disable context menu

* Hide disable controls on bundles

* Add API endpoint to update enabled state in DB

* Reload extensions on enable/disable

* Add refreshing on state change for disabled

* Remove commented out code

* Remove commented fields

* Add changeset

* Image having no empty line at the end

* Update GraphQL endpoints for extensions enable/disable (#20017)

* Update type for extensions read

* Add update extension

* Add changeset

* Update docs for updates in 19988 (#20019)

* SDK methods for extension reading/updating (#20018)

* Update SDK methods for extensions

* Add changeset

* Resolve Pascal's notes

* extracted extension api output type

* updated the update command

* Update sdk/src/types/extensions.ts

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

---------

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>

* Run formatter

* Add extensions to app deny list

* Fix input param name

* Fix typo in docs

* Azri is right, again!

* Remove extraneous fields

* Fix registration of operation and bundle extensions (#20030)

* Fix icon map

* Fix extension enable flag type on SQLite

* Fetch settings from itemservice

Fixes database inconsistency issues

* Only load extensions service when database is installed

---------

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>
Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>

* Use theme colors in extensions settings

* 📈 Insights QoL Part 2 (#20029)

* Update Dashboard Overview Page + New Only Import Sidebar

* Update Panel Config Drawer

* Remove Old Export Function

* Add changeset

* Add Back Missing Translations

* Fix Styling

* Update Styling to use new themeing

* Fox Formatting

* Fix Last CSS Var

---------

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

* Fix auto-theme issue on public pages (#20045)

* Return default appearance from server info

* Don't default to auto

* Render light/dark class based on theme appearance

* Render browser matches dynamically

* Read default appearance on public project info

* No-mo' auto

* Fix linter error

* Use unhead to set body class attr

* Content Versioning: Small tweaks & fixes (#20020)

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

* fix input-rich-text-html body color css variable (#20049)

* Fix three small issues in `next` (#20051)

* Fix casting of json fields on sqlite

* Cast to json on user settings as well

* Prevent multiple versions of Vue/Pinia (#20066)

Co-authored-by: Brainslug <tim@brainslug.nl>

* Insights QoL - QA Fixes (#20063)

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

* Add changeset for #20066 (#20071)

* Merge `main` into `next` (#20082)

* added save options and hide archive button for Content Versioning (#20095)

* Allow removal of version name (#20101)

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

* Merge `main` into `next` (#20100)

* Add max length to `key` & `name` for Content Versioning (#20097)

* Make `next` ready for `main` (#20104)

* Durus: test for o2m (#19957)

* Fix casing in file names

* Refactor file structure

* Split up related field node

* formatter

* renamed fields-node.ts to fields.ts

* added o2m field in tdd test

* Split up tests

Co-authored-by: Nitwel <mail@nitwel.de>

* moved variables to test

* used random values in db response mock

* finalized actual test

* added some explanation

* encapsulated mock stream creation

* encapsulated receiving data from stream

* removed root prop in query

* Fix some spelling errors and variable names

* Remove mocked stream hotfix

* Reset mock after each test

* reduced test to a minimum

---------

Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>
Co-authored-by: Nitwel <mail@nitwel.de>

* fix styling for specific map buttons (#20047)

* fix styling for specific map buttons

* added myself to contributors.yml

* fix format

* fix location of code.

* removed extra space

* signed cla (#20058)

* Fix format of contributors.yml (#20068)

* Correct count param in BlobClient.download() (#20056)

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

* move api/errors to @directus/errors package (#20054)

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Fix  http range request when transformation in use (#20060)

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

* Fixed SDK docblock for docs build (#20075)

* Docs: Snippet Toggler Improvements (#20077)

* Enforce Vue shorthand form for `true` attribute (#20079)

* Add homepage for quick ref in root package.json (#20083)

* Apply min-width for attached menus only (#20092)

* Apply min-width for attached menus only

* Add changeset

* Content Versioning Documentation (#20070)

* docs: add content-versioning guide

* docs: add versioning to user guide items

* updates: made updates to docs

* updates: add to headless cms guide

* fix: format

* fix: typo

* Fix link to versions ref page

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

* Use "Content Versioning" capitalized

* Addressed comments

* Format file

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Kevin Lewis <kvn@lws.io>

* Allow disabling of field menu options (#20094)

* New Crowdin updates (#19816)

* New translations en-us.yaml (German)

* New translations en-us.yaml (Portuguese, Brazilian)

* New translations en-us.yaml (Persian)

* New translations en-us.yaml (Chinese Simplified)

* New translations en-us.yaml (Arabic)

* New translations en-us.yaml (Italian)

* New translations en-us.yaml (Dutch)

* New translations en-us.yaml (Vietnamese)

* New translations en-us.yaml (Spanish, Mexico)

* New translations en-us.yaml (Spanish)

* New translations en-us.yaml (Croatian)

* New translations en-us.yaml (Turkish)

* New translations en-us.yaml (Romanian)

* New translations en-us.yaml (French)

* New translations en-us.yaml (Afrikaans)

* New translations en-us.yaml (Bulgarian)

* New translations en-us.yaml (Catalan)

* New translations en-us.yaml (Czech)

* New translations en-us.yaml (Danish)

* New translations en-us.yaml (Greek)

* New translations en-us.yaml (Finnish)

* New translations en-us.yaml (Hebrew)

* New translations en-us.yaml (Hungarian)

* New translations en-us.yaml (Japanese)

* New translations en-us.yaml (Korean)

* New translations en-us.yaml (Lithuanian)

* New translations en-us.yaml (Norwegian)

* New translations en-us.yaml (Polish)

* New translations en-us.yaml (Portuguese)

* New translations en-us.yaml (Russian)

* New translations en-us.yaml (Slovak)

* New translations en-us.yaml (Slovenian)

* New translations en-us.yaml (Albanian)

* New translations en-us.yaml (Swedish)

* New translations en-us.yaml (Ukrainian)

* New translations en-us.yaml (Chinese Traditional)

* New translations en-us.yaml (Icelandic)

* New translations en-us.yaml (Indonesian)

* New translations en-us.yaml (Spanish, Chile)

* New translations en-us.yaml (Thai)

* New translations en-us.yaml (Estonian)

* New translations en-us.yaml (Hindi)

* New translations en-us.yaml (Malay)

* New translations en-us.yaml (English, Canada)

* New translations en-us.yaml (English, United Kingdom)

* New translations en-us.yaml (French, Canada)

* New translations en-us.yaml (Faroese)

* New translations en-us.yaml (Esperanto)

* New translations en-us.yaml (Breton)

* New translations en-us.yaml (Bosnian)

* New translations en-us.yaml (Serbian (Latin))

* New translations en-us.yaml (Nepali)

* New translations en-us.yaml (Sorani (Kurdish))

* New translations en-us.yaml (Spanish, Latin America)

* Update source file en-US.yaml

* Update source file en-US.yaml

* New translations en-us.yaml (Croatian)

* New translations en-us.yaml (Croatian)

* New translations en-us.yaml (Russian)

* New translations en-us.yaml (Italian)

* New translations en-us.yaml (Italian)

* New translations en-us.yaml (Italian)

* New translations en-us.yaml (Croatian)

* Update source file en-US.yaml

* Update source file en-US.yaml

* New translations en-us.yaml (German)

* New translations en-us.yaml (Greek)

* New translations en-us.yaml (Italian)

* New translations en-us.yaml (Greek)

* New translations en-us.yaml (Albanian)

* 10.6.4 (#20102)

* Exit prerelease mode

---------

Co-authored-by: Jan Arends <jan.arends@mailbox.org>
Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>
Co-authored-by: Nitwel <mail@nitwel.de>
Co-authored-by: Boegie19 <34578426+Boegie19@users.noreply.github.com>
Co-authored-by: Dominic <dmarx@marxulm.de>
Co-authored-by: mscbpi <ms@cbpi.ch>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Esther Agbaje <53586167+estheragbaje@users.noreply.github.com>
Co-authored-by: Kevin Lewis <kvn@lws.io>

---------

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Connor <12714889+ConnorSimply@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Nihcep <32708027+Nihcep@users.noreply.github.com>
Co-authored-by: Rob Lee <rob@nodeworks.com>
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>
Co-authored-by: Jan Arends <jan.arends@mailbox.org>
Co-authored-by: Nitwel <mail@nitwel.de>
Co-authored-by: Boegie19 <34578426+Boegie19@users.noreply.github.com>
Co-authored-by: Dominic <dmarx@marxulm.de>
Co-authored-by: mscbpi <ms@cbpi.ch>
Co-authored-by: Esther Agbaje <53586167+estheragbaje@users.noreply.github.com>
Co-authored-by: Kevin Lewis <kvn@lws.io>
2023-10-21 00:34:57 +02:00
Boegie19
d82bb9c823 move api/errors to @directus/errors package (#20054)
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-10-18 18:19:22 +02:00
Gerard Lamusse
bf05c8fd8e Replace csv-parser with papaparse (#19739)
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-10-12 17:07:18 +00:00
Daniel Biegler
4d0f8e07b5 Change csv db type to text (#19953)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-10-11 20:35:56 +00:00
Rob Lee
51a2fcbd53 Add a cache clear method to the UtilsService (#19990)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-10-11 20:14:59 +00:00
Brainslug
a982dfcd76 Fix websocket subscription filtering (#19743)
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: ian <licitdev@gmail.com>
2023-10-11 14:56:40 +02:00
Rijk van Zanten
d68ec5fda7 Cleanup imports (#19966)
* Cleanup imports

* Add changeset
2023-10-09 15:17:29 -04:00
Rijk van Zanten
1383e85fe9 Cleanup extensions dependencies (#19922)
* Setup boilerplate for extensions page

* Allow reading all extensions from the root endpoint

* Add basic sidebar info detail

* Render list of extensions

* Move extensions manager to folder

* Move stuff related to extensions to @directus/extensions

* Import extensions utils/types/etc from ext. package

* Resolve last imports

* Temp remove settings pane

Different PR!

* Add changeset

* Run formatter

* Fix import in test
2023-10-05 19:20:26 -04:00
José Varela
f96eda89e1 Import: Do task in a separate worker (#19691)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: ian <licitdev@gmail.com>
2023-10-04 11:39:40 +02:00
Pascal Jufer
3a40aea9f8 Continue termination when WebSocket is disabled (#19826)
Co-authored-by: Brainslug <tim@brainslug.nl>
2023-09-27 18:20:44 +02:00
José Varela
9e1ae56b65 Export: Fix empty file when limit is -1 (#19820)
* Negative numbers should return all data

* Add changeset
2023-09-26 14:38:37 -04:00
Nitwel
632b968c1f Fix hiding navigation on root folder (#19518)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
2023-09-26 14:52:37 +02:00
Zehir
c0e3467368 Make the transformation argument of AssetsService.getAsset() optional (#19808)
* Ignore dev container

* getAsset() optional transformation

* Sign contributor license

* Run prettier

* Run prettier again

* Update .changeset/silent-radios-talk.md

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-09-26 11:14:08 +02:00
Rijk van Zanten
8a62031362 Add email validation on user create/update (#19794)
* Add email validation message error

* Validate emails on user create/update

* Add translation for app display
2023-09-25 09:54:56 -04:00
Daniel Biegler
8374a9a8b6 Pass file-id down so that FilesService can replace asset upon URL import (#19788) 2023-09-25 13:23:50 +02:00
José Varela
9819049f0c Assets: Handle transformation timeout errors (#19684)
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: ian <licitdev@gmail.com>
2023-09-15 13:32:50 +00:00
Jan Arends
5c8d3d22c6 Reset auto increment sequence (#19328)
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-09-08 11:19:14 +02:00
Azri Kahar
1857340bcd Add email body for completed exports to file library (#19550)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-08-31 15:08:48 +02:00
Pascal Jufer
425cdd64cc Fix decompression in file import endpoint (#19524)
* Fix decompression in file import endpoint

* Add changeset

* Clean-up decompressResponse function

* Align fn name
2023-08-29 22:57:27 +08:00
Daniel Biegler
284156426f Replace vm2 with isolated-vm (#19332)
* add isolated-vm@4.6.0

* add mvp replacing vm2 with isolated-vm, two env vars

* make copying async and add tests

* add env vars to docs

* remove isolate-logging function

* update docs for FLOWS_EXEC_ALLOWED_MODULES removal

* further removal of allowed module usage

* rename env vars and their usage, remove script "compiling" and replace Reference with ExternalCopy

* remove logging and catching, let the outer executeOperation function do it

* remove vm2 from dependencies

* remove unused var

* run prettier formatting

* run eslint

* create changeset

* rename env var without unit suffix, add minimum to doc

* add two tests for config testing

* fix 'mb' spelling

* update changeset

* Mark it as major change for `@directus/api`

* Breaking change copy

* add logging from the operation

* run linting

* Update docs/releases/breaking-changes.md

* Update docs/releases/breaking-changes.md

* run linting, make operation cursive

* Mention HTTP requests in breaking changes

* make linter happy

* changed cursive to bold (asked kevin)

* add to the test for timeouts

* run linter

* Update api/src/operations/exec/index.ts

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

* Update api/src/operations/exec/index.ts

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

* Update note on run script modules

* Update breaking changes

* Update docs/app/flows/operations.md

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

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Kevin Lewis <kvn@lws.io>
Co-authored-by: ian <licitdev@gmail.com>
2023-08-25 14:11:17 +00:00
Nitwel
e7ba4b4058 Add missing endpoints to openapi spec (#19390)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-08-16 12:00:57 +02:00
Nitwel
ebb018a5e8 Fix using wrong type for default values (#19439)
* Fix using wrong type for default values

* fix for readAll

* Format file

* Add changeset

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-08-15 12:16:43 -04:00
José Varela
3a54f0db56 API: Do count distinct since left join duplicates results (#19208)
* Do count distinct since `left join` duplicates results

* Add changeset

* Correctly access count property

* Update .changeset/angry-suits-compete.md

* Optimize for simple filters

* Add tests

* Workaround broken 'as' for countDistinct in SQLite3

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: ian <licitdev@gmail.com>
2023-07-24 13:32:28 +02:00
Brainslug
4cc55b86ba Using the same data fetching logic for rest and graphql (#19155)
* Using the same data fetching logic for rest and graphql

* Create fresh-snails-knock.md

* checked and tested data fetching code

* always fetch a single result for gql subscriptions

* removed unused import

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2023-07-20 08:12:17 +02:00
Rijk van Zanten
f1ac443298 Use projectColor for links in emails (#19171)
Fixes #18927
2023-07-14 22:14:29 +02:00
Rijk van Zanten
ea146c3e11 Include PK as secondary sort in batch exports (#19143)
Fixes #19133
2023-07-12 11:46:25 +02:00
Connor
77b95e08dd Add Auto Cache Purging to Sorting Utility (#19115)
* add cache purging to sort utility

* update should clear to fail faster

* use shouldClearCache

* clean logic

* Create nervous-onions-relate.md

* fix formatting

* Update api/src/services/utils.ts

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

* Update changeset/

---------

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-07-11 10:32:57 +02:00
Connor
92621429ee Linting and Formatting Upgrade (#18892)
* add docs to eslint

* update prettier ignore

* fix vitepress linting

* eslint ignore fixes

* prettier run

* update prettier ignore

* fix formatting

* enable linting of markdown files

* revert format command change

* fix irregular whitespace

* update dictionary

* (Changelog) Create four-boxes-shake.md

* Rework ESLint / Prettier setup

- Disable js/ts/vue files for Prettier to ensure linting/formatting is
  only happening via ESLint
- Rework formatting of code blocks in md files
  - Disable formatting of code blocks in md files under '/docs' by Prettier
  - Instead use "eslint-plugin-markdown" to format & __lint__ js*/ts*/vue such code blocks
  - Replace unmaintained "eslint-plugin-md" plugin by official "eslint-plugin-markdown" plugin
  - I'll check whether we can use this to format other code blocks
    (json, html, ...) as well
- Restructure, clean-up and apply some fixes to the ESLint config
  (Note: Not ready for flat config yet since not supported by
  vscode-eslint)
- Enable cache for ESLint / Prettier in scripts
- Clean-up ignore file
  - Explicit folder declaration (.../)
  - Don't ignore all 'extensions' folders in ESLint (only
    '/api/extensions/')
  - Enable formatting in '/.github' folder

* Fix all formatting issues with Prettier

* Update md files under /docs/.typedocs

* Fix lint issues in vue/js files

* ESLint / Prettier config revision v2

Enable Prettier for md code blocks, but only as warnings since it can
get into the way with Vitepress md extensions like '[!code ...]'
comments

* Remove prettier-ignore comments

* Make spellchecker happy

* Remove changeset

* Revert lint setup for code blocks

There are many cases in the docs where linting / formatting of code
blocks doesn't make
sense:
- Code block is only an excerpt - linter fails
- Code block contains special comments (e.g. markdown extensions) which
  needs to remain at the same place - formatting would break it
- ...

* Apply lint issues / formatting from temp lint setup

* Run formatter

* Fix merge failure

* Simplify & modernize ESLint / Prettier setup

No longer run Prettier via ESLint. Nowadays, this is the recommended
setup. There's no real need to run it this way, it's just an additional
layer.

Add VS Code settings to make the work with the new setup easier.

* Remove unused eslint disable directives

* Make editorconfig more useful

* Fix formatting issues reported by editorconfig

* Format files with Prettier

* Enable formatting of source translations file

* Format source translations file

* Remove unnecessary console error

* Remove unnecessary line

* Only ignore md files under .changeset

* Add CI reporter for Prettier

* Fail job on wrongly formatted files

* Fix format

* Test Prettier action on changed/added file

* Use simple CI format check for now & no cache

* Revert "Test Prettier action on changed/added file"

This reverts commit 4f7d8826ad.

* Introduce code blocks check for docs

* Fix code block issues

* Ignore auto-generated packages dir

* Fix comment position

* Also lint `/app/.storybook`

* Reformat modified files

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2023-06-29 11:54:01 +02:00
Azri Kahar
c80fa6d6b9 Assign sort number when creating field(s) (#18877)
Co-authored-by: Jan Arends <jan.arends@mailbox.org>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-06-28 13:47:15 +00:00
Rijk van Zanten
ca3e7f521f Upgrade previous "Extensions" system to new "Errors" model (#18797)
* Typecheck across packages that are built with esbuild

* Boilerplate new Errors package

* No need, tsup checks with --dts

* Switch to tsup

* Setup dev script

* Add readme

* More boilerplaty things

* Finish createError function

* Install @directus/random

* Downgrade node types

* Add utility function to check if an error is a DirectusError

* Use new is-error check

* Install errors package

* Add failed validation common error

* Export common errors

* Move joi convertion to utils

* Export failed validation

* Use new failed validation error in validate-batch

* Enhance typing output of createError

* Remove outdir (handled by tsup now)

* Replace Exception with Error

* Replace exception in test

* Remove exceptions from app

* Remove exceptions from app

* Remove failed validation exception from users service

* Remove old failed validation exception from shared

* Remove exceptions package in favor of errors

* Uninstall exceptions

* Replace baseexception check

* Migrate content too large error

* Critical detail

* Replace ForbiddenException

* WIP remove exceptions

* Add ForbiddenError to errors

* HitRateLimitError

* Move validation related error/helper to new validation package

* Add index

* Add docs

* Install random

* Convert TokenExpired

* Convert user-suspended

* Convert invalid-credentials

* Move UnsupportedMediaType

* Replace wrong imports for forbidden

* Convert invalid-ip

* Move invalid provider

* Move InvalidOtp

* Convert InvalidToken

* Move MethodNotAllowed

* Convert range not satisfiable

* Move unexpect response

* Move UnprocessableContent

* Move IllegalAssetTransformation

* Move RouteNotFound

* Finalize not found

* Various db errors

* Move value too long

* Move not null

* Move record-not-unique

* Move value out of range

* Finish db errors

* Service unavailable

* GQL errors

* Update packages/validation/src/errors/failed-validation.ts

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

* Update packages/validation/src/errors/failed-validation.ts

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

* InvalidQuery

* Add test for invalid query message constructor

* Invalid Payload

* Finalize exceptions move

* Improve type of isDirectusError

* Various fixes

* Fix build in api

* Update websocket exceptions use

* Allow optional reason for invalid config

* Update errors usage in utils

* Remove unused package from errors

* Update lockfile

* Update api/src/auth/drivers/ldap.ts

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

* Update packages/validation/src/utils/joi-to-error-extensions.ts

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

* Put error codes in shared enum

* Replace instanceof checks in api

* Fix tests I think

* Tweak override names

* Fix linter warnings

* Set snapshots

* Start fixing BB tests

* Fix blackbox tests

* Add changeset

* Update changeset

* Update extension docs to use new createError abstraction

* 🙄

* Fix graphql validation error name

* 🥳

* use ErrorCode.Forbidden

* fix blackbox auth login test

* Add license files

* Rename preMutationException to preMutationError

* Remove unused ms dep & sort package.json

* Remove periods from error messages for consistency

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

* Add optional code check

* Use updated error code checker

* Rename InvalidConfigError to InvalidProviderConfigError

---------

Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: ian <licitdev@gmail.com>
2023-06-27 17:22:26 -04:00