`api.use('/', middleware, ...)` will end up calling `middleware` for _every_ request, even if no routers in the `...` part matches.
This is because passing a router to express is just like passing any other route handler. The only thing that happens when it doesn't match a route is that it calls `next`, but by that point, the middleware has already run.
The changes in the PR avoids adding the middleware twice for every route except file upload routes. Which will make express not call `allowCrossDomain` twice for every incoming request.
* adding database.version in the serverInfo (only MongoDB, it gives undefined when using Postgres)
* . correction of old 'features' tests
. adding engine and database in the StorageAdapter interface and implementations
* . version retrieval done in performInitialization
. PostgreSQL version
* performInitialization now returns a Promise
* allow setting readpreference when using rest api.
* take out partially complete unit test.
* oops. nit
* Include read preference option for find directly from api and adding few more tests
* Adding catch for all tests
* Keep same check for get and find
* Turn read preference case insensitive
* Includes and subqueries read preferences through API
* Fixing bugs regarding changes that were done in master branch during the last year
* Changing behavior to make includeReadPreference and subqueryReadPreference to follow readPreference by default
* Changing __indexBuildCompletionCallbackForTests callback to serverStartComplete
* Improving serverStartComplete callback to avoid production unhandled promise rejection
* Add test to check inexistence of unhandled promise rejection on server fail
* Removing some hooks delays
* Removing delay after reconfigureServer
* Improving code style
* Support direct access config
test options
* add test
* fix test
* fix definitions
* improve docs
* Update .travis.yml
* Revert "Update .travis.yml"
This reverts commit 407f1384953b64bad9e63068db8564c3584ca3a4.
* remove no-op config of logger
* add a test to check on the timestamp
* add a test to verify that we
get non json console loggging by default
* configure transports to include
timestamps in files
* Add failing test to confirm that WinstonLoggerAdapter
is not filtering on level.
* actually fix the test to refelect the facth that this isn't the problem
* Remove bogus date ranges that are now failing
becuase we have timestamps.
* Fix failing tests
* just ignore the test for now.
* Bumping jasmine
* Fix pg unhandled exception
* Improving the way the test is fixed
* Fix unhandled failed promise in postgres test
* Solving unhandled promise fail on redis test
* Returning the excluded test
* Fixing package-lock
* Fix unhandled promise from redis test
* it actually supports group by date fields
* Changing the field name again to see Travis logs
* Adding match stage to the test
* Adding test for group by date fields on postgres
* Add a tests that fails due to issue #5285
* Make test code much simpler
* Fix#5285 by rewriting query (replacing $nearSphere by $geoWithin)
All credit goes to @dplewis !
* move logic to transform
* Add beforeLogin trigger with support for auth providers
* adjust comment that boxed off beforeLogin to a negative use-case only
* add internal error to help future maintainers regarding use of beforeLogin
* let beforeLogin accept className or constructor like other hook types
* add assertions for beforeLogin trigger className validation
* added an RFC 7662 compliant OAuth2 auth adapter
* forgot to add the actual auth adapter to the previous commit
* fixed lint errors
* * added test coverage
* changed option names in auth adapter from snake case to camel case
* added underscore prefix to helper function names
* merged consecutive logger calls into one call and use JSON.stringify() to convert JSON objects to strings
* changed error handling (ParseErrors are no longer thrown, but returned)
* added description of the "debug" option and added this option to the tests too
* added a check of the "debug" option to the unittests and replaced require() of the logger with an import (the former does not work correctly)
* added AuthAdapter based auth adapter runtime validation to src/Adapters/Auth/index.js, added capability to define arbitrary providernames with an "adapter" property in auth config, replaced various "var" keywords with "const" in oauth2.js
* incorporated changes requested by flovilmart (mainly that oauth2 is now not a standalone adapter, but can be selected by setting the "oauth2" property to true in auth config
* modified oauth2 adapter as requested by flovilmart
* bugfix: defaultAdapter can be null in loadAuthAdapter() of index.js (my change broke the tests)
* added TODO on need for a validateAdapter() to validate auth adapters
* test cases and cleanup
* Changed count to be approximate. Should help with postgres slowness
* refactored last commit to only fall back to estimate if no complex query
* handlign variables correctly
* Trying again because it was casting to lowercase table names which doesnt work for us/
* syntax error
* Adding quotations to pg query
* hopefully final pg fix
* Postgres will now use an approximate count unless there is a more complex query specified
* handling edge case
* Fix for count being very slow on large Parse Classes' collections in Postgres. Replicating fix for Mongo in issue 5264
* Fixed silly spelling error resulting from copying over notes
* Lint fixes
* limiting results to 1 on approximation
* suppress test that we can no longer run for postgres
* removed tests from Postgres that no longer apply
* made changes requested by dplewis
* fixed count errors
* updated package.json
* removed test exclude for pg
* removed object types from method
* test disabled for postgres
* returned type
* add estimate count test
* fix mongo test
* fix minor spelling mistake
* Always process userSensitiveFields if they exist
* Cover change to protectedFields
Add start of some more tests for protectedFields
which i need to do to document the feature.
* re-arrange promise deck chairs to not
swallow errors.
* remove noop code
* protect agains the case where options.protectedFields
is set without a _User permission.
* adapted public api route for use with ajax
* Elegant error handling
* Fixed error return
* Public API error flow redone, tests
* Fixed code to pre-build form
* Public API change password return params
* Reverted errors in resetPassword
* Fixed querystring call
* Success test on ajax password reset
* Added few more routes to tests for coverage
* More tests and redone error return slightly
* Updated error text
* Console logs removal, renamed test, added {} to if
* Wrong error sent
* Revert changes
* Revert "Revert changes"
This reverts commit 68ee2c44bf2411ca8b56b039a4d490a7e2f99ae9.
* real revert of {}
* nits and test fix
* fix tests
* throw proper error
* added failing test case to CloudCode.spec.js
a possible bug found where beforeSave does not apply changes to request
object if the beforeSave hook ends with 'true' returned
* moddified triggers to return null when beforeSave
also changed test cases to be more descriptive + added extra test case that returns promise in the beforeSave
* address original issue
* Revert "address original issue"
This reverts commit e01c57d1de5c4b2fe21e9ebd590211d21330cdda.
* fix promises and tests
* Add a test to verify that a failed beforeChange hook will
prevent updating the object.