|
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> |
|---|
|
|
| alembic/versions/2ee315174452_add_archived_at_to_property_listings.py 0 → 100644 |
|---|
| pyproject.toml |
|---|
| src/vmk_data_collector/api/deps.py |
|---|
| src/vmk_data_collector/api/v1/router_properties.py |
|---|
| src/vmk_data_collector/core/exceptions.py |
|---|
| src/vmk_data_collector/core/limiter.py 0 → 100644 |
|---|
| src/vmk_data_collector/core/metrics.py 0 → 100644 |
|---|
| src/vmk_data_collector/db/repositories/property.py |
|---|
| src/vmk_data_collector/db/repositories/raw_data.py |
|---|
| src/vmk_data_collector/main.py |
|---|
| src/vmk_data_collector/models/property_listing.py |
|---|
| src/vmk_data_collector/services/ai_enricher.py |
|---|
| src/vmk_data_collector/services/ai_normalizer.py |
|---|
| src/vmk_data_collector/services/image_downloader.py |
|---|
| src/vmk_data_collector/services/ollama_client.py |
|---|
| src/vmk_data_collector/services/property_pipeline.py |
|---|