2.5 KiB
2.5 KiB
Task: Backend release update foundation
Goal
Add the backend foundation for curated release update entries and per-user read state.
Feature Spec
docs/FEATURES/release-communications.md
Scope
- Add a new FastEndpoints module under
backend/src/Socialize.Api/Modules/ReleaseCommunications. - Add release update data entities and EF Core model configuration.
- Add per-user release update read receipts.
- Add enum/value support for:
- category:
Feature,Improvement,Fix,BreakingChange - importance:
Normal,Important - audience:
Everyone,OrganizationOwners,Developers - status:
Draft,Published,Archived
- category:
- Add
DbSetentries and module configuration toAppDbContext. - Add current-user API endpoints:
- list visible published release updates
- get unread visible release updates
- mark one release update as read
- mark all visible release updates as read
- Add developer API endpoints:
- list all release updates
- create draft release update
- get release update detail
- update draft release update
- publish release update
- archive release update
- Enforce access rules:
- authenticated users can read only visible published updates
- only
Developerusers can manage update entries - organization-owner audience only appears to users who own at least one organization
- developer audience only appears to
Developerusers
- Keep commit import and email digest out of this task.
Likely Files
backend/src/Socialize.Api/Data/AppDbContext.csbackend/src/Socialize.Api/Modules/ReleaseCommunications/**backend/tests/Socialize.Tests/**
Notes
- Treat release communications as global SaaS operator data, not workspace-owned workflow data.
- Use FastEndpoints handlers and keep request/response records near handlers unless local module patterns suggest otherwise.
- Use FluentValidation for non-trivial input.
- Do not expose draft entries to non-developer users.
- Do not expose commit metadata in user-facing DTOs.
Validation
dotnet build backend/Socialize.slnx
dotnet test backend/Socialize.slnx
Done When
- Developers can create draft release update entries.
- Developers can publish and archive release updates.
- Authenticated users can list visible published updates.
- Audience filtering is enforced.
- Users can mark one update read.
- Users can mark all visible updates read.
- Unread queries only count visible published updates.
- Backend tests cover access rules and read state.