kitchen/backend/migrations
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
add_admin_restricted_pages.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_allergen_keywords.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_awaiting_replacement_status.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_brakes_cache.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_brakes_dietary_info.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_budget_settings.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_calendar_events.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_changelog_invoice_link.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_cost_distributions.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_cover_overrides.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_description_aliases.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_dext_integration.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_dext_manual_send.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_dish_separation.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_dispute_attachment_expiry.py Pre-deploy security/correctness fixes (port log E17) 2026-08-06 14:44:58 +00:00
add_dispute_attachment_public_hash.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_flag_assessment.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_global_settings_flags.py Wire Azure OCR to central settings toggle; remove redundant Users section 2026-07-12 22:58:32 +00:00
add_gross_sell_price.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_imap_integration.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_ingredient_flag_dismissals.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_ingredient_is_free.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_invoice_disputes.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_invoice_features.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_kitchen_details.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_line_item_search.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_linked_dispute.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_llm_infrastructure.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_logbook.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_menus.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_new_status.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_newbook_arrival_tracking.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_newbook_tables.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_newbook_upcoming_sync.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_nextcloud_backup.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_ocr_post_processing.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_ocr_weight_setting.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_pdf_annotation_settings.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_price_settings.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_purchase_orders.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_recipe_batch_type.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_recipe_ingredient_unit.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_recipe_ingredient_yield.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_recipe_system.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_recipe_text_flag_dismissals.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_residents_table_chart.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_resos_arrival_widget_filter.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_resos_integration.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_resos_manual_breakfast.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_resos_upcoming_sync.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_rooms_breakdown.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_sambapos_excluded_items.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_sambapos_portion_name.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_sambapos_settings.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_step_title.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_sub_recipe_unit.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_supplier_po_fields.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_supplier_skip_dext.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00
add_support_request.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_unique_flag_types.py Initial kitchen scaffold — Phase 1 kitchen port (build-verified 2026-07-11) 2026-07-12 12:15:39 +00:00
add_vat_rate_settings.py Fix migration transaction poisoning: ADD COLUMN IF NOT EXISTS 2026-07-12 19:53:26 +00:00