LaserData Cloud
Organization

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

LevelRepresentsExample
TenantYour organizationAcme Corp
DivisionBusiness unit or teamPlatform Engineering
EnvironmentDeployment stageProduction, Staging, Development
DeploymentA 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

ResourceBasicProEnterprise
Divisions11020
Environments per division21020
Members31020
Invitations21020
Custom roles21020
API keys101010

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.

What's Next

On this page