Repository navigation
Add plain HTML frontend served by the API at /app - #40
amar-python wants to merge 1 commit into
Conversation
web/index.html is a single-file, build-free frontend for the FastAPI backend: import with server-side preview, column types, new-table or T&E-table mode and skip/replace duplicates; migrated files with a row viewer and delete; T&E table row counts; and the deletion log. It sends X-API-Key when a key is set in the page. api/main.py mounts web/ at /app when the folder exists, so the page is same-origin and needs no CORS change. Adds a unit test for /app and a README section. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011kQy94A5cnQL9N86Q6Tkhi
|
Cause: the job sets
Proposed fix ( - name: Full test suite — final result with skip accounting
env:
PGDATABASE: te_mgmt_dev
run: python3 scripts/test_report.py --strictNo fix PR exists yet. I haven't re-run the job, because Generated by Claude Code |
|
Closing per ART decision 9 (approved 2026-10-26, Generated by Claude Code |
Adds
web/index.html, a single-file frontend with no build step, and serves it from the API at/app. The existingcsv-table-hub-main/frontend is unchanged.What the page does (all through the existing API)
POST /api/csv/preview; choose column types; load into a new table or a T&E table (preselects theteTableMatchsuggestion); skip or replace files already imported (overwrite)GET /api/csv/fileswith S.No. and pagination; row viewer for new tables (/tables/{name}/rows); delete, with a clear message whenAPI_ALLOW_DESTRUCTIVEis offGET /api/te/tables(deployed or not, approximate row counts)GET /api/audit/log, paged/api/health; an API key button that sendsX-API-Key; light/dark themeBackend change:
api/main.pymountsweb/at/appwithStaticFileswhen the folder exists. The page is same-origin, soCORS_ORIGINSdoesn't change. The mount is skipped ifweb/isn't shipped.Tests
/app/serves the pagescripts/test_report.py --markers "unit or regression or security or snapshot" --strict: PASSmake lintandmake health: passtests/test_api_integration.pyandtests/test_te_loader_integration.py: pass against PostgreSQL 16API_KEYset: missing-key message, key entry, 5-file import (new tables, an empty file, one T&E file with a rejected row), duplicate then replace, row viewer, delete, deletion log, T&E page, dark theme and 400px width; no console errorsTry it
🤖 Generated with Claude Code
https://claude.ai/code/session_011kQy94A5cnQL9N86Q6Tkhi
Generated by Claude Code