(filename: str)
| 331 | |
| 332 | @router.get("/api/workflows/{filename}/get") |
| 333 | async def get_workflow_raw_content(filename: str): |
| 334 | try: |
| 335 | safe_filename = validate_workflow_filename(filename, require_yaml_extension=True) |
| 336 | |
| 337 | file_path = YAML_DIR / safe_filename |
| 338 | if not file_path.exists() or not file_path.is_file(): |
| 339 | raise ResourceNotFoundError( |
| 340 | "Workflow file not found", |
| 341 | resource_type="workflow", |
| 342 | resource_id=safe_filename, |
| 343 | ) |
| 344 | |
| 345 | with open(file_path, "r", encoding="utf-8") as handle: |
| 346 | raw_content = handle.read() |
| 347 | |
| 348 | logger = get_server_logger() |
| 349 | logger.info("Workflow file content retrieved", log_type=LogType.WORKFLOW, filename=safe_filename) |
| 350 | return {"content": raw_content} |
| 351 | except ValidationError: |
| 352 | raise |
| 353 | except SecurityError: |
| 354 | raise |
| 355 | except ResourceNotFoundError: |
| 356 | raise |
| 357 | except Exception as exc: |
| 358 | logger = get_server_logger() |
| 359 | logger.log_exception(exc, f"Unexpected error retrieving workflow: {filename}") |
| 360 | raise WorkflowExecutionError(f"Failed to retrieve workflow: {exc}") |
| 361 |
nothing calls this directly
no test coverage detected