Liongard Inspections & Launchpoints
Overview
Inspections are the core mechanism by which Liongard captures IT documentation. The system has three parts: inspectors (templates defining what to inspect), launchpoints (configured instances tying an inspector to an environment, agent, credentials, and schedule), and inspections (individual execution runs that produce system data and potentially trigger detections). The relationship flows: Inspector (template) -> Launchpoint (configuration) -> Inspection (execution) -> System (discovered data).
Anti-triggers
- "Run" meaning execute a script on an endpoint —
liongard_inspections_runcollects configuration data. It runs no operator-supplied code and changes nothing on the target. Script execution isimmybot-script-execution,ncentral-monitoring-tasks,superops-runbooks,atera-agents,syncro-assets,connectwise-automate-scripts, ordatto-rmm-jobs. - Scheduled maintenance on endpoints — a launchpoint cron schedules
data collection, not patching or reboots; use
immybot-maintenance-sessionsorncentral-monitoring-tasks. - What an inspection produced —
liongard-systemsfor the data,liongard-detectionsfor the changes it surfaced.
Key Concepts
Inspectors
Inspectors are pre-built templates provided by Liongard that define what technology platform to inspect and what data to collect. There are hundreds, spanning identity, email/collaboration, networking, virtualization, backup/DR, security, cloud, and core infrastructure.
Two inspector fields drive launchpoint design: RequiresAgent (whether a locally deployed agent must run it, or Liongard can reach the target directly — Active Directory needs an agent, Microsoft 365 does not) and CredentialType (what kind of authentication the target expects, e.g. Domain Admin vs App Registration). DataPoints — the list of what the inspector collects — is returned only on the single-inspector GET, not in the list response.
See references/fields.md for the complete inspector and launchpoint field references, the full inspector category table, and the entity relationship map.
Launchpoints
A launchpoint brings together everything needed to run an inspection:
| Component | Purpose |
|---|---|
| Inspector | Which template to use |
| Environment | Which customer this is for |
| Agent | Which agent runs the inspection |
| Credentials | How to authenticate to the target |
| Schedule | When to run inspections |
| Configuration | Inspector-specific settings |
InspectorID, EnvironmentID, and Name are required; AgentID is required only when the inspector's RequiresAgent is true. Inspector-specific settings and credentials go in a nested Configuration object whose keys vary per inspector. LastInspection and NextInspection are read-only and are the fastest way to spot a launchpoint that has silently stopped running.
Inspection Status Values
| Status | Description |
|---|---|
Queued |
Inspection is waiting to be picked up by agent |
Running |
Inspection is currently executing |
Completed |
Inspection finished successfully |
Failed |
Inspection encountered an error |
Timeout |
Inspection exceeded maximum runtime |
Scheduling
Cron Expression Format
Launchpoints use standard cron expressions for scheduling:
┌───────── minute (0-59)
│ ┌─────── hour (0-23)
│ │ ┌───── day of month (1-31)
│ │ │ ┌─── month (1-12)
│ │ │ │ ┌─ day of week (0-6, Sun=0)
│ │ │ │ │
* * * * *
Common Schedules
| Cron Expression | Description |
|---|---|
0 2 * * * |
Daily at 2:00 AM |
0 */6 * * * |
Every 6 hours |
0 0 * * 0 |
Weekly on Sunday at midnight |
0 8 1 * * |
Monthly on the 1st at 8:00 AM |
*/30 * * * * |
Every 30 minutes |
0 2 * * 1-5 |
Weekdays at 2:00 AM |
Scheduling Best Practices
- Stagger inspection times - Avoid running all launchpoints at the same time
- Use off-peak hours - Schedule during client off-hours (e.g., 2:00 AM)
- Match frequency to change rate - Daily for AD/O365, weekly for static infrastructure
- Consider agent load - Don't overload agents with concurrent inspections
- Account for time zones - Schedule based on the client's local time
API Patterns
The full endpoint catalog with request/response bodies lives in references/api.md. The non-obvious parts:
- Inspectors are read-only (
GET /api/v1/inspectors) — they are Liongard-supplied templates, not something you create. Launchpoints are full CRUD at/api/v1/launchpoints. - On-demand runs are an action sub-resource:
POST /api/v1/launchpoints/{id}/runwith no body. It returns immediately with anInspectionIDandStatus: "Queued"— it does not wait for the inspection to finish, so poll or check the timeline for the outcome. - Launchpoint filtering uses the camelCase
environmentIdquery param while response bodies are PascalCase (Data,TotalRows,HasMoreRows,CurrentPage,TotalPages,PageSize). - There is no batch-run endpoint — trigger each launchpoint individually and stagger the calls. See references/examples.md for a worked batch-run implementation.
Common Workflows
Setting Up New Inspections for a Client
- Identify platforms - Determine what technologies the client uses
- Find inspectors - Look up the matching inspector templates
- Verify agent - Ensure an agent is deployed and online
- Gather credentials - Collect authentication details for each target
- Create launchpoints - Configure one launchpoint per inspector/target
- Set schedules - Assign appropriate cron schedules
- Run initial inspections - Trigger immediate runs
- Verify data - Check that systems are being discovered correctly
Troubleshooting Failed Inspections
- Check launchpoint status - Is the launchpoint Active?
- Verify agent status - Is the agent Online?
- Review credentials - Have passwords expired or been rotated?
- Check network connectivity - Can the agent reach the target?
- Review timeline - Look for error messages in the timeline
- Check inspector version - Is a newer version available?
- Re-run inspection - Try triggering a manual run
- Check system logs - Review agent logs on the deployed system
Migrating Inspections Between Agents
- Deploy new agent - Install at the new location
- Verify new agent - Confirm it's online and healthy
- Update launchpoints - Change AgentID to the new agent
- Test inspections - Trigger manual runs on updated launchpoints
- Decommission old agent - Remove once migration is verified
Gotchas
- Deleting a launchpoint removes all associated systems and historical inspection data. Set
StatustoInactiveto stop scheduled runs while keeping the history. - Launchpoint names must be unique per environment — a collision returns 409, not a validation body.
- A malformed cron expression returns 422 at write time, so a launchpoint that saved successfully has a valid schedule; a launchpoint that never runs is an agent or credential problem, not a syntax one.
- Credential rotation on the target silently breaks inspections. The launchpoint stays
Activeand runs fail with an authentication error, so failures surface in the timeline rather than in the launchpoint's own status. - Rate limit is 300 requests/minute. Batch-triggering an environment's launchpoints needs pacing (roughly 500 ms between runs) to stay clear of it and to avoid swamping a single agent.
See references/errors.md for the complete API and inspection-run error tables.
Best Practices
- Name launchpoints clearly - Use format: "ClientName - InspectorName"
- Monitor inspection health - Regularly review failed inspections
- Keep credentials current - Update when passwords change
- Test before production - Run manual inspections before scheduling
- Document configurations - Note any inspector-specific settings
- Group by environment - Keep related inspections organized
Related Skills
- Liongard Overview - Platform overview and terminology
- Liongard Environments - Environment management
- Liongard Systems - Systems and dataprints
- Liongard Detections - Change detection and alerts