Help us improve
Share bugs, ideas, or general feedback.
From liongard
Manages Liongard environments representing customer organizations: CRUD operations, listing with pagination/filtering, grouping, related entities, and MSP workflows via REST API.
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin liongardHow this skill is triggered — by the user, by Claude, or both
Slash command
/liongard:environmentsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Environments in Liongard represent customer organizations or sites being monitored. Each environment serves as the top-level container for all inspection activity, discovered systems, detections, and metrics associated with a particular client. Proper environment management is essential for organized MSP service delivery.
Provides Liongard platform context: terminology, capabilities, authentication patterns, API structure, environments, agents, inspectors, launchpoints, systems, detections, MSP workflows.
Generates multi-tenant security and operational reports from LimaCharlie: billing summaries, usage roll-ups, detection trends, sensor health monitoring, configuration audits across organizations.
Queries SentinelOne unified asset inventory for endpoints, cloud resources, identities, and network-discovered devices using REST API tools with offset pagination, filters, and sorting for MSP audits.
Share bugs, ideas, or general feedback.
Environments in Liongard represent customer organizations or sites being monitored. Each environment serves as the top-level container for all inspection activity, discovered systems, detections, and metrics associated with a particular client. Proper environment management is essential for organized MSP service delivery.
| Field | Type | Required | Description |
|---|---|---|---|
ID | int | System | Auto-generated unique identifier |
Name | string | Yes | Environment display name |
Description | string | No | Optional description text |
Status | string | No | Active or Inactive (default: Active) |
Visible | boolean | No | Visibility in UI (default: true) |
Tier | string | No | Service tier classification |
CreatedOn | datetime | System | Creation timestamp |
UpdatedOn | datetime | System | Last update timestamp |
| Field | Type | Description |
|---|---|---|
AgentCount | int | Number of agents associated |
LaunchpointCount | int | Number of configured inspections |
SystemCount | int | Number of discovered systems |
DetectionCount | int | Number of active detections |
GET /api/v1/environments?page=1&pageSize=100
X-ROAR-API-KEY: {api_key}
Response:
{
"Data": [
{
"ID": 1234,
"Name": "Acme Corporation",
"Description": "Primary client environment",
"Status": "Active",
"Visible": true,
"Tier": "Premium",
"CreatedOn": "2023-01-15T10:00:00Z",
"UpdatedOn": "2024-02-01T14:30:00Z"
}
],
"TotalRows": 150,
"HasMoreRows": true,
"CurrentPage": 1,
"TotalPages": 2,
"PageSize": 100
}
The v2 endpoint supports POST-based filtering with conditions:
POST /api/v2/environments
X-ROAR-API-KEY: {api_key}
Content-Type: application/json
{
"Pagination": {
"Page": 1,
"PageSize": 100
},
"conditions": [
{
"path": "Status",
"op": "eq",
"value": "Active"
}
],
"fields": ["ID", "Name", "Status", "Tier"],
"orderBy": [
{
"path": "Name",
"direction": "asc"
}
]
}
GET /api/v1/environments/{environmentId}
X-ROAR-API-KEY: {api_key}
Response:
{
"ID": 1234,
"Name": "Acme Corporation",
"Description": "Primary client environment",
"Status": "Active",
"Visible": true,
"Tier": "Premium",
"CreatedOn": "2023-01-15T10:00:00Z",
"UpdatedOn": "2024-02-01T14:30:00Z",
"AgentCount": 2,
"LaunchpointCount": 15,
"SystemCount": 47,
"DetectionCount": 3
}
GET /api/v1/environments/count
X-ROAR-API-KEY: {api_key}
Response:
{
"Count": 150
}
This is a lightweight endpoint useful for health checks and dashboard summaries.
POST /api/v1/environments
X-ROAR-API-KEY: {api_key}
Content-Type: application/json
{
"Name": "New Company Inc",
"Description": "Managed services client",
"Status": "Active",
"Visible": true,
"Tier": "Standard"
}
Response:
{
"ID": 5678,
"Name": "New Company Inc",
"Description": "Managed services client",
"Status": "Active",
"Visible": true,
"Tier": "Standard",
"CreatedOn": "2024-02-15T09:00:00Z",
"UpdatedOn": "2024-02-15T09:00:00Z"
}
PUT /api/v1/environments/{environmentId}
X-ROAR-API-KEY: {api_key}
Content-Type: application/json
{
"Name": "New Company Inc - Updated",
"Description": "Premium managed services client",
"Tier": "Premium"
}
DELETE /api/v1/environments/{environmentId}
X-ROAR-API-KEY: {api_key}
Warning: Deleting an environment removes all associated launchpoints, systems, detections, and historical inspection data. This action cannot be undone.
Environment Groups (v2) provide logical grouping of environments for organizational purposes. Groups help MSPs manage large numbers of clients by category, region, or service level.
GET /api/v2/environment-groups
X-ROAR-API-KEY: {api_key}
Response:
{
"Data": [
{
"ID": 10,
"Name": "Tier 1 - Premium",
"Description": "Premium service level clients",
"EnvironmentCount": 25
},
{
"ID": 11,
"Name": "Tier 2 - Standard",
"Description": "Standard service level clients",
"EnvironmentCount": 75
}
]
}
POST /api/v2/environment-groups
X-ROAR-API-KEY: {api_key}
Content-Type: application/json
{
"Name": "East Coast Clients",
"Description": "Clients in the eastern US region"
}
PUT /api/v2/environment-groups/{groupId}
X-ROAR-API-KEY: {api_key}
Content-Type: application/json
{
"Name": "East Coast Clients - Updated",
"Description": "All eastern US and Canada clients"
}
DELETE /api/v2/environment-groups/{groupId}
X-ROAR-API-KEY: {api_key}
Note: Deleting a group does not delete the environments within it. They are simply ungrouped.
GET /api/v1/launchpoints?environmentId={environmentId}&page=1&pageSize=100
X-ROAR-API-KEY: {api_key}
GET /api/v1/systems?environmentId={environmentId}&page=1&pageSize=100
X-ROAR-API-KEY: {api_key}
GET /api/v1/agents?environmentId={environmentId}
X-ROAR-API-KEY: {api_key}
POST /api/v1/detections
X-ROAR-API-KEY: {api_key}
Content-Type: application/json
{
"Pagination": {
"Page": 1,
"PageSize": 100
},
"conditions": [
{
"path": "EnvironmentID",
"op": "eq",
"value": 1234
}
]
}
Environments can be mapped to external systems (PSA tools, RMM platforms) for cross-platform correlation:
GET /api/v1/environments/{environmentId}/integrationmappings
X-ROAR-API-KEY: {api_key}
To update multiple environments at once, iterate with rate limiting:
async function bulkUpdateStatus(environmentIds, status) {
const results = [];
for (const id of environmentIds) {
const result = await fetch(
`https://${instance}.app.liongard.com/api/v1/environments/${id}`,
{
method: 'PUT',
headers: {
'X-ROAR-API-KEY': process.env.LIONGARD_API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({ Status: status })
}
);
results.push({ id, success: result.ok });
// Respect rate limits
await sleep(200);
}
return results;
}
async function exportAllEnvironments() {
const environments = [];
let page = 1;
let hasMore = true;
while (hasMore) {
const response = await fetch(
`https://${instance}.app.liongard.com/api/v1/environments?page=${page}&pageSize=500`,
{
headers: { 'X-ROAR-API-KEY': process.env.LIONGARD_API_KEY }
}
);
const data = await response.json();
environments.push(...data.Data);
hasMore = data.HasMoreRows;
page++;
}
return environments;
}
| Code | Message | Resolution |
|---|---|---|
| 400 | Invalid environment data | Verify required fields |
| 401 | Unauthorized | Check API key validity |
| 403 | Forbidden | Verify API key permissions |
| 404 | Environment not found | Confirm environment ID exists |
| 409 | Duplicate name | Environment name must be unique |
| 429 | Rate limited | Wait and retry (300 req/min) |
| Error | Cause | Fix |
|---|---|---|
| Name required | Missing Name field | Add environment name |
| Name too long | Name exceeds max length | Shorten name |
| Invalid status | Unrecognized status value | Use Active or Inactive |
| Duplicate name | Environment name already exists | Use unique name |
Environment (ID)
|
+-- Environment Groups (GroupID)
|
+-- Agents (AgentID)
|
+-- Launchpoints (LaunchpointID)
| +-- Systems (SystemID)
|
+-- Detections (DetectionID)
|
+-- Metrics (MetricID)
|
+-- Integration Mappings
|
+-- Timeline Events