Skip to content

v0.8.16

Choose a tag to compare

@auggiesoft auggiesoft released this 02 Mar 21:45
· 276 commits to master since this release

What's Changed

Analytics Stats Endpoints

Four new read-only GET /stats/* endpoints replace the raw SQL queries that analytics.html was running through POST /query:

  • GET /stats/call-volume — Hourly or daily call counts with avg duration
  • GET /stats/daily-overview — Daily aggregates with active talkgroup counts
  • GET /stats/category-breakdown — Calls grouped by talkgroup tag
  • GET /stats/call-heatmap — Day-of-week × hour-of-day call matrix with timezone support

All support system_id filtering. analytics.html now uses these endpoints instead of /query.

Batch Transcription Endpoint

  • GET /transcriptions/batch?call_ids=1,2,3 — Fetch primary transcription text + segments for up to 500 calls in one request. Replaces the raw SQL batch query in irc-radio-live.html.

/query Write Auth Restored

POST /query is back behind WriteAuth — no frontend pages depend on it anymore. The read token (public via /auth-init) can no longer execute arbitrary SQL.

MQTT Instance ID Rewriting

  • MQTT_INSTANCE_MAP — New config option to rewrite instance_id in MQTT payloads based on topic prefix. Fixes identity collisions when multiple TR instances share the default "trunk-recorder" instance ID.

Signal Event Support

  • Ingest and display signal events (MDC1200, FleetSync, STAR) from trunk-recorder's unit event stream.
  • New signal unit event subtype with signal_system, signal_tag, and signal_value fields.

Conventional System Fixes

  • Warmup gate releases immediately for conventional systems (no sysid to wait for)
  • Filter bogus unit_id: -1 events from conventional systems
  • Expanded system_type to support conventionalP25, conventionalDMR, conventionalSIGMF

Security

  • WriteAuth now blocks all writes when WRITE_TOKEN is unset (read-only mode)
  • Documented Caddy conditional auth header injection pattern

Full Changelog: v0.8.15...v0.8.16