Read a CROSS-PROJECT cycle's List and Board task models (PT-828 — the initiative arm of the PT-730 board)
GET/api/initiatives/:id/cycles/:cycleId/tasks
Read a CROSS-PROJECT cycle's List and Board task models (PT-828 — the initiative arm of the PT-730 board). Same response shape as the project arm, with three cross-project properties. (1) Members span projects: each readable row carries its OWN projectId, a projectLabel, and server-resolved status presentation (statusLabel / statusColor / statusCategory) taken from THAT project's catalog — the status catalog itself is never returned, so a client cannot join by status name across projects. (2) List groups are keyed by the resolved status PRESENTATION, in a TOTAL order: statuses that render identically merge across projects into ONE group (each row names its own project, which is what keeps a merged group unambiguous), while statuses that render differently stay separate. (3) A member in a project the caller cannot read is REDACTED to the PT-283 sentinels ({id, title, status, isCrossProject: true}) and placed in one neutral "Restricted" group carrying no status, lane, project, assignee or navigable target — lane placement itself would otherwise disclose status. Classification and every aggregate run BEFORE redaction, so stats and the burndown are VIEWER-INDEPENDENT: two callers with different readable sets see byte-identical totals. restrictedCount is the only redaction-derived figure disclosed, and it is a count.
Access: envelope access to the initiative plus FULL-scope initiatives.read AND FULL-scope tasks.read, both evaluated against the initiative's own org. A .own-only grant of either is rejected — this route enumerates other people's tasks across projects. Every denial returns the byte-identical uniform 403.
Request
Responses
- 200
- 401
- 403
- 404
Successful response
Unauthorized — authentication credentials are missing or invalid
Forbidden — the initiative is inaccessible or unknown, its id is malformed, the caller lacks full initiatives.read or full tasks.read, or the x-act-as-org selector named a non-member org. All collapse to 403 (no existence oracle).
Cycle not found, archived, project-scoped, or belonging to a sibling initiative