The individual checks. Each takes (repo, config, now, query_opts) and returns a list of
QueueKeeperCheck.Finding structs. QueueKeeperCheck.run/2 wraps each call in
QueueKeeperCheck.Guard; call these directly only if you apply your own limits.
Every query is a plain SELECT on oban_jobs that reads only id, state, queue,
worker, attempt and timestamp columns. args, meta, errors, tags and
attempted_by are never selected or filtered on. Each query is either an aggregate
(one row per queue or worker) or capped with LIMIT, and each is shaped to use Oban's
standard indexes (state, queue, priority, scheduled_at, id; state, discarded_at;
state, cancelled_at; the primary key). See docs/SECURITY_REVIEW.md for the exact SQL
and measured plans.