mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-10-24 04:14:18 +00:00
generate_outputs_task ran inside one transaction for its entire duration
because @set_tenant wraps the task to set the RLS tenant variable, which is
transaction-scoped. The task runs for a long time, so the writer connection
held a lock on the providers table for work that no longer touched it.
Drop the decorator and scope each writer access to its own short
rls_transaction, the pattern already used elsewhere in this file. Provider
is now fetched with select_related("secret") so provider initialization,
which authenticates over the network, runs outside the transaction. Also
fixes a lazy queryset that was built inside a transaction but evaluated
outside it, which only worked by accident under the old decorator.
Changelog fragments
Each PR adds one small file here instead of editing CHANGELOG.md directly, so concurrent PRs never conflict.
- Filename:
<slug>.<type>.md, e.g.my-new-check.added.md(slug is free-form: letters, digits,.,_,-) <type>is one of:added,changed,deprecated,removed,fixed,security- Content: one line with the changelog entry text, without the PR link and without a trailing period (the PR link is attached automatically at release time)
- A PR adds as many fragment files as entries it needs, freely mixing types (one file per entry); same-type entries just use different slugs
Fragments are compiled into CHANGELOG.md when a release is prepared. Full conventions: skills/prowler-changelog/SKILL.md.