---
title: Server configuration
description: This chapter describes how IDM loads and stores its configuration, and how to modify it.
component: pingidm
version: 8.1
page_id: pingidm:setup-guide:chap-configuration
canonical_url: https://docs.pingidentity.com/pingidm/8.1/setup-guide/chap-configuration.html
keywords: ["Setup &amp;amp; Configuration", "Server", "Objects"]
section_ids:
  configuration-objects: Configuration objects
  single-instance-configuration-objects: Single instance configuration objects
  multiple-instance-configuration-objects: Multiple instance configuration objects
---

# Server configuration

This chapter describes how IDM loads and stores its configuration, and how to modify it.

The configuration is a combination of `.properties` files, container configuration files, and dynamic configuration objects. Most of the configuration files are stored in your project's `conf/` directory.

## Configuration objects

IDM exposes internal configuration objects in JSON format. Configuration elements can be either single instance or multiple instance for an IDM installation.

### Single instance configuration objects

Single instance configuration objects correspond to services that have at most one instance per installation. JSON file views of these configuration objects are named `object-name.json`.

|   |                                                                                                                                                                                                                                       |
| - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | If you create custom configuration files, do not use spaces or special characters in the filenames, in accordance with the [OSGi specification](https://docs.osgi.org/specification/osgi.core/8.0.0/framework.service.html#i3043166). |

The following list describes the single instance configuration objects:

|                  |                                                                                                            |
| ---------------- | ---------------------------------------------------------------------------------------------------------- |
| `audit`          | Specifies how to log audit events.                                                                         |
| `authentication` | Controls REST access.                                                                                      |
| `cluster`        | Defines a clustered IDM instance.                                                                          |
| `endpoint`       | Controls custom REST endpoints.                                                                            |
| `managed`        | Defines managed objects and their schemas.                                                                 |
| `policy`         | Defines the policy validation service.                                                                     |
| `process-access` | Defines access to configured workflows.                                                                    |
| `repo.repo-type` | Defines the IDM repository; for example, `repo.ds` or `repo.jdbc`.                                         |
| `router`         | Specifies filters to apply for specific operations.                                                        |
| `script`         | Defines the parameters that are used when compiling, debugging, and running JavaScript and Groovy scripts. |
| `sync`           | Defines the mappings that IDM uses when it synchronizes and reconciles managed objects.                    |
| `ui`             | Defines the configurable aspects of the default user interfaces.                                           |
| `workflow`       | Defines the configuration of the workflow engine.                                                          |

### Multiple instance configuration objects

Multiple instance configuration objects correspond to services that can have many instances per installation. Multiple instance configuration objects are named `objectname/instancename`; for example, `provisioner.openicf/csvfile`. *JSON file* views of these configuration objects are named `objectname-instancename.json`, for example, `provisioner.openicf-csvfile.json.`

IDM provides the following multiple instance configuration objects:

* Multiple `schedule` configurations can run reconciliations and other tasks on different schedules.

* Multiple `provisioner.openicf` configurations correspond to connected resources.

* Multiple `servletfilter` configurations can be used for different servlet filters, such as the Cross Origin and GZip filters.

  You can order servlet filters by specifying the `order` property in the servlet filter configuration. The default order is `0`, which is assigned to all servlet filters and results in a non-deterministic loading order.

  An `order` property of `0` has the highest priority.

  You can add the `order` property to any of the three IDM servlet filters. The following sample configuration shows how you can add an `order` property of `1` to `servletfilter-payload.json`, which prioritizes this filter after `servletfilter-cors` and `servletfilter-upload` with an `order` property of `0`:

  ```json
  {
      "classPathURLs" : [ ],
      "systemProperties" : { },
      "requestAttributes" : { },
      "scriptExtensions" : { },
      "initParams" : {
          "maxRequestSizeInMegabytes" : 5
      },
      "urlPatterns" : [
          "&{openidm.servlet.alias}/*"
      ],
      "filterClass" : "org.forgerock.openidm.jetty.LargePayloadServletFilter",
      "order" : 1
  }
  ```
