Repository navigation
Releases
v0.4.0
Highlight: Schema Registry headers survive jq
kite consume --json now always prints valid UTF-8 JSON. A key, value, or header value that isn't valid UTF-8 now goes into a sibling _b64 field (standard padded base64). Before, kite wrote those raw bytes and jq and other JSON tools silently replaced them with U+FFFD. This covers Confluent Schema Registry's binary __value_schema_id header (0x01 + 16-byte GUID) as well as Avro/Protobuf payloads.
{"key":"o-1","headers":[{"key":"__value_schema_id","value_b64":"AW2jNtjx0w+YTEfQPuihShI="}],"value":"{\"order_id\":1}"}kite produce --jsonacceptskey_b64,value_b64, and array-headervalue_b64. Sokite consume --json | jq ... | kite produce --jsoncopies schema-ID headers and binary payloads byte for byte.- Text output is unchanged: valid UTF-8 stays in
key,value, and headervalue. - The bytes on Kafka don't change, so Confluent serializers and deserializers still see the same binary schema IDs.
- Invalid base64, or a record with both
valueandvalue_b64, is rejected with the line number.
Behavior change: for records whose bytes aren't UTF-8, scripts now find .value_b64 (or .key_b64) instead of .value. Decode with base64 -d, e.g. jq -r .value_b64 | base64 -d. The header object form on produce ({"h":"v"}) is still string-only; use the array form for binary headers.
Also
kite updatefinds the latest release through the GitHubreleases/latestredirect instead of api.github.com, so it no longer runs into the 60 requests/hour API limit.
What's Changed
- kite update: resolve the latest tag via the releases/latest redirect, not api.github.com by @devin-ai-integration[bot] in #88
- --json: base64 fields that aren't valid UTF-8 (key_b64/value_b64/header value_b64) so output is jq-safe by @devin-ai-integration[bot] in #89
- release prep: bump version to 0.4.0, point install examples at v0.4.0, add release notes by @devin-ai-integration[bot] in #90
Full Changelog: v0.3.1...v0.4.0
v0.3.1
What's Changed
- README: mention kite topic in agent summaries; move Docker setup below exit codes by @devin-ai-integration[bot] in #82
- README: topic-management demo GIF in Quickstart; commit its VHS tape by @devin-ai-integration[bot] in #83
- README: recommend Apache Kafka native image by @devin-ai-integration[bot] in #84
- Terminal polish: aligned tables, summary blocks, and semantic color by @devin-ai-integration[bot] in #85
- Add
kite update: install the latest GitHub release in place by @devin-ai-integration[bot] in #86 - release prep: bump version to 0.3.1, point install examples at v0.3.1 by @devin-ai-integration[bot] in #87
Full Changelog: v0.3.0...v0.3.1
v0.3.0
What's Changed
- topic: list, create, delete, and update topics (kite topic) by @devin-ai-integration[bot] in #80
- v0.3.0 release prep: bump version, install examples point at v0.3.0 by @devin-ai-integration[bot] in #81
Full Changelog: v0.2.0...v0.3.0
v0.2.0
What's Changed
- README: run Kafka locally with Docker, zero-to-hello quickstart notes, first-run troubleshooting by @devin-ai-integration[bot] in #73
- kite.yaml with named clusters, selected with --target by @devin-ai-integration[bot] in #74
- Add --targets, @name target shorthand, metadata-wait note, advertised-listener docs by @devin-ai-integration[bot] in #75
- CLI: produce/consume/cluster subcommands, [@cluster] TOPIC positionals, persistent current cluster (0.2.0) by @devin-ai-integration[bot] in #76
- @name is one-shot; piped 0-record -B hint; Quickstart -n 1; decline ≠ missing topic by @devin-ai-integration[bot] in #77
- cluster init: interactive wizard that writes a cluster into kite.yaml by @devin-ai-integration[bot] in #78
- v0.2.0 release prep: ApiVersions reports cli.version, install examples point at v0.2.0 by @devin-ai-integration[bot] in #79
Full Changelog: v0.1.0...v0.2.0
v0.1.0
What's Changed
- Fix e2e roundtrip: include the ack-latency record in the expected set by @devin-ai-integration[bot] in #53
- CI: pin actions by commit SHA and use least-privilege permissions by @devin-ai-integration[bot] in #54
- Add SECURITY/CONTRIBUTING/CODE_OF_CONDUCT, issue & PR templates, CHANGELOG by @devin-ai-integration[bot] in #55
- Add .mailmap to normalize author identities by @devin-ai-integration[bot] in #56
- README size claims + obviously-fake placeholders in example configs by @devin-ai-integration[bot] in #57
- Drop CHANGELOG.md; rely on generated release notes by @devin-ai-integration[bot] in #58
- cli: rename -i/--install to --add-to-path by @devin-ai-integration[bot] in #60
- Add Dependabot for GitHub Actions and repo hardening script (#45) by @devin-ai-integration[bot] in #59
- Bump the actions group with 2 updates by @dependabot[bot] in #62
- Harden for public release: verify install checksums, cap decompression, redact SASL debug dumps by @devin-ai-integration[bot] in #61
- Replace built-in --add-to-path installer with a standalone install.sh by @devin-ai-integration[bot] in #63
- README: optimize for agents/AEO (definition, design focus, agent facts, FAQ) + llms.txt by @devin-ai-integration[bot] in #65
- Produce creates missing topics on the spot (prompt on a TTY, automatic in scripts) by @devin-ai-integration[bot] in #66
- README: add CI, release, version, and license badges by @devin-ai-integration[bot] in #67
- README/TESTING: fix Quickstart, document -n vs --idle bounds, CSV produce-only; e2e quickstart check by @devin-ai-integration[bot] in #68
- Shell completions: complete bash/zsh/fish install steps + completion-check.sh by @devin-ai-integration[bot] in #69
- csv: fix piped stdin rejected as empty; chunked-read tests + e2e pipe coverage by @devin-ai-integration[bot] in #70
- README: direct curl of the latest release binary by @devin-ai-integration[bot] in #71
- Raise binary size gate to 640 KB so portable release builds pass by @devin-ai-integration[bot] in #72
New Contributors
- @dependabot[bot] made their first contribution in #62
Full Changelog: https://github.com/addisonhuddy/kite/commits/v0.1.0