- Additional Q&A about breaking changes can be found here
- To ask a question about breaking changes use this
7928571 | Add edit title experience **Expected Errors:** - Since the new API (UpdatableHeader) was added to the part's container/context the build errors and runtime issues would be expected for partners who have unit tests that are manually created part's container/context for that tests. **Solution:** - If you have unit tests that are manually created part's container/context and receive any build/runtime errors about the updatableHeader is not defined you will need to update the places in your tests where part's container/context is created to add this lines
**Reason For Breaking Change** - By numerous requests for partners and customers we introduce ability for users to change the part titles on dashboard. For parts that used standard parts title/subtitle this support would be added automatically; For parts that rendered their own title/subtitle - these parts would need to enableForExtensionRenderedHeader method to enable this functionality; |
9702120 | Adopt the SAL library for token validation ** Expected Errors: ** - You may see `System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.` errors for the following libraries: <PackageReference Update="Microsoft.IdentityModel.S2S" Version="[3.14.0]" /> <PackageReference Update="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="[6.11.0]" /> <PackageReference Update="Microsoft.Identity.Client" Version="[4.15.0]" /> <PackageReference Update="Microsoft.IdentityModel.Tokens" Version="[6.11.0]" /> <PackageReference Update="System.IdentityModel.Tokens.Jwt" Version="[6.11.0]" /> <PackageReference Update="Microsoft.IdentityModel.JsonWebTokens" Version="[6.11.0]" /> <PackageReference Update="Microsoft.IdentityModel.Logging" Version="[6.11.0]" />- In your extension's web.config file, add the following entry. This contains the application ID of the portal's AAD application and will never change. This should only be required <add key="Microsoft.Portal.Security.AzureActiveDirectory.AadAuthenticationConfiguration.ClientId" value="c44b4083-3bb0-49c1-b47d-974e53cbdf3c" /> - You may see an error similar to the following `Unable to find version '3.14.0' of package 'Microsoft.IdentityModel.S2S.Tokens'.` during the nuget package installation process. Please use the Portal SDK version the contains the following fix for the package inclusion: "Bug 10955536: Include the Microsoft.IdentityModel.S2S as one of the external packages shipped with the Microsoft.Portal.Security.AadCore nuget package." Otherwise, you'll need to include the Microsoft.IdentityModel.S2S package v3.14.0 in your extension's ADO feed: https://identitydivision.visualstudio.com/DevEx/_packaging?_a=package&feed=IDDP%40Release&package=Microsoft.IdentityModel.S2S&protocolType=NuGet&version=3.14.0&view=overview ** Solution: ** - Add or update the existing package references for the libraries listed above in your extension's packages.config file (or equivalent). - Add these package references to your CSPROJ file as well ** Reason for breaking change: ** The Microsoft.Portal.AadCore assembly has a new dependency on the ServiceAuthLibrary (SAL). For more information about the SAL library, please see the following page: https://identitydivision.visualstudio.com/DevEx/_wiki/wikis/DevEx.wiki/56/ServiceAuthLibrary-SAL- |
9896588 | Require extension name in C# test framework and pass that in the Url The C# test framework now requires a partner team email to be provided starting with version 1.0.232.0. ** Expected Errors: ** If a partner team email is not provided, the C# test framework will throw an exception at runtime with a message similar to the following: "A partner team email must be provided via environment variable or in your app.config file via the value 'PartnerTeamEmail'." ** Solution: ** The partner team email can be provided in 1 of 2 ways:
If both are provided, the environment variable will take precedence. ** Reason for Breaking Change** The email is required so that we can correlate the incoming test traffic telemetry with the their team owners. |
9856363 | OBSOLETE: FxImpl.Azure.BaseResourceDropDown **Expected Errors:** FxImpl.Azure.BaseResourceDropDown is obsolete. Its usage will be flagged as a compile-time typescript error at build time. FxImpl.Azure.BaseResourceDropDown FxImpl.Azure.BaseResourceDropDown.FilterComboBoxResult FxImpl.Azure.BaseResourceDropDown.Config FxImpl.Azure.BaseResourceDropDown<T> **Solution:** Use Fx/Controls/BaseResourceDropDown instead. **Reason For Breaking Change:** The newer control has better accessibility support. |
9849043 | [AzurePortal-Test] Require extension name in msportalfx-test config and pass that in the Url Expected Errors: - When running azureportal-tests (formerly msportalfx-test), the PortalConfigurationManager class will throw a runtime error `No partner team name has been provided! The name can be specified as '--partnerTeam' argument, 'partnerTeam' environment variable or 'partnerTeam' field in config.json. For details see https://aka.ms/portalfx/e2e-testing#partner-team-name` Solution: - If you receive this error, follow instructions in the error message or see an example at https://aka.ms/portalfx/e2e-testing#partner-team-name Reason For Breaking Change - Having an ability to see a footprint of which team runs an extension test. |
10044366 | Deprecate JQuery Promise and Deferred helpers JQuery Promise and Deferred helpers are being deprecated in the Portal framework. Please switch to native promises. MsPortalFx.Helpers.Deferred -- Use defer() from the "Fx" module. MsPortalFx.Helpers.resolve -- Use Promise.resove(). MsPortalFx.Helpers.reject -- Use Promise.reject(). The JQuery helpers are being deprecated and eventually removed. JQuery promises are non-standard. For consistent behavior and better performance extensions should use native promises. |
9856493 | OBSOLETE: MsPortalFx.ViewModels.Controls.Documents.DiscussionThread
**Expected Errors:* You will receive a warning at build time stating that MsPortalFx.ViewModels.Controls.Documents.DiscussionThread and its associated types are obsolete. The following types are obsolete:
**Solution** Please use Fx/Controls/CustomHTML instead. **Reason for Breaking Change** MsPortalFx.ViewModels.Controls.Documents.DiscussionThread is no longer supported. The viewModel and its associated types have been obsoleted in the May2021 breaking SDK release. Please use Fx/Controls/CustomHTML which uses AMD imports that improves Portal performance. |
9856310 | OBSOLETE: MsPortalFx.ViewModels.Controls.Lists.ListView The MsPortalFx.ViewModels.Controls.Lists.ListView is obsolete. Please use "Fx/Controls/ListView" instead. If you are using the ListView you will run into compilation errors with the following types: MsPortalFx.ViewModels.Controls.Lists.ListView.Extensions MsPortalFx.ViewModels.Controls.Lists.ListView.GroupOrder MsPortalFx.ViewModels.Controls.Lists.ListView.SelectionMode MsPortalFx.ViewModels.Controls.Lists.ListView.ItemMetadata MsPortalFx.ViewModels.Controls.Lists.ListView.ListViewItem MsPortalFx.ViewModels.Controls.Lists.ListView.Item MsPortalFx.ViewModels.Controls.Lists.ListView.SelectableEventObject MsPortalFx.ViewModels.Controls.Lists.ListView.GroupableOptions MsPortalFx.ViewModels.Controls.Lists.ListView.SelectableOptions MsPortalFx.ViewModels.Controls.Lists.ListView.FilterableOptions MsPortalFx.ViewModels.Controls.Lists.ListView.ExtensionOptions MsPortalFx.ViewModels.Controls.Lists.ListView.Group MsPortalFx.ViewModels.Controls.Lists.ListView.Contract MsPortalFx.ViewModels.Controls.Lists.ListView.ViewModel |
9995761 | PRE-REMOVE: MsPortalFx.ViewModels.Controls.Wizard - log error in constructor for 6 more months **Expected Errors:** MsPortalFx.ViewModels.Controls.Wizard is obsolete and no longer a supported navigation/layout model. Its usage will be flagged as a compile-time typescript error at build time. MsPortalFx.ViewModels.Controls.Wizard.WizardMode MsPortalFx.ViewModels.Controls.Wizard.StepType MsPortalFx.ViewModels.Controls.Wizard.WizardStepSelection MsPortalFx.ViewModels.Controls.Wizard.StepState MsPortalFx.ViewModels.Controls.Wizard.StepInput MsPortalFx.ViewModels.Controls.Wizard.StepOutput MsPortalFx.ViewModels.Controls.Wizard.WizardState MsPortalFx.ViewModels.Controls.Wizard.SelectorStep MsPortalFx.ViewModels.Controls.Wizard.Contract MsPortalFx.ViewModels.Controls.Wizard.WizardStepBase MsPortalFx.ViewModels.Controls.Wizard.WizardStep MsPortalFx.ViewModels.Controls.Wizard.ViewModel **Solution:** Redesign the blades for better full screen blade experiences. |
9995760 | PRE-REMOVE: MsPortalFx.ViewModels.Forms.StaticSection - log error in constructor for 6 more months **Expected Errors:** MsPortalFx.ViewModels.Forms.StaticSection.ViewModel is obsolete. Its usage will be flagged as a compile-time typescript error at build time. **Solution:** Please use Fx/Controls/Section instead. **Reason For Breaking Change:** This is an old pattern. In case you rely on EditScope, you can use How to migrate page to add support for EditScope to the new control. |
9995756 | PRE-REMOVE: MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2 - log error in constructor for 6 more months **Expected Errors:** MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2.ObsoleteCreatorAndSelectorValue has been removed and its usage is now runtime-breaking. MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2.Mode is obsolete. Its usage will be flagged as a compile-time typescript error at build time. **Solution:** Redesign the blades for better full screen blade experiences. |
9995755 | PRE-REMOVE: MsPortalFx.ViewModels.Obsolete.Forms.DropDown - log error in constructor for 6 more months **Expected Errors:** MsPortalFx.ViewModels.Obsolete.Forms.DropDown is obsolete and its usage gets flagged as a compile-time typescript error at build time: MsPortalFx.ViewModels.Obsolete.Forms.DropDown.ViewModel is obsolete. **Solution:** Please use Fx/Controls/DropDown instead. **Reason For Breaking Change:** The latter control has a better accessibility support in the new variant. |
9885996 | await for window resize in test fx
**Expected Errors:**
- Expected build errors for usages of PortalWebDriver.createWebDriver as now it returns a promise. This function should not be used by extensions though.
**Solution:**
- add 'await' before the function call
**Reason For Breaking Change**
- This is a bug fix. The test should not start executing before the window has been resized. |
9880506 | Convert Q to async/await in msportalfx-test notificationpane helper code
**Expected Errors:**
- If you are using the public method "waitForNewNotification" in msportalfx-test from the src\msportalfx-test\src\Notifications\NotificationsPane.ts file, but specifically using it for Q promise only functionality, or have a type return expected from this method that is Q.Promise then build errors might happen as a result of type conflict.
**Solution:**
- Simply update the type to expect a native promise instead of a Q.Promise. If you are relying on functionality only available in a Q.Promise, then simply wrap the result of this public method with a Q like so:
**Reason For Breaking Change**
- We are systematically removing our use of Q throughout the entire codebase and replacing them with native promises. This is for perf as well as other reasons. This is merely one small removal of a Q.Promise use case. |
9870059 | Update ServiceToServiceAccessTokenProvider from ADAL to MSAL |
9865491 | Replace AjaxMin with NUglify minifier (JavaScript and CSS) |
9856534 | OBSOLETE: MsPortalFx.ViewModels.Controls.SpecComparisonTable
**Expected Errors:* You will receive a warning at build time stating that MsPortalFx.ViewModels.Controls.SpecComparisonTable and its associated types are obsolete. The following types are obsolete:
**Solution** **Reason for Breaking Change** MsPortalFx.ViewModels.Controls.SpecComparisonTable is no longer supported. The viewModel and its associated types have been obsoleted in the May2021 breaking SDK release. Please use Fx/Controls/DataGrid, Fx/Controls/EditableGrid which use AMD imports that improves Portal performance. |
9856528 | DEPRECATE: MsPortalFx.ViewModels.Controls.Unsupported.AzureMediaPlayer
**Expected Errors:* You will receive a warning at build time stating that MsPortalFx.ViewModels.Controls.Unsupported.AzureMediaPlayer and its associated types are deprecated. The following types are deprecated:
**Solution** Please use Fx/Controls/Video instead. **Reason for Breaking Change** MsPortalFx.ViewModels.Controls.Unsupported.AzureMediaPlayer is no longer supported. The viewModel and its associated types have been deprecated in the May2021 breaking SDK release. Please use Fx/Controls/Video which uses AMD imports that improves Portal performance. |
9856521 | DEPRECATE: Fx/Specs/DropDown **Expected Errors:** Fx/Specs/DropDown is deprecated. Usage of Fx/Specs/DropDown view models and options will be flagged as a compile-time TSLint error at build time. Fx/Specs/DropDown.PricingBladeSelection Fx/Specs/DropDown.PricingBladeReferenceClass Fx/Specs/DropDown.PricingBladeReferenceFactory Fx/Specs/DropDown.BaseOptions Fx/Specs/DropDown.Options Fx/Specs/DropDown.OptionsWithBladeReference Fx/Specs/DropDown.SelectableSection Fx/Specs/DropDown.DropDown **Solution:** Please use Fx/Controls/DropDown instead. Pickers in general are an older pattern that has been replaced by the new create experience with tabs and drop-downs, e.g. samples at https://df.onecloud.azure-test.net/#blade/SamplesExtension/CreateLauncherBlade. **Reason For Breaking Change:** This control is part of an old pattern as described above. |
9856512 | DEPRECATE: MsPortalFx.ViewModels.Controls.Lists.TreeView MsPortalFx.ViewModels.Controls.Lists.TreeView has been deprecated. You should encounter deprecation errors when compiling if you are using this control. Instances of this control can be replaced with the "Fx/Controls/TreeView" control. The AMD control works similarly to the old control but with slightly enhanced contracts and options. The full details of the new API are in intellisense supplied by the Fx.d.ts file from your SDK. However, you can also see the API here: The following short descriptions of the changes should help converting to the new control:.
The UI rendering for the TreeView has not been modified. All existing test harnesses that manipulate the UI should continue to work without change. |
9856502 | DEPRECATE: MsPortalFx.ViewModels.ClickableLink **Expected Errors:** MsPortalFx.ViewModels.ClickableLink is deprecated. Usage of MsPortalFx.ViewModels.ClickableLink will be flagged as a compile-time TSLint error at build time. **Solution:** Please use `import { ClickableLink } from "Fx/Composition";` instead. **Reason For Breaking Change:** This control has a better accessibility support in the new variant plus consistency with the newest APIs. |
9856480 | DEPRECATE: MsPortalFx.ViewModels.Controls.Command
**Expected Errors:* You will receive a warning with the following message: "MsPortalFx.ViewModels.Controls.Command and its associated types are deprecated. Please integrate your command logic directly at its point-of-use, removing the MsPortalFx.ViewModels.Controls.Command wrapper." The following interfaces and classes are deprecated:
**Solution** Please integrate your command logic directly at its point-of-use, removing the MsPortalFx.ViewModels.Controls.Command wrapper. **Reason for Breaking Change** MsPortalFx.ViewModels.Controls.Command is no longer supported. The viewModel has been deprecated in the May2021 breaking SDK release. |
9856472 | Obsolete: MsPortalFx.ViewModels.Controls.Data.QueryBuilder
**Expected Errors:* You will receive a warning at build time stating that MsPortalFx.ViewModels.Controls.Data.QueryBuilder and its associated types are obsolete. The following types are obsolete:
You will receive a warning at build time stating that MsPortalFx.ViewModels.Controls.Notice and its associated types are deprecated. The following types are deprecated:
**Solution** Please use Fx/Controls/CustomHtml instead. **Reason for Breaking Change** MsPortalFx.ViewModels.Controls.Notice is no longer supported. The viewModel has been deprecated in the May2021 breaking SDK release. Please use Fx/Controls/CustomHtml which uses AMD imports that improves Portal performance. |
9856445 | OBSOLETE: MsPortalFx.ViewModels.Controls.Lists.Gallery The MsPortalFx.ViewModels.Controls.Lists.Gallery is obsolete. Please use "Fx/Controls/ListView" in gallery mode instead. If you are using the Gallery you will run into compilation errors on the following types: MsPortalFx.ViewModels.Controls.Lists.Gallery.Contract MsPortalFx.ViewModels.Controls.Lists.Gallery.ViewModel You may also run into compilation errors with types in the base ListView control: MsPortalFx.ViewModels.Controls.Lists.ListView.Extensions MsPortalFx.ViewModels.Controls.Lists.ListView.GroupOrder MsPortalFx.ViewModels.Controls.Lists.ListView.SelectionMode MsPortalFx.ViewModels.Controls.Lists.ListView.ItemMetadata MsPortalFx.ViewModels.Controls.Lists.ListView.ListViewItem MsPortalFx.ViewModels.Controls.Lists.ListView.Item MsPortalFx.ViewModels.Controls.Lists.ListView.SelectableEventObject MsPortalFx.ViewModels.Controls.Lists.ListView.GroupableOptions MsPortalFx.ViewModels.Controls.Lists.ListView.SelectableOptions MsPortalFx.ViewModels.Controls.Lists.ListView.FilterableOptions MsPortalFx.ViewModels.Controls.Lists.ListView.ExtensionOptions MsPortalFx.ViewModels.Controls.Lists.ListView.Group MsPortalFx.ViewModels.Controls.Lists.ListView.Contract MsPortalFx.ViewModels.Controls.Lists.ListView.ViewModel |
9856435 | OBSOLETE: MsPortalFx.ViewModels.Controls.DeleteAssetConfirmation **Expected Errors:** MsPortalFx.ViewModels.Controls.DeleteAssetConfirmation is obsolete. Its usage will be flagged as a compile-time typescript error at build time. MsPortalFx.ViewModels.Controls.DeleteAssetConfirmation.GridOptions MsPortalFx.ViewModels.Controls.DeleteAssetConfirmation.Options MsPortalFx.ViewModels.Controls.DeleteAssetConfirmation.ViewModel MsPortalFx.ViewModels.DeleteAssetConfirmation.InputData MsPortalFx.ViewModels.DeleteAssetConfirmation.PartViewModelOptions MsPortalFx.ViewModels.DeleteAssetConfirmation.BladeViewModel MsPortalFx.ViewModels.DeleteAssetConfirmation.CommandViewModel MsPortalFx.ViewModels.DeleteAssetConfirmation.PartViewModel **Solution:** Use Fx/Controls instead of MsPortalFx Controls. **Reason For Breaking Change:** Newer Fx controls have better accessibility support. DeleteAssetConfirmation was a pattern in now obsolete MsPortalFx Controls. |
9856423 | OBSOLETE: FxObsolete/Controls/BaseResourceDropDown **Expected Errors:** FxObsolete/Controls/BaseResourceDropDown is obsolete. Its usage will be flagged as a compile-time typescript error at build time. FxObsolete/Controls/BaseResourceDropDown.Contract FxObsolete/Controls/BaseResourceDropDown.Options FxObsolete/Controls/BaseResourceDropDown.ResourceGroupOptions FxObsolete/Controls/BaseResourceDropDown.LocationOptions **Solution:** Use Fx/Controls/BaseResourceDropDown instead. **Reason For Breaking Change:** The newer control has better accessibility support. |
9856389 | OBSOLETE: FxImpl.ViewModels.Controls.Lists.Base The namespace FxImpl.ViewModels.Controls.Lists.List.Base has been removed. All "FxImpl" types are internal framework implementation. This should not affect extensions unless they inadvertently use types in this namespace. FxImpl.ViewModels.Controls.Lists.List.Base.ActionHandler -- Remove usage of this type. FxImpl.ViewModels.Controls.Lists.List.Base.ActionSource -- Remove usage of this type. If you are using MsPortalFx.Azure.ResourceFilter you could also get compilation errors using the actionHandler option or property. The actionHandler option and property have been deprecated. MsPortalFx.Azure.ResourceFilter.Options.actionHandler -- Remove usage of this option. MsPortalFx.Azure.ResourceFilter.ViewModel.actionHandler -- Remove usage of this property. |
9856371 | OBSOLETE: FxImpl.Controls.Menu Menu control interfaces were removed form the "FxImpl" namespace. The "FxImpl" namespace is intended for internal framework implementation. These interfaces should not be used by extensions but they are public and sometimes they are used or exposed unknowingly. The removal of these interfaces will cause compile issues if you are inadvertently using them. These compile issues can be fixed by referencing the appropriate public interface from the SDK instead. FxImpl.Controls.Menu.MenuItemItem - Use the public MenuItem from the "Fx/Controls/Menu" module or from the MsPortalFx.Assets namespace instead. FxImpl.Controls.Menu.MenuGroup - Use the public MenuGroup from the "Fx/Controls/Menu" module or from the MsPortalFx.Assets namespace instead. FxImpl.Controls.Menu.MenuItemBase - Use the public MenuItemBase from the "Fx/Controls/Menu" module instead. FxImpl.Controls.Menu.Options - Use Options from the "Fx/Controls/Menu" module instead.FxImpl.MenuData - Interface for internal menu properties that is no longer available. FxImpl.MenuItem - Use the public MenuItem from the "Fx/Controls/Menu" module or from the public MsPortalFx.Assets namespace instead. The public interfaces will not have the internal properties for the internal interface. This change was done to separate internal implementation details from the public Menu types in the SDK. |
9856363 | OBSOLETE: FxImpl.Azure.BaseResourceDropDown **Expected Errors:** FxImpl.Azure.BaseResourceDropDown is obsolete. Its usage will be flagged as a compile-time typescript error at build time. FxImpl.Azure.BaseResourceDropDown FxImpl.Azure.BaseResourceDropDown.FilterComboBoxResult FxImpl.Azure.BaseResourceDropDown.Config FxImpl.Azure.BaseResourceDropDown<T> **Solution:** Use Fx/Controls/BaseResourceDropDown instead. **Reason For Breaking Change:** The newer control has better accessibility support. |
9856361 | OBSOLETE: MsPortalFx.ViewModels.Controls.ValueUpdateTrigger **Expected Errors:** MsPortalFx.ViewModels.Controls.ValueUpdateTrigger is obsolete. Its usage will be flagged as a compile-time typescript error at build time. **Solution:** Use Fx/Controls instead of MsPortalFx Controls. **Reason For Breaking Change:** The newer controls have better accessibility support. ValueUpdateTrigger was a pattern in now obsolete MsPortalFx Controls. |
9856353 | REMOVE: MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2 **Expected Errors:** MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2 has been removed and is now runtime-breaking and no longer a supported navigation/layout model. Please redesign the blades for better full screen blade experiences. MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2.Mode MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2.CreatorAndSelectorValue MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2.Options MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2.ViewModel **Solution:** Redesign the blades for better full screen blade experiences. |
9856310 | OBSOLETE: MsPortalFx.ViewModels.Controls.Lists.ListView The MsPortalFx.ViewModels.Controls.Lists.ListView is obsolete. Please use "Fx/Controls/ListView" instead. If you are using the ListView you will run into compilation errors with the following types: MsPortalFx.ViewModels.Controls.Lists.ListView.Extensions MsPortalFx.ViewModels.Controls.Lists.ListView.GroupOrder MsPortalFx.ViewModels.Controls.Lists.ListView.SelectionMode MsPortalFx.ViewModels.Controls.Lists.ListView.ItemMetadata MsPortalFx.ViewModels.Controls.Lists.ListView.ListViewItem MsPortalFx.ViewModels.Controls.Lists.ListView.Item MsPortalFx.ViewModels.Controls.Lists.ListView.SelectableEventObject MsPortalFx.ViewModels.Controls.Lists.ListView.GroupableOptions MsPortalFx.ViewModels.Controls.Lists.ListView.SelectableOptions MsPortalFx.ViewModels.Controls.Lists.ListView.FilterableOptions MsPortalFx.ViewModels.Controls.Lists.ListView.ExtensionOptions MsPortalFx.ViewModels.Controls.Lists.ListView.Group MsPortalFx.ViewModels.Controls.Lists.ListView.Contract MsPortalFx.ViewModels.Controls.Lists.ListView.ViewModel |
9856296 | REMOVE: MsPortalFx.ViewModels.Forms.StaticSection **Expected Errors:** MsPortalFx.ViewModels.Forms.StaticSection has been removed and its usage is now runtime-breaking. MsPortalFx.ViewModels.Forms.StaticSection.ViewModel **Solution:** Please use Fx/Controls/Section instead. **Reason For Breaking Change:** This is an old pattern. In case you rely on EditScope, you can use How to migrate page to add support for EditScope to the new control. |
9856292 | OBSOLETE: MsPortalFx.ViewModels.Controls.Visualization.SimpleChart **Expected Errors:** You will hit compile time errors when using MsPortalFx view models for the below controls, MsPortalFx.ViewModels.Controls.Visualization.SimpleChart You will hit tslint errors when using MsPortalFx view models for the below Parts, MsPortalFx.ViewModels.ChartPart MsPortalFx.ViewModels.SimpleChartPart **Solution:** For obsoleted SimpleChart, please migrate to the new AMD modules in Fx/Controls/, Fx/Controls/LineChart Fx/Controls/BarChart Fx/Controls/AreaChart Fx/Controls/ScatterChart. For deprecated chart parts, please use custom part with new AMD modules in Fx/Controls, Fx/Controls/LineChart Fx/Controls/BarChart Fx/Controls/AreaChart Fx/Controls/ScatterChart. Eg. const lineChart = LineChart.create<Date, number>(container, { series: series, xAxis: { formatOptions: Globalization.DateTimeFormat.shortDatePattern, }, yAxis: { unit: ko.observable(MsPortalFx.UnitConversion.Unit.Kilobytes), displaySIUnit: true, }, showLegend: true, metricsRules: this._createMetricRules(), events: { seriesClick: () => { // Handle seriesClick event. }, }, ariaLabel: ClientResources.simpleLineChartAriaLabel, ariaDesc: ClientResources.simpleLineChartDesc, }); Please take a look at playground sample @ https://aka.ms/portalfx/playground Please take a look at SDK sample @ https://df.onecloud.azure-test.net/?SamplesExtension=true#blade/SamplesExtension/SDKMenuBlade/controls **Reason For Breaking Change** MsPortalFx namespace is a non-AMD module. For perf reasons we have exposed new AMD modules under Fx/Controls and asking partners to migrate to new API patterns. Please refer to https://aka.ms/portalfx/breaking for more details. |
9856289 | REMOVE: MsPortalFx.ViewModels.Controls.Wizard **Expected Errors:** MsPortalFx.ViewModels.Controls.Wizard has been removed and its usage is now runtime-breaking and no longer a supported navigation/layout model. MsPortalFx.ViewModels.Controls.Wizard.WizardMode MsPortalFx.ViewModels.Controls.Wizard.StepType MsPortalFx.ViewModels.Controls.Wizard.WizardStepSelection MsPortalFx.ViewModels.Controls.Wizard.StepState MsPortalFx.ViewModels.Controls.Wizard.StepInput MsPortalFx.ViewModels.Controls.Wizard.StepOutput MsPortalFx.ViewModels.Controls.Wizard.WizardState MsPortalFx.ViewModels.Controls.Wizard.SelectorStep MsPortalFx.ViewModels.Controls.Wizard.Contract MsPortalFx.ViewModels.Controls.Wizard.WizardStepBase MsPortalFx.ViewModels.Controls.Wizard.WizardStep MsPortalFx.ViewModels.Controls.Wizard.ViewModel **Solution:** Redesign the blades for better full screen blade experiences. |
9856282 | OBSOLETE: MsPortalFx.ViewModels.Controls.Balloon **Expected Errors:** MsPortalFx.ViewModels.Controls.Balloon is obsolete. Its usage will be flagged as a compile-time typescript error at build time. MsPortalFx.ViewModels.Controls.Balloon.Contract MsPortalFx.ViewModels.Controls.Balloon.Link MsPortalFx.ViewModels.Controls.Balloon.ViewModel MsPortalFx.ViewModels.Controls.Balloon.Box **Solution:** Please use Fx/Controls/InfoBalloon instead. **Reason For Breaking Change:** This control has a better accessibility support in the new variant. |
9856278 | OBSOLETE: MsPortalFx.ViewModels.Controls.Documents.Editor
**Expected Errors:* You will receive a warning at build time stating that MsPortalFx.ViewModels.Controls.Documents.Editor and its associated types are obsolete. The following types are obsolete:
**Expected Errors:** MsPortalFx.ViewModels.Controls.DockedBalloon is obsolete. Its usage will be flagged as a compile-time typescript error at build time. MsPortalFx.ViewModels.Controls.DockedBalloon.Type MsPortalFx.ViewModels.Controls.DockedBalloon.Contract MsPortalFx.ViewModels.Controls.DockedBalloon.ViewModel Additionally, the `balloon` options in Fx/Controls/PairedTimelineBadges have been transitioned from MsPortalFx.ViewModels.Controls.DockedBalloon.ViewModel to Fx/Controls/InfoBalloon.Contract and old usages generate typescript compile-time build errors. **Solution:** Please use Fx/Controls/InfoBalloon instead. **Reason For Breaking Change:** This control has a better accessibility support in the new variant. |
9856262 | Obsolete: MsPortalFx.ViewModels.Forms.Selector **Expected Errors:** MsPortalFx.ViewModels.Forms.Selector is obsolete and no longer a supported navigation/layout model. Please redesign the blades for better full screen blade experiences. Its usage will be flagged as a compile-time typescript error at build time. MsPortalFx.ViewModels.Forms.Selector.OptionsBase MsPortalFx.ViewModels.Forms.Selector.Options MsPortalFx.ViewModels.Forms.Selector.ClicableOptions MsPortalFx.ViewModels.Forms.Selector.ViewModelBase MsPortalFx.ViewModels.Forms.Selector.ViewModel **Solution:** Redesign the blades for better full screen blade experiences. **Reason For Breaking Change** These three controls are no longer a supported navigation/layout model and has been communicated as deprecated for 2+ years. Extensions should redesign the blades for a better full-screen experience. |
9856247 | OBSOLETE: MsPortalFx.ViewModels.Forms.CustomHtml **Expected Errors:** Usage of MsPortalFx.ViewModels.Forms.CustomHtml is obsolete. Its usage will be flagged as a compile-time typescript error at build time. MsPortalFx.ViewModels.Forms.CustomHtml.Options MsPortalFx.ViewModels.Forms.CustomHtml.Viewmodel **Solution:** Use Fx/Controls/CustomHtml instead. **Reason For Breaking Change:** The newer control has better accessibility support. |
9856205 | OBSOLETE: MsPortalFx.ViewModels.Forms.Section **Expected Errors:** MsPortalFx.ViewModels.Forms.Section is obsolete. Its usage will be flagged as a compile-time typescript error at build time. MsPortalFx.ViewModels.Forms.Section.Options MsPortalFx.ViewModels.Forms.Section.SectionStyle MsPortalFx.ViewModels.Forms.Section.TabStyle MsPortalFx.ViewModels.Forms.Section.SubmitEvent MsPortalFx.ViewModels.Forms.Section.SubmitEventResult MsPortalFx.ViewModels.Forms.Section.PopulateSection MsPortalFx.ViewModels.Forms.Section.ViewModel **Solution:** Use Fx/Controls/Section instead. **Reason For Breaking Change:** The newer control has better accessibility support. |
9856192 | REMOVE: MsPortalFx.ViewModels.Obsolete.Forms.MultiSelectDropDown **Expected Errors:** MsPortalFx.ViewModels.Obsolete.Forms.MultiSelectDropDown has been removed and is now runtime-breaking after over 6 months of getting flagged as a compile-time typescript error at build time. Additionally, back-compat support for the "MultiselectDropDown" html binding used in Grid1 has been removed. MsPortalFx.ViewModels.Obsolete.Forms.MultiSelectDropDown.Options<T> MsPortalFx.ViewModels.Obsolete.Forms.MultiSelectDropDown.ViewModel **Solution:** Please use Fx/Controls/DropDown instead. **Reason For Breaking Change:** The newer control has better accessibility support. |
9856187 | REMOVE: MsPortalFx.ViewModels.Obsolete.Forms.GroupDropDown **Expected Errors:** MsPortalFx.ViewModels.Obsolete.Forms.GroupDropDown has been removed and is now runtime-breaking after over 6 months of getting flagged as a compile-time typescript error at build time: MsPortalFx.ViewModels.Obsolete.Forms.GroupDropDown.Item<T> MsPortalFx.ViewModels.Obsolete.Forms.GroupDropDown.Group<T> MsPortalFx.ViewModels.Obsolete.Forms.GroupDropDown.Options<T> MsPortalFx.ViewModels.Obsolete.Forms.GroupDropDown.ViewModel<T> **Solution:** Please use Fx/Controls/DropDown instead. **Reason For Breaking Change:** The newer control has better accessibility support. |
9856183 | REMOVE: MsPortalFx.ViewModels.Controls.SingleSetting The obsolete MsPortalFx.ViewModels.Controls.SingleSetting control has been removed from the product. This control was obsoleted in 2018 and should no longer be in use. If you are still using it your blade will fail. Blades must be modified to use custom html instead. |
9856180 | REMOVE: MsPortalFx.ViewModels.Controls.Settings The obsolete MsPortalFx.ViewModels.Controls.Settings control has been removed from the product. This control was obsoleted in 2018 and should no longer be in use. If you are still using it your blade will fail. Blades must be modified to use custom html instead. |
9856159 | REMOVE: FxImpl.ViewModels.Forms.CreatorAndComboBox **Expected Errors:** FxImpl.ViewModels.Forms.CreatorAndComboBox has been removed and is now runtime-breaking after over 6 months of getting flagged as a compile-time typescript error at build time:
**Solution:** For a DropDown or ComboBox please use Fx/Controls/DropDown or Fx/Controls/ComboBox instead. The old creators picker pattern is obsolete: please refer to the new create experiences for replacement patterns (mainly tabs and drop-downs). **Reason For Breaking Change:** The newer controls have better accessibility support. |
9725940 | Deprecate MsPortalFx.NativePromise The type MsPortalFx.NativePromise is deprecated. Please use the native Promise type directly instead of this alias. |
9390560 | Add HtmlContent to properly support html rendering Before this change, several framework APIs remained that allowed html to be provided through a string-typed 'text' property. This is a risk for html injection. The framework has been logging errors to extensions to fix these but in a few cases there was not an actionable way to do so. Breaking changes to these remaining APIs have been made to allow extensions to properly specify html and avoid html injection. The following APIs now allow HtmlContent in addition to string text. ValidationResult message StaticMessageValidation message NotRegExMatchValidation successMessage RegExMatchValidation successMessage InfoBox text |
9219252 | Deprecate Q APIs that no longer do anything or are not needed Some Q APIs that are no longer applicable to the Portal have been deprecated. Some previously deprecated types have been removed. In addition some Q API signatures have changed to enhance type safety. Also, some diagnostic APIs that used deprecated Q APIs have been deprecated. Q.IPromise - Removed. Use PromiseLike instead. Q.QPromiseLike - Removed. Use PromiseLike instead. Q.Promise fin - Deprecated. Use finally instead Q.Promise fail - Deprecated. Use catch instead. Q.longStackSupport - Deprecated. No longer does anything in the portal. Q.getUnhandledRejections - Deprecated. No longer does anything in the portal. Q.getUnhandledReasons - Deprecated. No longer does anything in the portal. Q.resetUnhandledRejections - Deprecated. No longer does anything in the portal. MsPortalFx.Base.Diagnostics.setPromiseErrorCapturePeriod - Deprecated. No longer does anything. MsPortalFx.Base.Diagnostics.clearPromiseErrorCaptureTimeout - Deprecated. No longer does anything. Q.isPromise - Enhanced type safety with type guard. Q.isPromiseAlike - Enhanced type safety with type guard. Previously, Q Promise was changed to extend the native Promise. With this change unhandled rejections are now managed in the Portal using the native browser mechanisms. The related Q APIs no longer do anything and have been deprecated. |
6382277 | [BREAKING]For RadioButtons.Options, change disabled from KnockoutObservable to KnockoutReadOnlyObservableBase **Expected Errors:** The signature of `disabled` options across APIs of multiple controls has been relaxed from type `KnockoutObservable<boolean>;` to type `KnockoutObservableBase<boolean>;` and the old type will be flagged as a compile-time error at build time. MsPortalFx.ViewModels.Controls.Loadable.Options.disabled MsPortalFx.ViewModels.Controls.Loadable.Options.loading MsPortalFx.ViewModels.Controls.Lists.Grid.FocusableRowMetadata<T>.disabled MsPortalFx.ViewModels.Controls.Lists.Grid.ReorderRowOptions<TItem>.disabled MsPortalFx.ViewModels.Controls.Lists.Grid.ItemMetadata.disabled MsPortalFx.ViewModels.ParameterCollectionV3.Pickers.PickerBase.Item.disabled **Solution:** Please use the updated type `KnockoutObservable<boolean>;` instead wherever Extension-side code explicitly specifies the old type. **Reason For Breaking Change:** Extension devs expressed desires to be able to provide computed observables too for said `disabled` options. |
10004261 | Upgrade Portal SDK to TypeScript 4.2 The tooling was updated to use TypeScript 4.2 (update from TypeScript 4.1). There were no Portal-specific changes required by this upgrade, but the tooling update itself might cause some breaks in extension code. See breaking changes and changelog in the official TypeScript site: https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes In addition, the npm dependencies for `@microsoft/eslint-plugin-azureportal` were updated to support the new syntax in TypeScript 4.2 (in particular, we updated all the packages in the `@typescript-eslint` scope). Although extensions using ReactViews are compiled using the version of the compiler in the `@microsoft/azureportal-reactview-tools` npm package (TypeScript 3.9 as of 0.13.0), the Portal SDK was compiling the react view code using its own TypeScript compiler version (and then discarding the results, as part of a side-effect of the Ibiza precompilation process). Because of this, there might be some TypeScript 4.2 related errors coming from this process in the Error output stream. If that is the case, please update to `@microsoft/azureportal-reactview-tools` version 0.15.0 or newer, which should resolve this double-compilation. Alternatively (if can't update the tools package yet), set the `listFilesOnly` flag to `true` in the tsconfig.json file that corresponds to the extension using ReactViews (in the `compilerOptions` section). A common example of this double-compilation issue might be if your build shows the following in the following in the Error output stream: ``` error TS2343: Build:This syntax requires an imported helper named '__spreadArray' which does not exist in 'tslib'. Consider upgrading your version of 'tslib'. ```There are other similarly related runtime exceptions (that relate to the missing `_spreadArray` function) if someone is using very old versions of the Portal Unit Testing frameworks (especially if using the deprecated `msportalfx-ut` npm package. Notice that this was superseded by `@microsoft/azureportal-ut` and there is no newer version of `msportalfx-ut` that resolves this issue). Updating this npm package should fix these runtime exceptions. |
10003350 | renavigateActivatedBlade is obsolete The SDK API renavigateActivedBlade is obsolete. **Expected Errors:**
error TS2349: Build:This expression is not callable. **Solution:**
Change the extension code to use openBlade instead.
**Reason For Breaking Change** This API is obsolete and is being retired. |
9867718 | Remove obsoleted nuget packages; create samples extension/internal samples extension packages **Expected errors** Two obsolete NuGet packages are being removed as part of this change. Anyone still depending on them will break their build. **Solution** If the files are found in another Azure Portal SDK NuGet package, please use that. If the files are not found elsewhere, and you have not migrated to the Hosting Service, please do that migration. If the files are not found and you have already migrated, please contact the Azure Portal team to identify the files used and why. **Reason for breaking change** These packages have been marked obsolete since 2019. We are making some build system changes internal to the Portal's build and removing these projects is part of that process. |
7928571 | Add edit title experience **Expected Errors:** - Since the new API (UpdatableHeader) was added to the part's container/context the build errors and runtime issues would be expected for partners who have unit tests that are manually created part's container/context for that tests. **Solution:** - If you have unit tests that are manually created part's container/context and receive any build/runtime errors about the updatableHeader is not defined you will need to update the places in your tests where part's container/context is created to add this lines
**Reason For Breaking Change** - By numerous requests for partners and customers we introduce ability for users to change the part titles on dashboard. For parts that used standard parts title/subtitle this support would be added automatically; For parts that rendered their own title/subtitle - these parts would need to enableForExtensionRenderedHeader method to enable this functionality; |