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

2850 lines
65 KiB
JSON

[
{
"id": "F001",
"description": "Define shared product code constants for psa and algadesk.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F002",
"description": "Expose a ProductCode TypeScript type from shared package exports.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F003",
"description": "Add tenant interface support for product_code without replacing plan.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F004",
"description": "Add a tenants.product_code migration with default psa for existing tenants.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F005",
"description": "Backfill existing tenants to product_code psa during migration.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F006",
"description": "Add database validation for allowed product_code values.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F007",
"description": "Resolve missing product_code values as psa for backward compatibility during rollout.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F008",
"description": "Fail closed for unknown non-null product_code values in product access helpers.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F009",
"description": "Implement getTenantProduct for explicit tenant IDs.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F010",
"description": "Implement getCurrentTenantProduct for session/current tenant resolution.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F011",
"description": "Implement ProductAccessError with stable status and code fields.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F012",
"description": "Implement assertProductAccess for capability checks.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F013",
"description": "Implement assertTenantProductAccess for API-key and worker contexts.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F014",
"description": "Expose a server-safe product access helper for App Router pages.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F015",
"description": "Expose a client-safe product context or hook for composition decisions.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F016",
"description": "Keep tier resolution unchanged when product_code is added.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F017",
"description": "Keep add-on resolution unchanged when product_code is added.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F018",
"description": "Document that product access, RBAC, tiers, and add-ons are independent checks.",
"implemented": true,
"prdRefs": [
"Product entitlement and resolution"
]
},
{
"id": "F019",
"description": "Create an authoritative product surface registry module.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F020",
"description": "Represent AlgaDesk capabilities in the registry.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F021",
"description": "Represent PSA capabilities in the registry.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F022",
"description": "Classify MSP route groups as allowed, upgrade-boundary, or not-found for AlgaDesk.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F023",
"description": "Classify client portal route groups as allowed, upgrade-boundary, or not-found for AlgaDesk.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F024",
"description": "Classify API groups as allowed or denied for AlgaDesk.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F025",
"description": "Classify metadata/OpenAPI visibility by product.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F026",
"description": "Provide matcher helpers for static route prefixes.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F027",
"description": "Provide matcher helpers for dynamic route patterns.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F028",
"description": "Provide helper to resolve product route behavior for a pathname.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F029",
"description": "Provide helper to resolve product API behavior for a request path.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F030",
"description": "Provide helper to filter menu sections by product.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F031",
"description": "Provide helper to filter portal navigation by product.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F032",
"description": "Default unknown route groups to denied for AlgaDesk.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F033",
"description": "Allow future desk aliases to map to the same AlgaDesk route groups.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F034",
"description": "Keep registry pure and testable without database access.",
"implemented": true,
"prdRefs": [
"Product surface registry"
]
},
{
"id": "F035",
"description": "Add optional product_code input to tenant creation utilities.",
"implemented": true,
"prdRefs": [
"Provisioning and tenant lifecycle"
]
},
{
"id": "F036",
"description": "Default tenant creation utilities to psa when product_code is omitted.",
"implemented": true,
"prdRefs": [
"Provisioning and tenant lifecycle"
]
},
{
"id": "F037",
"description": "Allow dev/test fixtures to create AlgaDesk tenants explicitly.",
"implemented": true,
"prdRefs": [
"Provisioning and tenant lifecycle"
]
},
{
"id": "F038",
"description": "Allow provisioning APIs to preserve or set product_code.",
"implemented": true,
"prdRefs": [
"Provisioning and tenant lifecycle"
]
},
{
"id": "F039",
"description": "Ensure Stripe tier mapping does not overwrite product_code.",
"implemented": true,
"prdRefs": [
"Provisioning and tenant lifecycle"
]
},
{
"id": "F040",
"description": "Ensure mobile or IAP tier transitions do not overwrite product_code.",
"implemented": true,
"prdRefs": [
"Provisioning and tenant lifecycle"
]
},
{
"id": "F041",
"description": "Expose product_code in admin/debug tenant views only where appropriate.",
"implemented": true,
"prdRefs": [
"Provisioning and tenant lifecycle"
]
},
{
"id": "F042",
"description": "Add migration rollback behavior that safely removes product_code.",
"implemented": true,
"prdRefs": [
"Provisioning and tenant lifecycle"
]
},
{
"id": "F043",
"description": "Create @alga-psa/algadesk-composition package scaffold.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F044",
"description": "Add package exports for MSP composition entrypoints.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F045",
"description": "Add package exports for client portal composition entrypoints.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F046",
"description": "Add package exports for ticket composition entrypoints.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F047",
"description": "Add package exports for client/contact composition entrypoints.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F048",
"description": "Add package exports for settings composition entrypoints.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F049",
"description": "Add package exports for KB composition entrypoints.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F050",
"description": "Restrict package dependencies to AlgaDesk-allowed domains.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F051",
"description": "Add dependency guard test that fails on billing imports.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F052",
"description": "Add dependency guard test that fails on project imports.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F053",
"description": "Add dependency guard test that fails on asset/RMM imports.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F054",
"description": "Add dependency guard test that fails on scheduling/time imports.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F055",
"description": "Add dependency guard test that fails on SLA imports.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F056",
"description": "Add dependency guard test that fails on workflow imports.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F057",
"description": "Add dependency guard test that fails on survey imports.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F058",
"description": "Add dependency guard test that fails on extension imports.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F059",
"description": "Add dependency guard test that fails on AI/chat imports.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F060",
"description": "Provide shared AlgaDesk provider stack primitives.",
"implemented": true,
"prdRefs": [
"AlgaDesk composition package"
]
},
{
"id": "F061",
"description": "Resolve tenant product in the MSP layout server component.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F062",
"description": "Render existing PSA layout for PSA tenants.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F063",
"description": "Render AlgaDesk layout for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F064",
"description": "Move SLA integration registration out of MSP layout module scope.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F065",
"description": "Register SLA integrations only for PSA composition paths.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F066",
"description": "Move schedule-entry integration registration out of MSP layout module scope.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F067",
"description": "Register schedule-entry integrations only for PSA composition paths.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F068",
"description": "Create AlgaDesk sidebar menu configuration.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F069",
"description": "Show Dashboard navigation item for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F070",
"description": "Show Tickets navigation item for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F071",
"description": "Show Clients navigation item for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F072",
"description": "Show Contacts navigation item for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F073",
"description": "Show Knowledge Base navigation item for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F074",
"description": "Show allowed Settings navigation for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F075",
"description": "Hide User Activities from AlgaDesk navigation unless explicitly allowed later.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F076",
"description": "Hide Service Requests from AlgaDesk navigation.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F077",
"description": "Hide Surveys from AlgaDesk navigation.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F078",
"description": "Hide Projects from AlgaDesk navigation.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F079",
"description": "Hide Documents module from AlgaDesk navigation except KB entry.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F080",
"description": "Hide Assets from AlgaDesk navigation.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F081",
"description": "Hide Time Management from AlgaDesk navigation.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F082",
"description": "Hide Billing from AlgaDesk navigation.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F083",
"description": "Hide Schedule and Technician Dispatch from AlgaDesk navigation.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F084",
"description": "Hide Workflows from AlgaDesk navigation.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F085",
"description": "Hide System Monitoring product links from AlgaDesk navigation except email channel health surfaces.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F086",
"description": "Hide Extensions from AlgaDesk navigation.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F087",
"description": "Keep PSA sidebar behavior unchanged for PSA tenants.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F088",
"description": "Use AlgaDesk branding labels in MSP shell where product name appears.",
"implemented": true,
"prdRefs": [
"MSP shell and navigation"
]
},
{
"id": "F089",
"description": "Create AlgaDesk dashboard page composition.",
"implemented": true,
"prdRefs": [
"AlgaDesk dashboard"
]
},
{
"id": "F090",
"description": "Show open ticket count on AlgaDesk dashboard.",
"implemented": true,
"prdRefs": [
"AlgaDesk dashboard"
]
},
{
"id": "F091",
"description": "Show ticket aging summary on AlgaDesk dashboard.",
"implemented": true,
"prdRefs": [
"AlgaDesk dashboard"
]
},
{
"id": "F092",
"description": "Show awaiting customer ticket summary on AlgaDesk dashboard.",
"implemented": true,
"prdRefs": [
"AlgaDesk dashboard"
]
},
{
"id": "F093",
"description": "Show awaiting internal ticket summary on AlgaDesk dashboard.",
"implemented": true,
"prdRefs": [
"AlgaDesk dashboard"
]
},
{
"id": "F094",
"description": "Show recently updated tickets on AlgaDesk dashboard.",
"implemented": true,
"prdRefs": [
"AlgaDesk dashboard"
]
},
{
"id": "F095",
"description": "Show email channel health summary on AlgaDesk dashboard.",
"implemented": true,
"prdRefs": [
"AlgaDesk dashboard"
]
},
{
"id": "F096",
"description": "Link dashboard ticket cards only to AlgaDesk-allowed ticket routes.",
"implemented": true,
"prdRefs": [
"AlgaDesk dashboard"
]
},
{
"id": "F097",
"description": "Exclude billing widgets from AlgaDesk dashboard.",
"implemented": true,
"prdRefs": [
"AlgaDesk dashboard"
]
},
{
"id": "F098",
"description": "Exclude project widgets from AlgaDesk dashboard.",
"implemented": true,
"prdRefs": [
"AlgaDesk dashboard"
]
},
{
"id": "F099",
"description": "Exclude asset widgets from AlgaDesk dashboard.",
"implemented": true,
"prdRefs": [
"AlgaDesk dashboard"
]
},
{
"id": "F100",
"description": "Exclude time/scheduling widgets from AlgaDesk dashboard.",
"implemented": true,
"prdRefs": [
"AlgaDesk dashboard"
]
},
{
"id": "F101",
"description": "Exclude workflow widgets from AlgaDesk dashboard.",
"implemented": true,
"prdRefs": [
"AlgaDesk dashboard"
]
},
{
"id": "F102",
"description": "Exclude AI/chat widgets from AlgaDesk dashboard.",
"implemented": true,
"prdRefs": [
"AlgaDesk dashboard"
]
},
{
"id": "F103",
"description": "Create AlgaDesk settings page composition.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F104",
"description": "Expose General settings tab for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F105",
"description": "Expose Users settings tab for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F106",
"description": "Expose Teams settings tab for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F107",
"description": "Expose Ticketing settings tab for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F108",
"description": "Expose Email Channels settings tab for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F109",
"description": "Expose Client Portal settings tab for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F110",
"description": "Expose Knowledge Base settings tab for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F111",
"description": "Expose Profile or route users to profile settings as appropriate.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F112",
"description": "Expose Security settings as appropriate for MSP users.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F113",
"description": "Hide Language tab only if it is not part of AlgaDesk launch scope.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F114",
"description": "Hide SLA settings for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F115",
"description": "Hide Projects settings for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F116",
"description": "Hide Interactions settings if support interactions are excluded.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F117",
"description": "Hide Time Entry settings for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F118",
"description": "Hide Billing settings for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F119",
"description": "Hide broad Notifications settings if only ticket/email settings are included.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F120",
"description": "Hide broad Integrations settings except focused email channel entry.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F121",
"description": "Hide Extensions settings for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F122",
"description": "Hide Experimental Features settings for AlgaDesk tenants unless explicitly retained.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F123",
"description": "Reject excluded settings tabs on direct URL access.",
"implemented": true,
"prdRefs": [
"AlgaDesk settings"
]
},
{
"id": "F124",
"description": "Render AlgaDesk ticket list for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F125",
"description": "Keep existing PSA ticket list for PSA tenants.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F126",
"description": "Preserve board filtering in AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F127",
"description": "Preserve status filtering in AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F128",
"description": "Preserve priority filtering in AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F129",
"description": "Preserve category filtering in AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F130",
"description": "Preserve client filtering in AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F131",
"description": "Preserve search filtering in AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F132",
"description": "Preserve tag filtering in AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F133",
"description": "Preserve assignee filtering in AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F134",
"description": "Preserve team filtering in AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F135",
"description": "Preserve unassigned filtering in AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F136",
"description": "Preserve due date filtering in AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F137",
"description": "Preserve response state filtering in AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F138",
"description": "Remove SLA status filtering from AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F139",
"description": "Preserve ticket sorting in AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F140",
"description": "Preserve ticket pagination in AlgaDesk ticket list.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F141",
"description": "Preserve bulk move behavior only for allowed board/status/category operations.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F142",
"description": "Ensure ticket list links resolve to AlgaDesk ticket detail composition.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F143",
"description": "Ensure quick-add ticket opens an AlgaDesk-safe ticket form.",
"implemented": true,
"prdRefs": [
"Ticket list composition"
]
},
{
"id": "F144",
"description": "Render AlgaDesk ticket detail for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F145",
"description": "Keep existing PSA ticket detail for PSA tenants.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F146",
"description": "Show ticket title and core metadata in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F147",
"description": "Show board in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F148",
"description": "Show status in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F149",
"description": "Show priority in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F150",
"description": "Show category in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F151",
"description": "Show assigned user and team controls in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F152",
"description": "Show client and contact context in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F153",
"description": "Show tags in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F154",
"description": "Show response state controls in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F155",
"description": "Show ticket origin badge in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F156",
"description": "Show conversation/comments in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F157",
"description": "Support internal comments in AlgaDesk ticket detail for MSP users.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F158",
"description": "Support public replies in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F159",
"description": "Support comment reactions if already core ticket behavior.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F160",
"description": "Support rich-text ticket descriptions in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F161",
"description": "Support rich-text comments in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F162",
"description": "Support ticket attachments in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F163",
"description": "Support clipboard image attachment uploads in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F164",
"description": "Show email conversation or delivery context in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F165",
"description": "Omit SLA summary card from AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F166",
"description": "Omit SLA breach/escalation controls from AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F167",
"description": "Omit project task creation from AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F168",
"description": "Omit project task linking from AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F169",
"description": "Omit linked project task badge from AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F170",
"description": "Omit interval/time management from AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F171",
"description": "Omit time entry controls from AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F172",
"description": "Omit asset association panels from AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F173",
"description": "Omit survey summary card from AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F174",
"description": "Omit AI assistant controls from AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F175",
"description": "Keep permission checks for ticket update actions in AlgaDesk ticket detail.",
"implemented": true,
"prdRefs": [
"Ticket detail composition"
]
},
{
"id": "F176",
"description": "Create AlgaDesk-safe quick-add ticket composition.",
"implemented": true,
"prdRefs": [
"Ticket forms and reference data"
]
},
{
"id": "F177",
"description": "Allow client selection in AlgaDesk ticket create form.",
"implemented": true,
"prdRefs": [
"Ticket forms and reference data"
]
},
{
"id": "F178",
"description": "Allow contact selection in AlgaDesk ticket create form.",
"implemented": true,
"prdRefs": [
"Ticket forms and reference data"
]
},
{
"id": "F179",
"description": "Allow board selection in AlgaDesk ticket create form.",
"implemented": true,
"prdRefs": [
"Ticket forms and reference data"
]
},
{
"id": "F180",
"description": "Allow status defaults in AlgaDesk ticket create form.",
"implemented": true,
"prdRefs": [
"Ticket forms and reference data"
]
},
{
"id": "F181",
"description": "Allow priority selection in AlgaDesk ticket create form.",
"implemented": true,
"prdRefs": [
"Ticket forms and reference data"
]
},
{
"id": "F182",
"description": "Allow category selection in AlgaDesk ticket create form.",
"implemented": true,
"prdRefs": [
"Ticket forms and reference data"
]
},
{
"id": "F183",
"description": "Allow team assignment in AlgaDesk ticket create form.",
"implemented": true,
"prdRefs": [
"Ticket forms and reference data"
]
},
{
"id": "F184",
"description": "Allow user assignment in AlgaDesk ticket create form.",
"implemented": true,
"prdRefs": [
"Ticket forms and reference data"
]
},
{
"id": "F185",
"description": "Allow attachments in AlgaDesk ticket create form.",
"implemented": true,
"prdRefs": [
"Ticket forms and reference data"
]
},
{
"id": "F186",
"description": "Disallow asset prefill banners in AlgaDesk ticket create form.",
"implemented": true,
"prdRefs": [
"Ticket forms and reference data"
]
},
{
"id": "F187",
"description": "Disallow project/task fields in AlgaDesk ticket create form.",
"implemented": true,
"prdRefs": [
"Ticket forms and reference data"
]
},
{
"id": "F188",
"description": "Disallow time-entry defaults in AlgaDesk ticket create form.",
"implemented": true,
"prdRefs": [
"Ticket forms and reference data"
]
},
{
"id": "F189",
"description": "Keep board/status/priority/category management accessible through allowed ticket settings.",
"implemented": true,
"prdRefs": [
"Ticket forms and reference data"
]
},
{
"id": "F190",
"description": "Render AlgaDesk clients list for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F191",
"description": "Render AlgaDesk client detail for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F192",
"description": "Render AlgaDesk contacts list for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F193",
"description": "Render AlgaDesk contact detail for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F194",
"description": "Allow client create/edit/delete according to RBAC.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F195",
"description": "Allow contact create/edit/delete according to RBAC.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F196",
"description": "Allow client location management according to RBAC.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F197",
"description": "Allow contact phone number management according to RBAC.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F198",
"description": "Allow contact additional email address management according to RBAC.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F199",
"description": "Show client tickets on AlgaDesk client detail.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F200",
"description": "Show contact tickets on AlgaDesk contact detail.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F201",
"description": "Show support-relevant client/contact notes if retained for v1.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F202",
"description": "Hide contract authoring on AlgaDesk client detail.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F203",
"description": "Hide contract line management on AlgaDesk client detail.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F204",
"description": "Hide billing configuration on AlgaDesk client detail.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F205",
"description": "Hide tax settings on AlgaDesk client detail.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F206",
"description": "Hide service catalog links from AlgaDesk client detail.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F207",
"description": "Hide client assets from AlgaDesk client detail.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F208",
"description": "Hide client projects from AlgaDesk client detail.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F209",
"description": "Hide client document library from AlgaDesk client detail.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F210",
"description": "Hide client survey summaries from AlgaDesk client detail.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F211",
"description": "Use AlgaDesk-safe client cross-feature provider callbacks.",
"implemented": true,
"prdRefs": [
"Clients and contacts"
]
},
{
"id": "F212",
"description": "Render AlgaDesk knowledge base page for MSP users.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F213",
"description": "Render AlgaDesk knowledge base page for portal users.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F214",
"description": "Allow KB article listing for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F215",
"description": "Allow KB article viewing for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F216",
"description": "Allow KB article create/edit according to RBAC.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F217",
"description": "Allow KB article publish/unpublish according to RBAC.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F218",
"description": "Prevent AlgaDesk KB pages from linking to full document management.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F219",
"description": "Provide ticket-attachment upload provider for AlgaDesk ticket components.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F220",
"description": "Provide ticket-attachment delete provider for AlgaDesk ticket components.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F221",
"description": "Provide ticket-attachment download/view provider for AlgaDesk ticket components.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F222",
"description": "Prevent AlgaDesk attachment components from exposing folder selection.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F223",
"description": "Prevent AlgaDesk attachment components from exposing broad document sharing.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F224",
"description": "Prevent AlgaDesk attachment components from exposing project/client document surfaces.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F225",
"description": "Keep rich-text image uploads tied to ticket/comment context.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F226",
"description": "Keep attachment authorization scoped to ticket visibility.",
"implemented": true,
"prdRefs": [
"Knowledge base and attachments"
]
},
{
"id": "F227",
"description": "Resolve tenant product in client portal layout.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F228",
"description": "Render existing PSA portal layout for PSA tenants.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F229",
"description": "Render AlgaDesk portal layout for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F230",
"description": "Create AlgaDesk portal sidebar.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F231",
"description": "Show portal Dashboard link for AlgaDesk contacts.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F232",
"description": "Show portal Tickets link for AlgaDesk contacts.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F233",
"description": "Show portal Knowledge Base link for AlgaDesk contacts.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F234",
"description": "Show portal Profile link for AlgaDesk contacts.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F235",
"description": "Show portal Client Settings link where permitted.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F236",
"description": "Hide portal Billing link for AlgaDesk contacts.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F237",
"description": "Hide portal Projects link for AlgaDesk contacts.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F238",
"description": "Hide portal Devices/assets link for AlgaDesk contacts.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F239",
"description": "Hide portal Documents link for AlgaDesk contacts.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F240",
"description": "Hide portal Appointments link for AlgaDesk contacts.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F241",
"description": "Hide portal Service Requests link for AlgaDesk contacts.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F242",
"description": "Hide portal Extensions link for AlgaDesk contacts.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F243",
"description": "Keep portal authentication behavior unchanged.",
"implemented": true,
"prdRefs": [
"Client portal shell"
]
},
{
"id": "F244",
"description": "Render AlgaDesk portal dashboard for portal contacts.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F245",
"description": "Render AlgaDesk portal ticket list.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F246",
"description": "Render AlgaDesk portal ticket detail.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F247",
"description": "Render free-form portal ticket creation form.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F248",
"description": "Allow portal contacts to submit subject/title.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F249",
"description": "Allow portal contacts to submit description.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F250",
"description": "Allow portal contacts to add attachments.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F251",
"description": "Allow portal contacts to pick allowed board/category fields only if exposed by existing portal rules.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F252",
"description": "Prevent portal contacts from submitting service request definition forms.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F253",
"description": "Show portal ticket status.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F254",
"description": "Show portal ticket public conversation.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F255",
"description": "Hide internal comments from portal contacts.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F256",
"description": "Allow portal contacts to reply to tickets.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F257",
"description": "Preserve existing board visibility group enforcement.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F258",
"description": "Preserve portal ticket detail authorization.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F259",
"description": "Preserve portal ticket dashboard filtering by visible boards.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F260",
"description": "Prevent portal ticket pages from linking to billing or project pages.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F261",
"description": "Keep PSA portal ticket behavior unchanged for PSA tenants.",
"implemented": true,
"prdRefs": [
"Client portal ticketing"
]
},
{
"id": "F262",
"description": "Render focused Email Channels settings for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F263",
"description": "Allow inbound support mailbox/channel configuration.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F264",
"description": "Allow outbound ticket email identity configuration required for replies.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F265",
"description": "Allow mapping inbound channel to default board.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F266",
"description": "Allow mapping inbound channel to default category.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F267",
"description": "Allow mapping inbound channel to default priority.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F268",
"description": "Allow inbound channel enable/disable.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F269",
"description": "Show mailbox connection health.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F270",
"description": "Show webhook or polling health where available.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F271",
"description": "Show outbound delivery failure state where available.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F272",
"description": "Create a ticket from a new inbound email message.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F273",
"description": "Assign inbound email-created ticket to mapped board.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F274",
"description": "Assign inbound email-created ticket to mapped category when configured.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F275",
"description": "Assign inbound email-created ticket to mapped priority when configured.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F276",
"description": "Resolve inbound sender to an existing contact when possible.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F277",
"description": "Create or handle unknown inbound senders according to existing support rules.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F278",
"description": "Add a public ticket comment from an inbound reply.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F279",
"description": "Preserve email thread identifiers for dedupe.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F280",
"description": "Prevent duplicate tickets/comments from repeated email events.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F281",
"description": "Send outbound notification when MSP replies publicly if notifications are enabled.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F282",
"description": "Show email thread or delivery context on ticket detail.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F283",
"description": "Product-gate inbound webhook handlers for AlgaDesk and PSA appropriately.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F284",
"description": "Product-gate IMAP polling paths for AlgaDesk and PSA appropriately.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F285",
"description": "Product-gate email OAuth/config routes for allowed email channel use.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F286",
"description": "Hide broad integrations settings unrelated to email channels.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F287",
"description": "Hide workflow-driven email automation surfaces for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F288",
"description": "Hide survey/billing/project email template surfaces for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"Email-to-ticket"
]
},
{
"id": "F289",
"description": "Create a reusable branded product-denied or upgrade boundary component.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F290",
"description": "Use registry-backed boundary helpers in MSP pages.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F291",
"description": "Use registry-backed boundary helpers in portal pages.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F292",
"description": "Show upgrade boundary for AlgaDesk direct hits to /msp/billing.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F293",
"description": "Show upgrade boundary for AlgaDesk direct hits to /msp/projects.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F294",
"description": "Show upgrade boundary for AlgaDesk direct hits to /msp/assets.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F295",
"description": "Show upgrade boundary for AlgaDesk direct hits to /msp/schedule.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F296",
"description": "Show upgrade boundary for AlgaDesk direct hits to /msp/technician-dispatch.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F297",
"description": "Show upgrade boundary for AlgaDesk direct hits to /msp/time-entry.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F298",
"description": "Show upgrade boundary for AlgaDesk direct hits to /msp/time-sheet-approvals.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F299",
"description": "Show upgrade boundary for AlgaDesk direct hits to /msp/workflow-editor.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F300",
"description": "Show upgrade boundary for AlgaDesk direct hits to /msp/workflow-control.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F301",
"description": "Show upgrade boundary for AlgaDesk direct hits to /msp/surveys.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F302",
"description": "Show upgrade boundary for AlgaDesk direct hits to /msp/extensions.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F303",
"description": "Show upgrade boundary for AlgaDesk direct hits to /msp/reports.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F304",
"description": "Show upgrade boundary for AlgaDesk direct hits to /msp/service-requests.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F305",
"description": "Return not-found/product-denied for AlgaDesk direct hits to internal/test routes.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F306",
"description": "Show portal upgrade/not-found boundary for excluded portal billing/projects/devices/documents/appointments/service-request routes.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F307",
"description": "Keep PSA direct route behavior unchanged.",
"implemented": true,
"prdRefs": [
"Browser route boundaries"
]
},
{
"id": "F308",
"description": "Add product access check to ApiBaseController after tenant resolution.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F309",
"description": "Return structured product-denied response for denied AlgaDesk API groups.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F310",
"description": "Allow AlgaDesk API access to ticket CRUD routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F311",
"description": "Allow AlgaDesk API access to ticket comment routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F312",
"description": "Allow AlgaDesk API access to ticket assignment routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F313",
"description": "Allow AlgaDesk API access to ticket attachment/document routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F314",
"description": "Allow AlgaDesk API access to boards routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F315",
"description": "Allow AlgaDesk API access to statuses routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F316",
"description": "Allow AlgaDesk API access to priorities routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F317",
"description": "Allow AlgaDesk API access to ticket categories routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F318",
"description": "Allow AlgaDesk API access to clients routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F319",
"description": "Allow AlgaDesk API access to contacts routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F320",
"description": "Allow AlgaDesk API access to users/teams/roles/permissions needed for admin and assignment.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F321",
"description": "Allow AlgaDesk API access to tags routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F322",
"description": "Allow AlgaDesk API access to KB article routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F323",
"description": "Allow AlgaDesk API access to email-to-ticket configuration and webhook paths.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F324",
"description": "Deny AlgaDesk API access to billing analytics, financial, invoices, quotes, contracts, contract lines, services, service types, products, and accounting exports.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F325",
"description": "Deny AlgaDesk API access to projects routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F326",
"description": "Deny AlgaDesk API access to assets and RMM routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F327",
"description": "Deny AlgaDesk API access to schedules, time entries, time sheets, and time periods.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F328",
"description": "Deny AlgaDesk API access to automation/workflow/webhook routes outside allowed email.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F329",
"description": "Deny AlgaDesk API access to extensions routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F330",
"description": "Deny AlgaDesk API access to AI/chat routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F331",
"description": "Deny AlgaDesk API access to surveys routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F332",
"description": "Deny AlgaDesk API access to full document-management routes.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F333",
"description": "Filter API endpoint metadata for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F334",
"description": "Filter OpenAPI output for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F335",
"description": "Filter API docs output for AlgaDesk tenants.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F336",
"description": "Keep PSA API behavior unchanged for PSA tenants.",
"implemented": true,
"prdRefs": [
"API and metadata boundaries"
]
},
{
"id": "F337",
"description": "Add product assertions to representative billing server actions.",
"implemented": true,
"prdRefs": [
"Server action boundaries"
]
},
{
"id": "F338",
"description": "Add product assertions to representative project server actions.",
"implemented": true,
"prdRefs": [
"Server action boundaries"
]
},
{
"id": "F339",
"description": "Add product assertions to representative scheduling/time server actions.",
"implemented": true,
"prdRefs": [
"Server action boundaries"
]
},
{
"id": "F340",
"description": "Add product assertions to representative asset/RMM server actions.",
"implemented": true,
"prdRefs": [
"Server action boundaries"
]
},
{
"id": "F341",
"description": "Add product assertions to representative workflow server actions.",
"implemented": true,
"prdRefs": [
"Server action boundaries"
]
},
{
"id": "F342",
"description": "Add product assertions to representative survey server actions.",
"implemented": true,
"prdRefs": [
"Server action boundaries"
]
},
{
"id": "F343",
"description": "Add product assertions to representative extension server actions.",
"implemented": true,
"prdRefs": [
"Server action boundaries"
]
},
{
"id": "F344",
"description": "Add product assertions to representative AI/chat server actions.",
"implemented": true,
"prdRefs": [
"Server action boundaries"
]
},
{
"id": "F345",
"description": "Add product assertions to full document-management server actions that are not ticket attachment or KB safe.",
"implemented": true,
"prdRefs": [
"Server action boundaries"
]
},
{
"id": "F346",
"description": "Avoid importing denied server action modules from AlgaDesk composition.",
"implemented": true,
"prdRefs": [
"Server action boundaries"
]
},
{
"id": "F347",
"description": "Use structured ProductAccessError for denied server actions.",
"implemented": true,
"prdRefs": [
"Server action boundaries"
]
},
{
"id": "F348",
"description": "Keep PSA server action behavior unchanged.",
"implemented": true,
"prdRefs": [
"Server action boundaries"
]
},
{
"id": "F349",
"description": "Preserve existing PSA dashboard for PSA tenants.",
"implemented": true,
"prdRefs": [
"PSA preservation and future aliases"
]
},
{
"id": "F350",
"description": "Preserve existing PSA settings for PSA tenants.",
"implemented": true,
"prdRefs": [
"PSA preservation and future aliases"
]
},
{
"id": "F351",
"description": "Preserve existing PSA ticket composition for PSA tenants.",
"implemented": true,
"prdRefs": [
"PSA preservation and future aliases"
]
},
{
"id": "F352",
"description": "Preserve existing PSA client/contact composition for PSA tenants.",
"implemented": true,
"prdRefs": [
"PSA preservation and future aliases"
]
},
{
"id": "F353",
"description": "Preserve existing PSA portal composition for PSA tenants.",
"implemented": true,
"prdRefs": [
"PSA preservation and future aliases"
]
},
{
"id": "F354",
"description": "Preserve existing PSA API metadata for PSA tenants.",
"implemented": true,
"prdRefs": [
"PSA preservation and future aliases"
]
},
{
"id": "F355",
"description": "Keep route registry capable of mapping future /desk aliases.",
"implemented": true,
"prdRefs": [
"PSA preservation and future aliases"
]
},
{
"id": "F356",
"description": "Do not require /desk aliases for initial AlgaDesk launch.",
"implemented": true,
"prdRefs": [
"PSA preservation and future aliases"
]
}
]