Skip to content

Improve and re-organize documentation#2382

Open
kalinkostashki wants to merge 3 commits intoeclipse-ditto:masterfrom
boschglobal:improvement/restructure-docs
Open

Improve and re-organize documentation#2382
kalinkostashki wants to merge 3 commits intoeclipse-ditto:masterfrom
boschglobal:improvement/restructure-docs

Conversation

@kalinkostashki
Copy link
Copy Markdown
Contributor

  • restructured sidebar to be more user friendly and intuitive
  • fixed not working links to pages
  • added a common writing style for all pages
  • added an indexed search via pagefind

@kalinkostashki kalinkostashki force-pushed the improvement/restructure-docs branch from 17c0248 to f6f37aa Compare March 30, 2026 08:41
… split operatinos

Reorganize the documentation sidebar into a logical 10-section
structure:
  Getting Started, Core Concepts, Architecture, Connectivity, APIs &
Interfaces,
  WoT Integration, Operating & Extending, Ditto Protocol, Release Notes,
Resources.

  - Rewrite sidebar navigation from flat layout to grouped sections with
subfolders
  - Move Architecture section before Connectivity for better reading
flow
  - Rename "Connecting Devices" to "Connectivity" to reflect backend
integrations
  - Promote Connections from Advanced Capabilities to its own Core
Concepts subsection
  - Wire 5 new operating sub-pages (Configuration, Authentication,
MongoDB,
    Monitoring, DevOps Commands) into the sidebar under Operating &
Extending
  - Create real Connectivity overview page replacing redirect stub
  - Apply second-person active voice and present tense across all pages
  - Add TL;DR callouts summarizing key concepts on each page
  - Add code block language tags (json, hocon, text) throughout
  - Add "Further reading" sections with cross-reference links
  - Restore inline code formatting on technical terms (HTTP methods,
field names,
    entity types, permission names, encoding standards)
  - Preserve all upstream Ditto 3.9.0 content (encryption migration,
namespace
    root policies, fn:format(), WoT Discovery, deprecationNotice)
…n search

- Replace search widget in topnav.html with Pagefind UI
- Add data-pagefind-body to default layout to scope indexing to content
only
- Add Pagefind post-build step (npx pagefind) to both Linux and Windows
 Maven profiles via exec-maven-plugin
- Replace old search CSS with Pagefind UI overrides matching Ditto theme
- Delete search.json (no longer needed)
- fixed blog posts
- fixed open-api docs
@kalinkostashki kalinkostashki force-pushed the improvement/restructure-docs branch from f6f37aa to 8c243d4 Compare April 17, 2026 11:05
@thjaeckle
Copy link
Copy Markdown
Member

Documentation Content Integrity Review

Disclosure: This is a quick LLM-assisted analysis of the proposed changes — comparing old vs. new content across all 132 changed files to check whether the essence of the documented content is preserved. Manual verification of flagged items is recommended.

PR summary: Restructures sidebar, applies consistent writing style (TL;DR callouts, "Overview / How it works / Further reading" pattern), adds pagefind search. +8437/-12631 lines across 132 files.

Good news: No pages were dropped from the sidebar. All 291 URLs are preserved. Five new operating pages were added. The structural reorganization is clean (14 top-level sections → 10 logical groupings).


HIGH CONCERN — Significant technical content removed

These should be reviewed to decide if the removed content should be restored (e.g. as collapsible sections):

1. connectivity-mapping.md — Heaviest losses in the PR

  • Full Java FooMapper class implementation → replaced with 3-line method summary
  • Complete JavaScript helper implementations (buildDittoProtocolMsg, buildTopic, buildExternalMsg, arrayBufferToString, etc.) → replaced with function signatures only
  • Full mapFromDittoProtocolMsgWrapper default impl (with hasChannel() logic, multi-content-type handling) → replaced with stub comment
  • ConnectionStatus mapper feature JSON example with definition removed
  • Normalized mapper _deleted event example and _deletedFields example removed
  • RawMessage mapper complete before/after worked example (AMQP/MQTT message with hex bytes + headers) → replaced with table
  • UpdateTwinWithLiveResponse mapper dittoHeadersForMerge/put-metadata config example removed
  • Text/Bytes payload examples with mosquitto_pub command and hex byte-layout explanation removed
  • ByteBuffer.js usage examples removed

2. connectivity-hmac-signing.md

  • Full HOCON config block for algorithm registration removed
  • Readable standalone JavaScript mapping functions for AWS SNS, S3, Azure IoT Hub, Azure Service Bus → removed (only inline compressed versions remain in JSON)
  • Azure IoT Hub direct method JSON example and live message curl command removed
  • Explicit parameter descriptions for each integration removed
  • Algorithm/connection-type compatibility matrix removed

3. Protocol specification Things pages (create-or-modify, retrieve, delete, merge)

  • All four sub-pages gutted to redirect stubs — content consolidated into protocol-specification-things.md
  • Full Response/Event tables (topic, path, value, status per command) → reduced to one-line summaries
  • Nuances lost: when value field is present vs. absent in responses, created-vs-modified event conditional logic

4. user-interface.md

  • Complete TypeScript type definitions for AuthSettings, OidcProviderConfiguration, BasicAuthSettings, BearerAuthSettings, PreAuthSettings, AuthMethod enum → all removed
  • local_ditto_ide pre-auth environment example removed
  • oidc_example with full OIDC provider config (authority, client_id, redirect_uri, scope) removed
  • post_logout_redirect_uri and silent refresh callback requirement removed

5. intro-hello-world.md

  • Full 7-feature floor lamp Thing JSON (Spot1-3, ConnectionStatus, PowerConsumption, SmokeDetection, Status-LED) → removed entirely
  • Explanation of attributes vs. features vs. definition removed
  • Concrete org.eclipse.ditto:fancy-car example replaced with generic placeholders (no longer copy-pasteable)

6. basic-connections.md

  • Response diversion examples with full JavaScript determineTargetConnection mapper function removed
  • Target topics enrichment table (which topics support extraFields) removed
  • nginx: prefix operational note for auth subjects removed
  • Custom ack label in source config example dropped

7. basic-acknowledgements.md

  • "HTTP cannot issue acks" note removed entirely
  • WebSocket/connection label conflict warning removed
  • Detailed QoS subsections (twin-persisted, live-response, custom label) reduced to bullet list
  • Response headers (version, etag, location) removed from success example

MEDIUM CONCERN — Useful detail lost

File What was lost
basic-signals.md CQRS/DDD quotes from cqrs.nu removed; sub-page navigation links removed
basic-metadata.md Combined wildcard+specific metadata example removed; /features-level wildcard table removed
basic-history.md next/complete protocol message JSON examples removed
basic-conditional-requests.md Empty-object removal before/after example removed; /features-level conditional merge removed
basic-search.md Array query ne operator examples removed; limit(0,10) introductory example removed
httpapi-concepts.md 4 of 6 field selector worked examples with JSON responses removed
protocol-specification-things-messages.md "Received message" and "message response" full JSON examples removed
connectivity-protocol-bindings-amqp10.md Source-direction header mapping examples for amqp.application.property: prefix removed
connectivity-protocol-bindings-http.md Full OAuth2 HOCON config with env variable overrides removed; implicit response field docs lost
connectivity-protocol-bindings-mqtt.md reconnectForRedelivery false-case caveat removed; AWS IoT QoS 2 note removed
connectivity-protocol-bindings-mqtt5.md clientCount collision detailed explanation removed; reconnectForRedelivery caveat removed
connectivity-protocol-bindings-kafka2.md Debug-mode RecordMetadata fields list removed
installation-extending.md Full gateway.conf health-check default config with env var override removed
client-sdk-java.md Pekko streams integration example removed

LOW CONCERN / Corrections (likely intentional)

  • basic-feature.md: "future releases will add processing" → "this is your application's responsibility" (likely intentional update)
  • basic-connections.md: Target auth subject fixed from ditto:inbound-auth-subject to ditto:outbound-auth-subject (bug fix)
  • protocol-specification.md: Custom header prefix example changed from ditto-* to myapp-* (correction — ditto-* is reserved)
  • basic-overview.md: "API version 2" qualifier removed (v1 no longer exists)
  • operating-mongodb.md and operating-monitoring.md: New files but empty — placeholder only

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants