Summary
Track every component that surfaces or manages other Nextcloud apps' data inside @conduction/nextcloud-vue. The pattern is the same in every case:
- The OpenRegister backend already integrates with the target app (a
<App>Service exists).
- The library is missing the matching UI surface — typically a tab inside
CnObjectSidebar that lists / creates / unlinks the related entity.
- Apps using OpenRegister get the integration for free as soon as the component lands.
This epic groups the open ones, lists the obvious candidates, and is the place to file new sub-tasks as more NC apps get OpenRegister-side integration.
In scope
A component qualifies for this epic when all of these are true:
- It surfaces or manipulates data that lives in another Nextcloud app (not in OpenRegister itself).
- The OpenRegister backend already exposes the integration via a service / controller.
- It is mountable inside
CnObjectSidebar (the canonical placement for object-related cross-app data) or, when the integration is admin-facing, surfaces in a settings / management panel.
OpenRegister-internal UI work (audit export, webhook manager, semantic search bar, text-extraction status, chat widget) does not belong here — those are OpenRegister UI completeness, not ecosystem integration.
Open sub-tasks
Candidates worth filing as the OR backend lands them
The OR side of these typically lands first via the integration registry (ADR-019) — when a new integration ships there, the matching Cn*Tab becomes the natural follow-up here.
How to add a new sub-task
- Confirm the OR-side integration exists (search OpenRegister for
<App>Service or the integration-registry leaf).
- Open a new
feat: issue in this repo with the same shape: Description / Requirements / Backend API / Acceptance.
- Add it to the checklist above with
- [ ] #<number>.
- The new issue should reference this epic with
Tracked by #<this-issue> so the back-link shows up automatically.
Out of scope
These are listed elsewhere or have their own homes:
Summary
Track every component that surfaces or manages other Nextcloud apps' data inside
@conduction/nextcloud-vue. The pattern is the same in every case:<App>Serviceexists).CnObjectSidebarthat lists / creates / unlinks the related entity.This epic groups the open ones, lists the obvious candidates, and is the place to file new sub-tasks as more NC apps get OpenRegister-side integration.
In scope
A component qualifies for this epic when all of these are true:
CnObjectSidebar(the canonical placement for object-related cross-app data) or, when the integration is admin-facing, surfaces in a settings / management panel.OpenRegister-internal UI work (audit export, webhook manager, semantic search bar, text-extraction status, chat widget) does not belong here — those are OpenRegister UI completeness, not ecosystem integration.
Open sub-tasks
CnDeckCardTab— create/view Deck cards from object sidebarCnCalendarEventTab— create/view calendar events from object sidebarCnFileVersionsModal— show file version history with restoreCandidates worth filing as the OR backend lands them
CnTalkRoomTab— link an OpenRegister object to a Nextcloud Talk conversation, list participants, deep-link to the roomCnMailThreadTab— surface linked emails for an object (replaces the current ad-hocmail/X-OPENREGISTER-*patterns)CnTaskListTab— Nextcloud Tasks (CalDAV) integration, parallel to CnDeckCardTabCnContactCardTab— Nextcloud Contacts: link / display / createCnBookmarkTab— Nextcloud BookmarksCnNotesTab— Nextcloud NotesCnPhotosTab— Nextcloud Photos / Memories album linkageCnFilesUploadDropzone— drag-drop upload that goes through Nextcloud Files (versions + permissions)The OR side of these typically lands first via the integration registry (ADR-019) — when a new integration ships there, the matching
Cn*Tabbecomes the natural follow-up here.How to add a new sub-task
<App>Serviceor the integration-registry leaf).feat:issue in this repo with the same shape: Description / Requirements / Backend API / Acceptance.- [ ] #<number>.Tracked by #<this-issue>so the back-link shows up automatically.Out of scope
These are listed elsewhere or have their own homes: