baobabsoluciones / baobabsoluciones/cornflow

Add support for generating and downloading reports for DAGs

Open
#541 1 comment 0 reactions 0 assignees View on GitHub
triage
Dominant language
Python
Stars
21
Forks
5
PR merge metrics
No merged PRs in 30d

Description

**Is your feature request related to a problem? Please describe.**
Building an adhoc web UI (a la cornflow-app) for each optimization problem is very hard and takes a lot of time. Also, once built it's not possible to share the charts/UI with people without access to the web UI.

**Describe the solution you'd like**
Quarto (https://quarto.org/) reports (*.qmd file) that get compiled with quarto on the server side (in airflow it would seem) into an html, a Word or a Latex pdf.

The file would be self-contained (or not) and be stored in a bucket and served from cornflow as pure html with a download button for a self-contained portable file.

**Describe alternatives you've considered**
Other report-generation apps such as RMarkdown.

**Additional context**
Some of the changes required would be [references are for PR 536]:

* optional `report` directory in the dag directory with a collection of reports (`cornflow-dags/DAG/tsp/report/report.qmd` in PR https://github.com/baobabsoluciones/cornflow/pull/536/files).
* a way to tell airflow to generate a report automatically after solve and store it somewhere (bucket). And store the report address in the execution table. Could be a solve config parameter that asks for a report name to be produced.
* a way to ask cornflow via the REST API to return the report associated with an execution.
* a way in cornflow-app to open and show an html/pdf report.

See the TSP example for more detail: https://github.com/baobabsoluciones/cornflow/pull/536

Contributor guide

Open the contributing guide

Research direction

Start with the TSP example and the report/report.qmd path referenced in PR 536. Review how reports would be generated after a solve, stored in a bucket, recorded in the execution table, exposed through the REST API, and opened by cornflow-app. Done means the proposed report flow supports generated HTML, Word, or PDF output and downloading or viewing the associated execution report.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend-api-design, cloud, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.