Projects
Projects group related resources with collaborators and storage. Use this resource for CRUD, archiving, collaborator management, and listing a project's volumes and workspaces.
Access it as client.projects on a Strongly client, or the same path on AsyncStrongly with await. All methods exist on both with identical signatures.
Quick start
from strongly import Strongly
client = Strongly()
# List (auto-paginates as you iterate) # filters: search, status, category, tag
for project in client.projects.list():
print(project.id)
# Create
created = client.projects.create(
name="...",
description="...",
)
print(created.id)
# Read it back
fetched = client.projects.retrieve(created.id)
# Delete (returns None; raises on failure)
client.projects.delete(created.id)
Methods
Core
list
list(*, search: Optional[str] = None, status: Optional[str] = None, category: Optional[str] = None, tag: Optional[str] = None, limit: Optional[int] = None) -> SyncPaginator[Project]
List projects with pagination and filters.
create
create(*, name: str, description: str, filesystem_type: Optional[str] = None, github_config: Optional[Mapping[str, Any]] = None, tags: Optional[Sequence[str]] = None) -> Project
Create a project.
Args:
name: Project name.
description: Project description.
filesystem_type: "strongly" (Strongly Filesystem, default) or "github".
github_config: GitHub repository config (when filesystem_type is "github").
tags: Optional tag names.
retrieve
retrieve(project_id: str) -> Project
Retrieve a single project by id.
update
update(project_id: str, *, name: Optional[str] = None, description: Optional[str] = None, category: Optional[str] = None, visibility: Optional[str] = None, tags: Optional[Sequence[str]] = None, status: Optional[str] = None) -> Project
Update a project and return the updated record.
delete
delete(project_id: str) -> None
Delete a project. Raises on failure; returns nothing.
Lifecycle & actions
archive
archive(project_id: str) -> Dict[str, Any]
Archive a project.
restore
restore(project_id: str) -> Dict[str, Any]
Restore an archived project.
Other
activity
activity(project_id: str, *, limit: Optional[int] = None, offset: int = 0) -> SyncPaginator[ProjectActivity]
Get the recent activity feed for a project.
add_collaborator
add_collaborator(project_id: str, *, email: str, role: str, user_id: Optional[str] = None) -> Dict[str, Any]
Add a collaborator to a project.
collaborators
collaborators(project_id: str) -> List[ProjectCollaborator]
List collaborators on a project.
remove_collaborator
remove_collaborator(project_id: str, user_id: str) -> Dict[str, Any]
Remove a collaborator from a project.
stats
stats(project_id: str) -> ProjectStats
Get aggregate statistics for a project.
update_collaborator_role
update_collaborator_role(project_id: str, user_id: str, *, role: str) -> Dict[str, Any]
Update a collaborator's role on a project.
volumes
volumes(project_id: str) -> List[Volume]
List volumes attached to a project.
workspaces
workspaces(project_id: str, *, limit: Optional[int] = None) -> SyncPaginator[Workspace]
List workspaces belonging to a project.