> For the complete documentation index, see [llms.txt](https://t1t.gitbook.io/t1c-js-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://t1t.gitbook.io/t1c-js-guide/core/gcl-configuration.md).

# GCL Configuration

## Introduction

The GCL has 2 configuration files. t1c.json is used by the application and should never be changed manually. This file has a signature, so tempering with it will invalidate the file. t1c\_config.json can be changed manually, for more information see below.

## Locations

| OS      | Location                                         |
| ------- | ------------------------------------------------ |
| Windows | %PROGRAMDATA%/T1T/Trust1Connector                |
| macOS   | /Library/Application Support/T1T/Trust1Connector |
| Linux   | /etc/trust1connector                             |

## t1c.json

```javascript
{
  "checksum": "....",
  "config": {
    "activated": true,
    "plugins": {
      "file": "file_path_of_the_container",
      "hash": "sha256_hash_of_the_container"
    }
  }
}
```

| Setting   | Description                              |
| --------- | ---------------------------------------- |
| activated | The activation flag of the T1C           |
| plugins   | The list of loaded containers by the T1C |

## t1c\_config.json

All settings are optional, default values are described below. The only exception are the list of consent info messages, if you specify a language, all three fields must be present.

```javascript
{
    "citrix": {
        "enabled": true,
        "inactive_counter": 3
        "metadata": {
            "key1": "value1",
            "key2": "%USER%"
        },
        "registration_interval":30
    },
    "consent": {
        "enabled": true
    },
    "log_expose_level": "protected",
    "log_level": "info",
    "network": {
        "access_control_allow_credentials": "true",
        "access_control_allow_headers": "Accept,Accept-Version,Content-Length,Content-MD5,Content-Type,Date,apikey,Authorization,X-Consumer-JWT,X-Consumer-Username",
        "access_control_allow_origin": "*",
        "cache_control": "no-cache, no-store, must-revalidate"
    },
    "port":10443,
    "timeout":60
}
```

| Setting                       | Default value | Description                                                                                                                                                      |
| ----------------------------- | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| citrix.enabled                | false         | En- or disable citrix mode.                                                                                                                                      |
| citrix.inactive\_counter      | 3             | The amount of times an agent can go without sending a keepalive before it's considered inactive. The time is multiplied with the registration\_interval setting. |
| citrix.metadata               | empty list    | A list of T1C agent metadata, environment variables can be used for the values. To indicate an environment variable, wrap it in %'s.                             |
| citrix.registration\_interval | 30 seconds    | The interval to send a keepalive to the server in seconds.                                                                                                       |
| consent.enabled               | false         | En- or disable the consent functionality. This will show a popup to ask a consent from the user to use a device.                                                 |
| log\_expose\_level            | protected     | Indicates the expose level of the log files. Allowed values: private (not allowed), protected (JWT validation required) and public (always allowed).             |
| log\_level                    | info          | The log level of the T1C. Allowed values: full, debug, info, notification, warning, error.                                                                       |
| network                       | See example   | Allows to change the http network headers (CORS).                                                                                                                |
| port                          | 10443         | The port of the T1C.                                                                                                                                             |
| timeout                       | 60            | The interval in seconds after which a response timeout is returned.                                                                                              |

If your Trust1Connector package has Citrix capabilities, you can dis- or enable this.

In order to enable Citrix, you must take the following steps:

* Stop the Trust1Connector service (Windows services, launchctl on macOS)
* Edit the t1c\_config.json configuration file with citrix.enabled = true (see [Locations](/t1c-js-guide/core/gcl-configuration.md#locations) to find the t1c\_config.json file)
* Restart the citrix server.
* The service and the Citrix agent will automatically start at login of the user.

To disable, follow the same steps but set citrix.enabled = false.
