***
title: Configuration File Reference
deprecated: false
hidden: false
metadata:
robots: index
-------------
The agent container requires the configuration to be in YAML format in the `/home/moveworks/agent/conf` directory with the file name as `agent_config.yml`.
The configuration encompasses various aspects such as Moveworks-specific settings, LDAP and REST client configurations, secrets management, and proxy settings.
# Secret Object
A secret object is a field in the configuration that is a protected value. All credentials in the configuration are stored as a secret object. There are 3 types of secret objects:
1. **Plaintext/Encrypted Plaintext**: These secrets are stored in the config YAML itself. Once the agent starts, all `value` objects are converted to `encrypted_value` objects for security.
```yaml
value: "your-default-secret"
# Or after encryption:
# encrypted_value: "your-encrypted-secret"
```
2. **AWS Secrets Manager**: These secrets can be fetched from AWS Secrets Manager.
```yaml
aws_entry:
secret_name: "my-aws-secret" # Name of the secret in AWS Secrets Manager
region: "us-west-2" # AWS region where the secret is stored
refresh_time_sec: 3600 # Time interval in seconds to refresh / retrieve the secret
```
3. **Azure Key Vault**: These secrets can be fetched from Azure Key Vault
```yaml
azure_entry:
secret_name: "my-azure-secret" # Name of the secret in Azure Key Vault
vault: "my-azure-vault" # Name of the Azure Key Vault
refresh_time_sec: 3600 # Time interval in seconds to refresh / retrieve the secret
```
## Top-Level Configuration Fields
1. `bond_version`
1. **Type:** `string`
2. **Description:** Indicates the version of the bond configuration being used.
3. **Example:** `"2.10.3"`
2. `secrets_provider_config`
1. **Description:** Configuration for secrets management, to either AWS Secrets Manager or Azure Key Vault. Only specified if using any of the above management methods.
2. **`aws`** (object, optional):
1. **Description:** Configuration specific to AWS Secrets Manager.
2. **Fields:**
1. `default_region`: Default AWS region for accessing secrets. Example: `"us-west-2"`
3. **`azure`** (object, optional):
1. **Description:** Configuration specific to Azure Key Vault.
2. **Fields:**
1. `default_vault`: Default Azure Key Vault to use. Example: `"your-vault-name"`
3. `moveworks_config`
1. `auth_url`:
1. **Type:** `string`
2. **Description:** The URL used for authentication with Moveworks systems.
3. **Example:** `"https://agent.moveworks.com/api/v1/auth"`
2. `config_url`:
1. **Type:** `string`
2. **Description:** The URL where configuration data is fetched from.
3. **Example:** `"https://agent.moveworks.com/api/v1/config"`
3. `access_key`:
1. **Type:** `string`
2. **Description:** The key used for access authorization. Generally org name.
3. **Example:** `"your-access-key"`
4. `moveworks_access_secret`:
**Type:** `secret object`
**Description:** Secret entry for Moveworks access credentials.
5. `path_to_cert`:
1. **Type:** `string`
2. **Description:** File path to the certificate used for secure connections.
3. **Optional:** True
4. **Example:** `"/home/moveworks/agent/certs/cert.pem"`
4. `ldap_config`
1. `enabled`:
1. **Type**: `boolean`
2. **Description**: Whether the LDAP configuration is enabled.
2. `host`:
1. **Type:** `string`
2. **Description:** The hostname or IP address of the LDAP server.
3. **Example:** `"ldap.example.com"`
3. `port`:
1. **Type:** `int32`
2. **Description:** The port on which the LDAP server listens.
3. **Example:** `389`
4. `domain`:
1. **Type:** `string`
2. **Description:** The domain for LDAP authentication, without `ldap://` prefix.
3. **Example:** `"example.com"`
5. `service_user`:
1. **Type:** `string`
2. **Description:** The service user account for LDAP operations.
3. **Example:** `"service_user"`
6. `ldap_service_password`:
1. **Type:** `secret object`
2. **Description:** Password for the LDAP service user.
7. `use_ssl`:
1. **Type:** `boolean`
2. **Description:** Whether to connect to the LDAP server using SSL.
3. **Example:** `true`
8. `use_start_tls`:
1. **Type:** `boolean`
2. **Description:** Whether to initiate a StartTLS connection to the LDAP server.
3. **Example:** `false`
9. `path_to_cert`:
1. **Type:** `string`
2. **Description:** File path to the LDAP server's certificate.
3. **Optional:** True
4. **Example:** `"/home/moveworks/agent/certs/ldap_cert.pem"`
10. `tls_skip_verify`:
1. **Type:** `boolean`
2. **Description:** Whether to skip TLS certificate verification for LDAP.
3. **Optional:** True
4. **Example:** `false`
5. `ldap_forest_config` (Map)
1. **Description:** A map of LDAP forest configurations, keyed by forest name.
2. **Fields per forest:**
1. `host`:
1. \*\*Type: \*\* `string`
2. **Description:** Hostname or IP address of the LDAP forest server.
3. \*\*Example: \*\* `"forest-ldap.example.com"`
2. `port`:
1. **Type:** `int32 `
2. **Description:** Port number for the LDAP forest server.
3. **Example:** `636`
3. `domain`:
1. **Type:** `string`
2. **Description:** LDAP domain for the forest server, without `ldap://` prefix.
3. **Example:** `"forest.example.com"`
4. `service_user`
1. **Type:** `string`
2. **Description:** Service user for operations within the LDAP forest.
3. **Example:** `"forest_service_user"`
5. `ldap_service_password`:
1. **Type:** `secret object`
2. **Description:** Password for the service user in the LDAP forest.
6. `use_ssl`:
1. **Type:** `boolean`
2. **Optional:** `True`
3. **Description:** Whether SSL is used for connections to the forest server.
4. **Example:** `true`
7. `path_to_cert`:
1. **Type:**` string`
2. **Optional:**`True`
3. **Description:** Path to the certificate used by the LDAP forest server.
4. **Example:** `"/path/to/forest_cert.pem"`
8. `tls_skip_verify`:
1. **Type:**` boolean`
2. **Optional:** `True`
3. **Description:** Whether to skip TLS verification in forest configurations.
4. **Example:** `false`
6. `rest_configs` (Map)
1. **Description:** A map of REST client configurations, keyed by service name (e.g., `JIRA`, `SNOW`).
2. **Fields per service:**
1. `enabled`:
1. **Type**: `boolean`
2. **Description**: Whether the REST configuration is enabled
2. `service`:
1. **Type:** `string`
2. **Description:** The identifier of the external service.
3. **Example:** `"example_service"`
3. `header_decorators`:
1. **Type:** `array`
2. **Description:** A list of configurations for modifying request headers. See [Header Decorators](#decorators) section below.
4. `body_decorators`:
1. **Type:** `array`
2. **Description:** A list of configurations for modifying the request body. See [Body Decorators](#decorators) section below.
5. `url_decorators`:
1. **Type:** `array`
2. **Description:** A list of configurations for modifying the request URL. See [https://www.geeksforgeeks.org/python/decorators-in-python/(#decorators)](https://www.geeksforgeeks.org/python/decorators-in-python/\(#decorators\)) section below.
6. `do_not_use_rest_proxy`:
1. **Type:** `boolean`
2. **Description:** Whether to bypass any configured REST proxy for local requests.
3. **Optional:** True
4. **Example:** `true`
7. `ca_cert_path`:
1. **Type:** `string`
2. **Description:** File path to an additional CA certificate used in TLS configuration.
3. **Optional:** True
4. **Example:** `"/home/moveworks/agent/certs/ca-cert.pem"`
8. `tls_skip_verify`:
1. **Type:** `boolean`
2. **Description:** Whether to skip TLS certificate verification for REST communications.
3. **Optional:** True
4. **Example:** `false`
9. `max_response_size`:
1. **Type:** `int32`
2. **Description:** Maximum size of the response in bytes that the REST client will accept.
3. **Optional:** True
4. **Example:** `1048576` (1 MB)
10. `use_ntlmv2`:
1. **Type:** `boolean`
2. **Description:** Whether to use NTLMv2 authentication for REST calls.
3. **Optional:** True
4. **Example:** `false`
7. `moveworks_proxy_configs` (Map)
1. **Description:** A map of proxy configurations, keyed by proxy name.
2. **Fields per proxy:**
1. `target_url`:
1. **Type:** `string`
2. **Description:** URL of the target where all forwarded requests should go.
3. **Example:** `"https://proxy.example.com"`
2. `port`:
1. **Type:** `int32`
2. **Description:** Port number on which the proxy listens for requests.
3. **Example:** `8080`
## Decorators
### Header Decorators
For `rest_configs`, you can define header decorators to add different types of headers to the request.
* **Plain (KV Pair)**
* **Description:** A simple key-value pair to be added to the request headers.
* **Fields:** `header_key` (string), `header_value` (string).
* **File**
* **Description:** To load multiple headers from a JSON file.
* **Fields:** `file_path` (string).
* **Basic Auth**
* **Description:** To add authentication via Username and Password.
* **Fields:** `username` (string), `password` (secret object).
* **Oauth2 Client Credentials**
* **Description:** To add authentication via OAuth2 client credentials (client ID and secret).
* **Fields:**
* `client_id`: (string)
* `client_secret`: (secret object)
* `scope`: (string)
* `rest_call_config`: (object) Defines the auth call for the access token.
* `url`: (secret object) Auth URL for authentication.
* `method`: (string) HTTP method type. Default: `POST`.
* `header_key`: (string) HTTP header to send the auth token in. Default: `Authentication`.
* `header_template`: (string) Template for the HTTP header value. Default: `Bearer %s`.
* `refresh_time_sec`: (int32) Time between auth token calls. Default: `60`.
* `token_body_key`: (string) Key to pull the token from in the response body. Default: empty (takes whole response).
* `request_body`: (string) Body of the auth request. Default: empty.
* `auth_headers`: (map\) Headers of the auth request. Default: `\{"content_type": "application/x-www-form-urlencoded"}`.
* **Oauth2 Client Credentials Basic Auth**
* **Description:** To add authentication via OAuth2 client credentials basic authentication (clientid:secret). All fields are the same as Oauth2 Client Credentials Auth.
* **Oauth2 Refresh Token**
* **Description:** To add authentication via OAuth2 Refresh Token Auth.
* **Fields:**
* `client_id` (string)
* `client_secret` (secret object)
* `scope` (string)
* `client_refresh_token` (secret object)
* `rest_call_config` (same as Oauth2 Client Credentials Auth)
### Body Decorators
For `rest_configs`, you can define body decorators to add different types of body to the request.
* **Plain (KV Pair)**
* **Description:** A simple key-value pair to be added to the request body.
* **Fields:**:
* `query_key` (string)
* `query_value` (secret object).
* **Oracle Web centre auth**
* **Description:** For Oracle WebCenter Authentication.
* **Fields**:
* `username`: (string)
* `password`: (secret object)
* `rest_call_config`: Same as `rest_call_config` in Oauth2 Refresh Token.
* `query_key`: (string) Query param key.
* `query_template`: (string) Template for the query value.