mirror of
https://github.com/directus/directus.git
synced 2026-01-14 12:27:59 -05:00
loadtests
58 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
21f85040ea | Run formatter (#25604) | ||
|
|
17bf9be79e |
Add Services Type support for @directus/extensions (#25368)
* feat: add services type * refactor: replace UserIntegrityCheckFlag from @directus/types * refactor: replace AbstractServiceOptions from @directus/types * refactor: replace MutationOptions from @directus/types * refactor: replace ActionEventParams from @directus/types * refactor: replace AbstractService from @directus/types * refactor: replace Webhook from @directus/types * refactor: replace Range, Stat, ReadOptions, & ChunkedUploadContent from @directus/types * refactor: replace asset types from @directus/types * refactor: replace LoginResult from @directus/types * refactor: replace snapshot types from @directus/types * refactor: replace Action & PayloadServiceProcessRelationResult from @directus/types * refactor: replace ExportFormat from @directus/types * refactor: replace database types from @directus/types * feat: implement ExtensionsServices within @directus/extensions * feat: replace QueryOptions from @directus/types * fix: formatting issue * fix: adjust extensions services type * fix: generic type for each service * fix: typescript errors for missing imports * refactor: update ReadOptions & ChunkedUploadContext type exports to pull from @directus/types * refactor: move DirectusError to @directus/types & add DirectusExtensionsError to @directus/types * feat: add MailService, GraphQLService, SpecificationService, and move required exports to @directus/types * refactor: move extension types to @directus/types * refactor: move extension constants to @directus/constants * refactor: adjust type imports for @directus/composables * refactor: adjust imports for @directus/extensions-registry * refactor: adjust import for @directus/errors * refactor: adjust imports for @directus/themes * refactor: adjust imports for @directus/extensions-sdk * refactor: adjust imports for studio app * feat: implement ExtensionService and migrate types to @directus/types * fix: revert sdk type changes * fix: reexport types moved from @directus/extensions to @directus/types * fix: remove @directus/themes from @directus/extensions * refactor: move AppField to fields file * chore: remove @directus/themes from @directus/types * chore: remove @directus/extensions from @directus/types * fix: rebase issue with DirectusError generic * chore: remove @directus/types from sdk * fix: add missing exports to original packages * fix: update getAppExtensionChunk return type * chore: revert DirectusError changes * chore: revert Collection fields key * refactor: rename RawSchemaCollection to ApiCollection * fix: add RawCollection from @directus/types * fix: import GraphQLParams from @directus/types * fix: formatting issue * chore: add changeset * chore: revert rename of ApiOutput * Update .changeset/purple-crews-sink.md * Update .changeset/purple-crews-sink.md Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> * Update .changeset/purple-crews-sink.md Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> * Update .changeset/purple-crews-sink.md Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> * Update .changeset/purple-crews-sink.md Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> * Update .changeset/purple-crews-sink.md Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> * Update .changeset/purple-crews-sink.md Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> * Update .changeset/purple-crews-sink.md Co-authored-by: ian <licitdev@gmail.com> * fix: rebase pnpm-lock error --------- Co-authored-by: Brainslug <br41nslug@users.noreply.github.com> Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> Co-authored-by: ian <licitdev@gmail.com> Co-authored-by: Alex Gaillard <alex@directus.io> Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> |
||
|
|
4f94a26b56 |
Add native support for RTL direction (#25494)
* Setup language_direction user setting * Add option translations * Add rtl const * Return dir from getCurrentLanguage * Set htmlAttrs for lang / dir * Update tests, fix fallback * Add test:watch script * Add rtl transform in icon file * Make sure the progress bar animates rtl Devil's in the details * Make sure sidebar animates correctly on smaller screens * Care too much about the details * Fix directionality on slider * Fix drawer transitions * Arrow alignment in settings * Stacked drawers effect * Full screen navigation * Revert menu alignment * Fix nudging on smoke click * Add changeset * Update app/src/components/v-menu.vue Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Format * Format rebased work * One more formatting quirk * Update app/src/lang/translations/en-US.yaml Co-authored-by: Florian C. Wachmann <dev@formfcw.com> * Update .changeset/giant-cloths-play.md Co-authored-by: Florian C. Wachmann <dev@formfcw.com> * Add translation * Remove importants * Improve typing in get-current-language * Update app/src/views/private/private-view.vue Co-authored-by: Florian C. Wachmann <dev@formfcw.com> * Update app/src/views/private/private-view.vue Co-authored-by: Florian C. Wachmann <dev@formfcw.com> * Fix tooltip directions * Refactor user store to setup script * Add language/dir to userStore * Replace getCurrentLanguage w/ userStore * Make html attrs reactive * Rename language_direction to text_direction * Appease the robot overlords * Add text-direction to user type * Make text-direction not nullable * Fix arrow alignment * fix top tooltips * run formatter * mirror directional icons * Fix positioning for rtl * Fix flow attachments * Replace magic number with const * Start refactoring arrows business logic No way to properly write unit tests for these bits otherwise. Increases the surface of this PR quite a bit, but feels like a necessary evil... * Move minMaxPoint to separate file * Move is-point-in-panel out * Move generateCorner to separate file * Update docs * Move range function out * Move find-best-position to separate file * Move get-points to separate file * Move generate-path out of main fn * Move create-line to separate file * Rewrite docblock * Add tests for generate arrows * Make sure icons are only mirrored in rtl * Add RTL for flow arrows * Run formatter * Remove extraneous setLanguage calls * Fix mocks * Fix generate test * Fix review notes * Fix pinia test stubbing * Fix test runner and add coverage for rtl * Mock global pinia in v-info test * Remove unused imports * Remove unused type --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Florian C. Wachmann <dev@formfcw.com> |
||
|
|
0e532648e0 |
Added backlink query param (#25284)
* Added backlink query param * add to sdk * fmt * fix and add more tests * fmt * Add check for boolean just in case Query params should be strings, adding check since type is unknown Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Ensure no duplication * small fix * Create shaggy-bears-begin.md * Update .changeset/shaggy-bears-begin.md Co-authored-by: ian <licitdev@gmail.com> --------- Co-authored-by: ian <licitdev@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
556f36fb42 |
Add anonymous project id to telemetry (#25300)
* Install uuid * Add project id on migrate/install * Include project id in telemetry * Add changeset * Fix snapshot * Use migration timestamp for project_id UUID generation Updated the migration to use the timestamp from 'directus_migrations' as the msecs value when generating the project_id UUID. * Fix formatting * Add into types and sdk * update changeset --------- Co-authored-by: ian <licitdev@gmail.com> Co-authored-by: Connor Winston <connor@winston.guru> Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> |
||
|
|
c85234cff5 |
Add BSL License Banner (#25299)
* Build out license-banner component * Implement display logic * Add migration * Mobile styles and add correct links * Add dynamic color support for license SVG * Add UTM links * Changes from design review * Copy changes and styles to fit * Add changeset * Add all packages to changeset * Improve translation interpolation to allow for accurate translations * Combine license_banner_seen and license_banner_disabled to accepted_terms and rename env var * Format * Capitalize translation * Fix formatting error * Use nbsp character instead of interpolation (#25308) Co-authored-by: Alex Gaillard <alex@directus.io> --------- Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> |
||
|
|
a39730d208 |
Improved testing for applyQuery (#25022)
* restructure * add changeset * add schema builder for primary fields * fmt * add relational generation * add more tests and clean schema.ts * fmt * add changeset * add more tests and tidy up existing ones * add more tests and clean code * add standalone a2o relation * add tests and clean up even more logic * continue working on tests * update more tests * update tests and reorganize files * more tests and take appart applyFilter * update test for get-filter-type * update export * fmt * fmt * fix import * fmt * fix middeware change * remove leftover files * Update api/src/database/run-ast/lib/apply-query/get-filter-path.ts * fix pnpm lock * remove unused imports --------- Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> |
||
|
|
b23fd0086d |
Add SchemaOverview builder for internal testing (#25011)
* restructure * add changeset * add schema builder for primary fields * fmt * add relational generation * add more tests and clean schema.ts * fmt * add changeset * add standalone a2o relation * update export * fmt * fix omit * minor final fixes * make package private * fmt --------- Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> |
||
|
|
975ec764e1 |
Add Visual Editor (#24758)
Co-authored-by: Alex Gaillard <alex@directus.io> Co-authored-by: ian <licitdev@gmail.com> Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> |
||
|
|
d4f001cdc9 |
Update policy type definition (#24791)
* updated policy type def * Create four-hotels-repair.md |
||
|
|
ef179931c5 |
Merge from fork (#24714)
* claering active sessions when an users status changes * clear sessions after update mutation * add session to accountability * Clear sessions when email or password changes * small optimization * format * Remove sensitive comments * Update tests --------- Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> Co-authored-by: ian <licitdev@gmail.com> |
||
|
|
e288a43a79 |
Fix permission generation for Shares 📰 (#23716)
* Start work on share permissions * implement fix for shares * only allow shares on read * clean up * more cleanup * cleanup * account for undefined action and collections array * run formatter * strip out references to role * fix linter * add changeset * fix linter again * update readme? * remove cyclic deps * bring back support for role * run linter * Always generate valid case/when statement even if the filter does not add any conditions * fallback to public instead of user on no role * runformatter * fix mergePermissions * run formatter * undo readme * get rid of this "weird" snake_case 😶 * fix migration * parallelize awaits and remove unused fields * run formatter * add tests to get-permissions-for-share * format tests --------- Co-authored-by: Hannes Küttner <kuettner.hannes@gmail.com> Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> |
||
|
|
189fcb24f7 |
Reduce dependencies on activity and revisions tables (#23612)
* Extract comments to a separate table (#22295)
* Add directus_comments migration
* Add comments controller and service
* Remove from activity
* Update system-data and types
* Refactor app with new endpoints
* Expose service
* Update app minimal permissions
* Add collection translation
* Define relations
* Allow comment creation only if there's item read access
* Patch for MSSQL double constraints issue
* Fix users service test
* Add sdk support
* Update specs
* Fix formatting
* Fix specs error
* Patch whoopsie
* Remove obsolete GraphQL mutations
* Update required fields
* Remove unused vars
* Allow edit and delete of legacy activity comments
* Remove legacy comments from SDK
* Add changeset
* Batch upwards migration
* Update SDK to use keysOrQuery
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
* Update implementation for keysOrQuery
* Remove singleton check
* Update SDK to use keysOrQuery 2
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
* Update keysOrQuery typedoc
* Fix import
* Update migration timestamp
* fixed import
* Update api/src/utils/get-service.ts
* utilize chunk processing in migration
* formatting
* only services extended from itemservice should be added
* remove redundant checks from comment header
* update comment service to v11 permission format
* specify missing required fields
* Mock comments in users test
* Simplify migration and update date
* WIP legacy access
* Optimise imports
* WIP app cleanup
* Update loadUserPreviews typing
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
* Read legacy comments
* Parse using comments service
* Perform migration directly
* Fix legacy app sort query which uses id
* Migrate legacy comments in mutations
* Reduce api semver
* Update app recommended permissions
* Recommend updating of comment only
* replace hardcoded type with existing one
* Allow users to update or delete their own comments
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
* Skip further access validation for non-existent collections
* Check if collection exists before the admin check
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
* Fix incorrect legacy check
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
* Fix merging of count when db returns count as string type
* Remove unused import
---------
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com>
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
* Consolidate content versioning (#22413)
* Add migration
* Use the new delta field
* Add cast-json flag
* Fix typing
* Fetch existing deltas if version created during migration
* Add changeset
* Add version delta field into sdk schema
* Update migration timestamp
* Update versions.save() to return finalVersionDelta
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
* Sort on DB level
* Update migration date
* Disallow passing delta via create/update
* Update docs & specs
* Fix save response
* Remove unnecessary access check
Already checked by the subsequent itemsService.readOne call
* Update changeset
* Don't require update perms on versions for save
* Optimize validateCreateData
* update to new validateAccess
* Update docs/reference/system/versions.md
* Remove migration of delta
* Rename to legacy
* Add missed changes for Remove migration of delta in
|
||
|
|
9739f170f1 |
Update typings for defineInterface, etc (#23714)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> |
||
|
|
9faac0164e | Merge branch 'main' into v11-rc | ||
|
|
3ef539d2d2 |
Add null filtering to equality operators (#23163)
* Add null filtering to equality operators * Add changeset |
||
|
|
a9cca2cea6 |
Introduce created_on date field for files and adjust uploaded_on to be updated with every upload (#23035)
* Update date fields on directus_files * Add changeset * Use knex update instead of raw --------- Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> |
||
|
|
ea098e0413 |
Merge branch 'refs/heads/main' into chore-v11-merge-main
# Conflicts: # api/package.json # api/src/cli/commands/bootstrap/index.ts # app/package.json # directus/package.json # packages/composables/package.json # packages/create-directus-extension/package.json # packages/env/package.json # packages/errors/package.json # packages/extensions-registry/package.json # packages/extensions-sdk/package.json # packages/extensions/package.json # packages/memory/package.json # packages/pressure/package.json # packages/storage-driver-azure/package.json # packages/storage-driver-cloudinary/package.json # packages/storage-driver-gcs/package.json # packages/storage-driver-s3/package.json # packages/storage-driver-supabase/package.json # packages/system-data/package.json # packages/system-data/src/relations/relations.yaml # packages/themes/package.json # packages/types/package.json # packages/utils/package.json # packages/validation/package.json # pnpm-lock.yaml # sdk/package.json |
||
|
|
266e043c0e |
Add support for the TUS protocol (#22673)
* WIP initial TUS tests * WIP further tus integration * WIP authenticate uploads * boilerplate stuff * Migrated handlers * resolving type errors * tackle some build errors * WIP moving resumable uploads to its own package * added migration and integrated local file storage into directus files * cleaned up local store * cleaned up failed experiments * prettier * Add tus_data and tus_id to system data * Improve file upload progress estimation for multiple files * bypass creating a revision per uploaded chunk * fixed accidental commit * Fix pause/resume for multiple uploads * Null coalesce all the way * Added directus locking logic * prettier * Small tweak (added resume uploads dialog) * authentication * Add remove to resumable uploads * added delete endpoint and cleaned old service setup * WIP s3 storage adapter * Less breaking of interfaces, more breaking of text * Moved local adapter to its own package * Prettying some things up * Sort resumable uploads by creation time * Fix resumable uploads dialog popping up on second file upload * Move buttons around & properly handle error * s3 * A few changes - Make S3 driver work more reliable - Move common logic to tus driver class - Respect `folder` when uploading from a different folder - Implement cleanup for both local and S3 * synced dependencies * accept presets * Remove extra code for folder, as this is handled in presets now * Rename migration to most recent date * updated lcokfile * prettier * dont fully rely on the sudo service * removed unused import * Hide partial file uploads from the API * satisfy linter * Refactor tus into storage driver * Fix merge conflicts * Update pnpm-lock * Fix typing issue * nuked tus driver packages * updated environment vars * prettier * Change type import style * Fix S3 cleanup * Use `modified_on` instead of tus creation date * Pass chunk size to storage drivers * Add sudo service to scheduled job * Make cleanup work even if no upload was done before * Remove "Resume Uploads" interface * Update packages/env/src/constants/defaults.ts Co-authored-by: ian <licitdev@gmail.com> * Add config docs * Add resumable to dictionary * moved chunk filter to service * simplify middleware * use lodash * Update api/src/services/tus/data-store.ts Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> * move to devDeps * package lock * fixed import * updated test mocking * Create a new TUS server handler for every request instead of one global one * Allow for tree-shaking tus-client * Rename resumable-uploads.ts to tus.ts * Extract meta data from uploaded file * Only consider full parts or the final part for bytesUploaded in S3 * Add additional sanity check to S3 driver * Remove pause/resume functionality * fixed file replacement * Remove unused expose * Reintroduce defineExpose and expose abort * Broken file replace * fixed replacement * prettier * added filesize in replace * update metadata extraction * Remove unused import * updated package-lock * extra validation check * oops --------- Co-authored-by: Hannes Küttner <kuettner.hannes@gmail.com> Co-authored-by: Hannes Küttner <4376726+hanneskuettner@users.noreply.github.com> Co-authored-by: ian <licitdev@gmail.com> Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> |
||
|
|
2273480c6d |
Implement the new permissions policy (#22773)
* WIP start on migrations
* Add migration
* Don't insert if there's no rows
* Use service to read/write permissions
* Use payload service rather than itemsservice
* Start on downgrade command
* Update system data structure
* Update migrations to keep structure flat
* Remove icon from policies
* Drop policies table on downgrade
* Rearchitect migrations to structure v3
* Add down migration
* Update system fields
* Add policy to fields import
* Fix public role attachment
* Update packages/system-data/src/fields/index.ts
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
* Update packages/system-data/src/fields/policies.yaml
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
* Add nested roles
* Remove unused step
* Use two o2ms instead of m2a for attachments
* Update system data
* Implement permission policies in the API (#22384)
* Update system data structure
* Update migrations to keep structure flat
* Remove icon from policies
* Drop policies table on downgrade
* Rearchitect migrations to structure v3
* Add down migration
* Update system fields
* Add policy to fields import
* Fix public role attachment
* Update packages/system-data/src/fields/index.ts
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
* Update packages/system-data/src/fields/policies.yaml
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
* Add nested roles
* Remove unused step
* Use two o2ms instead of m2a for attachments
* Update system data
* [WIP] Start reorging permissions handling
* Setup field extraction
* Remove watch from vitest
* Finish fieldMap creation logic
* Add tests for utils
* Improve tests
* Improve coverage
* Split test and test:watch
* Continue on this fun
* [WIP] Setup processing
* Sort roles
* Restructure to util files for org
* Add missing util tests
* More tests
* Add cases/whencase to ast
* Start on injection logic
* Add tests for inject cases
* Add tests for process
* Add todo
* Organize run-ast
* Add clear method to kv
* Remove reliance on acc.perm
* Restructure permissions setup
* Drop perm from acc, add roles/policies
* Remove get-permissions in middleware
* Remove/comment use of acc.perm
* Add default roles/permissions
* Use knex
So we don't have to initialize the schema before we want to use the accountability system
* Use new fetching logic in get accountability
* Add new fetch global access utils
* Gotta redo based on new setup
* Replaced with new util
* Remove dropping of perm in acc
It's no longer there by default, so no need to remove here
* Temporarily comment out the enforce tfa check
* Update usage of fetch tree to use knex
* Don't store policies on accountability
* Feed in roles thru acc
* Bit of whitespace
* Rename role->policy
* Wreck some more stuff
Jk, this is splitting up the large get-ast-from-query function into smaller individual functions to make it easier to update the wildcard conversion to use permissions
* Add ability to lookup all allowed fields in col+ac
* Add note so I don't forget stuff which i will
* Handle null acc
* Introduce parseAst to itemsservice
* That cleans things up
* Replace checkAccess with validateAccess
* Remove checkaccess from service
* cleanup imports
* Whoops one more
* Leave crumbs for next time
* Implement most of the fn
* Fix various tests
* Start on test for fetch roles tree
* Add tests for fetch roles tree
* Fix process tests
* All. of. the. tests.
* Update uses of validateAccess
* Fix name in runAst
* Fix use of accountability in gql sub
* Deprecate authorization service
* Remove getPermissions use
* Drop old getpermissions
* Pass services
* Replace admin/app uses with fetch global
* Update fetch user count to pull from policies
* Remove broken admin existence checks
* Update min accountability
* Remove unused import
* Drop permissions override from controller
* Refactor reliance on acc.perm
* Replace usage of permissions in fields
* Replace usage of permissions in import/export
* Drop permissions use from relations
* Drop no longer used method
* Remove unused import
* fix type usage of pk in validate
* Fix default acc in user
* Replace use of permissions in utils
* Update reduceSchema in specs/gql
* Remove old share merging
* Remove empty file
* Remove outdated comment
* Use ctx objects for large param fns
* Add with-cache memoize util
* Add cache to fetchpermissions
* Update caching use in fetchRolesTree
* Add caching to fetchAllowedFieldMap
* Add more cache
* Refactor call signatures
* Move call signature updates
* Handle presets
* Update process call sig
* Prevent infinite recursion in roles tree lookup
* Use create util for acc
* Remove old checkIp
* Fix where equality operator
* Break EVERYTHING!
Jk just cleaning up the structure some more, and removing the dep injection in favor of mocking
* Fix build
* Add missing module tests
* Don't crash on missing parent
* Fix role lookup
* add missing type annotation
* use logical-OR assignment and avoid a memory allocation
* Attach admin policy in default admin creation
* Fix admin check
* Add todo for later
* rm code duplication
* fix test
it was missing the new `roles`
* add types and fix type error
policies dont [yet] have an icon
* move spread order to avoid potential future mishaps
new default keys would override the manually set keys, potentially leading to unintended behavior
* reduce allocations, add escape hatch to loop and type db-row
* Implement case/when
* Clean up comments
* Optimize perm fetching in allowed f
* Move apply case when to util fn
* Optimize fetch-allowed-fields
* Add fetch inconsistent util
* Allow nulls
* Remove obsolete getCacheKey
* Remove unused import
* Update getAccountabilityForRole test
* Update fetchGlobalAccess test with one more test case + fix other test case
* Type cleanup
* Fix "admin access means automatic app access" in fetchGlobalAccessForQuery
* Clean up and expand fetch-inconsistent-field-map.test.ts
* Test uncached functions
* Test uncached
* Remove cases usage in parse-current-level
* Only consider non-null rules in inject cases
* Fix parseCurrentLevel call
* Move service imports into functions to avoid circular imports
* Ensure that we test that an error is thrown in processAst test
* Add failing test case for flattenFilter
* Ensure uniqueness in extractPathsFromQuery
* Early exit in validatePath
* Add additional test case for process payload test
* Update validateCollectionAccess test
* Clean up validate-item-access.test.ts
* Remove redundant initializer
* Use createDefaultAccountability
* Fix fetch-user-count.test.ts
* Cleanup unused default initializer
* Add empty cases to subfilter in _relationCount
* Drop AccessService and PermissionsService usage from services
* Found some more PermissionsServices
* Fix a few more tests
* Add nested role relation
* Fix query invocation in aggregate and group queries
* Fix role property name in auth/refresh
* Add some missing relations for permissions, access and roles
* Add m2o relation from permissions to policy
* Add m2o relation access to role, user, policy
* Allow fetchPermissions to fetch all permissions and not just those limited by an action
* Add parent to Role type
* Make sure that admin users see all fields
* Add access and policies controller, add util methods to policies and access service
* Change name and description of public policy, update description of admin policy and add on delete trigger.
* Make sure access row uuids are auto generated
* optimize kvredis clear function and add a unit test
to be fair: unit test is also testing implementation details but thats a problem there in general and for future us
* Add minimal app permission and dynamic variable injection to the permission fetching
* Fix m2o collection name in extractFieldsFromChildren
* Make sure to clone permission before injecting dynamic variables
* Actually do the cloning in with withAppMinimalPermissions since people might missbehave with the permissions obtained from PermissionsService.readByQuery so it better to go the source of the problem
* Use knex transaction in createOne -> processPayload - otherwise deadlock
* Make sure to respect '*' field in allowed fields
* Fix extractFieldsFromChildren for o2m as well - classic
* Fix allowed field check in `FieldsService.readAll` to account for multiple permissions for collection+action
* Skip case/when if `allowedFields` includes '*'
* Restructure the way the current users permissions are returned
* add ability to clear all keys from memory cache
* add test for clear method
* add await to clear function
* Clear permissions caches on changes to policy attachments (directus_access) and policy updates (directus_policies) and permissions updates (directus_permissions)
* Make the public role a real role rather than a virtual one
* Inject the public role, we're it previously was `null`
* Revert adding a fix public role
* remove unused variable
* Ensure that a user without a role can still use the /me util endpoints
* Make sure that the /me endpoints always return minimal information, similar to /users/me
* Some fixes after merging main
* Update api/src/permissions/utils/with-cache.ts
Co-authored-by: Hannes Küttner <4376726+hanneskuettner@users.noreply.github.com>
* Avoid broken role query for now
* Skip related collection `parseFields` if user has no permissions
* Ensure same call order as in `convertWildcards`
* Create default admin policy and connect it in cli init command
* Remove obsolete middleware mock in app.test.ts
* Add validation against non-existent fields and collections to `validatePath`
* Split up permission and path existence validation and validate path existence for admin users as well
* Make applySearch not async
* Fix relation extraction and permissions for `$FOLLOW` fields
* Fix case when for related collections and query wrapping
* Rework user integrity checks for Auditus (#22737)
* Changes to user counting and integrity checks
* Ensure that user validation happens in both create one and create many
* Rename `checkType` to `flags`
* Update api/src/permissions/modules/validate-remaining-admin/validate-remaining-admin-count.ts
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
* Update to enum usage
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
* A few more changes to enum instead of number
* One more enum type update
* Make sure to correctly override the callback when combining options
* Clean up option type
* Update api/src/services/users.ts
Co-authored-by: ian <licitdev@gmail.com>
* Only take validation shortcut for users
We can only be sure that the deletion of users does not increase any other access types count, so in all other cases we need to verify that for example the App or API users have not increased over the limit
* Make both app and admin users count against app access limit
* Update api/src/permissions/modules/validate-remaining-admin/validate-remaining-admin-count.ts
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
* One post-merge fix, two small fixes
* Simplify flag updating and callback calling
* Changing app access in a policy only requires user limit checking, not full check
* Only the status of a created user should matter to determine if a check is neccessary
* Add count alias to count query
---------
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Add roles and permissions to the app (#22654)
* Initial app changes
* Fix getRelationsForField
* Add changeset
* Remove app-permissions from role settings
* Make sure access row uuids are auto generated
* Move a few things around, set up policies m2m properly
* Show roles as tree in sidebar
Change avatar field query for user
* Show user and role count in policy table
* Default to not adding app access for a policy, makes composability less annoying
* Correctly fall back to 0 for counts
* Change the structure of current user permissions
* Start bringing back the public role
* Make the public role a real role rather than a virtual one
* Revert public role changes
* Extend list-m2m to allow for very custom junction matching and a primary key of `null`
* Remove unused
* Fix public role policy update payload
* Fix app access for users without role (which is a thing now apparently)
* Make sure that the /me endpoints always return minimal information, similar to /users/me
* Tweak nav icons
* Pull policy id from constants
* Update permissions interface design to match
New design language in figma
* Some minor adjustments
- Make chip hover border more consistent
- Add "Remove" button to remove a full row of permissions, as in the UI mockup
- Fix table layout
* Clean up a few more things
* Fix `setFullAccess`
* Align collection view icons with navigation
* Don't query 'admin_access' for role
* Fix relation extraction and permissions for `$FOLLOW` fields
* Don't show `0 Items` for child rows, but `--` instead
* Make policy detail work in nested policy creating use case
* Remove unused v-icon override
* Move system collections to separate visual table
* Navigate before refresh
Prevents a flash of the previous value to be visible in the table
* Move composable to separate file
---------
Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Optimize types
* Clone query deep
* Optimize type order
* Throw error on invalid role id
* Rename run.js -> run-ast.js
* Re-add filesizes to telemetry report collection that got lost in the merge
* Make `systemCollections` reactive
* Use one column per action to avoid unwanted shifting if some actions are not allowed at all
* Render system and custom together
* Add divider between regular and system permissions if both have elements
* Add AccessService and PoliciesService to `getService`
* Move policy global flags fetching to util
* Move collection access fetching into util
* Remove permissions for `directus_access`, `directus_permissions` and `directus_policies` from schema permissions
* use formatted-value display for name & description in roles & policies
* Rename `process.ts` to `process-ast.ts`
* Fix process-ast import after renaming
* Perform user integrity check on item deletion
* Fix first admin creation on bootstrap
* Revert "Fix first admin creation on bootstrap"
This reverts commit
|
||
|
|
78db52949c |
Add support for custom URLs for email verification (#22565)
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> |
||
|
|
c893b9fa65 |
Add public registration (#22125)
* WIP: add new register dummy-route * fix notice on register route * WIP register form * WIP: registering ui and controller for testing * fix lint ordering problem * wip: users service * add migration, initial style for fields in settings * redo how emails will be filtered * WIP add filter in the register handler * conditionally render register link depending on settings * WIP: add email validation * wip add email sending * make clicking the email link work * rm console log * update controller * dont send emails for existing emails * add translation * only show register link when unauthenticated * add different redirects * only allow selecting non-admin roles * redirect to users page * update translation * move logic from controller to usersservice * rm remnant of logic from controller * add stall time to registration * update translation * rm comments * rm unused var * add changeset * update translation for success * remove sso related stuff from registration * also allow setting first and last name * update error check * add @directus/errors to app * replace error strings with enum * rename to public_registration * rename to public_registration_verify_email * add notes to fields * add types package to changeset * dont stall if no work is being done * allow null-role and resending of reg. email * add public registration env vars, rm RATE_LIMITER_GLOBAL_STORE RATE_LIMITER_GLOBAL_STORE wasnt being used. Lets just stick to RATE_LIMITER_STORE for all rate limiters. TODO: also remove from docs! * use ratelimiter for registration, use stall time env var * add registration limiter docs, rm global store variable from docs * update changeset * add ignore-notice Co-authored-by: Hannes Küttner <4376726+hanneskuettner@users.noreply.github.com> * use and document new `EMAIL_VERIFICATION_TOKEN_TTL`, also doc `REGISTER_STALL_TIME` * change variable name Co-authored-by: ian <licitdev@gmail.com> * apply variable rename to usage * change backticks to single quote Co-authored-by: ian <licitdev@gmail.com> * inline variables * add fields to server info, update types - The other ratelimiters also expose points and duration, done - Add `public_registration_verify_email` so that we can render different success messages * tiny wording tweak of registration mail * add new user status 'unverified' and check for it * add unverified status translation * decouple email verification and validation * enable register rate limiter by default and up its config * add autocomplete=new-password on the registration form * added sdk functions * add gql query for new fields * added register api reference * updated verify sdk function name * added reference block for email verify endpoint * updated reference examples * WIP: add gql resolvers * add ratelimiter to mutation * remove ratelimiter registration point+duration info * rm points and duration from gql * Update docs/reference/system/users.md Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> --------- Co-authored-by: Hannes Küttner <4376726+hanneskuettner@users.noreply.github.com> Co-authored-by: ian <licitdev@gmail.com> 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> |
||
|
|
537d7f1e36 |
Revert "Consolidate content versioning (#22227)" (#22412)
This reverts commit
|
||
|
|
5a258dd406 |
Consolidate content versioning (#22227)
* Add migration * Use the new delta field * Add cast-json flag * Fix typing * Fetch existing deltas if version created during migration * Add changeset * Add version delta field into sdk schema |
||
|
|
d10385d303 |
Fix large and real numbers in search query (#22345)
* Add db search helper * Use raw query for redshift * Fix SQL injection possibility Co-authored-by: Brainslug <br41nslug@users.noreply.github.com> * WIP fix for MS SQL * Improved big int support and value limit checking * prettier * updated for failing test * Added missing lower bound * Add missing lower bound at another place * Rewrite helpers for postgres * updated constants * extracted utils * updated types * prettier * renamed searchhelper to numberhelper and extracted parseNumericString util * moved constants up the tree * moved constants and types to packages * prettier * Add type guard for numeric field * Fix import - so much for auto imports... * Use isIn helper * Drop implementation specific test * Remove temporary vite file * Move parseNumericString to its own file * Rename orWhere * Fix wrong type * Fix test after merge * Change constants import location * updated postgres valid condition * Added same stringify logic for oracle * Add helper for sqlite and catch big int parsing error * Add curly brackets and redundant catch argument --------- Co-authored-by: Brainslug <br41nslug@users.noreply.github.com> Co-authored-by: Brainslug <tim@brainslug.nl> |
||
|
|
c9105eaead |
Use Item/PrimaryKey from and move Alterations to @directus/types (#22027)
Co-authored-by: ian <licitdev@gmail.com> |
||
|
|
7bea23b7f5 |
Add the ability to configure the error, bug and feature URLs (#21174)
* add report url fields * update field template to be agnostic * add changeset * various fixes * rename handler to load path level * add translations * updated docs * fix tests * add placeholder support for system-display-template * refactor project to report and move to their own settings section * example urls should be more concrete Co-Authored-By: Pascal Jufer <5363448+paescuj@users.noreply.github.com> * move hardcoded default report urls to constants Co-Authored-By: Pascal Jufer <5363448+paescuj@users.noreply.github.com> * Make nav reactive, so URL changes are immediate * change order of report urls * change icon to feedback * move composable to top level * remove ref, use from prop * Update .changeset/tender-timers-develop.md Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> * rm select_a_collection_or_tree_fields translation key --------- Co-authored-by: Pascal Jufer <5363448+paescuj@users.noreply.github.com> Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> Co-authored-by: Daniel Biegler <DanielBiegler@users.noreply.github.com> |
||
|
|
a9b628baa6 |
Deep merge relational fields in content versions (#21386)
* deep merge content version saves * update content version graphql * moved version merging to its own middleware * added query param to request the unmodified version * make sure the App uses the raw version format * prettier * removed unused middleware * initial recursive version merging * use loop instead of spreading * cleanup * accept boolean strings as versionRaw query value * added middleware sanity check * initial mergeVersionsRaw tests * initial mergeVersionsRaw tests * started merge tests * initial m2o tests * initial tests * fixed logic for initial tests * prettier * more tests * fixed brought up by tests * first level relational tests * testing nested relations * fixed recursiveness * more prettier * namin consistency * the prettiest * Create chilled-icons-provide.md * Add breaking change note * updated graphql for version merging * prettier * added new sdk query param * implemented judds feedback * Enable singleton * Slightly reformat/reword breaking change Thanks @w0kyj! * Clarify comment about primitive type substitution Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> * replaced for in loops * applied isObject check * prettier * Short issue link * Update changeset * added sso guide warning * pretttier * update sso guide instead of warning * prettier * reverted SSO guide from other PR, nothing to see here * Added cloneDeep to be safe * removed snake case --------- Co-authored-by: Brainslug <tim@brainslug.nl> Co-authored-by: Brainslug <br41nslug@users.noreply.github.com> Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> |
||
|
|
920942a99f | Fix issues in & enhance Access Control settings (#21543) | ||
|
|
2c4883ae42 |
Filter system collections based on the system property (#21197)
Co-authored-by: Jan Arends <jan.arends@mailbox.org> Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> |
||
|
|
1136c20628 |
Support video files in public background (#21291)
* Return type information about public background * Render public backgrounds as video as per type * Don't authenticate the files service * Add changeset * Fix css layering * Update types * Update assets.ts Co-authored-by: Brainslug <br41nslug@users.noreply.github.com> --------- Co-authored-by: Brainslug <br41nslug@users.noreply.github.com> |
||
|
|
56b809abe4 |
Fix item permissions check (#21152)
* Introduce permissions API endpoint to fix item permissions check * Add changeset * Revision - Wrap API response in 'data' prop - Split-up usePermissions composables & add tests - Rework all permission checks * Remove obsolete test * Revision 2 - Singleton support - Bug fixes - Use permission composables wherever applicable - Complete tests * Update mock path in archive test * Move remaining checks to usePermissions composables * Update docs * Lint & spelling fix * Add SDK method * Require authentication for getItemPermissions service * Add blackbox tests * Use multi-line if Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> * Format JSON code blocks * Use correct type for computed values Co-authored-by: Brainslug <tim@brainslug.nl> * More explicit check & add comments --------- Co-authored-by: daedalus <44623501+ComfortablyCoding@users.noreply.github.com> Co-authored-by: Brainslug <tim@brainslug.nl> |
||
|
|
062c8f23f6 |
Add focal point support for images (#20768)
* add visual feedback for invalid value
* add focal point MVP
* Revert "add visual feedback for invalid value"
This reverts commit
|
||
|
|
66411ad383 |
Rename legacy role's ip_whitelist to ip_access (#20970)
|
||
|
|
5e72ea1b08 | Patch Tuesday 🐸 (#20714) | ||
|
|
ba7fac402e | Update Prettier v3.1.0 (#20481) | ||
|
|
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> |
||
|
|
76f60913e3 |
Secure Extensions (#20031)
* start setting up types * Add types for sandbox flag * Add initial secure API extensions implementation * Remove erroneous file * Delete old exec implementation * Read sandbox from extension manifest * Rename \0virtual to @directus/virtual-ent4y * Test register exec * Add exec function using ivm callback * Throw error on invalid type * Make extensions individually unregisterable * Remove support for secure bundle extensions * Rework context passing to fix async * Remove unused promise.resolve * Start implementing secure extension register and context functions * Rename secure to sandbox * Only dispose isolate on catastrophic error * Use callback copy option instead of explicit ExternalCopy * Add registerOperation handler * Add registerRoute handler * Rename some return values * Rename sandbox registration file * Expose utils through sdk import * Remove unused files * Rename timeout to sleep for consistency with flows * Make registerRoute method uppercase * Add request util * Abort process on catastrophic error * Update api extension sdk import name * Add variables for reference parameters for consistency * Add permissions to request util * Fix non-determinism when registering sandboxed extensions * Improve stack trace readability * Initialize isolated-vm for Vitest * Format files * Fix request options undefined check * Always copy host function result into isolate * Split up host function reference generation * Add workaround for async error from host not thrown in isolate * Use undefined instead of null as first argument to apply * Abort process if sandbox has reached memory limit * Reorganize files * Use type error for assertion * Use typeerrors in sdk generators, restructure some more * Document * Add changeset --------- Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de> Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> |
||
|
|
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
|
||
|
|
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 |
||
|
|
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> |
||
|
|
302a7a1909 |
Fix layout previews in presets view (#19528)
* Fix layout previews in presets view * Add changeset --------- Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com> |
||
|
|
84eee63dbf |
Allow to pass type to useItem & fix User type (#19308)
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> Co-authored-by: Brainslug <br41nslug@users.noreply.github.com> |
||
|
|
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> |
||
|
|
16ed93c9b9 |
Expose case-insensitive variants of _starts_with and _ends_with (#18941)
Co-authored-by: RubensRafael <rubensrafael2@live.com> Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> |
||
|
|
bc7e92e4b0 |
Add boilerplates for da project (#18642)
* Move data types to data package * Setup boilerplate for driver * Add basic data manager class * Rename "datastore" to "store" * Rename "fieldNodes" -> "nodes" Opinions incoming! * Setup manager basics * fix pnpm-lock file * Regenerate pnpm-lock file with pnpm v8.5 * add flowchart diagram * revert flowchart diagram * Add a basic data driver for PostgreSQL (#18808) * add very basic query builder * Start new data-sql package * Start noodling * Results of friday collab session * add tests and separate function * add flowchart diagram * fix tests * dependency diagram and fix * add tsdocs * fix query builder test * small refactoring * add underlying error in error message * add tests for escape function * add check if pool has a client to query the db * revert tests, query func handles clients itself * Update packages/data-sql/package.json * Resolve comments * Pass query * Add tsup * Remove compileroptions with tsup usage * Split up converter * Update graph --------- Co-authored-by: rijkvanzanten <rijkvanzanten@me.com> * Improvement: Add albanian language translation (#18810) * Add albanian to available languages * Add me as contributor (CLA) * Create fair-clouds-exercise.md --------- Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> * Add extra type check in apply-diff (#18783) * Fix content filter between (#18821) * fixed incorrectly typecast value * Create popular-toes-tap.md * Created new contribution pages for non-code contributions (#18820) * Community * Fixed copy in community page * Sponsrship and advocacy * Clarified 80/20 rule in support page * Reworked contribs intro * Contributing sidebar * Remove backing directus page * Translations updates * Spell check --------- Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> * Reuse S3 client and increase maxSockets (#18799) * Reuse S3 client and increase maxSockets * Update test to check for timeouts and non-2xx responses * Create beige-olives-beam.md * Fix unit tests * Update packages/storage-driver-s3/src/index.ts Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> * Update .changeset/beige-olives-beam.md Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> --------- Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> * Switch to tsup builds * Don't require connect/disconnect * Add test for engine * Fix tests * Cleanup tests * Update tests * Add destroy method * Call register on register * Tweak readme to drop connect * Add changeset * Wrapper function for random identifiers (#18870) * add util function in data for random identifiers * move wrapper into random package * fix docs typo Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> * Rename to identifier and add test --------- Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> Co-authored-by: rijkvanzanten <rijkvanzanten@me.com> * Update packages/data/readme.md Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> --------- Co-authored-by: Jan Arends <jan.arends@mailbox.org> Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> Co-authored-by: Nino Gjoni <49320058+ninogjoni@users.noreply.github.com> Co-authored-by: Brainslug <br41nslug@users.noreply.github.com> Co-authored-by: Kevin Lewis <kvn@lws.io> Co-authored-by: ian <licitdev@gmail.com> |
||
|
|
f96dcc361f |
Translation string performance (#18097)
* broken migration * fixed migration * created new endpoints for translation strings * updated to use core endpoint * bad attempts at making the endpoints sensible * merge changes * implemented translation strings service * re-integrating app logic part 1 * re-integrating app logic part 2 * fixed bad lodash import * re-integrating app logic part 3 * removed obsolete tests * make the linter happy * Create tender-trees-buy.md * added option to search-input * implementing search * fixed resizing and sidebar * Fix linting * Remove unused translations update into project settings * Fix missing translations * Require read permissions for app access * Fetch translation strings only when authenticated * Fix project default language not used when user has default language * Remove commented line * Rename variable as content has been changed * Make the current user check more specific * Remove translation_string from Settings type * Remove settings reference in docs * Update changeset * Rename migration file to ensure date order * Rename collection, route, service, controller * Rename migration * Adjust collection in settings route * Fix translations service * Use new `shouldClearCache` util * Drop translation_strings column in migration Co-authored-by: ian <licitdev@gmail.com> * Added basic api docs * updated dictionary * updated dictionary * Update app/src/interfaces/_system/system-input-translated-string/input-translated-string.vue Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de> * Update app/src/modules/settings/routes/translation-strings/collection.vue Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de> * extracted getCurrentLanguage utility * Use regular collections/items * Use regular controller * Fix item view * Set correct system field config for translations * Tweaks * Use UUID * Finish placeholders * Use drawer-item * Add create to the store * Remove composables * Add new placeholder * Fix saving behavior * Remove previous take * Rename migration after merge of live preview * Generate uuid when migrating * Remove unused showFilter * Fix linting * Fix type warnings * Not needed as settings no longer contain translation_strings * Remove leftover blank line * Update getCurrentLanguage with server default and use in hydrate * Shift getCurrentLanguage to lang folder to be alongside setLanguage * add elipsis to placeholder * Remove slug from key, so you can use dots etc in the key * updated translation value to be type text again * Rehydrate fields for updated translation values * Add tooltip * updated documentation * enforce key/language uniqueness in the TranslationService * updated error message * updated docs menu item to "custom translations" * Dynamically fetch translation keys for input-translated-string interface * use get current language in refresh * Update docs/reference/system/translations.md * Update docs/reference/system/translations.md * Update .changeset/tender-trees-buy.md * Fetch translation keys when new key is created * Update api/src/services/translations.ts * Remove translation_strings remnant Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> * mark key, language and value as required * correctly mark fields as required * Catch duplicate key error when creating from input * Translate translations :-) * Update tender-trees-buy.md --------- Co-authored-by: ian <licitdev@gmail.com> Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de> Co-authored-by: rijkvanzanten <rijkvanzanten@me.com> |
||
|
|
ed8b0e0394 |
Live preview (#17794)
* Add split view to the private view
* add more functionality to split view
* change text
* add simple size settings
* finish basic live preview feature
* add reload functionality
* update pnpm-lock
* update to newer design
* remove console.log
* Fix height of main content
* update design
* finishing fixes
* run linter
* finishing cleanup
* rebuild lock file
* lint fix
* hide preview for collections without preview urls
* fix refresh and eslint error
* use v-text-overflow for preview url
* use bottom placement for consistency
because other buttons such as Open in New Window and Refresh shows their tooltip at the bottom.
* tiny code tweak with early return
* remove fun parts and change divider color
* fix preview for singletons
* slightly improve the refresh button feedback
* hide zoom in fullscreen/desktop view
it is disabled in fullcreen, but some users may think they can click it, so I've opted to hide it instead. Especially since switching from mobile to desktop mode always resets it to 100%.
* tiny early return tweak
* opt to fix v-select disabled state cursor
* reverse zoom scaling order
* prevent preview going out of bounds when zoomed
* fix dragging when pointer enters iframe
* reinstate previous code tweak
* regenerate lock file
* use lockfile from main
* Dear linter...
* chore: add live preview to sidebar
* docs: add frontmatter
* docs: add intro
* docs: before you start
* docs: live preview in directus
* docs: draft mode in nextjs
* docs: fetch with draft mode
* docs: preview content in directus
* docs: next steps
* docs: update
* docs: updates
* docs: add live preview to collections
* docs: add live preview to item
* docs: updates
* docs: update
* chore: updates to the nextjs guide
* chore: updates to collections
* chore: updates to items
* Nuxt 3 guide
* Small Next guide fixes
* Added tips
* Spellcheck fixes
* Rework resizement
* Move debounce to private-view
* Update Nuxt 3 guides - styling and sentence clarity.
* add refreshLivePreview custom property to window
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
* remove remaining "window as any" typecasts
* Show 'grab-bar' only if wrapper is in viewport
* toggle preview instead of split in mobile view
* tweak to unwrap nested IF conditions
* do not change preview button icon when enabled
* hide grab-bar in mobile
* check main content width instead of window width
* Fix save-and-stay not updating preview url
* Update refresh button function call
* Add frame loader to prevent flashing
* Prevent scrollbar flashing when toggling splitview
* lift specific logic from v-resizable to private-view
This piece of logic was meant only for the content area and shouldn't affect every v-resizable usages
* use v-show instead of v-if to hide main content
v-resizable has an internalWidth that should not be reset when user resize the left navigation bar, as well as the form shouldn't be re-rendered
* check target to hide the grab-bar in toggle mode
as we're only hiding the target rather than disabling the wrapper, we had to check whether the target is visible as well to determine whether to show the grab-bar
* Fix zoom behaviour & remove leftovers
* remove wrapperIsVisible check
in favor of only relying on targetIsVisible check
* Revert "Add frame loader to prevent flashing"
This reverts commit
|
||
|
|
a708ec79d8 |
Redact additional keys in logs of Flows (#18534)
* Redact additional keys in logs of Flows
* Create moody-poems-pump.md
* Move REDACTED_TEXT to constants package & update tests
* Revert "Move REDACTED_TEXT to constants package & update tests"
This reverts commit
|
||
|
|
6e17d96496 |
Add types for new abstract query (#18555)
* add basic types for data * add changelog * fixes * more types, docs and file name change * added examples * tweak the naming * Collaboratively cleanup types * Cleanup some things I forgot to commit * adjust comments * fix grammar * add some examples in docs * added negation for conditions * more docs * add interface for modifier * include modifiers and and more docs * Start tweaking comments * Rename to @TODO --------- Co-authored-by: rijkvanzanten <rijkvanzanten@me.com> |