Organize your asset repository

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