39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
# GovOPlaN Projects
|
|
|
|
<!-- govoplan-repository-type:start -->
|
|
**Repository type:** module (domain).
|
|
<!-- govoplan-repository-type:end -->
|
|
|
|
`govoplan-projects` owns native project and portfolio identity, goals, status,
|
|
milestones, participants, work structure, and links to project evidence. It is
|
|
the native GovOPlaN project context and the integration target for OpenProject.
|
|
|
|
The runtime module ID is `projects`. The module persists tenant-scoped
|
|
portfolios, projects, and milestones as immutable revisions with optimistic
|
|
concurrency, replay-safe lifecycle events, membership-based restricted access,
|
|
and permission-aware Search indexing. Planning records can retain outcomes,
|
|
benefits, dependencies, capacity assumptions, change impacts, benefit reviews,
|
|
module resource links, and canonical external-system references.
|
|
|
|
The `/projects` workspace provides catalogue, detail, create, and core-field
|
|
editing views. The governed API exposes the complete planning record at
|
|
`/api/v1/projects/objects`. OpenProject transport and synchronization remain in
|
|
Connectors; Projects stores only the native planning object and canonical
|
|
external reference.
|
|
|
|
See [docs/PROJECTS_DOMAIN_BOUNDARY.md](docs/PROJECTS_DOMAIN_BOUNDARY.md).
|
|
The list-detail, editor, state, consequence, and accessibility mapping is in
|
|
[docs/INTERFACE_PATTERN_MIGRATION.md](docs/INTERFACE_PATTERN_MIGRATION.md).
|
|
|
|
## Development
|
|
|
|
```bash
|
|
cd /mnt/DATA/git/govoplan-projects
|
|
PYTHONPATH=src:/mnt/DATA/git/govoplan-core/src \
|
|
/mnt/DATA/git/govoplan/.venv/bin/python -m unittest discover -s tests
|
|
```
|
|
|
|
The module migration is applied through the platform migration runner when the
|
|
module is enabled. Destructive retirement requires the normal snapshot and
|
|
uninstall-guard process because it removes planning history and events.
|