baobabsoluciones / baobabsoluciones/cornflow
Add support for generating and downloading reports for DAGs
- 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
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