Skip to content

Release/event gateway 1.3 - #7336

Open
fabianrbz wants to merge 50 commits into
mainfrom
release/event-gateway-1.3
Open

fabianrbz wants to merge 50 commits into
mainfrom
release/event-gateway-1.3

Conversation

@fabianrbz

Copy link
Copy Markdown
Contributor

Description

Fixes #issue

Preview Links

Checklist

  • Tested how-to docs. If not, note why here.
  • All pages contain metadata.
  • Any new docs link to existing docs.
  • All autogenerated instructions render correctly (API, decK, Konnect, Kong Manager).
  • Style guide (capitalized gateway entities, placeholder URLs) implemented correctly.
  • Every page has a description entry in frontmatter.
  • Add new pages to the product documentation index (if applicable).

lena-larionova and others added 8 commits August 18, 2026 09:05
* 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>
* record transcode policy docs + examples

* add transcode to dictionary

* how-to guide for record transcode consume policy

* add deserializer to dictionary
@fabianrbz fabianrbz added the do not merge Issues/ PRs whose changes should not be merged at this time label Sep 22, 2026
@fabianrbz
fabianrbz requested a review from a team as a code owner September 22, 2026 15:10
@netlify

netlify Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for kongdeveloper ready!

Name Link
🔨 Latest commit e99e2fd
🔍 Latest deploy log https://app.netlify.com/projects/kongdeveloper/deploys/6adf0102843e32e78e77a5e1
😎 Deploy Preview https://deploy-preview-7336--kongdeveloper.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

fabianrbz and others added 19 commits September 22, 2026 17:48
conatiner to a network, it's already part of it
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.
Validations::Base now includes the shared concern instead of its own
section reader, and rejects an unrecognized section at construction
time, before validate_yaml!.
KonnectApiRequest, ControlPlaneRequest and HttpRequest now validate
section at construction time and drop it from the instruction config,
matching Validations::Base.
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.
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.
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.
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.
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.
…ates

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.
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.
auth-headers and directories when resetting ai-gatewat and event-gateway
how-tos just in case, so we always start with a clean set.
* 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>
* 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>
jakubdyszkiewicz and others added 23 commits October 13, 2026 18:46
…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

* 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

* 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

* 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

* 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 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>
# Conflicts:
#	.github/styles/base/Dictionary.txt
#	tools/automated-tests/collect-urls.mjs
#	tools/automated-tests/generate-instructions-files.js
… 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.
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.
… selection (#7375)

Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com>
Co-authored-by: Charly Molter <charly.molter@konghq.com>
Co-authored-by: lena-larionova <54370747+lena-larionova@users.noreply.github.com>
* 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>
* 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(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>
* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do not merge Issues/ PRs whose changes should not be merged at this time product:event-gateway

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants