feat(plugin): add export-to-file method in backend

This commit is contained in:
2026-06-28 07:55:32 +08:00
parent 6b7dfdd53c
commit 890fab3da5
+19 -1
View File
@@ -308,4 +308,22 @@ benchmark_percentiles=97,AVG,1,0.1
return ""
return ""
except (IOError, FileNotFoundError):
return ""
return ""
async def export_to_file(self, data: dict, export_path: str) -> dict:
"""RPC: Write a DeckyVaultImportV1 payload as JSON to the given path.
Returns {success: bool, path: str, error: str?}."""
try:
# Sanitize the filename — the frontend passes a full path including filename
export_dir = os.path.dirname(export_path)
if export_dir and not os.path.exists(export_dir):
os.makedirs(export_dir, exist_ok=True)
with open(export_path, 'w') as f:
json.dump(data, f, indent=2)
return {"success": True, "path": export_path}
except PermissionError:
return {"success": False, "path": "", "error": f"Permission denied writing to {export_path}"}
except Exception as e:
return {"success": False, "path": "", "error": str(e)}