> For the complete documentation index, see [llms.txt](https://docs.infraon.io/infraon-help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.infraon.io/infraon-help/infinity-user-guide/infraon-configuration/it-operations/network-configuration/runtime-parameter.md).

# Runtime Parameter

It allows dynamic configuration customization across devices by injecting parameterized values into reusable configuration templates. These parameters act as **runtime placeholders**, such as **hostname, loopback IP, MAC address,** etc., which get automatically replaced during job execution based on contextual data, without hardcoding device-specific values.

The Runtime Parameter framework offers key benefits such as:

* Template reusability across multiple devices<br>
* Dynamic substitution of device-specific values at execution time<br>
* Flexible input methods through UI, CSV upload, or API integration<br>
* Reduced manual errors by ensuring consistent parameter mapping<br>
* Replacement of legacy script-driven setups with a structured, auditable approach<br>

## **How Does It Work?**

Runtime Parameters work as **bridge variables** between static templates and real-time configuration needs. Here's a step-by-step explanation:

**1.** **Template Definition**

A configuration template is created using special variables wrapped in **runtime.** format. For example:

**hostname {{Runtime.hostname}}**\
**ip address {{Runtime.loopback\_ip}} 255.255.255.0**

**2.** **Mapping Runtime Parameters**

These variables must be mapped to actual values for each device. The Runtime Parameter module does this, and it stores the values either per device or per profile.

**3.** **Parameter Input Methods**

* **Manual Entry**: Technicians can input values via the UI during job setup.
* **CSV Upload**: Bulk upload of values for multiple devices using a predefined CSV format.
* **API Integration**: Values fetched automatically from third-party systems like IPAM, CMDB, etc.

**4.** **Job Execution**

During the job run (Upload Job or ZTP), the NCCM engine parses the template and locates the runtime variables, substituting them with the mapped values.

**5.** **Fallback or Validation**

If a runtime variable is missing:

* The system can pause for input (if enabled)
* Skip that section
* Or fail the job (depending on configuration)

## **What Do You See on the Screen**

It provides a tabular view of all parameter mappings associated with configuration templates and profiles.

Each row represents a runtime parameter mapped to a specific IP address and configuration profile. Users can **add parameters manually, import in bulk using CSV**, or **edit/delete existing mappings**.

Runtime Parameters **| Basic Details**

| **Label**                     | **Action**                                         | **Description / Example**                                                                                                                                            |
| ----------------------------- | -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Search**                    | Search for the parameter.                          | Search by IP address, profile, or template name to quickly locate specific parameters.                                                                               |
| **Filter**                    | Click icon                                         | Apply filters based on configuration profile, visibility, or status to narrow down results.                                                                          |
| **Import from CSV**           | Click to proceed to add parameters from a CSV file | Select the target configuration profile and upload a CSV containing parameter mappings. (Detailed steps will be covered under the **Add Runtime Parameter** section) |
| **Add**                       | Click to add a parameter manually.                 | Opens the form to input a new runtime parameter. (Steps covered in the **Add Runtime Parameter** section)                                                            |
| **IP Address**                | View-only field, no actions can be taken.          | Displays the IP address of the device associated with the runtime parameter.                                                                                         |
| **Configuration Profile**     | View-only field, no actions can be taken.          | Displays the configuration profile that the parameter belongs to.                                                                                                    |
| **Configuration Template(s)** | View-only field, no actions can be taken.          | Shows the template(s) that use the runtime parameter. Example: Cisco ALL Type Changing the Hostname                                                                  |
| **Visibility**                | View-only field, no actions can be taken.          | Indicates whether the parameter is Public or Restricted. Example: Public                                                                                             |
| **Reason For Disable**        | View-only field, no actions can be taken.          | Displays the reason if the parameter is disabled. Example: - (empty if active)                                                                                       |
| **Enable Status**             | Toggle indicator                                   | Shows whether the parameter is currently enabled. Toggle is not editable here.                                                                                       |
| **Status**                    | View-only field, no actions can be taken.          | Reflects the execution status of the parameter. Example: Completed, Yet To Do                                                                                        |
| **Edit**                      | Click the pencil icon                              | Opens the parameter in edit mode to modify mapped values.                                                                                                            |
| **Delete**                    | Click the trash icon.                              | Deletes the runtime parameter mapping from the system. Confirmation may be prompted.                                                                                 |

{% hint style="info" %}
Users can select multiple parameters simultaneously and delete them in bulk using the multi-select option.
{% endhint %}

## **Add Runtime Parameter**

To add a new runtime parameter:

* Go to **Network Configuration→ Runtime Parameter**

Parameters can be added in two different ways.

### **Manually**

* Click the **"Add"** button at the page's top right corner.
* Refer to the table below to enter the details in the pop-up form.

Add Runtime Parameter **| Basic Details**

| Label                          | Action                                                          | Description / Example                                                                                                                                                                                                                |
| ------------------------------ | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Select Configuration Profile\* | Select a configuration profile from the dropdown.               | Used to associate the runtime parameter with the appropriate device group and template. This list is fetched from the Configuration Profiles module.                                                                                 |
| Visibility                     | Choose between “Public” or “Private”                            | This defines the access level for the parameter. Public makes it visible system-wide, while Private restricts it to the user session or scope.                                                                                       |
| IP Address\*                   | Enter the device’s IP address.                                  | <p>Required to uniquely identify the device for which the runtime parameter is being created.</p><p><strong>Example:</strong> 10.0.4.5</p>                                                                                           |
| MAC Address                    | Enter the device’s MAC address.                                 | <p>Helps identify the device if the IP alone is insufficient or during DHCP-based provisioning.</p><p><strong>Example:</strong> 00:1A:2B:3C:4D:5E</p>                                                                                |
| Hostname                       | Enter the hostname of the device                                | Used to set or replace the hostname during configuration template execution dynamically. Example: branch-switch-01                                                                                                                   |
| Serial Number                  | Enter the device’s serial number if known                       | <p>Useful for device inventory validation, licensing, and associating runtime parameters uniquely across similar models.</p><p><strong>Example:</strong> FTX1234ABCD</p>                                                             |
| Template Field – Hostname\*    | Enter the value for the hostname parameter used in the template | <p>This is the actual runtime field being mapped in the selected template. It ensures that the correct hostname is applied during automated configuration.</p><p>It cannot be left empty; use null if it is intentionally blank.</p> |

**Note:** Fields marked with an asterisk (\*) are mandatory and must be filled out.

### **Bulk Upload**

To add runtime parameters in bulk, follow these steps:

* Go to the **Runtime Parameters** module and click the **“Import from CSV”** option in the top panel.
* Choose the relevant **configuration profile** where the parameters should be applied.
* Download the **sample CSV template** and fill in the required fields (such as IP address, hostname, etc.) in the Excel sheet.
* Upload the completed CSV file.
* Click **Next → Import → Proceed with Valid Records** to finalize the upload.
