Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
581 commits
Select commit Hold shift + click to select a range
527f947
feat(ai-gateway): Add calendar window feature overview (#6507)
tomek-labuk Jul 31, 2026
c1a0093
fix(ai-gateway): Add missing conversion samples to the on-prem doc (#…
tomek-labuk Jul 31, 2026
ae2abb8
Feat(aigw): v2 a2a rate limit how-to (#6511)
jbaross Jul 31, 2026
4d941fe
feat(ai-gateway): Update MCP aggregation docs (#6524)
tomek-labuk Aug 4, 2026
ce5238c
Align docs with 0.7.0 API spec (#6554)
tomek-labuk Aug 10, 2026
8ec2ee8
fix(aigw2): Revise landing page to add context (#6551)
cloudjumpercat Aug 10, 2026
5805732
fix(aigw): update guardrails for model selector (#6624)
jbaross Aug 10, 2026
271a586
feat(ai-gateway): Sagemaker support (#6521)
tomek-labuk Aug 11, 2026
446a293
Add how-to and set canonical_url (#6505)
tomek-labuk Aug 11, 2026
261c20a
Merge branch 'main' into release/ai-gateway-2.0
fabianrbz Aug 11, 2026
b996113
feat(ai-gateway): Add MCP aggregation 2.0 how-to (#6553)
tomek-labuk Aug 11, 2026
58f68c3
feat(ai-gateway): secure a2a with KI (#6623)
tomek-labuk Aug 11, 2026
b5dee72
feat(ai-gateway): Model pricing reference page (#6640)
tomek-labuk Aug 12, 2026
158ea7e
feat(AIGW): Extend existing callout to mention spacy repo (#6592)
jbaross Aug 12, 2026
e079898
feat(insomnia): update mcp aggregator link (#6657)
juliamrch Aug 12, 2026
f130bb9
feat(ai-gateway): Identity Provider support for MCP Servers (#6620)
tomek-labuk Aug 14, 2026
8c60719
fix(ai-gateway): Add ai sync command to the configure on-prem doc (#6…
tomek-labuk Aug 17, 2026
ee347bc
feat(ai-gateway): Migrate M&B Policy overview (#6696)
tomek-labuk Aug 19, 2026
272fe6b
feat(ai-gateway): Migrate HTTP log policy (#6704)
tomek-labuk Aug 19, 2026
fba9981
fix(aigw): changelog anchor lings in ai-gateway
fabianrbz Aug 19, 2026
f0aa5b9
fix(platform): prevent relase_map_loader from runnning if KONG_PRODUCTS
fabianrbz Aug 19, 2026
6c82e43
fix(aigw): control plane name in prereq
fabianrbz Aug 5, 2026
1a67c0a
fix(aigw): update how-to with testing instructions
fabianrbz Aug 5, 2026
244220d
fix(aigw): app/_how-tos/ai-gateway/get-started-with-mcp-server.md
fabianrbz Aug 6, 2026
ac82520
feat(request-check): add an option to pass a custom command to capture
fabianrbz Aug 6, 2026
ccc1aee
feat(tests): add support for extracting hidden steps, prereqs, etc and
fabianrbz Aug 6, 2026
2bc791b
fix(tests): add aigw 2.0 support to automated-tests
fabianrbz Aug 10, 2026
1a6166e
fix(automated-tests): improve logging when the docker image creation
fabianrbz Aug 10, 2026
a58b58b
fix(automated-tests): set KONG_IMAGE_NAME and KONG_IMAGE_TAG if there's
fabianrbz Aug 10, 2026
84e2e22
fix(automated-tests): derive actual product from frontmatter.
fabianrbz Aug 10, 2026
5b14e3b
feat(automated-tests): install kongctl and claude
fabianrbz Aug 10, 2026
93ef2b7
fix(automated-tests): bind /tmp/kong to fix an issue with the quickstart
fabianrbz Aug 10, 2026
5aa8650
chore(automated-tests): add more logging statements and add support for
fabianrbz Aug 10, 2026
3075c5a
chore(automated-tests): code style
fabianrbz Aug 10, 2026
a01ba79
fix(aigw): update how-tos and includes with validation steps and update
fabianrbz Aug 11, 2026
5d8b58d
fix(automated-tests): Apply decoded base64 values last so they alway…
fabianrbz Aug 11, 2026
3771dc8
feat(automated-tests): add retry with backoff to custom-command for
fabianrbz Aug 11, 2026
0d7d0fd
fix(prereqs): set kong env variables to ai-gateway
fabianrbz Aug 11, 2026
3365827
fix(how-tos): add retry instructions and missing values for KONG env
fabianrbz Aug 11, 2026
629f90d
fix(how-to): skip okta test
fabianrbz Aug 11, 2026
7620c6e
feat(automated-tests): retry requests if the status_code differ
fabianrbz Aug 11, 2026
a230465
fix(how-to): replace debugging statements with actual instructions in
fabianrbz Aug 11, 2026
e0cd80e
fix(specs): update specs to match the new implementation
fabianrbz Aug 11, 2026
0d29504
feat(aigw): add claude-code validation and update how-tos with
fabianrbz Aug 12, 2026
1d4ceb4
fix(automated-tests): install claude and kongctl pre-release
fabianrbz Aug 12, 2026
8fd1c33
fix(automated-tests): set KONG_NGINX_HTTP_CLIENT_BODY_BUFFER_SIZE=2m by
fabianrbz Aug 12, 2026
34b523b
update vertex route
jbaross Aug 12, 2026
aae1a41
azure and bedrock
jbaross Aug 12, 2026
cf951aa
dashscope and gemini
jbaross Aug 12, 2026
71f2666
bedrock hf openai
jbaross Aug 12, 2026
b4034ee
vertex cleanup and new config
jbaross Aug 12, 2026
da9fe68
codex content
jbaross Aug 12, 2026
f4906b7
anthropic prereq
jbaross Aug 12, 2026
04dd12e
missing prereqs
jbaross Aug 12, 2026
2609bcf
consistent settings phrasing
jbaross Aug 12, 2026
56cb3fb
heading consistency
jbaross Aug 12, 2026
58b3931
combine vertex how-to into one example block
jbaross Aug 13, 2026
bd9b9d2
Add how-tos
tomek-labuk Aug 13, 2026
97ad30a
Fix
tomek-labuk Aug 13, 2026
e7b690a
Apply suggestions from code review
tomek-labuk Aug 13, 2026
51fe1e9
Add qwen CLI prereq
tomek-labuk Aug 13, 2026
31682e7
feat(automated-tests): add support for codex
fabianrbz Aug 13, 2026
3a90efd
Add Gemini CLI how-to
tomek-labuk Aug 14, 2026
0096986
feat(aigw): add support for claude-code, qwen and codex validations
fabianrbz Aug 17, 2026
13d1544
feat(automated-tests): add `body_file` to request-check so it can add
fabianrbz Aug 17, 2026
c1ec1be
feat(iagw): unskip how-to from the suite
fabianrbz Aug 17, 2026
7a1d545
fix(how-to): use entity_examples instead of hardcoded code snippet
fabianrbz Aug 17, 2026
1aa118a
fix(aigw): update model in huggingface how-to, it was no longer
fabianrbz Aug 17, 2026
5536d46
feat(automated-tests): add `{% validation gemini %}` block and tests
fabianrbz Aug 18, 2026
60c44ac
fix(aigw): update gemini-cli how-to
fabianrbz Aug 18, 2026
4944514
refactor(automated-tests): use a config to list the env variables that
fabianrbz Aug 18, 2026
e192f0c
feat(request-check): add support for passing `form_url_encoded_data` to
fabianrbz Aug 18, 2026
4b0d115
feat(automated-tests): merge series how-tos into one instruction file
fabianrbz Aug 18, 2026
d2f45cd
feat(automated-tests): add support for setting `section` to
fabianrbz Aug 18, 2026
6d455e2
fix(automated-tests): use validation steps and add missing cleanup step
fabianrbz Aug 18, 2026
c9d3487
feat(automated-test): extract series based on platform
fabianrbz Aug 18, 2026
e8f262f
fix(automated-tests): fix log statement
fabianrbz Aug 18, 2026
26f8f58
fix(how-to): add missing exectraction step in how-to
fabianrbz Aug 18, 2026
726fd66
fix(how-to): pass force=true when deleting the auth-server
fabianrbz Aug 18, 2026
2b0c133
refactor(aigw): mcp-conversion-2-0 series
fabianrbz Aug 19, 2026
9880078
fix(automated-tests): only log if config.debug is true
fabianrbz Aug 19, 2026
b744d1b
note for otel collector
tomek-labuk Aug 19, 2026
ebd55f4
appease vale
tomek-labuk Aug 19, 2026
23d085c
fix(aigw): address code review comments
fabianrbz Aug 19, 2026
d253724
fix(aigw): add CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1 to
fabianrbz Aug 19, 2026
afce438
fix: add support for skipping the release_map_loader in dev by default
fabianrbz Aug 20, 2026
10a196f
fix: update claude.md
fabianrbz Aug 20, 2026
6788a95
fix(how-to): update claude-code command to use `|-` so no trailing
fabianrbz Aug 20, 2026
cc539bb
fix: make vale happy
fabianrbz Aug 20, 2026
152cdff
fix(automated-tests): reporting when passing --files as an option
fabianrbz Aug 20, 2026
7b256c4
feat(ai-gateway): Migrate Request Size Limiting policy overview (#6710)
lmilan Aug 20, 2026
8885a2e
feat(aigw): add tools/ai-policies-post-processor
fabianrbz Aug 20, 2026
d2f8553
refactor(tools): ai-policies-post-processor and plugins-post-processor
fabianrbz Aug 20, 2026
d171561
fix(tools): rename ai-policies-post-processor to
fabianrbz Aug 20, 2026
1df1bf0
feat(aigw): update policy schemas so their definitions mention policy
fabianrbz Aug 20, 2026
fdc1c32
Remove all Vertex AI mentions (#6729)
tomek-labuk Aug 21, 2026
2dbc0a3
drafts
tomek-labuk Aug 13, 2026
9c1ee30
Add how-to series for tiered budgets
tomek-labuk Aug 14, 2026
c9a3d00
appease vale
tomek-labuk Aug 14, 2026
f316139
appease vale
tomek-labuk Aug 14, 2026
577cb49
Update guide
tomek-labuk Aug 17, 2026
95c6c4b
add o11y section
tomek-labuk Aug 17, 2026
f22d4d2
update
tomek-labuk Aug 17, 2026
0f2bd61
appease vale
tomek-labuk Aug 17, 2026
1636ff0
update intro
tomek-labuk Aug 17, 2026
e164ab2
add scripts
tomek-labuk Aug 18, 2026
9827e1f
apply review comments
tomek-labuk Aug 19, 2026
d8ea63a
fix(how-to): add missing cleanup step and migrate code snippets to
fabianrbz Aug 20, 2026
39c1d63
fix(how-to): run how-to as part of the suite
fabianrbz Aug 21, 2026
d708d1d
Chore(AIGW): Unpublish policies (#6740)
Guaris Aug 21, 2026
116eb3d
rename label to sources (#6749)
tomek-labuk Aug 21, 2026
e297a5b
feat(ai-gateway): migrate CORS overview (#6747)
tomek-labuk Aug 24, 2026
9b46347
feat(automated-tests): add support for passing a product to
fabianrbz Aug 21, 2026
e32a34a
feat(how-tos): us ai lookup in aigw how-tos
fabianrbz Aug 21, 2026
b526926
feat(ai-gateway): use id lookup in examples
fabianrbz Aug 21, 2026
5d0a7c9
ifx*how-tos): broken kongctl lookup
fabianrbz Aug 21, 2026
4ed293e
refactor(how-to): to use the new syntax, mcprotocol cli and docker
fabianrbz Aug 21, 2026
8840e21
Apply suggestions from code review
Guaris Aug 21, 2026
8310104
ix(automated-tests): exclude series continuations from skip counts
fabianrbz Aug 24, 2026
9389f07
ifix(automated-tests): install latest version of kongctl
fabianrbz Aug 24, 2026
7c8fd2f
feat(ai-gateway): Rate Limiting + Rate Limiting Advanced Policy overv…
lmilan Aug 24, 2026
c473bd5
feat(ai-gateway): Migrate pre-function overview (#6746)
tomek-labuk Aug 24, 2026
7afcfe4
Feat(aigw): file log overview (#6716)
jbaross Aug 24, 2026
ed528ae
fix pulling images instructions (#6761)
tomek-labuk Aug 24, 2026
9516517
feat(ai-gateway): migrate JSON threat policy (#6703)
tomek-labuk Aug 24, 2026
7160f69
wip:feat(aigw): add automated-tests github action
fabianrbz Aug 24, 2026
fac21b8
fix(aigw): add missing env variables to aigw automated tests gh action
fabianrbz Aug 24, 2026
6c570b8
Feat(aigw): otel policy overview (#6708)
jbaross Aug 24, 2026
cd77cd0
delist policy (#6784)
tomek-labuk Aug 25, 2026
82b3d1a
docs: update examples for deck on prep ai gateway support for runtime…
harshadixit12 Aug 25, 2026
9f55c3e
[DRAFT] Fix/AI identity providers to auth strategies (#6743)
gperanich Aug 25, 2026
e9ead70
fix(ai-gateway): Landing page (#6806)
lmilan Aug 25, 2026
9fd938e
feat(ai-gateway): Migrate Kafka Consume (#6769)
lmilan Aug 25, 2026
6b72c85
chore(tests): add validation/request-check
fabianrbz Aug 25, 2026
a47db15
chore(tests): add request-check/snippet specs
fabianrbz Aug 25, 2026
5de0c09
fix(how-to): variable extraction and add tests for the template
fabianrbz Aug 25, 2026
1aafb30
chore(specs): add specs for claude-code
fabianrbz Aug 25, 2026
b25caa6
chore(tests): add tests for codex
fabianrbz Aug 25, 2026
3b2bf66
chore(tests): increase spec coverage
fabianrbz Aug 25, 2026
9d1f882
fix(unauthorized-check): add specs and improve messaging based on the
fabianrbz Aug 25, 2026
f996ad6
fix(series): add missing metadata and fix the env variables
fabianrbz Aug 25, 2026
abf4e79
chore(specs): add more coverage
fabianrbz Aug 25, 2026
c034d9c
fix(qwen): drop base_url from the snippet and add coverage
fabianrbz Aug 25, 2026
73a12e8
chore(specs): add more coverage
fabianrbz Aug 25, 2026
fdfc44d
feat(rspec): add gh action
fabianrbz Aug 25, 2026
67a5a57
fix(specs): attempt at fixing rspec gh action
fabianrbz Aug 25, 2026
222618c
fix(specs): build the site instance once before the suite starts
fabianrbz Aug 26, 2026
dbd7210
edits
Guaris Aug 25, 2026
4d0dc2c
add codex case
jbaross Aug 21, 2026
fbb32fa
codex cleanup
jbaross Aug 21, 2026
d80fc39
qwen case
jbaross Aug 21, 2026
97f3740
qwen case
jbaross Aug 21, 2026
cc0a696
vale fixes
jbaross Aug 24, 2026
da5222d
use correct model name
jbaross Aug 25, 2026
e4bd059
fix config
jbaross Aug 25, 2026
5ab7e03
basic working run command
jbaross Aug 25, 2026
313bc52
example validation block
jbaross Aug 25, 2026
b42327a
revert env variables in validation blocks
jbaross Aug 25, 2026
e41bf50
working validation block
jbaross Aug 25, 2026
4126130
simplify comments
jbaross Aug 25, 2026
d5d0ada
describe updated config
jbaross Aug 25, 2026
9d1a4db
already set in prereqs/openai-kongctl
jbaross Aug 25, 2026
3ca35ee
qwen on openai clarify warning
jbaross Aug 25, 2026
0645987
refactor(codex): codex validation block
fabianrbz Aug 25, 2026
55679d1
fix(specs): update specs to match the new implementation
fabianrbz Aug 26, 2026
5cdf63e
Audit and update frontmatter (#6948)
jbaross Aug 26, 2026
d7fdf8e
Fixes (#6949)
tomek-labuk Aug 26, 2026
1760e8d
chore(aigw): scope instruction generation to ai-gateway
fabianrbz Aug 26, 2026
c14bed9
chore(automated-tests): limit retries to 3
fabianrbz Aug 26, 2026
0f8ebce
feat(kongctl): add support for rendereing secret env variables in
fabianrbz Aug 26, 2026
2eae23f
Update ai-gateway-v2-concepts.md (#6957)
lmilan Aug 26, 2026
5179e25
add missing links (#6947)
tomek-labuk Aug 26, 2026
daf1adb
fix(entity schemas): aigw come with `this field is referenceable` in the
fabianrbz Aug 26, 2026
fac378f
update frontmatter and clean up lists (#6951)
jbaross Aug 26, 2026
b7bb030
Fixes (#6952)
tomek-labuk Aug 26, 2026
b7e5807
Update ai-logs.md (#6958)
lmilan Aug 26, 2026
454db3a
Update ai-audit-log-reference.md (#6953)
lmilan Aug 26, 2026
f65a97e
chore(entity-example): add tests for terraform and kic and fix a bug
fabianrbz Aug 26, 2026
cc9090d
fix(ai-gateway): AI entities pages audit (#6807)
tomek-labuk Aug 26, 2026
234ae89
Merge branch 'main' into release/ai-gateway-2.0
fabianrbz Aug 26, 2026
1ed6d54
Merge remote-tracking branch 'origin/release/ai-gateway-2.0' into rel…
fabianrbz Aug 26, 2026
e790c0b
feat(ai-gw): audit AI LLM as policy (#6961)
juliamrch Aug 26, 2026
e10ba32
feat(aigw): GCP armour ploicy (#6960)
jbaross Aug 26, 2026
eab4e2d
feat(aigw): audit prompt decorator policy (#6964)
jbaross Aug 26, 2026
e102f31
refactor: how we filter the site we build in dev and allow a
fabianrbz Aug 26, 2026
1791fcd
chore(evgw): scope instruction generation to event-gateway
fabianrbz Aug 26, 2026
9ad9e95
fix(aigw): content_type in aigw policies is plugin
fabianrbz Aug 26, 2026
67e7d4c
Feat(aigw) audit promt guard policy (#6968)
jbaross Aug 26, 2026
4d73c05
Update architecture.md (#6969)
lmilan Aug 26, 2026
84ea5f7
fix(ai-gateway): Gen AI OpenTelemetry metrics (#6967)
lmilan Aug 26, 2026
64d0ab2
feat(ai-gw): audit lakera guard policy (#6959)
juliamrch Aug 26, 2026
7dd0728
fix(ai-gateway): Audit AI Provider docs
tomek-labuk Aug 26, 2026
55db9a9
fix(aigw): Policy examples add `display_name` (#6826)
cloudjumpercat Aug 26, 2026
a2f3341
Chore(AIGW): SBOM (#6937)
Guaris Aug 26, 2026
18c3fa0
fix(ai-gateway): Monitor LLM metrics (#6963)
tomek-labuk Aug 26, 2026
b8bede0
fix(aigw): add missing display_name to policies in how-tos
fabianrbz Aug 26, 2026
8d0707d
fix: aigw skill
fabianrbz Aug 26, 2026
e64dfd0
feat(aigw): audit prompt template policy (#6971)
jbaross Aug 26, 2026
65af43b
fix(aigw): kongctl examples (#6978)
lena-larionova Aug 26, 2026
f798754
Fix/aigw how tos (#6977)
fabianrbz Aug 26, 2026
9799584
chore(aigw): AI RLA audit (#6980)
cloudjumpercat Aug 26, 2026
46ab2b0
fixe (#6984)
tomek-labuk Aug 27, 2026
457bd1d
Fixes (#6986)
tomek-labuk Aug 27, 2026
d3880f4
fix secret lookups (#6985)
tomek-labuk Aug 27, 2026
62bf69a
add missing links (#6994)
tomek-labuk Aug 27, 2026
f8ea0e0
fix(ai-gateway): Audit otel spans doc (#6988)
tomek-labuk Aug 27, 2026
85f1d48
fixes (#6996)
tomek-labuk Aug 27, 2026
9b7c14c
fix(ai-gateway): Audit forward proxy (#6990)
tomek-labuk Aug 27, 2026
4955611
add a security tag and list filtered how-to (#6993)
juliamrch Aug 27, 2026
1437710
add tags (#6989)
juliamrch Aug 27, 2026
a9d6811
fix(ai-gateway): Audit AI Semantic Prompt guard (#6999)
tomek-labuk Aug 27, 2026
edd1686
fix(ai-gateway): Audit semantic cache (#6998)
tomek-labuk Aug 27, 2026
13d303a
Feat(aigw) audit request transformer (#6991)
jbaross Aug 27, 2026
1902038
feat(aigw): audit response transformer (#6997)
jbaross Aug 27, 2026
19ed806
Feat(aigw): audit file log (#7006)
jbaross Aug 27, 2026
a2b033f
add tag, related resources (#7005)
cloudjumpercat Aug 27, 2026
d28766c
fix(ai-gateway): Add secret wrapper tag to how-tos (#6946)
tomek-labuk Aug 27, 2026
8e6bf9c
chore(aigw): remove aigw policy schemas
fabianrbz Aug 27, 2026
74f9892
Download AI Gateway Policy Schemas
fabianrbz Aug 27, 2026
d4e063b
feat(ai-gw): audit landing page (#7010)
juliamrch Aug 27, 2026
49c30d5
Audit semantic response guard (#7001)
tomek-labuk Aug 27, 2026
b3f5e56
revisions (#7011)
cloudjumpercat Aug 27, 2026
fbb4003
fix ai.proxy log field examples (#7007)
cloudjumpercat Aug 27, 2026
10a2da1
chore(aigw): update aigw kong-conf with latest changes
fabianrbz Aug 27, 2026
8f34a6b
fix(ai-gateway): AI CLIs landing page (#6995)
juliamrch Aug 27, 2026
3efe70b
Feat(aigw): audit metering billing (#7008)
jbaross Aug 27, 2026
0f44ee8
Merge branch 'main' into release/ai-gateway-2.0
fabianrbz Aug 27, 2026
222bd19
Update frontmatter (#6950)
jbaross Aug 27, 2026
f763ae1
fix bad naming (#7014)
cloudjumpercat Aug 27, 2026
277f233
add konnect-api as example format (#7017)
lena-larionova Aug 27, 2026
dc25671
fix(AIGW): Fix broken links in changelog (#7018)
Guaris Aug 27, 2026
048f05b
audit aggregate-mcp-tools how-to (#7019)
lena-larionova Aug 27, 2026
1493975
audit get-started-with-ai-agent (#7021)
lena-larionova Aug 27, 2026
6e06592
audit ai gateway get started (#7022)
lena-larionova Aug 27, 2026
41962dc
audit mcp otel guide (#7023)
lena-larionova Aug 27, 2026
f2fee51
fix(ai-gw): cors policy (#7020)
juliamrch Aug 31, 2026
ee7d9f9
fix(ai-gateway): audit A2A landing page (#7003)
juliamrch Aug 31, 2026
8caaba5
fix(ai-gw): synta and clarity (#7028)
juliamrch Aug 31, 2026
abaca60
Update mcp.yaml (#7031)
lmilan Aug 31, 2026
0f170b2
fix(ai-gateway): Route Qwen Code CLI traffic through AI Gateway and D…
lmilan Aug 31, 2026
fa52dc4
Update use-qwen-code-with-ai-gateway-openai.md (#7033)
lmilan Aug 31, 2026
bb4fb90
Update use-gemini-cli-with-ai-gateway.md (#7034)
lmilan Aug 31, 2026
272c73e
fix(ai-gaw): add metadata and clarify roles in body (#7030)
juliamrch Aug 31, 2026
96af06f
fix(ai-gateway): Route OpenAI Codex CLI traffic through AI Gateway (#…
lmilan Aug 31, 2026
edb1f8a
[DRAFT] fix(ai-gateway): update the AI Gateway V2 migration guide to …
gperanich Aug 31, 2026
858a69d
fix(ai-gateway): Route Claude CLI traffic through AI Gateway and Open…
lmilan Aug 31, 2026
6ecc228
Merge remote-tracking branch 'origin/main' into release/ai-gateway-2.0
lena-larionova Aug 31, 2026
cb1085f
fix(ai-gateway): Route Claude CLI traffic through AI Gateway and Hugg…
lmilan Aug 31, 2026
a3d9590
generate 2.0.2 and 2.0.3 changelogs (#7040)
lena-larionova Aug 31, 2026
2b79216
feat(aigw): remove banner (#6497)
fabianrbz Aug 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
240 changes: 240 additions & 0 deletions .claude/skills/ai-gateway-migration-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
---
name: ai-gateway-migration-review
description: >
Reviews AI Gateway documentation files for correctness during the v1 → v2 migration.
Use this skill whenever you need to audit or fix AI Gateway docs for migration issues —
whether reviewing specific files or all AI Gateway files across how-tos, landing pages,
and reference pages. Triggers on requests like "review this ai-gateway file", "check
my migration", "audit ai-gateway docs for v2", "find v1 references in ai-gateway pages",
"update this file for AI Gateway v2", or any time someone is working on AI Gateway
content under app/_how-tos/ai-gateway, app/_landing-pages/ai-gateway, or app/ai-gateway.
---

# AI Gateway Migration Review Skill

This skill audits and optionally fixes AI Gateway documentation files for the v1 → v2 migration.

## Step 1: Ask the user two questions upfront

Before doing any work, ask (you can ask both in one message):

1. **Scope**: Do they want to review a specific files or directories or all AI Gateway files?
- If specific files or directories, ask for the path.
- If all files, you'll scan these directories:
- `app/_how-tos/ai-gateway/`
- `app/_ai_gateway_entities/`
- `app/_ai_gateway_policies/`
- `app/_landing_pages/`
- `app/ai-gateway/`
- `app/_includes/`

2. **Mode**: Should you make changes directly, or produce a report of issues to fix?

## Step 2: Perform the review

Apply the rules below. For **report mode**, collect all findings and present them as a structured report at the end. For **edit mode**, apply fixes directly and summarize what changed.

---

## Rules for v1 files (under any `v1/` subdirectory)

These files are the legacy v1 content. They need their own internal consistency:

- **Breadcrumbs and links**: Any breadcrumbs or links starting with `/ai-gateway/` must use `/ai-gateway/v1/` (not the bare `/ai-gateway/` path).
- **Permalinks**: If the file has a `permalink:` frontmatter field, it must contain `/v1/` in the path.
- **Include and data file references**: References to AI Gateway include files (`{% include_content ... %}`, `{% include ... %}`) and data files must use the `/v1/` variant, e.g. `ai-gateway/v1/some-include` not `ai-gateway/some-include`.

---

## Rules for v2 files (current, non-v1 AI Gateway files)

### Frontmatter requirements

Every v2 AI Gateway page must have this exact frontmatter shape for these fields:

```yaml
products:
- ai-gateway # Only ai-gateway, no other products
works_on:
- konnect # Only konnect, no on-prem
tools:
- konnect-api # Optional field, if it exists, must be only konnect-api
min_version:
ai-gateway: '2.0'
```

Flag any deviation:
- `products` containing anything other than `ai-gateway`
- `works_on` containing `on-prem` or anything other than `konnect`
- `tools` containing `deck`, `admin-api`, or anything other than `konnect-api`
- Missing or wrong `min_version` (must be `ai-gateway: '2.0'`)

#### `content_type` on AI Policy pages

Pages under `app/_ai_gateway_policies/` are auto-generated as stubs with the default `content_type: plugin`. When you author real overview content for one of these pages (i.e. the file has hand-written body prose, not just frontmatter), set `content_type: policy`.

- Leave untouched stubs alone — do **not** flip `content_type` on pages that still have an empty body. The stub default stays `plugin` until the page gets real content.

### Plugin → AI Policy migration

Plugins have been replaced by AI Policies in v2. The four plugins that do **not** exist as policies are exceptions:
- AI A2A Proxy
- AI MCP Proxy
- AI Proxy
- AI Proxy Advanced

For everything else:

- **Rename in prose**: Replace "X plugin" with "X Policy". For example:
- "AI Request Transformer plugin" → "AI Request Transformer Policy"
- "AI Prompt Guard plugin" → "AI Prompt Guard Policy"

- **Links to plugins**: Replace `/plugins/` path with `/ai-gateway/policies/`. For example:
- `/plugins/ai-prompt-guard/` → `/ai-gateway/policies/ai-prompt-guard/`
- `/plugins/?category=ai` → `/ai-gateway/policies/`

- **Links to the Plugin entity**: When a link points at the Gateway Plugin entity page `/gateway/entities/plugin/` *but refers to an AI Policy*, replace it with the AI Policy entity page `/ai-gateway/entities/ai-policy/`. For example:
- `[AI Policy](/gateway/entities/plugin/)` → `[AI Policy](/ai-gateway/entities/ai-policy/)`
- `[AI Prompt Guard Policy](/gateway/entities/plugin/)` → `[AI Prompt Guard Policy](/ai-gateway/entities/ai-policy/)`

Be careful: `/gateway/entities/plugin/` can also be a legitimate reference to the generic Gateway Plugin entity — for instance when a page contrasts AI Policies with how {{site.base_gateway}} plugins work. Only rewrite when the link is genuinely about an AI Policy. **Flag ambiguous cases for manual review** rather than rewriting automatically.

- **Exception — flag these**: Any reference to AI A2A Proxy, AI MCP Proxy, AI Proxy, or AI Proxy Advanced as plugins should be flagged for manual review (these don't have policy equivalents).

- **Landing page plugin blocks**: In YAML landing pages (`.yaml` files under `_landing_pages/`), replace `type: plugin` blocks with `type: aigw_policy`. Example:
```yaml
# Before (v1)
- type: plugin
config:
slug: ai-prompt-guard

# After (v2)
- type: aigw_policy
config:
slug: ai-prompt-guard
```

### Include and data file references

References to AI Gateway include files and data files must use `/v2/`. For example:
- `ai-gateway/circuit-breaker` → `ai-gateway/v2/circuit-breaker`
- `_includes/md/ai-gateway/circuit-breaker.md` → `_includes/md/ai-gateway/v2/circuit-breaker.md`

Flag any `{% include /plugins/` tags — v2 AI Gateway pages must not pull in plugin includes. These should be removed or replaced with the appropriate AI Policy equivalent. For example:

```
{% include /plugins/ai-a2a-proxy/log-output-fields.md %}
```

This should be replaced with a corresponding AI Policy include (e.g. under `_includes/md/ai-gateway/v2/`) or removed if no equivalent exists.

### Code block style

Example codeblocks in how-to guides should use `{% konnect_api_request %}` rather than raw curl or deck commands where they're making API calls. Flag any `curl` commands or `deck` commands in example steps that should be `{% konnect_api_request %}` blocks.

### Konnect-only deployments

v2 AI Gateway is Konnect-only. Flag any references to on-premises deployments, self-hosted Kong Gateway, or any instructions that only apply to on-prem.

### Kong Gateway → AI Gateway

Most references to Kong Gateway or `{{site.base_gateway}}` should be replaced with `{{site.ai_gateway}}`. However, some are legitimate — when a sentence genuinely compares or contrasts AI Gateway with Kong Gateway (e.g. "When operating {{site.ai_gateway}} alongside {{site.base_gateway}}…"), the `{{site.base_gateway}}` reference may be intentional. Flag these for manual review rather than replacing them automatically.

### AI Gateway entity names

All AI Gateway entity names (from `app/_ai_gateway_entities/`) must be capitalized and prefixed with "AI". Known entities:
- AI Agent
- AI Auth Strategy
- AI Consumer
- AI Consumer Credential
- AI Consumer Group
- AI Data Plane Certificate
- AI Data Plane Node
- AI Gateway
- AI MCP Server
- AI Model
- AI Policy
- AI Provider
- AI Vault

### AI Identity Provider → AI Auth Strategy

The entity formerly called "AI Identity Provider" is now **AI Auth Strategy**. Flag:

- Prose: "AI Identity Provider(s)" → "AI Auth Strategy" / "AI Auth Strategies"
- Links: `/ai-gateway/entities/ai-identity-provider/` → `/ai-gateway/entities/ai-auth-strategy/`
- Config fields: `access.identity_providers` → `access.auth_strategies`
- kongctl: `ai_gateway_identity_providers` → `ai_gateway_auth_strategies`

Do **not** flag lowercase "identity provider" where it means an external OIDC provider (Okta, Keycloak, Auth0, Azure AD). That usage is still correct, and often appears in the same sentence as the entity name.

Flag any references to these entities without the "AI" prefix, in both singular and plural forms. For example:
- "model" or "models" → "AI Model" / "AI Models"
- "provider" or "providers" → "AI Provider" / "AI Providers"
- "policy" or "policies" → "AI Policy" / "AI Policies"
- "agent" or "agents" → "AI Agent" / "AI Agents"
- "consumer" or "consumers" → "AI Consumer" / "AI Consumers"
- "vault" → "AI Vault"

**Check the entire file including frontmatter** — FAQs, `related_resources` links, and all entity references in link text must use the full "AI" prefix (e.g., `[AI Policies](/ai-gateway/entities/ai-policy/)` not `[Policies](/ai-gateway/entities/ai-policy/)`).

### Links to unmigrated how-to guides

Not all v1 how-to guides have been migrated to v2. Before checking links, build a list of invalid v1 permalinks by reading every `.md` file under `app/_how-tos/ai-gateway/v1/` and extracting their `permalink:` frontmatter values.

Then, in the file being reviewed, flag any link whose URL appears in that list. These point to legacy v1 pages and should be removed or updated to point to the v2 equivalent if one exists.

### v1 release tracking (`app/_config/releases/ai-gateway/v1.yml`)

This file tracks every v1 page and whether a v2 equivalent has been written. Each entry looks like:

```yaml
app/_how-tos/ai-gateway/v1/some-guide.md:
status: pending # still needs a v2 equivalent
canonical_url: # should point to the v2 page once written
```

When a new v2 page is created, the corresponding v1 entry in this file must be updated:
- Remove `status: pending`
- Set `canonical_url` to the new v2 page's permalink

When reviewing a newly created v2 file, check whether its v1 counterpart exists in `v1.yml` and still has `status: pending`. If so, flag it: the reviewer should remove `status: pending` and set `canonical_url` to the new page's permalink.

When reviewing all files, read `app/_config/releases/ai-gateway/v1.yml` and report all entries that still have `status: pending` — these are v1 pages that have not yet been migrated.

---

## Reporting format

When producing a **report**, structure it like this for each file reviewed:

```
### <filepath>

**Frontmatter issues:**
- <issue description>

**Plugin → AI Policy issues:**
- <issue description>

**Include/data file references (including `{% include /plugins/` tags):**
- <issue description>

**Unmigrated how-to links:**
- <link> — not yet migrated, remove or update

**v1 release tracking (`v1.yml`):**
- <v1 file path> — still has `status: pending`, set `canonical_url` to <v2 permalink>

**On-prem references:**
- Line N: <quote> — flag for removal

**Entity naming:**
- <issue description>

**No issues found** (if clean)
```

For a **single-file edit**, after making changes, produce a brief summary of every change made.

For **all-files edit**, process files one at a time and produce a per-file summary at the end.
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
name: Generate Instruction Files
description: Generates the instruction files for the automated tests
inputs:
product:
description: 'Restrict generation to a single product (passed as --product=<value>). Leave empty to scan all products.'
required: false
default: ''
runs:
using: composite
steps:
Expand All @@ -9,4 +14,4 @@ runs:
run: |
npm ci
npx playwright install --with-deps chromium
npm run generate-instruction-files
npm run generate-instruction-files -- ${{ inputs.product != '' && format('--product={0}', inputs.product) || '' }}
8 changes: 8 additions & 0 deletions .github/styles/base/Dictionary.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ ai_rate_limiting_policy
agentic
Agno
Agno's
AIGateway
Alertmanager
Alibaba
allow_terminated
Expand Down Expand Up @@ -430,6 +431,8 @@ kiali
Kibana
kibibytes
kic
kimi
Kimi
knative
Knative's
Knatives
Expand Down Expand Up @@ -491,6 +494,7 @@ M_Account
M_Link
M_Resource
maglev
major_version
managedfields
matchers
max_args
Expand Down Expand Up @@ -610,6 +614,7 @@ PDFs
pg_max_concurrent_queries
pgdump
pgvector
Pinecone
pipeline
pipelined
pipelines
Expand Down Expand Up @@ -745,6 +750,7 @@ SLT_Enc
sni
snis
sonarqube
spaCy
Speedscope
Splunk
sse
Expand Down Expand Up @@ -932,6 +938,8 @@ Valkey
vendored
vararg
vc
vercel
Vercel
viewport
viewports
vllm
Expand Down
1 change: 1 addition & 0 deletions .github/styles/frontmatter/Dictionary.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
ai_gateway_enterprise
ai_gateway_url
graphql
hmac
how_to
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ai-gateway-automated-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ jobs:

- name: Generate instruction files
uses: './.github/reusable-steps/generate-instruction-files'
with:
product: ai-gateway

- name: Download Kong License
uses: Kong/kong-license@master
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/automated-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
env:
KONG_LICENSE_DATA: ${{ steps.getLicense.outputs.license }}
DEPLOYMENT_MODEL: on-prem
PRODUCTS: ai-gateway,gateway
PRODUCTS: gateway
GATEWAY_VERSION: ${{ matrix.gateway }}
run: |
DEBUG=tests:*,debug npm run run-tests
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/event-gateway-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ jobs:

- name: Generate instruction files
uses: './.github/reusable-steps/generate-instruction-files'
with:
product: event-gateway

- name: Download Kong License
uses: Kong/kong-license@master
Expand Down
45 changes: 45 additions & 0 deletions .github/workflows/rspec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: RSpec
on:
pull_request:
types: [synchronize, opened, reopened]

permissions:
contents: read

concurrency:
cancel-in-progress: true
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}

jobs:
rspec:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Harden Runner
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
with:
egress-policy: audit

- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Set up Ruby
uses: ruby/setup-ruby@84684c07c1965536eb4802c8daf1a77968df0cb1 # v1
with:
ruby-version: .ruby-version

- name: Ruby gem cache
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
with:
path: ${{ github.workspace }}/vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-

- name: Bundle Setup
run: bundle config path ${{ github.workspace }}/vendor/bundle

- name: Bundle Install
run: bundle install --jobs 4 --retry 3

- name: Run RSpec
run: bundle exec rspec
2 changes: 2 additions & 0 deletions .rspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
--require spec_helper
--color
Loading
Loading