577b052c05
User Profile (US-004): - Add authenticated profile endpoints (GET/PUT /users/me) - Add avatar upload with file validation (PNG/JPEG, max 2MB) - Create frontend profile page with edit form and avatar upload - Update app shell to link to profile page OAuth/Traefik Integration: - Externalize all Authentik URLs to environment variables - Add domain configuration (API_DOMAIN, WEB_DOMAIN, AUTHENTIK_DOMAIN) - Create docker-compose.traefik.yml for reverse proxy deployment - Update OAuth redirect/callback URLs to use configured domains - Add VITE_APP_URL for frontend public URL configuration Quality gates: pytest (50 passed), ruff, mypy, npm test (12 passed), typecheck, lint, build
24 lines
973 B
Markdown
24 lines
973 B
Markdown
## Why
|
|
|
|
The platform has authentication but users cannot view or edit their own profile information. Implementing profile management is essential for personalization and account management.
|
|
|
|
## What Changes
|
|
|
|
- Add authenticated user profile API endpoints (read, update, avatar upload).
|
|
- Add a frontend profile page with editable form and avatar upload.
|
|
- Validate avatar file type and size on upload.
|
|
- Store avatars locally and update the user's avatar_url.
|
|
|
|
## Capabilities
|
|
|
|
### New Capabilities
|
|
- `user-profile-management`: Users can view and edit their profile (name, email) and upload an avatar.
|
|
|
|
### Modified Capabilities
|
|
- `auth-oauth`: Extend /auth/me or add dedicated /users/me endpoint for richer profile data.
|
|
|
|
## Impact
|
|
|
|
- Backend changes in `apps/api/src/api/` (new users router) and storage for avatars.
|
|
- Frontend changes in `apps/web/src/` (new profile page, API methods, routing).
|
|
- No schema migrations required (avatar_url already exists on User model). |