Files
corrosion-admin-panel/backend/Cargo.toml
Vantz Stockwell 5668675b6a feat: Implement full auth pipeline — login, register, JWT, bootstrap
Backend auth flow is now functional:
- services/auth.rs: Argon2id password hashing, JWT access/refresh tokens
- services/encryption.rs: AES-256-GCM encrypt/decrypt, hex token generation
- api/auth.rs: Login, register, refresh, logout, /me endpoints
- middleware/auth.rs: JWT Bearer token extractor (FromRequestParts)
- db/users.rs + licenses.rs: Full CRUD with runtime queries (no compile-time DB)
- main.rs: Bootstrap admin user on first run via ADMIN_EMAIL/ADMIN_PASSWORD env vars
- NATS connection now optional for dev (graceful fallback)
- Added hex and http crates to Cargo.toml

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 21:49:37 -05:00

75 lines
1.6 KiB
TOML

[package]
name = "corrosion-api"
version = "0.1.0"
edition = "2021"
description = "Corrosion — Rust Server Management Platform API"
license = "Proprietary"
[dependencies]
# Web framework
axum = { version = "0.8", features = ["macros", "multipart"] }
axum-extra = { version = "0.10", features = ["typed-header"] }
tower = "0.5"
tower-http = { version = "0.6", features = ["cors", "trace", "limit", "fs"] }
hyper = { version = "1", features = ["full"] }
# Async runtime
tokio = { version = "1", features = ["full"] }
# Database
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "uuid", "chrono", "json", "migrate"] }
# Messaging
async-nats = "0.38"
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Auth
jsonwebtoken = "9"
argon2 = "0.5"
totp-rs = { version = "5", features = ["qr", "gen_secret"] }
# Encryption
aes-gcm = "0.10"
hmac = "0.12"
sha2 = "0.10"
base64 = "0.22"
rand = "0.8"
# HTTP client (panel APIs, Cloudflare, Steam, PayPal)
reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false }
# Email
lettre = { version = "0.11", features = ["tokio1-rustls-tls"] }
# Scheduling
tokio-cron-scheduler = "0.13"
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
# UUID
uuid = { version = "1", features = ["v4", "serde"] }
# Date/time
chrono = { version = "0.4", features = ["serde"] }
# Config
dotenvy = "0.15"
# Error handling
thiserror = "2"
anyhow = "1"
# Async trait support
async-trait = "0.1"
# Hex encoding
hex = "0.4"
# HTTP types
http = "1"