1 Commits
v0.1.8 ... main

Author SHA1 Message Date
05c3a2257a fix(manifest): normalize runtime module id 2026-07-20 20:01:50 +02:00
4 changed files with 8 additions and 6 deletions

View File

@@ -6,6 +6,8 @@
`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.
## Initial Ownership

View File

@@ -22,4 +22,4 @@ where = ["src"]
govoplan_risk_compliance = ["py.typed"]
[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.modules import DocumentationLink, DocumentationTopic, ModuleManifest, PermissionDefinition, RoleTemplate
MODULE_ID = "risk-compliance"
MODULE_ID = "risk_compliance"
MODULE_NAME = "Risk Compliance"
MODULE_VERSION = "0.1.8"
READ_SCOPE = "risk-compliance:workspace:read"
WRITE_SCOPE = "risk-compliance:workspace:write"
ADMIN_SCOPE = "risk-compliance:workspace:admin"
READ_SCOPE = "risk_compliance:workspace:read"
WRITE_SCOPE = "risk_compliance:workspace:write"
ADMIN_SCOPE = "risk_compliance:workspace:admin"
OPTIONAL_DEPENDENCIES = (
"audit",
"policy",

View File

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