* 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
* adding comments to env-stub
to improve for autogenerated .env file during install - is this too verbose?
* Completing adding comments to vars
* Update api/src/cli/utils/create-env/env-stub.liquid
Co-authored-by: Aiden Foxx <aiden.foxx.mail@gmail.com>
* Thanks to @aidenfoxx
* header changes
* updating db ports to default
* header change again
* Added meaning of values in [ ]
* remove quotes on string bools
* remove in favour of generated env stub
* remove example.env
* use online help for poss env keys
* grammar, needs a comma!
* remove trailing comma
Co-authored-by: Aiden Foxx <aiden.foxx.mail@gmail.com>
* Support listen option for allowing server to listen on wanted IP address or host
* Change default listen value from localhost to 0.0.0.0
* Update LISTEN variable to HOST
* fix formatting
* Update docs/configuration/config-options.md
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* 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>
* base changes for cockroachdb
* allow creating of tables
* allow deleting of fields
* allow deleting of tables
* rebase
* fix migrations
* bump knex-schema-inspector to 1.7.0
* Update package-lock
* Add cockroach to debugging docker-compose file
* Remove unused import
* Tweak name in example.env
* Force nullable primary keys in cockroach
* Tweak shares migration to run on cockroach
* Rename var for clarification
* suggestion for migration helper
* change to schema and update remaining migrations
* Remove custom cockroach schema in favor of sharing with pg
* Fix migrations for CockroachDB
* Hopefully fix Oracle migrations 🤞🏻
* Make ~~aiden~~ oracle happy
* Resolve branching paths in migrations
* Enable tests for cockroach
* Fix test config
* One more config change for good measure
* Adjust test to match cockroach's bigint auto-int structure
* Increase request timeout for mssql
* Update api/src/database/helpers/schema/types.ts
Co-authored-by: Aiden Foxx <aiden.foxx.mail@gmail.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
Co-authored-by: Oreille <33065839+Oreilles@users.noreply.github.com>
Co-authored-by: Aiden Foxx <aiden.foxx.mail@gmail.com>
* Add extension auto reloading to the API
This can be enabled by using the `EXTENSIONS_AUTO_RELOAD` env var.
* Add logger message indicating watch mode
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Moved over oauth impl to new interface
* Fixed most build issues and started addind schema to auth drivers
* Finished up OAuth2 and OpenID drivers
* Removed unused migration and utils
* Fixed minor todos
* Removed old oauth flow
* Changed oauth flow to re-use refresh token
* Added new oauth frontend
* Added font awesome social icons
* Updated authentication documentation
* Update api/src/auth/drivers/oauth2.ts
* Tested implementation and fixed incorrect validation
* Updated docs
* Improved OAuth error handling and re-enabled creating users with provider/identifier
* Removed Session config from docs
* Update app/src/components/v-icon/v-icon.vue
* Removed oauth need to define default roleID
* Added FormatTitle to SSO links
* Prevent local auth without password
* Store OAuth access token in session data
* Update docs/guides/api-config.md
* Fixed copy and removed fontawesome-vue dependency
* More docs fixes
* Crucialy importend type fiks
* Update package-lock
* Remove is-email-allowed check
In favor of more advanced version based on filtering coming later
* Fix JSON type casting
* Delete unused util
* Update type signature to include name
* Add warning when code isn't found in oauth url
and remove obsolete imports
* Auto-continue on successful SSO login
* Tweak type signature
* More type casting shenanigans
* Please the TS gods
* Check for missing token before crashing
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* 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>
* 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>
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.
* 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
* update dependency commander to v8
* Update import to match new version
Co-authored-by: Renovate Bot <bot@renovateapp.com>
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