@gapi/federation
TypeScript icon, indicating that this package has built-in type declarations

1.8.150 • Public • Published

@gapi/federation

Download binary

wget https://github.com/Stradivario/gapi/raw/master/packages/federation/bin/federation-linux

Give it permission to execute

chmod +x federation-linux

Start it

./federation-linux

If you prefer javascript you can download js binary but it requires Nodejs to be installed on the system

wget https://github.com/Stradivario/gapi/raw/master/packages/federation/bin/federation-linux.js

Configuration

Default configuration file is gateway.config.json

{
  "port": 4000,
  "serviceList": [
    {
      "name": "projects",
      "url": "http://localhost:9000/graphql"
    }
  ]
}

You can specify custom configuration name

./federation-linux ./gateway.config.json

Another option passing configuration is with environment variables

export GATEWAY_PORT=4000
export GATEWAY_SERVICE_LIST='[{"name":"projects", "url":"http://localhost:9000/graphql"}]'

You can install gateway using npm and extend it more further

npm install @gapi/federation @rxdi/core
import { FederationModule } from '@gapi/federation';
import { Bootstrap } from '@rxdi/core';

Bootstrap(
  FederationModule.forRoot({
    port: 4000,
    willSendRequest({ request, context }) {
      request.http.headers.set('authorization', context.headers.authorization);
    },
    serviceList: [
      { name: 'accounts', url: 'http://localhost:9000/graphql' },
      { name: 'products', url: 'http://localhost:9001/graphql' },
    ],
    apolloServerConfig: {
      playground: true,
    },
  }),
).subscribe(() => console.log('started'));

Docker

FROM node

WORKDIR /home

RUN wget https://github.com/Stradivario/gapi/raw/master/packages/federation/bin/federation-linux.js

ARG GATEWAY_PORT
ARG GATEWAY_SERVICE_LIST

ENV GATEWAY_PORT=$GATEWAY_PORT
ENV GATEWAY_SERVICE_LIST=$GATEWAY_SERVICE_LIST

RUN ls -lha

COPY api-started.sh .

RUN chmod +x api-started.sh

EXPOSE $GATEWAY_PORT

CMD ["node", "federation-linux.js"]

Package Sidebar

Install

npm i @gapi/federation

Weekly Downloads

0

Version

1.8.150

License

MIT

Unpacked Size

61.4 MB

Total Files

21

Last publish

Collaborators

  • gapi