bunjil - A GraphQL bastion server with schema merging, authentication and authorization with Policy Based Access Control

  •        21

Bunjil is a public facing GraphQL server. It comes with Policy Based authorization, and hook for your own authentication (Passport.js, Auth0, database).

https://bunjil.js.org
https://github.com/ojkelly/bunjil

Dependencies:

@types/debug : 0.0.30
@types/graphql : ^0.12.7
@types/koa : ^2.0.44
@types/node : ^9.6.1
@types/node-cache : ^4.1.1
@types/winston : ^2.3.8
apollo-cache-control : 0.1.0
apollo-engine : ^1.0.4
apollo-errors : ^1.7.1
apollo-server-koa : ^1.3.4
debug : ^3.1.0
graphql : 0.13.2
graphql-add-middleware : ^0.1.5
graphql-binding : ^1.2.5
graphql-playground-middleware-koa : ^1.4.3
graphql-tools : ^2.23.1
jsonwebtoken : ^8.2.0
koa : ^2.5.0
koa-bodyparser : ^4.2.0
koa-compose : ^4.0.0
koa-compress : ^2.0.0
koa-router : ^7.4.0
node-cache : ^4.2.0
object-hash : ^1.3.0
prisma-binding : ^1.5.16
wahn : ^0.10.0
winston : ^2.4.1

Tags
Implementation
License
Platform

   




Related Projects

graphql-server-example - 🏡 GraphQL server example (Airbnb clone) using Prisma, graphql-yoga & prisma-binding

  •    TypeScript

This project demonstrates how to build a production-ready application with Prisma and graphql-yoga. The API provided by the GraphQL server is the foundation for an application similar to AirBnB. Note: prisma is listed as a development dependency and script in this project's package.json. This means you can invoke the Prisma CLI without having it globally installed on your machine (by prefixing it with yarn), e.g. yarn prisma deploy or yarn prisma playground. If you have the Prisma CLI installed globally (which you can do with npm install -g prisma), you can omit the yarn prefix.

graphql-prisma-typescript - 🏡 GraphQL server reference implementation (Airbnb clone) in Typescript using Prisma & graphql-yoga

  •    TypeScript

This project demonstrates how to build a production-ready application with Prisma and graphql-yoga. The API provided by the GraphQL server is the foundation for an application similar to AirBnB. Note: prisma is listed as a development dependency and script in this project's package.json. This means you can invoke the Prisma CLI without having it globally installed on your machine (by prefixing it with yarn), e.g. yarn prisma deploy or yarn prisma playground. If you have the Prisma CLI installed globally (which you can do with npm install -g prisma), you can omit the yarn prefix.

permit - An unopinionated authentication library for building Node.js APIs.

  •    Javascript

An unopinionated authentication library for building Node.js APIs. Permit makes it easy to add an authentication layer to any Node.js API. It can be used with any of the popular server frameworks (eg. Express, Koa, Hapi, Fastify) and it can be used for any type of API (eg. REST, GraphQL, etc.) due to its simple, unopinionated design.

apollo-resolvers - Expressive and composable resolvers for Apollostack's GraphQL server

  •    Javascript

When standing up a GraphQL backend, one of the first design decisions you will undoubtedly need to make is how you will handle authentication, authorization, and errors. GraphQL resolvers present an entirely new paradigm that existing patterns for RESTful APIs fail to adequately address. Many developers end up writing duplicitous authorization checks in a vast majority of their resolver functions, as well as error handling logic to shield the client from encountering exposed internal errors. The goal of apollo-resolvers is to simplify the developer experience in working with GraphQL by abstracting away many of these decisions into a nice, expressive design pattern. apollo-resolvers provides a pattern for creating resolvers that work, essentially, like reactive middleware. By creating a chain of resolvers to satisfy individual parts of the overall problem, you are able to compose elegant streams that take a GraphQL request and bind it to a model method or some other form of business logic with authorization checks and error handling baked right in.

apollo-server - :earth_africa: GraphQL server for Express, Connect, Hapi and Koa

  •    TypeScript

Apollo Server is a community-maintained open-source GraphQL server. It works with pretty much all Node.js HTTP server frameworks, and we're happy to take PRs for more! It works with any GraphQL schema built with the graphql-js reference implementation.Apollo Server is super easy to set up. Just npm install apollo-server-<variant>, write a GraphQL schema, and then use one of the following snippets to get started. For more info, read the Apollo Server docs.


nexus - GraphQL Nexus: Code-First, Type-Safe, GraphQL Schema Construction

  •    TypeScript

GraphQL Nexus is independent from Prisma. To learn how it can best be combined with Prisma, check out the nexus-prisma plugin. You can find the docs for GraphQL Nexus here.

prisma-binding - GraphQL Binding for Prisma (using GraphQL schema delegation)

  •    TypeScript

Note: Unless you explicitly want to use schema delegation we recommend to use Prisma client to build a GraphQL server see tutorial. prisma-binding provides a convenience layer for building GraphQL servers on top of Prisma services. In short, it simplifies implementing your GraphQL resolvers by delegating execution of queries (or mutations) to the API of the underlying Prisma database service.

koa-graphql - Create a GraphQL HTTP server with Koa.

  •    Javascript

Create a GraphQL HTTP server with Koa. NOTE: Below is a copy from express-graphql's README. In this time I implemented almost same api, but it may be changed as time goes on.

Prisma - Turns your database into a realtime GraphQL API

  •    Scala

Prisma is a performant open-source GraphQL ORM-like layer doing the heavy lifting in your GraphQL server. It turns your database into a GraphQL API which can be consumed by your resolvers via GraphQL bindings. Prisma's auto-generated GraphQL API provides powerful abstractions and modular building blocks to develop flexible and scalable GraphQL backends. Instead of writing SQL or using a NoSQL API, you can query your database with GraphQL.

graphql-shield - 🛡 A GraphQL tool to ease the creation of permission layer.

  •    TypeScript

GraphQL Shield helps you create a permission layer for your application. Using an intuitive rule-API, you'll gain the power of the shield engine on every request and reduce the load time of every request with smart caching. This way you can make sure your application will remain quick, and no internal data will be exposed. Try building a groceries shop to better understand the benefits of GraphQL Shield! Banana &Co. 🍏🍌🍓.

create-graphql-server - Generate your GraphQL server one type at a time

  •    Javascript

Create-graphql-server is a scaffolding tool that lets you generate a new Mongo/Express/Node.js GraphQL server project from the command line. After generating the project you can also generate code to support your GraphQL schema directly from the schema files. Basic authentication support is included via Passport Local with JWTs. If you set up a username, password or a different port for Mongo, or are accessing Mongo through a service such as mLab, correct the MONGO_URL above to reflect that.

graphql-middleware - Split up your GraphQL resolvers in middleware functions

  •    TypeScript

Split up your GraphQL resolvers in middleware functions. GraphQL Middleware is a schema wrapper which allows you to manage additional functionality across multiple resolvers efficiently.

node-graphql-server - Boilerplate code for scalable, production-ready GraphQL servers

  •    Javascript

For a fully-fledged GraphQL & Node.js tutorial, visit How to GraphQL. You can more learn about the idea behind GraphQL boilerplates here. All projects are based on graphql-yoga, a fully-featured GraphQL server library with focus on easy setup, performance & great developer experience.

hotchocolate - Hot Chocolate is a GraphQL server, written in C# for .Net Core and .Net Framework

  •    CSharp

Hot Chocolate is a GraphQL server implementation based on the current GraphQL June 2018 specification. If you are just getting started with GraphQL a good way to learn is visiting GraphQL.org. We have implemented the Star Wars example with the Hot Chocolate API and you can use our example implementation to follow along.

graphql-yoga - 🧘 Fully-featured GraphQL Server with focus on easy setup, performance & great developer experience

  •    TypeScript

To get started with graphql-yoga, follow the instructions in the READMEs of the examples. Once your GraphQLServer is instantiated, you can call the start method on it. It takes two arguments: options, the options object defined above, and callback, a function that's invoked right before the server is started. As an example, the callback can be used to print information that the server has started.

graphql-yoga - 🧘 Fully-featured GraphQL Server with focus on easy setup, performance & great developer experience

  •    TypeScript

To get started with graphql-yoga, follow the instructions in the READMEs of the examples. Once your GraphQLServer is instantiated, you can call the start method on it. It takes two arguments: options, the options object defined above, and callback, a function that's invoked right before the server is started. As an example, the callback can be used to print information that the server has started.

graphql-yoga - 🧘 Fully-featured GraphQL Server with focus on easy setup, performance & great developer experience

  •    TypeScript

To get started with graphql-yoga, follow the instructions in the READMEs of the examples.(**) Notice that the req argument is an object of the shape { request, connection } which either carries a request: Request property (in case it's a Query/Mutation resolver) or a connection: SubscriptionOptions property (in case it's a Subscription resolver). Request is imported from Express.js. SubscriptionOptions is from the graphql-subscriptions package.

fullstack-apollo-react-express-boilerplate-project - 💥A sophisticated Apollo in React and Express boilerplate project

  •    Javascript

A full-fledged Apollo Server 2 with Apollo Client 2 starter project with React, Express and PostgreSQL. Since this boilerplate project is using PostgreSQL, you have to install it for your machine and get a database up and running. You find everything for the set up over here: Setup PostgreSQL with Sequelize in Express Tutorial. After you have created a database and a database user, you can fill out the environment variables in the server/.env file.