Skip to content

Hygiene: stale API_INTEGRATION.md references, unpinned requirements.txt, shell-loader dedup gap, /audit naming overlap #28

Description

@amar-python

Grouped low-severity findings from a full-repo review — none urgent individually.

1. API_INTEGRATION.md references a layout that no longer exists

Mentions frontend/ (actual dir: csv-table-hub-main/) and tests/test_api.py (actually split into test_api_unit.py / test_api_integration.py / test_api_coverage.py per commit b35f7ec). Stale since the reorg.

2. Shell loaders don't dedupe sanitized column collisions

build/csv/loader_postgresql.sh (and siblings) sanitize CSV headers to ^[a-z_][a-z0-9_]*$ but don't dedupe collisions the way api/services/csv_parse.py::sanitize_columns() does (which bumps a numeric suffix). Two headers colliding after sanitization produce a CREATE TABLE with a duplicate column → raw Postgres error instead of a clean rejection. Lower priority since todos_2026-08-12.md itself notes this CLI tooling's active-use status is unclear.

3. api/requirements.txt pins only lower bounds

fastapi>=0.140.7, pydantic>=2.13.4, etc. — a fresh pip install isn't reproducible; a future major-version bump could break the API silently.

4. /audit frontend route vs. backend /api/audit/log — naming overlap, not the same data

csv-table-hub-main/src/routes/audit.tsx renders a static hardcoded developer changelog (src/lib/audit-log.ts). The backend's actual /api/audit/log endpoint (deletion history) and /api/te/tables are never called anywhere in the shipped frontend (grepped for fetch( across all of src/ — only one call site exists, in csv.functions.ts, and it only calls /api/csv/upload, /api/csv/files, /api/csv/tables/{}/rows). Given the README markets "Audit log" as a frontend feature, this is worth a naming/scope clarification even though nothing is functionally broken.

Severity

Low — hygiene and clarity, no functional risk.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions