Repository navigation
docs: sync wiki with the shipped system - #2
Merged
Merged
Conversation
The wiki was last updated 2025-12-07. Since then the API grew from a single item-store service to eleven service modules, gained a background worker, a transactional outbox, MinIO object storage and Stripe, and a storefront landed in OpenTaberna/frontend today. Several pages did not just omit that — they described a system that was never built. Database/Architecture.md documented seven tables that do not exist, home.md named MySQL and diagrammed an ELK stack, and Getting-Started.md cloned a repository layout that was never real and documented endpoints under /api/v1 rather than /v1. Rewritten against the running stack: - home.md — PostgreSQL, the real components, the four repositories - Getting-Started.md — the seven-container stack, both frontends, real ports, real health payloads, working token flow - API/Architecture.md — all 26 endpoints, response envelope, error categories - Database/Architecture.md — the 12 tables that exist, and why the normalised proposal it used to describe was not built - Configuration.md — every setting, including storage, Stripe, DHL, worker and outbox - Deployment.md — that docker-compose.yml ships only the API, and what else a production deployment therefore needs Added Authorization.md and Orders-and-Fulfillment.md, covering two subsystems the wiki had never documented at all. tools/check_wiki.py fails when the wiki drifts from the API again: an endpoint no page mentions, a documented path the API does not serve, or a broken internal link. It reads a committed OpenAPI snapshot so CI needs nothing running. tools/serve.py renders the wiki locally for review. Closes #1 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YY1ekLLeFLkAU2kvdQ8Ey4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1
The wiki was last updated on 2025-12-07. This brings it back in line with what is actually
running, and adds a check so the next nine months of drift are noisy rather than silent.
What was wrong
Beyond being incomplete, several pages described a system that was never built:
home.mdhome.mdDatabase/Architecture.mdshops,categories,item_categories,item_media,attributes,item_attributes,item_eventsGetting-Started.mdgit clone PhilippTheServer/opentabernaGetting-Started.md/api/v1/items/v1/items/Getting-Started.mdGET /health→{"status":"healthy","version":"0.1.0"}{"status":"ok","timestamp":...}Getting-Started.mdGET /returns the API versionNothing documented the authorization model, the order lifecycle, payments, the outbox,
returns, inventory, object storage or the storefront.
What changed
Every page rewritten against the running stack. Two new pages —
Authorization.mdandOrders-and-Fulfillment.md— cover subsystems the wiki had never mentioned.The database page keeps the old normalised design under "The road not taken", labelled as
a proposal, with the trade-off it was rejected for. A proposal read as a description is how
this drift started.
Verification
tools/check_wiki.pyfails when the wiki drifts from the API: an endpoint no pagementions, a documented path the API does not serve, or an internal link to a page that
does not exist. It reads a committed
openapi.snapshot.json, so CI needs nothing running.Against the old wiki content — the state this issue is about:
Against this branch:
The snapshot was generated from a live instance of the current
mainofOpenTaberna/fastapi(26 paths), with the full dev stack running. All facts in these pages— endpoints, health payloads, table columns, constraints, config defaults, the token flow —
were read from that running system or from source, not from the previous pages.
All four Mermaid diagrams were checked to render:
CI runs the check on every push and PR (
.github/workflows/check-wiki.yml). It has not runon this branch yet — this is the first workflow in the repository.
Also here
tools/serve.pyrenders the wiki locally athttp://localhost:8090with Mermaid andworking internal links, so pages can be reviewed before publishing. Standard library only.
One thing left for a human
Database/database_diagram_layout.jpgis now unreferenced — it pictures the schema that wasnever built. I have left it in place rather than delete it unasked. Worth removing in a
follow-up if nobody wants it.