🌜
🌞
express-gateway

express-gateway

v1.16.11

A microservices API gateway built on top of ExpressJS

npm install express-gateway

README

A Microservices API Gateway Built Using Express.js and Express Middleware


npm CircleCI Azure Pipelines CodeCov Gitter Module LTS Adopted'

Express-Gateway

Express Gateway is a microservices API gateway that sits at the heart of any microservices or serverless architecture, regardless of what language or platform you're using.

Express Gateway secures your microservices and serverless functions and expose them through APIs using Node.js, Express and Express middleware.

Developing cloud native applications, orchestrating and managing them now can be done insanely fast all on one seamless platform without having to introduce additional infrastructure.


Website   Getting Started   Docs


Main Features

  • Microservices and Serverless QoS Proxy and Security
  • Built Entirely on JavaScript/Node.js using Express and Express Middleware
  • Dynamic Centralized Config
  • API Consumer and Credentials Management
  • Plugins and Plugin Framework
  • Distributed Data Store
  • CLI
  • REST API
  • Cloud Native Execution

Installation

If you have Node.js already installed:

# install Express Gateway
$ npm install -g express-gateway

Creating a Gateway

# create a new gateway using the CLI
$ eg gateway create

Get Help

Need help or have a question?

Community

Express has a community that we hope to extend further with Express Gateway's gateway use case for Express and its middleware.

Roadmap

The Express Gateway roadmap consists of three parts:

  1. FeatHub - features requested and voted on by any community member, this feeds into the...
  2. Roadmap - the published roadmap of all features under considerations and projected timeframes, the highest priority items are put into the...
  3. Waffle board - a real time as a public task board on Waffle.io with backlog of stories for the next release

LTS Policy

Module Version Release Date Minimum EOL EOL With Status
1.x.x Jul 2016 Dec 2019 Node 8 Current

Contribution

All contributions welcome! Please see the contributor's guide

License

Apache-2.0 License

Copyright © Express Gateway Contributors

Release Notes

1.16.9
By Vincenzo Chianese • Published on September 22, 2019

Express Gateway v1.16.9 has been released.

This release fixes a missing option on the http proxy which was responsible for some poor performances

Fixed

  • The http proxy now uses an agent that will keep the connection alive if possible. This should improve the performances of the gateway in multiple scenarios #947

Express Gateway in production? Let us know!

As always, we're open to any feedback and ready to hear your story of putting Express Gateway in production. In case you're interested, please reach us on Gitter, via email or in any way you want.

1.16.8
By Vincenzo Chianese • Published on September 7, 2019

Express Gateway v1.16.8 has been released.

This release fixes an OAuth2 introspection bug

Fixed

  • It is now correctly possible to use the oauth2-introspection policy in multiple pipelines #942

Express Gateway in production? Let us know!

As always, we're open to any feedback and ready to hear your story of putting Express Gateway in production. In case you're interested, please reach us on Gitter, via email or in any way you want.

1.16.7
By Vincenzo Chianese • Published on July 13, 2019

Express Gateway v1.16.7 has been released.

This release fixes some bugs reported by users and adds back the CI for Windows

Fixed

  • The system.config.yml schema file has been update to make sure the namespace Redis parameter is now mandatory, but with a sensible default. Without this value Express Gateway would be crashing.
  • A path in case the OAuth2 code was expired has been fixed to make sure the API returns the correct message rather than a JavaScript error :trollface: — thanks a lot to @ nvanheuverzwijn for the code and the test! #930

Express Gateway in production? Let us know!

As always, we're open to any feedback and ready to hear your story of putting Express Gateway in production. In case you're interested, please reach us on Gitter, via email or in any way you want.

1.16.6
By Vincenzo Chianese • Published on June 22, 2019

Express Gateway v1.16.6 has been released.

This release fixes some bugs reported by users and adds back the CI for Windows

Fixed

  • Express Gateway is now tested on Windows and MacOS as well thanks to Azure Pipelines #921
  • JSON Schema Validation condition is now able to resolve schema references, so that you can put your schemas somewhere else, such as Stoplight, for example.

Express Gateway in production? Let us know!

As always, we're open to any feedback and ready to hear your story of putting Express Gateway in production. In case you're interested, please reach us on Gitter, via email or in any way you want.

1.16.4
By Vincenzo Chianese • Published on June 1, 2019

Express Gateway v1.16.4 has been released.

This release fixes some bugs reported by users

Fixed

  • Express Gateway SNI tests have now been correctly rewritten to make sure the order of the callback is taken correctly. This was causing problems in CI for Node 12 #915.

Changed

  • Several packages have been upgraded, including ExpressJs. We're now running on the latest version #915
  • Express Gateway now supports Node12 and it's part of our CI suite #915
  • Express Gateway now has a brand new consent page that hopefully will be pleasant to see and use #907. Thanks @ravikp7 for drafting the initial implementation 🚀

changed

Express Gateway in production? Let us know!

As always, we're open to any feedback and ready to hear your story of putting Express Gateway in production. In case you're interested, please reach us on Gitter, via email or in any way you want.

1.16.3
By Vincenzo Chianese • Published on April 14, 2019

Express Gateway v1.16.3 has been released.

This release fixes some bugs reported by users that are continuously using Express more and more

Fixed

  • Express Gateway now correctly streams the content back to the request stream after performing the JSON Schema validation #900.
  • Some bugs of the identity server have been solved by the community #901 #899. Thanks @nakardo and @kouponmedia. The Identity Server code is a little bit tedious and difficult to reason about, but you've nailed it!

Changed

  • Killed the undocumented and un-usable plugins admin endpoint #900
  • Express Gateway now loads the policies that are strictly needed to perform its job, improving the startup time as well as freeing up some schemas that were "occupied" by default because of the oauth2 policy #890. Thanks @ravikp7 for drafting the initial implementation.

Express Gateway in production? Let us know!

As always, we're open to any feedback and ready to hear your story of putting Express Gateway in production. In case you're interested, please reach us on Gitter, via email or in any way you want.

1.16.1
By Vincenzo Chianese • Published on April 1, 2019

Express Gateway v1.16.1 has been released.

This release fixes some bugs reported by users that are continuously using Express more and more

Fixed

  • Correctly forward dependant Middlewares for Json Schema Validation #809
  • Correctly set base schema as internal and fix the Json Schema example property #891

Express Gateway in production? Let us know!

As always, we're open to any feedback and ready to hear your story of putting Express Gateway in production. In case you're interested, please reach us on Gitter, via email or in any way you want.

1.16.0
By Vincenzo Chianese • Published on March 25, 2019

Express Gateway v1.16.0 has been released.

This release brings some as bug fixes and an important rewrite of our condition engine that helped us close some important issues as well as implementing a very requested condition: JSON Schema validation!

Added

  • A new condition, json-schema, has been added. This will let the gateway validate the payload of your request against a JSON Schema and then decide what to do according to the result. #882

    Changed

  • A debug log statements gets emitted in case there's no pipeline matching the current request. This will help you diagnose when a 404 is coming from the upstream server or simply from the gateway itself #881
  • Package upgrades #880
  • Our new contributor @ravikp7 has worked on some inconsistencies between host and hostname used here and there. You'll now get a warning were appropriate as an invite to upgrade your configuration file. #876

Fixed

  • A bug in the CLI that would sent incorrect API Key Header to the Admin API has been fixed thanks to @ontehfritz 🚀 #885
  • Given my recent full time experience with TypeScript, the types in EG have been updated to better represent what's effectively offered for the plugin API #878
  • Fixed the timing on the RateLimit Redis Storage that was incorrectly counting milliseconds instead of seconds. Thanks @ciaranashton for the help :shipit: #874
  • Thanks to an important rewrite we're now able to finally validate the schema for conditions at gateway's loading time and not runtime. This change will finally let you avoid an entire class of bugs before even starting the gateway, instead of getting a crash #882

Express Gateway in production? Let us know!

As always, we're open to any feedback and ready to hear your story of putting Express Gateway in production. In case you're interested, please reach us on Gitter, via email or in any way you want.

1.15.0
By Vincenzo Chianese • Published on February 6, 2019

Express Gateway v1.15.0 has been released.

This release bring as bug fix in our identity server and one of the most requested feature: the request/response transformer policy!

Added

  • We have a brand new pair of policy that have been required by the community for really long time: Request and Response Transformers! These policies will let you hook into the request and the response headers and body before they're being processed to the downstream server or sent back to the client. This policy effectively deprecates the Headers.

    This has required a lot of effort on our side in terms of research, coming up with the DLS and making sure it works correctly in all the cases. We hope that this will help you going to the next level with Express Gateway #842 #869 #864

  • The CLI is now able to follow the pagination of the resources so that you can see all the users/applications or whatever you need in case you have a lot of data #762

Changed

  • As always, we've bumped up all our dependencies #868

Fixed

  • Thanks to @mfrye — we have a fix for our Identity Server where the deletion of a credential was not correctly cascading and propagating the deletes in the system. This is now fixed 🚀 #862

Express Gateway in production? Let us know!

As always, we're open to any feedback and ready to hear your story of putting Express Gateway in production. In case you're interested, please reach us on Gitter, via email or in any way you want.

1.14.0
By Vincenzo Chianese • Published on December 21, 2018

Express Gateway v1.14.0 has been released.

This release fixes some bugs reported by users that are continuously using Express more and more and some a new requested feature.

Changed

  • The Rate Limiter policy will now use the Redis client to store its counters. This means that, in case you have multiple instance of Express Gateway running, the counters will be shared as long you're using a common Redis instance. In case you're on an in-memory experience, the behaviour will be exactly the same as you were experiencing before. This will hopefully open the doors for a new class of Express Gateway deployments; we can't wait to see this live! 🚀 #858
  • The old and outdated Swagger document has been removed from Express Gateway along with the middleware serving the doc from the Admin API. We have in mind to rebuild the docs based on OpenAPI 3.0, but that's going to require some time #847
  • We have updated all our dependencies to the last reasonable version #858

Added

  • Express Gateway is now adopting the LTS Module policy by CloudNativeJs.io. This will ensure predictability with compatibility with various NodeJS version and also — I'm proud to announce Express Gateway is now a listed module in CloudNativeJS modules. #851
  • It is now possible to specifically bind the hostname for the http and https servers. This might be particularly useful when using Express Gateway in Docker environments #846

Express Gateway in production? Let us know!

As always, we're open to any feedback and ready to hear your story of putting Express Gateway in production. In case you're interested, please reach us on Gitter, via email or in any way you want.

General

License
Apache-2.0
Typescript Types
Built-in
Tree-shakeable
No

Popularity

GitHub Stargazers
2,727
Community Interest
2,911
Number of Forks
325

Maintenance

Commits
11/2110/22010
Last Commit
Open Issues
51
Closed Issues
499
Open Pull Requests
5
Closed Pull Requests
102

Versions

Versions Released
11/2110/2201
Latest Version Released
Apr 29, 2021
Current Tags
latest1.16.11

Contributors

XVincentX
XVincentX
Commits: 784
DrMegavolt
DrMegavolt
Commits: 85
IrfanBaqui
IrfanBaqui
Commits: 60
kevinswiber
kevinswiber
Commits: 43
rlisagor
rlisagor
Commits: 37
stanislaw-glogowski
stanislaw-glogowski
Commits: 25
altsang
altsang
Commits: 22
fcioffi
fcioffi
Commits: 4
albertlinga
albertlinga
Commits: 4
srcnix
srcnix
Commits: 4
ravikp7
ravikp7
Commits: 4
mfrye
mfrye
Commits: 4
dotBits
dotBits
Commits: 3
jinasonlin
jinasonlin
Commits: 3
nakardo
nakardo
Commits: 3