DEV Community

Cover image for Kusk Gateway 1.2.0 Release - OAuth, Local Mocking and more!
Abdallah Abedraba for Kubeshop

Posted on • Originally published at kubeshop.io

Kusk Gateway 1.2.0 Release - OAuth, Local Mocking and more!

Intro

The Kusk team is proud to announce the v1.2.0 release of Kusk Gateway! For the unfamiliar, what makes Kusk Gateway unique is that it uses the ubiquitous OpenAPI specification file as a single source of truth for making an API available to consumers, which includes routing configuration, request validation, timeouts, etc.

Kusk will especially resonate with developers and teams like ours, who have adopted a design-first approach to API development.

Thanks to Kusk Gateway and industry-standard OpenAPI (f.k.a Swagger), you can quickly publish your APIs deployed in Kubernetes without having to add any additional configuration resources, which plays nicely with both manual and automated/GitOps-based development workflows. Kusk Gateway enables you to design and deploy your APIs from a single OpenAPI definition, allowing you to:

  • Rapidly prototype your REST APIs by mocking your API responses, allowing your teams to instantly start building on top of your APIs without your services being implemented
  • Protect your endpoints with automatic request and response validations
  • Configure critical policies like authentication and CORS with no coding required
  • Centrally control your APIs from an Open Source dashboard
  • Enable automation of the entire deployment process of your API without requiring manual DevOps intervention

What’s new?

Since the 1.1.0 release we have been focusing on making the core of Kusk Gateway production ready - but have also managed to squeeze in some new functionality.

OAuth Authentication (Experimental)

OAuth2 ensures that your applications (upstreams) don’t get requests which are not authenticated and authorized. It effectively helps to protect your API. Kusk now allows you to add simple configuration and use it with your favorite auth provider, taking away the headache of setting up complex OAuth flows. 

Learn more about implementing OAuth in Kusk at https://docs.kusk.io/guides/oauth2

Local auto-mocking from schema 

Spin up a local mocking server that generates responses from your content schema or returns your defined examples. No need to have Kusk running in a cluster anymore to take advantage of OpenAPI mocking!

kusk mock -i <path to openapi file>
Enter fullscreen mode Exit fullscreen mode

Learn more at https://docs.kusk.io/reference/cli/mock-cmd.

Public OpenAPI Path

The openapi-path field takes a path name and will expose your OpenAPI definition in the defined path.

...x-kusk: openapi-path: openapi.json...
Enter fullscreen mode Exit fullscreen mode

This will expose your entire OpenAPI definition, without the Kusk extensions, on yourdomain.com/openapi.json.

ARM64 support

Kusk Gateway now supports being deployed to clusters running on ARM64.

Misc Enhancements

  • Improved CLI developer experience
  • Authentication now happens before Mocking to allow for use of both polcies together.
  • Ability to disable telemetry during installation
  • Improving overall experience with developing Restful APIs

The roadmap post 1.2.0

The main areas for improvement we are planning after this 1.2.0 release include:

  • Upgraded Envoy to the newest version 1.23.0
  • Onboarding and Help improvements, especially on the CLI
  • An new and improved Dashboard experience- Packaging for APT, Chocolatey and an improved Brew experience
  • Hot Deploy (Deploy to a target from the CLI when the OpenAPI spec file changes)
  • … and more enhancements and bug fixes.For more about future enhancements, you’re welcome to check out the 1.3.0 Release project on GitHub to see how things are going, don’t hesitate to jump in with comments, suggestions or a Pull Request!

Try it out!

Head over to the Kusk Gateway GitHub repository to download the latest release - installation instructions and documentation are available there as well. If you have any questions or ideas please feel free to join our Discord server and get in touch.

Thank you!

Top comments (0)