Skip to content

tams-flow-visualiser — Timeline UI

The window into what’s recorded: browse sources and flows, and see an interactive timeline of every segment — with the gaps between them called out, so missing coverage is obvious at a glance.

  • Language: Python (FastAPI) backend + HTMX / Plotly.js frontend · Default port: 8000
  • Source browser — lists all sources.
  • Flow browser — expand a source to its flows (label, format, codec, resolution).
  • Segment timeline — a Plotly.js chart: blue bars = segments, red bars = discontinuities, with a zoom range slider.
  • Gap table — every discontinuity, with timestamps and duration.
VarReqDefaultMeaning
TAMS_API_URLhttp://localhost:8080TAMS server URL
TAMS_USERNAME / TAMS_PASSWORDKeycloak credentials
TAMS_TOKEN_URLderivedKeycloak token endpoint
TAMS_CLIENT_ID / TAMS_CLIENT_SECRETtams-api / tams-api-secretKeycloak client

./phrame-make.sh <TAG> build-image, or locally with a venv + uvicorn app.main:app. app/ layout: main.py (FastAPI + Keycloak auth), tams_client.py (async httpx client), routes/ (HTML + JSON), Jinja2 templates, static/segments.js (Plotly interaction). Frontend uses HTMX (no build step), Plotly.js, and Pico CSS; auth via Keycloak OAuth2 password grant.