Skip to content

Feature Request: ExCheck client for node-tak #43

Description

Feature Request: ExCheck client for node-tak

Summary

Add an ExCheck sub-client to @tak-ps/node-tak wrapping the TAK Server ExCheck REST API (/Marti/api/excheck/*). No ExCheck support exists in the library today.

Motivation

CloudTAK should be able to create, read, and update ExCheck templates, checklists, and tasks to drive a dispatch/HQ KanBan workflow. Without a client, every consumer has to hand-roll XML requests against the Marti endpoints.

Scope

A new client class (e.g. api.ExCheck) alongside the existing Mission / Subscription clients, using the same cert/password auth and TAKAPI.fetch() plumbing.

Endpoints to cover:

  • Templates: POST/GET/DELETE /excheck/template[/{uid}] and template-task CRUD (.../template/{uid}/task/{taskUid})
  • Checklists: POST /excheck/{templateUid}/start, GET /excheck/checklist/active, GET /excheck/checklist/{uid}, POST /excheck/{uid}/stop, DELETE /excheck/checklist/{uid}
  • Tasks: PUT/GET/DELETE /excheck/checklist/{uid}/task/{taskUid}
  • Status + mission linking: GET /excheck/checklist/{uid}/status, PUT/DELETE /excheck/checklist/{uid}/mission/{missionName}

Requirements

  • XML request/response handling conforming to TAK Server's excheck.xsd (build + parse), exposing typed objects rather than raw XML.
  • Typed models for Checklist, ChecklistDetails, ChecklistColumn, ChecklistTask (status enum: Pending / Complete / Complete (late) / Late).
  • Support template creation from both XML and CSV payloads.

Notes / gotchas (observed in TAK Server source)

  • Template creatorUid is overwritten by callsign server-side — do not rely on round-tripped creator UID.
  • The token branch of the status endpoint is fragile; prefer the non-token path where possible.

Out of scope

KanBan / dispatch logic (lives in CloudTAK). This request is only the transport client.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions