# Configurations

Streambased I.S.K. is configured via a single configuration file mounted at  /app/etc/directstream-config.properties in the Streambased deployment or by equivalent environment variables.

#### Configurations

```properties
port
```

The port on which Streambased I.S.K. should expose Kafka data as a S3 compatible filesyste.

* Type: integer
* Example:&#x20;

  ```bash
  port=11000
  ```
* Environment Variable: `ISK_PORT`

***

```properties
catalog.port
```

The port on which Streambased I.S.K. exposes an Apache Iceberg REST catalog

* Type: integer
* Example:&#x20;

  ```json
  catalog.port=11001
  ```
* Environment Variable: `ISK_CATALOG_PORT`

***

```properties
external.hostname
```

The hostname on which Streambased I.S.K. exposes it's services

* Type: string
* Example:&#x20;

  ```json
  external.hostname=streambased-isk
  ```
* Environment Variable: `ISK_EXTERNAL_HOSTNAME`

***

```properties
config.provider
```

The method I.S.K. will use to determine Kafka connection details, options are `service` (connection details are managed by Slipstream) or `properties` (connection detail are provided in I.S.K. config)

* Type: string
* Example:&#x20;

  ```json
  config.provider=service
  ```
* Environment Variable: `ISK_CONFIG_PROVIDER`

***

```properties
config.service.url
```

The slipstream url from which I.S.K. can fetch connection details. This applies only when `config.provider` is set to `service`.

* Type: string
* Example:&#x20;

  ```
  config.service.url=http://slipstream:3000/api/internal/cluster-config
  ```
* Environment Variable: `ISK_CONFIG_SERVICE_URL`

***

```properties
config.sources
```

A comma separated list of named prefixes containing connection configs. This applies only when `config.provider` is set to `properties`. Once listed here connection configs can be supplied using the prefix `config.source.[name].`

* Type: string
* Example:&#x20;

  ```
  config.sources=source1,source2
  ```
* Environment Variable: `ISK_CONFIG_SOURCES`

***

```properties
coldset.client.coldset-type
```

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
cache.root.dir
```

Root directory for data and metadata caches.

* Type: string
* Example:&#x20;

  ```
  cache.root.dir=/var/data/isk-cache
  ```
* Environment Variable: `ISK_CACHE_ROOT_DIR`

#### 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]_`
