# orion.cm.configadmin

The `orion.cm.configadmin` service, also called ConfigurationAdmin, provides management of configuration information. Internally, the ConfigurationAdmin service is used by the Settings page to manage the values of plugin Settings.

The service methods are:

getConfiguration(pid)
  Returns the Configuration with the given PID from the database. If no such Configuration exists, a new one is created and then returned.
listConfigurations()
  Returns an array of all current Configuration objects from the database.

Refer to `orion.cm.ConfigurationAdmin` in the client API reference for a full description of this service's API methods.

Here is an example of how to use the ConfigurationAdmin service to print out all existing configurations and their property values:

    var configurations = serviceRegistry.getService("orion.cm.configadmin").listConfigurations().then(function(configurations) {
            configurations.forEach(function(configuration) {
                var properties = configuration.getProperties();
                var propertyInfo = Object.keys(properties).map(function(propertyName) {
                    if (propertyName !== "pid") {
                        return "\n        " + propertyName + ": " + JSON.stringify(propertiespropertyName) + "\n";
                    }
                }).join("");
                console.log("Configuration pid: " + configuration.getPid() + "\n"
                          + "  properties: {" + propertyInfo + "\n"
                          + "  }");
            });
    });

The result might look something like this:

    Configuration pid: nonnls.config
      properties: {
            enabled: false
      }
    Configuration pid: jslint.config
      properties: {
            options: "laxbreak:true, maxerr:50"
      }