* Node modernization on CI
* Makes sure tests dont yeild unhandled promise rejections
* Adds small delay to startDB
* Adds mongodb service
* testing default
* stupid
* testing with silent nugget
* proper versions
* Single release step
* -Defines new public API route /apps/:appId/resend_verification_email that will generate a new email verification link and email for a user identified by username in POST body
-Add template and url support for invalidVerificationLink, linkSendSuccess, and linkSendFail pages. The invalidVerificationLink pages includes a button that allows the user to generate a new verification email if their current token has expired, using the new public API route
-All three pages have default html that will be functional out of the box, but they can be customized in the customPages object. The custom page for invalidVerificationLink needs to handle the extraction of the username and appId from the url and the POST to generate the new link (this requires javascript)
-Clicking a link for an email that has already been verified now routes to the emailVerifySuccess page instead of the invalidLink page
* Fix package.json repo url to be parse-server againwq
* Fix js lint issues
* Update unit tests
* Use arrow functions, change html page comments, use qs and a string template to construct location for invalidVerificationLink page, syntax fixes
* Remember to pass result when using arrow function
Mongo has a hard limit on 1 $near operation per query. Restructuring to
avoid SERVER-13732 should not invalidate a query by creating multiple
$near operations.
Additionally, queries with multiple $ors are now recursively handled,
whereas before, ops at the top level would only have been pushed one
level deeper.
https://github.com/parse-community/parse-server/issues/3767
* Adds test for the new feature
* Re-validate authData only if mutated
- In case of short-lived tokens (like facebook) this will allow clients to be lax with asking users to re-login
* Add support for push scheduling
Add a configuration flag on the server to handle the availability of
push scheduling.
* Update push controller to skip sending only if scheduling is configured
Only skip push sending if scheduling is configured
* Update bad conventions
* Add CLI definitions for push scheduling
* Adds tests for pushTime
* Adds test for scheduling
* nits
* Test for not scheduled
* Adds index on _Role name property
In order to avoid having different _Role objects with the same name, adding an index on the name property of _Role is necessary.
Fixes#3579
* Uses throw instead of Promise.reject when enforcing unique indexes
* Fixes wrong sorting of results in schemas tests
* adding TTL option for redis cache adapter
* adding test for RedisCacheAdapter
* Fixing adapater var name
* changing timeout
* updating default time
* Fix the redis cache spec to construct the cache with the anticipated ttl
make timeout values really really small so our test run fast :).
In a prior commit, improvements were made to the addition of `_rperm`
in the case of `$or` queries, to avoid MongoDB bug SERVER-13732.
As the vast majority of $or queries previously hit this bug due to the
presence of `_rperm` on most Parse queries), the present solution
avoids the bug and improves query performance in most cases.
However, it's still possible for clients to supply their own queries
which hit that bug, such as those with `_created_at` or `_updated_at`
filters, or their own properties from their data model.
This commit makes the logic currently present for `_rperm` available
to all top level filters that exist alongside an $or query, meaning
SERVER-13732 should be avoided in all cases where keys at the top and
inner levels do not have name clashes.
- https://github.com/ParsePlatform/parse-server/pull/3476
- https://jira.mongodb.org/browse/SERVER-13732
The problem this pr is trying to solve:
When an error occurs on the server, a message should
be returned to the client, and a message should be logged.
Currently, on the server, the log is just [object, object]
This pr will stop calling the default express error handler
which causes two problems: 1. it writes to console instead of log file
2. the output is completely useless! :)
Instead, we'll log the error ourselves using the ParseServer's logger.
fixes: #661
* Update status through increment
* adds support for incrementing nested keys
* fix issue when having spaces in keys for ordering
* Refactors PushController to use worker
* Adds tests for custom push queue config
* Makes PushController adapter independant
* Better logging of _PushStatus in VERBOSE
* Add parseFrameURL for masking user-facing pages.
Allow users to specify a different address which is used to mask parse
requests for verifying email and resetting password. This is how Parse.com
used to allow customers to gain control over page content, styling etc.
On the destination page javascript is used to check the link in the request
and embed the parse server page using IFRAME.
* Fix code indentation
* Rename method for building link and pass config to it.
* Add customPages options to README.md.
* Add tests for parseFrameURL email link building, and parseFrameURL option.
* Add parseFrameURL for masking user-facing pages.
Allow users to specify a different address which is used to mask parse
requests for verifying email and resetting password. This is how Parse.com
used to allow customers to gain control over page content, styling etc.
On the destination page javascript is used to check the link in the request
and embed the parse server page using IFRAME.
* Fix code indentation
* Rename method for building link and pass config to it.
* Add customPages options to README.md.
* Don't Object.assign to defaultConfiguration global
* Adds error reproduction
* Fix transform in order to accept nested array results in $in/$nin
The error originated by the nesting of 2 array in $in [["..."]], using _.flatMap with those will guarantee at the lower level
that the query is properly resolved
* nits
* _.flatMap the $in/$nin values
* Moves all authentication providers to Adapter/Auth
* refactors specs
* Deprecates oauth option in favor of auth option
- Deprecates facebookAppIds option (in favor of auth.facebook.appIds)
- Adds warnings about the deprecated options
* nits