Organization Hierarchy
Tenants, divisions, environments, and deployments
LaserData Cloud uses a multi-level organizational hierarchy to isolate resources, manage access, and organize deployments across teams and projects.
Hierarchy
| Level | Represents | Example |
|---|---|---|
| Tenant | Your organization | Acme Corp |
| Division | Business unit or team | Platform Engineering |
| Environment | Deployment stage | Production, Staging, Development |
| Deployment | A LaserData deployment (one or more nodes) | prod-us-east-1 |
Tenant
A tenant represents your organization. It is the top-level boundary for billing, membership, and resource isolation.
- Each tenant has its own member list, roles, and permissions
- Audit logs are isolated per tenant
- A user can belong to multiple tenants
Division
Divisions represent business units, teams, or projects within a tenant. They provide a logical grouping layer for environments.
- Permissions can be scoped to specific divisions
- Useful for separating teams (e.g. "Platform", "Data Engineering") or products
Environment
Environments represent deployment stages within a division — such as Development, Staging, and Production.
- Permissions can be scoped to specific environments within a division
- Each environment contains one or more deployments
Deployment
A deployment is one or more nodes running Apache Iggy, managed by the Warden agent.
Member Management
- Invite users by email — they receive an invitation and join the tenant upon acceptance
- Assign and change roles at any time
- Remove members instantly — their access is revoked immediately
Programmatic Access
For CI/CD pipelines, automation, and integrations, create API keys scoped to specific roles and permissions. API keys follow the same RBAC model as interactive users.
Plan Limits
| Resource | Basic | Pro | Enterprise |
|---|---|---|---|
| Divisions | 1 | 10 | 20 |
| Environments per division | 2 | 10 | 20 |
| Members | 3 | 10 | 20 |
| Invitations | 2 | 10 | 20 |
| Custom roles | 2 | 10 | 20 |
| API keys | 10 | 10 | 10 |
API Reference
Get Tenant Structure
Returns the full hierarchy — divisions, environments, and deployments — in a single call:
curl https://api.laserdata.cloud/tenants/{tenant_id}/structure \
-H "ld-api-key: YOUR_API_KEY"{
"divisions": [
{
"id": 1,
"name": "Platform Engineering",
"environments": [
{
"id": 1,
"name": "production",
"deployments": [
{ "id": 42, "name": "prod-cluster" }
]
}
]
}
]
}Get Tenant Summary
curl https://api.laserdata.cloud/tenants/{tenant_id}/summary \
-H "ld-api-key: YOUR_API_KEY"{
"divisions_count": 2,
"environments_count": 5,
"deployments_count": 8,
"members_count": 4,
"roles_count": 3,
"invitations_count": 1,
"api_keys_count": 2
}Create a Division
curl -X POST https://api.laserdata.cloud/tenants/{tenant_id}/divisions \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Platform Engineering",
"description": "Core platform team",
"email": "platform@acme.com"
}'List Divisions
curl https://api.laserdata.cloud/tenants/{tenant_id}/divisions \
-H "ld-api-key: YOUR_API_KEY"{
"data": [
{
"id": 1,
"name": "Platform Engineering",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:30:00Z"
}
],
"page": 1,
"results": 10,
"total": 1
}Create an Environment
curl -X POST https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "production",
"description": "Production environment"
}'List Environments
curl https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments \
-H "ld-api-key: YOUR_API_KEY"{
"data": [
{
"id": 1,
"name": "production",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:30:00Z"
}
],
"page": 1,
"results": 10,
"total": 1
}Update a Division
curl -X PUT https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id} \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Platform Engineering",
"description": "Updated description",
"email": "platform@acme.com"
}'Delete a Division
curl -X DELETE https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id} \
-H "ld-api-key: YOUR_API_KEY"All deployments within the division must be deleted first.
Update an Environment
curl -X PUT https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id} \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "production",
"description": "Updated description"
}'Delete an Environment
curl -X DELETE https://api.laserdata.cloud/tenants/{tenant_id}/divisions/{division_id}/environments/{environment_id} \
-H "ld-api-key: YOUR_API_KEY"All deployments within the environment must be deleted first.