Skip to main content

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.