Commit Graph

2732 Commits

Author SHA1 Message Date
Antonio Davi Macedo Coelho de Castro
f3b84242d7 Fix month in aggregate tests (#5879) 2019-07-31 19:55:16 -07:00
Antonio Davi Macedo Coelho de Castro
14a8d333a3 FIX: Transaction was aborting before all promises have either resolved or rejected (#5878) 2019-07-31 18:34:49 -07:00
greenkeeper[bot]
baa5daefa4 Update apollo-server to the latest version 🚀 (#5873)
* fix(package): update apollo-server-express to version 2.8.1

* chore(package): update lockfile package-lock.json
2019-07-31 17:45:41 +00:00
Antonio Davi Macedo Coelho de Castro
8b97c1380b Batch transaction (#5849)
* Batch transaction boilerplate

* Refactoring transaction boilerplate

* Independent sessions test

* Transactions - partial

* Missing only one test

* All tests passing for mongo db

* Tests on Travis

* Transactions on postgres

* Fix travis to restart mongodb

* Remove mongodb service and keep only mongodb runner

* MongoDB service back

* Initialize replicaset

* Remove mongodb runner again

* Again only with mongodb-runner and removing cache

* Trying with pretest and posttest

* WiredTiger

* Pretest and posttest again

* Removing inexistent scripts

* wiredTiger

* One more attempt

* Trying another way to run mongodb-runner

* Fixing tests

* Include batch transaction on direct access

* Add tests to direct access
2019-07-31 02:41:07 -07:00
Antonio Davi Macedo Coelho de Castro
fe18fe0f61 3.7.2 (#5872) 2019-07-31 02:19:01 -07:00
Antonio Davi Macedo Coelho de Castro
bde96a9002 Fix live query (#5871)
* Fix live query

* fix test
2019-07-30 22:40:54 -05:00
Antonio Davi Macedo Coelho de Castro
d4fa62ae26 3.7.1 (#5870) 2019-07-30 17:31:56 -07:00
greenkeeper[bot]
c70401857c Update @parse/push-adapter to the latest version 🚀 (#5869)
* fix(package): update @parse/push-adapter to version 3.0.9

* chore(package): update lockfile package-lock.json
2019-07-30 22:18:58 +00:00
Lucas Alencar
6080dbc4f9 fix: Set falsy values as default to schema fields (#5868) 2019-07-30 15:51:49 -05:00
Diamond Lewis
218c3499f9 Implement WebSocketServer Adapter (#5866)
* Implement WebSocketServerAdapter

* lint

* clean up
2019-07-30 09:05:41 -05:00
greenkeeper[bot]
7c8e940f53 Update apollo-server to the latest version 🚀 (#5865)
* fix(package): update apollo-server-express to version 2.8.0

* chore(package): update lockfile package-lock.json
2019-07-29 23:32:32 +00:00
greenkeeper[bot]
747cb47b6b Update husky to the latest version 🚀 (#5864)
* chore(package): update husky to version 3.0.2

* chore(package): update lockfile package-lock.json
2019-07-29 17:43:16 +00:00
Tom Fox
b96087ec61 3.7.0 version bump + changelog (#5854)
* 3.7.0 version bump + changelog

* Update CHANGELOG.md
2019-07-28 23:46:13 -07:00
Ivan SZKIBA
dfe0ff753c support PhantAuth authentication (#5850)
* support PhantAuth authentication

* fix spelling issues

* Add test case
2019-07-29 00:58:43 -05:00
greenkeeper[bot]
d810f34cc5 Update parse to the latest version 🚀 (#5862)
* fix(package): update parse to version 2.6.0

* chore(package): update lockfile package-lock.json
2019-07-29 05:14:44 +00:00
Diamond Lewis
95208e96e0 Postgres: Safely escape strings in nested objects (#5855)
* Postgres: Safely handle string in nested objects

* fix failing tests
2019-07-28 23:54:13 -05:00
Zeal Murapa
4f21c36825 Update ParseWebSocketServer.js (#5860)
* Update ParseWebSocketServer.js

fix wss:// error by requiring 'ws' module, remove uws as it has been deprecated and removed from npm

* Update ParseWebSocketServer.js

* remove uws
2019-07-28 22:17:09 -05:00
greenkeeper[bot]
1903f59db5 Update eslint-plugin-flowtype to the latest version 🚀 (#5858)
* chore(package): update eslint-plugin-flowtype to version 3.12.2

* chore(package): update lockfile package-lock.json
2019-07-29 00:35:51 +00:00
Diamond Lewis
f1619e428e Add git to Dockerfile (#5861) 2019-07-28 16:52:19 -05:00
greenkeeper[bot]
80bb2b6389 Update pg-promise to the latest version 🚀 (#5857)
* fix(package): update pg-promise to version 9.0.0

* chore(package): update lockfile package-lock.json

* remove es6 generators
2019-07-27 19:07:36 +00:00
greenkeeper[bot]
8c321ed750 Update apollo-server to the latest version 🚀 (#5856)
* fix(package): update apollo-server-express to version 2.7.2

* chore(package): update lockfile package-lock.json
2019-07-26 23:56:24 +00:00
greenkeeper[bot]
601a6ff788 Update @parse/push-adapter to the latest version 🚀 (#5852)
* fix(package): update @parse/push-adapter to version 3.0.5

* chore(package): update lockfile package-lock.json

* Update flow-bin to the latest version 🚀 (#5853)

* chore(package): update flow-bin to version 0.104.0

* chore(package): update lockfile package-lock.json

* Update package.json

* Pin to 3.0.8
2019-07-26 22:33:14 +00:00
greenkeeper[bot]
7eadf35840 Update flow-bin to the latest version 🚀 (#5853)
* chore(package): update flow-bin to version 0.104.0

* chore(package): update lockfile package-lock.json
2019-07-26 20:43:47 +00:00
Antonio Davi Macedo Coelho de Castro
fd637ff4f8 Required fields and default values (#5835)
* Add field options to mongo schema metadata

* Add/fix test with fields options

* Add required validation failing test

* Add more tests

* Only set default value if field is undefined

* Fix redis test

* Fix tests

* Test for creating a new class with field options

* Validate default value type

* fix lint (weird)

* Fix lint another way

* Add tests for beforeSave trigger and solve small issue regarding the use of unset in the beforeSave trigger
2019-07-25 21:13:59 -07:00
Omair Vaiyani
d3810c2eba GraphQL Configuration Options (#5782)
* add parse-graph-ql configuration for class schema customisation

Not yet tested - essentially an RFC

* refactor and add graphql router, controller and config cache

* fix(GraphQLController): add missing check isEnabled

* chore(GraphQLController): remove awaits from cache put

* chore(GraphQLController): remove check for if its enabled

* refactor(GraphQLController): only use cache if mounted

* chore(GraphQLController): group all validation errors and throw at once

* chore(GraphQLSchema): move transformations into controller validation

* refactor(GraphQL): improve ctrl validation and fix schema usage of config

* refactor(GraphQLSchema): remove code related to additional schema

This code has been moved into a separate feature branch.

* fix(GraphQLSchema): fix incorrect default return type for class configs

* refactor(GraphQLSchema): update staleness check code to account for config

* fix(GraphQLServer): fix regressed tests due to internal schema changes

This will be followed up with a backwards compatability fix for the `ClassFields` issue to avoid breakages for our users

* refactor: rename to ParseGraphQLController for consistency

* fix(ParseGraphQLCtrl): numerous fixes for validity checking

Also includes some minor code refactoring

* chore(GraphQL): minor syntax cleanup

* fix(SchemaController): add _GraphQLConfig to volatile classes

* refactor(ParseGraphQLServer): return update config value in setGraphQLConfig

* testing(ParseGraphQL): add test cases for new graphQLConfig

* fix(GraphQLController): fix issue where config with multiple items was not being mapped to the db

* fix(postgres): add _GraphQLConfig default schema on load

fixes failing postgres tests

* GraphQL @mock directive (#5836)

* Add mock directive
* Include tests for @mock directive

* Fix existing tests due to the change from ClassFields to ClassCreateFields

* fix(parseClassMutations): safer type transformation based on input type

* fix(parseClassMutations): only define necessary input fields

* fix(GraphQL): fix incorrect import paths
2019-07-25 12:46:25 -07:00
dependabot-preview[bot]
bbcc20fd60 Bump apollo-server-express from 2.7.0 to 2.7.1 (#5847)
Bumps [apollo-server-express](https://github.com/apollographql/apollo-server) from 2.7.0 to 2.7.1.
- [Release notes](https://github.com/apollographql/apollo-server/releases)
- [Changelog](https://github.com/apollographql/apollo-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apollographql/apollo-server/compare/apollo-server-express@2.7.0...apollo-server-express@2.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-07-25 18:33:03 +00:00
dependabot-preview[bot]
c475a14408 Bump lint-staged from 9.2.0 to 9.2.1 (#5846)
* Bump lint-staged from 9.2.0 to 9.2.1

Bumps [lint-staged](https://github.com/okonet/lint-staged) from 9.2.0 to 9.2.1.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v9.2.0...v9.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* remove flaky test

* re-add test
2019-07-25 18:28:18 +00:00
Antonio Davi Macedo Coelho de Castro
8a925177e1 Cache apple public key for the case it fails to fetch again (#5848) 2019-07-25 10:20:28 -07:00
BrunoMaurice
50f1e8eb77 Make possible to alter response using the after save trigger (#5814)
* make possible to alter response using the after save trigger like for after find

* code clearing to follow same object checking

* remove console log debug

* fix test unit
2019-07-25 09:31:18 -07:00
Douglas Muraoka
4fe0ff6ebf feat: Add "count" to CLP initial value (#5841)
* feat: count CLP default values

* fix tests
2019-07-24 12:41:18 -05:00
greenkeeper[bot]
a5fb38b0b2 Update semver to the latest version 🚀 (#5843)
* fix(package): update semver to version 6.3.0

* chore(package): update lockfile package-lock.json
2019-07-23 19:51:04 +00:00
Antonio Davi Macedo Coelho de Castro
b605638415 Fix: GraphQL _or operator not working (#5840) 2019-07-23 10:29:38 -03:00
macarthuror
5398b6f667 custom pages example and an email adapter is added (#5838)
* custom pages example and an email adapter is added

* npm link of email adapter

* spelling and grammar changes

Co-Authored-By: Tom Fox <tomfox@surprises.io>

* spelling changes

Co-Authored-By: Tom Fox <tomfox@surprises.io>
2019-07-23 10:16:41 +01:00
Antonio Davi Macedo Coelho de Castro
2e0940c996 GraphQL @mock directive (#5836)
* Add mock directive
* Include tests for @mock directive
2019-07-22 15:19:40 -03:00
greenkeeper[bot]
f336cc3435 Update eslint to the latest version 🚀 (#5832)
* chore(package): update eslint to version 6.1.0

* chore(package): update lockfile package-lock.json
2019-07-21 04:59:38 +00:00
greenkeeper[bot]
f03fa6bcf9 Update pg-promise to the latest version 🚀 (#5831)
* fix(package): update pg-promise to version 8.7.5

* chore(package): update lockfile package-lock.json
2019-07-20 01:24:10 +00:00
Antonio Davi Macedo Coelho de Castro
a6f441248b GraphQL custom schema on CLI (#5828)
* Add --graphQLSchema to CLI

* Add custom graphql schema instructions to readme file

* Update README.md

Co-Authored-By: Tom Fox <tomfox@surprises.io>

* Update src/Options/Definitions.js

Co-Authored-By: Tom Fox <tomfox@surprises.io>

* Update src/Options/docs.js

Co-Authored-By: Tom Fox <tomfox@surprises.io>

* Update src/Options/index.js

Co-Authored-By: Tom Fox <tomfox@surprises.io>
2019-07-19 12:29:45 -07:00
greenkeeper[bot]
6d5f6b4c94 Update ws to the latest version 🚀 (#5830)
* fix(package): update ws to version 7.1.1

* chore(package): update lockfile package-lock.json
2019-07-19 15:14:58 +00:00
greenkeeper[bot]
7c809f5627 Update lodash to the latest version 🚀 (#5827)
* fix(package): update lodash to version 4.17.15

* chore(package): update lockfile package-lock.json
2019-07-19 03:06:22 +00:00
greenkeeper[bot]
c57f0d329b Update eslint-plugin-flowtype to the latest version 🚀 (#5826)
* chore(package): update eslint-plugin-flowtype to version 3.12.1

* chore(package): update lockfile package-lock.json
2019-07-19 00:01:24 +00:00
greenkeeper[bot]
beeb097e55 Update husky to the latest version 🚀 (#5825)
* chore(package): update husky to version 3.0.1

* chore(package): update lockfile package-lock.json
2019-07-18 22:11:48 +00:00
greenkeeper[bot]
61ae2eb91b Update flow-bin to the latest version 🚀 (#5824)
* chore(package): update flow-bin to version 0.103.0

* chore(package): update lockfile package-lock.json
2019-07-18 21:03:33 +00:00
Antonio Davi Macedo Coelho de Castro
71d92aed8d GraphQL Custom Schema (#5821)
This PR empowers the Parse GraphQL API with custom user-defined schema. The developers can now write their own types, queries, and mutations, which will merged with the ones that are automatically generated. The new types are resolved by the application's cloud code functions.

Therefore, regarding https://github.com/parse-community/parse-server/issues/5777, this PR closes the cloud functions needs and also addresses the graphql customization topic. In my view, I think that this PR, together with https://github.com/parse-community/parse-server/pull/5782 and https://github.com/parse-community/parse-server/pull/5818, when merged, closes the issue.

How it works:

1. When initializing ParseGraphQLServer, now the developer can pass a custom schema that will be merged to the auto-generated one:
```
      parseGraphQLServer = new ParseGraphQLServer(parseServer, {
        graphQLPath: '/graphql',
        graphQLCustomTypeDefs: gql`
          extend type Query {
            custom: Custom @namespace
          }
           type Custom {
            hello: String @resolve
            hello2: String @resolve(to: "hello")
            userEcho(user: _UserFields!): _UserClass! @resolve
          }
        `,
      });
```

Note:
- This PR includes a @namespace directive that can be used to the top level field of the nested queries and mutations (it basically just returns an empty object);
- This PR includes a @resolve directive that can be used to notify the Parse GraphQL Server to resolve that field using a cloud code function. The `to` argument specifies the function name. If the `to` argument is not passed, the Parse GraphQL Server will look for a function with the same name of the field;
- This PR allows creating custom types using the auto-generated ones as in `userEcho(user: _UserFields!): _UserClass! @resolve`;
- This PR allows to extend the auto-generated types, as in `extend type Query { ... }`.

2. Once the schema was set, you just need to write regular cloud code functions:
```
      Parse.Cloud.define('hello', async () => {
        return 'Hello world!';
      });

      Parse.Cloud.define('userEcho', async req => {
        return req.params.user;
      });
```

3. Now you are ready to play with your new custom api:
```
query {
  custom {
    hello
    hello2
    userEcho(user: { username: "somefolk" }) {
      username
    }
  }
}
```
should return
```
{
  "data": {
    "custom": {
      "hello": "Hello world!",
      "hello2": "Hello world!",
      "userEcho": {
        "username": "somefolk"
      }
    }
  }
}
```
2019-07-18 16:43:49 -03:00
Antonio Davi Macedo Coelho de Castro
0b86a86209 GraphQL { functions { call } } generic mutation (#5818)
* Generic call function mutation
* Change function return type to any
* First passing test
* Testing errors
* Testing different data types
2019-07-18 16:41:10 -03:00
greenkeeper[bot]
6be15331a6 Update eslint-plugin-flowtype to the latest version 🚀 (#5823)
* chore(package): update eslint-plugin-flowtype to version 3.12.0

* chore(package): update lockfile package-lock.json
2019-07-18 17:14:07 +00:00
Tom Fox
516d789491 Add contributors section, improve backers section (#5815)
* add contributors, improve backers section

* spacing
2019-07-18 17:47:16 +01:00
greenkeeper[bot]
9eec0f1b78 Update babel7 to the latest version 🚀 (#5820)
* chore(package): update @babel/cli to version 7.5.5

* chore(package): update @babel/core to version 7.5.5

* chore(package): update @babel/plugin-proposal-object-rest-spread to version 7.5.5

* chore(package): update @babel/preset-env to version 7.5.5

* chore(package): update lockfile package-lock.json
2019-07-17 23:40:20 +00:00
greenkeeper[bot]
1b5c045706 Update apollo-server to the latest version 🚀 (#5817)
* fix(package): update apollo-server-express to version 2.7.0

* chore(package): update lockfile package-lock.json
2019-07-16 14:18:14 +00:00
greenkeeper[bot]
82e24cb18d Update @parse/s3-files-adapter to the latest version 🚀 (#5816)
* fix(package): update @parse/s3-files-adapter to version 1.2.3

* chore(package): update lockfile package-lock.json
2019-07-15 18:07:19 +00:00
greenkeeper[bot]
cdc6eee295 Update jsdoc to the latest version 🚀 (#5813)
* chore(package): update jsdoc to version 3.6.3

* chore(package): update lockfile package-lock.json
2019-07-14 18:32:19 +00:00