create-graphql-server-authorization
Adds Authorization Logic to the GraphQL-Server-Generator: create-graphql-server.
If you are using create-grapqhl-server, you come to a point, when you need some kind of authorization on your GraphQL server. This package provides a possible way to do authorization checks.
Therefore it enhances the type schema with two additional GraphQL directives:
- @authorize
- @authRole
Use these two directives in your GraphQL type definitions. Then use the create-graphql-server add-type <your-type>
command to generate the according GraphQL server code with already injected generated authorization logic code.
Usage
It provides Authorization checks for type authorization.
It adds the two GraphQL directives @authorize and @authRole to the create-graphql-server type system e.g.:
type User@ username: String! role: String! @ bio: String!
The type "User" is treated as a special type. It adds automatically the input field "password" and "createdBy" and "updatedBy" fields.
Installation
git clone git@github.com:tmeasday/create-graphql-server.gitcd create-graphql-serveryarn add create-graphql-server-authorization
Add it to the generator files here:
- generate/index.js
- generate/model/index.js
- generate/resolver/index.js
In "generate/schema/index.js"
;......... // at the end: enhance with Authorization const outputSchemaWithAuth = ; return outputSchemaWithAuth;}
In "generate/model/index.js"
;;;;; // <=== here { const ast = ; return code;} { const templateCode = ; // validate syntax of generated template code const replacements = {}; const ast = ; return ast;}
In "generate/resolver/index.js"
; ; ; ; ; // <=== here { const ast = return code;} { const templateCode = ; // validate syntax of generated template code const replacements = {}; const ast = ; return ast;}
Documentation
Tests
yarn test
Contributing
In lieu of a formal style guide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code.