CreateUIDefinition.json Builder using Azure Resource UI Elements
Creating Azure Marketplace Applications often involves dealing with the complex and verbose CreateUIDefinition.json schema. This repository is designed to make that process significantly easier and more efficient. By providing a modern, intuitive UI builder, developers and solution architects can visually construct Azure UI definitions without needing to hand-code JSON. Whether you're configuring a single resource selector or a full multi-step form, this tool empowers you to rapidly prototype and produce valid, production-ready definitions with minimal effort and high confidence.
You can already use the application through this live website. Please be aware, this project is under construction and thus bugs and changes are due to be made frequently.
This project provides a builder for CreateUIDefinition.json files leveraging Azure Resource UI Elements. It streamlines the creation of UI definitions for Azure resources by generating JSON definitions that can be directly consumed by Azure tooling.
| Feature | Status |
|---|---|
| UI Elements mapped to Azure schema | ⏳ In Progress |
| UI property panel with configurable fields | ⏳ In Progress |
| Layout and grouping support | ✔️ |
| Validation rules configuration | ✔️ |
| Azure UI Functions integration | ❌ |
| Output generation (e.g., ARM template inclusion) | ❌ |
Note: Azure UI Functions and output generation are planned for upcoming releases.
| Element Name | Implemented [10/26] | Documentation |
|---|---|---|
| Microsoft.Common.CheckBox | ✔️ | Docs |
| Microsoft.Common.DropDown | ✔️ | Docs |
| Microsoft.Common.EditableGrid | ❌ | Docs |
| Microsoft.Common.FileUpload | ✔️ | Docs |
| Microsoft.Common.InfoBox | ✔️ | Docs |
| Microsoft.Common.OptionsGroup | ✔️ | Docs |
| Microsoft.Common.PasswordBox | ✔️ | Docs |
| Microsoft.Common.Section | ✔️ | Docs |
| Microsoft.Common.ServicePrincipalSelector | ❌ | Docs |
| Microsoft.Common.Slider | ✔️ | Docs |
| Microsoft.Common.TagsByResource | ❌ | Docs |
| Microsoft.Common.TextBlock | ✔️ | Docs |
| Microsoft.Common.TextBox | ✔️ | Docs |
| Microsoft.Compute.CredentialsCombo | ❌ | Docs |
| Microsoft.Compute.SizeSelector | ❌ | Docs |
| Microsoft.Compute.UserNameTextBox | ❌ | Docs |
| Microsoft.KeyVault.KeyVaultCertificateSelector | ❌ | Docs |
| Microsoft.ManagedIdentity.IdentitySelector | ❌ | Docs |
| Microsoft.Network.PublicIpAddressCombo | ❌ | Docs |
| Microsoft.Network.VirtualNetworkCombo | ❌ | Docs |
| Microsoft.Solutions.ArmApiControl | ❌ | Docs |
| Microsoft.Solutions.ResourceSelector | ❌ | Docs |
| Microsoft.Storage.MultiStorageAccountCombo | ❌ | Docs |
| Microsoft.Storage.StorageAccountSelector | ❌ | Docs |
| Microsoft.Storage.StorageBlobSelector | ❌ | Docs |
Note: Some elements are not implemented yet and will be included in future versions.
This is a Blazor WebAssembly application using .NET 9.0 and Fluent UI for Blazor. No Node.js or npm is required.
-
Clone the repository:
git clone https://github.com/emileSWAAA/AzureApplicationAccelerator.git
-
Navigate into the project directory:
cd src -
Run the application:
dotnet run --project AzureApplicationAccelerator
Open the application in your browser. Use the intuitive interface to add UI elements and configure their properties. The app will generate a valid CreateUIDefinition.json which you can download or copy into your Azure Marketplace offer.
Here's what we have planned for upcoming releases to enhance functionality, usability, and AI support:
- Complete UI Element Coverage: Implement support for all available Azure UI elements to cover the full schema.
- Output Variables Support: Enable generation of custom output variables that integrate with ARM templates.
- Azure UI Functions: Allow users to define and attach UI functions for advanced logic and validation.
- Import Feature: Add the ability to import existing
CreateUIDefinition.jsonfiles for editing and extension. - Agentic AI Features: Integrate AI assistants to guide users, suggest optimizations, and even generate initial configurations based on high-level goals.
Have a feature request? Feel free to open an issue or contribute directly!
Contributions are welcome! Please open issues or pull requests for bug fixes and new features.
This project is licensed under the MIT License. See the LICENSE file for details.