Skip to content

Instantly share code, notes, and snippets.

@gszr
gszr / callout.json
Created August 1, 2025 11:59
Use full callouts response in upstream request
{
"name": "request-callout",
"config": {
"callouts": [
{
"name": "c1",
"request": {
"url": "https://mocki.io/v1/3b51613b-a7e0-44bf-803a-35f6939e55f3",
"method": "GET"
},
@gszr
gszr / callout_dupe_header.json
Last active July 25, 2025 13:37
callout with duplicated headers
{
"name": "request-callout",
"config": {
"callouts": [
{
"name": "echo",
"cache": {
"bypass": false
},
"depends_on": [],
luarocks --verbose --tree /tmp/test install lua-cjson
-------------------------------------------------------------------------------
Current configuration:
-------------------------------------------------------------------------------
accept_unknown_fields = false
arch = "linux-aarch64"
cache = {}
cache_fail_timeout = 86400
cache_timeout = 60
check_certificates = false
@gszr
gszr / t.lua
Created May 30, 2025 16:09
luarocks issue repro
function run_file(filename, env)
local fd, err = io.open(filename)
if not fd then
return nil, err, "open"
end
local str, err = fd:read("*a")
fd:close()
if not str then
return nil, err, "open"
end
@gszr
gszr / gist:98962ed0ccc2c9503d942f5f31570efa
Created April 17, 2025 16:19
callout-custom-cache-key
{
"name": "request-callout",
"config": {
"callouts": [
{
"name": "callout1",
"request": {
"url": "http://httpbin.org/anything",
"by_lua": "kong.ctx.shared.callouts.callout1.caching.cache_key = kong.request.get_header('cache-key')"
},
{
"name": "request-callout",
"config": {
"callouts": [
{
"name": "c1",
"request": {
"url": "http://httpbin.org/uuid",
"method": "GET"
},
{
"name": "request-callout",
"config": {
"callouts": [
{
"name": "callout1",
"request": {
"url": "http://httpbin.org/anything",
"method": "GET"
},
{
"name": "request-callout",
"config": {
"callouts": [
{
"name": "callout1",
"request": {
"url": "http://httpbin.org/anything",
"by_lua": "local body = kong.request.get_body() or {}; local id = body.id; if id then kong.ctx.shared.callouts.callout1.request.params.url = 'http://httpbin.org/anything/' .. id end",
"method": "GET"
{
"name": "request-callout",
"config": {
"callouts": [
{
"name": "callout1",
"request": {
"url": "http://httpbin.org/anything",
"method": "GET",
"query": {
worker_processes 1;
events{}
http {
server {
listen 10000 http2;
location / {
grpc_pass_header Server;