Change Log#

qualpipe_webapp v0.4.0 (2026-05-15)#

API Changes#

    • New API for creating data quality reports using available data quality metrics.

    • New module implemented for generating data quality reports: backend.quality_report.

    • codegen.generate_data_models now autogenerates code in an __init__.py file by default. [!63]

Bug Fixes#

  • Fixed FastAPI autogenerated docs so Swagger UI “Execute” uses the correct backend endpoint URLs after the backend refactor. [!73]

  • Updated DL1 filename handling to use the shortened SBID/OBSID values and removed the SDH segment from expected test filenames, ensuring backend parsing and tests consistently use IDs like SBID2000000078 and OBSID2000000239. [!74]

  • Removed backend CORS middleware from the internal API service; CORS handling remains at the BFF layer. [!79]

  • Fixed wheel build to run code generation at build time via setup.py, ensuring qualpipe_webapp.backend.generated is present after pip install without requiring a manual pre-generation step. [!82]

New Features#

  • Implemented a BFF-compatible authentication scaffold for the frontend: protected pages now enforce authentication, login/logout are delegated through BFF endpoints, and user identity is exposed in the UI context. Added a local mock BFF with JSON-backed users and startup validation, plus Helm dev routing for /auth and /v1 paths. Updated Playwright to authenticate once and reuse storage state across E2E tests. [!77]

Maintenance#

  • Refactored frontend plotting to use a strict config-driven data preparation flow based on fetchedData.columns and per-plot frontend configuration. Kept only generic extraction helpers shared, and moved plot-specific preparation into the corresponding renderer modules. [!73]

  • Adding verification markers to pytest tests to link them to the appropriate use cases. [!83]

Refactoring and Optimization#

  • The code-generation step is moved to the build stage via wheels, to avoid invoking it as a post-install action. [!81]

qualpipe_webapp v0.3.1 (2026-04-08)#

Bug Fixes#

  • Make file-backend volume for backend configurable via chart values. [!71]

qualpipe_webapp 0.3.0 (2026-04-02)#

API Changes#

  • Add models and schema generation from ctao-qualpipe modules [!12]

  • New API to get the list of available data quality metrics for a given observation, telescope, site, and date. [!60]

Bug Fixes#

New Features#

    • Backend initial docker setup

    • Frontend initial docker setup

    • Frontend integration with backend endpoints to fetch data files.

    • Frontend renders simple scatter plot data.

    • Double fixed-top navbar, horizontally scrollable for overflow and vertically adaptable to long, line-wrapped content.

    • All page contents adjust responsively.

    • Hover effects on both navbars, with highlighting of the selected item.

    • Both navbars collapse into a button with a dropdown list for smaller viewport sizes, enhancing mobile usability.

    • Common template for all pages to ensure consistent layout and navigation.

    • Plot placeholders dynamically adapt to different viewport sizes.

    • Hover-expandable sidebar for metadata selection, supporting common query parameters (site, date).

    • Sidebar content is context-sensitive: ‘Telescope ID’ and ‘OB ID’ appear only when a telescope page is selected.

    • ‘Telescope ID’ sidebar item updates dynamically according to the selected Site and Telescope.

    • Independent vertical scrolling for sidebar and main page content, enhancing usability.

    • Add a responsive footer with breadcrumb navigation to display the current path.

    • Parameters selected from the collapsible sidebar are visible in the footer.

    • Footer height automatically adapts to its content, supporting content wrapping for improved accessibility.

    • Define the second navigation bar content for telescope pages.

    • Backend endpoints to serve data files. [!1]

  • Add a helm chart. [!2]

    • Add automatic javascript unit testing and coverage reporting with Mocha and c8

    • Add automatic javascript end to end testing (and coverage reporting) with Playwright (and c8?) [!11]

    • Convert all CommonJS script to ES javascript modules

    • Update HTML templates to load scripts as modules

    • Update sidebar to use event listeners instead of inline JS

    • Create a config.js file to hold configuration variables (e.g. backend URL) [!13]

    • setup js-unittests (Mocha)

    • setup js-end-to-end tests (Playwright)

    • add some unittests

    • add some js-e2e tests [!15]

  • Setup kind environment for local development. [!38]

    • Implemented backend factory pattern with BackendAPI abstract base class for extensible data source integration.

    • Added FileBackend as the reference file-based implementation for HDF5 data extraction with support for flatfield timing datasets.

    • Enhanced sidebar and footer with localStorage persistence to maintain user selections (site, date, OB, telescope ID) across page navigation with automatic plot generation. [!40]

  • Add 1D histogram functionality. [!44]

  • Add telescope Camera-view. [!45]

  • Make frontend pages configurable instead of hard-coded

    • add a YAML config to define pages, plots, and layout

    • validate and load the config in the frontend server

    • render pages with a single generic template

    • build sub-navigation from the config

    • update tests to read pages from the config

    • ignore runtime data/toolkit folders

    • split page configs into an index plus per-page YAML files

    • add soft-fail handling for invalid page configs with a dedicated error page

    • add tests for invalid page config rendering [!54]

  • Make plot configuration frontend‑driven

    • define plot configurations inline in per‑page YAML files

    • preserve plot ordering from the page config

    • inject per‑page plot configs into templates for plotting

    • drop backend plotConfiguration payload

    • validate plot configs per plot and display errors in the grid

    • refine plot config validation per plot type to match JS implementations

    • update frontend config tests for per‑plot‑type validation [!57]

  • Make plot data config-driven and fix backend image imports

    • add per-plot data config (path_tail, field) to page YAMLs for interleaved plots

    • use plot_id in templates/JS lookups, keep titles for display only

    • validate plot data config and warn when missing or invalid

    • update frontend config tests for plot_id uniqueness and path hashing

    • update tests [!61]

  • Implement backend metric autodiscovery.

    • backend now discovers available quality metrics directly from HDF5 datasets instead of relying on a fixed list

    • metric availability is now resolved per observation/telescope context [!64]

Maintenance#

  • Add pixi run clean project and reset-env commands for dev cleanup and broken environment recovery respectively. [!53]

  • Add autosummary templates, required intersphinx mappings and exclude tests from the doc building. Added to contribution guide the need to include a changelog. [!56]

Refactoring and Optimization#

    • Add schema validation for “data” and “metadata” objects

    • Metadata schema refactoring, adding “plotConfiguration” key

    • Implement various plot “marks” option

    • Implement Log scale option in plot

    • Add “plotType” key to the metadata schema

    • Refactoring “scatterPlot” function [!8]