Ciphyr icon indicating copy to clipboard operation
Ciphyr copied to clipboard

GraphQL Security Monitoring Application

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

A comprehensive solution for GraphQL traffic monitoring

Seamlessly integrate within your application today!
Explore the docs »

Our Splash · Report Bug · Request Feature

Table of Contents
  1. About The Product
    • Built With
  2. Getting Started
    • Prerequisites
    • Installation
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project


Logo

Real-time monitoring of your GraphQL server query traffic. Ciphyr takes GraphQL security to the next level. It acts as a vigilant guardian for your GraphQL API, continuously monitoring incoming queries and detecting potential threats. With customizable rules and alerts, you have complete control over what constitutes a security threat. Whether it's identifying complex nested queries or excessive data retrieval, Ciphyr will have your back, notifying you in real time so you can take immediate action.

(back to top)

Built With

React Node GraphQL Tailwind PostgreSQL Jest Testing Library Vite Heroku Express Apollo-GraphQL

(back to top)

Getting Started

Super easy to get started

Prerequisites

Ciphyr supports Apollo Server V4. Create your GraphQL server with '@apollo/server'.

  • Install Apollo Server
    npm install @apollo/server
    
  • Import Required Module
    import { ApolloServer } from '@apollo/server'
    
    import { startStandaloneServer } from '@apollo/server/standalone'
    

We have a demo-app that you can clone and test Ciphyr with
https://github.com/Ciphyr-OSP4/ciphyr-demo

Installation

Follow these steps to connect to Ciphyr library and visualizer

  1. Sign up at Ciphyr Home Page

  2. Sign in to enter home page

  3. Create your free instance and save your API key

    Logo
    Logo
  4. In your graphQL application, install and import ciphyr

    npm install ciphyr
    
    import ciphyr from 'ciphyr' || const ciphyr = require('ciphyr')
    
  5. Create a variable named API_KEY in your .env file

    API_KEY = <Your_API_Key>
    

(back to top)

Usage

  • Now you can use Ciphyr! To access all the functions, simply place 'ciphyr.myPlugin' inside your Apollo server.
    const server = new ApolloServer({
      typeDefs,
      resolvers,
      plugins: [<Your Plugins>..., ciphyr.myPlugin]
    })
    
  • Try sending some queries to your GraphQL server. The query logs will pop up in your dashboard!
    Logo
  • Visualized graph for insignts of your query logs.
    Logo

    For more examples, please refer to the Documentation

(back to top)

Roadmap

  • [x] V.1 npm package
  • [x] V.1 Visualizer
  • [ ] Multi-server support
  • [ ] Rate limiting and throttling
  • [ ] Alert expansion

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Ciphyr - @ciphyr.io

Project Link: https://github.com/oslabs-beta/Ciphyr

(back to top)

Acknowledgments

(back to top)