Dashboard + Server for FlinkReactor. A combined repo containing the React dashboard and Go GraphQL server.
dashboard/— TanStack Router + Zustand + Tailwind v4 dashboard (React SPA)server/— Go GraphQL server (reactor-server) with Flink REST proxypackages/ui/— Shared UI component library (@flink-reactor/ui)tools/ui-embeddings/— LanceDB embeddings for UI component search
- Data flow: Flink REST → Go server (GraphQL) → Dashboard
- GraphQL contract: Schema lives in
server/internal/graphql/schema/, codegen indashboard/codegen.ts - Docker build: Server binary embeds dashboard static build (
dashboard/out/→server/dashboard/) - Proxy pattern: All Flink REST calls go through the Go server (auth injection, aggregation, no CORS)
# Dashboard
pnpm dev # Dashboard dev server
pnpm build # Build UI + dashboard
# Server (from server/)
just dev # Run Go server
just build # Build binary
just test # Go tests
just lint # golangci-lint
just generate # gqlgen codegen
# Shared
pnpm lint # Biome check all TS
pnpm ui:embed # Rebuild UI embeddings- Formatter: gofumpt (stricter than gofmt)
- Import groups: stdlib → external → internal
- Error handling: always check returned errors
- Linters: errcheck, govet, staticcheck, gosec, revive, unused, ineffassign
- PostToolUse hook: golangci-lint runs automatically after editing Go files
dashboard/CLAUDE.md— Dashboard architecture, data flow, stylingdashboard/FLINK_REST_API.md— Flink REST endpoint catalogserver/CLAUDE.md— Server architecturepackages/ui/CLAUDE.md— UI component reference
dashboard/.claude/rules/data-layer.md— Type layers, mapper conventionsdashboard/.claude/rules/api-routes.md— Proxy pattern, mock modedashboard/.claude/rules/components.md— Page delegation, styling, store access
Specs for this project live in a separate repository at ~/Development/reactors/flink/flink-reactor-specs. When /opsx:* commands are invoked with an absolute path (e.g. /opsx:apply /Users/ahmed/Development/reactors/flink/flink-reactor-specs/openspec/changes/fr-console-01-storage-foundation), use that path directly to locate the change artifacts — do NOT attempt to find or run openspec CLI commands against the current working directory.
| Repo | Purpose | License |
|---|---|---|
flink-reactor-dsl |
Core DSL + CLI | BSL 1.1 |
flink-reactor-console |
Dashboard + Server (this repo) | BSL 1.1 |
flink-reactor-instruments |
Instruments subsystem (Go + TS) | BSL 1.1 |
flink-reactor-platform |
Docs + orchestration | BSL 1.1 |
flink-reactor-specs |
Specifications | BSL 1.1 |