Note: This project is no longer maintained. The source code is released under the license specified in file LICENSE.
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.
- 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
Install MongoDB and optionally RethinkDB
Create admin app
npm run create-admin-app admin.localhost.reindexio.com
Create a test app (
npm run create-app
You can login into GraphiQL by passing the admin token in the
tokenquery string argument: