Introduction

Dynamic Sphinx-Needs experiences in your browser.

A fast and powerful web app that understands Sphinx-Needs to provide a delightful reading and analysis experience.

ubTrace is a dynamic web app for the Sphinx documentation generator. It extends Sphinx with industry features for large teams, such as:

  • Multi-project management with organization/project/version structure

  • Role-based Access Control (RBAC) via Keycloak/OIDC

  • Dynamic Sphinx-Needs data analysis and traceability trees

  • Coverage analysis and schema validation reports

  • Full-text search powered by Elasticsearch

  • Dynamic theming

It is designed to support the requirements of technical and non-technical team members, such as system engineers, team managers, quality officers, and more.

ubTrace is an extension to the Sphinx way of working and uses the same mechanisms to define and configure things. Therefore, all Sphinx features and builders are still supported, and the risk of tool or vendor lock-in is highly reduced.

ubTrace has four core elements:

  • A faster Sphinx builder (ubt_sphinx), which can reduce build time by up to 50%.

  • A data pipeline (ubt-coverage Rust CLI) that generates NDJSON analytics from Sphinx-Needs output, stored in PostgreSQL with Elasticsearch indexing.

  • A server (NestJS), which provides open but secure APIs to all kinds of data.

  • A web app (Next.js) as a user interface, which guarantees easy access even for non-technical readers.

Overall, the ubTrace workflow looks like this:

_images/ubtrace_workflow.drawio.png

Note

The diagram above shows the high-level workflow. The “ubTrace DB” shown is implemented as PostgreSQL (structured data) + Elasticsearch (search and analytics indexing).

Contents