2026-06-24 20:01:21 +02:00
2026-06-24 01:43:27 +02:00
2026-06-23 18:01:29 +02:00
2026-06-24 20:01:21 +02:00
2026-06-24 01:43:27 +02:00
2026-06-24 20:01:21 +02:00

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:

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/.

Release packaging

The repository root includes a package.json for git-based WebUI installs. It exports the package @govoplan/campaign-webui from webui/src so release builds can depend on tagged git refs instead of local file: paths. The campaign WebUI package depends on the tagged files and mail WebUI packages for release builds.

Description
GovOPlaN campaign module for campaign authoring, validation, recipients, templates, review, sending control, delivery tasks, and reports.
Readme AGPL-3.0 1.6 MiB
Languages
TypeScript 58.9%
Python 37.4%
CSS 3.7%