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
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
2.4 KiB
2.4 KiB
Mobile API Contract (Ticketing MVP)
Last updated: 2026-02-03
This document describes the REST API surface used by the React Native mobile app (ee/mobile/) for the Ticketing MVP.
Authentication (mobile)
Web sign-in + mobile OTT
- Browser login:
GET /auth/signin(SSO providers as configured) - Mobile handoff:
GET /auth/mobile/handoff?redirect={deepLink}&state={state}- Redirects to
redirectwithott+statequery params
- Redirects to
Mobile token exchange/refresh
GET /api/v1/mobile/auth/capabilitiesPOST /api/v1/mobile/auth/exchangePOST /api/v1/mobile/auth/refreshPOST /api/v1/mobile/auth/revoke
API key usage for ticket APIs
Mobile uses a short-lived API key for API v1 routes:
- Header:
x-api-key: {accessToken} - Header:
x-tenant-id: {tenantId}(recommended; required for some validation paths)
Ticketing APIs
List tickets
GET /api/v1/tickets
Query params (mobile):
- Pagination:
page,limit - Sorting:
sort,order - Search:
search - Filters:
is_open=true|falseis_closed=true|falseassigned_to={userId}has_assignment=true|falsepriority_name={string}status_name={string}updated_from={ISO datetime}updated_to={ISO datetime}
- Field selection:
fields=mobile_list(recommended for mobile list payload)
Ticket stats
GET /api/v1/tickets/stats
Returns aggregate counts (open/unassigned/overdue).
Ticket detail
GET /api/v1/tickets/{ticketId}
Returns ticket fields and additional joined fields as available.
Ticket comments
GET /api/v1/tickets/{ticketId}/comments- Supports pagination in the mobile client (client-side paging today).
POST /api/v1/tickets/{ticketId}/comments- Body:
{ comment_text: string, is_internal: boolean }
- Body:
Statuses + update
GET /api/v1/tickets/statusesPUT /api/v1/tickets/{ticketId}/status- Body:
{ status_id: string }
- Body:
Assignment
PUT /api/v1/tickets/{ticketId}/assignment
Body: { assigned_to: string | null }
Priorities
GET /api/v1/tickets/priorities- Priority update uses
PUT /api/v1/tickets/{ticketId}with{ priority_id }
Partial update (attributes)
PUT /api/v1/tickets/{ticketId}
Used by mobile for updating attributes (e.g. due date, watchers).
Time entry create
POST /api/v1/time-entries
Used by mobile to create a time entry linked to a ticket (work_item_type=ticket, work_item_id={ticketId}).