This directory contains the documentation for the PDAP Data Sources App, the API powering pdap.io.
- Architecture Overview — How the system is structured: the dual Flask/FastAPI architecture, middleware layers, database layer, and request flow.
- API Overview — The v2 (Flask-RestX) and v3 (FastAPI) APIs, versioning strategy, and migration plan.
- Authentication — Auth methods (JWT, API key, OAuth), token lifecycle, and permission model.
- Endpoints — Summary of available endpoint namespaces and what they do.
- Setup — Getting the app running locally (environment, dependencies, database, secrets).
- Database — Schema overview, Alembic migrations, query builders, and test databases.
- Testing — Running tests, writing tests, CI test infrastructure, and manual tests.
- Workflow — Branching strategy, PR process, CI/CD checks, and code standards.
- Troubleshooting — Common issues and how to fix them.
Several directories contain component-specific READMEs with additional detail:
| Location | Topic |
|---|---|
DESIGN.md |
Architectural migration decisions (current and historical) |
CHANGELOG.md |
Version history and breaking changes |
ENV.md |
Full list of environment variables |
CONTRIBUTING.md |
Contribution guidelines |
endpoints/README.md |
Flask-RestX swagger / namespace patterns |
local_database/README.md |
Local test database setup |
local_database/DataDumper/README.md |
Database backup/restore utility |
relation_access_permissions/README.md |
Column-level permission CSV config |
middleware/ READMEs |
Various middleware component docs |
db/queries/builder/mixins/README.md |
Query builder mixin docs |