PSA/ee/docs/api-registry/projects.json
Hermes 284313f908
Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

137 lines
4.5 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"entries": [
{
"match": {
"method": "get",
"path": "/api/v1/projects"
},
"metadata": {
"playbooks": [
"projects/list-basic"
],
"examples": [
{
"name": "List active projects",
"request": {
"query": {
"is_inactive": false,
"limit": 10
}
},
"notes": "Returns the first 10 active projects ordered by creation date."
}
]
}
},
{
"match": {
"method": "get",
"path": "/api/v1/projects/{id}/task-status-mappings"
},
"metadata": {
"playbooks": [
"Call this before updating a project task when the user names a status like \"In Progress\" instead of providing a project_status_mapping_id.",
"Match against custom_name, status_name, or name, then use the returned project_status_mapping_id UUID in PUT /api/v1/projects/tasks/{taskId}."
],
"examples": [
{
"name": "List task statuses for the active project",
"request": {
"params": {
"id": "11111111-1111-1111-1111-111111111111"
}
},
"notes": "Use the returned mappings to resolve the users requested status label to a project_status_mapping_id."
}
]
}
},
{
"match": {
"method": "get",
"path": "/api/v1/projects/{id}/tasks"
},
"metadata": {
"playbooks": [
"When the user says \"this project\" and the current app context includes an active project record, use that project UUID for {id}.",
"Use this endpoint to find the target task by task_name within a known project before calling the single-task or update endpoint."
],
"examples": [
{
"name": "List tasks for the active project",
"request": {
"params": {
"id": "11111111-1111-1111-1111-111111111111"
}
},
"notes": "Use the active project UUID from app context when the user refers to \"this project\"."
}
]
}
},
{
"match": {
"method": "get",
"path": "/api/v1/projects/{id}/phases/{phaseId}/tasks"
},
"metadata": {
"playbooks": [
"Call this only when you already know both the project UUID and phase UUID.",
"Do not send placeholder strings for id or phaseId. Both path parameters must be UUIDs."
]
}
},
{
"match": {
"method": "get",
"path": "/api/v1/projects/tasks/{taskId}"
},
"metadata": {
"playbooks": [
"Use this endpoint only after you have already identified the concrete taskId UUID.",
"Do not call it with a task name or an unresolved {taskId} placeholder."
],
"examples": [
{
"name": "Fetch one project task",
"request": {
"params": {
"taskId": "22222222-2222-2222-2222-222222222222"
}
},
"notes": "The taskId path parameter must be a UUID from a prior API response or active UI context."
}
]
}
},
{
"match": {
"method": "put",
"path": "/api/v1/projects/tasks/{taskId}"
},
"metadata": {
"approvalRequired": true,
"playbooks": [
"If the user specifies a status label instead of a UUID, first call GET /api/v1/projects/{id}/task-status-mappings to resolve the correct project_status_mapping_id for that project.",
"To change task status, send project_status_mapping_id as a UUID. Do not send a plain status label like \"In Progress\" in the request body.",
"This public API does not accept project_id or phase_id in the update payload, so do not use it for moving a task to a different project or phase."
],
"examples": [
{
"name": "Update a project task status mapping",
"request": {
"params": {
"taskId": "22222222-2222-2222-2222-222222222222"
},
"body": {
"project_status_mapping_id": "33333333-3333-3333-3333-333333333333"
}
},
"notes": "Only use a concrete project_status_mapping_id UUID that you already obtained from authoritative context."
}
]
}
}
]
}