> For the complete documentation index, see [llms.txt](https://docs.fortifiedid.se/node/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fortifiedid.se/node/readme.md).

# Node

The Node module deploys and undeploys a group of modules to form an application. It is the bootstrap module and is not itself deployed from the `modules` array.

## Configuration

The module reads `modules` and optional deployment settings from its configuration. The deployment order defaults to `first`, `system`, `authn`, `default`, `last`.

{% tabs %}
{% tab title="Properties" %}

<table><thead><tr><th>Name</th><th>Description</th><th>Default</th><th data-type="checkbox">Mandatory</th></tr></thead><tbody><tr><td><code>modules</code></td><td>Modules to deploy. Each module defines its own name, enabled state, group and configuration.</td><td><code>[]</code></td><td>false</td></tr><tr><td><code>groups</code></td><td>Legacy/top-level deployment group order. The <code>server.deployment.groups</code> setting takes precedence when present.</td><td><code>["first", "system", "authn", "default", "last"]</code></td><td>false</td></tr><tr><td><code>server.deployment.groups</code></td><td>Deployment group order.</td><td>Value of <code>groups</code>, otherwise <code>["first", "system", "authn", "default", "last"]</code></td><td>false</td></tr><tr><td><code>server.deployment.group_affiliations</code></td><td>Map of module names to their default deployment groups. Configured entries override built-in affiliations.</td><td>Built-in platform affiliations</td><td>false</td></tr><tr><td><code>heartbeat</code></td><td>Optional HTTP heartbeat configuration. The heartbeat module starts after configured modules have started.</td><td><code>{"enabled": false}</code></td><td>false</td></tr></tbody></table>
{% endtab %}

{% tab title="Example" %}

```json
{
  "server.deployment.groups": ["first", "system", "default", "last"],
  "server.deployment.group_affiliations": {
    "HttpClient": "system",
    "MyModule": "default"
  },
  "modules": [
    {
      "name": "HttpClient",
      "enabled": true,
      "instances": 2,
      "worker": false,
      "config": {}
    },
    {
      "name": "MyModule",
      "enabled": true,
      "group": "default",
      "instances": 1,
      "worker": true,
      "config": {}
    }
  ],
  "heartbeat": {
    "enabled": false
  }
}
```

{% endtab %}
{% endtabs %}

### Module

Each entry in `modules` supports the following properties:

<table><thead><tr><th>Name</th><th>Description</th><th>Default</th><th data-type="checkbox">Mandatory</th></tr></thead><tbody><tr><td><code>name</code></td><td>Module class name or alias.</td><td></td><td>true</td></tr><tr><td><code>enabled</code></td><td>Whether the module is deployed.</td><td><code>true</code></td><td>false</td></tr><tr><td><code>group</code></td><td>Deployment group. When omitted, the configured or built-in module affiliation is used, then <code>default</code>.</td><td><code>"default"</code> or module affiliation</td><td>false</td></tr><tr><td><code>instances</code></td><td>Number of instances to deploy.</td><td><code>1</code></td><td>false</td></tr><tr><td><code>worker</code></td><td>Whether to deploy the module using worker execution.</td><td><code>false</code></td><td>false</td></tr><tr><td><code>config</code></td><td>JSON object passed to the module.</td><td><code>{}</code></td><td>false</td></tr></tbody></table>

### Heartbeat

The optional `heartbeat` object enables the HTTP heartbeat after all configured modules have started. See [Heartbeat](https://github.com/fortifiedid/gitbook/tree/main/spaces/access-next/the-service/operations/health-check.md) for the responder settings and defaults.
