Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
0270095
Improve demo test support
kamir Jan 31, 2026
e9fd657
Add IPv6 MetalLB e2e coverage
kamir Jan 31, 2026
35d3459
Fix IPv6 MetalLB e2e execution path
kamir Jan 31, 2026
37fb73c
Fix demo bootstrap + add long-running demo target (#86)
novatechflow Feb 1, 2026
189f3c8
chore(deps): bump docker/login-action from 3.6.0 to 3.7.0
dependabot[bot] Feb 1, 2026
611966f
chore(deps): bump sigs.k8s.io/controller-runtime from 0.23.0 to 0.23.1
dependabot[bot] Feb 1, 2026
9d97825
chore(deps): bump sigs.k8s.io/controller-runtime from 0.23.0 to 0.23.…
novatechflow Feb 2, 2026
8574596
Merge branch 'main' into dependabot/github_actions/docker/login-actio…
novatechflow Feb 3, 2026
930d3c2
chore(deps): bump docker/login-action from 3.6.0 to 3.7.0 (#89)
novatechflow Feb 4, 2026
2398ab4
chore(deps): bump github/codeql-action from 4.31.11 to 4.32.0 (#88)
dependabot[bot] Feb 5, 2026
6a175f6
chore(deps): bump github/codeql-action from 4.32.1 to 4.32.2 (#92)
dependabot[bot] Feb 9, 2026
19b3477
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.95.1…
dependabot[bot] Feb 9, 2026
79e49f5
chore(deps): bump go.etcd.io/etcd/server/v3 from 3.6.6 to 3.6.8 (#103)
dependabot[bot] Feb 20, 2026
1ddd045
chore(deps): bump docker/build-push-action from 5.4.0 to 6.19.2
dependabot[bot] Feb 20, 2026
203d193
chore(deps): bump etcd-development/etcd in /deploy/docker
dependabot[bot] Feb 20, 2026
5360c86
chore(deps): bump github/codeql-action from 4.32.2 to 4.32.3
dependabot[bot] Feb 20, 2026
a7fe18b
chore(deps): bump github.com/modelcontextprotocol/go-sdk from 1.2.0 t…
dependabot[bot] Feb 20, 2026
573b7ea
chore(deps): bump k8s.io/client-go from 0.35.0 to 0.35.1 (#101)
dependabot[bot] Feb 20, 2026
2b17bd2
chore(deps): bump google.golang.org/grpc from 1.78.0 to 1.79.1 (#100)
dependabot[bot] Feb 20, 2026
f22a456
Merge branch 'main' into dependabot/docker/deploy/docker/etcd-develop…
novatechflow Feb 20, 2026
7bf9814
chore(deps): bump etcd-development/etcd from v3.6.7 to v3.6.8 in /dep…
novatechflow Feb 20, 2026
a07f444
Merge branch 'main' into dependabot/github_actions/docker/build-push-…
novatechflow Feb 20, 2026
a5ce6a8
Merge branch 'main' into dependabot/github_actions/github/codeql-acti…
novatechflow Feb 20, 2026
6fcb623
chore(deps): bump docker/build-push-action from 5.4.0 to 6.19.2 (#95)
novatechflow Feb 20, 2026
a8f11bd
Merge branch 'main' into dependabot/github_actions/github/codeql-acti…
novatechflow Feb 20, 2026
2cd3b8c
chore(deps): bump github/codeql-action from 4.32.2 to 4.32.3 (#96)
novatechflow Feb 20, 2026
a411372
chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.7 to …
dependabot[bot] Feb 24, 2026
98d9a65
chore(deps): bump github.com/aws/aws-sdk-go-v2/credentials from 1.19.…
dependabot[bot] Feb 24, 2026
91a8d6e
chore(deps): bump github/codeql-action from 4.32.3 to 4.32.4 (#106)
dependabot[bot] Feb 24, 2026
34e5549
chore(deps): bump github.com/twmb/franz-go from 1.20.6 to 1.20.7 (#105)
dependabot[bot] Feb 24, 2026
532d01a
chore(deps): bump github.com/aws/smithy-go from 1.24.0 to 1.24.1 (#104)
dependabot[bot] Feb 24, 2026
343e7f9
perf: parallelize S3 segment and index uploads in flushLocked
klaudworks Feb 24, 2026
4ae09e5
fix: use atomic counter in test to avoid data race with parallel uploads
klaudworks Feb 25, 2026
1bf442e
perf: parallelize S3 segment and index uploads (#110)
novatechflow Feb 25, 2026
b1fc0da
perf: S3 concurrency semaphore and lock-free flush uploads (#111)
klaudworks Feb 26, 2026
16f6140
fix: handle orphaned S3 segments gracefully in RestoreFromS3 and Read…
klaudworks Feb 27, 2026
9a5cfcb
fix: arm64 images contain amd64 binaries due to hardcoded TARGETARCH …
klaudworks Feb 27, 2026
446b765
cleanup: remove minio defaults from broker, pass through operator env…
klaudworks Feb 28, 2026
93c4d83
fix: don't block all partitions while one is initializing (#118)
klaudworks Feb 28, 2026
578b149
fix: prevent duplicate offset assignment with etcd lease-based partit…
klaudworks Mar 1, 2026
8f7b489
fix: route group coordination requests to a single broker to prevent …
klaudworks Mar 2, 2026
471900e
ci: add explicit CodeQL workflow for PR and push (#116)
novatechflow Mar 2, 2026
5162304
feat: fetch partition routing and on-demand metadata refresh (#126)
klaudworks Mar 2, 2026
3e1fb5a
fix: move produce tagged fields inside partition loop (#127)
klaudworks Mar 3, 2026
a5b684a
feat: add KafScale onboarding examples (E10-E50) and developer guide …
kamir Mar 3, 2026
dfa5c85
cleanup / bugfix: replace hand-rolled Kafka wire protocol with franz-…
klaudworks Mar 3, 2026
3f575ae
fix: broker sends error response instead of dropping connection (#133)
kamir Mar 9, 2026
8f60792
feat: add Large File Support (LFS) subsystem (#134)
kamir Mar 11, 2026
8018c8d
Security (#135)
novatechflow Mar 16, 2026
06d33bd
Novatechflow/dependabot vuln remediation (#136)
novatechflow Mar 22, 2026
1b5dbd8
fix(security): bump pgproto3 to patched pseudo-version (#137)
novatechflow Mar 23, 2026
5a78f75
operator(etcd): enable auto-compaction + bump quota
kamir May 20, 2026
8cd0508
Iter-7 E-10: kafscale chart 0.4.1 — PSA-restricted securityContext
kamir May 20, 2026
529551d
Iter-7 E-14: proxy default anti-affinity + topologySpreadConstraints …
kamir May 20, 2026
d233ed2
Iter-7 E-15: wire LFS HTTP listener in kafscale chart (closes BUG-000…
kamir May 20, 2026
5698edf
fix(proxy): guard nil topic name in cloneTopics — BUG-0014
kamir May 22, 2026
3ccb713
feat(operator): soft pod anti-affinity on broker + etcd StatefulSets …
kamir May 22, 2026
75d255f
test(operator): assert soft anti-affinity on broker + etcd STS — BUG-…
kamir May 22, 2026
65347c2
fix(proxy): close PLAN-03 unknown-topic + readiness gap
kamir May 23, 2026
92d6729
kafscale 0.4.4: proxy-service honours service.nodePort (ADR-0002)
kamir Jun 1, 2026
9c68973
ci(docker): drop the stale lfs-proxy image build
kamir Jun 2, 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
  •  
  •  
  •  
10 changes: 9 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,11 @@ jobs:
- uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v5
with:
go-version-file: go.mod
cache-dependency-path: go.sum
cache-dependency-path: |
go.sum
addons/processors/skeleton/go.sum
addons/processors/sql-processor/go.sum
addons/processors/iceberg-processor/go.sum

- name: Prepare Go build cache
run: mkdir -p "$GOCACHE"
Expand All @@ -57,6 +61,9 @@ jobs:
- name: Run go test -race ./...
run: go test -race ./...

- name: Run nested module tests
run: make test-nested-modules

go-coverage:
name: Go Coverage Gate
runs-on: ubuntu-latest
Expand All @@ -76,6 +83,7 @@ jobs:
- name: Enforce coverage floor
run: bash hack/check_coverage.sh 45


helm-lint:
name: Helm Lint
runs-on: ubuntu-latest
Expand Down
66 changes: 66 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Copyright 2025 Alexander Alten (novatechflow), NovaTechflow (novatechflow.com).
# This project is supported and financed by Scalytics, Inc. (www.scalytics.io).
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: CodeQL

on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language:
- go
- javascript-typescript
- python
- actions

steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Initialize CodeQL
uses: github/codeql-action/init@c6f931105cb2c34c8f901cc885ba1e2e259cf745 # v4
with:
languages: ${{ matrix.language }}
queries: security-extended,security-and-quality
config: |
paths-ignore:
- '**/node_modules/**'
- '**/target/**'
- '**/*.egg-info/**'
- 'third_party/**'

- name: Autobuild
uses: github/codeql-action/autobuild@c6f931105cb2c34c8f901cc885ba1e2e259cf745 # v4

- name: Analyze
uses: github/codeql-action/analyze@c6f931105cb2c34c8f901cc885ba1e2e259cf745 # v4
with:
category: "/language:${{ matrix.language }}"
10 changes: 7 additions & 3 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ on:
- 'v*'
workflow_dispatch:

permissions: read-all
permissions: {}

jobs:
build-and-push:
Expand All @@ -36,6 +36,10 @@ jobs:
image: kafscale-broker
context: .
file: deploy/docker/broker.Dockerfile
# lfs-proxy removed: LFS moved into the broker/console
# (internal/console/lfs_*.go); deploy/docker/lfs-proxy.Dockerfile no
# longer exists. A dedicated kafscale-lfs-proxy image conflicts with
# the in-broker LFS. Do not re-add this matrix entry.
- name: operator
image: kafscale-operator
context: .
Expand Down Expand Up @@ -67,7 +71,7 @@ jobs:
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3

- name: Log in to GHCR
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3
with:
registry: ghcr.io
username: ${{ github.actor }}
Expand All @@ -82,7 +86,7 @@ jobs:
type=ref,event=tag

- name: Build and push
uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2
with:
context: ${{ matrix.context }}
file: ${{ matrix.file }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,6 @@ jobs:
publish_results: true

- name: Upload results to GitHub Security tab
uses: github/codeql-action/upload-sarif@19b2f06db2b6f5108140aeb04014ef02b648f789 # v3
uses: github/codeql-action/upload-sarif@89a39a4e59826350b863aa6b6252a07ad50cf83e # v3
with:
sarif_file: results.sarif
33 changes: 33 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.

Makefile-MK # Ignore build and IDE files

# Binaries
/bin/
/dist/
/out/
/tmp/
/.tmp/
/.gopath/

# Build artifacts
Expand All @@ -31,10 +34,14 @@
*.key
coverage*.out
.build/
target/
**/target/
spark-warehouse/

# Local Go cache (use GOCACHE=.gocache for hermetic builds/tests)
.gocache/
.cache/
.tools/

# Go modules/vendor
/vendor/
Expand All @@ -53,6 +60,7 @@ coverage*.out
*.swp
*.swo
.DS_Store
.claude/

# Addon processor artifacts
addons/processors/**/bin/
Expand All @@ -79,3 +87,28 @@ proto/**/*.swagger.json
_site/
Gemfile
Gemfile.lock

# Ignore demo node_modules
examples/E50_JS-kafscale-demo/node_modules/

# Go compiled binaries (top-level)
/e2e-client
/lfs-proxy
/proxy

# Java build artifacts
target/
dependency-reduced-pom.xml

# JavaScript/Node.js
node_modules/
package-lock.json
lfs-client-sdk/**/dist/

# Python
__pycache__/
*.pyc
*.egg-info/

# Test output
records.txt
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
24
3 changes: 3 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ The CI workflow checks for missing headers and fails if new files are added with
Pull requests must include strict test coverage for the changes they introduce. At a minimum:

- Add or extend unit tests for all non-trivial logic.
- Run `make commit-check` before opening or updating a PR.
- Run the relevant e2e suite(s). Broker changes should run:
- `make test-produce-consume`
- `make test-consumer-group` (if group behavior is affected)
Expand All @@ -66,6 +67,7 @@ Common invocations:

- `make build`
- `make test`
- `make commit-check`
- `make test-full`

The policy above (tests for new functionality) is enforced in code review and CI.
Expand All @@ -89,6 +91,7 @@ major changes and explicitly lists any known CVE fixes (or "None").
## Development Workflow

See `docs/development.md` for build/test commands, environment variables, and local setup.
Before submitting a PR, run `make commit-check` and fix any reported issues.

## Code of Conduct

Expand Down
Loading