Download OpenAPI specification:
Microservice for managing user projects with collaborative filesystem structure
List all projects accessible to the authenticated user (owned + shared)
| filter | string Value: "owned" Example: filter=owned Filter projects by ownership |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "owner_id": "string",
- "name": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
]| name required | string [ 1 .. 255 ] characters |
{- "name": "My LaTeX Project"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "owner_id": "string",
- "name": "string",
- "created_at": "2019-08-24T14:15:22Z"
}| projectID required | string <uuid> Example: 550e8400-e29b-41d4-a716-446655440000 |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "owner_id": "string",
- "name": "string",
- "created_at": "2019-08-24T14:15:22Z"
}Update project name (write permission required)
| projectID required | string <uuid> |
| name required | string [ 1 .. 255 ] characters |
{- "name": "Updated Project Name"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "owner_id": "string",
- "name": "string",
- "created_at": "2019-08-24T14:15:22Z"
}Get the complete nested filesystem structure of a project with presigned download URLs
| projectID required | string <uuid> |
{- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "tree": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "children": [
- { }
], - "files": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "directory_id": "dca58562-24cf-4cbc-aa50-5a4039358aa5",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "filename": "string",
- "storage_key": "string",
- "file_type": "image",
}
]
}
]
}| projectID required | string <uuid> |
| name required | string [ 1 .. 255 ] characters |
| parent_id | string or null <uuid> Parent directory UUID; null for root-level directory |
{- "name": "src",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
- "name": "string"
}Update directory name (write permission required)
| projectID required | string <uuid> |
| dirID required | string <uuid> |
| name required | string [ 1 .. 255 ] characters |
{- "name": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
- "name": "string"
}Create a new file and get presigned upload URL
| projectID required | string <uuid> |
| filename required | string [ 1 .. 255 ] characters |
| directory_id required | string <uuid> UUID of the target directory |
| file_type | string Default: "other" Enum: "image" "tex" "pdf" "other" File type classification |
{- "filename": "document.tex",
- "directory_id": "dca58562-24cf-4cbc-aa50-5a4039358aa5",
- "file_type": "image"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "directory_id": "dca58562-24cf-4cbc-aa50-5a4039358aa5",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "filename": "string",
- "storage_key": "string",
- "file_type": "image",
}| projectID required | string <uuid> |
| fileID required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "directory_id": "dca58562-24cf-4cbc-aa50-5a4039358aa5",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "filename": "string",
- "storage_key": "string",
- "file_type": "image",
}Update file metadata (e.g., filename)
| projectID required | string <uuid> |
| fileID required | string <uuid> |
| filename required | string [ 1 .. 255 ] characters |
{- "filename": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "directory_id": "dca58562-24cf-4cbc-aa50-5a4039358aa5",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "filename": "string",
- "storage_key": "string",
- "file_type": "image",
}List all collaborators on a project
| projectID required | string <uuid> |
[- {
- "user_id": "string",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "role": "editor",
- "invited_by": "string",
- "invited_at": "2019-08-24T14:15:22Z"
}
]Invite a user to collaborate on a project
| projectID required | string <uuid> |
| user_id required | string User ID of the invitee |
| role required | string Enum: "editor" "viewer" Collaboration role |
{- "user_id": "string",
- "role": "editor"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "user_id": "string",
- "role": "editor",
- "invited_by": "string",
- "invited_at": "2019-08-24T14:15:22Z",
- "status": "pending"
}Accept a pending collaboration invite
| invite_id required | string <uuid> |
{- "invite_id": "7218104b-c64c-4f30-a184-1a1802b5c56b"
}{- "user_id": "string",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "role": "editor",
- "invited_by": "string",
- "invited_at": "2019-08-24T14:15:22Z"
}