4 Commits
Author SHA1 Message Date
zemion 064ec6158d docs: complete public documentation baseline
Module Package Release / publish-packages (push) Successful in 10s
2026-08-22 07:55:19 +02:00
zemion a1ea9a330b Release v0.1.18
Module Package Release / publish-packages (push) Successful in 10s
2026-08-05 21:07:45 +02:00
zemion fdfeb8ed3d Release v0.1.17
Module Package Release / publish-packages (push) Successful in 10s
2026-08-05 20:34:03 +02:00
zemion 54d8423fa6 Release v0.1.16
Module Package Release / publish-packages (push) Successful in 10s
2026-08-05 19:52:10 +02:00
4 changed files with 25 additions and 5 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@govoplan/helpdesk", "name": "@govoplan/helpdesk",
"version": "0.1.15", "version": "0.1.19",
"private": true, "private": true,
"description": "GovOPlaN Helpdesk platform module seed.", "description": "GovOPlaN Helpdesk platform module seed.",
"type": "module", "type": "module",
+3 -3
View File
@@ -4,15 +4,15 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "govoplan-helpdesk" name = "govoplan-helpdesk"
version = "0.1.15" version = "0.1.19"
description = "GovOPlaN Helpdesk platform module seed." description = "GovOPlaN Helpdesk 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.15", "govoplan-core>=0.1.18",
"govoplan-access>=0.1.15", "govoplan-access>=0.1.18",
] ]
[tool.setuptools.packages.find] [tool.setuptools.packages.find]
+12 -1
View File
@@ -6,7 +6,7 @@ from govoplan_core.core.provider_governance import declared_module_architecture
MODULE_ID = "helpdesk" MODULE_ID = "helpdesk"
MODULE_NAME = "Helpdesk" MODULE_NAME = "Helpdesk"
MODULE_VERSION = "0.1.15" MODULE_VERSION = "0.1.19"
READ_SCOPE = "helpdesk:workspace:read" READ_SCOPE = "helpdesk:workspace:read"
WRITE_SCOPE = "helpdesk:workspace:write" WRITE_SCOPE = "helpdesk:workspace:write"
ADMIN_SCOPE = "helpdesk:workspace:admin" ADMIN_SCOPE = "helpdesk:workspace:admin"
@@ -70,6 +70,13 @@ DOCUMENTATION = (
layer="available", layer="available",
documentation_types=("admin", "user"), documentation_types=("admin", "user"),
audience=("user", "operator", "module_admin", "product_owner"), audience=("user", "operator", "module_admin", "product_owner"),
translations={
"de": {
"title": "Modulgrenze von Helpdesk",
"summary": "Interne Servicedesk-Abläufe für IT, Gebäudemanagement, Personal, Finanzen, Beschaffung, Zugriffsanfragen, Zuordnung, Eskalation und Lösungsnachverfolgung.",
"body": "Dieses Repository ist derzeit ein Grundgerüst für ein Plattformmodul. Es registriert die Fachgrenze, Berechtigungsoberfläche, Rollenvorlagen und Dokumentationsmetadaten, bevor Laufzeit-APIs, Datenbankmodelle, Migrationen und WebUI-Routen eingeführt werden.",
}
},
order=100, order=100,
related_modules=OPTIONAL_DEPENDENCIES, related_modules=OPTIONAL_DEPENDENCIES,
links=( links=(
@@ -80,7 +87,11 @@ DOCUMENTATION = (
), ),
), ),
metadata={ metadata={
"kind": "reference",
"seed": True, "seed": True,
"consequence_classes": {
"seed_boundary": "Declares ownership and permissions only; no runtime workflow is available yet.",
},
"domain_objects": ['internal support tickets', 'service categories', 'assignment and escalation state', 'resolution records', 'SLA-facing timestamps'], "domain_objects": ['internal support tickets', 'service categories', 'assignment and escalation state', 'resolution records', 'SLA-facing timestamps'],
"first_slice": ( "first_slice": (
"Define Helpdesk queue, SLA, and escalation profiles over the " "Define Helpdesk queue, SLA, and escalation profiles over the "
+9
View File
@@ -15,6 +15,15 @@ class ManifestSeedTests(unittest.TestCase):
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})
self.assertEqual({role.slug for role in manifest.role_templates}, {"helpdesk_manager", "helpdesk_viewer"}) self.assertEqual({role.slug for role in manifest.role_templates}, {"helpdesk_manager", "helpdesk_viewer"})
self.assertTrue(manifest.documentation) self.assertTrue(manifest.documentation)
topic = manifest.documentation[0]
self.assertEqual("reference", topic.metadata["kind"])
self.assertIn("seed_boundary", topic.metadata["consequence_classes"])
self.assertTrue(
all(
topic.translations.get("de", {}).get(field)
for field in ("title", "summary", "body")
)
)
self.assertIsNone(manifest.route_factory) self.assertIsNone(manifest.route_factory)
self.assertIsNone(manifest.migration_spec) self.assertIsNone(manifest.migration_spec)
self.assertIsNone(manifest.frontend) self.assertIsNone(manifest.frontend)