express-gateway

A microservices API Gateway built on top of Express.js

APACHE-2.0 License

Downloads
5.3K
Stars
2.9K
Committers
40

Bot releases are hidden (Show)

express-gateway - v1.16.9 Latest Release

Published by XVincentX about 5 years ago

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.

express-gateway -

Published by XVincentX about 5 years ago

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.

express-gateway - v1.16.7

Published by XVincentX over 5 years ago

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.

express-gateway - v1.16.6

Published by XVincentX over 5 years ago

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.

express-gateway - v1.16.4

Published by XVincentX over 5 years ago

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 πŸš€

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.

express-gateway - v1.16.3

Published by XVincentX over 5 years ago

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.

express-gateway - v1.16.1

Published by XVincentX over 5 years ago

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.

express-gateway - v1.16.0

Published by XVincentX over 5 years ago

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.

express-gateway - v1.15.0

Published by XVincentX over 5 years ago

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.

express-gateway - v1.14.0

Published by XVincentX almost 6 years ago

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.

express-gateway - v1.13.0

Published by XVincentX about 6 years ago

Express Gateway v1.13.0 has been released.

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

Also β€” we have dropped support for Node 6. In case this platform is important for you, you might want to stick with any previous version.

Fixed

  • We've made yet another round of fixes in Winston after the 3.0.0 migration #818
  • It is now possible to provide raw regular expression to our CORS policy. Thanks a lot fo @albertlinga for helping us in shape the pull request!! πŸš€ #823

Changed

  • Update our development Dockerfile to better leverage the caching #819
  • The automated deployment process has been update to provide updated README to the official Helm chart as well #822
  • We have removed Node 6 support as it is not longer supported. In case you need to stick with such version, consider using a previous version #825
  • We have changed the policy file to be exposed as a set of functions instead of a class which does not really hold any state nor extended anywhere. We hope this might help people get started in hacking with EG #824
  • We have done our usual round of dependencies update #832

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.

express-gateway - v1.12.1

Published by XVincentX about 6 years ago

Express Gateway v1.12.1 has been released.

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

Fixed

  • Express Gateway logs have again the timestamp that disappeared as part of the Winston migration #809
  • JWT Tokens are now correctly listed by the Admin API (and by cascade, using the CLI) #812
  • The CLI commands aren't executed twice anymore #814

Changed

  • We have updated the ESLint packages so we finally stop to get warnings for old parser versions #816
  • Polished the deployment process #815

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.

express-gateway - v1.12.0

Published by XVincentX about 6 years ago

Express Gateway v1.12.0 has been released.

In this release we've been polishing some aspects of the JSON Schema to offer a better experience to Express Gateway developers, in particular in case you're building an UI for the project (and we are πŸ˜„ )

Added

  • We have significantly expanded our automation for Docker Images. In particular, now our CircleCI automation is also creating both the pull request for our official Helm Chart as well as updating our Dockerfile repository ExpressGateway/docker-express-gateway and it's also ready to create a pull request to the OfficialImage program when they'll ultimately accept our submission. The concept is still simple: we want Express Gateway to be releasable with a single command. #804
  • We have improved our JSON Schema for policies and conditions to include more parameters, parameters descriptions and example values. This is particularly useful to drive an User Interface experience β€” which is something we offer through LunchBadger #807 #805

Changed

The serviceEndpoint parameter in the proxy policy is not mandatory anymore. In case it's not provided, the Gateway will respond with 502 #806

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. We can send you swags!

Need support? Let us know!

In case you need help to deploy Express Gateway, custom development or even a managed Express Gateway deployment, LunchBadger offers professional services around the product. Poke us for further informations!

express-gateway - v1.11.0

Published by XVincentX about 6 years ago

Express Gateway v1.11.0 has been released.

This release fixes some bugs reported by users that are continuously using Express more and more and brings the addition of a really important feature for proxy policy so that Express Gateway finally catches up with some missing path management features that were missing.

Added

  • The Proxy Policy for Express Gateway now supports a new parameter called stripPath that defaults to false. This is particularly useful when you want to completely own both the URL space of your backend server as well the one exposed by Express Gateway. Given the new feature, we decided to revamp a little bit our Proxy Policy Docs with a section dedicated to the Path Management showing when you should use a flag and when not. #777
  • Although this is not intrinsically Express Gateway related, we have now an Official Helm Chart, that means you can install Express Gateway on your Rancher or Kubernetes Cluster with a single command. We'll update the website as soon as possible with this new great addition. helm/charts#7130

Fixed

  • The base condition schema is now correctly returned by the /schemas Admin API Endpoint #797
  • The keyauth schema name is now correctly named key-auth, for consistency #781
  • We kindly received some contributions on our docs and our Readme from @alamgirqazi β€” Thanks! πŸŽ‰ #773
  • While using Express Gateway in production we found out that invalid configuration could be sent to the gateway through the Admin API. Although the gateway was correctly validating the gateway.config content, it wasn't validating all the policies inside it β€” that is a room for an inconsistent configuration that could ultimately lead to a crash and inability to start EG in case you'd restart your instance/container. This is now fixed. Thanks to @kolbinski for finding out this little monster #782 #799
  • Fixed a missing field in oauth2-introspect JSON Schema #779

Changed

  • We have removed the old, unused migration framework as we do not plan to do any other data model adjustment in the Gateway until we go for 2.0 release #775
  • As always, we've bumped up all our dependencies and change some parts of code that are now deprecated in Node 10. We still support Node 6 but we'll progressively remove all these parts. #787
  • For security reasons, we've decided to disable the X-Powered-By header returned implicitly by Express JS. In case you need it back, you can restore it through a custom plugin. #769
  • We have collected some other feedback on our official Docker Image by the Docker Official Program β€” now EG is not wrapped in a bash command before being ran #770

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. We can send you swags!

express-gateway - 1.10.2

Published by XVincentX over 6 years ago

Express Gateway v1.10.2 has been released.

This release brings a small fix on our logging story that has changed significantly because of the migration from Winston@2 to Winston@3.

Fixed

  • We have updated all the parts where Winston is used to make sure we're using the API declared in the new V3 version rather than staying on the compatibility layer (V2). This fixes different scenarios where the logging was not working properly #766

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. We can send you swags πŸš€

express-gateway - v1.10.1

Published by XVincentX over 6 years ago

Express Gateway v1.10.1 has been released.

This release fixes some bugs reported by users that are continuously using Express more and more and brings the addition of a new policy and a small byproduct to our plugin framework that can potentially unleash new possibilities.

Added

  • We have added a new policy called oAuth2 introspection. This is particularly useful in case you're integrating Express Gateway with an external oAuth2 provider. Point your browser to our docs to know more. #747

  • We have added a new property to the egContext object that plugins can leverage: requestStream. This can be useful in case you want to inject a custom body instead of proxying the original one to a serviceEndpoint. We're planning to write a blog post containing some interesting use cases very soon. #763

Fixed

  • When using Json Web Tokens for the oAuth2 policy, you'll now receive a refresh_token that you can use to grab a new access token. #758

  • The general Plugin Schema wasn't being evaluated, but simply registered in the system. Thanks to @ouvtk for spotting this and fixing it in #757

Changed

  • We have updated all our dependencies to latest versions, fixing some security alerts reported by the new npm audit command. We're now running on Winston@3 as well. #738, #764

  • We have reorganized our eslint plugins so that we're installing only the one we're using for real as well as configure them properly. #732

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.

express-gateway - v1.9.1

Published by XVincentX over 6 years ago

Express Gateway v1.9.1 has been released.

This release fixes some bugs reported by some users as well as some internal feedback received during our own usages.

Added

  • Every time Express Gateway is released, we are now uploading a public AMI on AWS. This is because we want to provide ready to use images to install the product. This is going to be a long story, but this is its start. #715
  • Internal logger timestamp and colorize options are now configurable through environment variables #717

Fixed

  • Express Gateway now gets tested on Node 10 #720
  • Our getting started templates have been updated to reduce the number of warnings emitted during the scaffolding process #726
  • Moved puppetter as a devDependency. This was causing people to download 70M of Chromium even when using Express Gateway in production #726
  • We have updated multiple dependencies marked as insecure. Our audit is not perfect yet, but we'll get there. #726
  • Fixed an error in our Json Schema for gateway.config for API Endpoints. This was preventing some advanced scenarios reported by some of our users. #726

Changed

  • We have removed the bcrypt native dependency to solely rely on the javascript version. This will remove the pain of compiling and dealing with native code. As this library is used in a non performance critical part, we see benefit in using the pure javascript version. We can revisit, if people will come up with the issue #730
  • The JSON Schema Migration script won't be automagically executed anymore. The time when this was needed is passed and we're quite sure people moved around. #726

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.

express-gateway - v1.9.0

Published by XVincentX over 6 years ago

Express Gateway v1.9.0 has been released.

This release brings some new features and bug fixes but more importantly we've payed down some chunks of our technical debt.

Added

  • Added a missing field in the CORS policy schema #712
  • A new endpoint, GET /credentials, has been added to return all credentials registered in the system in bulk. #704 #710
  • The gateway start function is now returning a Promise that will resolve with admin express app as well express apps for http and https serversΒ #700. Thanks @jinasonlin for the contribution! ❀️

Fixed

  • We have payed some technical debt in our test code, removing a lot of duplicated code as well as generalizing and simplifying some scenarios. #693 and #695
  • The pagination features of the Admin API (in particular for users and applications endpoints, based on Redis cursors) have been polished and fixed in multiple points #690
  • Fixed a small error check that was making the admin API /apps endpoint return a 500 status code, instead of a 409 #706
  • The CLI can now handle both urls that end with / and not, in the admin section #707

Changed

  • All dependencies have been updated to the latest known versions #711
  • We've changed a SNI test so that Express Gateway should pass all tests on Node 10 as well #709
  • We have replaced, for oauth2 e2e tests, the phantomjs library with puppeter. As the former has been declared "dead", we moved to a more modern solution #697

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.

express-gateway - v1.8.2

Published by XVincentX over 6 years ago

Express Gateway v1.8.2 has been released.

This release brings a small compatible change in the Admin API that was preventing one of our user to reach the production stage. In the spirit of the πŸš€ , we decided to make it work right now.

Changed

  • The Admin API won't be returning the hashed secret anymore for all the credentials. Such field was confusing our users as they were effectively looking at a different object than they originally set β€” which is ultimately correct, as the secret/password gets hashed before it's saved. Additionally, we've also removed a set of internal fields that users do not care about and made sure all the credentials now return an id field that you can use around for further queries and processing. #690

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.

express-gateway - v1.8.1

Published by XVincentX over 6 years ago

Express Gateway v1.8.1 has been released.

This release brings a small compatible change that was preventing one of our user to reach the production stage. In the spirit of the πŸš€ , we decided to make it work right now.

Changed

  • All the oAuth2 flows are now returning the expires_in field, containing the expiration time of the current issued token. Note that this is not a bug, as the spec specified that this field is recommended, but not mandatory. However, we've now added it for clarity so you do now have to rely on an hypothetic default value. #683

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.