Skip to content

DST Dashboard Backend and Frontend V1#347

Closed
mamoutou-diarra wants to merge 9 commits into
masterfrom
mamoutou/dst_explorer_init
Closed

DST Dashboard Backend and Frontend V1#347
mamoutou-diarra wants to merge 9 commits into
masterfrom
mamoutou/dst_explorer_init

Conversation

@mamoutou-diarra

@mamoutou-diarra mamoutou-diarra commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Context

This PR adds the DST Dashboard app to 10ksim. The dashboard is composed of a frontend (React) and a backend (FastAPI/uvicorn + MongoDB), both residing in dst_dashboard/. The app exposes endpoints to create/update/delete experiments, panels, and datasets. Datasources (VictoriaLogs, Prometheus) are provided via config.yaml. All write endpoints are JWT-protected. Tokens are generated from an admin page (accessible from the lab homepage, Authentik SSO required) that also provides an experiment CRUD UI for pasting JSON. Data is fetched using DataPuller and scrape_utils, and transform functions convert datasets into ECharts-ready panel specs.

Main changes

Backend

  • Added experiment, dataset, and panel processors to fetch data, apply transformations, build ECharts-ready panels, and store them on MongoDB
  • Added transform functions for boxplot, timeseries, and utilities like top-N filtering, groupBy, firstN, regex_match
  • Implemented a MongoDB storage layer, using GridFS to store large experiment datasets/panels in chunks
  • Added CRUD endpoints for experiments, datasets, and panels, exposed via Swagger, with writes gated behind JWT
  • Added an admin page for token generation and experiment CRUD (paste JSON)
  • Parallelized dataset and panel processing across a thread pool
  • Added unit tests for panel processors
  • Added script and example for adding new ewperiment json data (They can be added also by curl)

Frontend

  • Used React frontend, served via nginx
  • Used vac logo as main logo
  • Used logos logo as favicon
  • Lazy-loads panels as they're needed instead of fetching everything on every page load, reducing bandwidth use and page-load time

Deployment

  • Added k8s manifests for the backend, frontend, and MongoDB (dev/prod)

App URLs

@mamoutou-diarra mamoutou-diarra self-assigned this Jul 12, 2026
@mamoutou-diarra mamoutou-diarra added the ift IFT commitments label Jul 12, 2026
@mamoutou-diarra
mamoutou-diarra requested review from AlbertoSoutullo, PearsonWhite and radiken and removed request for radiken July 12, 2026 00:16
@mamoutou-diarra mamoutou-diarra linked an issue Jul 12, 2026 that may be closed by this pull request
@mamoutou-diarra mamoutou-diarra moved this to In Progress in DST Jul 12, 2026

@AlbertoSoutullo AlbertoSoutullo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we split this in back and front?

@mamoutou-diarra

Copy link
Copy Markdown
Contributor Author

Can we split this in back and front?

Ok, no problem

@github-project-automation github-project-automation Bot moved this from In Progress to Done in DST Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ift IFT commitments

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Dashboard improvements

2 participants