---
title: "SparkPipe | Configuration"
slug: "sparkpipe-configuration"
description: "SparkPipe is a cloud-native service that utilizes the MQTT Sparkplug specification to securely connect to any MQTT 3.1 compatible broker, capturing all the events published by any Sparkplug-enabled edge node, and routing this data to cloud-based services and applications such as Apache Kafka, etc."
updated: 2025-12-19T15:11:28Z
published: 2025-12-19T15:11:28Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.n3uron.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration

## Configuration

The SparkPipe service is configured using a simple TOML file located at **/etc/sparkpipe/config.toml**

### Default config.toml

```ini
# N3uron SparkPipe configuration file

# Logging configuration
[logging]
  # Log level: DEBUG, INFO, WARN, ERROR
  level  = "info"

  # Log format: JSON, TEXT
  format = "text"

# MQTT configuration
[mqtt]
  # Sparkpug host application ID
  host_id = "sparkpipe"

  # Sparkplug reordering timeout in seconds
  reorder_timeout = 5

  # Time in seconds before another Rebirth request can be sent to an EdgeNode
  rebirth_delay = 5

# MQTT brokers (add as many as desired)
[[mqtt.brokers]]
  # Connection url: proto://host:port
  # Examples:
  #   Plain TCP     --> tcp://insecure.server.cloud:1883
  #   TLS encrypted --> ssl://secure.server.cloud:8883
  #   Websockets    --> wss://secure.server.cloud:8884
  server      = ""
  
  # Username/password for authentication (leave empty if unused)
  username    = ""
  password    = ""

  # SSL/TLS configuration
  tls_client_certificate     = ""    # Path to the TLS client certificate
  tls_client_certificate_key = ""    # Path to the TLS certificate key
  tls_certificate_authority  = ""    # Path to the TLS Certificate Authority
  tls_insecure_skip_verify   = false # Disable certificate validation 

# Connectors configuration
[connectors]
  # Name of the specific connector to run.
  #   - kafka
  #   - mongo
  #   - sitewise
  #   - snowflake
  #   - stdout
  name = ""

# Kafka
[connectors.kafka]
...

# MongoDB
[connectors.mongo]
...

# AWS IoT SiteWise
[connectors.sitewise]
...

# Snowflake
[connectors.snowflake]
...

# Stdout
[connectors.stdout]
...
```

### Usage

**Step 1:**Open the configuration file:

```bash
sudo nano /etc/sparkpipe/config.toml
```

**Step 2:**Add or modify the default settings as desired and save changes (**Ctrl+X**)

**Step 3:**After configuring SparkPipe, run the following commands to enable and start the service:

```bash
sudo systemctl enable sparkpipe.service
sudo systemctl start sparkpipe.service
```

**Step 4:**Verify the service is up and running:

```bash
sudo systemctl status sparkpipe.service
```

**Step 5:**View the logs produced by the service:

```bash
sudo journalctl -u sparkpipe.service -f
```

### Examples

> [!NOTE]
> Note:
> 
> Configuration examples for each module are provided in their respective sections in [Connectors](/v122/docs/sparkpipe-connectors-apache-kafka).

#### Multiple MQTT brokers

The following example shows how to configure SparkPipe to use multiple MQTT brokers. Add as many **[[mqtt.brokers]]** sections as required.

```ini
## N3uron SparkPipe configuration file

# Logging configuration
[logging]
  # Log level: DEBUG, INFO, WARN, ERROR
  level  = "info"

  # Log format: JSON, TEXT
  format = "json"

# MQTT configuration
[mqtt]
  # Sparkpug host application ID
  host_id = "sparkpipe"

  # Sparkplug reordering timeout in seconds
  reorder_timeout = 5

  # Time in seconds before another Rebirth request can be sent to an EdgeNode
  rebirth_delay = 5

# MQTT brokers
[[mqtt.brokers]]
  # HiveMQ public broker
  server = "ssl://broker.hivemq.com:8883"

[[mqtt.brokers]]
  # Mosquitto public broker
  server                   = "ssl://test.mosquitto.org:8883"
  tls_insecure_skip_verify = true

# Connectors
...
```

#### AWS IoT Core with mTLS

This is an example configuration for AWS IoT Core using TLS certificates for authentication. See the [official IoT Core documentation](https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html) on creating and setting up a new connection.

```ini
## N3uron SparkPipe configuration file

# Logging configuration
[logging]
  # Log level: DEBUG, INFO, WARN, ERROR
  level  = "info"

  # Log format: JSON, TEXT
  format = "json"

# MQTT configuration
[mqtt]
  # Sparkpug host application ID
  host_id = "sparkpipe"

  # Sparkplug reordering timeout in seconds
  reorder_timeout = 5

  # Time in seconds before another Rebirth request can be sent to an EdgeNode
  rebirth_delay = 5

# MQTT brokers
[[mqtt.brokers]]
  # AWS IoT Core
  server                     = "ssl://e7paxflom6n2q-ats.iot.us-east-1.amazonaws.com:8883"
  tls_client_certificate     = "/etc/sparkpipe/certs/703142e50c45a12ac5720aaae40347d56045aa433d71aae6dc5b39d572428f02-certificate.pem.crt"
  tls_client_certificate_key = "/etc/sparkpipe/certs/703142e50c45a12ac5720aaae40347d56045aa433d71aae6dc5b39d572428f02-private.pem.key"
  tls_certificate_authority  = "/etc/sparkpipe/certs/AmazonRootCA1.pem"
  
  # Connectors
  ...
```
