Skip to content

Commit ff8d63a

Browse files
fabianrbzlena-larionovajschmid1jakubdyszkiewiczmichaelbeaumont
authored
Release/event gateway 1.3 (#7336)
* bump event gateway version to 1.3 * generate 1.3 references * docs(event-gateway): backport schema.metadata expression fields to 1.3 (#6801) * feat(event-gateway): mask field policy guides (#7133) * docs(event-gateway): mask field policy guide * docs(event-gateway): mask fields selected by schema registry tags guide * Feat/add mask fields policies (#7195) * chore(egw): add mask-fields produce and consume policies * fix(ewg): render min version as part of the title in plugin policy examples * refactor(automated-tests): extract URL-mode selection Extraction now follows the same pattern, files that are meant to be skipped are skipeed both when using --product and not. * fix(egw): how-to, run it as part of the test and add cleanup setps * chore(egw): add tools/event-gateway-policy-examples-validator Tool that validates existing policy examples agains the corresponding schema in the api spec * Update event-gateway minimum version in how-to Update minimum version for event-gateway to 1.1.0. * feat(event-gateway): add {% quickstart %} block Adds a standalone Liquid block/drop pair that renders the canonical Event Gateway quickstart instructions (script, exported gateway ID, demo-only note), with an optional env map and test-step declaration. No page calls it yet; that's tickets 03-05. * refactor(event-gateway): rename quickstart block, build command in Liquid Renames {% quickstart %} to {% event_gateway_quickstart %} and moves the curl command construction out of the Ruby drop and into snippet.md, iterating over the env map directly. The drop is now limited to parsing env/section and building the test-step payload, with the script URL, network name, and control-plane name hardcoded in the template since this block is Event Gateway-specific. * feat(automated-tests): run quickstart steps in the test harness Adds a `quickstart` step handler that composes a page's env flags onto the runtime's base quickstart command, runs it, and persists every `export NAME=VALUE` line it prints for later steps. The Konnect Event Gateway runtime gains that base command plus a reset-time wipe of files a previous test file generated. * feat(event-gateway): render observability guide quickstart from shared block Renders the OTel quickstart command from {% event_gateway_quickstart %} with the four OTel env flags, so the copy-pasted command and the harness-run command come from the same source. * fix(how-to): add class="content" to egw so it renders the correct spacing * chore(egw): replace hardcoded eventgateway quickstart script invocations with the block * feat(event-gateway): render prerequisite quickstart from shared block Uses the event_gateway_quickstart block with section: none so the prerequisite's wording can no longer drift from the other call sites, while staying inert to the test harness (no data-test-step emitted). * test(event-gateway): move quickstart command-content specs to snippet.md Content-shape assertions for the curl command (env formatting, special characters) belong at the snippet.md render seam, not the Liquid block seam, matching the claude-code snippet_spec.rb pattern. The block spec keeps only block-wiring behavior: test-declaration emission, malformed YAML, and markdown output_format. Also drops a leftover byebug breakpoint and its now-incorrect expectation. * fix(egw): refactor egw quickstart snippet and fix section handling * chore(egw): update how-tos with missing test markup, cleanup steps and run them as part of the test suite * fix(egw): delete directory url and specify in which section it should be run - cleanup - * refactor(egw): how we render the quickstart script and the prereqs Make the docker-compose-start.md prereq blocks and have the extractor run them, not all the how-tos need this so running them always was causing issues with clusters defined in specific how-tos. * refactor(automated-test): how event-gateway runs the setup/cleanup/reset cycle A file that runs the quickstart itself (a `quickstart` liquid tag in its steps) provisions its own gateway, and usually its own cluster too. The runtime only provisions a kafka cluster and quickstart script when the file declares no quickstart of its own. * chore(automated-tests): Make the test fail when the cleanup step fails * chore(automated-test): add openssl and other deps to the docker image and sleep for 5s after creating the egw to give it time to be ready * fix(egw): generate a v3 mTLS client certificate in the backend cluster how-to `openssl x509 -req` produces a version 1 certificate when it receives no extensions. Event Gateway rejects a v1 client certificate with "invalid peer certificate: UnsupportedCertVersion", so the mTLS handshake to the broker fails and kafkactl reports "run out of available brokers". Sign the client certificate with an extension file, as the broker certificates already do, to make it a v3 certificate. OpenSSL 3.2 and later add key identifier extensions by default, which hides the problem, but OpenSSL 3.0 is still the version on Ubuntu 24.04, Debian 12 and RHEL 9. * chore(egw): run egw automated tests every wednesday * fix(how-to): use `body_file` to upload a file using curl in how-to * copyedit policies and add diagrams * hide quickstart from vale * fix diagram --------- Co-authored-by: lena-larionova <lena.larionova@konghq.com> * Apply batched suggestions from code review Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> --------- Co-authored-by: Fabian Rodriguez <fabian.rodriguez@konghq.com> Co-authored-by: lena-larionova <lena.larionova@konghq.com> Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> * pull latest metrics and bootstrap schema for event gateway 1.3 (#7290) * add AWS IAM to supported backend cluster auth types (#7289) * feat(keg): Record transcode policies (#7268) * record transcode policy docs + examples * add transcode to dictionary * how-to guide for record transcode consume policy * add deserializer to dictionary * chore: add extract command and remove unneeded command to attach the conatiner to a network, it's already part of it * Add TestSection concern for the request-block test-phase attribute One drop-level definition of the section-to-attribute map, shared by every block that needs to declare which automated-test phase it belongs to. * Wire TestSection into Validations::Base Validations::Base now includes the shared concern instead of its own section reader, and rejects an unrecognized section at construction time, before validate_yaml!. * Wire TestSection into the three standalone request drops KonnectApiRequest, ControlPlaneRequest and HttpRequest now validate section at construction time and drop it from the instruction config, matching Validations::Base. * Add section-aware shared examples for dual-topology content divs Covers the prereqs and cleanup cases for both a konnect-only div and a dual-topology block, asserting the other test attributes stay absent and the attribute value stays unchanged from the step case. Not yet used by any block spec until the templates print config.test_attribute. * Print config.test_attribute in konnect_api_request.html Drops the hand-written section conditional and the dead duplicate data-test-step="block" attribute (kramdown already discarded it), and switches the block spec to the section-aware shared example. Full suite: 1386 -> 1391 examples, 0 failures both times. * Print config.test_attribute in control_plane_request.html Both topology divs now select the test attribute from the drop instead of hardcoding data-test-step, so section: prereqs/cleanup takes effect for {% control_plane_request %} too. * Print config.test_attribute in the request-check validation template Keeps unless config.skip as the outer condition, printing the section attribute inside it instead of hardcoding data-test-step. Also covers skip together with section: skip still suppresses the attribute entirely. * Print config.test_attribute in http_request.html Keeps block as the attribute value, only the attribute name now comes from the drop, so {% http_request %} accepts section: prereqs/cleanup like the other request blocks. * Print config.test_attribute in custom-command and env-variables templates env-variables already printed the same JSON value on both branches, so this is a straightforward attribute-name swap. custom-command's prereqs branch previously hardcoded the literal "block" while its step branch printed the JSON instruction; per explicit direction, it now always prints the JSON value, matching the new spec's invariant that the attribute value doesn't change with the section. Only one page (app/_how-tos/ai-gateway/v1/compare-llm-models-accuracy.md) sets section: prereqs on {% validation custom-command %}; the automated test runner already treats a JSON value as a validation to parse and dispatch, same as it does for the step case today. * Rename the singular section: prereq to prereqs, rejected by the concern EventGatewayQuickstart drops its own section/test_attribute in favor of the shared TestSection concern, which only accepts the plural. The one page that set the singular moves to it in the same commit. * chore(tests): add missing extract from validation and remove auth-headers and directories when resetting ai-gatewat and event-gateway how-tos just in case, so we always start with a clean set. * feat(event-gw): request rule validator policy guide * chore(how-to): update how-to so it can be run as part of the automated tests * feat(event-gateway): Request rule validator policy (#7303) * draft of request rule validator * fix(egw): request-rule-policy example so it's valida against the spec and tested it against .tech * Update app/_event_gateway_policies/request-rule-validator/index.md Co-authored-by: Jakub Dyszkiewicz <jakub.dyszkiewicz@gmail.com> --------- Co-authored-by: Fabian Rodriguez <fabian.rodriguez@konghq.com> Co-authored-by: Jakub Dyszkiewicz <jakub.dyszkiewicz@gmail.com> * docs(event-gateway): add reference to Confluent schema reference docs (#7415) * feat(event-gateway): CEL support in KEG (#7285) * CEL support in KEG * copyedit and remove legacy examples * Update app/event-gateway/entities/policy.md Co-authored-by: Mattia Lavacca <lavacca.mattia@gmail.com> * add some details from the API spec * add missing 1.3 fields and examples --------- Co-authored-by: Mattia Lavacca <lavacca.mattia@gmail.com> * feat(event-gateway): encrypt fields selected by schema registry tags (#7387) * feat(event-gateway): encrypt fields selected by schema registry tags guide * Apply copyedits Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> --------- Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> * feat(event-gw): log level explanation (#7404) * feat(event-gw): log level explanation * Apply copyedits Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> --------- Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> * feat(event-gw): more rule validator policy examples (#7403) * feat(event-gw): more rule validator policy examples * Apply copyedits Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> --------- Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> * docs(event-gateway): add guide for producing JSON to Avro (#7416) * docs(event-gateway): add guide for producing JSON to Avro * fix: quotes * Apply copyedits + quote fix Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> --------- Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> * docs(event-gw): clarify max wait time in example (#7598) * docs(event-gw): clarify max wait time in example * Update app/_event_gateway_policies/request-rule-validator/examples/enforce-produce-fetch-settings.yml Co-authored-by: kong-ksai[bot] <313415923+kong-ksai[bot]@users.noreply.github.com> --------- Co-authored-by: kong-ksai[bot] <313415923+kong-ksai[bot]@users.noreply.github.com> * docs(event-gw): link related resources (#7599) * feat(event-gateway) Protobuf support (#7302) * docs for protobuf support * Apply batched suggestions from code review Co-authored-by: tomek-labuk <tomasz.labuk@konghq.com> * revert changes to record transcode policies * add version tag to schema validation doc * add supported schema formats to schema validation policy pages * fix typos Co-authored-by: kong-ksai[bot] <313415923+kong-ksai[bot]@users.noreply.github.com> --------- Co-authored-by: tomek-labuk <tomasz.labuk@konghq.com> Co-authored-by: kong-ksai[bot] <313415923+kong-ksai[bot]@users.noreply.github.com> * fix(gh-actions): set the correct min_version to both egw and aigw * chore(egw): add support for setting the egw image when running the automated-tests * fix(automated-tests): force-reveal accordion panels before extracting blocks The accordion binds its click handler on DOMContentLoaded, but extraction navigates with waitUntil: "domcontentloaded" and clicks the trigger immediately, so the handler may not be bound yet. A click on an unbound trigger leaves the panel hidden and every [data-test-prereq] block inside is silently skipped, so the generated instruction file loses the how-to's prerequisite commands (e.g. the Kafka compose stack) and the test only fails later on a missing docker network. Reveal each item's panels directly (mirroring revealHiddenTabPanel) instead of trusting the trigger click, in both extractPrereqs and extractCleanup. * fix(automated-tests): install cosign and regctl in the runtime image The verify-image-signatures-and-attestations how-to runs cosign and regctl steps inside the runtime container, but neither tool was installed, so the test failed with 'cosign: command not found'. Install both, pinned and checksum-verified, following the existing kubectl/helm/k3d/yq pattern. cosign is pinned to the latest v2 (2.6.5) because the how-to uses --new-bundle-format=true, which was introduced in 2.4.0 and is not guaranteed to still exist as a flag in v3. * docs(event-gateway): clarify mask fields failure modes and schema tag selection (#7375) Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> * docs(event-gateway): aws iam backend cluster auth (#7412) Co-authored-by: Charly Molter <charly.molter@konghq.com> Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> * chore(event-gateway): Internal release changelog + skill update (#7673) * modify release changelog skill to support event gateway * better categorization of policies * improve grouping rules * apply fixes from ksai review * update link in comment * Apply batched suggestions from code review Co-authored-by: tomek-labuk <tomasz.labuk@konghq.com> Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> * clean up the skill a bit more --------- Co-authored-by: tomek-labuk <tomasz.labuk@konghq.com> * feat(event-gw): fix mask field guide and improve request rule validator (#7690) * update generated refs (#7699) * chore(event-gateway): 1.3 changelog and breaking changes (#7697) * add links to changelog and add missing breaking changes entries for 1.3 and 1.2 * appease linters * Update app/event-gateway/changelog.md Co-authored-by: Diana <75819066+cloudjumpercat@users.noreply.github.com> * Update app/event-gateway/changelog.md Co-authored-by: kong-ksai[bot] <313415923+kong-ksai[bot]@users.noreply.github.com> --------- Co-authored-by: Diana <75819066+cloudjumpercat@users.noreply.github.com> Co-authored-by: kong-ksai[bot] <313415923+kong-ksai[bot]@users.noreply.github.com> * feat(egw): fix nesting of transcoding policies (#7714) * feat(event-gw): remove mentions of protobuf (#7713) * feat(event-gw): backfill missing policies (#7715) * feat(event-gw): backfill missing policies * apply suggestion Co-authored-by: kong-ksai[bot] <313415923+kong-ksai[bot]@users.noreply.github.com> --------- Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> Co-authored-by: kong-ksai[bot] <313415923+kong-ksai[bot]@users.noreply.github.com> * feat(egw): add `schema_validation` `any` (#7657) * docs(egw): add `schema_validation` `any` * docs: reduce duplication * Apply style + grammar copyedits Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> * update dictionary --------- Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> --------- Co-authored-by: lena-larionova <lena.larionova@konghq.com> Co-authored-by: Joshua Schmid <joshua.schmid@konghq.com> Co-authored-by: Jakub Dyszkiewicz <jakub.dyszkiewicz@gmail.com> Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com> Co-authored-by: Mike Beaumont <mjboamail@gmail.com> Co-authored-by: Mattia Lavacca <lavacca.mattia@gmail.com> Co-authored-by: kong-ksai[bot] <313415923+kong-ksai[bot]@users.noreply.github.com> Co-authored-by: tomek-labuk <tomasz.labuk@konghq.com> Co-authored-by: Charly Molter <charly.molter@konghq.com> Co-authored-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
1 parent e3b8f78 commit ff8d63a

141 files changed

Lines changed: 9091 additions & 549 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.claude/skills/release-changelog/SKILL.md‎

Lines changed: 88 additions & 105 deletions
Large diffs are not rendered by default.
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Profile: Kong Event Gateway (`event-gateway`)
2+
3+
- Product name in headings: `Kong Event Gateway`
4+
- Output file: `docs/release-changelog/event-gateway/{VERSION}.md` (e.g. `event-gateway/1.3.md`)
5+
- Typical release branch: `release/event-gateway-{VERSION}`, diffed against `origin/main`.
6+
7+
## Path filters
8+
9+
Keep only these paths (after the baseline exclusions):
10+
11+
```
12+
app/event-gateway/
13+
app/_event_gateway_policies/
14+
app/_how-tos/event-gateway/
15+
app/_references/event-gateway/
16+
app/_landing_pages/event-gateway.yaml
17+
```
18+
19+
Also keep other pages that changed only if their frontmatter has `event-gateway` under `products` or `tags`, or the diff clearly adds Event Gateway content (e.g. `app/kongctl/supported-resources.md`, `app/gateway/plugins/expressions.md`). Files that only changed incidentally (shared how-to test tooling, other products' pages) are left out. Skip `app/_data/`, except the bootstrap schema (see Special pages).
20+
21+
## URL derivation (when `permalink` is missing)
22+
23+
- `app/_how-tos/event-gateway/foo.md` -> has an explicit `permalink` of the form `/event-gateway/foo/`. Event Gateway how-tos are NOT under `/how-to/`. Always read the `permalink`.
24+
- `app/_event_gateway_policies/foo/index.md` -> `/event-gateway/policies/foo/`
25+
- `app/_event_gateway_policies/foo/index.md` reference tab -> `/event-gateway/policies/foo/reference/` (do not list separately, it is the same page)
26+
- `app/_event_gateway_policies/foo/examples/bar.yml` -> `/event-gateway/policies/foo/examples/bar/`
27+
- `app/event-gateway/foo.md` -> `/event-gateway/foo/`
28+
- `app/event-gateway/entities/foo.md` -> `/event-gateway/entities/foo/`
29+
- `app/_references/event-gateway/{VERSION}/headers.md` -> `/event-gateway/headers/`
30+
- `app/_references/event-gateway/{VERSION}/metrics.md` -> `/event-gateway/metrics/` (older versions: `/event-gateway/metrics/{VERSION}/`)
31+
- `app/_landing_pages/event-gateway.yaml` -> `/event-gateway/`
32+
33+
Policy example `.yml` files have no frontmatter. Read `title` and `description` from the top-level YAML. Policy `index.md` files use `name` as the display name.
34+
35+
## Special pages
36+
37+
Handle these before grouping. They are not placed by the grouping rules.
38+
39+
- **Breaking changes**: `app/event-gateway/breaking-changes.md` goes under `## Changes`, only if it changed.
40+
- **Auto-generated references**: `app/_references/event-gateway/{VERSION}/headers.md` and `metrics.md` are auto-generated. On a new release they appear as new files. Do not list them individually.
41+
- **Configuration reference**: `app/_data/event-gateway-bootstrap-schema/{VERSION}.json` renders into `/event-gateway/configuration/`. Check for this file in the diff even though the baseline filter drops `.json`. Do not list the file itself. If `app/event-gateway/configuration.md` was also edited, list it under References with an annotation. Otherwise it appears only on the collapsed line.
42+
43+
Collapse the auto-generated pages into one line at the bottom of the output:
44+
45+
```
46+
_Auto-generated references updated: [Event Gateway configuration reference](URL), [Event Gateway headers](URL), [Event Gateway metrics](URL)_
47+
```
48+
49+
Include only the pages that actually changed.
50+
51+
## Grouping rules
52+
53+
Group by capability, not by file type. Group policies with their related how-tos and examples. Use only groups that have content:
54+
55+
- **Policies, one group per category**: use the policy `categories` frontmatter value as the group heading, with the display name from `app/_data/event_gateway_policy_categories.yml` (Security, Traffic Control, Transformations, Data Quality). Each policy goes under its category. Examples go under their policy. Guides that centre on a policy go under that policy's category. Within a category, use a bold sub-heading per policy or policy family (e.g. **Mask Fields policies:**). Categories with no changes are omitted. Read `categories` from each policy `index.md`, do not guess.
56+
- **Authentication and authorization**: mTLS, SASL, Kong Identity, SNI routing how-tos (ACLs and `tls-server` are policies, so they go under their policy category)
57+
- **Entities**: `app/event-gateway/entities/`
58+
- **Observability**: OpenTelemetry how-tos
59+
- **Getting started and deployment**: get started, image signature verification, quickstart-style how-tos
60+
- **References**: every remaining page under `app/event-gateway/*.md` (for example expressions, architecture, upgrade, known limitations, version support policy, changelog)
61+
62+
If a policy has both new `index.md` and new examples, list the policy page first, then its examples as sub-bullets.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Profile: Kong Gateway (`gateway`)
2+
3+
- Product name in headings: `Kong Gateway`
4+
- Output file: `docs/release-changelog/gateway/{VERSION}.md` (e.g. `gateway/3.16.md`)
5+
6+
## Path filters
7+
8+
Include everything under `app/` that passes the baseline exclusions, except any path matched by the **Path filters** of another profile in `products/`.
9+
10+
## URL derivation (when `permalink` is missing)
11+
12+
- `app/_how-tos/*/foo.md` -> `/how-to/foo/` (the product subdir is NOT in the URL)
13+
- `app/_kong_plugins/foo/index.md` -> `/plugins/foo/`
14+
- `app/_kong_plugins/foo/examples/bar.md` or `.yaml` -> `/plugins/foo/examples/bar/`
15+
- `app/_gateway_entities/foo.md` -> `/gateway/entities/foo/`
16+
- `app/gateway/foo.md` -> `/gateway/foo/`
17+
- `app/ai-gateway/foo.md` -> `/ai-gateway/foo/`
18+
- `app/mesh/foo.md` -> `/mesh/foo/`
19+
- `app/kic/foo.md` -> `/kic/foo/`
20+
- `app/_landing_pages/foo.yaml` -> `/foo/` (derived from the file path; the page declares no `permalink`)
21+
- `app/_references/foo.md` -> read the `permalink` field
22+
23+
## Special pages
24+
25+
Handle these before grouping. They are not placed by the grouping rules.
26+
27+
- **Breaking changes**: `gateway/breaking-changes*` goes under `## Changes`, always last.
28+
- **Auto-generated references**: files under `app/_references/gateway/pdk/` or `app/_references/gateway/cli/` are auto-generated version bumps. Do not list them individually. Collapse to:
29+
30+
```
31+
_Auto-generated references updated: [Gateway CLI Reference](URL), [PDK Reference](URL)_
32+
```
33+
34+
- **Bulk include changes**: when one `_includes` partial touches 5+ plugin pages (for example all logging plugins after a change to `log-custom-fields-by-lua.md`), collapse them into one line such as `**Logging plugins** (updated for custom log fields): [File Log](URL), [HTTP Log](URL), ...`.
35+
36+
## Grouping rules
37+
38+
- **AI Gateway**: `ai-gateway/` files, `_kong_plugins/ai-*/`, AI how-tos. Sub-group by feature (A2A, providers, guardrails, semantic, MCP, partials).
39+
- **Kong Gateway**: `gateway/` pages, entities, non-AI plugins, gateway how-tos.
40+
- **OIDC plugin**: always under Kong Gateway, not AI Gateway. Files: `_kong_plugins/openid-connect/`, OIDC how-tos.
41+
- **MCP**: MCP plugin docs and how-tos.
42+
- **Observability**: `observability/` pages.
43+
- **Konnect**: `catalog/`, Dev Portal, and Konnect-specific content.

‎.github/styles/base/Dictionary.txt‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ camelCase
112112
CDNs
113113
ce
114114
cef
115+
cel
115116
cerebras
116117
certificate_admin
117118
charset
@@ -212,6 +213,9 @@ dereferenced
212213
dereferencing
213214
deserialization
214215
deserialize
216+
deserializer
217+
deserializing
218+
deserializes
215219
deserialized
216220
destructuring
217221
dev
@@ -412,6 +416,7 @@ JMeter
412416
journald
413417
jq
414418
jQuery
419+
js
415420
json
416421
JSONObject
417422
JSONObjects
@@ -582,6 +587,8 @@ Nullsoft
582587
nunjucks
583588
noname
584589
nonamesecurity
590+
nonce
591+
nonces
585592
nopp
586593
nopped
587594
nopping
@@ -825,6 +832,7 @@ svg
825832
svgs
826833
swaggerhub
827834
switchyard
835+
syntaxes
828836
syscall
829837
syslog
830838
systemd
@@ -868,8 +876,11 @@ tooltip
868876
tproxy
869877
traceable
870878
Traefik
879+
transcode
880+
transcodes
871881
transcoded
872882
transcoder
883+
transcoding
873884
transpile
874885
transpiled
875886
trendai

‎.github/workflows/ai-gateway-automated-tests.yaml‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ on:
99
konnect_domain:
1010
description: "Set to konghq.tech to run against .tech"
1111
required: false
12-
konnect_event_gateway_min_version:
13-
description: 'Minimum Konnect Event Gateway version for the get.konghq.com/ai quickstart (e.g. 2.2)'
12+
konnect_ai_gateway_min_version:
13+
description: 'Minimum AI Gateway version for the get.konghq.com/ai quickstart (e.g. 2.2)'
1414
required: false
1515
schedule:
1616
- cron: '0 0 * * MON'
@@ -71,11 +71,11 @@ jobs:
7171
- name: Pre-pull AI Gateway quickstart dependencies
7272
run: docker pull ghcr.io/jqlang/jq:latest
7373

74-
- name: Set Event Gateway min version
75-
if: ${{ inputs.konnect_event_gateway_min_version != '' }}
74+
- name: Set AI Gateway min version
75+
if: ${{ inputs.konnect_ai_gateway_min_version != '' }}
7676
env:
77-
MIN_VERSION: ${{ inputs.konnect_event_gateway_min_version }}
78-
run: echo "KONNECT_EVENT_GATEWAY_MIN_VERSION=$MIN_VERSION" >> $GITHUB_ENV
77+
MIN_VERSION: ${{ inputs.konnect_ai_gateway_min_version }}
78+
run: echo "KONNECT_AI_GATEWAY_MIN_VERSION=$MIN_VERSION" >> $GITHUB_ENV
7979

8080
- name: Run tests
8181
working-directory: tools/automated-tests

‎.github/workflows/event-gateway-tests.yaml‎

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,18 @@ name: Event Gateway Automated Tests
22
on:
33
workflow_dispatch:
44
inputs:
5+
event_gateway_image:
6+
description: 'Docker Image for Tests'
7+
required: true
8+
default: 'kong-event-gateway:latest'
59
konnect_domain:
610
description: "Set to konghq.tech to run against .tech"
711
required: false
12+
konnect_event_gateway_min_version:
13+
description: 'Minimum Konnect Event Gateway version for the get.konghq.com/event-gateway quickstart (e.g. 1.3)'
14+
required: false
815
schedule:
9-
- cron: '0 0 1 * *'
16+
- cron: '0 0 * * WED'
1017

1118
concurrency:
1219
cancel-in-progress: true
@@ -55,13 +62,27 @@ jobs:
5562
with:
5663
op-token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
5764

65+
- name: Set Event Gateway Image and Tag
66+
run: |
67+
INPUT_IMAGE="${{ inputs.event_gateway_image }}"
68+
echo "KONG_IMAGE_NAME=${INPUT_IMAGE%:*}" >> $GITHUB_ENV
69+
echo "KONG_IMAGE_TAG=${INPUT_IMAGE##*:}" >> $GITHUB_ENV
70+
71+
- name: Set Event Gateway min version
72+
if: ${{ inputs.konnect_event_gateway_min_version != '' }}
73+
env:
74+
MIN_VERSION: ${{ inputs.konnect_event_gateway_min_version }}
75+
run: echo "KONNECT_EVENT_GATEWAY_MIN_VERSION=$MIN_VERSION" >> $GITHUB_ENV
76+
5877
- name: Run tests
5978
working-directory: tools/automated-tests
6079
shell: bash
6180
env:
6281
KONG_LICENSE_DATA: ${{ steps.getLicense.outputs.license }}
6382
DEPLOYMENT_MODEL: konnect
6483
PRODUCTS: event-gateway
84+
KONG_IMAGE_TAG: ${{ env.KONG_IMAGE_TAG }}
85+
KONG_IMAGE_NAME: ${{ env.KONG_IMAGE_NAME }}
6586
KONNECT_DOMAIN: ${{ env.KONNECT_DOMAIN }}
6687
TESTS_KONNECT_TOKEN: ${{ inputs.konnect_domain != '' && secrets.KONNECT_TOKEN_TECH || secrets.KONNECT_TOKEN }}
6788
run: |
@@ -76,4 +97,4 @@ jobs:
7697
uses: './.github/reusable-steps/notify-slack'
7798
with:
7899
webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
79-
status: ${{ job.status }}
100+
status: ${{ job.status }}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: Validate Event Gateway Policy Examples
2+
on:
3+
pull_request:
4+
types: [synchronize, ready_for_review, opened, labeled]
5+
workflow_dispatch:
6+
permissions:
7+
contents: read
8+
concurrency:
9+
cancel-in-progress: true
10+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
11+
12+
jobs:
13+
check:
14+
if: github.event_name == 'pull_request'
15+
runs-on: ubuntu-latest
16+
timeout-minutes: 10
17+
steps:
18+
- name: Harden Runner
19+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
20+
with:
21+
egress-policy: audit
22+
- name: Check if manual review has been performed
23+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9
24+
id: labels
25+
with:
26+
result-encoding: string
27+
script: |
28+
const { data: labels } = await github.rest.issues.listLabelsOnIssue({
29+
...context.repo,
30+
issue_number: context.issue.number
31+
});
32+
return labels.map(l => l.name).includes('ci:manual-approve:egw-policies')
33+
outputs:
34+
result: ${{ steps.labels.outputs.result }}
35+
validate:
36+
needs: check
37+
if: always() && needs.check.outputs.result != 'true'
38+
name: Validate Event Gateway policy examples against schemas
39+
runs-on: ubuntu-latest
40+
timeout-minutes: 10
41+
steps:
42+
- name: Harden Runner
43+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
44+
with:
45+
egress-policy: audit
46+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
47+
with:
48+
fetch-depth: 2
49+
- name: Get changed files
50+
id: changed-files
51+
uses: tj-actions/changed-files@2bb135777322059ee3a3c9239999b159ff49febc
52+
with:
53+
files: |
54+
app/_event_gateway_policies/*/examples/**
55+
app/_event_gateway_policies/*/index.md
56+
api-specs/konnect/event-gateway/**
57+
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
58+
if: steps.changed-files.outputs.any_changed == 'true' || github.event_name == 'workflow_dispatch'
59+
with:
60+
node-version: "24"
61+
- name: Install dependencies
62+
if: steps.changed-files.outputs.any_changed == 'true' || github.event_name == 'workflow_dispatch'
63+
working-directory: tools/event-gateway-policy-examples-validator
64+
run: npm ci
65+
- name: Run validation
66+
if: steps.changed-files.outputs.any_changed == 'true' || github.event_name == 'workflow_dispatch'
67+
working-directory: tools/event-gateway-policy-examples-validator
68+
run: npm run validate

0 commit comments

Comments
 (0)