Commit Graph

18 Commits

Author SHA1 Message Date
Benjamin Woodruff
836582fdb1 Fix failing tests for uri encoding auth
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.
2016-03-16 14:31:44 -07:00
Benjamin Woodruff
a30c81745a Add URI encoding to mongo auth parameters
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).
2016-03-16 14:31:44 -07:00
steven-supersolid
dbf2afc5ea Add database options to ParseServer constructor and pass to MongoStorageAdapter 2016-03-10 16:49:45 +00:00
Nikita Lutsenko
d86f0a8c69 Use schema collection instead of adaptive collection for all schema operations. 2016-03-09 15:21:29 -08:00
Nikita Lutsenko
2730398b92 Add new MongoSchemaCollection class that manages schemas for all collections. 2016-03-09 15:20:59 -08:00
Nikita Lutsenko
fb5b8fb58f Migrate Schema.js to adaptive mongo collection. 2016-03-08 00:53:51 -08:00
Nikita Lutsenko
a163327ac9 Remove usages of non-adaptive collection inside DatabaseController. 2016-03-08 00:53:51 -08:00
Nikita Lutsenko
f2ead46580 Remove .rawCollection method from DatabaseController. 2016-03-07 17:22:27 -08:00
Nikita Lutsenko
fa6954169e Migrate ParseGlobalConfig.spec to new database storage API. 2016-03-07 14:11:43 -08:00
Nikita Lutsenko
172da3aaa3 Move HooksController to use MongoCollection instead of direct Mongo access. 2016-03-04 19:21:34 -08:00
Nikita Lutsenko
244009923f Add findOneAndUpdate to MongoCollection. 2016-03-02 00:29:18 -08:00
Nikita Lutsenko
e39286d88b Implement findAndDelete in MongoCollection and move SchemasRouter to it. 2016-03-02 00:28:37 -08:00
Nikita Lutsenko
9538a7dab5 Make parts of SchemasRouter use adaptiveCollection. 2016-03-01 22:36:23 -08:00
Nikita Lutsenko
49994b6e87 Add MongoCollection and adaptiveCollection abstraction to MongoAdapter. 2016-03-01 22:36:23 -08:00
Nikita Lutsenko
2733c0924b Remove direct mongo access from Schema.spec.js. 2016-02-29 19:47:08 -08:00
Nikita Lutsenko
028ef2a7b2 Remove dependency on raw mongo from SchemaRouter.delete. 2016-02-29 19:47:08 -08:00
Nikita Lutsenko
eb892830e6 Move and cleanup getting collections into MongoStorageAdapter. 2016-02-29 12:51:43 -08:00
Nikita Lutsenko
997da898eb Split mongodb connection creation from DatabaseController. 2016-02-29 12:50:47 -08:00