Add-ons
Add-ons are managed services (databases, caches, etc.) you provision and attach to apps. Use this resource for CRUD, lifecycle, backups, scheduling, and connecting/disconnecting apps.
Access it as client.addons 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, type, status, environment
for addon in client.addons.list():
print(addon.id)
# Create (type is one of: postgres, mysql, mongodb, redis, rabbitmq,
# neo4j, milvus, greenplum, surrealdb)
created = client.addons.create(
label="my-db",
type="postgres",
version="15",
cpu="500m",
memory="1Gi",
disk="10Gi",
)
print(created.id)
# Read it back
fetched = client.addons.retrieve(created.id)
# Delete (returns None; raises on failure)
client.addons.delete(created.id)
Methods
Core
list
list(*, search: Optional[str] = None, type: Optional[str] = None, status: Optional[str] = None, environment: Optional[str] = None, limit: Optional[int] = None) -> SyncPaginator[Addon]
List addons with pagination and filtering.
Args:
search: Search by label, description, or type.
type: Filter by addon type (e.g. "postgres", "redis").
status: Filter by status.
environment: Filter by environment.
limit: Maximum number of items to return (default: all matching items).
create
create(*, label: str, type: str, cpu: str, memory: str, disk: str, description: Optional[str] = None, version: Optional[str] = None, replicas: Optional[int] = None, gpu: Optional[str] = None, gpu_type: Optional[str] = None, deployment_mode: Optional[str] = None, cluster_config: Optional[Mapping[str, Any]] = None, backup_config: Optional[Mapping[str, Any]] = None) -> Addon
Create a new addon.
Args:
label: Human-readable addon label.
type: Addon type. One of: postgres, mysql, mongodb, redis, rabbitmq, neo4j, milvus, greenplum, surrealdb.
cpu: CPU allocation (e.g. "500m").
memory: Memory allocation (e.g. "1Gi").
disk: Disk allocation (e.g. "10Gi").
description: Addon description.
version: Addon version (e.g. "15" for postgres).
replicas: Number of replicas.
gpu: GPU allocation.
gpu_type: GPU type.
deployment_mode: "single" or "cluster".
cluster_config: Cluster topology when deployment_mode="cluster".
backup_config: Backup configuration (enabled, schedule, retention, ...).
retrieve
retrieve(addon_id: str) -> Addon
Get a single addon by ID.
update
update(addon_id: str, *, label: Optional[str] = None, description: Optional[str] = None, cpu: Optional[str] = None, memory: Optional[str] = None, disk: Optional[str] = None, replicas: Optional[int] = None, gpu: Optional[str] = None, gpu_type: Optional[str] = None, backup_config: Optional[Mapping[str, Any]] = None) -> Addon
Update an addon (resize, scale, or change backup config).
delete
delete(addon_id: str) -> None
Delete an addon.
Lifecycle & actions
start
start(addon_id: str) -> Dict[str, Any]
Start an addon.
stop
stop(addon_id: str) -> Dict[str, Any]
Stop an addon.
restart
restart(addon_id: str) -> Dict[str, Any]
Restart an addon.
recover
recover(addon_id: str) -> Dict[str, Any]
Recover a failed addon deployment.
Sharing & scope
update_permissions
update_permissions(addon_id: str, *, is_public: bool, allowed_users: Sequence[str]) -> Dict[str, Any]
Update addon sharing/permissions.
Args: is_public: Whether the addon is shared with all users. allowed_users: User ids granted access when not public.
Other
backup
backup(addon_id: str) -> Dict[str, Any]
Create a backup of the addon.
connect_app
connect_app(addon_id: str, app_id: str) -> Dict[str, Any]
Connect an addon to an app.
Args: addon_id: The addon ID. app_id: The app ID to connect to.
credentials
credentials(addon_id: str) -> AddonCredentials
Get decrypted addon credentials.
disconnect_app
disconnect_app(addon_id: str, app_id: str) -> Dict[str, Any]
Disconnect an addon from an app.
Args: addon_id: The addon ID. app_id: The app ID to disconnect from.
logs
logs(addon_id: str, *, lines: Optional[int] = None, since: Optional[str] = None, container: Optional[str] = None) -> Any
Get addon container logs.
Args: addon_id: The addon ID. lines: Number of log lines to return. since: ISO timestamp; return logs after this time. container: Specific container name.
metrics
metrics(addon_id: str) -> Dict[str, Any]
Get addon resource metrics.
schedule
schedule(addon_id: str) -> Dict[str, Any]
Get the addon's start/stop schedule.
status
status(addon_id: str) -> Dict[str, Any]
Check addon status from Kubernetes.
update_backup_config
update_backup_config(addon_id: str, *, enabled: bool, schedule: str, retention: int) -> Dict[str, Any]
Update addon backup configuration.
Args: enabled: Whether scheduled backups are enabled. schedule: Cron expression for the backup schedule. retention: Number of backups to retain.
update_schedule
update_schedule(addon_id: str, *, enabled: bool, timezone: str, start_time: str, stop_time: str, days_of_week: Sequence[int], skip_holidays: Optional[bool] = None, holiday_calendar: Optional[str] = None) -> Dict[str, Any]
Replace the addon's start/stop schedule.
Args:
enabled: Enable or disable the schedule.
timezone: IANA timezone (e.g. "America/New_York").
start_time: Start time in HH:MM format.
stop_time: Stop time in HH:MM format.
days_of_week: Days to run, 1 (Monday) through 7 (Sunday).
skip_holidays: Skip holidays (default false).
holiday_calendar: Holiday calendar: us, uk, or none.