security: make Campaign mutation audits atomic

This commit is contained in:
2026-07-21 17:56:59 +02:00
parent 60776803c5
commit 0ac903c82d
4 changed files with 331 additions and 48 deletions

View File

@@ -157,6 +157,7 @@ def create_campaign_version_from_json(
raw_json: dict[str, Any],
source_filename: str | None = None,
source_base_path: str | None = None,
commit: bool = True,
) -> tuple[Campaign, CampaignVersion]:
assert_server_safe_campaign_paths(
raw_json,
@@ -211,8 +212,11 @@ def create_campaign_version_from_json(
session.flush()
campaign.current_version_id = version.id
session.add(campaign)
_write_campaign_snapshot(version)
session.commit()
if commit:
_write_campaign_snapshot(version)
session.commit()
else:
session.flush()
return campaign, version