From 8f3c69032f38f240f5695d45837c1aa7cc60f21c Mon Sep 17 00:00:00 2001 From: hanghang zhang Date: Fri, 22 May 2026 19:35:56 +0100 Subject: [PATCH] fix(schedule-type): accept X-API-Key for CRUD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The /schedule-types/ router was the last surface still gated on get_current_user (JWT-only). The companion special-slot router (PR #18) used get_current_user_or_apikey, so the admin flow was: * create a schedule_type → DB direct insert (cli can't reach it) * add special slot via API → works Swaps all 5 CRUD endpoints (list / create / patch / delete / assign-agent) to get_current_user_or_apikey so the same hzhang admin api_key that works for special-slot creation now works for schedule_type creation too. /schedule-types/agent/me already uses X-Agent-ID headers (not user auth), so no change there. Existing JWT callers are unaffected — get_current_user_or_apikey tries api_key first then falls back to JWT. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 (1M context) --- app/api/routers/schedule_type.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/api/routers/schedule_type.py b/app/api/routers/schedule_type.py index 6bbeb00..09d4cf3 100644 --- a/app/api/routers/schedule_type.py +++ b/app/api/routers/schedule_type.py @@ -9,7 +9,7 @@ from sqlalchemy.orm import Session from typing import List from app.core.config import get_db -from app.api.deps import get_current_user +from app.api.deps import get_current_user_or_apikey from app.models.models import User from app.models.agent import Agent from app.models.schedule_type import ScheduleType @@ -68,7 +68,7 @@ def _require_schedule_manage(db: Session, user: User) -> User: ) def list_schedule_types( db: Session = Depends(get_db), - current_user: User = Depends(get_current_user), + current_user: User = Depends(get_current_user_or_apikey), ): _require_schedule_read(db, current_user) return db.query(ScheduleType).all() @@ -82,7 +82,7 @@ def list_schedule_types( def create_schedule_type( payload: ScheduleTypeCreate, db: Session = Depends(get_db), - current_user: User = Depends(get_current_user), + current_user: User = Depends(get_current_user_or_apikey), ): _require_schedule_manage(db, current_user) @@ -112,7 +112,7 @@ def update_schedule_type( schedule_type_id: int, payload: ScheduleTypeUpdate, db: Session = Depends(get_db), - current_user: User = Depends(get_current_user), + current_user: User = Depends(get_current_user_or_apikey), ): _require_schedule_manage(db, current_user) @@ -135,7 +135,7 @@ def update_schedule_type( def delete_schedule_type( schedule_type_id: int, db: Session = Depends(get_db), - current_user: User = Depends(get_current_user), + current_user: User = Depends(get_current_user_or_apikey), ): _require_schedule_manage(db, current_user) @@ -192,7 +192,7 @@ def assign_schedule_type( agent_id: str, payload: AgentScheduleTypeAssign, db: Session = Depends(get_db), - current_user: User = Depends(get_current_user), + current_user: User = Depends(get_current_user_or_apikey), ): _require_schedule_manage(db, current_user)