SG SealGrid Athena Docs

Software Deployment

Package applications, scripts, and files, then target them at agents by ID, tag, or collection. Deployments run as multi-step jobs and report progress in real time.

Package types#

Every package declares a DeploymentType that tells the agent how to run its payload. The supported types are:

DeploymentTypePayloadNotes
Executable.exeWindows installer or executable
MsiMSIWindows Installer package
PowerShell.ps1PowerShell script
Batch.bat / .cmdWindows batch script
Shell.shLinux shell script
FileCopyFilesCopy payload files to a destination
Python.pyPython script

Building a package#

Packages are managed via api/deployment-packages. The endpoint supports full CRUD, plus payload-file management and the build/deploy lifecycle:

EndpointPurpose
GET/POST/PUT/DELETE api/deployment-packagesCreate, read, update, and delete packages
GET/POST/DELETE api/deployment-packages/{id}/filesManage the payload files in a package
POST api/deployment-packages/{id}/buildAssemble the payload into package.zip
POST api/deployment-packages/{id}/deployRoll the package out to targets

Packages are stored on the server under Packages:StoragePath (default ./packages). The maximum upload size for a payload file is Packages:MaxUploadSizeGB (default 15).

If you just need to host a single large installer file — with a verified SHA-256 fingerprint and a time-limited, resumable download link — without building a multi-step job, use the Package Library instead.

Multi-step deployments#

A package contains an ordered list of steps that the agent executes in sequence. Each step uses one of the following executors:

Step executorAction
RunCommandRun an arbitrary command
PowerShellRun a PowerShell script
BatchRun a batch script
ShellRun a shell script (Linux)
ServiceStartStart a service
ServiceStopStop a service
ServiceRestartRestart a service
CopyFilesCopy payload files into place
InstallApplicationInstall an application
UninstallUninstall an application
WaitPause for a fixed interval
RebootReboot the endpoint

Each step runs as SYSTEM by default, or as an alternate user when RunAs credentials are supplied on the step. For the full per-step field model — OS conditions, PowerShell conditions, success exit codes, timeouts, continue-on-error — and an end-to-end scripted example, see Deployment Package Steps.

Targeting#

A deployment is aimed at endpoints through two fields, which can be combined:

Collections group agents for reuse and can be static or dynamic. They are managed via api/Collections, with {id}/members to list or edit membership and {id}/refresh to recompute it. Dynamic collections derive their membership from agent fields — see Collections for how to create static and metadata-based (dynamic) collections.

No ring / canary / wave batching

Athena does not have ring, canary, or wave staged-rollout batching for deployments. Targeting is direct: agent IDs, tags, and collections. Stage a rollout yourself by deploying to progressively broader tags or collections.

Monitoring progress#

While a deployment runs, the agent streams progress messages back to the server:

Completed execution results are retrieved at GET api/deployment-packages/executions/{executionId}.

Scheduling#

Deployments can be scheduled rather than run immediately, using the Scheduler at api/Scheduler:

EndpointPurpose
GET/POST/PUT/DELETE api/SchedulerManage scheduled jobs (CRUD)
POST api/Scheduler/{id}/pausePause a scheduled job
POST api/Scheduler/{id}/resumeResume a paused job
POST api/Scheduler/{id}/triggerRun a job now
POST api/Scheduler/validate-cronValidate a cron expression

The default deployment timeout is Scheduler:DefaultDeploymentTimeoutMinutes (default 120).

PowerShell automation#

The Athena PowerShell module (PowerShell 7+) wraps the REST API in cmdlets. Mutating cmdlets require the Admin role; read-only cmdlets require Operator. Connect with Connect-Athena, then create a package:

# Import the module and sign in (session is reused by later cmdlets)
Import-Module Athena
Connect-Athena -Server athena.example.com -Port 8443

# Create a package (Admin role required)
New-AthenaDeploymentPackage `
  -Name "7-Zip 24.08" `
  -FolderName "7zip-2408"