> For the complete documentation index, see [llms.txt](https://coldbox.ortusbooks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://coldbox.ortusbooks.com/v6.x/getting-started/configuration/coldbox.cfc.md).

# ColdBox.cfc

The ColdBox.cfc is the main applications' configuration object.

The ColdBox configuration CFC is the heart of your ColdBox application. It contains the initialization variables for your application and extra information used by third-party modules and ultimately how your application boots up. In itself, it is also an event listener or [ColdBox Interceptor](/v6.x/getting-started/configuration/coldbox.cfc/configuration-directives/interceptors.md), so it can listen to life-cycle events of your application.

![ColdBox.cfc EcoSystem](https://825821834-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LA-UVvJIdbk5Kfk3bDs%2F-LAeRmcSIW1fdK__iDO-%2F-LAeS-MO-folm7Ezr9We%2FColdbox-cfc.jpg?generation=1524351899974708\&alt=media)

This CFC is instantiated by ColdBox and decorated at runtime so you can take advantage of some dependencies.  Here is a table of the automatic injection this object has:

| **Property**          | **Description**                                                                                               |
| --------------------- | ------------------------------------------------------------------------------------------------------------- |
| `appMapping`          | The ColdBox app mapping                                                                                       |
| `coldboxVersion`      | The version of the framework                                                                                  |
| `controller`          | The ColdBox running app controller                                                                            |
| `logBoxConfig`        | A reference to a LogBox configuration object                                                                  |
| `getJavaSystem()`     | Function to get access to the java system                                                                     |
| `getSystemSetting()`  | Retrieve a Java System property or env value by name. It looks at properties first then environment variables |
| `getSystemProperty()` | Retrieve a Java System property value by key                                                                  |
| `getEnv()`            | Retrieve a Java System environment value by name                                                              |
| `webMapping`          | The application's web mapping                                                                                 |

## Configuration Storage

Once the application starts up, a reference to the instantiated configuration CFC will be stored in the configuration settings inside the ColdBox Main Controller (`application.cbController`) with the key `coldboxConfig`. You can then retrieve it later in your handlers, interceptors, modules, etc if you need to.

```javascript
// retrieve it
config = getSetting( 'coldboxConfig' );

// inject it
property name="config" inject="coldbox:setting:coldboxConfig";
```

## Configuration Interceptor

![ColdBox Event Listeners](https://825821834-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LA-UVvJIdbk5Kfk3bDs%2F-LAeRmcSIW1fdK__iDO-%2F-LAeS-R4upLTZURZUUZJ%2Feventdriven.jpg?generation=1524351899002424\&alt=media)

Another cool concept for the Configuration CFC is that it is also registered as a [ColdBox Interceptor](/v6.x/the-basics/interceptors.md) once the application starts up automatically for you.  You can create functions that will listen to application events by simply registering them by name:

```javascript
function preProcess( event, interceptData, buffer, rc, prc ){
    writeDump( 'I just hijacked your app!' );abort;
}
```

{% hint style="danger" %}
Note that the config CFC does not have the same variables mixed into it that a "normal" interceptor has. You can still access everything you need, but will need to get it from the `controller` in the variables scope.
{% endhint %}

```javascript
function preRender( event, interceptData, buffer, rc, prc ){
    controller.getWirebox().getInstance( 'loggerService' ).doSomething();
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://coldbox.ortusbooks.com/v6.x/getting-started/configuration/coldbox.cfc.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
