feat(helpdesk): configure ticket routing profiles

This commit is contained in:
2026-08-22 11:41:45 +02:00
parent 064ec6158d
commit 32bd55d5bd
24 changed files with 1584 additions and 102 deletions
+29 -12
View File
@@ -28,20 +28,37 @@ Internal service desk workflows for IT, facilities, HR, finance, procurement, ac
- files
- tasks
## Seed State
## Implemented Policy Overlay
The current repository state is intentionally small:
The module persists only tenant configuration:
- module manifest and entry point
- tenant-level permission definitions
- manager and viewer role templates
- documentation topic describing the module boundary
- Gitea issue workflow templates
- manifest contract test
- ordered, active/inactive service profiles
- ticket-type and priority match criteria
- canonical queue references
- per-priority and default service-target minutes
- immutable, replay-safe configuration history and platform events
No runtime API, database model, migration, WebUI route, or navigation item is registered yet. The first implementation slice should preserve the boundary above and only add user-visible surfaces once the workflow model is clear.
The administrative API and `/helpdesk` workspace require
`helpdesk:workspace:admin`. Each save carries an expected revision,
idempotency key, and explicit change reason. The shared action bar provides
Reload and New-profile actions, while create/edit dialogs keep dirty state
local until Save or Cancel.
## First Implementation Slice
## Ticket Routing Contract
Define Helpdesk queue, SLA, and escalation profiles over `govoplan-tickets`.
Do not create a second ticket persistence model.
Helpdesk provides Core's optional `tickets.routing` capability. Tickets sends a
bounded tenant, ticket, type, priority, title, receive time, optional queue
hint, and non-secret attributes. Helpdesk evaluates active profiles in sort
order and returns the first match's queue and calculated service target.
An explicit queue hint narrows matching to that queue. No match is a successful
result with an explanation; it does not reject or delay Ticket intake. Tickets
owns the resulting queue and target snapshot, lifecycle, assignment, and
history. Helpdesk never imports Tickets or persists a second ticket model.
## Data-subject Requests
`privacy.dsar.helpdesk` covers only Helpdesk-owned configuration actor
attribution. Profiles and their immutable history contain institutional policy,
not customer ticket data; evidence is retained and any correction is made by a
new authorized profile revision.