Prerequisites
- Role with software.view (read-only access to software library, versions, installers, and licenses)
- Role with software.manage (create, update, delete software entries, versions, installers, licenses, and deploy/uninstall software)
- At least one organization configured (licenses are scoped to an organization)
- Agents deployed on target hosts (required for software inventory collection and deployments)
Software library
The software library is a centralized catalog of all software titles tracked by your organization. Each entry represents a distinct software product identified by its vendor and name.
How software entries are created
Software entries can be created in two ways:
- Manual creation -- navigate to Software and click Add Software. Enter the vendor, name, and optional details like product family or support URL.
- Agent inventory -- the SPOG agent periodically collects installed software from each host. Raw inventory data is stored separately and can be reconciled against the managed library.
Browsing the library
- Navigate to Software to see the full catalog.
- Use the Search field to filter by vendor, name, or product family.
- Use the License Type dropdown to filter by licensing model (per-device, per-user, site, etc.).
- Each entry shows the number of tracked versions and associated license records at a glance.
Software detail view
Click a software entry to view its full details, including all tracked versions, associated installers, and license records. From the detail view you can edit the entry, add versions, manage installers, or configure licenses.
Version tracking
Each software entry can have multiple versions tracked. Version records capture lifecycle information such as release dates, end-of-life dates, and support status.
Adding a version
- Open the software detail view.
- Navigate to the Versions section and click Add Version.
- Enter the version string (e.g.
14.2.1), optional release edition (e.g. "Enterprise", "Professional"), and lifecycle dates. - Toggle Latest Version to mark this as the current recommended version. Only one version can be marked as latest at a time -- enabling it automatically unmarks the previous latest.
- Click Save.
Version lifecycle fields
21H2, 3.2.1, 2024.1).
Seeing which hosts run which versions
The agent collects installed software inventory from each host during its regular host info collection cycle. You can see software installed on a specific host from the host detail page under the Software tab. The managed software view cross-references agent-reported installs against the library to show version distribution across your fleet.
License management
License records track your software entitlements and usage per organization. Each license is tied to a specific software entry and scoped to a single organization for multi-tenant isolation.
Creating a license record
- Open the software detail view.
- Navigate to the Licenses section and click Add License.
- Select the Organization this license belongs to.
- Enter the License Key. The key is encrypted at rest using AES-256-GCM -- it is never displayed in cleartext after saving.
- Set the License Type (per-device, per-user, site, concurrent, volume, etc.).
- Enter the Entitlement Count -- the total number of licenses purchased.
- Optionally fill in purchase details: PO number, purchase date, cost, vendor contact, and notes.
- Click Save.
Tracking entitlements vs. actual installs
Each license record tracks two key numbers:
- Entitlement Count -- the total licenses purchased (what you paid for).
- Used Count -- the number of licenses currently consumed (based on installations).
The platform computes Available Licenses as the difference between these two values. When used count exceeds the entitlement, you are over-licensed and should purchase additional seats or remove installations.
License reconciliation
License usage can be reconciled against actual host installations. This recalculates the used count for each license based on the current state of agent-reported software inventory.
- Navigate to Software > License Reconciliation.
- Click Reconcile Now. The platform scans all managed software installations and updates used counts across all license records.
- Review the reconciliation summary which shows each license that was updated and its new used count.
License expiration
Licenses with an expiration date are automatically flagged as expired once past their date. Expired licenses remain visible in the list and are marked accordingly. Review and renew expired licenses to maintain compliance.
Software deployment and uninstall
Cadres can deploy software to managed hosts and uninstall it remotely. Because the backend is cloud-hosted SaaS and cannot reach into customer networks directly, all installation and uninstall operations are dispatched as agent jobs.
Installers
Before deploying software, you must configure at least one installer for the target version. Installers define how the software is installed on each OS platform.
- Open the version detail view.
- Navigate to the Installers section and click Add Installer.
- Select the OS Type (Windows, Linux, macOS).
- Optionally specify OS Version and Architecture (x64, x86, ARM64) for precise targeting.
- Enter the Installer URL (where the agent can download the package) and optionally the SHA-256 Hash for integrity verification.
- Configure Silent Install Arguments (e.g.
/S /norestart) and Uninstall Arguments. - Click Save.
Deploying to hosts
- Open the software version you want to deploy.
- Click Deploy.
- Select target hosts. The platform auto-matches each host to the correct installer based on its OS type and architecture. If no matching installer exists for a host, that host is skipped.
- Optionally override the auto-matched installer by selecting a specific one.
- Set the job priority (low, normal, high, critical).
- Click Deploy. Installation jobs are created for each valid host and dispatched to the agents.
- Monitor deployment progress in the Jobs view.
Uninstalling software
- Open the software entry.
- Click Uninstall.
- Select target hosts.
- The platform uses the installer's uninstall arguments to create removal jobs. If no uninstall arguments are configured, the operation will fail.
- Monitor progress in the Jobs view.
Software inventory reconciliation
The agent collects raw installed software data from each host. You can trigger a reconciliation job to refresh the agent's software inventory on demand.
Single-host reconciliation
- Navigate to the software section or host detail page.
- Click Reconcile for the target host.
- A reconciliation job is dispatched to the agent, which re-scans installed software and reports back.
- Only one reconciliation job can be pending per host at a time -- duplicate requests are rejected to prevent unnecessary load.
Bulk reconciliation
- Select multiple hosts or specify a host group.
- Click Reconcile Software.
- Jobs are created for each host that doesn't already have a pending reconciliation. Hosts that are already being reconciled are skipped.
- The response shows how many jobs were created and how many hosts were skipped.
Software patching link
Software versions can have associated patch records that track security updates, hotfixes, and feature patches. This creates a direct link between the software library and patch management.
Patch records
Each version can have multiple patches linked to it. Patch records capture:
- Patch ID -- the vendor's identifier (e.g. KB number, CVE ID).
- Patch Type -- Security, Critical, Feature, or Hotfix classification.
- Severity -- Critical, Important, Moderate, or Low.
- CVE References -- linked vulnerability identifiers for correlation with the vulnerability management module.
- Supersede Chain -- patches can be marked as superseded by newer patches, maintaining a clean chain of updates.
Patch installers
Like software installers, each patch can have its own installation packages configured per OS. This allows patch deployment through the same agent job mechanism used for software deployment.
Field reference
Software library fields
Installer fields
windows, linux, or darwin.
x64, x86, or arm64.
msi, exe, deb, rpm, etc.
/S /norestart).
License fields
Permissions
| Permission | Allows |
|---|---|
| software.view | View the software library, versions, installers, and license records |
| software.manage | Create, update, and delete software entries, versions, and installers. Create and manage license records. Deploy and uninstall software on hosts. Trigger inventory and license reconciliation. |
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Software not appearing in host inventory | Agent has not yet reported software data | Wait for the next host info collection cycle (approximately 5 minutes), or trigger a manual software reconciliation for the host. |
| License used count seems wrong | Counts are stale after deployments or uninstalls | Run license reconciliation to recalculate used counts from current agent inventory data. |
| Deployment skips some hosts | No matching installer for the host OS/architecture | Add an installer that matches the skipped host's OS type and architecture. Check the host detail page to confirm its reported OS and architecture. |
| Uninstall job fails | No uninstall arguments configured on the installer | Edit the installer and add the correct uninstall arguments for the software (e.g. /X /S for MSI, apt remove -y for Debian packages). |
| Duplicate software entry rejected | Same vendor + name combination already exists | Search the library for the existing entry. Use the existing entry or update it instead of creating a duplicate. |
| License key not visible after saving | Keys are encrypted at rest and never displayed | This is by design for security. If you need to verify the key, update it with the correct value. |
| Reconciliation job rejected | A reconciliation job is already pending for that host | Wait for the existing reconciliation job to complete before requesting another. Check the Jobs view for the pending job's status. |
| Cannot create license for an organization | Insufficient permissions or organization not accessible | Verify your role has software.manage permission and that you have access to the target organization. |