Skip to content

feat(docs): data dictionary export (living documentation)#441

Open
seonghobae wants to merge 2 commits into
adhesive-piperfrom
feat/data-dictionary
Open

feat(docs): data dictionary export (living documentation)#441
seonghobae wants to merge 2 commits into
adhesive-piperfrom
feat/data-dictionary

Conversation

@seonghobae

Copy link
Copy Markdown
Collaborator

Stacked on adhesive-piper (PR #440). Implements P1 from docs/valuation-gap-analysis.md.

Living documentation

GET /api/snapshots/{uuid}/data-dictionary.md renders a Markdown data dictionary from a snapshot — tables, columns (type/null/default/PK·FK/comment/example value), foreign keys, non-PK indexes, view/mview labels — merged with the project's table annotations. The annotation feature now doubles as human-authored docs alongside the introspected structure.

  • pure/dialect-agnostic renderer (app/spec/data_dictionary.py), IDOR-safe endpoint
  • frontend: 📖 toolbar button → downloads data-dictionary.md

Verification

backend pytest 262 passed (+4), frontend vitest 136, tsc clean

🤖 Generated with Claude Code

seonghobae and others added 2 commits July 5, 2026 22:55
…tions

snapshot_to_data_dictionary_md renders a living-documentation dictionary from a snapshot (tables, columns, PK/FK markers, defaults, comments, example values, non-PK indexes, view/mview labels) merged with the project's table annotations. Endpoint GET /api/snapshots/{uuid}/data-dictionary.md (IDOR-safe). Frontend: api fetchDataDictionaryMarkdown + demo, toolbar '📖' button downloading data-dictionary.md. +4 backend tests (262 total); tsc clean, frontend 136 tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AxU2xaupAjp912oDNFuWyd
Same one-line union-attr fix as on adhesive-piper; makes backend CI (mypy) green on this stacked branch. Collapses at rebase/merge onto the fixed base.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AxU2xaupAjp912oDNFuWyd
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.

1 participant