# 2026.16 Infrastructure Changes

## Changes on Application environment

| **Change** | **Environment Variable Name** | **Application Default Value (if env variable unset)** | **Example** | **Required** | **Applications** | **Short Description** |
|------------|-------------------------------|------------------------------------------------------|--------------|--------------|-------------------|-----------------------|
| Added      | `FEATURE_FLAG_SAVE_MODEL_USAGE_DASHBOARD_UN_18889` | `false`                                              | `true`       | false        | `next-chat`, `next-admin` | Turns on **cost dashboard view** in the **UI**. The view surfaces the model usage and costs.<br>_**Note**_: the feature is **experimental.**<br>**Docs**: [https://unique-ch.atlassian.net/wiki/x/IgBUfw](https://unique-ch.atlassian.net/wiki/x/IgBUfw) |
| Added      | `MODEL_COSTS_FILE`            | `/var/unique/model-costs/default-costs.yaml`        |              | false        | `backend-service-chat`      | Path to the YAML model cost sheet. Defaults to the default model cost configuration. Can be overridden. Replaces JSON-in-env pricing.<br>_**Note**_: the feature is **experimental.**<br>**Docs**: [https://unique-ch.atlassian.net/wiki/x/SIAjWQ](https://unique-ch.atlassian.net/wiki/x/SIAjWQ) |
| Added      | `CONFIGURATION_BACKEND_URL`   | N/A                                                  | `http://configuration-backend.chat:8095`  | `true`       | all backend services | It's needed to be able to talk to `CONFIGURATION_BACKEND` for feature flags |
| Added      | `FEATURE_FLAG_ENABLE_MCP_TOOL_REFRESH_UN_19255` | `false` | `true` | false | `web-app-admin` | Turns on or off the "Refresh Tool Settings" button in MCP hub "Tools" section |
| Removed    | `FEATURE_FLAG_AGENTIC_TABLE_RERUN_BUTTON_UN_13901` | | | | `web-app-chat` | This feature is now GA; feature flag not needed anymore |
| Removed    | `FEATURE_FLAG_AGENTIC_TABLE_ROW_RERUN_UN_14903`  | | | | `web-app-chat` | This feature is now GA; feature flag not needed anymore |
| Changed    | `FEATURE_FLAG_ENABLE_PDF_CONTENT_EXTRACTION` | `false` | | | `agentic-ingestion` | Default value changed from `true` to `false`. |
| Added      | `FEATURE_FLAG_ENABLE_IMAGE_CONTENT_EXTRACTION_UN_17223` | `false` | `true` | `false` | `agentic-ingestion` | Enable/disable the image content extraction module. When `false`, the `/image-content-extraction` endpoint is not registered. Must be `true` to enable the feature. |
| Added      | `AGENTIC_INGESTION_BASE_URL` | `""` | `"http://agentic-ingestion.python.svc.cluster.local:8081"` | `false` | `backend-service-ingestion-worker(-chat)` | Points to the `agentic-ingestion` service. Required to enable Image Content Extraction feature. |
| Added      | `API_BASE`                      | -                                                  | `http://node-chat.finance-gpt.svc.cluster.local:8092/public` | `true`  | `agentic-ingestion` | Base URL for the Unique AI API (node-chat). Used for all LLM vision completions. |
| Added      | `REDIS_HOST`                    | `""`                                             | `redis-service.chat.svc` | `true` | `agentic-ingestion` | Redis hostname for job queue and result storage (from Key Vault). |
| Added      | `REDIS_PORT`                    | `10101`                                          | `6379`               | `false` | `agentic-ingestion` | Redis port (from Key Vault). |
| Added      | `REDIS_PASSWORD`                | -                                                | `password`              | `true` | `agentic-ingestion` | Redis password (from Key Vault). |
| Added      | `REDIS_USERNAME`                | -                                                | `default`              | `true` | `agentic-ingestion` | Redis username, if ACL is enabled (from Key Vault). |
| Added      | `REDIS_USE_TLS`                 | `false`                                          | `true`               | `false` | `agentic-ingestion` | Enable TLS for Redis (auto-enabled if port is 6380). |
| Added      | `REDIS_CLUSTER_MODE`            | `false`                                          | `false`              | `false` | `agentic-ingestion` | Enable Redis cluster mode instead of standalone. |
| Added      | `REDIS_CLUSTER_NODES`           | `""`                                            | `[{"host":"redis-0","port":6379}]` | `true` if Redis cluster mode | `agentic-ingestion` | JSON array of cluster nodes (required if cluster mode is on). |
| Added      | `REDIS_CLUSTER_PASSWORD`         | -                                                | `password`              | `true` if Redis cluster mode | `agentic-ingestion` | Redis cluster password (from Key Vault). |
| Added      | `REDIS_CLUSTER_ENABLE_TLS`       | `false`                                          | `false`              | `false` | `agentic-ingestion` | Enable TLS for Redis cluster connections. |
| Added      | `REDIS_TLS_REJECT_UNAUTHORIZED`  | `true`                                           | `true`               | `false` | `agentic-ingestion` | Reject unauthorized TLS certificates for Redis. |
| Added      | `IMAGE_CONTENT_EXTRACTION_MAX_WORKERS` | `4`                          | `4`                  | `false` | `agentic-ingestion` | Max concurrent async task workers for image extraction jobs. |
| Added      | `IMAGE_CONTENT_EXTRACTION_CHAT_COMPLETION_TIMEOUT` | `240000` | `240000` | `false` | `agentic-ingestion` | Timeout in ms for each LLM vision completion call. |
| Added      | `IMAGE_CONTENT_EXTRACTION_REDIS_JOB_TTL_SECONDS` | `3600` | `3600` | `false` | `agentic-ingestion` | TTL in seconds for job results stored in Redis. |
| Added      | `IMAGE_CONTENT_EXTRACTION_TIMEOUT` | `2.0` | `2.0` | `false` | `agentic-ingestion` | Timeout in seconds when polling for a task result internally. |
| Added      | `LOG_LEVEL`                     | `INFO`                                           | `INFO`              | `false` | `agentic-ingestion` | Application log level. |
| Added      | `MAX_CONTENT_LENGTH`            | `67108864`                                      | `67108864`          | `false` | `agentic-ingestion` | Max request body size in bytes (64 MB). |
| Added      | `CUSTOM_CA_CERT_PATH`           | | `/etc/ssl/certs/ca.pem` | `false` | `agentic-ingestion` | Path to custom CA certificate for outbound TLS and Redis CA. |
| Added      | `AGENTIC_INGESTION_IMAGE_POLLING_DURATION_MS` | `3000` | `3000` | `false` | `backend-service-ingestion-worker(-chat)` | Polling interval in ms for async job status checks. |
| Added      | `AGENTIC_INGESTION_IMAGE_TIMEOUT_MS` | `300000` | `300000` | `false` | `backend-service-ingestion-worker(-chat)` | Max wait time in ms for a single figure extraction job. |
| Added      | `AGENTIC_INGESTION_IMAGE_MAX_RETRIES` | `3` | `3` | `false` | `backend-service-ingestion-worker(-chat)` | Retries per HTTP request to agentic-ingestion. |
| Added      | `FEATURE_FLAG_ENABLE_IMAGE_CONTENT_EXTRACTION_UN_17223` | `false` | `true` | `false` | `web-app-knowledge-upload` | Feature flag to show Image Content Extraction configuration section in the folder ingestion settings UI. |
| Added      | `IMAGE_CONTENT_EXTRACTION_LANGUAGE_MODELS` | `""` | `AZURE_GPT_4o_2024_0513:GPT-4o (2024-05-13)` | `false` | `web-app-knowledge-upload` | Comma-separated `MODEL_KEY:Label` pairs for the image content extraction language model UI dropdown. Must be set to enable the feature. |

**New required environment variable:**

As part of this release, `CONFIGURATION_BACKEND_URL` is now a required environment variable for all backend services. This connects each service to the centralized feature flag backend (`backend-service-configuration`) for flag evaluation.

Without this variable set, services will fall back to env-only flag resolution, which does not support per-company targeting or rule-based evaluation. This can lead to inconsistent flag behavior and confusion around where flags should be configured.

Please ensure `CONFIGURATION_BACKEND_URL` is added to the environment variables of all backend services prior to rollout. The value should point to the `backend-service-configuration`

**New Image Content Extraction feature:**

Please refer to this documentation for detailed instruction about how to deploy the new agentic-ingestion service and enable the feature: Agentic Image Content Extraction (experimental)
