Commit Graph

474 Commits

Author SHA1 Message Date
José Varela
d8e9224df6 Fix incorrect env max concurrent transforms (#8134) 2021-09-18 11:04:52 -04:00
Joel Bohorquez
4e042c6418 Add support for custom claims before issuing a JWT. (#7906)
* add event auth.jwt.before

* document event auth.jwt.before

* fix event auth.jwt.before

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2021-09-17 21:25:46 -04:00
renovate[bot]
13b92f86f3 Update dependency @types/object-hash to v2.2.1 (#8046) 2021-09-15 14:08:13 -04:00
Rijk van Zanten
ce104b6a9c Add native schema migration capabilities (#7939)
* Add snapshot creation command

* Read and start diffing snapshot

* Add apply snapshot functionality

* Fix cli invocation

* Add log messages

* Fix duplicated if check

* Add (minimal) docs on schema migrations

* Fix missing import

* Update api/src/utils/apply-snapshot.ts

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

* Appease to Nicola's programming professor

Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>
2021-09-13 17:15:04 -04:00
Azri Kahar
0575cb4836 Add custom JWTs support for static token (#7830)
* add support for custom JWTs as static token

* check issuer during jwt.verify in authentication

* add issuer in JWTs for pwd resets & user invites
2021-09-09 14:47:28 -04:00
Tony DevOps
eaa97a9272 Make Argon2.hash parameters configurable to allow for stronger user password hashes. (#7755)
* 1.  Create generatePasswordHash util function to standardize how user
        passwords are hashed throughout the API instead of directly calling
        argon2.hash directly;
    2.  Add configuration parameters to modify the behavior of the argon2.hash
        function used for generating user password hashes;
    3.  Add docs and placeholders in api/example.env for new parameters;
    4.  Update argon2 to latest release.

* Also update CLI init command to call generatePasswordHash vs. calling argon2.hash directly.

* docs: sdk auth.password.request url argument (#7757)

* Show a warning if PostGIS is missing (#7759)

* Show a warning if PostGIS is missing

* Remove sqlite-extensions flag

* Remove unused import

* Update WYSIWYG styling

* translations: fix user.status_invited (#7760)

* New Crowdin updates (#7739)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Czech)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Russian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Czech)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* Fix postgis check

* Fix branch emitter logic from grand-to-child (#7763)

* New Crowdin updates (#7762)

* New translations en-US.yaml (Russian)

* New translations en-US.yaml (Slovenian)

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

* New translations en-US.yaml (French)

* New translations en-US.yaml (Arabic)

* New translations en-US.yaml (Catalan)

* New translations en-US.yaml (German)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (German)

* New translations en-US.yaml (Hungarian)

* Fix tree-select not allowing groups to be opened in selection mode

* Optimize tree-select open state

* Warn the user when a collapsed group field had an error (#7738)

* warn the user when a collapsed group field had an error

* Replace icon

* Reduce icon size

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

* New translations en-US.yaml (Hungarian) (#7764)

* fix WYSIWYG field focus event (#7756)

* Update vue monorepo to v3.2.7 (#7766)

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Fix hash link in docs module (#7768)

* Update dependency knex-schema-inspector to v1.6.0 (#7769)

* Use OpenMapTiles font instead of ArcGIS (#7780)

* tiny rewrite in docs/reference/filter-rules (#7771)

* Update dependency sass to v1.39.0 (#7770)

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Expose logger through ExtensionContext (#7777)

Fixes #7737.

* Fixes bug when trying to edit geometry in code interface. (#7778)

* Update vue monorepo to v3.2.8 (#7785)

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Update dependency npm to v7.22.0 (#7786)

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Improve card selection styling (#7787)

* Add environment variable to force-exclude tables from Directus (#7789)

* New Crowdin updates (#7765)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Hungarian)

* New translations en-US.yaml (Polish)

* v9.0.0-rc.92

* Update changelog.md

* Update logging in CLI commands (#7676)

* Replace console logs with logger in CLI commands

* Fix double sparkles in migration command

* Apply suggestions from code review

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

* Use stdout for init command output

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

* Fix WYSIWYG field not being cleared after "Save and Create New" (#7754)

* fix WYSIWYG field not being cleared

* return empty string when null for tinymce

* Update app/src/components/v-form/form-field.vue

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

* fix wrong icon (#7800)

* fix false is proper value (#7796)

* Fix incorrect database exclude tables environment variable in docs. (#7798)

* Datetime interface "Set to now" sets seconds to 0 (#7794)

When "Include seconds" is disabled.

Fixes #7779

* Use https for openmaptiles fonts. (#7801)

* fix type for deep query with underscore prefix (#7815)

* Map selection behaviour (#7811)

* Use https for openmaptiles fonts.

* Changed map selection behaviour: replace instead of adding them by default.

* Fix map interface controls not showing (#7812)

* Fix return error for GraphQL mutations (#7814)

* Apply "in" to query even if array is empty (#7816)

* fetch only avatar id for current user

* apply "in" to query even if array is empty
if the "in" array is empty we need to add it to query anyways,
otherwise all records will be attached causing out of memory on
subsequent calls

* Update dependency pinia to v2.0.0-rc.7 (#7817)

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Update modules.md (#7795)

* make csv imports try to parse values to json (#7820)

* fix minor typo in api-hooks.md (#7821)

* Update dependency knex to v0.95.11 (#7819)

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Rename hash utils file/function to be not password-specific, update all calls to argon2.hash to use the new function, update docs.

* 1.  Create generatePasswordHash util function to standardize how user
        passwords are hashed throughout the API instead of directly calling
        argon2.hash directly;
    2.  Add configuration parameters to modify the behavior of the argon2.hash
        function used for generating user password hashes;
    3.  Add docs and placeholders in api/example.env for new parameters;
    4.  Update argon2 to latest release.

* Also update CLI init command to call generatePasswordHash vs. calling argon2.hash directly.

* Rename hash utils file/function to be not password-specific, update all calls to argon2.hash to use the new function, update docs.

* Preserve old behavior of hash function in PayloadService, in case 'value' is not a String.

* Tweak docs

Co-authored-by: José Varela <joselcvarela@gmail.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Ben Haynes <ben@directus.io>
Co-authored-by: Nitwel <nitwel@arcor.de>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Oreille <33065839+Oreilles@users.noreply.github.com>
Co-authored-by: mikhail sergienko <mikhail.sergienko@gmail.com>
Co-authored-by: Dieter Luypaert <dieterluypaert@gmail.com>
Co-authored-by: Ben Haynes <ben@rngr.org>
Co-authored-by: Sam Milledge <sam@sammilledge.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Harun Kilic <harunkilic@live.dk>
2021-09-07 15:21:59 -04:00
Azri Kahar
ef53869afb make csv imports try to parse values to json (#7820) 2021-09-03 17:25:33 -04:00
José Varela
85b6d5c366 Fix return error for GraphQL mutations (#7814) 2021-09-03 12:09:19 -04:00
Nitwel
d9d8edc217 Remove permission.limit (#7711)
* remove permission.limit

* set limit to amount of primaryKeys
2021-08-31 11:56:17 -04:00
Nicola Krumschmidt
d64ca14348 Explicitly set catch parameters to any type (#7654)
This fixes not being able to build the repo due to type issues
introduced by the Typescript 4.4 option "useUnknownInCatchVariables",
which is enabled by default in strict mode.
2021-08-27 10:33:30 -04:00
Nicola Krumschmidt
7dfc5dc6af Use root-relative base url for app and extensions (#6923)
* Add Url util class

* Use relative base url for app and extensions

Also use utils/url when working with PUBLIC_URL in other places.
2021-08-26 17:11:21 -04:00
Azri Kahar
50fdea1709 fix(api): merge original user object into payload from auth hook (#7568)
* merge user object into payload from auth hook

* fix incorrect param names in reduce function

* change updatedUser to updatedOptions
2021-08-25 11:46:42 -04:00
rijkvanzanten
256139ffd2 Fix double drop relation 2021-08-19 17:11:49 -04:00
rijkvanzanten
cf69cc814a Don't read icc information
Save some space, we don't need the color profile information
2021-08-17 10:51:01 -04:00
rijkvanzanten
1b950b07de Still join them on create tho 2021-08-13 12:09:05 -04:00
rijkvanzanten
8d5ce4e91d Don't double split csv values 2021-08-13 12:03:58 -04:00
Oreille
83e8814b2d Add support for Geometry type, add Map Layout & Interface (#5684)
* Added map layout

* Cleanup and bug fixes

* Removed package-lock

* Cleanup and fixes

* Small fix

* Added back package-lock

* Saved camera, autofitting option, bug fixes

* Refactor and ui improvements

* Improvements

* Added seled mode

* Removed unused dependency

* Changed selection behaviour, cleanup.

* update import and dependencies

* make custom style into drawer

* remove unused imports

* use lodash functions

* add popups

* allow header to become small

* reorganize settings

* add styling to popup

* change default template

* add projection option

* add basic map interface

* finish simple map

* add mapbox style

* support more mapbox layouts

* add api key option

* add mapbox backgrounds to layout

* warn when no api key is set

* fix for latest version

* Improved map layout and interface, bug fixes, refactoring.

.

.

* Added postgis geometry format, added marker icon shadow

* Made map buttons bigger and their icons thinner. Added transition to header bar.

* Bug fixes and error handling in map interface.

* Moved box-select control out of the map component. Removed material icons sprite and use addImage for marker support.

* Handle MultiGeometry -> Geometry interface error.

* Removed hardcoded styles. Added migrations for basemap column. Lots of refactoring.

Removed hardcoded styles. Added migrations for basemap column. Lots of refactoring.

* Fixed style reloading error. Added translations.

* Moved worker code to lib.

* Removed worker code. Prevent Mapbox from removing access_token from the URL.

* Refactoring.

* Change basemap selection to in-map dropdown for layout and interface.

* Touchscreen selection support and small fixes.

* Small change.

* Fixed unused imports.

* Added support for PostgreSQL identity column

* Renamed migration. Added crs translation.

* Only show fields using the map interface in the map layout.

* Removed logging.

* Reverted Dockerfile change.

* Improved crs support.

* Fixed translations.

* Check for schema identity before updating it.

* Fixed popup not updating on feature hover.

* Added feature hover styling. Fixed layer customization input. Added out of bounds error handling.

* Added geometry type and support for database native geometries.

* Fixed linting.

* Fixed layout.

* Fixed layout.

* Actually fixed linting

* Full support for native geometries
Fixed basemap input
Improved feature popup on hover
Locked interfaced support

* Fixed geometryType option not updating

* Bug fixes in interface

* Fixed crash when empty basemap settings. Fixed fitBounds option not updating.

* Added back storage type option. Improved interface behaviour.

* Dropped wkb because of vendor inconsistency with binary data

* Updated layout to match new geometry type. Fixed geojson payload transform.

* Added missing geometry_format attributes to local types.

* Fixed typos & refactoring

* Removed dependency on proj4

* Fix error when empty map interface options

* Set geometry SRID to 4326 when inserting into the database

* Add support for selectMode

* Fix error on initial source load

* Added geocoder, use GeoJSON for api i/o, removed geometry_format option, refactoring

* Added geometry intersects filter. Created geometry helper class.

* Fix error when null geometryOptions, added mapbox_key setting.

* Moved all geometry parsing/serializing into processGeometries in `payload.ts`. Fixed type errors.

* Migrate to Vue 3

* Use wellknown instead of wkx

* Fixed basemap selection.

* Added available operator for geometry type

* Added nintersects filter, fixed map interface for filter input

* Added intersects_bbox filter & bug fixes.

* Fixed icons rendering

* Fixed cursor icon in select mode

* Added geometry aggregate function

* Fixed geometry processing bug when imported from relational field.

* Fixed error with geocoder instanciation

* Removed @types/maplibre-gl dependency

* Removed fitViewToData options

* Merge remote-tracking branch 'upstream/main' into map-layout

* Fixed style and geometryType in map interface options

* Fixed style change on map interface.

* Improved fitViewToData behaviour

* Fixed type imports and previous merge conflict

* Fixed linting

* Added available operators

* Fix and merge migrations

* Remove outdated p-queue dep

* Fix get-schema column extract

* Replace pg with postgis for local debugging

* Re-add missing import

* Add mapbox as a basemap when key exists

* Remove unused tz flag

* Process delta in payloadservice

* Set default map, add limit number styling

* Default display template to just PK

* Tweak styling of error dialog

* Fix method usage in helpers

* Move sdo_geo to oracle section

* Remove extensions from ts config exclude

* Move geo types to shared, remove _Geometry

* Remove unused type

* Tiny Tweaks

* Remove fit to bounds option in favor of on

* Validate incoming intersects query

* Deepmap filter values

* Add GraphQL support

* No defaultValue for geometryType

* Resolve c

* Fix translations

Co-authored-by: Nitwel <nitwel@arcor.de>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2021-08-12 22:01:34 +02:00
Rijk van Zanten
8d78f70050 Check for non-existing parent pk records (#7331)
Fixes #7330
2021-08-10 20:46:30 +02:00
Rijk van Zanten
2789e27c26 Check for related collection before creation relation (#7323)
Fixes #7302
2021-08-10 18:39:58 +02:00
Rijk van Zanten
0214b9a1bb Fix uuid resolving in SQLite (#7312)
Fixes #7306
2021-08-10 16:00:22 +02:00
Rijk van Zanten
f6a7853e7d Rely on RETURNING when possible (#7259)
* WIP use returning clause instead of max from id

* Use returning where applicable, fallback to fetch

Fixes #6279
2021-08-07 00:21:50 +02:00
Bernat Vadell
2193339aef Fix internal server error (#7240)
* fix internal server error when create items with special pk and not required other fields

* Only run validation check when validation rules exist

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-08-06 18:43:45 +02:00
Rijk van Zanten
4c074512f6 Fix import of perf hook on node < 16 (#7249)
Fixes #7221
2021-08-06 16:47:38 +02:00
Pascal Jufer
bea3794f0a Switch to exifr for image metadata extraction (#6922)
* Switch to exifr for image metadata extraction

* Fix migrations on pg

* Prevent double divider

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-08-05 19:19:18 -04:00
Rijk van Zanten
d0f6cb35e3 Support dynamic variables in conditional fields (#7202)
* Move accountability type to shared

* Rely on shared for parse-filter

* Install date-fns

* Support dynamic variables in conditional fields

Closes #7157
2021-08-05 01:51:15 +02:00
Rijk van Zanten
ce234f3165 Fix timezone problems in dateTime type (#7200)
* Disable useTZ option from MS SQL by default

* Fix recognition of OracleDB timestamp

* Smoothen out knex default in useTz for datatypes

* Fix timezone parsing for dateTime fields

* Remove unused import
2021-08-05 01:19:24 +02:00
Rijk van Zanten
e8bb89e05d Don't trigger updates for pre-existing selected items (#7176)
Fixes #4147
2021-08-04 01:47:06 +02:00
rijkvanzanten
e4add23ce6 Fix linter warnings 2021-08-03 17:30:36 -04:00
Rijk van Zanten
c312115ef3 Fix nested m2a collection permission retrieval (#7168)
Fixes #7086
2021-08-03 23:29:34 +02:00
Rijk van Zanten
ef3d618d6c Add support for app-required field state (#7166)
* Add "required" option to fields

* Move some exceptions to shared

* Do client side validation for required

* Add conditional required support
2021-08-03 23:04:24 +02:00
Rijk van Zanten
9eace1c9ff Prevent duplicate alias fields from being created (#7142)
Fixes #7107
2021-08-02 22:16:13 +02:00
Rijk van Zanten
956c590f0c Stall login/pw reset to prevent email leaking (#7105) 2021-07-30 15:01:07 -04:00
Rijk van Zanten
14254bae62 Fix top level perm check on nested m2a records (#7060)
Fixes #6317
2021-07-28 23:11:54 +02:00
Bernat Vadell
fd8c54b10e Calendar range render (#6775)
* Fixes #6699

* Clean up calendar index a bit

* Format date output using non timezoned output

* Match output format to input format

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-07-28 22:29:09 +02:00
Rijk van Zanten
1597423e1a Don't throw 500 on missing email (#7050)
Fixes #6948
2021-07-28 19:55:20 +02:00
rijkvanzanten
2e442b2757 Fix return type in roles service 2021-07-28 12:04:55 -04:00
Rijk van Zanten
f81dfda20f Don't return collections outside of cache (#7020)
Fixes #6602
2021-07-28 00:57:31 +02:00
Rijk van Zanten
945d5d94e0 Add new /utils/cache/clear endpoint (#7014) 2021-07-27 23:32:25 +02:00
rijkvanzanten
f7064d69dc Fix return type on gql service 2021-07-27 16:51:14 -04:00
Rijk van Zanten
07fb7d67a8 Prevent from deleting the last admin user (#7008)
* Prevent from deleting the last admin user

Fixes #6990

* Add missing return types
2021-07-27 20:30:13 +00:00
Rijk van Zanten
92e1ee77bd Add support for Conditional Fields (#6864)
* Add conditions field to directus_fields

* Add conditions configuration

* Apply conditional overrides

* Handle conditions in nested groups

* Fix reverse mutating conditions

* Start on filter setup interface

* Move field types/constants to shared

* [WIP] Updated client side filter validation

* Support logical operators in client validation step

* Use new validation util in conditions check

* Add nesting in filter seutp

* Add filter rule setup configurator

* Fixes that should've been done in the merge

* Strip out filter-settings interface

TBD in a new PR

* Move browser to index
2021-07-26 18:02:24 -04:00
Adrian Dimitrov
efe7b076a3 Add default-folder option (#3209)
* Allow set folder for imported files

* Allow passing folder in file/files component; Allow pick folder for file/files/image interfaces.

* Added folder system component for picking folders; Move folder picker the field from data to interface (file, files, image).

* Add custom folder interface; use props for interfaces file/files/image in upload component

* Allow set folder for imported files

* Allow passing folder in file/files component; Allow pick folder for file/files/image interfaces.

* Added folder system component for picking folders; Move folder picker the field from data to interface (file, files, image).

* Add custom folder interface; use props for interfaces file/files/image in upload component

* Update after rebase

* Add storage_default_folder setting, use folder when deploy file

* Fix files options; Add default label option for folder interface.

* Fix set folder for file

* UX

* Add migration for column, undo seed change

* Update nomanclature

* Make sure file library always submits folder, cleanup setting retrieval

* Use indexName on down migrate

* Fix import default folder, rename customPresets->folderPreset

* Rename interface import

* Use undefined as default folder

* Remove deprecated lang file

* Fix display of folder interface, treat null as value

* Move shared composable

* Remove unused ref

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-07-21 17:29:21 -04:00
Tim
2c9ff3bca6 Allow custom transformations of assets (#6593)
* Allow custom transformations of assets

This exposes one query parameter `transforms`, which is a JSON array of
shard transformation operations.

It also updates the asset presets. The UX for this still needs some work

* Rename options to arguments for presets

More explicit

* options -> arguments in setting spec

* Better errors for invalid JSON in asset presets

* Add limit to transforms query parameter

* Use flattened option for extra transforms

* Fix placeholder color of code input

* Allow "simple mode" aliases

* Add documentation

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-07-21 15:57:47 -04:00
Nicola Krumschmidt
b61543c0e9 Move DeepPartial to shared (#6886)
Also cleans it up and adds support for readonly arrays.
2021-07-20 11:40:59 -04:00
j3n57h0m45
79c91ed50d enable custom name for refresh token (#6890) 2021-07-20 15:29:11 +02:00
Rijk van Zanten
c2e1aca63b Make sure every DB returns time as HH:mm:ss (#6847)
Fixes #6492
2021-07-16 00:21:19 +02:00
Rijk van Zanten
f360a2d445 Fixed issue that would cause the wrong field to be extracted when using "detailed" updates in o2m with non-"id" primary keys (#6841)
Fixes #6817
2021-07-15 23:40:04 +02:00
Rijk van Zanten
5abfd96a99 Account for primary keys in A2O processing (#6783)
Fixes #6782
2021-07-13 16:26:56 -04:00
Thijs-Jan
18ef097402 Fix item.read hook not firing for readByQuery (#6645)
* Move read hook to readByQuery method

* Return query to items.read hook, update docs accordingly
2021-07-07 12:13:38 +02:00
rijkvanzanten
e753e37cef Fix type warning 2021-07-05 11:51:39 +02:00