LaserData Cloud
API Reference

Configuration

Manage versioned Iggy and connector configurations, and run operational tasks via the Supervisor API.

API Variables
ld-api-key
{tenant_id}

Set variables to auto-fill all examples and run requests in-browser.

Configurations are versioned resources managed by the Supervisor API ({supervisor_url}). Each deployment holds one or more named configs with full version history: create a new version, activate it atomically, and roll back to any prior version at any time. All configuration data is encrypted at rest.

Every saved config records the runtime_version it was validated against. After an upgrade, compare this to the currently installed version to identify configs that may need re-validation.

Required permissions: deployment:config:manage (create, activate, delete) or deployment:config:read (view, schema)

Iggy Configuration

Get Config Schema

GET
{supervisor_url}/deployments/{deployment_id}/configs/iggy/schema

Retrieve the JSON Schema for Iggy configuration, organized into sections (segment, stream, topic, tcp, http, quic, etc.).

bash
curl {supervisor_url}/deployments/{deployment_id}/configs/iggy/schema \
-H "ld-api-key: YOUR_API_KEY"
{
  "segment": {
    "name": "Segment",
    "description": "Log segment size and rotation settings.",
    "schema": [
      {
        "key": "IGGY_SEGMENT_SIZE",
        "name": "Segment Size",
        "description": "Maximum size of a single log segment",
        "default_value": "1 GB",
        "kind": "size",
        "editable": true,
        "secret": false,
        "requirements": [],
        "rules": []
      }
    ]
  }
}

Each schema entry includes key, name, description, default_value, kind (field type), editable, secret, requirements, and rules (min/max validation).

Create a Configuration

POST
{supervisor_url}/deployments/{deployment_id}/configs/iggy

Create a new named Iggy configuration. Pass activate: true to immediately promote it as the active config.

bash
curl -X POST {supervisor_url}/deployments/{deployment_id}/configs/iggy \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "name": "high-throughput",
  "values": {
    "IGGY_SYSTEM_TOPIC_MAX_SIZE": "2 GB"
  },
  "activate": false
}'
FieldRequiredDescription
nameNoConfig name. If omitted, defaults to the kind name.
valuesYesKey-value pairs validated against the schema
activateNotrue to immediately promote this version as primary (default false)

Returns 201 Created with ld-config header containing the new config ID.

Get Active Configuration

GET
{supervisor_url}/deployments/{deployment_id}/configs/iggy/primary

Retrieve the currently active (primary) Iggy configuration.

bash
curl {supervisor_url}/deployments/{deployment_id}/configs/iggy/primary \
-H "ld-api-key: YOUR_API_KEY"

List All Configurations

GET
{supervisor_url}/deployments/{deployment_id}/configs/iggy

List all named Iggy configs for this deployment.

bash
curl {supervisor_url}/deployments/{deployment_id}/configs/iggy \
-H "ld-api-key: YOUR_API_KEY"

Get a Specific Configuration

GET
{supervisor_url}/deployments/{deployment_id}/configs/iggy/{config_id}

Retrieve a config by its numeric ID.

bash
curl {supervisor_url}/deployments/{deployment_id}/configs/iggy/{config_id} \
-H "ld-api-key: YOUR_API_KEY"

List Version History

GET
{supervisor_url}/deployments/{deployment_id}/configs/iggy/{config_name}/versions

List all versions of a named config.

bash
curl {supervisor_url}/deployments/{deployment_id}/configs/iggy/{config_name}/versions \
-H "ld-api-key: YOUR_API_KEY"

Get a Specific Version

GET
{supervisor_url}/deployments/{deployment_id}/configs/iggy/{config_name}/versions/{version}

Retrieve a specific version of a named config.

bash
curl {supervisor_url}/deployments/{deployment_id}/configs/iggy/{config_name}/versions/{version} \
-H "ld-api-key: YOUR_API_KEY"

Activate a Config Version

PUT
{supervisor_url}/deployments/{deployment_id}/configs/iggy/{config_name}/activate/{version}

Promote a config version to active (primary). Does not automatically apply it; trigger a reconfigure task separately unless you passed activate: true on creation.

bash
curl -X PUT {supervisor_url}/deployments/{deployment_id}/configs/iggy/{config_name}/activate/{version} \
-H "ld-api-key: YOUR_API_KEY"

Returns 204 No Content.

Delete a Configuration

DELETE
{supervisor_url}/deployments/{deployment_id}/configs/iggy/{config_id}

Delete a config. The active (primary) config cannot be deleted.

bash
curl -X DELETE {supervisor_url}/deployments/{deployment_id}/configs/iggy/{config_id} \
-H "ld-api-key: YOUR_API_KEY"

Returns 204 No Content.


Connector Configuration

Connector configs follow the same versioning model. The config kind is connector:{type}:{key}, for example connector:sink:postgres or connector:source:random.

Get Connector Config Schema

GET
{supervisor_url}/deployments/{deployment_id}/configs/connector:{type}:{key}/schema

Get the JSON Schema for a connector. Sections include sink/source (base fields) and plugin_config (connector-specific fields). Secret fields are masked with *** in responses.

bash
curl {supervisor_url}/deployments/{deployment_id}/configs/connector:sink:postgres/schema \
-H "ld-api-key: YOUR_API_KEY"

Create a Connector Config

POST
{supervisor_url}/deployments/{deployment_id}/configs/connector:{type}:{key}

Create a connector config. Pass activate: true to immediately make it active.

bash
curl -X POST {supervisor_url}/deployments/{deployment_id}/configs/connector:sink:postgres \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "name": "orders-to-postgres",
  "values": {
    "enabled": true,
    "streams": [
      {
        "stream": "orders",
        "topics": ["completed", "refunded"],
        "schema": "json",
        "batch_length": 100,
        "poll_interval": "1s",
        "consumer_group": "pg-sink-orders"
      }
    ],
    "plugin_config": {
      "connection_string": "postgres://user:pass@host:5432/orders",
      "table": "order_events"
    },
    "transforms": {}
  },
  "activate": true
}'

Returns 201 Created with ld-config header. If a config with the same name already exists, a new version is created automatically.

Get Active Connector Config

GET
{supervisor_url}/deployments/{deployment_id}/configs/connector:{type}:{key}/primary

Get the currently active connector configuration. Secret fields (e.g. connection strings) are masked with ***.

bash
curl {supervisor_url}/deployments/{deployment_id}/configs/connector:sink:postgres/primary \
-H "ld-api-key: YOUR_API_KEY"

List Connector Config Versions

GET
{supervisor_url}/deployments/{deployment_id}/configs/connector:{type}:{key}/{config_name}/versions
bash
curl {supervisor_url}/deployments/{deployment_id}/configs/connector:sink:postgres/orders-to-postgres/versions \
-H "ld-api-key: YOUR_API_KEY"

Activate a Connector Config Version

PUT
{supervisor_url}/deployments/{deployment_id}/configs/connector:{type}:{key}/{config_name}/activate/{version}

Promote a connector config version to active. Triggers reconfiguration on all nodes automatically.

bash
curl -X PUT {supervisor_url}/deployments/{deployment_id}/configs/connector:sink:postgres/orders-to-postgres/activate/2 \
-H "ld-api-key: YOUR_API_KEY"

Returns 204 No Content.

Delete a Connector Config

DELETE
{supervisor_url}/deployments/{deployment_id}/configs/connector:{type}:{key}/{config_id}
bash
curl -X DELETE {supervisor_url}/deployments/{deployment_id}/configs/connector:sink:postgres/{config_id} \
-H "ld-api-key: YOUR_API_KEY"

Tasks

After activating a config version, trigger a reconfigure task to apply it to the deployment nodes.

Apply Configuration Changes

POST
{supervisor_url}/deployments/{deployment_id}/tasks

Submit a task to the Warden agent queue. Use iggy:reconfigure to apply Iggy config changes, connectors:reconfigure for connector changes.

bash
curl -X POST {supervisor_url}/deployments/{deployment_id}/tasks \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "type": "iggy:reconfigure"
}'

Use "type": "connectors:reconfigure" to apply connector configuration changes.

Required permission: deployment:task:manage

List Tasks

GET
{supervisor_url}/deployments/{deployment_id}/tasks

List recent tasks and their execution status.

bash
curl {supervisor_url}/deployments/{deployment_id}/tasks \
-H "ld-api-key: YOUR_API_KEY"

On this page