Skip to main content

Apps

Apps are containerized applications you deploy and run on the platform. Use this resource to create an app, upload a code bundle, deploy it, control its lifecycle (start/stop/restart), and watch its status, logs, and metrics.

Access it as client.apps 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: status, environment, search
for app in client.apps.list():
print(app.id)

# Create
created = client.apps.create(name="...")
print(created.id)

# Read it back
fetched = client.apps.retrieve(created.id)

# Delete (returns None; raises on failure)
client.apps.delete(created.id)

Methods

Core

list

list(*, status: Optional[str] = None, environment: Optional[str] = None, search: Optional[str] = None, limit: Optional[int] = None) -> SyncPaginator[App]

List apps with pagination and filtering.

Args: status: Filter by app status. environment: Filter by deployment environment. search: Search by name or description. limit: Maximum number of items to return (default: all matching items).

create

create(*, name: str, description: Optional[str] = None, image: Optional[str] = None, port: Optional[int] = None, replicas: Optional[int] = None, environment: Optional[Mapping[str, str]] = None, resources: Optional[Mapping[str, Any]] = None, project_id: Optional[str] = None, labels: Optional[Mapping[str, str]] = None) -> App

Create a new app.

Args: name: App name. description: App description. image: Container image to deploy. port: Port the app listens on. replicas: Number of replicas to run. environment: Environment variables as a name -> value mapping. resources: Resource requests/limits (cpu, memory, etc.). project_id: Project the app belongs to. labels: Kubernetes labels as a name -> value mapping.

Returns: The newly created App.

retrieve

retrieve(app_id: str) -> App

Get a single app by ID.

update

update(app_id: str, *, name: Optional[str] = None, description: Optional[str] = None, image: Optional[str] = None, port: Optional[int] = None, replicas: Optional[int] = None, environment: Optional[Mapping[str, str]] = None, resources: Optional[Mapping[str, Any]] = None, labels: Optional[Mapping[str, str]] = None) -> App

Update an app.

delete

delete(app_id: str) -> None

Delete an app.

Lifecycle & actions

start

start(app_id: str) -> Dict[str, Any]

Start an app.

stop

stop(app_id: str) -> Dict[str, Any]

Stop an app.

restart

restart(app_id: str) -> Dict[str, Any]

Restart an app.

deploy

deploy(app_id: str, **kwargs) -> Dict[str, Any]

Deploy an app.

Args: app_id: The app ID. **kwargs: Optional deployment configuration options.

deploy_upload

deploy_upload(app_id: str, file: Union[str, Path, BinaryIO], **kwargs) -> Dict[str, Any]

Deploy a zip bundle to an existing app.

Args: app_id: The app ID. file: Path to a zip file, or a file-like object (opened in binary mode). **kwargs: Additional form fields to include.

Returns: Dict containing deployment result.

Example::

result = client.apps.deploy_upload("app-id", "my-app.zip")

Other

create_with_upload

create_with_upload(file: Union[str, Path, BinaryIO], *, name: Optional[str] = None, description: Optional[str] = None, framework: Optional[str] = None, runtime: Optional[str] = None, **kwargs) -> Dict[str, Any]

Create a new app by uploading a zip bundle.

Args: file: Path to a zip file, or a file-like object (opened in binary mode). name: App name. Defaults to the filename without extension. description: App description. framework: App framework (e.g. "express", "react"). runtime: App runtime (e.g. "node18"). **kwargs: Additional form fields to include.

Returns: Dict containing appId of the newly created app.

Example::

app = client.apps.create_with_upload( "my-app.zip", name="My App", description="An awesome app", )

logs

logs(app_id: str, *, lines: Optional[int] = None, since: Optional[str] = None, container: Optional[str] = None) -> Any

Get app logs.

Args: app_id: The app ID. lines: Number of log lines to return. since: ISO timestamp; return logs after this time. container: Specific container name.

metrics

metrics(app_id: str) -> Dict[str, Any]

Get app resource metrics.

status

status(app_id: str) -> AppStatus

Get app deployment status.