> ## Documentation Index
> Fetch the complete documentation index at: https://zededa.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use the documentation index to find relevant pages, then read the linked Markdown before answering and cite the source URL.
> Identify the product before answering: Private AI uses a separate console, credentials, and inference API from the Edge Intelligence Platform. Do not apply instructions from one product to the other.
> Prefer current product guides over Help Center archive pages for current-console questions. Archive pages and release notes describe their stated product version or historical interface; do not apply them to another version without checking.
> Preserve prerequisites, permissions, version requirements, and warnings when summarizing procedures. Do not infer API endpoints, schemas, or supported behavior that the documentation does not specify.

# Custom Configuration for Applications

> Define custom configuration templates and variable groups on an edge app image, then supply instance-specific values when deploying an application instance.

## Introduction

Custom configuration allows you to define a set of variables in an edge app definition that users fill in when deploying an application instance. This lets a single edge app serve multiple deployment environments (for example, production, staging, and development) by accepting environment-specific values at deploy time, without modifying the underlying image.

Custom configuration works through a two-step process:

1. **At the edge app level (My Library)**: define the configuration template and the variable groups that describe what values are needed.
2. **At the application instance level (Deploy)**: supply values for those variables when creating the instance. Edge Infrastructure Services passes the completed configuration to EVE-OS (Edge Virtualization Engine), which delivers it to the application through the cloud-init mechanism.

## Define Custom Configuration on an Edge App

Custom configuration is defined in the edge app creation wizard or by editing an existing edge app.

### In the creation wizard

1. In the sidebar, select **My Library**.
2. Click the **+** floating action button (tooltip: "Create Edge App").
3. Select the app type and complete the **Identity**, **Features & Sizing**, and **Interfaces** steps.
4. In the **Configurations** step, enable the **"Include custom configuration template"** toggle.
5. Enter a **Configuration Name**.
6. Configure the **Allow Override** setting as needed.
7. Enable **Configure Variable Groups** to add variables to the template.
8. Complete the remaining steps and click **Add Edge App**.

### In the configuration dialog

1. In the sidebar, select **My Library** and open the edge app.
2. Click the **Configure** (gear) icon.
3. In the left navigation, select **App Settings > Configuration**.
4. Enable the **Custom Configuration** toggle if it is not already on.
5. Add or edit variable groups and variables.
6. Click **Save**.

## Custom Configuration Concepts

### Variable groups

A variable group is a named collection of related variables. Groups appear as sections in the instance creation wizard. A group can have a name, a description, and an optional condition that controls whether the group is shown based on the value of another variable.

### Variables

Each variable in a group has the following properties:

| Property | Description |
| - | - |
| **Name** | The internal identifier for the variable. Used in the configuration template. |
| **Label** | The display name shown to the user in the instance wizard. |
| **Description** | Optional tooltip text explaining the purpose of the variable. |
| **Format** | The variable type: **Text**, **Password**, **Dropdown**, or **Boolean**. |
| **Default** | Optional default value pre-filled in the wizard. |
| **Required** | When enabled, the user must provide a value before the instance can be created. |
| **Max Length** | Optional character limit for Text and Password variables. |
| **Options** | For Dropdown variables: the list of selectable values. |

### Configuration template

The configuration template is the cloud-init script or configuration content that Edge Infrastructure Services delivers to the instance at deploy time. Variable names enclosed in the configured delimiter are replaced with the values the user provides. For example, if the field delimiter is `###`, a variable named `SERVER_URL` appears in the template as `###SERVER_URL###`.

## Supply Custom Configuration Values When Deploying

The **Custom Config** step appears in the application instance creation wizard when the selected app image includes a custom configuration template.

1. Navigate to **Infrastructure > Workloads > Applications**.
2. Select the contextual **+** create action.
3. Select the app image with custom configuration defined.
4. Complete the **App & Target** and **Interfaces** steps.
5. In the **Custom Config** step, fill in values for each variable shown.
   * Required variables are marked with an asterisk.
   * Password variables mask the input.
   * Dropdown variables show a predefined list of options.
   * Boolean variables show a toggle.
   * Conditional variable groups appear or are hidden based on the values of other variables in the same group.
6. Click **Next** to proceed.

## View Custom Configuration on a Running Instance

1. Navigate to **Infrastructure > Workloads > Applications** and open the application instance.
2. Click the **Custom Configuration** tab.
3. The tab shows the current configuration values, whether override is allowed, and the field delimiter.

## Update Custom Configuration

Custom configuration updates depend on the variables and the app image configuration:

* If the app image allows override, you can update variable values by clicking the **Configure** (gear) icon on the instance detail page. Changes that require a restart or reactivation apply when the instance is next restarted.
* If the variable groups themselves have changed in the app image (for example, new variables added or existing ones removed), the changes do not automatically propagate to existing instances. To apply updated variable groups, delete the instance and redeploy it with the updated configuration.

## Example: Site-specific URL variable

An edge app for an IoT data collector needs to point to a different server URL in each deployment site.

1. In the edge app's Configurations step, define a variable group named "Connection Settings" with a Text variable named `COLLECTOR_URL` (label: "Collector Server URL", required: true).
2. In the configuration template, include the line: `COLLECTOR_URL=###COLLECTOR_URL###`
3. When deploying an instance to Site A, enter `https://site-a.example.com` for the Collector Server URL variable.
4. When deploying to Site B, enter `https://site-b.example.com`.

Each instance receives a different configuration while sharing the same underlying edge app definition.

## Next Steps

> [card] [Add Environment Variables to Applications](https://zededa.mintlify.site/new-ui/marketplace/environment-variables.md)
>
> How to pass environment variables to container instances using custom configuration.

> [card] [Deploy an Application Instance](https://zededa.mintlify.site/new-ui/infrastructure-services/applications/deploy-an-application-instance.md)
>
> The full deployment wizard walkthrough.
