SDK: download files (#4196)

This commit is contained in:
Stanislav Novosad
2025-12-04 10:50:29 -07:00
committed by GitHub
parent b30f3b09c8
commit 4665f8907d
16 changed files with 983 additions and 105 deletions

View File

@@ -12,14 +12,11 @@ class CredentialType(StrEnum):
azure_vault = "azure_vault"
class LoginRequest(BaseModel):
credential_type: CredentialType = Field(..., description="Where to get the credential from")
url: str | None = Field(default=None, description="Website url")
prompt: str | None = Field(
default=None,
description="Login instructions. Skyvern has default prompt/instruction for login if this field is not provided.",
)
webhook_url: str | None = Field(default=None, description="Webhook URL to send login status updates")
class BaseRunBlockRequest(BaseModel):
"""Base class for run block requests with common browser automation parameters"""
url: str | None = Field(default=None, description="Website URL")
webhook_url: str | None = Field(default=None, description="Webhook URL to send status updates")
proxy_location: ProxyLocation | None = Field(default=None, description="Proxy location to use")
totp_identifier: str | None = Field(
default=None, description="Identifier for TOTP (Time-based One-Time Password) if required"
@@ -46,6 +43,14 @@ class LoginRequest(BaseModel):
default=None, description="Maximum number of times to scroll for screenshots"
)
class LoginRequest(BaseRunBlockRequest):
credential_type: CredentialType = Field(..., description="Where to get the credential from")
prompt: str | None = Field(
default=None,
description="Login instructions. Skyvern has default prompt/instruction for login if this field is not provided.",
)
# Skyvern credential
credential_id: str | None = Field(
default=None, description="ID of the Skyvern credential to use for login.", examples=["cred_123"]
@@ -67,3 +72,11 @@ class LoginRequest(BaseModel):
azure_vault_username_key: str | None = Field(default=None, description="Azure Vault username key")
azure_vault_password_key: str | None = Field(default=None, description="Azure Vault password key")
azure_vault_totp_secret_key: str | None = Field(default=None, description="Azure Vault TOTP secret key")
class FileDownloadRequest(BaseRunBlockRequest):
navigation_goal: str = Field(..., description="Instructions for navigating to and downloading the file")
download_suffix: str | None = Field(default=None, description="Suffix or complete filename for the downloaded file")
download_timeout: float | None = Field(default=None, description="Timeout in seconds for the download operation")
max_steps_per_run: int | None = Field(default=None, description="Maximum number of steps to execute")
parameter_keys: list[str] | None = Field(default=None, description="List of parameter keys to use in the workflow")