Skip to content

victorcerqueira/postgraphile-federation-plugin

 
 

Repository files navigation

@graphile/federation

Package on npm MIT license CI

Apollo federation support for PostGraphile (or any Graphile Engine schema).

NOTE:

This repository is forked from https://github.com/graphile/federation which is currently unmaintained. While this repository will not be in active development with new features, all contributions and pull requests are welcome and will be reviewed in a timely manner.

Maintaining this fork was a preference from the original owners of the federation repository See Issue 39.

Installation

npm install postgraphile postgraphile-federation-plugin

CLI usage

postgraphile --append-plugins postgraphile-federation-plugin

Library usage

const express = require("express");
const { postgraphile } = require("postgraphile");
const { default: FederationPlugin } = require("postgraphile-federation-plugin");

const app = express();
app.use(
  postgraphile(process.env.DATABASE_URL, "public", {
    appendPlugins: [FederationPlugin],
  })
);
app.listen(process.env.PORT || 3000);

How?

This plugin exposes the Global Object Identification Specification (i.e. Node interface) in a way that's compatible with Apollo Federation.

Requires PostGraphile v4.4.2-rc.0+ and a maintained LTS version of Node.

Testing

Docker can be used to spin up a test instance for running Jest tests. The instance will be exposed at port 5432. See .env.example for the exported Postgre connection.

docker compose up -d
./scripts/test

Do you need this?

Only use this if you're planning to have your API consumed by Apollo Federation; exposing these redundant interfaces to regular users may be confusing.

Status

Proof of concept. No tests, use at your own risk! Pull requests very welcome.

About

GraphQL Federation support via Postgraphile Plugin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 97.4%
  • Shell 1.5%
  • JavaScript 1.1%