> For the complete documentation index, see [llms.txt](https://indigo-dc.gitbook.io/cdmi-qos/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://indigo-dc.gitbook.io/cdmi-qos/deployment-and-administration-guide/configuration.md).

# Configuration

## Introduction

The CDMI service can be configured through the `config/application.yml` YAML configuration file.

If you have installed the service via packages this file can be found at `/var/lib/cdmi-server/config/application.yml`. This file provides a basic set of parameters for configuring the service. In detail the parameters that can be configured are as following.

## Basic Configuration

The CDMI service comes with a built-in `dummy_filesystem` module as an example storage back-end. Other available storage back-ends can be found at the INDIO-DataCloud [GitHub](https://github.com/indigo-dc) repository.

The REST API of the CDMI service is exposed via HTTP/HTTPS with the ports configurable as indicated below. You need to allow access to the ports you specify to make use of the REST API.

## Configuration Parameters

* spring: Basic Java Spring configurations
  * profiles: Configuration profile specification
    * active: Active configuration to use (e.g. filesystem)
* server: Basic server configuration
  * port: The port the server should listen for incoming connections
* rest: HTTP Basic authentication configuration for the REST API
  * user: The HTTP Basic authentication username
  * pass: The HTTP Basic authentication password
* spring: Profile specific Java Spring configurations
  * profiles: filesystem
* cdmi: CDMI specific configurations
  * data: File-system configuration for the data path
    * baseDirectory: Base directory where the CDMI objects can be found
    * objectIdPrefix: Prefix for dot meta-data files to be stored on the file-system
  * qos:The QoS path configurations
    * backend: Storage back-end configurations
      * type: Back-end type as exposed by the back-end module (e.g. `dummy_filesystem`)

## Storage Back-End Modules

The CDMI-QoS server can be used with different storage back-end modules. It comes with a built-in `dummy_filesystem` module as an example storage back-end. Other available storage back-ends can be found at the INDIO-DataCloud [GitHub](https://github.com/indigo-dc) repository.

Known available storage back-ends at this time are:

* CDMI File-system for a default POSIX file-system (built-in and default, `dummy_filesystem`)
* [CDMI HPSS](https://github.com/indigo-dc/cdmi-hpss) for a HPSS storage back-end (`hpss_backend`)
* [CDMI S3](https://github.com/indigo-dc/cdmi-s3-qos) for a S3 storage back-end (`radosgw`)

These modules follow the Java Service Provider Interface specification, for more details please have a look at the Developer guide sections.

To make use of a specific storage back-end for QoS, you have to specify the module's type string at the cdmi.qos.backend.type configuration parameter, e.g. `hpss_backend`.

## Java Spring

The configuration can also be modified via Spring Boot application supported ways, see [Spring Boot - External config](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config) for more details.
