installer management
Upload, manage, and distribute agent installer versions.
Location: admin panel -> installers (/admin/installers)
The dashboard uses the same canonical /api/installer/* public management API as the CLI and SDKs. All actions require a superadmin session.
uploading a new version
- Click upload new version.
- Select or drag in a
.exeinstaller. The dialog accepts only.exefiles and auto-detectsX.Y.Zfrom filenames such asOwlette-Installer-v2.11.0.exe. - Confirm the
X.Y.Zversion number, add optional release notes, leave Set as latest version (recommended) checked unless this is a staged upload, then click upload installer.
The dashboard uses a three-step upload flow:
- request URL:
POST /api/installer/uploadwithversion,fileName,contentType, optionalreleaseNotes, andsetAsLatest(defaults totrue). The route requires anIdempotency-Key, validates the version and.exefilename, creates aninstaller_uploads/{uploadId}record, and returns a signeduploadUrl,uploadId,storagePath, andexpiresAt. The signed URL expires after 15 minutes. - upload binary: the browser
PUTs the installer binary directly to the signed Storage URL and shows upload progress. - finalize:
PUT /api/installer/uploadwith theuploadIdand dashboard-computedchecksum_sha256. The route requires anIdempotency-Key, verifies the pending upload record has not expired, confirms the object exists, recomputes SHA-256 from the stored binary, rejects mismatches withchecksum_mismatch, writes version metadata, and updates latest if requested.
version table
Each active version shows:
| column | description |
|---|---|
| version | Version number |
| file size | Installer file size |
| uploaded | Upload date |
| uploaded by | User who uploaded it |
| release notes | Change description, or no notes |
| actions | set as latest, download, copy link, or delete |
Soft-deleted versions are hidden from the dashboard list.
Each finalized version stores this metadata under installer_metadata/data/versions/{version}:
| field | source |
|---|---|
version | Confirmed X.Y.Z version from the upload dialog |
download_url | Long-lived signed read URL generated during finalize |
checksum_sha256 | Server-computed checksum for the stored binary |
release_notes | Optional notes from the upload dialog |
file_size | Storage object size in bytes |
uploaded_at / release_date | Finalize timestamp |
uploaded_by | User or API key actor that finalized the upload |
deletedAt | null for active versions; set when soft-deleted |
actions
set as latest
Uploads set the latest pointer by default. Clearing Set as latest version (recommended) keeps the version available in the table without changing the public latest installer.
Promote any uploaded, active non-latest version later with set as latest, which calls POST /api/installer/{version}/set-latest and rewrites installer_metadata/latest. Use this for rollback if a newer installer has issues.
download
Downloads use the signed download_url returned by the installer API.
delete
Delete soft-deletes the version through DELETE /api/installer/{version}. It does not remove the Storage object during the interactive action.
You cannot delete:
- the current latest version (
latest_version_protected) - a version when doing so would leave fewer than two active versions (
min_versions_violated)
cleanup
The clean up action identifies superseded patch versions:
- not the newest patch in its
major.minorseries - older than the retention window
- not the current latest version
Each candidate is soft-deleted via the public API.
public download button
All users see a dashboard download button that points to the current latest installer. The unauthenticated permalink remains GET /download; admin management metadata comes from GET /api/installer/latest.
storage
Installers are stored under:
agent-installers/versions/{version}/Owlette-Installer-v{version}.exeMetadata is stored in Firestore under:
installer_metadata/latest
installer_metadata/data/versions/
installer_uploads/{uploadId}user management
Manage registered user accounts, global roles, and site assignments from the Admin Panel. The page is available only to superadmin users.
system presets
System presets are the platform template library for software deployments. They are global installer presets, not process configuration presets.