Skip to content

django-ox 1.9.0

Choose a tag to compare

@PhiLily PhiLily released this 12 Oct 06:43
· 2 commits to main since this release

django-ox 1.9.0

Unique tasks, batches, rate limiting and provisional workflows are now
included in django-ox through the optional oxpull app. Everything is
free and open source under BSD-3-Clause, with no separate oxpull
installation needed.

Unique tasks deduplicate pending tasks at enqueue time.
Batches track progress and run a callback once every member settles.
Rate limiting shares admission limits across workers.
Workflows express dependencies between tasks, with a provisional API.

The optional oxpull app requires Django 6.0+; django-ox continues to
support Django 5.2 through django-tasks. Projects that do not enable
the app do not load it.
See the feature docs for setup, including worker, option and
reconciler requirements.

This release also improves stored-schedule recovery: workers skip
unreadable tick history rather than treating it as absent, retry
unexpected dispatch failures, and keep healthy schedules visible in the
admin when another row cannot be read.

Security

1.9.0 fixes Low-severity schedule permission checks affecting versions
1.2.0 through 1.8.0. Access requires an application exposing
update_schedule with user=, or authenticated staff with schedule admin
model permissions. These paths do not give ordinary anonymous users
schedule access.

Updates with user= now authorize both the locked stored row and the
validated result. Unreadable or unregistered stored keys require an
active superuser for changes or deletion with user=; the admin applies
the same rule. See GHSA-mw49-53pm-wrvf.

Upgrade notes

  • Existing django-ox users need no database migration for this upgrade.
  • Earlier oxpull installations must follow the
    earlier-install upgrade sequence. Uninstall the earlier
    distribution before upgrading django-ox, not afterward as cleanup.
  • Upgrade workers and application processes. Review write API access and
    schedule model permissions.
  • Before upgrading, psycopg2 and mysqlclient users must run the boundary
    and tick-history checks under Compatibility in the changelog.
  • After upgrading, resolve schedule_row_skipped,
    schedule_tick_unreadable and schedule_dispatch_failed conditions.

Read the full changelog for compatibility and recovery notes.