Expand description
HTTP handlers for the MagicLink feature (Story 3.2).
Two endpoints:
POST /magic-links— syndic / superadmin issues a link for a recipient.GET /c/{token}— PUBLIC: validate, consume, resolve scope. The route is intentionally outside/api/v1so the public-facing URL stays short (/c/<token>). IP-based rate-limiting is enforced by Traefik for all routes — no extra guard needed here.
Structs§
- Issue
Magic Link Request - Issue
Magic Link Response - Public
Scope Payload - consume_
magic_ link - issue_
magic_ link - respond_
magic_ link - Only
ContractorReporthas a real “respond” action today: view the ticket via the other four scopes is already implemented (GET /c/{token}), but writing back for them has no use case yet — that’s an existing gap this route doesn’t attempt to close, only to name explicitly rather than 404.