chore: sync GovOPlaN module split state

This commit is contained in:
2026-07-10 12:51:19 +02:00
parent 514e1ef96e
commit d2ba4ce4d8
8 changed files with 807 additions and 0 deletions

View File

@@ -0,0 +1,71 @@
# OpenDesk Integration Map
OpenDesk is an integration profile across GovOPlaN modules, not a monolithic
GovOPlaN module. The profile should let an operator see which OpenDesk
components are connected, which GovOPlaN module owns each behavior, and which
optional capabilities are available.
The core boundary decision register is in
`/mnt/DATA/git/govoplan-core/docs/MODULE_ARCHITECTURE.md`.
## Component Routing
| OpenDesk area | Example component | GovOPlaN owner | Integration behavior |
| --- | --- | --- | --- |
| Identity and directory | OpenDesk IDM, LDAP, AD, OIDC, SAML, SCIM | `govoplan-idm`, `govoplan-access` | integrate, synchronize selected accounts/groups, map principals and memberships |
| Mail/groupware | Open-Xchange mail | `govoplan-mail` | integrate, link profiles, test mailbox/send/append, keep mail semantics in mail |
| Calendar/groupware | Open-Xchange calendar, CalDAV/CardDAV | `govoplan-calendar` | integrate, free/busy lookup, selected event sync, resource calendars |
| Files/documents | Nextcloud/WebDAV/files, office integrations | `govoplan-files`, later `govoplan-dms` | integrate, import/link files, keep document lifecycle in DMS |
| Project management | OpenProject | `govoplan-connectors`, consumers in tasks/workflow/cases | connector-first, link/synchronize selected work packages |
| Portal/collaboration | Portal/chat/video/office services where present | `govoplan-portal`, `govoplan-connectors`, `govoplan-dms`, `govoplan-workflow` | link/integrate only when a process needs it |
| Inventory and diagnostics | endpoint catalogue, profile health, version checks | `govoplan-connectors` | catalogue, profile test, health summary, optional capability discovery |
## Integration Behavior
- `integrate`: call a stable API or protocol for the component.
- `link`: store external references and open the external tool for
source-of-truth work.
- `import`: bring selected files/records into GovOPlaN-owned storage or
evidence.
- `synchronize`: keep selected records aligned through explicit source-of-truth
rules.
- `replace selected workflow`: only when GovOPlaN owns tighter governance,
audit, retention, or configuration-package state than the OpenDesk component.
## Shared Assumptions
- Identity is the first dependency. Mail, calendar, files, and project
connectors should record which identity profile or tenant mapping they expect.
- Connector profiles store references to secrets, never secret values.
- Module consumers discover optional behavior through core capabilities and
module metadata.
- The profile must work partially: an installation can have OpenProject without
Open-Xchange, or calendar without files.
## Candidate Profile Shape
```json
{
"id": "opendesk-main",
"display_name": "OpenDesk",
"components": {
"identity": {"profile_id": "opendesk-idm", "owner": "govoplan-idm"},
"mail": {"profile_id": "ox-mail", "owner": "govoplan-mail"},
"calendar": {"profile_id": "ox-calendar", "owner": "govoplan-calendar"},
"files": {"profile_id": "nextcloud-main", "owner": "govoplan-files"},
"projects": {"profile_id": "openproject-main", "owner": "govoplan-connectors"}
}
}
```
## Follow-Up Implementation Issues
Existing high-priority module issues:
- `govoplan-idm#1`: LDAP, Active Directory, OpenDesk identity services.
- `govoplan-mail#5`: Open-Xchange mail/groupware adapter boundary.
- `govoplan-calendar#2`: Open-Xchange calendar adapter boundary.
- `govoplan-connectors#1`: OpenProject connector.
Future executable connector issues should be created in the owning module
repository when the first concrete API/profile slice is selected.