2 Commits
v0.1.7 ... main

Author SHA1 Message Date
05c3a2257a fix(manifest): normalize runtime module id 2026-07-20 20:01:50 +02:00
587991dcfb Release v0.1.8 2026-07-11 16:49:04 +02:00
5 changed files with 18 additions and 12 deletions

View File

@@ -1,7 +1,13 @@
# GovOPlaN Risk Compliance # GovOPlaN Risk Compliance
<!-- govoplan-repository-type:start -->
**Repository type:** module (domain).
<!-- govoplan-repository-type:end -->
`govoplan-risk-compliance` is the GovOPlaN platform module seed for risk and compliance workflows for data protection incidents, DPIAs, compliance controls, audit measures, risk registers, and internal-control evidence. `govoplan-risk-compliance` is the GovOPlaN platform module seed for risk and compliance workflows for data protection incidents, DPIAs, compliance controls, audit measures, risk registers, and internal-control evidence.
Its runtime module ID is `risk_compliance`; the repository and Python distribution retain the hyphenated `govoplan-risk-compliance` name.
This repository is initialized as a discoverable module seed. It exposes a module manifest, initial permissions, role templates, documentation metadata, Gitea workflow templates, and a focused manifest test. It intentionally does not yet add HTTP routes, database models, migrations, or WebUI navigation. This repository is initialized as a discoverable module seed. It exposes a module manifest, initial permissions, role templates, documentation metadata, Gitea workflow templates, and a focused manifest test. It intentionally does not yet add HTTP routes, database models, migrations, or WebUI navigation.
## Initial Ownership ## Initial Ownership
@@ -59,5 +65,5 @@ From the core checkout, labels can be synced once a local `GITEA_TOKEN` is avail
```bash ```bash
cd /mnt/DATA/git/govoplan-core cd /mnt/DATA/git/govoplan-core
./scripts/gitea-sync-labels.py --root /mnt/DATA/git/govoplan-risk-compliance --apply /mnt/DATA/git/govoplan/tools/gitea/gitea-sync-labels.py --root /mnt/DATA/git/govoplan-risk-compliance --apply
``` ```

View File

@@ -1,6 +1,6 @@
{ {
"name": "@govoplan/risk-compliance", "name": "@govoplan/risk-compliance",
"version": "0.1.7", "version": "0.1.8",
"private": true, "private": true,
"description": "GovOPlaN Risk Compliance platform module seed.", "description": "GovOPlaN Risk Compliance platform module seed.",
"type": "module", "type": "module",

View File

@@ -4,15 +4,15 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "govoplan-risk-compliance" name = "govoplan-risk-compliance"
version = "0.1.7" version = "0.1.8"
description = "GovOPlaN Risk Compliance platform module seed." description = "GovOPlaN Risk Compliance platform module seed."
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"
license = { file = "LICENSE" } license = { file = "LICENSE" }
authors = [{ name = "GovOPlaN" }] authors = [{ name = "GovOPlaN" }]
dependencies = [ dependencies = [
"govoplan-core>=0.1.7", "govoplan-core>=0.1.8",
"govoplan-access>=0.1.7", "govoplan-access>=0.1.8",
] ]
[tool.setuptools.packages.find] [tool.setuptools.packages.find]
@@ -22,4 +22,4 @@ where = ["src"]
govoplan_risk_compliance = ["py.typed"] govoplan_risk_compliance = ["py.typed"]
[project.entry-points."govoplan.modules"] [project.entry-points."govoplan.modules"]
"risk-compliance" = "govoplan_risk_compliance.backend.manifest:get_manifest" risk_compliance = "govoplan_risk_compliance.backend.manifest:get_manifest"

View File

@@ -3,12 +3,12 @@ from __future__ import annotations
from govoplan_core.core.access import CAPABILITY_AUTH_PERMISSION_EVALUATOR, CAPABILITY_AUTH_PRINCIPAL_RESOLVER from govoplan_core.core.access import CAPABILITY_AUTH_PERMISSION_EVALUATOR, CAPABILITY_AUTH_PRINCIPAL_RESOLVER
from govoplan_core.core.modules import DocumentationLink, DocumentationTopic, ModuleManifest, PermissionDefinition, RoleTemplate from govoplan_core.core.modules import DocumentationLink, DocumentationTopic, ModuleManifest, PermissionDefinition, RoleTemplate
MODULE_ID = "risk-compliance" MODULE_ID = "risk_compliance"
MODULE_NAME = "Risk Compliance" MODULE_NAME = "Risk Compliance"
MODULE_VERSION = "0.1.7" MODULE_VERSION = "0.1.8"
READ_SCOPE = "risk-compliance:workspace:read" READ_SCOPE = "risk_compliance:workspace:read"
WRITE_SCOPE = "risk-compliance:workspace:write" WRITE_SCOPE = "risk_compliance:workspace:write"
ADMIN_SCOPE = "risk-compliance:workspace:admin" ADMIN_SCOPE = "risk_compliance:workspace:admin"
OPTIONAL_DEPENDENCIES = ( OPTIONAL_DEPENDENCIES = (
"audit", "audit",
"policy", "policy",

View File

@@ -9,7 +9,7 @@ class ManifestSeedTests(unittest.TestCase):
def test_manifest_registers_seed_contract(self) -> None: def test_manifest_registers_seed_contract(self) -> None:
manifest = get_manifest() manifest = get_manifest()
self.assertEqual(manifest.id, "risk-compliance") self.assertEqual(manifest.id, "risk_compliance")
self.assertEqual(manifest.name, "Risk Compliance") self.assertEqual(manifest.name, "Risk Compliance")
self.assertEqual(manifest.dependencies, ("access",)) self.assertEqual(manifest.dependencies, ("access",))
self.assertEqual({permission.scope for permission in manifest.permissions}, {READ_SCOPE, WRITE_SCOPE, ADMIN_SCOPE}) self.assertEqual({permission.scope for permission in manifest.permissions}, {READ_SCOPE, WRITE_SCOPE, ADMIN_SCOPE})