diff --git a/backend/main.py b/backend/main.py index 08db882..eaa6e0a 100644 --- a/backend/main.py +++ b/backend/main.py @@ -1929,6 +1929,19 @@ async def restore_backup( return {"restored": filename, "auto_backup": auto_dst.name if src.exists() else None} +@app.delete("/api/admin/backup/{filename}") +async def delete_backup( + filename: str, + current_user: User = Depends(get_current_admin), +): + """Delete a backup file.""" + fp = BACKUP_DIR / filename + if not fp.exists() or ".." in filename: + raise HTTPException(status_code=404, detail="Backup not found") + fp.unlink() + return {"deleted": filename} + + @app.post("/api/admin/reset/{section}") async def reset_section( section: str, diff --git a/frontend/src/pages/Settings.jsx b/frontend/src/pages/Settings.jsx index 81651bd..42f99c2 100644 --- a/frontend/src/pages/Settings.jsx +++ b/frontend/src/pages/Settings.jsx @@ -218,6 +218,22 @@ export default function Settings() { > 還原 + ))