govoplan-campaign
GovOPlaN Campaign is the campaign authoring, validation, review, sending-control, and reporting module. It bundles backend campaign APIs with the campaign WebUI package.
Ownership
This repository owns:
- backend module manifest
campaigns - campaign, recipient, report, and campaign-audit permissions
- campaign/version/job/issue/send-attempt/append-attempt models and migrations
- campaign JSON schema, validation, message building, attachment resolution, ZIP handling, reports, queue/control services, and mock-send paths
- WebUI package
@govoplan/campaign-webui - route contributions for
/campaigns,/campaigns/:campaignId/*,/operator,/reports,/address-book, and/templates
Core owns auth, tenants, RBAC evaluation, database/session primitives, CSRF/API helpers, shell layout, and route rendering. Files and mail own their respective storage and transport capabilities.
Dependencies
The module has runtime dependencies on:
govoplan-corefor platform servicesgovoplan-filesfor managed attachment integrationgovoplan-mailfor SMTP/IMAP profile and delivery integration
Optional UI behavior can still check installed module availability through core module metadata, but the current backend package declares files and mail as required.
Development
Install through the core environment:
cd /mnt/DATA/git/govoplan-core
./.venv/bin/python -m pip install -r requirements-dev.txt
Run the WebUI from the core host:
cd /mnt/DATA/git/govoplan-core/webui
PATH=/home/zemion/.nvm/versions/node/v22.22.3/bin:$PATH /home/zemion/.nvm/versions/node/v22.22.3/bin/npm run dev
Module integration
Backend entry point:
[project.entry-points."govoplan.modules"]
campaigns = "govoplan_campaign.backend.manifest:get_manifest"
Frontend package:
@govoplan/campaign-webui
Platform RBAC and governance rules are documented in govoplan-core/docs/.