diff --git a/Repo-README.md b/Repo-README.md index cf4298d..ab20e38 100644 --- a/Repo-README.md +++ b/Repo-README.md @@ -1,4 +1,4 @@ - + > Mirrored from `/mnt/DATA/git/govoplan-scheduling/README.md`. > Origin: `repository`. @@ -7,9 +7,16 @@ --- # GovOPlaN Scheduling -GovOPlaN Scheduling owns meeting scheduling and `Terminfindung`: finding suitable times across people, resources, calendars, constraints, and scheduling polls. +GovOPlaN Scheduling owns meeting scheduling and `Terminfindung`: finding +suitable times across people, resources, calendars, constraints, and scheduling +polls. -This repository is currently a tag-only scaffold. It should gain package metadata and module manifests only after the first backend or WebUI slice is designed. +This repository is currently a tag-only scaffold. It should gain package +metadata, a backend manifest, and a WebUI package together when the first +implementation slice is designed. + +The core decision register is +`/mnt/DATA/git/govoplan-core/docs/MODULE_BOUNDARY_DECISIONS.md`. ## Scope @@ -21,6 +28,7 @@ Scheduling owns: - candidate-slot ranking and conflict explanation - scheduling state, reminders, and decision handoff - optional links to external calendar/groupware systems through capabilities +- organizer permissions and poll administration semantics Scheduling does not own: @@ -29,6 +37,40 @@ Scheduling does not own: - tasks, case work, approvals, and generic workflow state; those belong in `govoplan-tasks`, `govoplan-cases`, and `govoplan-workflow` - mail delivery or notifications; those belong in `govoplan-mail` and `govoplan-notifications` +## Poll Audience Decision + +Scheduling polls should support both internal and external/public +participation, but the first implementation may start internal-only. + +- Internal polls use Access/IDM identities, groups, permissions, and calendar + free/busy capability lookups. +- External/public polls use signed participation links through Portal, minimal + participant identity, and explicit retention/privacy settings. +- Mixed polls are allowed only when the organizer has permission to invite + external participants and the poll explains which participant data is visible. + +## Privacy, Retention, And Audit + +Participant availability is sensitive operational data. Scheduling must record: + +- poll creator, tenant, organizer, invited participants, and access scope +- what each participant can see about other participants +- retention deadline for availability responses and poll links +- audit events for poll creation, invite send, response update, decision, + cancellation, and handoff +- trace IDs for mail/notification/portal handoff + +Availability responses should be removable or redacted after the poll decision +unless a configured process requires longer evidence retention. + +## Candidate Capabilities + +- `scheduling.polls` +- `scheduling.availabilityCollector` +- `scheduling.candidateSlots` +- `scheduling.decisionHandoff` +- `scheduling.portalParticipation` + ## Expected Integrations - `govoplan-calendar`: availability, calendars, resources, rooms, recurrence, Open-Xchange/calendar adapters @@ -38,12 +80,15 @@ Scheduling does not own: - `govoplan-portal`: external participant scheduling flows - `govoplan-workflow` and `govoplan-tasks`: follow-up work after a time is selected -## Initial Backlog +## First Package Scaffold Decision -The active backlog lives in Gitea issues. Start with: +The first scaffold should include both backend and WebUI package metadata once +implementation starts: -- define the scheduling module boundary -- decide whether scheduling polls are internal-only, external/public, or both -- define the relationship between scheduling proposals and calendar events -- define privacy and retention rules for participant availability -- define capability contracts with calendar, access, IDM, mail, notifications, portal, and appointments +- backend manifest, permissions, DTOs, and APIs for internal polls +- WebUI route contribution for poll creation and response collection +- capability contracts for calendar free/busy, access/IDM lookup, + mail/notification sending, portal participation links, appointment handoff, + and workflow/task follow-up + +The active backlog lives in Gitea issues.