kitchen/backend/services
jtricerolph bcc94024e3 Pre-deploy security/correctness fixes (port log E17)
- Remove dead kitchen->KDS internal API (api/internal.py, verify_internal_secret)
  — KDS reads kitchen_db directly (E16), nothing ever called this endpoint
- Add expires_at to dispute_attachments; public attachment links now expire
  after 30 days instead of staying valid forever (A4)
- Add services/upload_validation.py: sniff real file content via python-magic
  instead of trusting the client-supplied Content-Type header, plus a 20MB
  cap. Applied across invoices/logbook/food_flags/credit_notes/disputes
  upload endpoints (A5) — disputes previously had no file-type check at all
- Fix nginx client_max_body_size drift (800m -> the plan's intended 20m)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-06 14:44:58 +00:00
..
__init__.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
backup_service.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
brakes_scraper.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
dispute_archival_service.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
duplicate_detector.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
email_service.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
file_archival_service.py Add 'use main stack settings' toggle for third-party integration credentials 2026-07-12 21:57:10 +00:00
forecast_api.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
global_settings_service.py Wire Azure OCR to central settings toggle; remove redundant Users section 2026-07-12 22:58:32 +00:00
imap_sync.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
llm_service.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
newbook_api.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
newbook_sync.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
nextcloud_service.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
pdf_highlighter.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
pdf_rotation.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
po_matching.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
price_history.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
resos_api.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
resos_stats.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
resos_sync.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
sambapos_api.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
stock_history.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
upload_validation.py Pre-deploy security/correctness fixes (port log E17) 2026-08-06 14:44:58 +00:00