29 lines
1010 B
Markdown
29 lines
1010 B
Markdown
|
|
# Upload Profile Avatar
|
||
|
|
|
||
|
|
**ID:** EU-008
|
||
|
|
**Priority:** Low
|
||
|
|
**Status:** Planned
|
||
|
|
|
||
|
|
## User Story
|
||
|
|
As an end user, I want to upload a profile picture so that my identity is visually recognizable across applications that use this identity provider.
|
||
|
|
|
||
|
|
## Acceptance Criteria
|
||
|
|
- [ ] User can upload an image from their device
|
||
|
|
- [ ] Supported formats: JPEG, PNG, GIF
|
||
|
|
- [ ] Maximum file size: 5MB
|
||
|
|
- [ ] Image is automatically resized/cropped to standard dimensions
|
||
|
|
- [ ] User can crop/adjust image before saving
|
||
|
|
- [ ] Avatar is served via CDN for fast loading
|
||
|
|
- [ ] Default avatar (initials or Gravatar) when no upload
|
||
|
|
- [ ] Avatar is available to connected applications via API
|
||
|
|
|
||
|
|
## Technical Notes
|
||
|
|
- User model needs avatar URL field
|
||
|
|
- Consider using cloud storage (S3, Cloudflare R2) for images
|
||
|
|
- Implement image processing for resize/crop (sharp library)
|
||
|
|
- Gravatar integration as fallback using email hash
|
||
|
|
- Expose avatar in JWT claims or user info endpoint
|
||
|
|
|
||
|
|
## Related TODOs
|
||
|
|
- New feature - no existing infrastructure
|