72 lines
3.6 KiB
Markdown
72 lines
3.6 KiB
Markdown
# 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.
|