Specification of the Trace Server Protocol
This protocol is built to decouple the backend and frontend of trace analysers, allowing traces to reside and be analysed on the backend, and visual models to be exchanged with a variety of clients.
The protocol is meant to be RESTful, over HTTP.
The specification is currently written in OpenAPI 3.0 and can be pretty-visualized in the github pages.
👋 Want to help? Read our contributor guide.
The current version of the specification is currently implemented and supported in the Trace Compass trace-server (reference implementation) and what is currently supported by the tsp-typescript-client.
Swagger can be used to generate the API version implemented in Trace Compass trace-server (see here).
Some proposal for additional endpoints and features are documented in the ./API-proposed.yaml
. All the proposed changes are still not confirmed and can change. The pretty-visualized file can be found here. A diff of the current version and future version will show the differences.
Once an update has been approved it will be migrated to the main ./API.yaml
file.
The specification should be edited with the OpenAPI (Swagger) Editor extension for VS Code.
The latter extension is assumed for consistent formatting of the ./API-proposed.yaml
file over time.
To initialize a local virtual environment, type the following commands in the root directory:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
The virtual environment can be replaced with another local setup.
Swagger has recently been added to the Trace Compass trace-server (reference implementation).
API.yaml
shows now the current supported version of the TSP.master
.traceserver.product
file in plug-in org.eclipse.tracecompass.incubator.trace.server.product
.Run
button on the top right corner of the opened traceserver.product
.~/Downloads/openapi.yaml
~/Downloads/openapi.yaml
to this directory../openapi.py
API.yaml
and openapi.yaml
can then be pushed for review.
API-proposed.yaml
as well.openapi.yaml
should not be merged to the repository and can be deleted when not needed anymore.