This is the home page for all documentation related to onboarding, designing, developing, operating, and anything else to do with owning an Azure portal extension.
Couldn't find what you needed? Ask about the docs on StackOverflow.
-
Docs in this github are moved to Engineering Hub Azure Portal Framework (IbizaFx) Documentation. If you are the owner of any docs in this github, move it to Engineering Hub. If you view a docs in this github, use the link in Engineering Hub.
-
Access to the Portal Dogfood environment will be restricted after April 15, 2023.
If your resource types have public Azure Rest API specs, we likely have generated UX for your resource types already.
You can discover default experiences for your resource type in MS Portal through global search. By default, you can expect to see a browse, overview with commands and resource menu to manage the resource instances of your resource types- without any upfront development. If your resource types have public API specs, but you do not see a default experience for these resource instances or if you have additional questions please reach out to: dxportalteam@microsoft.com
If you want to customize this experience, you must own a portal extension. However, you can save development time by making use of auto-generated artifacts. In the AzureUX-GeneratedExtension repo, you can find the generated asset and views that power the default experience for the resource type.
Learn more about Default Experiences & generated UX
Kickoff the onboarding experience by sending a mail to Azure Onboarding Team.
Learn how the framework is structured and how it is designed to run in multiple clouds / environments.
Design patterns provide solutions for common Azure scenarios. By leveraging these patterns, Azure teams will accelerate extension development and provide users with a familiar experience so that users can easily adopt new Azure services. The design guide covers design toolkits, style guidance, common page layouts and the resource management pattern.
If you are building a new extension, consider building a declarative extension. A declarative extension is easier to build and cheaper to maintain. Learn more here.
Azure portal extension development is supported on Windows Server 2012 R2, and Windows 10.
-
Updating the SDK or Ask an SDK setup question on StackOverflow
-
Add auto-generated views & asset definitions into your extension
The Azure portal extension developer CLI, namely ap
, is the foundational tool used for all inner dev/test loop actions during extension development and includes commands such as new, restore, build, serve, start, release, lint, run test, watch and update.
Samples show how to do many common development tasks.
The primary UI building block is a called a blade. A blade is like a page. It generally takes up the full screen, has a presence in the portal breadcrumb, and has an 'X' button to close it.
Ask a question about blades on StackOverflow
If you want your experience to have a presence on Azure dashboards then you will want to build parts (a.k.a. tiles).
Ask a question about parts on StackOverflow
Navigating between topics or other resources is a core element of interactivity with the portal.
Ask a question about navigation on StackOverflow
While the portal does autofocus management with default rules that should match most scenarios, sometimes it is better for extension to guide the focus to an appropriate location.
Ask a question about focus management on StackOverflow
Any template based UI in the portal (e.g. template blades or template parts can make use of a rich controls library maintained by the Ibiza team.
Ask a controls related question on StackOverflow
When using HTML and framework controls you have some control over styling. These documents walk through the relevant topics.
Many experiences require the user to enter data into a form. The Ibiza controls library provides support for forms. It also provides a TypeScript based section model that lets you build your form in code without expressing all the fields in an html template.
Ask a forms related question on StackOverflow
Ask about browse integration on StackOverflow
Ask about create scenarios on StackOverflow
Because your extension is Web code, you can make AJAX calls to various services to load data into your UI. The framework provides a data library you can use to manage this data.
Ask about data management on StackOverflow
The Ibiza team provides limited testing support. Due to resource constraints the C# and Node.js frameworks are inner source, so that partners can unblock themselves if the Ibiza team cannot make requested improvements as quickly as you might expect.
When asking for assistance with a debugging UI (not unit test) test framework specific issues on stackoverflow, please include the following (if applicable):
- Screenshot of the test as it fails taken via the portal.takeScreenshot()/webdriver.takeScreenshot() API (usually via a try/catch block)
- Call stack
- Exception message
- Code snippet where the test is failing
- Version of the test framework being used
Ask a test-related question on StackOverflow
The Ibiza team collects standard telemetry for generic actions like blade opening and command execution. We also collect performance, reliability, and user feedback information that facilitates the operation of your extension. You can also write your own events by using the telemetry system. Ibiza supports alerting for common operations scenarios.
Ask about telemetry on StackOverflow
Ask about performance and reliability on StackOverflow
It is common for teams to want to experiment with new capabilities. We offer framework features that make this possible.
The Azure portal supports multiple languages and locales. You will need to localize your content.
Ask about localization / globalization on StackOverflow
The Azure Portal strives to meet high accessibility standards to ensure the product is accessible to to users of all levels of ability. There is regular testing and a process with SLAs for getting issues addressed quickly.
Ask about accessibility on StackOverflow
Learn how to deploy your extension to the various clouds and environments.
-
Extension registration, environments, clouds and Ibiza team SLAs
-
Moving an extension from private preview to public preview to GA
Ask a deployment question on Stackoverflow
The Ibiza team provides and operates a common Extension Hosting Service that makes it easy to get your bits into a globally distributed system without having to manage your own infrastructure.
-
Registring your extension with the Extension Hosting Service
-
Deploying your extension using Express V2 and the Extension Hosting Service
-
SLA for registering an extension with the Extension Hosting Service
You should strive to use the Extension Hosting Service. If for some reason this is not possible then learn how to build a custom extension deployment infrastructure.
These features are supported, but have had no recent investment. No additional investment is planned. There are modern capabilities that should be used instead if you are developing new features.
This is our new index which contains our refreshed docs. If you do not like our new index/docs, you can find the old index here.