# Properties

Documentation owner: product `control`; documentation version: `1.3.0`.
Source: `content/products/control/1.3.0/configuration-reference/modules/forms/properties.mdx` at commit `eaf7a020437971baeee95e87eaf963636040ac71`.

### Properties

| Name | Description | Default value | Mandatory |
| --- | --- | --- | --- |
| name | Must be Forms | N/A | Yes |
| http_context | What context is application served under. | /forms | No |
| webroot_dir | Where to load web resources from. | web | No |
| http_auth_redirect_url | Where to send the user for authentication | /forms/authn/login | No |
| overlay_dir | Where to load the overlayed resources from. | N/A | No |
| flows | An array with file path to flows to be loaded. Recommended is using *@include* directive. | N/A | Yes |
| verbose_logs | Array with string values. Possible values are"flow","session","controls" | [] | No |
| cache_control | Object with a `policies` array that maps glob patterns to Cache-Control header values. Evaluated in order — first matching pattern wins. Each policy has `pattern` (glob), `value` (Cache-Control string), and `override` (boolean — `true` overwrites an existing header, `false` only sets it when absent). | Assets and static files: `public, immutable, max-age=86400`. Everything else: `no-store, no-transform, max-age=0`. | No |

### Example 1

```json
{
  "name": "Forms",
  "config": {
        "http_port": "8090",       
        "overlay_dir": "/config/resources_external/overlays",
	}
}
```

### Example 2

```json
{
    "name": "Forms",
    "config": {
        "flows": "@include:flows/*/*/flow.json",
        "http_listener": "default",
        "logout_endpoint_url": "${globals.logout_endpoint_url}",
        "overlay_dirs": [
            "${system.customer_home}/overlay/"
        ],
        "verbose_logs": [
            "flow",
            "session"
        ]
    }
}
```

### Example 3 — cache_control

```json
{
    "name": "Forms",
    "config": {
        "flows": "@include:flows/*/*/flow.json",
        "cache_control": {
            "policies": [
                { "pattern": "**/assets/**",                                                        "value": "public, immutable, max-age=86400", "override": true },
                { "pattern": "**.{js,css,json,png,jpg,jpeg,gif,svg,webp,ico,woff,woff2,ttf,eot}", "value": "public, immutable, max-age=86400", "override": true },
                { "pattern": "**",                                                                  "value": "no-store, no-transform, max-age=0",  "override": true }
            ]
        }
    }
}
```

This is also the built-in default — only add `cache_control` explicitly when you need to deviate from it.
