* 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
* 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
* 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>
* 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>
* Moved refactoring from LDAP branch
* Moved Auth into packages
* Updated frontend to support custom auth providers and make implementation more flexible
* Fixed exception handling and numerous bugs. Also added provider support to graphql
* Updated frontend to be able to set provider and identifier
* Fixed issue with setting the auth provider in app
* Updated package-lock.json
* Updated package-lock.json
* Cleanup, adding type handling and disabled changing provider
* Added title formatting to SSO links
* Fixed incorrect type export
* Fixed incorrect rc
* Update api/src/services/authentication.ts
* Updated sub-dependencies to rc87
* Fixed linting errors
* Prefer sending provider name as config var
* Pass clone of user info to auth provider instead of reference
* Moved auth from packages into core
* Removed generic login handler
* Fixed graphql complaint
* Moved exception back to api and cleaned up URLs
* Minor tweak
* Pulled across improvements from openid branch
* Fixed fix that wasn't a fix
* Update auth.ts
* Update auth.ts
* Update authentication.ts
* Update login-form.vue
* Regression fixes and cleanup
* Minor flow improvements
* Flipped if and fixed linting warning
* Un-expanded object that didn't need to be expanded!
* Trimmed auth interface for consistency when verifying passwords
* Removed auth-manager, changed login endpoint, broke out SSO links, removed username support, disabled updating external_identifier, generate provider options as part of field generation
* Cleaned up some code comments
* Use named exports in local driver
* Use async defaults for auth abstract class
* Use JSON for auth_data field
* Move session data blob to directus_sessions
* Remove unused export, rename auth->authDriver
* Opinionated changes
* Move login route registration to driver file
* Revert app changes in favor of PR #8277
* Send session token to auth provider and opinionated changes
* Added missing translation
* Fixed empty elements for users without email
* Update api/src/auth/drivers/local.ts
* Move pw verify to local driver, remove CRUD
* Opinions > logical reasoning
* Use session data, cleanup login method on auth serv
* Remove useless null
* Fixed breaking changes from refactor, and fixed build
* Fixed lint warning
* Ignore typescript nonsense
* Update api/src/services/authentication.ts
* Fix provider name passthrough
Co-authored-by: Aiden Foxx <aiden.foxx@sbab.se>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Updating environment syntax prefix to identify prefix per item
* Updating environment syntax prefix documentation to show how to add prefix to array value
* Add additional example
Co-authored-by: Juan Carlos Blanco Delgado <juancarlosjr97@gmail.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Move accountability type to shared
* Rely on shared for parse-filter
* Install date-fns
* Support dynamic variables in conditional fields
Closes#7157
* Allow custom transformations of assets
This exposes one query parameter `transforms`, which is a JSON array of
shard transformation operations.
It also updates the asset presets. The UX for this still needs some work
* Rename options to arguments for presets
More explicit
* options -> arguments in setting spec
* Better errors for invalid JSON in asset presets
* Add limit to transforms query parameter
* Use flattened option for extra transforms
* Fix placeholder color of code input
* Allow "simple mode" aliases
* Add documentation
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Rework cache handler to be function export
* Add default schema caching
* Add schema cache
* Auto purge schema cache on schema change from api
* Only set last_access value on login
* Add note on schema cache setting
* Add support for _FILE environment variables
* Enhance processing of _FILE env vars
* Same processing as with other env vars (do not simply treat as string)
- tested successfully
* Warn if both variables are set (EXAMPLE and EXAMPLE_FILE)
* Add comments to make it easier to understand the code
* Set newKey only after file read was successful
* Don't convert value > MAX_SAFE_INTEGER to number
Thanks to @skizer!
As stated by @skizer (from #6119):
Altho it seems that we do have a numerical value
it can happen that its outside of Number.MAX_SAFE_INTEGER
thus resulting in a change of the original intended value
e.g oauth -> discord -> client_id
* Fix recursive logger-env import
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Incorrect parsing of numeric values in env.
* Fixes incorrect parsing of the env. file with numeric values that are outside of Number.MAX_SAFE_INTEGER resulting in unwanted behaviour.
- Like wrong client_ids for oauth. (tested with discord oauth)
* Removed unnecessary multiple "IF" statements since value can only be ether one of the listed values.
* Implements custom_param for OAUTH via grant
According to grants documentation you can provide additionally custom parameters to supported OAUTH provider with ```custom_params```.
This change allows to add them in JSON format and thus adding multiple parameters.
* Fix linter warnings, remove JSON support in favor of nested Grant support
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* add override support for env module
* Override instead of merge w/ config file
* Default to reading .env instead of process.env
* Make env available in process.env
* Add docs for config-files
* Extend note
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>