Backend (Rust/Axum): - pvm-api: Axum server with health and user profile endpoints, OpenAPI/Swagger UI, CORS, tracing, graceful shutdown - pvm-auth: JWT validation middleware with JWKS cache for offline-capable Zitadel token verification - pvm-core: Shared error types with IntoResponse impl - pvm-types: Shared domain types (UserProfile) Frontend (SvelteKit): - Dashboard app with Svelte 5 + TypeScript + Tailwind CSS v4 - Zitadel OIDC auth via @auth/sveltekit (PKCE flow) - Pages: landing, sign-in, dashboard, account settings - Responsive sidebar layout with dark mode support - Typed API client for backend communication Infrastructure: - Docker Compose dev environment with Zitadel v3, PostgreSQL 16, and DragonflyDB - Environment variable examples and setup documentation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
16 lines
495 B
Text
16 lines
495 B
Text
# Zitadel OIDC Configuration
|
|
AUTH_ZITADEL_ISSUER=https://auth.pvm.example.com
|
|
AUTH_ZITADEL_CLIENT_ID=your-client-id
|
|
AUTH_ZITADEL_CLIENT_SECRET=your-client-secret
|
|
|
|
# Auth.js secret (generate with: openssl rand -base64 32)
|
|
AUTH_SECRET=your-auth-secret
|
|
|
|
# Backend API URL
|
|
PUBLIC_API_URL=http://localhost:3001
|
|
|
|
# Zitadel account management URL (for password/MFA changes)
|
|
PUBLIC_ZITADEL_ACCOUNT_URL=https://auth.pvm.example.com/ui/console
|
|
|
|
# App URL (for OIDC redirects)
|
|
ORIGIN=http://localhost:5173
|