Where: Admin → Add-ons
The list of integrations, each showing whether it is ACTIVE or
INACTIVE, its direction (inbound, outbound or bidirectional) and a
description. SHOW opens it.
Two things are editable: Status (on/off) and the API Key. The key is
write-only — the screen only knows whether one exists, so leaving it blank keeps
the current key.
Joya ships exactly two add-ons; there is no install flow for others.
| Add-on | Turning it off |
|---|---|
| CAO | Stops the CAO watcher, retry job and send consumer |
| Skyputer | Makes every inbound flight-plan push rejected — the key here is what authenticates it |
Turning a status on without a key is refused.
Where: Admin → CAO settings
A status chip (Active / Disabled / Missing API key), counters for Sent,
Retrying, Failed and Skipped, and tabs General, Diagnose,
Skipped, History, Manual and Stream. Only General is
editable; the rest are operational views.
General covers the endpoint (CAO URL, whether to reject invalid TLS, request
timeout), the delivery pipeline (realtime on/off, send on every update,
debounce, maximum retries, retry backoff), the SITA telegrams to emit (MVT
departure, arrival and delay, LDM, CNL), cancel defaults and JSON payload
extras.
Retry backoff is a comma-separated list and silently discards anything it
cannot read —60,,abcis stored as just60. Check the field after saving.
The form loads once and does not re-sync. Refresh updates the counters
but not the fields, so if someone else changed a setting you will not see it
until you reload the page.
Manual send and bulk resend with Force clear the duplicate guard and can
re-send the same flights to CAO. Force is refused unless you have narrowed the
selection first — respect that.
Where: Admin → Skyputer
Sync history only — there is nothing to configure here. Whether Skyputer is
enabled and its API key live in Add-ons.
Filter by status (All / Matched / Unmatched / Parse failed / Ingested) or by
flight number. Rematch re-runs matching over unmatched records from the last
seven days; Reload refreshes the list.
Columns: Status, Received, FLN, REG, DTE, ETD,
Matched flight, IP, Key, Size. Opening a record includes a
Why isn't this matched? explanation — start there when an OFP has not landed
on a flight.
Identical duplicate OFPs are collapsed by flight number and date; an amended OFP
creates a new record.
Where: Admin → Template library · Permission:
reportTemplatePresetView / …Edit
Titled Document Templates, split into System presets (read-only —
duplicate one to customise it) and My presets. Each has a name,
description, module, scope, format, tags and visibility (private or public).
Module cannot be changed after creation.
Only the metadata is edited here; the template's actual content is edited
from the report it belongs to — see
Report wizard.
The Module dropdown currently offers only Report Wizard, so that field
and its filter have no practical effect yet.
| Symptom | Cause | Fix |
|---|---|---|
| CAO shows Missing API key | No key set | Add-ons → CAO → API Key |
| Flight plans stopped arriving | Skyputer add-on off, or key changed | Check Add-ons |
| An OFP did not attach to a flight | Matching failed | Open the record → Why isn't this matched? |
| Retry backoff lost values | Invalid entries are dropped | Re-enter as plain comma-separated numbers |
| CAO received duplicates | A forced resend cleared the duplicate guard | Use Force only with a narrow filter |