-
[Dashboard] Load using non-default Oban instance without any config.
The dashboard now loads the first running non-default Oban instance, even without anything configured.
-
[Jobs] Decode decorated arg when formatting job args.
The decorated arg are term encoded and inscrutiable in the standard display. Now the value is decoded and display as the original value.
-
[Jobs] Prevent decoding executable functions when displaying recorded output.
By default, recorded content uses the :safe flag, which now prevents both atom creation and executable content. This is an extra security precaution to prevent any possible exploits through Web.
-
[Queues] Add sidebar similar to the jobs table, including filters to make bulk operations on queues possible.
-
[Queues] Add search bar with filtering functionality to query queues.
-
[Queues] Add multi-select mode to allow operating on multiple queues at once.
-
[Queues] Expose a "Stop Queues" operation along with corresponding access controls to prevent unintended shutdown.
-
[Resolver] Add resolve_instances/1 callback to restrict selectable Oban instances.
Not all instances should be available to all users. This adds the resolve_instances/1 callback to allow scoping instances by user:
def resolve_instances(%{admin?: true}), do: :all
def resolve_instances(_user), do: [Oban]
-
[Resolver] Add bulk_action_limit/1 to restrict the number of jobs operated on at once.
Bulk operations now effect all filtered jobs, not just those visible on the current page. As there may be millions of jobs that match a filter, some limiting factor is necessary. The default of 1000 may be overridden:
def bulk_action_limit(:completed), do: 10_000
def bulk_action_limit(_state), do: :infinity