Skip to content
This repository has been archived by the owner on Oct 14, 2020. It is now read-only.

is this module ready? #7

Closed
poupryc opened this issue Feb 8, 2018 · 6 comments
Closed

is this module ready? #7

poupryc opened this issue Feb 8, 2018 · 6 comments

Comments

@poupryc
Copy link

poupryc commented Feb 8, 2018

Hello !

First of all, I wanted you to know that a module to bring graphql to Feathers is one of the best idea of the moment!

Nevertheless, this module lacks some information, I have listed some elements:

  • Is this module ready to be used in production ?
  • Will it support graphql subscriptions with the channel.js file ?
  • No implementation examples were given
  • When do you think you'll be able to put it on NPM ?
  • Will it support authentication? (in particular oauth2)

That's a lot of questions but I'm super excited about this project!

@eddyystop
Copy link
Member

eddyystop commented Feb 9, 2018

f+/graphql has been stable for some months for Feathers service call and for BatchLoader resolvers. Raw SQL-generation resolvers need work.

We have a resolver generation repo that we are now testing with some projects. Because of this, we want to be able to make changes to f+/graphql as needed without compatibility issues. That is why we haven't documented nor publicized f+/graphql.

I expect f+/graphql to be documented in a month, along with the standard example app/test-bed we use.

I expect the resolver generator to release the month after. Not all adapters may be tested by then. Raw SQL resolvers will not be tested for all SQL adapters by then.

We love GraphQL Query. We feel its easier to use normal Feathers for Mutations and Subscriptions.

f+/graphql is a custom service. You can authenticate it like any Feathers service.

When used with resolvers using Feathers service calls (as opposed to using BatchLoaders or raw SQL resolvers) context.params.graphql contains the resolver path for which the call is being made, e.g.

[ 'findUser', '[User]!' ]
[ 'findUser', 0, 'User', 'posts', '[Post!]' ]
[ 'findUser', 0, 'User', 'posts', 0, '[Post!]', 'comments', '[Comment!]' ]
[ 'findUser', 0, 'User', 'posts', 1, '[Post!]', 'comments', '[Comment!]' ]
[ 'findUser', 1, 'User', 'posts', '[Post!]' ]
// ...
[ 'findUser', 2, 'User', 'posts', '[Post!]' ]
// ...
[ 'findUser', 3, 'User', 'posts', '[Post!]' ]
// ...

and you can use this for authorization.

@eddyystop
Copy link
Member

eddyystop commented Feb 9, 2018

image

image

find* and get* are CRUD queries the resolver-generator creates.

@poupryc
Copy link
Author

poupryc commented Feb 16, 2018

Wow ! I'm really excited to be able to integrate graphQL into my projects! A detailed guide will be provided to parameterize the module?

@eddyystop
Copy link
Member

"We have a resolver generation repo that we are now testing with some projects. Because of this, we want to be able to make changes to f+/graphql as needed without compatibility issues. That is why we haven't documented nor publicized f+/graphql."

For example, we've improved authentication this last week.

Docs will be written for the adapter within the next month. The resolver generator the month after.

@poupryc
Copy link
Author

poupryc commented Feb 28, 2018

thank you for your work ! I just read an article about security with GraphQL, Do you think your module will support different checks?

@eddyystop
Copy link
Member

It supports Feathers authentication on the graphql endpoint and on each of the services. For resolvers using services, the path withing the GraphQL query is available to the service hooks.

I think Feathers hooks are much easier to use design than the design presented by most articles, which consists of nested higher order abstractions.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants