- Embedded NATS server with JetStream (sync_interval=always per Jepsen 2025) - AUDIT and STATE JetStream streams for tournament event durability - NATS publisher with UUID validation to prevent subject injection - WebSocket hub with JWT auth (query param), tournament-scoped broadcasting - Origin validation and slow-consumer message dropping - chi HTTP router with middleware (logger, recoverer, request ID, CORS, body limits) - Server timeouts: ReadHeader 10s, Read 30s, Write 60s, Idle 120s, MaxHeader 1MB - MaxBytesReader middleware for request body limits (1MB default) - JWT auth middleware with HMAC-SHA256 validation - Role-based access control (admin > floor > viewer) - Health endpoint reporting all subsystem status (DB, NATS, WebSocket) - SvelteKit SPA served via go:embed with fallback routing - Signal-driven graceful shutdown in reverse startup order - 9 integration tests covering all verification criteria Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
29 lines
1.1 KiB
Modula-2
29 lines
1.1 KiB
Modula-2
module github.com/felt-app/felt
|
|
|
|
go 1.24.0
|
|
|
|
require github.com/tursodatabase/go-libsql v0.0.0-20251219133454-43644db490ff // no tagged releases — pinned to commit 43644db490ff
|
|
|
|
require (
|
|
github.com/coder/websocket v1.8.14
|
|
github.com/go-chi/chi/v5 v5.2.5
|
|
github.com/golang-jwt/jwt/v5 v5.3.1
|
|
github.com/nats-io/nats-server/v2 v2.12.4
|
|
github.com/nats-io/nats.go v1.49.0
|
|
)
|
|
|
|
require (
|
|
github.com/antithesishq/antithesis-sdk-go v0.5.0-default-no-op // indirect
|
|
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
|
|
github.com/google/go-tpm v0.9.8 // indirect
|
|
github.com/klauspost/compress v1.18.3 // indirect
|
|
github.com/libsql/sqlite-antlr4-parser v0.0.0-20240327125255-dbf53b6cbf06 // indirect
|
|
github.com/minio/highwayhash v1.0.4-0.20251030100505-070ab1a87a76 // indirect
|
|
github.com/nats-io/jwt/v2 v2.8.0 // indirect
|
|
github.com/nats-io/nkeys v0.4.12 // indirect
|
|
github.com/nats-io/nuid v1.0.1 // indirect
|
|
golang.org/x/crypto v0.47.0 // indirect
|
|
golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc // indirect
|
|
golang.org/x/sys v0.40.0 // indirect
|
|
golang.org/x/time v0.14.0 // indirect
|
|
)
|