You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Aug 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Aug 4, 2026. It is now read-only.
Rewrite DeskDesk to consume the pluggable integration registry (drop the bespoke knowledge tab + knowledge_article schema) #5
DeskDesk currently surfaces "knowledge articles" via a bespoke path:
src/views/KnowledgeTab.vue — a hand-rolled sidebar tab
a knowledge_article schema in lib/Settings/deskdesk_register.json (+ references in lib/Service/SettingsService.php, src/store/modules/{object,settings}.js, src/store/store.js)
a "sync" placeholder
OpenRegister now ships a pluggable integration registry (umbrella pluggable-integration-registry, ADR-019) with an XWiki "Articles" leaf (openregister #1493 backend, nextcloud-vue #213 frontend). DeskDesk should drop the bespoke path and consume the registry instead — that's the whole point of building the leaf.
What "consume the registry" means here
src/main.js — after the lib CSS import, install the registry shim + register the providers:
manifest.json — for the desks-detail page, replace config.sidebar.tabs: [...] (the bespoke data/knowledge/metadata set) with config.sidebar: { useRegistry: true } (optionally excludeIntegrations: [...]). This needs nextcloud-vue #218 (CnDetailPage.sidebar now accepts useRegistry and pushes it through objectSidebarState).
src/App.vue — the #sidebar-slot <CnObjectSidebar> must bind the two new state fields so the manifest value takes effect:
(alongside the :tabs / :hidden-tabs / :register / :schema it already binds). Drop the KnowledgeTab import + the customComponents['knowledge-tab'] entry.
Backend — remove the knowledge_article schema from lib/Settings/deskdesk_register.json and the references in SettingsService.php / the stores. Articles now come from the xwiki integration (an OpenConnector xwiki source — see openregister/docs/Integrations/xwiki.md + docs/Integrations/xwiki-openconnector-source.yaml), not a DeskDesk-local schema + sync.
src/views/KnowledgeTab.vue — delete (replaced by CnXwikiTab from the registry).
Also: a bug to fix while we're in there
While live-testing the rewrite, the desks-detail page logged:
TypeError: Cannot read properties of undefined (reading '@self')
in DeskDesk's detail render path (one of the wrappers — DetailPageWrapper.vue or a store module reading object['@self'] before the object is loaded). Reproduce by opening /apps/deskdesk/desks/:id; needs a null-guard / loading-state check.
Then: Part 4 of the tutorial
Once the rewrite works end-to-end (XWiki source configured, Articles tab populated), rewrite the Part 4 MDX tutorial — "wire DeskDesk's knowledge surface to an external XWiki via the integration registry" — with real screenshots of the Articles tab + the detail-page preview. (Keep the current wrong-shape Part 4 until then.)
Depends on
openregister: umbrella #1307 + the integration-xwiki leaf #1493 — merged
Activity