docs: hiveops-guide redesign plan (markdown + API + tabbed slide-out)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-30 23:37:16 -04:00
parent 59fce91714
commit 9c91c56672
+48
View File
@@ -0,0 +1,48 @@
# hiveops-guide — Design (approved 2026-06-30)
One knowledge base that (a) teaches customers how each module works and (b) is the
source-of-truth for module behavior (for admins + Claude). Markdown-authored, served by the
backend API, read in a tabbed slide-out.
## Decisions (Johannes, 2026-06-30)
1. Content = **markdown files in git**, still served via **backend API calls** (not bundled in
the frontend).
2. **Start over** — greenfield. No backward-compat with the old `content_json` guides or the
`/api/v1/guides/{pageKey}` contract; the Fleet "Guide" buttons get re-wired to the new API.
3. **Retire the Guide Admin CRUD app.** The guide keeps **internal docs** (technical guides for
admins/Claude, `audience: internal`).
## Content model — markdown in the repo
`content/<app>/<module>/*.md` — folder per module, **one file per tab**. Frontmatter:
```yaml
---
module: devices.sw-deploy
title: Software Deployment
tab: The Data # the tab label in the slide-out
order: 20 # tab order
audience: customer # or "internal" (hidden from customers)
---
<markdown body>
```
Cross-cutting technical guides: `content/technical/*.md` (e.g. fleet→Kafka→devices, service map).
## Backend (Spring Boot service kept; model replaced)
- Scans `content/**/*.md` at startup (cached), parses frontmatter + body.
- API (JWT-gated):
- `GET /api/v1/guide/nav?audience=` → apps → modules → tabs tree
- `GET /api/v1/guide/modules/{module}?audience=` → module + its tabs (markdown bodies)
- Remove the DB `content_json` model + admin CRUD endpoints. `audience` gates customer vs internal.
## Frontend
- New **tabbed slide-out reader** (markdown rendered with `marked`); nav + tabs from the API.
- Retire the Guide Admin CRUD app.
## Consumers
- Re-wire the Fleet "Guide" buttons (and future in-app guide entry points) to the new API.
## Phases
1. **Backend** — markdown content model + `nav`/`modules` API; retire DB/CRUD.
2. **Frontend** — tabbed slide-out reader.
3. **Content** — author `devices.sw-deploy` + `fleet.tasks` as the pattern (Overview / Data /
How-to + an internal Technical tab), then fan out to all modules.
4. **Technical guides** (internal) — fleet→Kafka→devices, service map, etc.