docs: add TOC, package links, and required/optional env column#19
Merged
Conversation
- Add Table of Contents with anchor links to every section - Link each Tech Stack row to the canonical package docs - Add 'Required' column to Environment Variables table, marking values that production config validation rejects when left as defaults (DATABASE_URL, SECRET_KEY, CORS_ORIGINS) - Reorder env vars so ENVIRONMENT is first (since 'Required' semantics depend on it) Closes #13 Closes #14 Closes #15
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.
Summary
Knocks out the three open README housekeeping issues in one PR.
Closes #13 — adds a Table of Contents with anchor links to every top-level section and key subsections.
Closes #14 — links each row in the Tech Stack table to the canonical package docs (FastAPI, PostgreSQL, asyncpg, SQLAlchemy, Alembic, FastAPI-Users, slowapi, uv, Docker, Docker Compose, Pytest, pytest-asyncio, Ruff, pre-commit).
Closes #15 — adds a "Required" column to the Environment Variables table.
Required/Optional semantics
Every env var in
app/config.pyhas a default value, so strictly speaking nothing is required to start the app in dev. The "Required" column instead reflects what production config validation (Settings.validate_production_settings) enforces:SECRET_KEY— rejects weak defaults and values shorter than 32 charsDATABASE_URL— rejects the defaultpostgres:postgres@credentialsCORS_ORIGINS— empty in prod means the frontend can't talk to the backend (dev useslocalhost:5100-5199regardless of this var)These three are marked Required; everything else is Optional. The table has an intro sentence explaining the semantics so readers don't need to dig into config.py.
Also reordered the table so
ENVIRONMENTappears first, since the "Required" semantics depend on it.Test plan
uv run ruff format --check .— clean