Create Infrastructure
Clophi covers every Azure resource type with a dedicated form. Draft resources offer ready-made configurations when you don't want to start from scratch. When you're ready, deploy directly from Clophi, download the generated IaC code in Terraform, Bicep, or ARM Templates, or integrate that code into your existing CI/CD workflow.
Overview
Clophi lets you build Azure infrastructure from the ground up. All the resource types are available as Clophi's resource forms. When the infrastructure is ready, you can deploy it directly through Clophi, download it as Infrastructure-as-Code, or push it to a Git repository.
Every resource form is generated from the official ARM reference schema, providing complete configuration options for each resource type. Including the properties that are not exposed in the Azure Portal.
Adding a Resource
Open the Resources section and pick the resource type you want to work on and create. Clicking a resource opens its resource form, with every ARM property for that resource type available to edit.

Configuring from scratch or from a draft
You can fill the resource form manually, working through each property. To get help on any field, click the exclamation mark next to the property input. The relevant Azure documentation and further guidance is displayed in the right tab.
Alternatively, you can as well load a draft template. Drafts are tested, ready-to-deploy resource configurations for common scenarios, and loading one gives you a working starting point instead of an empty form. When you load a draft, the right tab shows both the documentation for the draft resource and the ARM template configuration the draft is producing. The Code section in the right tab is updated as you edit the form.

Fields that still need your input are marked with **Please provide a [field] for [resource type]**. For example, **Please provide a name for Virtual Network**. Fill in every marked field before moving on. Only permitted values will be allowed as input.

Adding Child Resources
Most resources support child resources, subnets on a virtual network, containers on a storage account, and so on. Child resources use the same form structure as parent resources To attach one, open the Add Child Resources tab in the right-hand tab. Pick a child resource type from the list.
Once chosen, the binding of child resource to parent is implemented automatically. This and similar operations which have implications on the generated code (Terraform, Bicep and ARM) are taken care by Clophi in the background.

Name the parent first
You can't attach a child until the parent has a name. If you haven't already, fill in the parent's name in the resource form before opening Add Child Resources.
Child resources can also have children, it is possible to add from Add Child Resources tab. Every Azure resource type is available in Clophi, including child types that aren't exposed through the portal.
When the child resource is configured, click Add to Infrastructure. Clophi attaches it to the parent and manages the dependency relationship behind the scenes. Every child you've attached appears in the Resource Information tab, listed under the API version dropdown, where you can remove them.

Referencing other resources
For fields that require a reference to another Azure resource, Clophi inspects your live environment and offers the available options. Click Reference Resource from Azure to insert a reference to another Azure resource. Only suitable resources with corresponding resource types are presented. In addition, the listed resources are filtered based on the access rights of the user.

As the project grows, resources often need to reference each other. On the appropriate input field, click Reference Resource from Infrastructure to insert a reference to another resource in the project. Clophi resolves the reference behind the scenes and emits the appropriate expression for your chosen IaC format on export.

Managing Your Infrastructure
Every resource you complete is added to your active infrastructure project. Navigate to the Infrastructure section to see everything you've added so far. From here, click any resource to access its form and make modifications.

Implicit vs Explicit dependencies
Parent-child dependencies are resolved automatically, but you may have explicit dependencies between resources that aren't parent-child or reference-base related. For example, an App Service that depends on a Key Vault being deployed first. You can declare such explicit dependencies manually from the Infrastructure section.
Archive Infrastructure
You can archive infrastructure for testing or later reuse. When you enable the archive option during download, deployment, or CI/CD, Clophi saves the infrastructure to the archive section, where you can access it at any time.

Deploying with Clophi
When the infrastructure is ready, the simplest way to ship it is to deploy directly from Clophi.
Required permission
Grant the Clophi deployer service principal the Contributor role on every subscription or resource group you want to deploy to. Without this, the Deployment Scope inputs won't list anything.
Navigate Deployment Scope to see every subscription and resource group where the deployer principal has Contributor access. Pick your target scope and execute the deployment.

Cross Subscription/Resource-Group targeting
While not common, it might be necessary to deploy some of the resources in one Subscription/Resource-Group whereas other resources need to be deployed to some other Subscription/Resource-Group. A well known example of such necessity appears during the deployment of a new VNET peering. One peering for from Remote-to-Origin VNets and other from Origin-to-Remote VNETs where remote VNET resides in another Subscription/Resource-Group. For such exceptional cases, you can use the "Specific Deployment Scope" option.

Tracking deployments
Switch to the History tab to follow the deployment. Each entry includes:
- A deployment UUID that is also used as the deployment name in Azure. The same identifier appears under Deployments in the Azure Portal, so you can correlate Clophi's history with Azure's own deployment log.
- The deployment status, successful or failed.
- The full error message, for any failed deployment.

Auto-delete on failure
Complex deployments can partially succeed, some resources deploy cleanly while others fail. You can enable the auto-delete on deployment failure option to have Clophi clean up any resources that did deploy successfully if the overall deployment fails. Your next attempt then starts from a known-empty state instead of a half-built one.

Exporting as Infrastructure-as-Code
Deploying through Clophi is optional. If you'd rather deploy through your own CI/CD pipelines or export the project as Infrastructure-as-Code, either option is available through Clophi as well.
Download
Export your infrastructure into any of the three supported IaC formats, including Terraform, Bicep, or ARM Templates. For each format, you can choose a Parameterized output where values are extracted into parameter files, or a Non-parameterized output where values are inlined directly into the resource templates.

Push to a Git repository
To push your infrastructure code straight to Git, open the CI/CD tab and configure the destination.
Clophi commits the generated code to your repository and opens a pull request automatically.



