jeremychia opened a new issue, #74336:
URL: https://github.com/apache/airflow/issues/74336

   ### Description
   
   allow a dag to validate params against each other in the trigger form, so a 
bad combination blocks the trigger before a run is created. today each `Param` 
carries its own json schema, so the form can only check one field at a time.
   
   ### Use case/motivation
   
   we have a manually triggered dag that takes `data_interval_start` and 
`data_interval_end` as params. a run where start is on or after end is always 
wrong. today the only place to catch it is a first task that fails fast. that 
still creates a failed dag run, and the user only learns about the mistake 
after clicking trigger and opening the run.
   
   what i would like: a dag-level rule over several params, checked when the 
form is submitted (and on the rest api trigger). if it fails, the form shows 
the error and no run is created, the same way a per-field `minimum` or 
`pattern` failure behaves today.
   
   two possible shapes, either is fine:
   
   1. a dag-level json schema over the whole params object, so `if`/`then`, 
`dependentRequired` and similar keywords work.
   2. a python callable on the dag that receives the resolved params and raises 
on an invalid combination.
   
   other examples of the same need: "if `env` is `prod` then `dry_run` must be 
false", or "`end_date` must be after `start_date`".
   
   ### Related issues
   
   none found.
   
   ### Are you willing to submit a PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to