reindex-api

GraphQL backend as a service

  • Owner: reindexio/reindex-api
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

reindex-api

Note: This project is no longer maintained. The source code is released under the license specified in file LICENSE.

Circle CI

reindex-api is a multi-tenant, hosted GraphQL database solution. reindex-api converts a JSON based schema into a GraphQL API in addition to creating a database storage (MongoDB or RethinkDB) underneath. GraphQL API is fully Relay compatible and contains CRUD operations as entry points. Input is Relay-aware and declarative. Additionally, reindex-api provides Social Login with 5 providers (Auth0, Facebook, Google, Twitter and Github). Functionality of reindex-api can be extended by configuring hooks that call external web services. It also provides a rich permission system based on defining graph paths to the user type.

reindex-api was designed with scalability in mind, but so far doesn't have many possible performance improving tools, like e.g. cache or query optimizations.

Components

  • schema creator - gets list of types and creates db independent GraphQL API
  • database connector - abstracts out RethinkDB and MongoDB specifics
  • database migration tool - abstracts out changes to the database after schema
    is updated
  • permission checker - checks permissions based on graph path traversal
  • multi-tenancy module - gets the api of correct user and manages apps
  • social login - manages third-party auth service integration
  • http server - manages request and JWT request authentication

Installation

  • Install MongoDB and optionally RethinkDB

  • Install dependencies

    npm install
    
  • Run tests

    npm test
    
  • Create admin app

    npm run create-admin-app admin.localhost.reindexio.com
    
  • Create a test app (localhost)

    npm run create-app
    
  • Run server

    npm start
    
  • You can login into GraphiQL by passing the admin token in the token query
    string argument:

    http://localhost:5000/?token=<YOUR_TOKEN>
    

Main metrics

Overview
Name With Ownerreindexio/reindex-api
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 5)
Platform
License:MIT License
所有者活动
Created At2015-03-23 16:12:53
Pushed At2017-09-19 12:38:42
Last Commit At2017-09-19 15:38:37
Release Count0
用户参与
Stargazers Count354
Watchers Count9
Fork Count29
Commits Count560
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count267
Pull Requests Open Count0
Pull Requests Close Count9
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private