Kusk blog

Kusk-gateway 1.1.0: Authentication support + more

Jun 30, 2022
5 min
read
Christopher Jones
Senior Product Manager
Kusk

The Kusk team is proud to announce the v1.1.0 release of Kusk Gateway, which adds Header Based Authentication, Rate limiting, Caching and Post-processed OpenAPI definitions

Kusk-gateway 1.1.0: Authentication support + more
Share on Twitter
Share on LinkedIn
Share on Reddit
Share on HackerNews
Copy URL

Table of Contents

Get started today

## Summary

The Kusk team is proud to announce the v1.1.0 release of Kusk Gateway, which adds Header Based Authentication, Rate limiting, Caching and Post-processed OpenAPI definitions!

## Intro

The Kusk team is proud to announce the v1.1.0 release of Kusk Gateway!

For the unfamiliar, what makes [Kusk Gateway](https://kubeshop.github.io/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. It 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 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 request timeouts and CORs with **no coding required**

- Centrally control your APIs from an Open Source dashboard

- **Automate the entire deployment process of your API** without requiring manual DevOps intervention

Kusk Gateway is for you if:

- You or your team develops REST APIs running in Kubernetes

- You embrace a design-first approach to developing your APIs using OpenAPI

- You don't want to spend lots of time configuring ingress controllers or gateways that require a dedicated Ops Engineer

- You want your REST API endpoints to be configured, both functionally and operationally from one source of truth.

## What’s new?

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

### Header Based Authentication

Through x-kusk extensions you can now specify a service or host to validate authentication headers. This can be used for any headers based authentication, including common authentication schemes like basic authentication and API key headers.

### Rate Limiting

Kusk Gateway makes it easy to apply rate limiting policies to your API. These can be specified globally or at the path or operation level.

[Read more about rate limiting extensions](https://kubeshop.github.io/kusk-gateway/guides/rate-limit/).

### Caching

Caches are one way to reduce latency and network traffic, as the response is directly returned from the gateway. Kusk Gateway can implement all the complexity of an HTTP cache with a simple annotation in your OpenAPI spec. These policies can be applied at the global, path, or operation levels.

[Read more about caching extensions](https://kubeshop.github.io/kusk-gateway/guides/cache/).

### Improved Mocking

Kusk Gateway no longer requires a separate process to handle mocking. Mocking is all handled natively in Envoy now.

### Public OpenAPI Endpoint

Kusk Gateway will now expose a public endpoint with a post-processed version of the OpenAPI spec. This version will be stripped of all Kusk specific extensions and is useful for code generation, documentation, developer portals, etc.

-- CODE language-yaml --
x-kusk:
  openapi-path: "simple/spec.json"

After applying an API with the above extension property, an endpoint will be created "simple/spac.json". The generated JSON file will contain only endpoints or endpoint operations that are not exposed to your users (by default all are exposed more details [here](https://kubeshop.github.io/kusk-gateway/guides/routing/#disabling-operations)). It is worth noting that this is only the first iteration and in future we are going to include path redirection and rewrites.

### Upgradability

You can now upgrade your Kusk Gateway directly from the Kusk CLI.

-- CODE language-bash --
$ kusk upgrade

[Read more about upgrading Kusk Gateway](https://github.com/kubeshop/kusk/blob/doc_generate/docs/kusk_upgrade.md).

## The roadmap post 1.1.0

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

- OAuth Authentication

- Developer experience improvements

- Advanced mocking support

- and much more ...

For more about future enhancements, you're welcome to check out the [1.2.0](https://github.com/kubeshop/kusk-gateway/milestone/8)[Release](https://github.com/kubeshop/kusk-gateway/milestone/8)[project on GitHub](https://github.com/kubeshop/kusk-gateway/milestone/8) 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](https://github.com/kubeshop/kusk-gateway) to download the [latest release](https://github.com/kubeshop/kusk-gateway/releases) - installation instructions and documentation are [available there as well](https://kubeshop.github.io/kusk-gateway/). If you have any questions or ideas please feel free to join our [Discord server](https://discord.gg/uNuhy6GDyn) and get in touch.

Thank you!

Related Content