Files
social-media/docs/TASKS/release-communications/001-backend-release-update-foundation.md
Jonathan Bourdon b6eb348605
All checks were successful
deploy-socialize / image (push) Successful in 1m12s
deploy-socialize / deploy (push) Successful in 19s
feat: add release communications
2026-05-07 21:04:29 -04:00

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
  • Add DbSet entries and module configuration to AppDbContext.
  • 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 Developer users can manage update entries
    • organization-owner audience only appears to users who own at least one organization
    • developer audience only appears to Developer users
  • Keep commit import and email digest out of this task.

Likely Files

  • backend/src/Socialize.Api/Data/AppDbContext.cs
  • backend/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.