/Gate-Logger

Primary LanguageTypeScriptMIT LicenseMIT

Gate Logger

GitHub stars GitHub issues GitHub last commit

The data pipeline package for communication between the GraphQLGate Rate-Limiter and your Gateway developer portal.

 

Prerequisites

This package interfaces with the GraphQLGate rate-limiting package to log query data for visualization in the Gateway developer portal

  1. Signup/login to the Gateway developer portal.

  2. Create a new project to recieve a project ID and API key.

  3. Import and configure the GraphQLGate rate-limiting package

Getting Started

Install the package

npm i gate-logger

Import the package and add the logging middleware to the Express middleware chain BEFORE the GraphQLGate middleware.

** ERRORS WILL BE THROWN if the logger is added after the limiter **

Copy the project ID and the API key from your project on the Gateway developer portal and include them as middleware arguments.

// import package
import gateLogger from 'gate-logger';
import expressGraphQLRateLimiter from 'graphqlgate';

/**
 * Import other dependencies
 * */

// Add the logger middleware into your GraphQL middleware chain
app.use('gql', gateLogger(/* PROJECT ID */, /* API KEY */ );

//Add the rate limiteing middleware
app.use(
    'gql',
    expressGraphQLRateLimiter(schemaObject, {
        rateLimiter: {
            type: 'TOKEN_BUCKET',
            refillRate: 10,
            capacity: 100,
        },
    }) /** add GraphQL server here */
);

And that's it! The logger will now send all query rate-limiting data, blocked or allowed, for you to view in the Gateway developer portal!