Commit Graph

831 Commits

Author SHA1 Message Date
Kulshekhar Kabra
583887c43c Improve update of jsonb fields. Add PG 9.5 to travis. (#2984)
* Improve update of jsonb fields. Add PG 9.5 to travis.

* Replace manual escaping with pg-promise's built in
2016-11-01 20:55:53 -04:00
Kulshekhar Kabra
78646a3e91 Enable API related tests for Postgres (#2970) 2016-10-31 12:11:21 -04:00
Kulshekhar Kabra
edf6ab6875 Enable query related tests for Postgres (#2969) 2016-10-31 12:10:53 -04:00
Florent Vilmart
48865c765f Adds ability to update a subscription (#2935)
* Adds ability to update a subscription

* Adds unsubscribe to the RequestSchema, makes sure to not fire unsubscribe to the client when updating

* Fix failing tests

* More extensive tests

* fix annotation
2016-10-31 08:12:11 -04:00
Michael Helvey
94178df4d2 Add functionName to invalid function error (#2963)
Currently in the logs if an invalid function is called the error
message just says "invalid function" which is decidedly unhelpful
when looking through server logs.  Now it will say
"Invalid function: "functionName""
2016-10-30 11:58:34 -04:00
Kulshekhar Kabra
4a2f7ff2db Close client connections on SIGINT/SIGTERM (#2964)
* Close all alive connections on SIGINT/SIGTERM

* Add a comment referencing the node issue.
2016-10-30 11:58:07 -04:00
Kulshekhar Kabra
22c790f23c Wrap postgres class creation in a transaction (#2958) 2016-10-28 20:23:37 -04:00
Florent Vilmart
0e78c28146 Fix PG fails (#2957)
* Better support for arrays of objects

* No transaction in class creation
2016-10-28 16:43:52 -04:00
Florent Vilmart
23b77f7261 Live query pubsub adapter (#2902)
* Moves LiveQuery pub/sub to adapter folder

* Adds ability to provide custom adapter for LiveQuery pubsub

* Adds test for function based adapter

* Pass all options to createSubscriber

* nits
2016-10-28 12:06:35 -04:00
Kulshekhar Kabra
f23c0a57ee Fix the error returned when class already exists (#2955)
* Fix the error returned when class already exists

* Wrap the class creation in a transaction
2016-10-28 11:46:19 -04:00
Steven Shipton
e788d49af0 Don't require all keys to be configured to enable key checks (#2816) (#2941)
* Add tests. Fail request if any of the 4 optional keys does not match

* Only require one key to be supplied in the request, except when no keys are configured

* Use const over let, var
2016-10-26 16:44:39 -04:00
Florent Vilmart
278027a955 Google auth: try to validate on both sub or user_id (#2922) 2016-10-26 11:44:56 -04:00
Steven Shipton
151bea25ee Try to retrieve schema from all schemas cache if not found in individual cache (#2912)
* Try to get schema from main schema if not found in single schema

* Add newline

* Add missing return

* Add missing done to tests
2016-10-23 11:59:39 -04:00
Aaron Blondeau
af55cd1efb Add role based ACL checks to LiveQuery (#2893)
* Add acl role check to _matchesACL, start adding tests.

* Add tests for ACL role checks in LiveQueryServer.

* Switch to arrow functions, add immutabalized code from @acinader, swap for loop style.
2016-10-21 23:53:31 -04:00
Florent Vilmart
5dc24334a5 Adds ability to run livequery server on different port (appengine) (#2892)
* Adds ability to run livequery server on different port (appengine)
2016-10-19 17:11:25 -07:00
Florent Vilmart
86f35014f4 Fixes #2780 (#2810)
* Adds regression test for #2780

* Fixes #2780

- Make sure we compare installationId from the data and not the auth when rejecting update
2016-10-19 19:54:19 -04:00
Yuki Takeichi
758975cf03 Revert " Saved filename fixed so that clients display it correctly #2415 (#2705)" (#2833)
This reverts commit 22c1a87d80.
2016-10-19 16:55:20 -04:00
Jeremy Louie
a6a6f7ff60 Fix error when updating installation with useMasterKey (#2888)
* Add failing test for updating installations with masterKey

* Prevent auth.installationId from being used when using masterKey

This allows masterKey to update any installation object
Fixes ParsePlatform/parse-server##2887
2016-10-19 15:06:19 -04:00
Eugene Antropov
305b037176 Vkontakte Auth: Change users.get to secure.checkToken (#2880)
* Change users.get to secure.checkToken

You can't get user info by client token due vk restrictions. You must check token via secure.checkToken.

* Configuration checks for vk auth.

* Move config check to promise, remove debug log, add message to logger on error.
2016-10-19 10:38:01 -04:00
Jeremy Louie
b88b0c578f Fix multiple use of notEqualTo (#2882)
* Add failing test for multiple .notEqualTo on relation with same class

* Fix multiple .notEqualTo on relations with the same class

Multiple  should use the union of all objectIds not the intersect
Fixes ParsePlatform/parse-server#1596
2016-10-18 16:44:47 -04:00
Florent Vilmart
d8ba9e8b7d Adds validation for id_token and access_token (#2878)
* ADds validation for id_token and access_token

* nit
2016-10-17 12:44:24 -04:00
Kulshekhar Kabra
de36d9640b Allow configuration options for Postgres (#2873)
* Allow configuration options for Postgres

* Fix the use of incorrect options object.

* Refactor and test the postgres config parser.

* Remove unnecessary try/catch

* Remove unnecessary try/catch

* Add blank line at the end of the test file

* Rename file for consistency purposes
2016-10-15 17:29:54 -04:00
Kulshekhar Kabra
7af320932a Use the Postgres Adapter with a Postgres URI (#2871)
* Use the Postgres Adapter with a Postgres URI

* Handle malformed databaseURI
2016-10-15 10:22:49 -04:00
Florent Vilmart
6979bb430b Properly handle select/include pairs #2786 (#2809)
* Regression test for 2786

* Fix issue affecting selcting/including keys
2016-10-07 09:33:55 -04:00
Florent Vilmart
954a8a4159 Better support for null values in arrays (#2777)
* Adds reproduction for #2752

* Make sure we support null values in arrays of pointers for inclusion
2016-09-26 13:26:06 -04:00
Florent Vilmart
300150e50f Fix expports problem (#2774) 2016-09-24 15:25:22 -04:00
Florent Vilmart
b5af4d017c Makes sure pointer includes are interpolated as get (#2747)
* test for repro #2005

* Adds ability to override CLP op from RestQuery.execute

* nits
2016-09-24 14:54:31 -04:00
Florent Vilmart
2ec2bb5660 Removes dependency upon babel-polyfills (#2731)
* Removes runtime dependency babel-polyfill (#2692)

* Removes runtime dependency babel-polyfill

* removes references to polyfilled array includes

* Better support for polyfilling

* Removes unnecessary log

* Adds killswitch if tests are polyfilled

* Reverts usage of includes on strings
2016-09-24 13:53:15 -04:00
Florent Vilmart
9c522be00d Support for nested .select() calls (#2737)
* Reproduction for #1567

* Recursive handling of nested pointer keys in select

* Better support for multi-level nested keys

* Adds support for selecting columns natively (mongo)

* Support for postgres column selections

* Filter-out empty keys for pg
2016-09-24 13:43:49 -04:00
Florent Vilmart
d4593931db Makes sure we plumb auth.installationId when updating installations (#2739) 2016-09-24 13:42:36 -04:00
Florent Vilmart
2183b84565 CLI for parse-live-query-server (#2765)
* adds CLI for parse-live-query-server, adds ability to start parse-server with live-query server

* Don't crash when the message is badly formatted
2016-09-24 13:34:05 -04:00
Arthur Cinader
a41cbcbc7f Move password masking out of logging clients where possible (#2762)
Move password masking functionality into LoggerController.

The is a more aggresive approach to masking password string in the logs.

Cleaning the url is still in the PromiseRouter because picking it out of the log string
would be fragile.

This will cause more log messages to be scanned for password strings, and may cause a password
string to be obsfucated that is not neccesarily part of parse internals -- but i think that is
still a good thing....

see: #2755 & #2680
2016-09-22 15:05:54 -04:00
Florent Vilmart
ad707457be Obfuscate password name value pairs in log strings (#2755)
* Unit test to catch password in logs.

* Add clean to logger controller to "look for" password strings in log messages.
2016-09-20 21:45:24 -04:00
Florent Vilmart
e30989c7d3 Lookup for email in username field to match docs if email is undefined (#2732)
* Lookup for email in username field to match docs if email is undefined

* Adds support for sendMail option to when email is selected

* Proper does not exists clause
2016-09-18 18:32:34 -04:00
Florent Vilmart
0ec1e8ca7f Revert "Removes runtime dependency babel-polyfill" (#2729) 2016-09-18 12:47:42 -04:00
Florent Vilmart
263ca5e052 Adds CloudCode handler for beforeFind (#2715)
* Adds CloudCode handler for beforeFind

- Allows cloud code to modify a query before it is run
- Works with promises for a safer environment
- Supports modifiying the current query
- Supports issuing new queries

* Adds test for cornercase empty queries from rest

* Makes sure restOptions is always definied
2016-09-17 13:52:35 -07:00
Florent Vilmart
ddb0fb8a27 Adds redis cache for distributed environments (#2691)
* Makes schemaCache clearning promise-based

* Adds redis cache adapter for distributed systems

* Adds redis service to travis

* allow pg to fail
2016-09-17 13:52:02 -07:00
Florent Vilmart
109bc9a0ce handling matching api.parse.com when calling upgradeToRevocableSession without a sessionToken (#2721) 2016-09-17 12:52:52 -07:00
Florent Vilmart
90e9994195 Removes runtime dependency babel-polyfill (#2692)
* Removes runtime dependency babel-polyfill

* removes references to polyfilled array includes
2016-09-17 12:50:04 -07:00
Florent Vilmart
97c124bbbe Supports boolean values in cluster options (#2689) 2016-09-17 12:45:12 -07:00
Lama Chandrasena
22c1a87d80 Saved filename fixed so that clients display it correctly #2415 (#2705)
* increased filename length to 36 to make sure clients display correct filename

* increased filename length to 36 to make sure clients display correct filename

* added uuid prefix to saved filenames
2016-09-17 14:27:31 -04:00
Steven Shipton
0773523bc2 Ensure _acl is updated when _rperm and _wperm updated (#2701)
* Ensure _acl is updated when _rperm and _wperm updated

* alternative solution

* Only try to apply $set for permission updates
2016-09-17 11:05:33 -04:00
Mathias Rangel Wulff
f6312a1b98 Correct check for undefined variable (#2693)
The code was comparing the result of `typeof` with a variable named `undefined`.

As typeof returns a string it should compare to `'undefined'`
2016-09-10 17:32:10 -04:00
Florent Vilmart
ac348f5c4f Reverts calling next() after handling response (#2634)
* Revert "Makes sure routes don't overlap and yield a header set error"

* removes next() calls in PromiseRouter

* Reverts calling next() after response

* Adds fail calls when next() calls traverse tests
2016-09-09 17:28:41 -04:00
Florent Vilmart
cb7b54941b Direct Access to parse-server (#2316)
* Adds ParseServerRESTController experimental support

* Adds basic tests

* Do not create sessionToken when requests come from cloudCode #1495
2016-09-09 15:18:37 -04:00
Florent Vilmart
340eb46fe1 Adds endpoint for non-revocable session token upgrade (#2646) 2016-09-09 14:48:06 -04:00
Florent Vilmart
c5fdd91aa3 Makes sure we don't duplicate user ACL's keys (#2651)
* Adds repro for issue #2246

* Provide fix for issue #2246

* Nit with Set to deduplicate the acl array

* remove debuging console.log
2016-09-09 14:43:59 -04:00
Florent Vilmart
e8aa1ad312 Fix null pointer includes (#2657)
* Adds failing test for #2189

* Improves support for null values in includes

* nit
2016-09-09 14:41:21 -04:00
Florent Vilmart
fc576cb415 Adds more expressive schema mismatch errors (#2662) 2016-09-09 14:41:11 -04:00
Florent Vilmart
364604e181 Run Schema validations after beforeSave #2672 (#2677)
* Adds test to repro #2672

* Run schema validation after beforeSave is run

* Makes authData part of base _User object

* exclude flaky pg test
2016-09-09 14:41:03 -04:00