feat: implement review items 8-14
- Soft-delete/archive for listings: archived_at column + archive-check endpoint
- Rate limiting on /ingest: slowapi with 60/minute per source_slug
- Prometheus metrics: /metrics endpoint + custom counters/histograms
- Graceful shutdown: track active jobs in app.state, wait up to 30s
- Prompt injection protection: wrap user data in <user_data> XML tags
- Image download size limit: 50MB max with httpx streaming
- Raw data cleanup: admin endpoint to delete completed raw data older than N days

Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 82fa839 commit 08ebdfd171be3e55138b7a6b5d3aefc1579591e4
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 1 day ago
Showing 16 changed files
View
alembic/versions/2ee315174452_add_archived_at_to_property_listings.py 0 → 100644
View
pyproject.toml
View
src/vmk_data_collector/api/deps.py
View
src/vmk_data_collector/api/v1/router_properties.py
View
src/vmk_data_collector/core/exceptions.py
View
src/vmk_data_collector/core/limiter.py 0 → 100644
View
src/vmk_data_collector/core/metrics.py 0 → 100644
View
src/vmk_data_collector/db/repositories/property.py
View
src/vmk_data_collector/db/repositories/raw_data.py
View
src/vmk_data_collector/main.py
View
src/vmk_data_collector/models/property_listing.py
View
src/vmk_data_collector/services/ai_enricher.py
View
src/vmk_data_collector/services/ai_normalizer.py
View
src/vmk_data_collector/services/image_downloader.py
View
src/vmk_data_collector/services/ollama_client.py
View
src/vmk_data_collector/services/property_pipeline.py