Interactive Architecture Diagram¶
A live, clickable map of the TALOS components, the messages they exchange, and the roadmap items and tests that touch each one. Filter by roadmap version or test category, click any node to drill down to its source files on GitLab.
Open the interactive diagram ↗{ target="_blank" }
The diagram lives outside the Material content area so it can use the full viewport. Use the link above to open it in a new tab.
What it shows¶
- Components (12 nodes) -- Browser, Core API, PostgreSQL, MQTT broker, Director, Stream Router, Agent, Hamlib daemons, GNU Radio flowgraph, YAMCS, SatNOGS, CelesTrak.
- Edges with protocol labels (HTTPS, MQTT, TCP/Hamlib, UDP, ZMQ).
- Roadmap items that introduced or modified each component, parsed
directly from
docs/ROADMAP.md. - Test files linked to components, with their CI job category from
.gitlab-ci.yml.
How to use it¶
- Click any component node to open the right-hand detail panel showing the description, GitLab links to every source file, the full list of roadmap items it owns, the linked test files, and every edge it participates in.
- Toggle the Roadmap version chips on the left to keep only the components touched by selected versions.
- Toggle the Test category chips to keep only components covered by a
particular CI job (
test-unit,test-app,test-integration,test-agent,test-stream,test-hil, etc.). - Toggle the Group chips to hide whole layers (e.g. show only edge components).
- Selected filters and the open node id are written to the URL hash so the view is shareable.
How it stays up to date¶
The diagram is regenerated by ci/generate_architecture.py on every push to
master, as part of the existing pages: job. The generator reads:
| Source | What it pulls |
|---|---|
docs/architecture/spec.yaml |
manual list of components, edges, file references, roadmap-item IDs |
docs/ROADMAP.md |
versions, items, statuses, priorities |
docs/CHANGELOG.md |
release dates and per-version item references |
tests/ directory |
test file -> CI job mapping |
If you add a new component, update spec.yaml and the diagram will pick it
up on the next push. If you only update the roadmap or changelog, the
diagram refreshes automatically -- the existing pages: job already runs on
every master commit and tag.