* 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>
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.
* Move accountability type to shared
* Rely on shared for parse-filter
* Install date-fns
* Support dynamic variables in conditional fields
Closes#7157
* 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
* 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>
* 6113 add tfa generate endpoint
* 6113 implement tfa otp check in user settings
* 6113 add autfocus for otp field on login form
* update package-lock
* improve TFA uri with user email
* fix vue 3 compatibility
* reduce code duplication for enableTFA
* Remove unnecessary parameters
* Use project name in otp url when available
* Update docs/reference/api/system/users.md
Co-authored-by: Wendelin Peleska <wendu@pm.me>
* Bump knex-schema-inspector
* Fix cli role name attr
* Update relation type
* Restructure relations
* Restructure relations table
* Update api type for relation record
* Fetch relations in new structure
* Update schema-inspector
* Use new relations schema structure in api
* Update relations GETters
* Add default value to one deselect
* Add create relationship on existing field
* Add updating existing relationship
* Add delete relations
* Add relations query resolver
* Add graphql mutations for relations
* Fix reading from wrong name
* Fix wrong method name
* No idea why this flip flops every install
* Update relation type
* Accept null in use-collection composable
* Use new relations structure in translations
* Use new relations structure in new-collection
* Start updating field detail store
* Renames for new relations structure
* Silently ignore passed collection/field in relation update
* Fix setting pk field in m2o relational setup
* Small tweaks in o2m setup
* Fix m2m setup
* Tweak m2o setup
* Fix m2a setup
* Allow null for related collection (m2a)
* Fix languages code name
* Fix migration default value
* Fix relational cleanup in collections/fields
* Fix transaction problem in field delete
* Fix inserting relational o2m items
* Don't execute updateByQuery on empty item set
Fixes#5710, fixes#5070
* Show referential action input on m2o
* Finish language for m2o
* Show triggers config on o2m
* Delete items on one_deselect_item delete
* Fix naming, show relational trigger config on m2m
* Tweak language, add setup to m2a
* Fix linter warnings
* Add trigger setup for translations
* fix Edit non-schema relationship issue
* Sync existing on_delete triggers in o2m setup
* Add migration to setup foreign key constraints
* Update illegal FK values before setting constraint
* Fix MySQL unsigned vs not-unsigned in FK creation
* Use pretty names for labels in relational triggers
* Prefix auto-junction when system table
Fixes#5493
* Add system foreign key triggers
Fixes#5749
* Update docs
* api: pass user object to auth hooks
The motivation for this is the ability to migrate from
bcrypt passwords to argon2 seamlessly.
Fixes#4718Fixes#4335
* receive user from `auth.login.before` hook
* pass `otp` as well on `auth.login` hooks
* api: last registered hook should have priority
When registering multiple hooks for a single event,
the last hook should have priority on return value.
* Fix linter warning
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Declare return types on functions
And a very few other type related minor fixes
* Minor syntax fixes
* Remove unnecessary escape chars in regexes
* Remove unnecessary awaits
* Replace deprecated req.connection with req.socket
* Replace deprecated upload with uploadOne
* Remove unnecessary eslint-disable-next-line comments
* Comment empty functions / catch or finally clauses
* Fix irregular whitespaces
* Add missing returns (null)
* Remove unreachable code
* A few logical fixes
* Remove / Handle non-null assertions which are certainly unnecessary (e.g. in
tests)
* Start the xOne/xMany work
* Update update/upsert
* Finish updating itemsservice
* Add comments, add nested revisions on update
* Use new internal api
* Update collectionService to one/many structure
* Move files to one/many structure
* Move permissions to one/many structure
* Move relations service to one/many structure
* Move roles to one/many structure
* Move users service over
* Move webhooks to updated structure
* Move deprecated methods to the bottom
* Replace deprecated uses
* Use new methods in controllers, add batch update/delete by query
* Use updated methods in API
* Fix email being required
* Remove unnecessary DB call
* Fix batch update/delete validation
* Rotate JPG image on upload #4206
* fixes#3949 width/height generated for gif and tif
* API hooks for event added for auth.login #4079
* updated doc for api hooks for new auth.login event
* Style tweaks
* Update docs
* Tweak docs some more
* Spelling error
* Allow non-required flags and pass to hook
* SDK - Persistent login refresh fixes#4113
* Fixed#4145 SDK, Token Expired error
* Spell check
* Docs Spell check
* Docs Spell check
* Docs Spell check
* update docs for sdk-js
* To delete all expired session from db on login
* corrected the condition for the delete
* changed the from Date.now to new date .
* Move it inline
* Fixes#4653
* added docs and cleaned up the hooks payload
* use req.accountability
* added req.params.provider to payload
* provide scope for login
* docs updated for oauth hook
* Update api/src/controllers/auth.ts
* updated provider to redirect and docs
* added payload
* Make schema available in redirect hook
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Rotate JPG image on upload #4206
* fixes#3949 width/height generated for gif and tif
* API hooks for event added for auth.login #4079
* updated doc for api hooks for new auth.login event
* Style tweaks
* Update docs
* Tweak docs some more
* Spelling error
* Allow non-required flags and pass to hook
* SDK - Persistent login refresh fixes#4113
* Fixed#4145 SDK, Token Expired error
* Spell check
* Docs Spell check
* Docs Spell check
* Docs Spell check
* update docs for sdk-js
* To delete all expired session from db on login
* corrected the condition for the delete
* changed the from Date.now to new date .
* Move it inline
* Fixes SSO redirect with Json error
* Remove dependency on qs
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Start on GraphQL "2.0", add methodnotallowed exceptoin
* Fix relative file pointer in peer dep
* [WIP] Add pre-filtered schema to SchemaOverview
* Use root schema as is, add reduce-schema util
* Use reduceSchema in the wild
* Base schema on local reduced schema
* Remove todo
* Use graphql-compose to build out schema
* Start restructuring resolvers
* Add create mutation
* Return boolean true for empty create mutation selections
* Add update mutation
* Add delete mutation
* Add system/items scoping
* Fix merge conflicts for real now
* Use system services, rename ids->keys
* Start on docs on mutations
* Updates to match main
* Add fetch-by-id
* Add one/many resolvers for mutations
* Check system collection rows for singleton
* Fix resolver extraction for single read
* Share delete return type
* Add comments
* Use collection root name for readable type
* Add specs endpoint for GraphQL SDL
* Update docs
* Add note on SDL spec
* Fix delete single example
* Remove package-lock
* Fix collection read scoping in non-read
* Rotate JPG image on upload #4206
* fixes#3949 width/height generated for gif and tif
* API hooks for event added for auth.login #4079
* updated doc for api hooks for new auth.login event
* Style tweaks
* Update docs
* Tweak docs some more
* Spelling error
* Allow non-required flags and pass to hook
* SDK - Persistent login refresh fixes#4113
* Fixed#4145 SDK, Token Expired error
* Spell check
* Docs Spell check
* Docs Spell check
* Docs Spell check
* update docs for sdk-js
* To delete all expired session from db on login
* corrected the condition for the delete
* changed the from Date.now to new date .
* Move it inline
* fixes issue 4557 for asset quality for thumbnail
* asset documentation is updated
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>