The `wfc.js` module provides a Waiting For Caller (WFC) type dashboard from a bygone era. Many traditional features are available including newer concepts for modern times. Node spy is left out as it feels like something that should be left in the past.
By default, the WFC may be accessed via the `!WFC` main menu command when connected over a secure connection via a user with the proper [ACS](../configuration/acs.md). This can be configured as per any other menu in the system. Note that ENiGMA½ does not expose the WFC as a standalone application as this would be much less flexible. To connect locally, simply use your favorite terminal or for example: `ssh -l yourname localhost 8889`. See **Security** below for more information.
The system allows any user with the proper security to access the WFC / system operator functionality. The security policy is enforced by ACS with the default of `SCAF2ID1GM[wfc]`, meaning the following are true:
1. Securely Connected (such as SSH or Secure WebSocket, but not Telnet)
> :information_source: Due to the above, the WFC screen is **disabled** by default as at a minimum, you'll need to add your user to the `wfc` group. See also [Security](../configuration/security.md) for more information on keeping your system secure!
The WFC `config` block allows for the following keys:
| Key | Required | Description |
|-----|----------|-------------|
| `acs` | :+1: | See [Security](#security) above. |
| `opVisibility` | :-1: | Boolean. Set to `true` or `false` in order to change visbility when entering the WFC |
| `quickLogLevel` | :-1: | Sets the log level for the quick log view. Defaults to `info`. See also [Monitoring Logs](../troubleshooting/monitoring-logs.md). |
| `art` | :+1: | An Object containing art information: `main` for the WFC main view itself and `help` for a help screen. |
| `confirmKickNodePrompt` | :-1: | Override the prompt name used for the "Kick selected node?" prompt. Defaults to `confirmKickNodePrompt` |
*`affils`: Any affiliations related to the if `authenticated`, else "N/A".
*`authenticated`: Boolean rather the node is authenticated (logged in) or not.
*`availIndicator`: Indicator of availability (e.g. for messaging)? Displayed via `statusAvailableIndicators` or system theme. See also [Themes](../art/themes.md).
*`isAvailalbe`: Boolean rather the node is availalbe (e.g. for messaging) or not.
*`isSecure`: Is the node securely connected (ie: SSL)?
*`isVisible`: Boolean rather the node is visible to others or not.
*`node`: The node ID.
*`realName`: Real name of authenticated user, or "N/A".
*`serverName`: Name of connected server such as "Telnet" or "SSH".
*`VM2`: Quick log with the following format keys available:
*`timestamp`: Log entry timestamp in `quickLogTimestampFormat` format.
*`level`: Log entry level from Bunyan.
*`levelIndicator`: Level indicators can be overridden with the `quickLogLevelIndicators` key (see defaults below)
*`quickLogLevelIndicators`: A **map** defaulting to the following`:
*`trace` : `T`
*`debug`: `D`
*`info`: `I`
*`warn`: `W`
*`error`: `E`
*`fatal`: `F`
*`nodeId`: Node ID.
*`sessionId`: Session ID.
*`quickLogLevelMessagePrefixes`: A **map** of log level names (see above) to message prefixes. Commonly used for changing message color with pipe codes, such as `|04` for red errors.
*`MT3` or `ET3`: Selected node status information. May be a single or multi line view.
* Set `nodeStatusSelectionFormat` to the format desired including `\n` for line feeds in as `MT` view. The availalbe format keys are the same as the node status list above.
> :information_source: While [Standard MCI](../art/mci.md) codes work on any menu, they will **not** refresh. For values that may change over time, please use the custom format values above.