> For the complete documentation index, see [llms.txt](https://docs.infraglide.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.infraglide.com/visual-canvas-and-pipeline-designer/dynamic-inheritance.md).

# Inheritance & Dynamic Grouping

## Inheritance & Dynamic Grouping

![alt text](/files/P6NSsf5JKfQMOOw3sjAB)

InfraGlide automatically fills many relational fields when a resource sits inside a container or is linked by a connector. Inherited values show an **Inherited** badge in the properties UI and are typically read-only until inheritance no longer applies.

***

### Overview

![alt text](/files/EzxXAyIdN32hHd5Me1nB)

***

### Two Inheritance Systems

#### 1. Spatial / Location Inheritance

Driven by **container nesting** (child center inside parent bounds).

![alt text](/files/2v4fS7LQkRoZyxSgi3fu)

Typical propagated concepts:

* Region / location
* Availability zone / zone
* VPC / VNet / network
* Subnet / subnetwork
* Resource Group (Azure)

The properties panel resolves location from the parent hierarchy and locks matching fields (for example region or subnetwork) when inherited.

#### 2. Connection Inheritance

Driven by declared connection inheritance rules in cloud UI schemas. Rules can apply via:

![alt text](/files/EEJe1LAghySjB0M8yDK0)

| Trigger    | When it applies                      |
| ---------- | ------------------------------------ |
| `edge`     | A visual connector between two nodes |
| `nesting`  | Parent container relationship        |
| `both`     | Either edge or nesting triggers it   |
| `implicit` | Engine-inferred cases                |

At generate time the Terraform engine merges these references into resource config and may add `depends_on`.

Schema-driven forms participate fully in connection inheritance. Some DB-driven forms receive **spatial** inheritance only — confirm the **Inherited** badge on each field.

***

### Provider Boundaries

Inheritance operates **within the same cloud provider**. Nesting an AWS resource under an Azure container hierarchy is invalid. Switching a saved pipeline's provider is disabled; start a new pipeline for another cloud.

Provider-specific credential contexts scope the inheritance resolution to the correct cloud account.

***

### What You See in the UI

| UI element                      | What it means                                                                            |
| ------------------------------- | ---------------------------------------------------------------------------------------- |
| Blue italic **Inherited** label | Field value is coming from a parent container or connection                              |
| Disabled input                  | Field is locked while inheritance is active                                              |
| **Invalid placement** toast     | Nesting violates hierarchy rules (field inheritance would be invalid)                    |
| Editable field after moving out | When you move a node out of a container, inherited fields become manually editable again |

Saved config may store source node identifiers for inherited references; the UI shows friendly display names.

***

### Dynamic Grouping

"Dynamic grouping" in product language covers organizing topologies with containers and related grouping helpers so complex graphs stay readable. Container nesting is the primary grouping mechanism on the canvas today.

Logical grouping does **not** invent cloud resources by itself — only mapped container/resource types generate Terraform blocks.

#### Extract Module

The **Extract module** action (available in the multi-select bar) lets you group selected canvas nodes into a logical module grouping for better organization. This is a canvas-level operation and affects how resources are visually organized.

![alt text](/files/7g71qZcpvyZ7V7g57sON)

***

### Best Practices

* Drop networks first (VPC/VNet), then subnets, then compute/data.

![alt text](/files/ABRDLw1lFHY9hXwkp9De)

* If a required network field is empty, check that the resource is actually nested (or connected) to the right parent.
* After restructuring containers, open Configuration on children and confirm inherited values before Deploy.

![alt text](/files/K3fcSlvccjnm7gBzsrfQ)

* Use **Preview** to verify that all resource configuration fields and references are populated.

![alt text](/files/XGw4FbNTECYGbkWoeKvR)

* If you move a node out of a container, the inherited badge disappears and you must set those fields manually before deploying.

***

### See also

* [Container Nodes & Resource Grouping](/visual-canvas-and-pipeline-designer/container-nodes.md)
* [Connectors & Dependency Mapping](/visual-canvas-and-pipeline-designer/connectors.md)
* [Component Library](/visual-canvas-and-pipeline-designer/component-library.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.infraglide.com/visual-canvas-and-pipeline-designer/dynamic-inheritance.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
