WHY GARTNER’S “CONTEXT MESH” CHANGES EVERYTHING AI CONNECTIVITY: THE ROAD AHEAD DON’T MISS API + AI SUMMIT 2026 SEPT 30 – OCT 1
  • [Why Kong](/company/why-kong)Why Kong
    • Explore the unified API Platform
        • BUILD APIs
        • [
          Kong Insomnia](/products/kong-insomnia)
          Kong Insomnia
        • [
          API Design](/products/kong-insomnia/api-design)
          API Design
        • [
          API Mocking](/products/kong-insomnia/api-mocking)
          API Mocking
        • [
          API Testing and Debugging](/products/kong-insomnia/api-testing-and-debugging)
          API Testing and Debugging
        • [
          MCP Client](/products/kong-insomnia/mcp-client)
          MCP Client
        • RUN APIs
        • [
          API Gateway](/products/kong-gateway)
          API Gateway
        • [
          Context Mesh](/products/kong-konnect/features/context-mesh)
          Context Mesh
        • [
          AI Gateway](/products/kong-ai-gateway)
          AI Gateway
        • [
          Event Gateway](/products/event-gateway)
          Event Gateway
        • [
          Kubernetes Operator](/products/kong-gateway-operator)
          Kubernetes Operator
        • [
          Service Mesh](/products/kong-mesh)
          Service Mesh
        • [
          Ingress Controller](/products/kong-ingress-controller)
          Ingress Controller
        • [
          Runtime Management](/products/kong-konnect/features/runtime-management)
          Runtime Management
        • DISCOVER APIs
        • [
          Developer Portal](/products/kong-konnect/features/developer-portal)
          Developer Portal
        • [
          Service Catalog](/products/kong-konnect/features/api-service-catalog)
          Service Catalog
        • [
          MCP Registry](/products/mcp-registry)
          MCP Registry
        • GOVERN APIs
        • [
          Metering and Billing](/products/kong-konnect/features/usage-based-metering-and-billing)
          Metering and Billing
        • [
          APIOps and Automation](/products/apiops-automation)
          APIOps and Automation
        • [
          API Observability](/products/kong-konnect/features/api-observability)
          API Observability
        • [Why Kong?](/company/why-kong)Why Kong?
      • CLOUD
      • [Cloud API Gateways](/products/kong-konnect/features/dedicated-cloud-gateways)Cloud API Gateways
      • [Need a self-hosted or hybrid option?](/products/kong-enterprise)Need a self-hosted or hybrid option?
      • COMPARE
      • [Considering AI Gateway alternatives? ](/performance-comparison/ai-gateway-alternatives)Considering AI Gateway alternatives?
      • [Kong vs. Postman](/performance-comparison/kong-vs-postman)Kong vs. Postman
      • [Kong vs. MuleSoft](/performance-comparison/kong-vs-mulesoft)Kong vs. MuleSoft
      • [Kong vs. Apigee](/performance-comparison/kong-vs-apigee)Kong vs. Apigee
      • [Kong vs. IBM](/performance-comparison/ibm-api-connect-vs-kong)Kong vs. IBM
      • GET STARTED
      • [Sign Up for Kong Konnect](/products/kong-konnect/register)Sign Up for Kong Konnect
      • [Documentation](https://developer.konghq.com/)Documentation
      • FOR PLATFORM TEAMS
      • [Developer Platform](/solutions/building-developer-platform)Developer Platform
      • [Kubernetes and Microservices](/solutions/build-on-kubernetes)Kubernetes and Microservices
      • [Observability](/solutions/observability)Observability
      • [Service Mesh Connectivity ](/solutions/service-mesh-connectivity)Service Mesh Connectivity
      • [Kafka Event Streaming](/solutions/kafka-stream-api-management)Kafka Event Streaming
      • FOR EXECUTIVES
      • [AI Connectivity](/ai-connectivity)AI Connectivity
      • [Open Banking](/solutions/open-banking)Open Banking
      • [Legacy Migration](/solutions/legacy-api-management-migration)Legacy Migration
      • [Platform Cost Reduction](/solutions/api-platform-consolidation)Platform Cost Reduction
      • [Kafka Cost Optimization](/solutions/reduce-kafka-cost)Kafka Cost Optimization
      • [API Monetization](/solutions/api-monetization)API Monetization
      • [AI Monetization](/solutions/ai-monetization)AI Monetization
      • [AI FinOps](/solutions/ai-cost-governance-finops)AI FinOps
      • FOR AI TEAMS
      • [AI Governance](/solutions/ai-governance)AI Governance
      • [AI Security](/solutions/ai-security)AI Security
      • [AI Cost Control](/solutions/ai-cost-optimization-management)AI Cost Control
      • [Agentic Infrastructure](/solutions/agentic-ai-workflows)Agentic Infrastructure
      • [MCP Production](/solutions/mcp-production-and-consumption)MCP Production
      • [MCP Traffic Gateway](/solutions/mcp-governance)MCP Traffic Gateway
      • FOR DEVELOPERS
      • [Mobile App API Development](/solutions/mobile-application-api-development)Mobile App API Development
      • [GenAI App Development](/solutions/power-openai-applications)GenAI App Development
      • [API Gateway for Istio](/solutions/istio-gateway)API Gateway for Istio
      • [Decentralized Load Balancing](/solutions/decentralized-load-balancing)Decentralized Load Balancing
      • BY INDUSTRY
      • [Financial Services](/solutions/financial-services-industry)Financial Services
      • [Healthcare](/solutions/healthcare)Healthcare
      • [Higher Education](/solutions/api-platform-for-education-services)Higher Education
      • [Insurance](/solutions/insurance)Insurance
      • [Manufacturing](/solutions/manufacturing)Manufacturing
      • [Retail](/solutions/retail)Retail
      • [Software & Technology](/solutions/software-and-technology)Software & Technology
      • [Transportation](/solutions/transportation-and-logistics)Transportation
      • [See all Solutions](/solutions)See all Solutions
  • [Pricing](/pricing)Pricing
      • DOCUMENTATION
      • [Kong Konnect](https://developer.konghq.com/konnect/)Kong Konnect
      • [Kong Gateway](https://developer.konghq.com/gateway/)Kong Gateway
      • [Kong Mesh](https://developer.konghq.com/mesh/)Kong Mesh
      • [Kong AI Gateway](https://developer.konghq.com/ai-gateway/)Kong AI Gateway
      • [Kong Event Gateway](https://developer.konghq.com/event-gateway/)Kong Event Gateway
      • [Kong Insomnia](https://developer.konghq.com/insomnia/)Kong Insomnia
      • [Plugin Hub](https://developer.konghq.com/plugins/)Plugin Hub
      • EXPLORE
      • [Blog](/blog)Blog
      • [Learning Center](/blog/learning-center)Learning Center
      • [eBooks](/resources/e-book)eBooks
      • [Reports](/resources/reports)Reports
      • [Demos](/resources/demos)Demos
      • [Customer Stories](/customer-stories)Customer Stories
      • [Videos](/resources/videos)Videos
      • EVENTS
      • [API + AI Summit](/events/conferences/api-ai-summit)API + AI Summit
      • [Agentic Era World Tour](/agentic-era-world-tour)Agentic Era World Tour
      • [Webinars](/events/webinars)Webinars
      • [User Calls](/events/user-calls)User Calls
      • [Workshops](/events/workshops)Workshops
      • [Meetups](/events/meetups)Meetups
      • [See All Events](/events)See All Events
      • FOR DEVELOPERS
      • [Get Started](https://developer.konghq.com/)Get Started
      • [Community](/community)Community
      • [Certification](/academy/certification)Certification
      • [Training](https://education.konghq.com)Training
      • COMPANY
      • [About Us](/company/about-us)About Us
      • [We're Hiring!](/company/careers)We're Hiring!
      • [Press Room](/company/press-room)Press Room
      • [Contact Us](/company/contact-us)Contact Us
      • [Kong Partner Program](/partners)Kong Partner Program
      • [Enterprise Support Portal](https://support.konghq.com/s/)Enterprise Support Portal
      • [Documentation](https://developer.konghq.com/?_gl=1*tphanb*_gcl_au*MTcxNTQ5NjQ0MC4xNzY5Nzg4MDY0LjIwMTI3NzEwOTEuMTc3MzMxODI2MS4xNzczMzE4MjYw*_ga*NDIwMDU4MTU3LjE3Njk3ODgwNjQ.*_ga_4JK9146J1H*czE3NzQwMjg1MjkkbzE4OSRnMCR0MTc3NDAyODUyOSRqNjAkbDAkaDA)Documentation
  • [](/search)
  • [Login](https://cloud.konghq.com/login)Login
  • [Book Demo](/contact-sales)Book Demo
  • [Get Started](/products/kong-konnect/register)Get Started
[Blog](/blog)Blog
  • [AI Gateway](/blog/tag/ai-gateway)AI Gateway
  • [AI Security](/blog/tag/ai-security)AI Security
  • [AIOps](/blog/tag/aiops)AIOps
  • [API Security](/blog/tag/api-security)API Security
  • [API Gateway](/blog/tag/api-gateway)API Gateway
|
    • [API Management](/blog/tag/api-management)API Management
    • [API Development](/blog/tag/api-development)API Development
    • [API Design](/blog/tag/api-design)API Design
    • [Automation](/blog/tag/automation)Automation
    • [Service Mesh](/blog/tag/service-mesh)Service Mesh
    • [Insomnia](/blog/tag/insomnia)Insomnia
    • [View All Blogs](/blog/page/1)View All Blogs
We're Entering the Age of AI Connectivity [Read more](/blog/news/the-age-of-ai-connectivity)Read moreProducts & Agents:
    • [Kong AI Gateway](/products/kong-ai-gateway)Kong AI Gateway
    • [Kong API Gateway](/products/kong-gateway)Kong API Gateway
    • [Kong Event Gateway](/products/event-gateway)Kong Event Gateway
    • [Kong Metering & Billing](/products/usage-based-metering-and-billing)Kong Metering & Billing
    • [Kong Insomnia](/products/kong-insomnia)Kong Insomnia
    • [Kong Konnect](/products/kong-konnect)Kong Konnect
  • [Documentation](https://developer.konghq.com)Documentation
  • [Book Demo](/contact-sales)Book Demo
  1. Home
  2. Blog
  3. Engineering
  4. How to Create a Custom Lua Plugin for Kong Gateway
[Engineering](/blog/engineering)Engineering
March 18, 2021
7 min read

# How to Create a Custom Lua Plugin for Kong Gateway

Thijs Schreijer

This tutorial shows you how easy it is to build a custom Lua plugin for Kong Gateway. My Kong Lua plugin example will automatically add a custom header to any response sent out, indicating the current plugin version.

[Kong API Gateway](https://konghq.com/kong)Kong API Gateway is built on [OpenResty](https://openresty.org/en)OpenResty, which extends the [NGINX](https://nginx.org/en)NGINX proxy server to run Lua scripts. It sits as a proxy between a client’s requests and routes them to defined services.

With the open source Kong Gateway, developers can build **plugins** on a per-service basis. These plugins help you build policies and Lua functions important to your architecture. You can build plugins in real time, on requests your services receive or on custom responses sent back to the client. These plugins provide an easy way to add advanced functionality and features to your implementation. For example, you could create a plugin to implement logging, rate limiting, authentication and more. Kong even had a customer create a custom plugin for Open Policy Agent.

[Kong Hub](https://docs.konghq.com/hub)Kong Hub has a wide range of existing plugins created by both Kong and third-party plugin authors. A few exciting plugins include:

  • - [Bot Detection](https://docs.konghq.com/hub/kong-inc/bot-detection)Bot Detection – protects a service or route from most common bots
  • - [StatsD](https://docs.konghq.com/hub/kong-inc/statsd-advanced)StatsD – logs metrics to a StatsD server
  • - [Rate limiting](https://docs.konghq.com/hub/kong-inc/rate-limiting)Rate limiting – limits how many HTTP requests are received in a given period of time
  • - [Kong Upstream API](https://docs.konghq.com/hub/optum/kong-upstream-jwt)Kong Upstream API – a community-built plugin that adds a signed JWT into the HTTP header
  • - [Inspur Response Transform](https://docs.konghq.com/hub/inspur/apig-response-transform)Inspur Response Transform – a community-built plugin that transforms the response sent by the upstream server from JSON to XML

In addition to using pre-built plugins, you can also build your own. For example, you could create a custom Lua plugin for Kong API Gateway that hooks into the request/response phases or even works with streaming data. Kong's plugin development kit ([PDK](https://docs.konghq.com/gateway-oss/2.0.x/pdk)PDK) allows you to write plugins with functionality ranging from authentication and traffic control to logging and monitoring. Plugins can be written in Lua, [Go](https://docs.konghq.com/gateway-oss/latest/external-plugins/?_ga=2.211379603.760851772.1618239833-852472749.1605808164#developing-go-plugins)Go, [Python](https://docs.konghq.com/gateway-oss/latest/external-plugins/?_ga=2.149898416.760851772.1618239833-852472749.1605808164#developing-python-plugins)Python or [Javascript](https://docs.konghq.com/gateway-oss/latest/external-plugins/?_ga=2.149898416.760851772.1618239833-852472749.1605808164#developing-javascript-plugins)Javascript. The plugin development kit has open source templates and tools designed to get you started.

## Setting Up Your Development Environment

Kong helps you get started building plugins through [Pongo](https://github.com/Kong/kong-pongo)Pongo, which serves several roles. Pongo provides a framework for you to test your plugin. It also ensures that you configure your system for Kong, including fetching any dependencies. *And* it sets up a test Kong environment so that you can run your plugin in real time.

Pongo requires [docker-compose](https://docs.docker.com/compose)docker-compose and [curl](https://curl.se)curl. After installing those, clone Pongo and install the Pongo CLI (a symlink to a script file) like this:

PATH=$PATH:~/.local/bin
git clone https://github.com/Kong/kong-pongo.git
mkdir -p ~/.local/bin
ln -s $(realpath kong-pongo/pongo.sh) ~/.local/bin/pongo

The [kong-plugin](https://github.com/Kong/kong-plugin)kong-plugin repository provides a simple template to get started writing a custom Lua plugin for Kong API Gateway. Go ahead and clone that repo into a new directory called kong-api-version-plugin:

git clone https://github.com/Kong/kong-plugin.git kong-api-version-plugin

In the kong-api-version-plugin project, there are two directories to focus on:

  1. - kong/plugins/myplugin: this is where the source code for the plugin lives. Go ahead and rename this to kong/plugins/api-version.
  2. - spec/myplugin: this is where the tests for your plugin reside. Rename this directory to spec/api-version and then open up each spec file and set PLUGIN_NAME to “api-version."

With those files renamed, type pongo run to get started. Docker will fetch the images necessary to get an environment set up. After some time, your terminal will print lines like these:

Kong version: 2.3.2
[==========] Running tests from scanned files.
[----------] Global test environment setup.
[----------] Running tests from /kong-plugin/spec/api-version/01-unit_spec.lua
...
[----------] Running tests from /kong-plugin/spec/api-version/02-integration_spec.lua

Once those tests pass, the test setup is complete! Next, get access to a local Kong instance. Type pongo shell, which drops you into the Kong container. No need to start the dependencies since they were already started automatically by the pongo run command above. In this prompt, enter the next two lines:

kong migrations bootstrap --force
kong start

While still in the Kong shell, run curl -i http://localhost:8000/ to ensure that you can communicate with Kong on its default port, 8000. If you get an error that says {“message”:”no Route matched with those values”}, that’s perfectly fine! The critical thing to observe is that Kong handled the request.

## Manually Testing the Custom Lua Plugin for Kong Gateway

Before testing the plugin, you'll need to set up a dummy Service. A Service is an upstream API that Kong considers as a microservice to manage. Since this is an example, I'm going to set up a dummy service that points to any URL. You can use Kong’s Admin API to do this:

curl -i -X POST \
 --url http://localhost:8001/services/ \
 --data 'name=example-service' \
 --data 'url=http://konghq.com'

With the Service set up, you'll need to add a route so that the requests can be proxied through Kong:

curl -i -X POST \
 --url http://localhost:8001/services/example-service/routes \
 --data 'hosts[]=example.com'

Last but not least, you'll need to add the plugin to the Service:

curl -i -X POST \
 --url http://localhost:8001/services/example-service/plugins/ \
 --data 'name=api-version'

Next, test this setup with a final cURL call. Only this time, you can ignore the body and just look at the headers:

curl -I -H "Host: example.com" http://localhost:8000/

If you see a header with the key name of Bye-World, you’re ready to write some code!

## Writing Your Custom Lua Plugin for Kong Gateway

### Structuring Your Kong Plugin Project Files

Within kong/plugins/api-version, you’ll see two files:

  1. - handler.lua: This is where the main functionality of your plugin resides. Each phase of the request/response lifecycle has a function, which your plugin implements to provide custom behavior. I'll go into this in more detail below.
  2. - schema.lua: If your plugin requires additional configuration, such as key/value pairs a user can provide to alter behavior, the logic for that is stored here.

In handler.lua, you’ll notice several methods that take the form of function plugin:<name>. These methods run during the execution lifecycle of Kong. You can find a complete list of their descriptions [in the API reference documentation](https://docs.konghq.com/gateway-oss/2.0.x/plugin-development/custom-logic/#available-contexts)in the API reference documentation. For this example plugin, I'll concentrate on the plugin:header_filter, since my plugin will send a custom header.

### Adding a Custom Header

There should already be a line in the plugin that contains a custom header:

kong.response.set_header(plugin_conf.response_header, "this is on the response")

When you run curl -i http://127.0.0.1:8000/, you should see a response header with the following line:

Bye-World: this is on the response

As you might surmise based on the set_header function, plugin_conf.response_header controls the header key, while the header value is explicitly defined here in the plugin:header_filter method.

Change “this is on the response” to read plugin.VERSION, which is a constant set at the very top of the file. In your Kong shell, run kong reload, execute the same curl command and notice that the value changes. Any time you modify your plugin code, you can run kong reload to reload it and iterate quickly on changes.

Next, take a look at schema.lua. There’s a field named response_header with a default value of Bye-World. You could just change this to something like Version and expect it to reflect in the response header. But I'll dig a little deeper. One of the primary use cases of this schema is to allow users to set their own values in their plugin. When adding a plugin to a service, you can set up its configuration by passing some data values.

Here’s an example. First, get a list of all of the Kong plugins:

curl http://localhost:8001/plugins

Grab the id of the api-version plugin, and use it to delete the plugin:

curl -X DELETE http://localhost:8001/plugins/4f249ee9-etc

Add the plugin back. Only this time, set a non-default value for the response_header:

curl -i -X POST \
 --url http://localhost:8001/services/example-service/plugins/ \
 --data 'name=api-version' \
 --data 'config.response_header=Plugin-Version'

Make one more call to curl -i http://127.0.0.1:8000/ and notice that while the schema.lua code defines a default of Version, the response is Plugin-Version, just like I set up in my configuration. You can use various properties in a schema, so be sure to check out [the reference documentation](https://docs.konghq.com/gateway-oss/2.3.x/plugin-development/plugin-configuration/#schemalua-specifications)the reference documentation for more information.

## Testing Your Custom Lua Plugin for Kong Gateway

The implementation is complete. You can now begin writing tests to ensure the functionality remains consistent.

Pongo comes with its test runner, which loads your plugin in Kong and tests two significant aspects: 1) it provides a unit test to validate the schema, and 2) it provides an integration test that simulates an end-to-end request. It does this by automating all of the steps we went through above:

  1. - It [creates a route](https://github.com/Kong/kong-plugin/blob/d6016d59d287a545cb277197a2a65cf11d2c6290/spec/myplugin/02-integration_spec.lua#L15-L19)creates a route to an existing service
  2. - It [attaches your plugin to that service](https://github.com/Kong/kong-plugin/blob/d6016d59d287a545cb277197a2a65cf11d2c6290/spec/myplugin/02-integration_spec.lua#L20-L24)attaches your plugin to that service
  3. - It then [starts the Kong node with the plugin and a predefined NGINX template](https://github.com/Kong/kong-plugin/blob/d6016d59d287a545cb277197a2a65cf11d2c6290/spec/myplugin/02-integration_spec.lua#L27-L35)starts the Kong node with the plugin and a predefined NGINX template

The logic to perform this setup is available to you automatically by the fixtures and methods available in Pongo. All you’ll need to do is write the test logic. To make requests to this test Kong node, you can use the client.

If your terminal is still in the Kong shell, type exit to return to your command prompt. Then, go ahead and run pongo run one more time. You should receive an error that resembles the following:

/kong-plugin/spec/api-version/02-integration_spec.lua:80: Expected header:
(string) 'bye-world'
But it was not found

If you scroll down to around line 80, you'll notice that the client makes a request to the Kong node, but in the response, it expects a header value that we changed. To fix this, you'll need to change the existing strings to match what we provided in our handler:

local header_value = assert.response(r).has.header("Version")
assert.equal("0.1", header_value)

Another pongo run should confirm that the test now passes.

As well, it's a good idea to add a unit test for any large schema changes you might have made. We didn't really do that in this tutorial. Nonetheless, let's go ahead and add a test in 01-unit_spec.lua that asserts that the response header will have a default value. We can test this by passing nil during the configuration step:

it("provides a default response_header", function()
 local ok, err = validate({
  request_header = "My-Request-Header", 
  response_header = nil, }) 
assert.is_nil(err) 
assert.is_truthy(ok) 
end)

For a final code cleanup, you can run pongo lint to run [LuaCheck](https://github.com/luarocks/luacheck)LuaCheck. LuaCheck will do a static analysis of the code and report any obvious problems (e.g., accidental global variables, etc.). It's always a good idea to lint your code because Lua is a dynamic language, and you could easily miss typos.

## Enhancing Your Kong Gateway

Kong plugins are a powerful way to instantly implement policies and functionality in your [API gateway](https://konghq.com/learning-center/api-gateway/what-is-an-api-gateway)API gateway. With [Pongo](https://github.com/Kong/kong-pongo)Pongo and the [kong-plugin](https://github.com/Kong/kong-plugin)kong-plugin template, Kong provides much of the starting boilerplate for you. In this example, I've only just begun to explore how plugins can allow Kong Gateway to gain expanded capabilities. If you’d like a more in-depth look at some of the things you can build, check out [the Plugin Development Guide](https://docs.konghq.com/gateway/latest/pdk/#plugin-development-kit)the Plugin Development Guide in Kong's documentation.

Check out the following further information:

  • - The Kong [Plugin Development Kit](https://docs.konghq.com/gateway/2.7.x)Plugin Development Kit documentation
  • - An excellent [introduction to Lua](https://fabiomascarenhas.github.io/lua)introduction to Lua
  • - [Pongo](https://github.com/Kong/kong-pongo)Pongo, the Kong plugin test tool
  • - A [plugin-template](https://github.com/Kong/kong-plugin)plugin-template to clone
  • - The Kong [open source plugins](https://github.com/Kong/kong/tree/master/kong/plugins)open source plugins and their [tests](https://github.com/Kong/kong/tree/master/spec/03-plugins)tests to use as examples

**Have questions or want to stay in touch with the Kong community? Join us wherever you hang out:**

⭐ [Star us on GitHub](https://github.com/Kong/kong)Star us on GitHub

🐦 [Follow us on Twitter](https://twitter.com/thekonginc)Follow us on Twitter

🌎 [Join the Kong Community](https://konghq.com/community?utm_source=newsletter&utm_medium=email&utm_campaign=community)Join the Kong Community

🍻 [Join our Meetups](https://www.meetup.com/pro/kong)Join our Meetups

❓ ️[Ask and answer questions on Kong Nation](https://discuss.konghq.com)Ask and answer questions on Kong Nation

💯 [Apply to become a Kong Champion](https://konghq.com/kong-champions?utm_source=newsletter&utm_medium=email&utm_campaign=community)Apply to become a Kong Champion

## Developer agility meets compliance and security. Discover how Kong can help you become an API-first company.

[Get a Demo](/contact-sales)Get a Demo[Start for Free](/products/kong-konnect/register)Start for Free
- [API Gateway](/blog/tag/api-gateway)API Gateway- [Open Source](/blog/tag/open-source)Open Source- [](/blog/tag)- [Tutorials](/blog/tag/tutorials)Tutorials

## More on this topic

_Videos_

## Unifying REST and Event APIs for Partners

_Videos_

## How Kong Shines in the Field of Enterprise Traffic Management

## See Kong in action

Accelerate deployments, reduce vulnerabilities, and gain real-time visibility. 

[Get a Demo](/contact-sales)Get a Demo
**Topics**
- [API Gateway](/blog/tag/api-gateway)API Gateway- [Open Source](/blog/tag/open-source)Open Source- [](/blog/tag)- [Tutorials](/blog/tag/tutorials)Tutorials
Thijs Schreijer

Recommended posts

# Gateway API: From Early Years to GA

[Engineering](/blog)EngineeringNovember 7, 2023

In the Kubernetes world, the Ingress API has been the longstanding staple for getting access to your Services from outside your cluster network. Ingress has served us well over the years and can be found present in several dozen different implementa

Shane Utt
[](https://konghq.com/blog/engineering/gateway-api-from-early-years-to-ga)

# Kong SAML Plugin: Examples and Usage

[Engineering](/blog)EngineeringOctober 11, 2023

This post is part of our Kong Champions series, where real Kong users walk you through technical challenges, use cases, and new technology they're using in their day-to-day. Sign up here to become a Kong Champion. As a Kong user, I've had the oppo

Samuele Chiocca
[](https://konghq.com/blog/engineering/kong-saml-plugin-examples-and-uses)

# How to Fix a SIGILL Kong Crash on Arm64

[Engineering](/blog)EngineeringJuly 27, 2023

Kong will crash on the ARM64 platform (the machine with Mac M1/M2 chips or any ARM64 platform). The error message shows the crash is triggered by the SIGILL signal, which means there is an illegal instruction in the Kong binary code. And it turns out

Zhongwei Yao
[](https://konghq.com/blog/engineering/sigill-kong-crash-on-arm64)

# Bringing Gateway API for Mesh to Kuma

[Engineering](/blog)EngineeringJune 28, 2023

The release of Kuma 2.3 brings experimental support for GAMMA (Gateway API for Mesh Management and Administration) resources. Kuma has long supported Gateway API with the built-in gateway for ingress traffic but with GAMMA support, users can specify

Mike Beaumont
[](https://konghq.com/blog/engineering/gamma-and-kuma)

# How to Customize Your Kong Developer Portal

[Engineering](/blog)EngineeringNovember 11, 2021

A developer portal is a storefront to your APIs (the products) that internal and external developers are trying to consume. The Kong Developer Portal provides a single source of truth for all developers to locate, access and consume services. With

Sven Walther
[](https://konghq.com/blog/engineering/customize-kong-developer-portal)

# Kong-plement Your ServiceHub With a Dev Portal

[Engineering](/blog)EngineeringAugust 5, 2021

Two of the best (in my opinion) features in Konnect are the ServiceHub and Dev Portal. However, they're also two of the most misunderstood. Aren't they the same thing? Why would you need a ServiceHub vs. Dev Portal? Well, I'm glad you asked! The r

Michael Heap
[](https://konghq.com/blog/engineering/service-hub-developer-portal)

# Automating Your Developer Pipeline With APIOps (DevOps + GitOps)

[Engineering](/blog)EngineeringJune 1, 2021

Want to learn more about the nuts and bolts of APIOps? Download our eBook, Unlocking the Full Potential of your APIs with APIOps , and learn about the stages of APIOps, get an understanding of the technical assets required, and explore the tooling

Ross McDonald
[](https://konghq.com/blog/engineering/automating-developer-pipeline-apiops)

## Ready to see Kong in action?

Get a personalized walkthrough of Kong's platform tailored to your architecture, use cases, and scale requirements.

[Get a Demo](/contact-sales)Get a Demo
Ask AI for a summary of Kong
  • [](https://chatgpt.com/s/t_69b981cfa37081919ce25ce107c431c1)
  • [](https://share.google/aimode/hyefOiNwl8pg8W99d)
  • [](https://www.perplexity.ai/search/what-solutions-does-kong-offer-VsYWPddxQjajgvLA4B9hjQ)
Stay connected

## step-0

    • Company
    • [About Kong](/company/about-us)About Kong
    • [Customers](/customer-stories)Customers
    • [Careers](/company/careers)Careers
    • [Press](/company/press-room)Press
    • [Events](/events)Events
    • [Contact](/company/contact-us)Contact
    • [Pricing](/pricing)Pricing
    • Legal
    • [Terms](/legal/terms-of-use)Terms
    • [Privacy](/legal/privacy-policy)Privacy
    • [Trust and Compliance](https://trust.konghq.com)Trust and Compliance
    • Platform
    • [Kong AI Gateway](/products/kong-ai-gateway)Kong AI Gateway
    • [Kong Konnect](/products/kong-konnect)Kong Konnect
    • [Kong Gateway](/products/kong-gateway)Kong Gateway
    • [Kong Event Gateway](/products/event-gateway)Kong Event Gateway
    • [Kong Insomnia](/products/kong-insomnia)Kong Insomnia
    • [Documentation](https://developer.konghq.com)Documentation
    • [Book Demo](/contact-sales)Book Demo
    • Compare
    • [AI Gateway Alternatives](/performance-comparison/ai-gateway-alternatives)AI Gateway Alternatives
    • [Kong vs Apigee](/performance-comparison/kong-vs-apigee)Kong vs Apigee
    • [Kong vs IBM](/performance-comparison/ibm-api-connect-vs-kong)Kong vs IBM
    • [Kong vs Postman](/performance-comparison/kong-vs-postman)Kong vs Postman
    • [Kong vs Mulesoft](/performance-comparison/kong-vs-mulesoft)Kong vs Mulesoft
    • Explore More
    • [Open Banking API Solutions](/solutions/open-banking)Open Banking API Solutions
    • [API Governance Solutions](/solutions/api-governance)API Governance Solutions
    • [Istio API Gateway Integration](/solutions/istio-gateway)Istio API Gateway Integration
    • [Kubernetes API Management](/solutions/build-on-kubernetes)Kubernetes API Management
    • [API Gateway: Build vs Buy](/campaign/secure-api-scalability)API Gateway: Build vs Buy
    • [Kong vs Apigee](/performance-comparison/kong-vs-apigee)Kong vs Apigee
    • Open Source
    • [Kong Gateway](https://developer.konghq.com/gateway/install/)Kong Gateway
    • [Kuma](https://kuma.io/)Kuma
    • [Insomnia](https://insomnia.rest/)Insomnia
    • [Kong Community](/community)Kong Community

Kong enables the connectivity layer for the agentic era – securely connecting, governing, and monetizing APIs and AI tokens across any model or cloud.

  • Japanese
  • Frenchcoming soon
  • Spanishcoming soon
  • Germancoming soon
© Kong Inc. 2026
Interaction mode