# Configurations

Streambased K.S.I. is configured by the standard Kroxylicious configuration scheme [here](https://kroxylicious.io/documentation/0.18.0/html/kroxylicious-proxy/#assembly-configuring-proxy-proxy)  or by equivalent environment variables documented here:

#### Environment Variables

```properties
KSI_BOOTSTRAP_SERVERS
```

Bootstrap servers for the underlying Kafka cluster

* Type: string
* Example:&#x20;

  ```
  KSI_BOOTSTRAP_SERVERS=kafka1:9092
  ```

***

```properties
KSI_GATEWAY_BOOTSTRAP_ADDRESS
```

The address that clients should connect to to access the proxy.

* Type: string
* Example:&#x20;

  ```json
  KSI_GATEWAY_BOOTSTRAP_ADDRESS=ksi:9192
  ```

***

```properties
KSI_COLD_STORAGE_TYPE
```

The method in which K.S.I. will interact with Iceberg, supported values are:

&#x20;       \* spark-connect

&#x20;       \* iceberg

* Type: string
* Example:&#x20;

  ```json
  KSI_COLD_STORAGE_TYPE=spark-connect
  ```

***

```properties
KSI_SPARK_CONNECT_URL
```

The Url of Spark-Connect, this should only be used when `KSI_COLD_STORAGE_TYPE` is `spark-connect`.

* Type: string
* Example:&#x20;

  ```json
  KSI_SPARK_CONNECT_URL=sc://spark-iceberg:15002
  ```

***

```properties
KSI_MAX_COLD_STORAGE_RECORDS_PER_FETCH
```

The maximum number of Iceberg records to return for any signle FETCH response.

* Type: integer
* Example:&#x20;

  <pre><code><strong>KSI_MAX_COLD_STORAGE_RECORDS_PER_FETCH=1000
  </strong></code></pre>

***

```properties
KSI_COLD_STORAGE_TIMEOUT_MS
```

The maximum time K.S.I. will wait for records from Iceberg before returning to Kroxylicious

* Type: integer
* Example:&#x20;

  ```
  KSI_COLD_STORAGE_TIMEOUT_MS=30000
  ```

***

```properties
KSI_ALWAYS_RETURN_MINUS_ONE_START_OFFSET
```

Whether or not K.S.I. should return a -1 start offset for any topics it manages. A value of `true` indicates that this topic has infiinite retention and is managed by K.S.I.

* Type: boolean
* Example:&#x20;

  ```
  KSI_ALWAYS_RETURN_MINUS_ONE_START_OFFSET=true
  ```

***

```properties
KSI_ICEBERG_NAMESPACE
```

The namespace that contains the Iceberg data

* Type: string
* Example:&#x20;

  ```
  KSI_ICEBERG_NAMESPACE=coldset
  ```

***

```properties
KSI_SPARK_CATALOG_NAME
```

The catalog that contains the Iceberg data

* Type: string
* Example:&#x20;

  ```
  KSI_SPARK_CATALOG_NAME=direct
  ```

***

```properties
KSI_SCHEMA_REGISTRY_URL
```

The Schema Registry url for retrieving topic schemas

* Type: string
* Example:&#x20;

  ```
  KSI_SCHEMA_REGISTRY_URL=http://schema-registry:808
  ```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.streambased.io/deploy-and-operate/streambased-platform/kafka-service-for-iceberg-k.s.i./configurations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
