# 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=true
```

The type of Iceberg catalog used to provide coldset data. Vendor managed catalogs have different auth, metadata column renames etc.\
Supported types are:\
&#x20;        \* default - Minio + Rest catalog with Sigv4 authentication\
&#x20;        \* iceberg-rest-fixture - Minio + Rest Catalog implemented by Iceberg Rest Fixture - Sigv4 auth, requires metadata.json relocation on Coldset / Merged set proxying\
&#x20;        \* tableflow - Confluent Tableflow with Confluent managed Iceberg Catalog and storage\
&#x20;        \* snowflake - Snowflake managed Iceberg

* Type: string
* Example:&#x20;

  ```
  coldset.client.coldset-type=tableflow
  ```
* Environment Variable: `ISK_COLDSET_CLIENT_COLDSET-TYPE`&#x20;

***

```properties
coldset.client.coldset-ns
```

Iceberg namespace to use for Coldset&#x20;

* Type: string
* Example:&#x20;

  ```
  coldset.client.coldset-ns=COLDSET
  ```
* Environment Variable: `ISK_COLDSET_CLIENT_COLDSET-NS`

***

```properties
coldset.client.coldset-ns
```

Iceberg namespace to use for Coldset&#x20;

* Type: string
* Example:&#x20;

  ```
  coldset.client.coldset-ns=COLDSET
  ```
* Environment Variable: `ISK_COLDSET_CLIENT_COLDSET-NS`

```properties
schema-registry.url
```

A Schema Registry REST endpoint Streambased I.S.K. can fetch topic schemas and metadata from.

* Type: string
* Example:&#x20;

  ```json
  "schema-registry.url": "http://schema-registry:8081"
  ```
* Importance: high

#### Configuration prefixes

The remaining configurations represent prefixes that are used to determine configurations for external services used by Streambased

***

```properties
coonfig.source.[name].*
```

A prefix used to pass Kafka connection configurations to Streambased I.S.K. This applies only when `config.provider` is set to `properties` and `[name]` is included in `config.sources`.

* Example:&#x20;

  <pre><code><strong>config.source.source1.bootstrap.servers=kafka1:9092
  </strong></code></pre>
* Environment Prefix: `ISK_CONFIG_SOURCE_[name]_`

***

```properties
coldset.client.*
```

Additional properties for connecting to an Iceberg provider for coldset data

* Example:&#x20;

  <pre><code><strong>coldset.client.rest.access-key-id=admin
  </strong></code></pre>
* Environment Prefix: `ISK_CONFIG_SOURCE_[name]_`


---

# 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/hyperstream/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.
