|
As we have already contributed to UI in various PRs and still closely monitor and (attempt) to support the completion of AIP-38 Modern Web Application we are looking forward to close gaps in UI for a better business integration. From a perspective of business users the UI might be very technical. You can see task details, logs and run-times. This is very good for a pipeline developer and operations teams, business users would also like to see custom details of the workflow that is represented behind the scene.
Today this is mostly compensated by embedding Airflow behind other UI's or business applications and just drive or schedule a pipeline, hiding the UI to business users. But Airflow UI - especially after AIP-38 - does not need to be shy and could be opened up also for (technical oriented) business users.
As Airflow UI is generic and allows deep customization's of Operators, Provider Packages, Workflows, the UI is quite generic. It would be great to be able to extend the Grid view to populate custom information via adding widgets or details besides adding full web pages or the need to populate another UI in front of the workflow.
As we had implemented UI Plugins via Flask Appbuilder pages, integrating with the menu and web page in the past, also as having contributed AIP-50 Trigger DAG UI Extension with Flexible User Form Concept in the past - allowing to provide overview and customized details to business users can be made with the following options:
I propose that the existing Airflow Plugin Interface is extended for the purpose of adding custom panels based on business needs into Grid views. Compared to separate Flask pages, business specific information could be added at the right place into panels where needed.
In detail the following proposals for plugin extensions are made:
Examples - Extended "Donkey views":
| DAG Run View | Task Instance View |
|---|---|
| |
Custom Panel Area populated for DAG Run
| Custom Panel and Tab for Donkey Statistics and History in Task Instance View
|
Custom Tab Added to DAG Run
|
Technical specifics assumed to provide the panels:
The new/current Grid view is generic and shows all technical information of an Operator - with the option to extend via Plugins the UI can be enriched with business relevant information above the current Operator Extra Links
Save users to develop another UI on top if Airflow serves for 60% of needs and UX is required to be added to close the gap
None. Plugin would be optional to be extended
Assumed no DB changes. All by Python code, templating and API extensions
An example should be provided with the extended Plugin interface incluing extended documentation, Also adding some considerations to cover/compensate the risks (e.g. authentication, XSS best practices)