41 lines
1.3 KiB
Markdown
41 lines
1.3 KiB
Markdown
# Task: User ICS export feed
|
|
|
|
## Goal
|
|
|
|
Let each user subscribe to a private `.ics` feed containing their Socialize `my work` dates.
|
|
|
|
## Feature Spec
|
|
|
|
- `docs/FEATURES/calendar-integrations.md`
|
|
|
|
## Scope
|
|
|
|
- Add backend support for user export feed tokens.
|
|
- Generate private unguessable feed URLs that do not require login.
|
|
- Let users enable, revoke, and regenerate their export URL.
|
|
- Emit valid `.ics` containing only the user's `my work` dates.
|
|
- Include assigned content, approval work, owned/created content where available, approval due dates, planned publish dates, and accessible campaign dates.
|
|
- Exclude imported holiday and observance events by default.
|
|
- Avoid sensitive comments or approval discussion details in exported entries.
|
|
- Add a user settings UI for copying, revoking, and regenerating the feed URL.
|
|
- Add backend tests for feed authorization boundary, token regeneration, and event contents.
|
|
|
|
## Relevant Files
|
|
|
|
- `backend/src/Socialize.Api/Modules/CalendarIntegrations/`
|
|
- `backend/src/Socialize.Api/Modules/ContentItems/`
|
|
- `backend/src/Socialize.Api/Modules/Approvals/`
|
|
- `frontend/src/features/user-profile-settings/`
|
|
- `frontend/src/config.js`
|
|
- `backend/tests/Socialize.Tests/`
|
|
|
|
## Validation
|
|
|
|
```bash
|
|
dotnet build backend/Socialize.slnx
|
|
dotnet test backend/Socialize.slnx
|
|
cd frontend
|
|
npm run build
|
|
./scripts/update-openapi.sh
|
|
```
|