> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.itential.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.itential.com/_mcp/server.

# Organize your asset repository

> Structure your git repository to make Itential Platform assets easy to find and compatible with CI/CD automation.

A consistent repository structure makes assets easier to find, simplifies CI/CD configuration, and reduces errors when onboarding new team members.

## Understand the repository structure

Organize assets into *bundles*, which are logical groupings of related assets. Each bundle contains subfolders for the Itential Platform applications it uses.

```
<repo-name>/
├── <bundle-name>/
│   ├── studio/
│   ├── operations_manager/
│   ├── configuration_manager/
│   └── lifecycle_manager/
└── shared/
    └── studio/
```

Use `shared/` for assets that multiple bundles depend on, such as notification workflows or common utilities.

The application subfolders correspond to Itential Platform applications:

* `studio/`: Studio Projects (workflows, forms, transformations, JST templates)
* `operations_manager/`: Operations Manager automations
* `configuration_manager/`: Golden configuration trees and compliance plans
* `lifecycle_manager/`: Lifecycle Manager resource models

## Choose an organization strategy

### Organize by use case

Group assets by the business outcome or automation process they support. Use this approach when your team is organized around specific processes or end-to-end workflows.

```
itential-assets-repo/
├── network-device-lifecycle-management/
│   ├── studio/
│   │   ├── network-device-provisioning.project.json
│   │   └── network-device-decommissioning.project.json
│   ├── operations_manager/
│   │   ├── auto-provision.json
│   │   └── auto-decommission.json
│   └── lifecycle_manager/
│       └── network-devices-management.json
├── software-upgrade/
│   ├── studio/
│   │   ├── nxos-upgrade.project.json
│   │   └── ios-upgrade.project.json
│   └── operations_manager/
│       └── trigger-upgrade.json
└── shared/
    └── studio/
        ├── send-notifications.project.json
        └── servicenow.project.json
```

### Organize by vendor or technology

Group assets by the technology platforms or vendors they interact with. Use this approach when your team owns specific integrations, or when you work in a multi-vendor environment.

```
itential-assets-repo/
├── cisco-nxos/
│   ├── studio/
│   │   ├── nxos-config-backup.project.json
│   │   └── nxos-compliance-check.project.json
│   └── configuration_manager/
│       └── nxos-golden-configs.gctree.json
├── servicenow/
│   ├── studio/
│   │   └── servicenow-crud.project.json
│   └── operations_manager/
│       ├── manage-incidents.automation.json
│       └── manage-change-requests.automation.json
└── palo-alto/
    └── studio/
        ├── panorama-policy-update.project.json
        └── firewall-config.project.json
```

## Follow repository best practices

* **Start simple.** Begin with a basic structure and add bundles as your use cases grow.
* **Keep bundles focused.** Each bundle should represent one logical grouping of related assets.
* **Don't organize by environment.** The CI/CD pipeline handles environment targeting. Your repository layout should reflect what assets do, not where they run.
* **Document your structure.** Add a `README.md` at the root that explains your bundle strategy and any naming conventions your team follows.
* **Use a shared bundle.** Create `shared/` for reusable utilities referenced by multiple bundles.

## Complete repository example

```
itential-platform-assets/
├── README.md
├── .gitignore
│
├── device-onboarding/
│   ├── studio/
│   │   └── onboard-device.project.json
│   └── operations_manager/
│       └── onboarding-automation.json
│
├── software-upgrades/
│   ├── studio/
│   │   ├── nxos-upgrade.project.json
│   │   └── ios-xe-upgrade.project.json
│   └── operations_manager/
│       └── software-upgrade-trigger.automation.json
│
├── configuration-compliance/
│   ├── studio/
│   │   └── configuration-compliance.project.json
│   └── configuration_manager/
│       └── iosxe-devices.gctree.json
│
└── shared/
    └── studio/
        ├── send-notifications.project.json
        ├── parse-commands.project.json
        └── servicenow.project.json
```