mirror of
https://github.com/harivansh-afk/betterNAS.git
synced 2026-04-15 05:02:07 +00:00
Replace the in-memory JSON-backed store with a SQLite option using modernc.org/sqlite (pure Go, no CGo). Add user authentication with bcrypt password hashing and random session tokens. SQLite store: - Schema covers nodes, exports, tokens, ordinals, users, sessions - WAL mode and foreign keys enabled - Set BETTERNAS_CONTROL_PLANE_DB_PATH to activate (falls back to memory store when empty) User auth: - POST /api/v1/auth/register, login, logout, GET /me - bcrypt (cost 10) for passwords, 32-byte hex session tokens - Sessions stored in SQLite with configurable TTL - Client endpoints accept session tokens or static client token - CORS middleware via BETTERNAS_CORS_ORIGIN env var New env vars: BETTERNAS_CONTROL_PLANE_DB_PATH, BETTERNAS_SESSION_TTL, BETTERNAS_REGISTRATION_ENABLED, BETTERNAS_CORS_ORIGIN 24 tests pass including 7 SQLite store tests and 7 auth tests. Builds clean with CGO_ENABLED=0.
40 lines
1.9 KiB
Modula-2
40 lines
1.9 KiB
Modula-2
module github.com/rathi/betternas/apps/control-plane
|
|
|
|
go 1.26.0
|
|
|
|
require (
|
|
github.com/apache/arrow-go/v18 v18.4.1 // indirect
|
|
github.com/duckdb/duckdb-go-bindings v0.1.21 // indirect
|
|
github.com/duckdb/duckdb-go-bindings/darwin-amd64 v0.1.21 // indirect
|
|
github.com/duckdb/duckdb-go-bindings/darwin-arm64 v0.1.21 // indirect
|
|
github.com/duckdb/duckdb-go-bindings/linux-amd64 v0.1.21 // indirect
|
|
github.com/duckdb/duckdb-go-bindings/linux-arm64 v0.1.21 // indirect
|
|
github.com/duckdb/duckdb-go-bindings/windows-amd64 v0.1.21 // indirect
|
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
|
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
|
|
github.com/goccy/go-json v0.10.5 // indirect
|
|
github.com/google/flatbuffers v25.2.10+incompatible // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/klauspost/compress v1.18.0 // indirect
|
|
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
|
|
github.com/marcboeker/go-duckdb/arrowmapping v0.0.21 // indirect
|
|
github.com/marcboeker/go-duckdb/mapping v0.0.21 // indirect
|
|
github.com/marcboeker/go-duckdb/v2 v2.4.3 // indirect
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
github.com/ncruces/go-strftime v1.0.0 // indirect
|
|
github.com/pierrec/lz4/v4 v4.1.22 // indirect
|
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
|
github.com/zeebo/xxh3 v1.0.2 // indirect
|
|
golang.org/x/crypto v0.49.0 // indirect
|
|
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 // indirect
|
|
golang.org/x/mod v0.33.0 // indirect
|
|
golang.org/x/sync v0.19.0 // indirect
|
|
golang.org/x/sys v0.42.0 // indirect
|
|
golang.org/x/telemetry v0.0.0-20260209163413-e7419c687ee4 // indirect
|
|
golang.org/x/tools v0.42.0 // indirect
|
|
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
|
|
modernc.org/libc v1.70.0 // indirect
|
|
modernc.org/mathutil v1.7.1 // indirect
|
|
modernc.org/memory v1.11.0 // indirect
|
|
modernc.org/sqlite v1.48.0 // indirect
|
|
)
|