Skip to content

SLIM Controller Reference

slimctl Commands

slim - Local SLIM Instances

Run standalone SLIM instances for development and testing using production configurations.

Start with a configuration file:

# Start with base configuration (insecure)
slimctl slim start --config data-plane/config/base/server-config.yaml

# Start with TLS configuration
slimctl slim start --config data-plane/config/tls/server-config.yaml

Quick start just specifying a custom listening endpoint:

slimctl slim start --endpoint 127.0.0.1:12345

Note

The server will start without TLS when using this command.

Control log level:

RUST_LOG=debug slimctl slim start --config data-plane/config/base/server-config.yaml

The log level can also be set directly in the configuration file via the tracing.log_level field. See data-plane/config/base/server-config.yaml for an example.

Available flags:

  • --config - Path to YAML configuration file (production SLIM format)
  • --endpoint - Server endpoint (sets SLIMCTL_SLIM_ENDPOINT environment variable)

Configuration files: See example configs from data-plane/config/:

  • base - Basic insecure configuration
  • tls - TLS-enabled server
  • mtls - Mutual TLS authentication
  • basic-auth - HTTP Basic authentication
  • jwt-auth-* - JWT authentication (RSA, ECDSA, HMAC)
  • spire - SPIFFE/SPIRE workload identity
  • proxy - HTTP proxy configuration
  • telemetry - OpenTelemetry integration

route - Route Management

Manage message routes on SLIM nodes via the Control Plane.

List routes:

slimctl controller route list --node-id=my-node

Add a route:

# Create connection configuration
cat > connection_config.json <<EOF
{
  "endpoint": "http://127.0.0.1:46357"
}
EOF

# Add the route
slimctl controller route add org/namespace/service via connection_config.json --node-id=my-node

Delete a route:

slimctl controller route del org/namespace/service/0 via http://localhost:46357 --node-id=my-node

connection - Connection Management

Monitor active connections on SLIM nodes via the Control Plane.

List connections:

slimctl controller connection list --node-id=my-node

node - Node Management

Manage and view SLIM nodes via the Control Plane.

List registered nodes:

slimctl controller node list

node - Direct Node Management

Connect directly to a SLIM node's control endpoint, bypassing the central Control Plane.

List routes directly on a node:

slimctl node route list --server=<node_control_endpoint>

Add route directly to a node:

slimctl node route add org/namespace/service/0 via config.json --server=<node_control_endpoint>

version - Version Information

Display version and build information:

slimctl version

Getting Help

Get detailed help for any command:

slimctl --help
slimctl slim --help
slimctl slim start --help
slimctl route --help

Usage Examples

Example 1: Create, Delete Route using node-id

Add route for node slim/a to forward messages for org/default/alice/0 to node slim/b.

# List available nodes
slimctl controller node list
2 node(s) found
Node ID: slim/b status: CONNECTED
  Connection details:
  - Endpoint: 127.0.0.1:46457
    MtlsRequired: false
    ExternalEndpoint: test-slim.default.svc.cluster.local:46457
Node ID: slim/a status: CONNECTED
  Connection details:
  - Endpoint: 127.0.0.1:46357
    MtlsRequired: false
    ExternalEndpoint: test-slim.default.svc.cluster.local:46357

# Add route to node slim/a
slimctl controller route add org/default/alice/0 via slim/b --node-id slim/a

# Delete an existing route
slimctl controller route del org/default/alice/0 via slim/b --node-id slim/a

Example 2: Create, Delete Route Using connection_config.json

# Create connection configuration
cat > connection_config.json <<EOF
{
  "endpoint": "http://127.0.0.1:46357"
}
EOF

# Add a new route
slimctl controller route add org/default/alice/0 via connection_config.json --node-id=my-node

# Delete an existing route
slimctl controller route del org/default/alice/0 via http://localhost:46357 --node-id=my-node

For full reference of connection_config.json, see the client-config-schema.json.