Scope training run queries in FastAPI to filter by user ID (Task 14.3)

- Add user_id column to TrainingRun model in db.py
- Store user_id on TrainingRun insert in /training/start
- Filter GET /training/runs by user_id (returns empty list if no user context)
- Enforce user ownership on GET /training/runs/{run_id} (404 on mismatch)
- Enforce user ownership on DELETE /training/runs/{run_id} (404 on mismatch)
- Add migration 002 to add user_id column and index to training_runs table

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marko Djordjevic 2026-02-20 18:38:18 +01:00
parent cbb921b4a7
commit 688e75e6be
3 changed files with 36 additions and 5 deletions

View file

@ -0,0 +1,6 @@
-- Add user_id column to training_runs for per-user scoping of training run queries
ALTER TABLE training_runs
ADD COLUMN IF NOT EXISTS user_id VARCHAR(255);
-- Create index on user_id for efficient per-user filtering
CREATE INDEX IF NOT EXISTS idx_training_runs_user_id ON training_runs(user_id);