Go backend (backend/) + React 19 single-page app (frontend/) sharing a protobuf API
contract (proto/). Builds and tooling are driven by Task from the
repository root.
Read the nearest file to what you are changing. The nested files own their area; this file only routes.
| You are changing | Read |
|---|---|
backend/** |
backend/AGENTS.md |
frontend/** |
frontend/AGENTS.md |
proto/** |
this file, plus buf.yaml and taskfiles/proto.yaml |
root config, taskfiles/**, .github/** |
this file |
| commit messages, PR description, review | .github/copilot-instructions.md and CONTRIBUTING.md |
Backend and proto commands run from the repository root via task. The ./taskw wrapper
pins the Go toolchain and helper binaries under build/.
task backend:fmt # format
task backend:lint # golangci-lint
task backend:test-unit # unit tests
task backend:test-integration # unit + integration (needs Docker)
task backend:verify # lint + generate + integration tests
task proto:lint # buf lint
task proto:generate # regenerate backend + frontend protogenFrontend commands run from frontend/ via bun run <script>.
backend/pkg/protogen/andfrontend/src/protogen/(regenerate withtask proto:generate)frontend/src/routeTree.gen.ts(TanStack Router)frontend/src/components/redpanda-ui/(UI Registry, sourced fromredpanda-data/ui-registry)build/(pinned toolchain)
This repository is the OSS foundation. console-enterprise imports
github.com/redpanda-data/console/backend and extends it through the hooks system in
backend/pkg/api/hooks.go, which lets it add interceptors, change routes, and replace service
implementations.
Features that live behind those hooks (authentication, RBAC, secret management, shadow links,
pipelines, debug bundles) cannot be exercised from this repository alone. To test an OSS
change against enterprise, add a replace directive in console-enterprise/backend/go.mod:
replace github.com/redpanda-data/console/backend => /path/to/console/backendproto/ is published to the Buf Schema Registry as buf.build/redpandadata/dataplane. A
change here is an API contract change:
- Edit the
.protofile. task proto:lint && task proto:formattask proto:generateand commit the generated output.proto-generate.ymlfails the PR if generated code is out of date.- Breaking-change detection runs in CI. Some alpha packages are exempt; check the
ignorelist inbuf.yamlbefore assuming yours is. Everything else is wire-compatible-only.