BREAKING: Removes Node.js/Bitwarden CLI dependency entirely. ## What changed - New native HTTP client talks directly to Vaultwarden API - Bitwarden-compatible crypto in pure Go: - AES-256-CBC + HMAC-SHA256 decryption - PBKDF2-SHA256 and Argon2id key derivation - HKDF key stretching (with legacy fallback) - Auto token refresh (never expires) - Background vault sync (configurable interval, default 5min) - Docker image: ~233MB → ~15MB (pure Alpine, no Node.js) ## New env vars - VAULTWARDEN_EMAIL (replaces CLIENT_ID/CLIENT_SECRET) - SYNC_INTERVAL (default: 5m) ## Removed - internal/vaultwarden/client_cli.go (CLI interaction) - Bitwarden CLI dependency (Node.js + npm package) - VAULTWARDEN_CLIENT_ID, VAULTWARDEN_CLIENT_SECRET env vars ## Added - internal/vaultwarden/crypto.go (encryption/decryption) - internal/vaultwarden/crypto_test.go (11 unit tests) - internal/vaultwarden/api_client.go (HTTP client) ## Unchanged - External API surface (GET /secret/:name, POST /refresh, GET /health) - All security middleware (auth, IP whitelist, rate limiting)
25 lines
783 B
AMPL
25 lines
783 B
AMPL
module github.com/thijsherman/vaultwarden-api
|
|
|
|
go 1.25.3
|
|
|
|
require (
|
|
github.com/gofiber/fiber/v2 v2.52.9
|
|
github.com/google/uuid v1.6.0
|
|
golang.org/x/crypto v0.48.0
|
|
)
|
|
|
|
require (
|
|
github.com/andybalholm/brotli v1.1.0 // indirect
|
|
github.com/klauspost/compress v1.17.9 // indirect
|
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
github.com/mattn/go-runewidth v0.0.16 // indirect
|
|
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect
|
|
github.com/rivo/uniseg v0.2.0 // indirect
|
|
github.com/tinylib/msgp v1.2.5 // indirect
|
|
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
|
github.com/valyala/fasthttp v1.51.0 // indirect
|
|
github.com/valyala/tcplisten v1.0.0 // indirect
|
|
golang.org/x/sys v0.41.0 // indirect
|
|
)
|