Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

academy: real xWiki setup steps in Part 4 of the DeskDesk tutorial#34

Merged
rubenvdlinde merged 1 commit into
developmentfrom
feature/deskdesk-tutorial-part-4-xwiki-real
May 11, 2026
Merged

academy: real xWiki setup steps in Part 4 of the DeskDesk tutorial#34
rubenvdlinde merged 1 commit into
developmentfrom
feature/deskdesk-tutorial-part-4-xwiki-real

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Collaborator

Summary

Rewrites Part 4 of the DeskDesk tutorial from a paper walkthrough with placeholder URLs to the actual flow we ran against a local xWiki + the ConductionNL/deskdesk#4 reference implementation that just merged.

What's new

  • Step 0 + 0a: actual docker-compose profile, postgres database bootstrap, Distribution Wizard walk-through ("Let the wiki be empty" path so no internet is required for the bundled flavor).
  • Step 1: REST PUT recipe for three zone-scoped articles using a subspace-per-zone shape (DeskDeskKnowledge.East/Central/West) — replaces the original tags approach since the no-flavor wiki doesn't ship the Tags app.
  • Step 2: explicit `knowledge_article` schema with the JSON-key-equals-slug trap called out (a real foot-gun we hit during dogfooding).
  • Steps 3-4: OpenConnector source + synchronization with the right URL (container-internal `http://openregister-xwiki:8080/rest\`) + the `Accept: application/json` header.
  • Step 5: real KnowledgeTab.vue with the watch-objectId pattern + the CnAppRoot `#sidebar` slot wiring App.vue needs for CnDetailPage's external-sidebar channel.
  • Troubleshooting: four real gotchas we hit while building — schema slug mismatch, DetailPageWrapper bridging, empty-flavor path, JSON header.

Test plan

  • `npm run build` succeeds; built HTML at `build/academy/deskdesk-tutorial-4-knowledge-and-ship/index.html` rebuilds with the new content
  • The matching deskdesk PR Bump symfony/security-http from 4.2.4 to 4.2.12 #4 is verified live: 3-East desk shows "East zone etiquette", 2-West desk shows "West zone quiet rules"
  • post-merge: visual sanity-check on the live academy

Generated with Claude Code

Part 4 was previously a paper walkthrough with placeholder URLs.
Rewrites it as the actual flow we ran against a local xWiki:

- New Step 0 + Step 0a: docker-compose --profile xwiki up -d, create
  the xwiki database in the shared Postgres, walk the Distribution
  Wizard (admin user, "Let the wiki be empty"), verify REST.
- Step 1: REST PUT recipe for the three zone-scoped articles using
  the actual subspace shape (DeskDeskKnowledge.{East,Central,West}).
  Subspaces replace the original "tags" approach because the
  no-flavor wiki ships without the Tags application.
- Step 2: knowledge_article schema with the actual JSON key/slug
  match-or-fail trap called out explicitly. Wires SCHEMA_SLUGS in
  PHP and the SCHEMAS list in the frontend store.
- Step 3-4: OpenConnector source + synchronisation against the
  container-internal http://openregister-xwiki:8080/rest URL (the
  host URL http://localhost:8086 is documented as the alternative).
- Step 5: real KnowledgeTab.vue with the watch-objectId pattern that
  the reference repo at ConductionNL/deskdesk now ships. App.vue
  shows the CnAppRoot #sidebar slot + objectSidebarState wiring
  consumers need to make CnDetailPage's external-sidebar channel
  work.
- New Troubleshooting block covering the four traps we hit while
  building this: schema-key/slug mismatch, DetailPageWrapper
  bridging, "Let the wiki be empty" path for offline containers,
  Accept-JSON header on the OpenConnector source.

Cross-links to the reference repo at ConductionNL/deskdesk (PR #4
shipped the matching Part 4 implementation).
@rubenvdlinde
rubenvdlinde merged commit 61525ef into development May 11, 2026
3 checks passed
@rubenvdlinde
rubenvdlinde deleted the feature/deskdesk-tutorial-part-4-xwiki-real branch May 11, 2026 08:05
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant