github Kong/kongctl v1.16.0

5 hours ago

Kong logo Kong logo kongctl Release Highlights

⚠️ Breaking Fixes

  • AI Gateway manifests now require an explicit name field (#2096). Managed AI Gateways match by name only — not by display_name, ref, or cached ID. The legacy incorrect name = ref default has been removed. Existing manifests that omit name must set the actual Konnect API name before running apply or sync. Changing a gateway's name declares a different resource and sync may trigger deletion of the old one, including its consumers and credentials.

✨ What's New

  • Persistent extension flags across subcommands (#2176). Extension flags can now be placed before or after a subcommand — both forms are equivalent:

    kongctl ai --context example status
    kongctl ai status --context example

    Supports string and boolean declarations, inherited help text, and forwarding that preserves token order, repeated values, and aliases.

  • --no-trunc for full-width text tables (#2122). Long resource names (such as Mesh dataplane names) are no longer clipped in table output. Enable with --no-trunc, text.no-trunc in config, or the KONGCTL_<PROFILE>_TEXT_NO_TRUNC environment variable.

    kongctl get konnect gateway control-planes --no-trunc
  • Safe offline uninstall via the shell installer (#2177). Shell-installer users can now run --uninstall to cleanly remove the kongctl binary. The operation is noninteractive, works offline, respects stable/preview install directories, and refuses to remove symlinks, directories, or package-manager targets.

🐛 Fixes & Improvements

  • AI Gateway cursor pagination fixed (#2096). Lists of AI Gateway consumers stopped after the first page when the API returned an opaque cursor. Plan/sync could silently recreate consumers beyond item 100. The shared pagination helper now accepts bare cursors, next-page URLs, and query-string snippets, and rejects repeated or cyclic cursors with an error instead of returning incomplete results.

  • AI Gateway vault schemas aligned with the SDK (#2187). Declarative AWS vaults incorrectly rejected valid assume_role_arn configuration, and the hand-maintained schema missed fields from other vault types. Vault discovery and validation are now derived from the SDK unions — all seven vault types and all ten HashiCorp authentication branches retain their supported fields through loading, planning, execution, and dump/reload.

  • Auth variants distinguished in extended explain (#2149). Extended explain output no longer merges Bedrock and SageMaker authentication fields into a single list. Each provider's credentials now appear in their own context, and `{(redacted) is shown as an accepted alternative in write-only field errors.

📚 Docs & DX

  • Extension guide, learning-site lessons, and Go/script examples updated with persistent flag placement, parsing, inheritance, and compatibility rules (#2176).
  • Installer help, README, and contributor notes document the new --uninstall workflow (#2177).
  • Migration guidance for the AI Gateway name requirement and consumer deletion consequences (#2096).

🔗 Commit References

Features

  • c63cb23 feat(cmd): support persistent extension flags across subcommands (#2176)
  • c4c432f feat(installer): add safe offline uninstall support (#2177)
  • 0e0ace9 feat(cmd): add no-trunc for full-width text tables (#2122)

Fixes

  • 0076b78 fix(declarative): align AI Gateway vault schemas with SDK (#2187)
  • 7b340e3 fix(declarative): distinguish auth variants in extended explain (#2149)
  • aec18c0 fix(konnect): correct AI Gateway identity and cursor pagination (#2096)
  • 971bf2c fix(release): verify and recover signed draft releases by ID (#2089)
  • 6d7eb1c fix(deps): update dependency astro to v7.3.1 (#2184)
  • 4f3fd26 fix(deps): update module github.com/daveshanley/vacuum to v0.30.3 (#2179)
  • 45de697 fix(deps): update module github.com/mattn/go-runewidth to v0.0.29 (#2166)
  • 4e6efe2 fix(deps): update module golang.org/x/sys to v0.48.0 (#2160)
  • 0fef5e3 fix(deps): update dependency astro to v7.2.10 (#2159)
  • 97f84cc fix(deps): update module golang.org/x/sync to v0.23.0 (#2154)
  • 8d180ef fix(deps): update dependency astro to v7.2.9 (#2120)
  • 89dbc65 fix(deps): update dependency astro to v7.2.8 (#2113)
  • 30bdef9 fix(deps): update module github.com/daveshanley/vacuum to v0.30.1 (#2107)
  • a936493 fix(deps): update dependency astro to v7.2.7 (#2099)
  • 5288660 fix(deps): update module github.com/kong/kongctl to v1.15.1 (#2091)

Other Changes

  • 0df578c chore(deps): update dependency vitest to v5 (#2185)
  • 7ffff8d chore(deps): update dependency goreleaser/goreleaser to v2.18.0 (#2183)
  • a5a46de refactor(declarative): reuse child validation and resource matching helpers (#2180)
  • 96a1eee refactor(declarative): register control-plane child loading capabilities (#2174)
  • 8c9db52 test(e2e): expand portal document replay coverage (#2173)
  • a925a61 test(e2e): capture scenario failures and command timings (#2172)
  • 924576e build(deps): bump nanoid from 3.3.16 to 3.3.19 in /site (#2169)
  • 0de9100 chore(deps): update actions/deploy-pages action to v5.0.1 (#2164)
  • 17f3f78 chore(deps): update docker/setup-qemu-action action to v4.3.0 (#2163)
  • 0e10371 chore(deps): update github/gh-aw-actions action to v0.89.12 (#2162)
  • e4c4696 task(ci): reuse compatible Go caches on E2E dependency updates (#2156)
  • ee2be3d chore(deps): update github/gh-aw-actions action to v0.89.9 (#2158)
  • 8556160 refactor(declarative): register Event Gateway child loading capabilities (#2155)
  • d1e1bb8 chore(deps): update step-security/harden-runner action to v2.21.1 (#2151)
  • 892b1dd chore(deps): update github/gh-aw-actions action to v0.89.8 (#2153)
  • adc0d17 refactor(simplify): modernize namespace normalization (#2146)
  • 3de35ec refactor(declarative): register API child loading capabilities (#2148)
  • f91e18e test(e2e): enable Portal visibility replay on PRs (#2147)
  • 11c67aa refactor(declarative): register Portal child loading capabilities (#2143)
  • 8bcff66 test(e2e): enable Portal sync replay on PRs (#2142)
  • 23df22a refactor(declarative): register desired namespace selection (#2141)
  • 4b56cad test(e2e): add single-item event gateway coverage (#2140)
  • 5ced01a test(e2e): enable reviewed control plane replay on PRs (#2133)
  • 0304cc7 refactor(declarative): share observation caching across all managed roots (#2139)
  • 0cfdf34 test(e2e): remove a user-defined team label in org sync coverage (#2136)
  • de7d59d chore(deps): update alpine:3 docker digest to 28bd5fe (#2138)
  • 8d140e2 refactor(simplify): reuse publication records and simplify credential payloads (#2137)
  • 4cda781 refactor(declarative): share Portal and API observation caching (#2130)
  • e1710c8 test(e2e): prototype isolated control-plane scenario replay (#2131)
  • 41824cd chore(ci): update the KSAI workflows for ksai/v3.42.1 (#2116)
  • f631f8c test(e2e): cover AI Gateway model name-only changes (#2129)
  • e7278f0 build(deps): bump svgo from 4.0.2 to 4.1.0 in /site (#2127)
  • 584e36a chore(deps): update golangci-lint to v2.13.2 (#2123)
  • 7861ba3 refactor(declarative): register AI Gateway child loading capabilities (#2118)
  • 811df7b refactor(declarative): retire legacy API child operations and simplify helpers (#2119)
  • 872035e task(release): schedule Homebrew cask disablement (#2117)
  • 34885e2 refactor(declarative): register Portal and organization sync scope (#2108)
  • 662b953 test(e2e): cover organization system account dump round trips (#2110)
  • 0a93618 test(e2e): cover organization team role diffs (#2112)
  • cf8747b test(e2e): cover DCR provider adopt namespace rejection (#2111)
  • 02a2079 test(e2e): cover analytics dashboard adopt namespace overwrite (#2109)
  • b518225 refactor(declarative): register nested gateway child scopes (#2103)
  • 329d7d6 refactor(declarative): register namespace and collection scope capabilities (#2102)
  • 5877b85 chore(deps): update node.js to v24.20.0 (#2101)
  • 38aaca3 refactor(declarative): centralize resource executor registration (#2092)
  • b0a066d test(e2e): activate weighted scenario sharding with rollback (#2100)
  • d9b0c32 test(e2e): report weighted shard assignments without changing live execution (#2094)
  • 290a96b chore(deps): update goreleaser/goreleaser-action action to v7 (#2088)
  • 19fa4df task(release): add read-only Apple notarization diagnostics (#2090)

Full Changelog: v1.15.1...v1.16.0> Generated by Release · opus46 · 85.8 AIC · ⌖ 31.5 AIC · ⊞ 4.4K

Don't miss a new kongctl release

NewReleases is sending notifications on new releases.