WebUI module split; docs
This commit is contained in:
51
README.md
51
README.md
@@ -1,18 +1,59 @@
|
||||
# govoplan-campaign
|
||||
|
||||
GovOPlaN Campaign module.
|
||||
GovOPlaN Campaign is the campaign authoring, validation, review, sending-control, and reporting module. It bundles backend campaign APIs with the campaign WebUI package.
|
||||
|
||||
This repository owns the Campaign module manifest, backend router, campaign schemas, campaign ORM models, campaign JSON validation, persistence, reports, message building, mock-send, queue/send control services, and campaign/operator/template/address-book WebUI package. The module currently has hard runtime dependencies on `govoplan-files` and `govoplan-mail` because managed attachments and SMTP/IMAP execution are imported directly.
|
||||
## Ownership
|
||||
|
||||
The remaining `app.*` imports are transitional core adapters for auth, audit, Celery dispatch, and legacy access models.
|
||||
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 development environment:
|
||||
Install through the core environment:
|
||||
|
||||
```bash
|
||||
cd /mnt/DATA/git/govoplan-core
|
||||
./.venv/bin/python -m pip install -r requirements-dev.txt
|
||||
```
|
||||
|
||||
The backend module is registered through the `govoplan.modules` entry point `campaigns`. The frontend package is `@govoplan/campaign-webui`.
|
||||
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/`.
|
||||
|
||||
Reference in New Issue
Block a user