* Prefix typecasting field flags
* Fix payload test
* Update flags for system tables and for field creation in app
* Revert cast-hash and cast-uuid
* Rename migrations file to current date
* Use script setup
* Start on export dialog
* Use new system field interface, replace limit with numeric input
* Set placeholder
* Add sort config
* Use folder picker, correct layoutQuery use
* Add local download button
* Allow writing exports to file
* Add notification after export
* Fix sort config, use new export endpoint
* Setup notification hints
* Add information notice
* Fix local limit, cancel button
* Add (basic) docs for export functionality
* Fix json export file format
* Implement xml batch stitching
* Resolve review points
* Add "authenticate" filter hook that allows custom auth check
* Start on test
* Update Jest, restructure API tests, start implementing authenticate test
* Move access token verify to util function
* Ensure jest can show inline warnings on correct lines
* Update is-directus-jwt to use jsonwebtoken decode + add tests
* Remove unused package
* Tweak and finish + test authenticate
* Tweak test
* Add authenticate filter to docs
* Don't scan tests for codeql
* No seriously, ignore tests
* Start by stripping out the previous Union attempt
* Then set limit to -1, causing massive memory issues on big data sets
* Now fix the memory problem by batching the responses
* Use env var for max relational batch size
* Rename env var, add to docs
* tsconfig loosened to match api
* integration test folder and script
* .env mock isn't needed
* mock-env, locations of tests
* I was wrong.
* Updated progress
* schemas => getSchema(), exported getColumnPreprocessor()
* change imports to allow build
* add MockClient as DB Client (should mock getDBClient())
* move authservice into. not used elsewhere
* test passing
* remove unneeded test for this PR
* removed unneded fields from rawItem
* formatting
* createOne test passing
* typo
* removed int specific jest.config
* use systemSchema over getSchema()
* this.knex over getDatabase()
* mock getDatabaseClient
* removed unused mock-env
* formatting
* removed unused collections from schema
* response => responseOnce
* more direct
* unused var
* more tests please!
* test for: createOne no permissions
* removed broken test for now
* clean up
* readOne tests what does into db and returned
* added bindings check
* added into db sql check
* moved tests outside src
* changed ts config
* cli test location changed
* removed looking for tests in src
* readding it for e2e tests? Seems fishy
* Integration tests for ItemsService user tables (#11208)
* renamed ItemsService test to match src file name
* add user table schema
* system/user tables use .each, formatting needed
* format system and user better in title
* tables/table=> schemas/schema
* filter _eq test passing
* comment for later and formatting
* everything in it's right place
* future proofing as more fields are added
* removed duplicate test
* formatting
* readMany() filter: _or
Co-authored-by: Jay Cammarano <jaycammarano@gmail.com>
* added knex check before getDatabase()
* Move util test to tests folder
Co-authored-by: Jay Cammarano <jaycammarano@gmail.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Fix date resolution in share info endpoint
* Add note on leaving fields blank
* Tweak example to use proper db client
* Treat mysql 0000-00-00 00:00:00 as null
* Fix migration for mysql 5
* Add missing defaults to system fields
* Separate caching of dynamic user vars from permissions
* Cache filterContext only when permissions are cached
* Reset merge
* Reapply changes
* Reduce nesting
* Add missing assignment
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Refactor parseFilter to only flatten filter entries that need it
* Fixed typescript check
* Use custom get function instead of lodash's.
* Improved get function readability
* Allow null result from shared parseFilter
* Add missing defaultValue in get function
* Change parseFilter argument type from Record<string, any> to Filter | null
Co-authored-by: ian <licitdev@gmail.com>
* [API] m2a filtering fix
MySQL does not support CAST to VARCHAR type.
* Use CHAR(255) instead of CHAR
Co-authored-by: Oreille <33065839+Oreilles@users.noreply.github.com>
* Update geometric types and patch new field flow.
* Add migration
* Fixed migrations
* Also fixed migrations
* Update migration ID
* Cleanup type selector a bit
* Add missing fallback interface/display for new types
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Move union query application to applyQuery, fix where clause
Fixes#9228
* Handle case where union IDs length = 0
* Return modified db query
* Apply union last
* [Fix]: Use hash instead of random for default index name
* Move hash function to separate util file
* Reduce max size of index name to 60 from 64
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Fix generated columns being required. Also prevent schema changes on generated columns.
* Fix type errors
* Disable `unique` and `nullable` instead of not showing them.
* Fix other type error
* Nullable check small refactor
* Fixed MSSQL query
* Fixed oracle query
* Use default filter operator for type in filter input. Also fix error on geometry operator update.
* Fixed tests.
* Only reset geometry filter value when necessary
* Support `null` for boolean operators.