Skip to content

DST Dashboard Backend#349

Merged
mamoutou-diarra merged 13 commits into
masterfrom
mamoutou/dst_dashboard_backend
Jul 16, 2026
Merged

DST Dashboard Backend#349
mamoutou-diarra merged 13 commits into
masterfrom
mamoutou/dst_dashboard_backend

Conversation

@mamoutou-diarra

Copy link
Copy Markdown
Contributor

Context

This PR adds the DST Dashboard backend to 10ksim. The dashboard (FastAPI/uvicorn + MongoDB) exposes endpoints to the frontend 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

  • 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)

Deployment

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

App URLs

@mamoutou-diarra mamoutou-diarra self-assigned this Jul 13, 2026
@mamoutou-diarra mamoutou-diarra added the ift IFT commitments label Jul 13, 2026
This was linked to issues Jul 13, 2026
@mamoutou-diarra mamoutou-diarra moved this to In review in DST Jul 14, 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.

I think this could have been splitted even more into smaller PRs. Consider that for next time please.
I would also appreciate an addition about how the flow of this works to better understand the modules.

Comment thread dst_dashboard/main.py Outdated
Comment thread dst_dashboard/k8s/mongodb-dev.yaml Outdated
Comment thread dst_dashboard/api/datasets.py Outdated
Comment thread dst_dashboard/api/admin.py Outdated
Comment thread dst_dashboard/processors/panel_processor.py
Comment thread dst_dashboard/api/datasets.py Outdated
Comment thread dst_dashboard/processors/dataset_processor.py
@mamoutou-diarra

Copy link
Copy Markdown
Contributor Author

I think this could have been splitted even more into smaller PRs. Consider that for next time please. I would also appreciate an addition about how the flow of this works to better understand the modules.

sorry for that, sure, I'll make sure to submit small PRs next time. Also I'll add the workflow in another small PR later

@mamoutou-diarra
mamoutou-diarra merged commit 1c52fdd into master Jul 16, 2026
2 checks passed
@mamoutou-diarra
mamoutou-diarra deleted the mamoutou/dst_dashboard_backend branch July 16, 2026 09:46
@github-project-automation github-project-automation Bot moved this from In review to Done in DST Jul 16, 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

2 participants