# 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-core` for platform services - `govoplan-files` for managed attachment integration - `govoplan-mail` for 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: ```bash cd /mnt/DATA/git/govoplan-core ./.venv/bin/python -m pip install -r requirements-dev.txt ``` Run the WebUI from the core host: ```bash 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: ```toml [project.entry-points."govoplan.modules"] campaigns = "govoplan_campaign.backend.manifest:get_manifest" ``` Frontend package: ```text @govoplan/campaign-webui ``` Platform RBAC and governance rules are documented in `govoplan-core/docs/`.