Skip to main content

Initiatives

Initiative CRUD and delegation

📄️PT-514 project-org-scoped Initiative picker options for the task-detail Initiative field (PT-493)

PT-514 project-org-scoped Initiative picker options for the task-detail Initiative field (PT-493). Returns the initiatives in the PROJECT’S org — the org the task PATCH validates `initiativeId` picks against (`validateInitiativeMembership`) — rather than the caller’s active org, so the picker offers a valid option set on a cross-org project detail (INF-143 multi-org). The initiative-picker analogue of `/api/projects/{id}/epic-options`. Requires project read access plus full-scope `initiatives.read` evaluated against the project’s org. GUEST members of that org see only initiatives containing projects they collaborate on (plus initiatives they are delegated on). Options are the minimal `{ id, name }` picker shape, sorted by name.

📄️PT-447: list the work items tagged to this initiative across projects — its epics (issueType=EPIC carrying the initiativeId) plus the base-level work items grouped under them

PT-447: list the work items tagged to this initiative across projects — its epics (issueType=EPIC carrying the initiativeId) plus the base-level work items grouped under them. Envelope access is gated by verifyInitiativeAccess (creator, active delegate, collaborator on a spanned project, or org member); both not-found and forbidden return 403 to avoid an existence oracle. Member rows in projects the caller cannot read are redacted to an opaque id + the PT-283 sentinels with isCrossProject=true (taskKey/projectId/issueType/progress dropped, title/status sentinelled), so the response is non-oracular. Only a full org-wide projects.read holder sees every member un-redacted.