-
Notifications
You must be signed in to change notification settings - Fork 67
vscode azureextensionui changelog
Auto-generated by this tool. Last updated on 2021-03-24.
- Improve caching of input box values during wizard
- Don't cache the value if the user didn't change from the default
- Add support for an "id" property so that even "duplicate" steps can cache a value
-
PromptResult
type is now an object, in order to supportmatchesDefault
Updates referenced version of vscode-tas-client.
Fix parseError
if error.stack
is not of type string
Add isCustomCloud to ISubscriptionContext
Add "Team" detection to default target population in createExperimentationService
Add sendRequestWithTimeout
Fixes an issue where the query-expfeature
event was not marked as isActivationEvent == true
. #849
Use any
on IMinimumServiceClientOptions.requestPolicyFactories
to allow for the use of different versions of "@azure/ms-rest-js"
- Mitigate "ECONNRESET" errors by retrying the request
- Improve parsing of JSON requests and requests improperly assumed to be JSON
- Changed the type of
ISubscriptionContext.credentials
toAzExtServiceClientCredentials
, a looser interface to allow for the use of different versions of "@azure/ms-rest-js"
Reverts previous change which is no longer needed. See #842.
- Adds support for the new tooltips API for tree items.
Updates vscode-tas-client to fix axios dependency
Allow tree items with the same label, but different context values (i.e. a folder and file with the same name)
Improved "Report Issue" command:
- Skip the quick pick if there are no cached issues
- Include tree errors in the quick pick even though they're not displayed as a notification
- Automatically mask some user info from telemetry and "report issue"
- Mitigate "Entry not found in cache." error
-
valuesToMask
is now a required property onIActionContext
- Add
ui
toIActionContext
, an action-specific alternative toext.ui
- Several methods on
AzExtTreeDataProvider
now requirecontext
to be passed in
Add support for "Report Issue" command
- Adds support for experimentation service with
createExperimentationService
method.
- Lazy load of
@azure
dependencies to improve startup time.
-
createGenericClient
is now async instead of sync
NOTE: If consuming this version, it's probably safest to make sure all other dependencies (e.g. vscode-azureappservice
) are also using the same version.
Add ignoreFocusOut to ITreeItemPickerContext
Fix AzureWizard GoBack to remove subWizard steps contributed by skipped PromptSteps
- Removed
AzureAccountTreeItemBase.isLoggedIn
(boolean) in favor ofAzureAccountTreeItemBase.getIsLoggedIn
(Promise<boolean>)
- Update azure dependencies to use azure-sdk-for-js
IMPORTANT NOTE: This requires v0.9.0 of the Azure Account extension, which requires v1.48.0 of VS Code (Insiders-only at the time of this release). See vscode-azure-account#140 or #510 for more information.
- Set "acceptLanguage" option to VS Code language when creating Azure client
- Support appending to and clearing read only content
Better handle duplicate tree items
- Added
options
toAzExtFileSystem.showTextDocument
- Support passing
AzExtTreeItem
toopenInPortal
- encode file path in
AzExtFileSystem
- Create new
isLoggedIn
property inAzureAccountTreeItemBase
-
AzExtTreeFileSystem
: a virtual file system for viewing/editing single files
- Deprecated
BaseEditor
in favor ofAzExtTreeFileSystem
-
openReadOnlyContent
replaces ? and # with _ because when parsing URIs, those symbols mean specific things that break the URI path
Use VS Code's built-in TreeItem.description
Sort resource groups by name when listing in ResourceGroupListStep
Only show "Loading resources..." notification when loading all
Bumped minimum version of VS Code to 1.40.0 and Node.js to 12.0.0
Don't show wizard title if there's only one step
- Added
getResourceName
inBaseEditor.ts
for more verbose logging.
- Added param
options?: { resourceName?: string, date?: Date }
toappendLineToOutput
inBaseEditor.ts
. - Logs in
BaseEditor
now include the resource name.
Use any
instead of unknown
for registerCommand
Added registerErrorHandler
and registerTelemetryHandler
- Remember input box values during a wizard
- Show a "back" button for warning dialogs shown during a wizard
- Removed
ITelemetryReporter
andcreateTelemetryReporter
. UseregisterCommand
,registerEvent
orcallWithTelemetryAndErrorHandling
instead. There is no need to add a reporter toextensionVariables
- Update reference to
vscode-extension-telemetry
, which contains a fix for https://github.com/microsoft/vscode-extension-telemetry/issues/44 (needed downstream)
- Instead of dropping the entire telemetry event in certain cases, just the error-specific properties will be dropped
- Removed
ITelemetryReporter.sendTelemetryEvent
. UseITelemetryReporter.sendTelemetryErrorEvent
instead, which is more compliant in terms of handling error properties
- Use
sendTelemetryErrorEvent
for errors
- Updated AzExtTreeItem to accept ThemeIcon as iconPath
- Update dependencies
html-to-text
to^5.1.1
andfs-extra
to^8.0.0
-
AzureAccountTreeItemBase
will now use itself as the starting point for subscription prompt. (https://github.com/microsoft/vscode-docker/issues/1702)
-
handleWithMask
is now in the UI package -
handleWithMask
now escapes special RegExp characters
- Fix timing issues where separate wizards would affect each other
- Fix annoying refresh for error tree item
- Let users select existing resource group on 403 error
VerifyProvidersStep
ResourceGroupNameStep
- Add support to show custom error message in tree item picker and ability to suppress open issue button.
- Add support for XML error message parsing
- Allow for passthrough of context objects
- Add ability to load all tree items
- Get latest state of Azure Account extension when refreshing the Azure tree item
- actionContext.errorHandling.issueProperties, paste long issues to clipboard #629
- Bumped minimum version of VS Code engine to 1.30.0
- Set enableHttpsTrafficOnly on storage accounts by default
- Update subscription icon
- Fix parseError for Azure StatusCodeError
- Also checks for empty arrays when the user cancels an openDialog prompt
-
IAzExtOutputChannel
is a wrapper for outputChannel. This is controlling timestamping all of the messages appended to the outputChannel
- Updated a few icons to match latest VS Code guidelines
- Fix "Cannot read property '...' of undefined" error when using the tree item picker
-
LocationListStep
now has a private constructor and static methodaddStep
used to add topromptSteps
in order to avoid having multipleLocationListSteps
in a wizard
- The property
resourceGroupDeferLocationStep
has been removed fromIResourceGroupWizardContext
- Default to quiet debug telemetry, allow verbose
- Added suppressAll option in ITelemetryContext
- More validation in
createTreeItemsWithErrorHandling
- Fix validation error for default value that should be valid
- icons not displaying for webpacked extensions
- Make type of
ILocationWizardContext.locationsTask
compatible withLocation
from ARM sdk
- Removed
TestAzureAccount
andTestUserInput
. Seevscode-azureextensiondev
package instead
- Improve display of commands in tree when not signed in
- Support advanced creation in the node picker
- Don't close storage list pick for learn more
- Don't show recently used for first item in quick pick
- Only show locations for that apply to the subscription
- Better handle situation where azure account is not installed
- Add instructions for canPickMany
- Fix encoding in
openReadOnlyContent
- Support multi-select quick picks in wizard
- Add function to open read only content
- Support
canPickMany
for last stage of tree item picker - Allow hiding step count for entire wizard
- Show loading indicator while "Load more..." is being executed in tree
- Added option to hide "Create new..." pick in tree item picker (i.e. if the command is to delete a tree item)
- Added option to supply different command args when clicking a tree item
- Exposed
InvalidTreeItem
for use outside this package
- Add accountStatus back to telemetry
- Temporarily workaround "Element with id is already registered" error
- Handle docker specific errors in
parseError
This release is highlighted by an increased reliance on IActionContext
.
- Instead of accessing actionContext with
this
, it is now the first parameter - All wizard context objects must now extend
IActionContext
- Several tree actions (i.e. showTreeItemPicker) now require an
IActionContext
to be passed in - Renamed
ISubscriptionRoot
toISubscriptionContext
-
showCreatingTreeItem
is now a part ofICreateChildImplContext
- Fix
TestUserInput.showQuickPick
if getting items throws an error - Wait for filters before showing subscriptions in tree
This release is highlighted by new classes AzExtTreeDataProvider
, AzExTreeItem
, and AzExtParentTreeItem
. These classes work for all Azure Extensions, but unlike the previous tree they are generic enough to display non-Azure resources.
- Renamed
AzureTreeDataProvider
toAzExtTreeDataProvider
. Subscriptions will no longer be shown by default. Instead, you must pass in a "root" node describing the top-level nodes to be displayed in the tree. - Added
AzureAccountTreeItemBase
, the root node that should be used to replicate the previous subscription behavior that was inAzureTreeDataProvider
. - Renamed
SubscriptionTreeItem
toSubscriptionTreeItemBase
- Added
AzExTreeItem
andAzExtParentTreeItem
, more generic versions ofAzureTreeItem
andAzureParentTreeItem
- Reduced number of options on
AzureTreeItem.openInPortal
and instead added anopenInPortal
function that can be called separately. - Moved
createTreeItemsWithErrorHandling
ontoAzExTreeItem
- Changed signature of
pickTreeItemImpl
to more accurately reflect the possibility of multiple expected context values
- Include less information in call stack
- Don't show wizard step count if there is no title
- Report an issue would sometimes open a blank browser window
- The
\s
RegExp flag is not supported in older versions of VS Code and was breaking extensions. This will fix the following two issues:- Microsoft/vscode-azureappservice#942
- Microsoft/vscode-azurearmtools#206
- Product name and language in Report an Issue
- Add product name and language to telemetry
- Fix unsupported regex in older versions of vscode and in Azure Data Studio
- Modified ordering of execute steps in an
AzureWizard
so that it was more flexible and simple. Now apriority
property must be specified on eachAzureWizardExecuteStep
- Telemetry on how often back button is used in wizards
- Can hide step count when prompting in wizard
- Can specify learn more link in
showWarningMessage
- Incorrect execute step count
- Split
AzureWizardPromptStep
intoprompt
and optionalgetSubWizard
- Merged
IWizardOptions
andISubWizardOptions
- Allow RegExp in
showTreeItemPicker
- Added
getSubscriptionPromptStep
toAzureTreeDataProvider
- Order of execute steps in sub sub wizards
- Back button in AzureWizard didn't work if previous step was filtered
- Improvements to
AzureWizard
- Back button
- Step count
- Progress notification
- Minimum VS Code version is 1.26.0
-
TestUserInput
now usesTestInput
for special values, notundefined
- See index.d.ts for changes to wizard classes/interfaces
- Ignore images when parsing html errors
- Add VS Code version to issues
- Add flag to know when telemetry is suppressed on success
- weird stack
- Add call stack to Report an Issue and telemetry
- Update "Report an Issue" (#419)
- Add validOnTimeoutOrException to showInputBox (#418)
- Use correct URL for ARM issues
- Fix one case of duplicate tree ids (#417)
- Expose StorageAccountName and StorageAccountCreate
- Allow RegExp for TestUserInput
- Debounced calls no longer tracked in telemetry
-
clearCache
flag no longer supported inAzureTreeDataProvider.refresh
-
refreshLabelImpl
was removed fromAzureTreeItem
. UserefreshImpl
instead
- Parse html errors into plain text
- Fix error "The Resource group already exists in location..."
- "(recently used)" showing up multiple times in quick pick
- Speed up runWithTemporaryDescription
- Added optional debounce property to
registerCommand
- Added
refreshImpl
toAzureTreeItem
and deprecatedrefreshLabelImpl
-
instanceof
for tree items
- Improved dev experience when linking npm package (specifically around "instanceof")
- Make webpack friendly and make registering vars more logical (#305)
- Added code (either 'NoLongerSupported' or 'NotYetSupported') to errors thrown by AzureExtensionApiProvider
- Handle case where no API versions are provided (aka before the extension is ready to provide an API)
- wrapApiWithVersioning: Wraps an Azure Extension's API in a very basic provider that adds versioning.
- callWithTelemetryAndErrorHandling now has types and added a "Sync" method
- TelemetryProperties and TelemetryMeasurements allow undefined
- Improve
LocationListStep.setLocation
to match locations with different casing/whitespace
- Allow '0' or 'false' to turn off DEBUGTELEMETRY
- Fixed ResourceGroupListStep subWizard when newResourceGroup is passed in
- Sort locations alphabetically
- TreeDataProvider supports getParent, needed for the reveal method
- "Load More..." now has icons
- RootTreeItem had incorrect type for constructor
- GenericTreeItem should not show up in treeItemPicker
- Fixed missing icon path for loading tree items
- Added
TTreeItem
type to createTreeItemsWithErrorHandling
Refactored AzureTreeDataProvider
so that IAzureTreeItem
and IAzureNode
are one class. See updated README for new implementation instructions.
- Handle errors array inside 'error' property
- Improve parseError
- Handle the case where
response.body
has the actual error anderror.message
is just a failure to parseresponse.body
- Check for 'statusCode' property
- Ensure 'errorType' is actually a string
- Handle the case where
- Minor improvements to node picker
- Invalid nodes won't show up in the node picker
- A node's description will show up in the node picker
- Removed "a" from placeHolder since we don't want to pick between "a"/"an"
- Add createTreeItemsWithErrorHandling
#Added Multi-select support in Quickpicks
- callWithTelemetryAndErrorHandling will no longer wait when showing error message to user
Add contextValue='Uri' for commands initiated from file treeview
Add 'remove private information before submitting' to 'Report an Issue'
Added common function to create Azure clients (meant to encourage the use of best practices)
- TestAzureAccount that leverages a service principal to sign in during tests
-
ISubscriptionWizardContext
now requiresenvironment
in order to support sovereigns - Allow empty string in input box
- Fixed parseError for object with nested 'value' property
- DEBUGTELEMETRY=1 environment variable shows telemetry on console instead of sending
Update referenced version of telemetry package
- Fix "Cannot read property 'concat' of undefined"
- Leverage long-running notifications
Republished from v0.16.1
- appendExtensionUserAgent
- Common function for user agent
- Register common variables rather than passing them in all the time
- ensureRootNodes - fixes #186 (have to open Azure view before running any commands that use node picker) Node picker doesn't work if sign-in/initialization is in progress
- Sign-in/create new subscription commands show empty subscription list
- Other minor changes
NOTE: This updates the required vscode version to 1.23.0
File dependency issue
- OpenInPortalOptions - Added the ability to add prefixes to the portal URL string, for situations like we need for static web hosting in storage extension temporarily (enabling a preview feature). Note that I modified the URL format slightly to match what I'm actually seeing the portal use currently (otherwise the query prefix won't work, but I changed it for the current scenario as well - shouldn't affect functionality, but bumping minor version just in case).
Old format: https://portal.azure.com/#resource/ New format: https://portal.azure.com/[?]#@/resource/
- suppressTelemetryIfNotFailure shouldn't suppress on failures/cancels
Fixed parseError to handle another format of error being thrown from Azure
- StorageAccountListStep: Allow filtering storage accounts
- AzureNameStep: Fix related name generation when multiple invalid characters are included
AzureTreeDataProvider: Fix top-level node refresh
AzureUserInput: Allow specifying warning message options
- ResourceGroupListStep and StorageAccountListStep can now be used all on their own
- Split AzureWizardStep into separate 'Prompt' and 'Execute' steps
-
findNode
for nodes at the same level with similar names - Await initial loading of children
- Children of subscription nodes were not being cached correctly
- actionId to reportAnIssue
- Fixed contract for findNode
- Improved error parsing for Azure errors
- Expose onNodeCreate on AzureTreeDataProvider
- onNodeCreate to AzureTreeDataProvider
- runWithTemporaryDescription to IAzureNode
- 'Report an issue' button when displaying errors
- Error "Cannot set property subscriptionId of AzureNode which only has a getter"
- subscriptionId and subscriptionDisplayName to ISubscriptionWizardContext
- subscription from ISubscriptionWizardContext
- subscriptionId and subscriptionDisplayName to IAzureNode
- subscription from IAzureNode
- Common Wizard Steps
- LocationStep
- ResourceGroupStep
- AzureNameStep
- StorageAccountStep
- Option to suppressPersistence for quickPicks
-
IAzureUserInput
: Wrapper interface of severalvscode.window
methods that handle user input. The main reason for this interface is to facilitate unit testing in non-interactive mode with theTestUserInput
class. However, theAzureUserInput
class does have a few minor differences from default vscode behavior:- Automatically throws a
UserCancelledError
instead of returning undefined when a user cancels - Persists 'recently used' items in quick picks and displays them at the top
- Automatically throws a
-
AzureWizard
: A wizard that links several user input steps together -
DialogResponses
: Common dialog responses used in Azure extensions
Allow IChildProvider implementations to custom sort child nodes
- Telemetry for the tree
- Optional id parameter for openInPortal
- Typings for telemetry properties
- callWithTelemetryAndErrorHandling
- AzureActionHandler.callWithTelemetry
- AzureActionHandler "withCustomTelemetry" commands - instead use new IActionContext
- IAzureNode.id: This property is useful if you need to persist information about a specific node
- AzureTreeDataProvider.findNode: Used to find a specific node based on its id
- Make subscription context value more unique
- Display 'Create a Free Azure Account' in tree when logged out
- TreeProvider leverages id so that refresh keeps expansion/selection state
- NodePicker ignores focus out
- Newly created nodes are inserted into the tree in sorted order
- Optional userOptions on createChild
- Errors from Kudu will be parsed and displayed
Improved node picker:
- Allow for multiple context values
- Allow node picker to start at a specific node
- Allow tree items to implement isAncestorOf
- Added error parsing for more complex Azure errors
- Added AzureActionHandler.callWithTelemetry for generic calls that aren't registered with VS Code
- Allow async refresh of label in treeDataProvider
- AzureActionHandler: Used to consistently display error messages and track commands with telemetry
- userId to IAzureNode interface
Initial version of BaseEditor
- Nodes in the tree will now be sorted by label
- Support for non-subscription root nodes
-
clearCache
was never being passed toloadMoreChildren
-
deleteNode
anddeleteTreeItem
no longer return a value - Add default message to UserCancelledError
- Azure Tree Provider showed 'No Subscriptions Found. Edit filters...' even though there were filters
Initial release of Azure Extension UI package
- Tree Data Provider
- UserCancelledError