This uses a *slightly* patched version of node's uri module to allow
commas and colons in hostnames, which causes the parsed representation
of replica sets to be less-awful.
Hostname are still somewhat broken in this representation, because we
have an array of hosts expressed as a list, but this is the
minimum-effort solution to getting format to be able to reprint a parsed
replica set correctly.
I understand that we probably don't want to merge this (for a lot of
reasons), but at least this shows exactly where the issue is, and yields
some useful discussion.
The mongodb driver requires auth values be URI encoded:
044063097d
This uses node's built-in url module to encode the auth portion, by
parsing and re-formatting it, which causes special characters to get URI
encoded properly:
https://nodejs.org/api/url.html#url_escaped_characters
This is all a bit silly since mongodb just takes our passed uri, and
runs it through the same url parser again, but not before explicitly
erroring on '@' characters in the uri.
This is similiar to #148 (reverted by #297), but with much less code,
and hopefully less breakage. Also, note that `uri_decode_auth` is no
longer needed. That was removed in the above referenced
node-mongodb-native commit.
I've tested this on usernames and passwords with @, !, +, and a space.
Presumably this would also work with usernames and passwords that are
already URI encoded (since parseUrl will simply unescape it, and
formatUrl will escape it again).
* 'master' of https://github.com/ParsePlatform/parse-server:
Remove limit when counting results.
beforeSave changes should propagate to the response
Fix delete relation field when _Join collection not exist
Test empty authData block on login for #413
Fix for related query on non-existing column
Fix Markdown format: make checkboxes visible
Fix create wrong _Session for Facebook login
Modified the npm dev script to support Windows
Improves tests, ensure unicity of roleIds
Fix reversed roles lookup
Fix leak warnings in tests, use mongodb-runner from node_modules
Improves documentation, add loading tests
Improves loading of Push Adapter, fix loading of S3Adapter
Adds public_html and views for packaging
Removes shebang for windows
Better support for windows builds
Fix add field to system schema
Convert Schema.js to ES6 class.
Get GCSAdapter up to snuff with FilesController + FilesControllerTestFactory
* 'master' of https://github.com/ParsePlatform/parse-server: (102 commits)
Remove duplicated instructions
Release and Changelog for 2.1.4
fixes missing coverage with sh script
Fix update system schema
Adds optional COVERAGE
Allows to pass no where in $select clause
Sanitize objectId in
Fix delete schema when actual collection does not exist
Fix replace query overwrite the existing query object.
Fix create system class with relation/pointer
Use throws syntax for errors in SchemasRouter.
Completely migrate SchemasRouter to new MongoCollection API.
Add tests that verify installationId in Cloud Code triggers.
Propagate installationId in all Cloud Code triggers.
Add test
expiresAt should be a Date, not a string. Fixes#776
Fix missing 'let/var' in OneSignalPushAdapter.spec.
Don't run any afterSave hooks if none are registered.
Fix : remove query count limit
Flatten custom operations in request.object in afterSave hooks.
...
- Drops mailController, centralized in UserController
- Adds views folder for change_password
- Improves PromiseRouter to support text results
- Improves PromiseRouter to support empty responses for redirects
- Adds options to AdaptableController
- UsersController gracefully fails when no adapter is set
- Refactors GlobalConfig into same style for Routers