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

494 lines
12 KiB
JSON

[
{
"id": "T001",
"description": "DB-backed integration: creating a draft definition, publishing version 1, and inserting a submission succeeds with the new core tables and tenant scoping",
"implemented": true,
"featureIds": [
"F014",
"F022",
"F029",
"F030",
"F031",
"F032"
]
},
{
"id": "T002",
"description": "DB-backed integration: publishing a new version snapshots form and provider config immutably so version 1 remains unchanged after draft edits and republish",
"implemented": true,
"featureIds": [
"F023",
"F024",
"F025",
"F026",
"F028",
"F077"
]
},
{
"id": "T003",
"description": "DB-backed integration: archiving a definition preserves versions and historical submissions while removing the definition from new portal discovery",
"implemented": true,
"featureIds": [
"F020",
"F039",
"F079"
]
},
{
"id": "T004",
"description": "Registry boot: CE-only startup registers exactly the built-in ticket, basic-form, and basic-visibility providers and still loads the feature cleanly",
"implemented": true,
"featureIds": [
"F002",
"F003",
"F004",
"F007",
"F008",
"F009",
"F011",
"F013"
]
},
{
"id": "T005",
"description": "Registry boot: EE startup adds workflow, advanced form, and advanced visibility providers through the enterprise entrypoint without changing CE persistence shape",
"implemented": true,
"featureIds": [
"F005",
"F006",
"F012",
"F018",
"F019",
"F109",
"F110",
"F117"
]
},
{
"id": "T006",
"description": "Admin UI: list page supports create blank, create from template, duplicate, archive, and unarchive flows",
"implemented": true,
"featureIds": [
"F041",
"F042",
"F043",
"F044",
"F045",
"F046"
]
},
{
"id": "T007",
"description": "Admin UI: editor exposes basics, linkage, form, execution, and publish sections with current draft versus published state",
"implemented": true,
"featureIds": [
"F047",
"F048",
"F049",
"F050",
"F051"
]
},
{
"id": "T008",
"description": "Admin workflow: saving a partial draft succeeds but publishing blocks when required configuration is missing",
"implemented": true,
"featureIds": [
"F052",
"F055"
]
},
{
"id": "T009",
"description": "Templates: instantiating a starter template produces a detached editable draft rather than a live reference to the template source",
"implemented": true,
"featureIds": [
"F010",
"F057",
"F058",
"F108"
]
},
{
"id": "T010",
"description": "Linked service picker: admins can search the existing service catalog and select a linked service from the editor",
"implemented": true,
"featureIds": [
"F017",
"F048",
"F105",
"F106"
]
},
{
"id": "T011",
"description": "Publish validation: definitions with a missing linked service are rejected while definitions with no linked service at all can still publish",
"implemented": true,
"featureIds": [
"F104",
"F107"
]
},
{
"id": "T012",
"description": "Basic builder: short text, long text, checkbox, and date fields can be authored and serialized into the neutral draft schema",
"implemented": true,
"featureIds": [
"F061",
"F062",
"F064",
"F065",
"F076"
]
},
{
"id": "T013",
"description": "Basic builder: select fields preserve option lists and static defaults through preview and publish",
"implemented": true,
"featureIds": [
"F063",
"F069",
"F070",
"F076",
"F077"
]
},
{
"id": "T014",
"description": "Basic builder: add, remove, and reorder operations keep stable field keys when presentation-only properties change",
"implemented": true,
"featureIds": [
"F071",
"F072",
"F073",
"F074"
]
},
{
"id": "T015",
"description": "Publish validation: duplicate or invalid field keys are rejected before a definition can be published",
"implemented": true,
"featureIds": [
"F075",
"F055"
]
},
{
"id": "T016",
"description": "Portal layout: a first-class Request Services navigation item appears in the authenticated client portal",
"implemented": true,
"featureIds": [
"F078"
]
},
{
"id": "T017",
"description": "Portal catalog: only published definitions that pass visibility evaluation appear in the Request Services landing page and category grouping is applied when present",
"implemented": true,
"featureIds": [
"F016",
"F079",
"F080",
"F081",
"F082"
]
},
{
"id": "T018",
"description": "Portal detail: opening a service request renders the published version snapshot rather than the current mutable draft",
"implemented": true,
"featureIds": [
"F083",
"F084"
]
},
{
"id": "T019",
"description": "Portal detail: static default values are applied on first render for supported fields",
"implemented": true,
"featureIds": [
"F069",
"F085"
]
},
{
"id": "T020",
"description": "Portal submit: a request containing a required file upload persists both the submission and attachment references on success",
"implemented": true,
"featureIds": [
"F066",
"F086",
"F037",
"F038",
"F089"
]
},
{
"id": "T021",
"description": "Portal submit: required-field validation blocks submission against the published snapshot",
"implemented": true,
"featureIds": [
"F068",
"F087"
]
},
{
"id": "T022",
"description": "Authorization: direct submit to a hidden or unauthorized definition is rejected even if the user bypasses catalog listing",
"implemented": true,
"featureIds": [
"F081",
"F088",
"F096"
]
},
{
"id": "T023",
"description": "Submission flow: the system writes a durable submission before provider execution and returns a stable request id on success",
"implemented": true,
"featureIds": [
"F089",
"F090"
]
},
{
"id": "T024",
"description": "Portal history: My Requests lists only the authenticated user's client-owned submissions and request detail renders their submitted answers",
"implemented": true,
"featureIds": [
"F091",
"F092",
"F093",
"F094",
"F096"
]
},
{
"id": "T025",
"description": "Portal history: attachment references appear in request detail when the submission included uploaded files",
"implemented": true,
"featureIds": [
"F095"
]
},
{
"id": "T026",
"description": "Ticket-only provider: submitting a request creates a ticket using configured defaults and mapped request data",
"implemented": true,
"featureIds": [
"F097",
"F098",
"F099",
"F100",
"F101"
]
},
{
"id": "T027",
"description": "Ticket-only provider failure: ticket creation errors leave the submission persisted with a failure status and error summary",
"implemented": true,
"featureIds": [
"F102",
"F033"
]
},
{
"id": "T028",
"description": "Ticket-backed UX: confirmation and history surfaces show the linked ticket reference after successful ticket creation",
"implemented": true,
"featureIds": [
"F034",
"F103"
]
},
{
"id": "T029",
"description": "Catalog-link flexibility: a definition with no linked service still publishes, renders, and submits successfully through the ticket-only path",
"implemented": true,
"featureIds": [
"F104"
]
},
{
"id": "T030",
"description": "Admin submissions: MSP can list submissions for a definition and open a detail view that includes payload plus downstream references",
"implemented": true,
"featureIds": [
"F059",
"F060"
]
},
{
"id": "T031",
"description": "Workflow provider registry: EE startup makes workflow-only and ticket-plus-workflow execution modes available in the editor",
"implemented": true,
"featureIds": [
"F109",
"F110",
"F111"
]
},
{
"id": "T032",
"description": "Workflow-only provider: submitting a request starts the configured workflow and stores its execution reference on the submission",
"implemented": true,
"featureIds": [
"F111",
"F112",
"F114"
]
},
{
"id": "T033",
"description": "Ticket-plus-workflow provider: the workflow input mapping receives both submission data and the created ticket id",
"implemented": true,
"featureIds": [
"F110",
"F112",
"F113"
]
},
{
"id": "T034",
"description": "Workflow provider failure: workflow startup errors keep the submission persisted and mark execution failure",
"implemented": true,
"featureIds": [
"F115",
"F033"
]
},
{
"id": "T035",
"description": "Workflow-backed UX: request-history views expose workflow references when the selected provider creates them",
"implemented": true,
"featureIds": [
"F035",
"F116"
]
},
{
"id": "T036",
"description": "Advanced form behavior: conditional show/hide rules affect rendered fields in the portal request form",
"implemented": true,
"featureIds": [
"F117",
"F118"
]
},
{
"id": "T037",
"description": "Advanced form behavior: required validation respects conditional visibility so hidden required fields do not block submit",
"implemented": true,
"featureIds": [
"F118",
"F120"
]
},
{
"id": "T038",
"description": "Advanced defaults: requester/client/context-aware default values resolve into the portal form before submission",
"implemented": true,
"featureIds": [
"F119"
]
},
{
"id": "T039",
"description": "Advanced visibility: unauthorized client users do not see restricted definitions and cannot submit them directly",
"implemented": true,
"featureIds": [
"F004",
"F009",
"F081",
"F088"
]
},
{
"id": "T040",
"description": "Enterprise authoring: provider-specific EE config panels only render when the corresponding providers are registered",
"implemented": true,
"featureIds": [
"F006",
"F012",
"F109",
"F117"
]
},
{
"id": "T041",
"description": "CE authoring: workflow and advanced-form options are absent when EE registrations are not present",
"implemented": true,
"featureIds": [
"F013",
"F109",
"F117"
]
},
{
"id": "T042",
"description": "Client ownership: list, detail, submit, and attachment access all enforce the same authenticated client scoping rules",
"implemented": true,
"featureIds": [
"F031",
"F088",
"F091",
"F096"
]
},
{
"id": "T043",
"description": "Attachment authorization: a portal user cannot fetch or view submission attachments that belong to another client context",
"implemented": true,
"featureIds": [
"F038",
"F095",
"F096"
]
},
{
"id": "T044",
"description": "History integrity: renaming linked services or categories after submission does not corrupt historical submission rendering",
"implemented": true,
"featureIds": [
"F040"
]
},
{
"id": "T045",
"description": "Version integrity: after publishing version 2, a version 1 submission still renders according to version 1 field presentation and values",
"implemented": true,
"featureIds": [
"F024",
"F028",
"F094"
]
},
{
"id": "T046",
"description": "Republish flow: admins can create a draft from a published definition, change it, and publish version 2 without deleting version 1",
"implemented": true,
"featureIds": [
"F026",
"F028",
"F056"
]
},
{
"id": "T047",
"description": "Compatibility sanity: existing client portal ticket creation remains functional after the service-request feature is introduced",
"implemented": true,
"featureIds": [
"F100"
]
},
{
"id": "T048",
"description": "Compatibility sanity: existing appointment-request flows remain functional after the service-request feature is introduced",
"implemented": true,
"featureIds": [
"F013"
]
}
]