github-actions[bot] opened a new pull request, #70625:
URL: https://github.com/apache/airflow/pull/70625

   * Make deadline reads and serialization robust to dynamic/malformed intervals
   
   Hardens the read and (de)serialization paths for deadline alerts so dynamic
   (``VariableInterval``) and malformed stored data no longer break the UI/API.
   
   - UI deadline-alert response: ``DeadlineAlert.interval`` is a JSON column 
holding
     the Airflow-serialized interval, not a plain number. Coerce it to seconds 
for a
     fixed ``timedelta`` and to ``None`` for a dynamic ``VariableInterval`` 
(resolved
     later by the scheduler), instead of letting Pydantic 500 on the dict. The
     ``interval`` field becomes ``float | None``.
   - Drop ``interval`` from the sortable columns of the deadline-alerts 
endpoint:
     ordering by a JSON column sorts by structure/text, not duration, so the 
result
     was arbitrary and misleading.
   - Deserialization: route by the encoder-stamped ``__class_path`` ahead of the
     ``reference_type`` name (a custom reference may share a class name with a
     builtin), and raise a clear error for a reference with no importable
     ``__class_path`` instead of an opaque ``KeyError``.
   - ``Deadline.__repr__`` / ``DeadlineAlert.__repr__`` no longer raise: guard 
the
     ``dagrun`` relationship (the FK can be set while the relationship is None 
after a
     cascade delete) and handle the dict-shaped JSON interval. A ``__repr__`` 
must
     never raise.
   - ``prune_deadlines`` explicitly excludes deadlines already marked 
``missed`` so a
     missed deadline (whose callback is owned by the scheduler/triggerer) and 
its
     queued callback are never cascade-deleted.
   
   Generated-by: Claude Code (Opus via Claude Code) on behalf of Sean Ghaeli
   
   * Remove redundant comments in deadline sort/deserialize
   
   The sort-key comment restated a constraint already covered by
   test_order_by_interval_is_rejected; the __class_path comment restated the
   ValueError message right below it.
   
   Generated-by: Claude Code (Opus)
   
   * Trim PR to the UI deadlineAlerts 500 fix only
   
   Per review: keep only the interval coercion, order_by removal, and their
   tests; move repr guards, decoder routing, and prune guard to a follow-up.
   
   ---------
   (cherry picked from commit f840a8213801731028a054e733801a6449f3297d)
   
   Co-authored-by: Sean Ghaeli <[email protected]>
   Co-authored-by: Sean Ghaeli <[email protected]>


-- 
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