feat(storage): add Supabase object storage and reduce exposed API surface
harryagasi
e4eafe1
- add provider-selectable object storage with Supabase S3 support
- refactor document upload/process/delete to use object storage abstraction
- update health and dependency checks to report provider-neutral storage status
- require business_questions in analysis creation contract
- add analysis-scoped data catalog rebuild coverage
- unwire deprecated and skills endpoint groups from active routing
- remove deprecated/skills endpoints from generated Swagger docs
- add tests for storage config, document storage flow, health, and disabled routes
[KM-418]feat: align analysis flow contracts and scoped catalog rebuild
harryagasi
80fa986
- document frontend and Python agentic API contracts
- require business_questions when creating analyses
- persist role-explicit analysis conversation messages
- add analysis-scoped catalog rebuild from data_bind
- update generated Swagger docs for frontend integration
- Add ColStat (min, max, mean, median, distinct_count) to catalog Column model
- Compute column stats for tabular documents (CSV/XLSX) and DB-sourced columns
- Enrich MySQL and Postgres connector introspection with per-column stats and top-3 sample values
- Support per-sheet parquet upload for XLSX documents; fix delete to clean up all sheet parquets
- Implement GetDecryptedDSN and ListClientIDs on database_clients.Service to satisfy catalog.DBClientReader
- Wire SetDBClientReader to resolve circular init dependency between catalog and database_clients
- Add structured request-scoped logging (request_id, elapsed_ms) across upload handler and service
- Fix credentials INSERT/UPDATE to use ::jsonb cast; unify blobName to use docID
- Change default dev port from 8080 to 8081
[KM-578][DED][AI] Migrate Data Catalog functionality to go service
ticket: https://bukittechnology.atlassian.net/browse/KM-573
Root cause confirmed: Windows TCP Autotuning shrinks the receive window
to ~4 KB on loopback (RTT ≈ 0), causing 675 syscalls × 26ms delayed-ACK
= ~17.5s to read a 2.76 MB body. Azure upload itself takes only ~300ms.
Changes:
- cmd/server/main.go: wrap listener with uploadFriendlyListener that sets
TCP_NODELAY and SO_RCVBUF=1MB on every accepted connection
- internal/documents/handler.go: replace r.MultipartReader() with a custom
multipart.NewReader over bufio.NewReaderSize(r.Body, 1MB) to reduce
syscall count; add POST /api/v1/document/upload-local for benchmarking
- internal/documents/service.go: split upload into two timed phases
(body received / azure upload) for diagnostics; add UploadLocal method
that writes to files/ folder for storage backend comparison
- internal/documents/azure_blob.go: tune BlockSize to 1MB, Concurrency 4
- internal/repository/postgres/db.go: append binary_parameters=yes to
connection st…
[KM-467] [DED][AI] Go service full migration — add auth, rooms, documents, DB clients, catalog modules, DB init, and user seeder
room based session management and interview result API
ticket: https://bukittechnology.atlassian.net/browse/KM-462
- Add user_id and room_id to session creation; each room maps to one
active session so re-interviews replace the previous result
- Return full InterviewResultDTO (sections, Q&A pairs, insights) from
POST /sessions/{id}/finish instead of a local file path
- Add GET /rooms/{room_id}/result endpoint to retrieve the latest
finished interview result for a room
- Add CORS middleware with ALLOWED_ORIGINS env support so browser
clients can reach the API
- Update API_CONTRACT_INTERVIEW.md and README.md to reflect all changes