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

303 lines
8.8 KiB
JSON

[
{
"id": "F001",
"description": "Scaffold a dedicated n8n node package using valid community-node package naming and structure for npm distribution.",
"implemented": true,
"prdRefs": [
"Summary",
"Requirements",
"Rollout / Migration"
]
},
{
"id": "F002",
"description": "Configure package build metadata and scripts so compiled node + credential definitions are emitted in installable form.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"Acceptance Criteria (Definition of Done)"
]
},
{
"id": "F003",
"description": "Implement `AlgaPsaApi` credential with required fields `baseUrl` and `apiKey`.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"Security / Permissions"
]
},
{
"id": "F004",
"description": "Implement shared HTTP request helper that normalizes base URL and injects the `x-api-key` header for every call.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"Data / API / Integrations"
]
},
{
"id": "F005",
"description": "Implement single `Alga PSA` node shell with resource selector for Ticket, Client, Board, Status, and Priority.",
"implemented": true,
"prdRefs": [
"Summary",
"UX / UI Notes"
]
},
{
"id": "F006",
"description": "Implement operation routing so each resource only displays and executes its supported operations.",
"implemented": true,
"prdRefs": [
"UX / UI Notes",
"Functional Requirements"
]
},
{
"id": "F007",
"description": "Implement Ticket Create operation mapped to `POST /api/v1/tickets` with required and optional payload fields.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"Data / API / Integrations"
]
},
{
"id": "F008",
"description": "Implement Ticket Get operation mapped to `GET /api/v1/tickets/{id}`.",
"implemented": true,
"prdRefs": [
"Functional Requirements"
]
},
{
"id": "F009",
"description": "Implement Ticket List operation mapped to `GET /api/v1/tickets` with pagination and filter parameters.",
"implemented": true,
"prdRefs": [
"Functional Requirements"
]
},
{
"id": "F010",
"description": "Implement Ticket Search operation mapped to `GET /api/v1/tickets/search` with query and optional search filters.",
"implemented": true,
"prdRefs": [
"Functional Requirements"
]
},
{
"id": "F011",
"description": "Implement Ticket Update operation mapped to `PUT /api/v1/tickets/{id}` with partial update payload support.",
"implemented": true,
"prdRefs": [
"Functional Requirements"
]
},
{
"id": "F012",
"description": "Implement Ticket Update Status operation mapped to `PUT /api/v1/tickets/{id}/status`.",
"implemented": true,
"prdRefs": [
"Functional Requirements"
]
},
{
"id": "F013",
"description": "Implement Ticket Update Assignment operation mapped to `PUT /api/v1/tickets/{id}/assignment`.",
"implemented": true,
"prdRefs": [
"Functional Requirements"
]
},
{
"id": "F014",
"description": "Implement Ticket Delete operation mapped to `DELETE /api/v1/tickets/{id}`.",
"implemented": true,
"prdRefs": [
"Functional Requirements"
]
},
{
"id": "F015",
"description": "Normalize delete responses into a non-empty success object for downstream n8n nodes.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"Acceptance Criteria (Definition of Done)"
]
},
{
"id": "F016",
"description": "Normalize successful API responses so node output consistently unwraps/returns `data` and includes pagination metadata when present.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"Acceptance Criteria (Definition of Done)"
]
},
{
"id": "F017",
"description": "Map API failures (400/401/403/404/409/500) into actionable n8n errors including `error.code`, `error.message`, and `error.details`.",
"implemented": true,
"prdRefs": [
"UX / UI Notes",
"Security / Permissions"
]
},
{
"id": "F018",
"description": "Support n8n Continue On Fail behavior so item-level errors can be emitted without aborting whole workflow when configured.",
"implemented": true,
"prdRefs": [
"Functional Requirements"
]
},
{
"id": "F019",
"description": "Implement Client helper resource with List operation mapped to `GET /api/v1/clients`.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"Summary"
]
},
{
"id": "F020",
"description": "Implement Board helper resource with List operation mapped to `GET /api/v1/boards`.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"Summary"
]
},
{
"id": "F021",
"description": "Implement Status helper resource with List operation mapped to `GET /api/v1/statuses`.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"Summary"
]
},
{
"id": "F022",
"description": "Implement Priority helper resource with List operation mapped to `GET /api/v1/priorities`.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"Summary"
]
},
{
"id": "F023",
"description": "Implement dynamic load-options for `client_id`, `board_id`, `status_id`, and `priority_id` in ticket create/update.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"UX / UI Notes"
]
},
{
"id": "F024",
"description": "Implement manual UUID fallback entry path for required lookup fields when load-options cannot be resolved.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"UX / UI Notes"
]
},
{
"id": "F025",
"description": "Implement ticket form field organization so required fields are prominent and optional fields are grouped under additional options.",
"implemented": true,
"prdRefs": [
"UX / UI Notes"
]
},
{
"id": "F026",
"description": "Implement explicit operation parameter validation for required IDs and query terms before outbound API calls.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"Security / Permissions"
]
},
{
"id": "F027",
"description": "Write package README with credential setup, operation list, and usage examples for ticket CRUD and helper lookups.",
"implemented": true,
"prdRefs": [
"Users and Primary Flows",
"Acceptance Criteria (Definition of Done)"
]
},
{
"id": "F028",
"description": "Document self-hosted installation paths for npm community nodes and note unverified-node availability constraints.",
"implemented": true,
"prdRefs": [
"Rollout / Migration",
"Acceptance Criteria (Definition of Done)"
]
},
{
"id": "F029",
"description": "Provide two minimal example workflow definitions: create->update-assignment and search->update-status.",
"implemented": true,
"prdRefs": [
"Users and Primary Flows",
"Acceptance Criteria (Definition of Done)"
]
},
{
"id": "F030",
"description": "Publish initial npm package release and create release notes describing supported resources/operations and installation steps.",
"implemented": false,
"prdRefs": [
"Goals",
"Rollout / Migration",
"Acceptance Criteria (Definition of Done)"
]
},
{
"id": "F031",
"description": "Implement Ticket List Comments operation mapped to `GET /api/v1/tickets/{id}/comments` with optional `limit`, `offset`, and `order` query parameters.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"Data / API / Integrations"
]
},
{
"id": "F032",
"description": "Implement Ticket Add Comment operation mapped to `POST /api/v1/tickets/{id}/comments` with required `comment_text` and optional `is_internal`.",
"implemented": true,
"prdRefs": [
"Functional Requirements",
"Data / API / Integrations"
]
},
{
"id": "F033",
"description": "Keep ticket comment operations under the existing `Ticket` resource and omit `time_spent` from the n8n node because the current Alga PSA implementation does not persist or consume it.",
"implemented": true,
"prdRefs": [
"UX / UI Notes",
"Functional Requirements",
"Data / API / Integrations"
]
},
{
"id": "F034",
"description": "Update package documentation and examples to reflect the new ticket comment operations and their supported fields.",
"implemented": true,
"prdRefs": [
"Users and Primary Flows",
"Acceptance Criteria (Definition of Done)"
]
}
]