airflow icon indicating copy to clipboard operation
airflow copied to clipboard

Improvement: Replace 'Configuration JSON' free-text area with key-value form in Trigger DAG UI

Open harrisjoseph opened this issue 5 years ago • 6 comments
trafficstars

Description

Replace the Configuration JSON text-area with a form that has individual input fields for each key & value. This will remove the need for the user to provide a json object. See hashicorp vault's key-value secrets UI for an example of what this might look like:

Screenshot 2020-09-21 at 12 06 03

  • If present these keys and values should be serialised as json client-side and posted to the trigger-dag API endpoint as the conf request-parameter.
  • By default no conf request-parameter is sent. Perhaps a checkbox should be used to determine whether conf is sent at all?
  • The user may want to add new keys, or remove keys & values that they have previously added.
  • PR-10839 is pre-populating the form with the DAG's default params. The new form should be pre-populated with the keys & values from DAG.params

Use case / motivation

Currently when triggering a manual DAG run with user-provided runtime parameters, the user has to provide a correctly formatted JSON object. Filling in a form with keys & values will be a significantly better user experience, and will be less error prone & laborious than handling json in a free-text field.

This builds on the great work already done on enhancing the Trigger-DAG functionality

Related Issues

Originating PR: https://github.com/apache/airflow/pull/10839

harrisjoseph avatar Sep 21 '20 11:09 harrisjoseph

Thanks for opening your first issue here! Be sure to follow the issue template!

boring-cyborg[bot] avatar Sep 21 '20 11:09 boring-cyborg[bot]

Does anyone know the status of this feature request? I came across it, and I think it'd be very interesting to have something like this. At my team, we're working on DAGs that our users can trigger through Airflow UI, and their UX would be improved with it.

viniciusdsmello avatar Jul 26 '22 18:07 viniciusdsmello

The status is as usual in OSS - if someone gets interested in it , it gets implemented. For example if you, or your company is interested in it (seems you are), they could assign someone to implement it. This would be a fantastic contribution back, for the software the company gets for free.

Happy to assign you or any of your team to work on it. Will you ?

potiuk avatar Jul 26 '22 22:07 potiuk

BTW. This is how most of the features here get implemented. Someone (often a user) who is interested, simply starts working on it and provides a PR - we have > 2100 contributors now.

Picking a task that you /your company is insterested in and contributing it back is one of the best ways to join the group of contributors. - Just writing this all up to set the expectations, you might not be aware that it works like that here.

potiuk avatar Jul 26 '22 22:07 potiuk

I think this could be incorporated with AIP-50? https://cwiki.apache.org/confluence/display/AIRFLOW/AIP-50+Trigger+DAG+UI+Extension+with+Flexible+User+Form+Concept

eladkal avatar Sep 21 '22 09:09 eladkal

I assume so and that's why I made the link. I assume this issue and AIP-50 somehow relate each other, AIP-50 is a bit wider and more general. Looking forward making this happen :-D

jscheffl avatar Sep 21 '22 18:09 jscheffl