feat: multipart/form-data image upload endpoint with inline pipeline
- Add POST /api/v1/ingest/with-images accepting metadata (JSON Form) + images (UploadFile list)
- Stream images to temp storage and run pipeline inline with fresh AsyncSessionLocal
- Mark raw status=processing immediately to prevent queue worker race condition
- Add process_local_file() to ImageDownloader for handling already-downloaded images
- Split pipeline image processing: _stage_process_uploaded_images vs _stage_process_remote_images
- Process uploaded images sequentially to avoid SQLAlchemy concurrent flush errors
- Commit pipeline session explicitly after inline processing
- Clean up temp files in finally block regardless of pipeline outcome
- Add python-multipart dependency for FastAPI multipart parsing
- Update README with multipart endpoint docs and examples

Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 7892489 commit 930f332a134bcda2cf2a9b6c62dd1e8d6b43cd3f
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 1 day ago
Showing 6 changed files
View
README.md
View
pyproject.toml
View
src/vmk_data_collector/api/v1/router_properties.py
View
src/vmk_data_collector/services/image_downloader.py
View
src/vmk_data_collector/services/property_pipeline.py
View
src/vmk_data_collector/services/queue_worker.py