Add backend API for projects & snapshots

Introduce full backend API surface for projects, snapshots and user pubkeys: controllers, DTOs, JPA entities, repositories, services, and tests. Add SecurityConfig improvements (JWT decoder, audience/issuer/timestamp validation and CORS), a GlobalExceptionHandler for consistent error responses, and remove a stray test call from BackendApplication. Also update README (architecture, docs, CLI/Frontend/Backend notes), add CLAUDE.md, VSCode settings, and multiple frontend/CLI Rust changes. Small housekeeping: add .DS_Store and test adjustments.
This commit is contained in:
Aryan Singh committed 2026-03-14 18:30:10 -05:00
1 parent 3d72c53262
commit 473e8e01fa
57 files changed
+3888 -281

No files matched your search

+26
View File
@@ -0,0 +1,26 @@
use anyhow::Result;
use crate::config::Config;
pub fn run() -> Result<()> {
let mut config = Config::load()?;
if config.auth.is_none() {
println!("Not currently logged in.");
return Ok(());
}
let email = config
.auth
.as_ref()
.map(|a| a.user_email.as_str())
.unwrap_or("unknown")
.to_string();
config.auth = None;
// Keep the keypair — user can re-authenticate without re-generating keys.
config.save()?;
println!("Logged out ({email}).");
Ok(())
}