feat: Add detailed metadata to node files listing

Enhance the node files API to include comprehensive file metadata:
- File size in bytes
- File creation time (ISO 8601 format)
- File modification time (ISO 8601 format)
- File extension

Create new NodeFile schema to support these additional fields
while keeping the existing ProjectFile schema for backward compatibility.

This provides users with better information to manage and identify
files in the Web UI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
YueGuobinandClaude Sonnet 4.6 committed 2026-05-08 22:57:19 +08:00
1 parent 5b75d633aa
commit 51a4c73e21
4 files changed
+50 -13

No files matched your search

+3 -3
View File
@@ -192,14 +192,14 @@ async def get_compute_project_files(project: Project = Depends(dep_project)) ->
return await project.list_files()
@router.get("/projects/{project_id}/nodes/{node_type}/{node_id}/files", response_model=List[schemas.ProjectFile])
@router.get("/projects/{project_id}/nodes/{node_type}/{node_id}/files", response_model=List[schemas.NodeFile])
async def get_compute_node_files(
node_type: str,
node_id: str,
project: Project = Depends(dep_project)
) -> List[schemas.ProjectFile]:
) -> List[schemas.NodeFile]:
"""
Return files belonging to a specific node.
Return files belonging to a specific node with detailed metadata.
"""
node_path = f"project-files/{node_type}/{node_id}"
+3 -3
View File
@@ -522,10 +522,10 @@ async def delete_disk_image(
await node.delete(f"/disk_image/{disk_name}")
@router.get("/{node_id}/files", response_model=List[schemas.ProjectFile], dependencies=[Depends(has_privilege("Node.Audit"))])
async def list_node_files(node: Node = Depends(dep_node)) -> List[schemas.ProjectFile]:
@router.get("/{node_id}/files", response_model=List[schemas.NodeFile], dependencies=[Depends(has_privilege("Node.Audit"))])
async def list_node_files(node: Node = Depends(dep_node)) -> List[schemas.NodeFile]:
"""
List files in a node directory.
List files in a node directory with detailed metadata.
Required privilege: Node.Audit
"""