* base neg tests
* more tests for migrations run()
* tests passing
* updated test
Co-authored-by: Jay Cammarano <jaycammarano@gmail.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
All assets transformed by Vite are fingerprinted, so they can be cached indefinitely.
The html entrypoint should never be cached to always import the latest assets.
The only downside to this is that files from the "public/" folder are also cached for at least a year.
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* add datetime format check
* updated error message thrown
* removed unneeded "T" from date format
* updated date validation and parsing to use the date-fns functions
* notifications still being made when email fails
* moved try/catch into sendmail
* double checked it works this time
* Add newline for consistency
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* query function added to list
* dashboard reading query, adding to object
* typecasting of filter vals needed still
* numbers accepting strings too
* json-to-graphql-query => devD
* fixed unneeded return in list index.ts
* stitching and calling but not actually calling
* calls on panel change
* query object += new panel before dashboard save
* uuid generated in app not api
* fixed panel ids in query
* fixed the tests I just wrote
* passing the query data down!
* list showing data
* objDiff test moved to test
* metric bug fixes + data
* dashboard logic
* time series conversion started
* timeseries GQL query almost there
* query querying
* chart loading
* aggregate handling improved
* error handling for aggregate+filter errors
* removed query on empty queryObj
* maybe more error handling
* more error handling working
* improvements to erorr handling
* stitchGQL() error return type corrected
* added string fields to COUNT
* pushing up but needs work
* not an endless recursion
* its not pretty but it works.
* throws an error
* system collections supported
* refactor to solve some errors
* loading correct
* metric function fixed
* data loading but not blocking rendering
* removed redundant code.
* relational fields
* deep nesting relations
* options.precision has a default
* relational fields fix. (thanks azri)
* the limit
* limit and time series
* range has a default
* datat to workspace
* v-if
* panels loading
* workspaces dont get data anymore
* package.json
* requested changes
* loading
* get groups util
* timeseries => script setup
* list => script setup
* metric => script setup
* label => script setup
* declare optional props
* loadingPanels: only loading spinner on loading panels
* remove unneeded parseDate!!
* applyDataToPanels tests
* -.only
* remove unneeded steps
* processQuery tests
* tests
* removed unused var
* jest.config and some queryCaller tests
* one more test
* query tests
* typo
* clean up
* fix some but not all bugs
* bugs from merge fixed
* Start cleaning up 🧹
* Refactor custom input type
* Small tweaks in list index
* Cleanup imports
* Require Query object to be returned from query prop
* Tweak return statement
* Fix imports
* Cleanup metric watch effect
* Tweaks tweaks tweaks
* Don't rely on options, simplify fetch logic
* Add paths to validation errors
* [WIP] Start handling things in the store
* Rework query fetching logic into store
* Clean up data passing
* Use composition setup for insights store
* Remove outdated
* Fix missing return
* Allow batch updating in REST API
Allows sending an array of partial items to the endpoints, updating all to their own values
* Add batch update to graphql
* Start integrating edits
* Readd clear
* Add deletion
* Add duplication
* Finish create flow
* Resolve cache refresh on panel config
* Prevent warnings about component name
* Improve loading state
* Finalize dashboard overhaul
* Add auto-refresh sidebar detail
* Add efficient panel reloading
* Set/remove errors on succeeded requests
* Move options rendering to shared
* Fix wrong imports, render options in app
* Selectively reload panels with changed variables
* Ensure newly added panels don't lose data
* Only refresh panel if data query changed
* Never use empty filter object in metric query
* Add default value support to variable panel
* Centralize no-data state
* Only reload data on var change when query is altered
* Fix build
* Fix time series order
* Remove unused utils
* Remove no-longer-used logic
* Mark batch update result as non-nullable in GraphQL schema
* Interim flows fix
* Skip parsing undefined keys
* Refresh insights dashboard when discarding changes
* Don't submit primary key when updating batch
* Handle null prop field better
* Tweak panel padding
Co-authored-by: jaycammarano <jay.cammarano@gmail.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
* moved config-options.md to self-hosted
* added non-docs files that link to config-options
* moved SSO and fixed links
* moved upgrades-migrations into self-hosted
* moved filter-rules into reference docs and fixed broken links
* Add depth limit to filtering
* Add depth limit to GraphQL
* Add docs
* Rename environment variable
* Add simple deep filter depth calculation
* Update error message
* Shift fields depth check to base function
* Remove unused var
* Implement GraphQL filter depth
* Add check for _and & _or filters in GraphQL
* Add check for _and & _or filters in REST
* Remove commented code
* Add check for REST filter query
* Add REST tests
* Setup m2m using directus fields
* Add GraphQL tests
* Fix linter error
* Cleanup calculateDepth + add docs/tests
* Remove validator in GraphQL
* Add depth checking for nested sort
* Enable source map to display correct error lines
* Set max relational depth to be at least 2
* Update tests
* Add unit test for deep _sort
* Add minimum value in docs
* Refactor depth validation to be in validateQuery
* Add boolean parameter for calculation of _sort in deep query
* Use array of keys to parse dot notation
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Fix range to be based on current time
* Parse using localtime for fields without timezone data on SQLite
* Add tests
* Parse test response to int
* Refactor to options object
* Read timestamps as UTC for Oracle
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>