Zowe Explorer
New features and enhancements
- Support VS Code engine 1.79.0 and higher.
- Updated activation event to
onStartupFinished
. #1910 - Removal of Zowe V1 profile support. #2072
- Removal of Theia support. #2647
- Migrate package manager from Yarn to PNPM. #2424
- Migrated to webpack V5 #2214
- Migrated from
@zowe/cli
dependency package to individual Zowe8.0.0
SDK packages for Zowe V3 support. #2719 - Updated Zowe Explorer API dependency to
3.0.0
for Zowe V3 support. Check the list of APIs that were removed. - Removed deprecated methods and conoslidated VS Code commands. Check the list of APIs that were removed.
- Added
madge
dependency to support to track circular dependencies. #2148 - Migrated from
i18n
tol10n
for VS Code localization. #2253 - Replaced
lodash
dependency withes-toolkit
to reduce webview bundle size and add technical currency. #3060 - Replaced
ts-loader
dependency withesbuild-loader
to improve build speed for developers. #2909 - Minimized activation function for Zowe Explorer to load only necessary items on activation. #1985
- Breaking: Zowe Explorer no longer uses a temporary directory for storing Data Sets and USS files. All settings related to the temporary downloads folder have been removed. In order to access resources stored by Zowe Explorer V3, refer to the FileSystemProvider documentation for information on how to build and access resource URIs. Extenders can detect changes to resources using the
onResourceChanged
function in theZoweExplorerApiRegister
class. #2951 - Breaking Moved data set templates out of data set history settings into new setting
zowe.ds.templates
. #2345 - Added UI migration steps on startup for users with V1 profiles to either convert existing V1 profiles to team configuration file or create a new team configuration file. #2284
- Added support for Local Storage settings for persistent settings in Zowe Explorer #2208
- Grouped Common methods into Singleton classes. #2109
- New Extender registration APIs:
onVaultUpdate
VS Code events to notify extenders when credentials are updated on the OS vault by other applications. #2994onCredMgrUpdate
VS Code events to notify extenders when the local PC's credential manager has been updated by other applications. #2994onResourceChanged
function to theZoweExplorerApiRegister
class to allow extenders to subscribe to any changes to Zowe resources (data sets, USS files/folders, jobs, etc.). See the FileSystemProvider wiki page for more information on Zowe resources.addFileSystemEvent
function to theZoweExplorerApiRegister
class to allow extenders to register their FileSystemProvideronDidChangeFile
events.
- Implemented support for building, exposing, and displaying table views within Zowe Explorer. Tables can be customized and exposed using the helper facilities (
TableBuilder
andTableMediator
) for an extender's specific use case. For more information on how to configure and show tables, please refer to the wiki article on Table Views. #2258 - Added support for logging in to multiple API ML instances per team configuration file. #2264
- Added remote lookup functionality for data sets and USS, allowing Zowe Explorer to locate and resolve mainframe resources on demand. #3040
- Implemented change detection in the data sets and USS filesystems so that changes on the mainframe are reflected in opened editors for Data Sets and USS files. #3040
- Implemented a "Show as Table" option for profile nodes in the Jobs tree, displaying lists of jobs in a tabular view. Jobs can be filtered and sorted within this view, and users can select jobs to cancel, delete, or download. #2258
- Implemented the VS Code FileSystemProvider for the Data Sets, Jobs, and USS trees to handle all read/write actions as well as conflict resolution. #2207
See the FileSystemProvider wiki page for more information on the FileSystemProvider.- Refactored behavior and management of Favorites in Zowe Explorer. #2026
- Added the capability for extenders to contribute new profile types to the Zowe schema during extender activation. #2508
- Added a new command feature, Issue UNIX Commands available in the VS Code command pallete or via right-click action in the USS treeview. #1326
- Added enhancement to compare 2 files from MVS and/or UNIX System Services views via right click actions, with option to compare in Read-Only mode too.
- Added a prompt to create a new Zowe client configuration for an environment that does not have any Zowe client configurations. #3148
- Implemented support for favoriting a data set search that contains member wildcards. #1164
- Changed default base profile naming scheme in newly generated configuration files to prevent name and property conflicts between Global and Project profiles #2682
- Renamed
isHomeProfile
context helper function toisGlobalProfile
for clarity. #2026 - Set up POEditor project for contributing translations and cleaned up redundant localization strings. #546
- Added integration and end-to-end test framework to verify extension behavior and catch issues during Zowe Explorer development. #2322
Bug fixes
- The "Zowe Resources" panel is now hidden by default until Zowe Explorer reveals it to display a table or other data. #3113
- Fixed behavior of logout action when token is defined in both base profile and parent profile. #3076
- Fixed bug that displayed obsolete profiles in the Zowe Explorer tree views after the associated team configuration file was deleted. #3124
- Removal of broken VSC command to
Zowe Explorer: Refresh Zowe Explorer
, use VS Code'sExtensions: Refresh
command instead. #3100 - Fixed issue where "Allocate Like" input box placeholder was showing a localization ID instead of the intended message ("Enter a name for the new data set"). #2759
- Fixed default behavior of "Create a new Team Configuration File" to create a Project Config instead of Project User Config. #2684
- Changed ZoweExplorerExtender.initForZowe
profileTypeConfigurations: imperative.ICommandProfileTypeConfiguration[]
to a required argument to address issues seen after registration of profile type when not passed. #2575 - Resolved
TypeError: Cannot read properties of undefined (reading 'direction')
error for favorited items. #3067 - Fixed issue where switching from token-based authentication to user/password would cause an error for nested profiles. #3142
IBM z/OS FTP for Zowe Explorer
New features and enhancements
- Renamed extension to
IBM z/OS FTP for Zowe Explorer
. #2990 - Updated the FTP plug-in dependency to
3.0.0
for Zowe V3 support. #2783. - Updated from
@zowe/cli
package dependency to individual Zowe8.0.0
SDK packages for Zowe V3 support. #2719 - Updated Zowe Explorer API dependency to
3.0.0
for Zowe V3 support and addressed breaking changes. Check the list of APIs that were removed. - Updated VS Code engine support to
1.79.0
and higher. - Updated VS Code activation event to
onStartupFinished
. #1910 - Removal of Zowe V1 profile support. #2072
- Migrated to new package manager PNPM from Yarn.
- Migrated to webpack V5 #2214
- Added
madge
dependency for support to track circular dependencies. #2148 - Replaced
ts-loader
dependency withesbuild-loader
to improve build speed for developers. #2909 - Added support for streams to the
getContents
andputContents
functions (FtpMvsApi
andFtpUssApi
interfaces) with the following API:uploadFromBuffer
. - Removed pop-up notification of successful registration with Zowe Explorer and log the success message. #2862
- Breaking: updated the
FtpMvsApi.putContents
function to throw an error when an e-tag conflict is found to establish consistency with theFtpUssApi.putContents
function which has always thrown an error for this scenario. - Breaking: Removed the deprecated
FtpUssApi.putContents
function in favor of theFtpUssApi.putContent
function.
Bug fixes
- Changed the hashing algorithm for e-tag generation from
sha1
tosha256
to avoid collisions. #2890 - Fix Windows-specific hangs when saving members that contain JCL via the FTP extension. Thanks @tiantn & @std4lqi. #2533
- Removed outdated vscode-nls webpack plug-in #2253
- Fixed ECONNRESET error when trying to upload or create an empty data set member. #2350
- Updated additional dependencies for technical currency purposes.
Zowe Explorer APIs
New features and enhancements
- Removal of V1 profile support. #2072
- Removal of deprecated APIs. Check the list of APIs that were removed.
- Migrated from
@zowe/cli
dependency package to individual Zowe8.0.0
SDK packages for Zowe V3 support. #2719 - Added
madge
dependency and script inpackage.json
to track circular dependencies. #2148 - Removed
handlebars
dependency in favor ofmustache
for technical currency purposes. #2975 - Migrated to new package manager PNPM from Yarn.
- Grouped Common methods into Singleton classes. #2109
- Implemented support for building, exposing and displaying table views within Zowe Explorer. Tables can be customized and exposed using the helper facilities (
TableBuilder
andTableMediator
) for an extender's specific use case. For more information on how to configure and show tables, please refer to the wiki article on Table Views. #2258 - Enhanced the
ZoweVsCodeExtension.loginWithBaseProfile
andZoweVsCodeExtension.logoutWithBaseProfile
methods to store SSO token in parent profile when nested profiles are in use. #2264 - Added new
getJobsByParameters
API is meant to replacegetJobsByOwnerAndPrefix
, and it adds new capabilities such as querying by status and limiting the amount of returned jobs. - Added the
BaseProfileAuthOptions
interface to define base profile authentication options for SSO login and logout. #3076 - Added
extensionRemovedFromPath
private function to theDsEntry
class to allow removing the extension from a data set before making API calls. #3121 - Added optional
patternMatches
property to theIZoweDatasetTreeNode
interface to cache pattern matches from an applied filter search. #1164 - Added an optional function
openWithEncoding
to theIZoweTree
interface to open file using encoding specified by user. #2931 - Added the
onVaultUpdate
VSCode event to notify extenders when credentials are updated on the OS vault by other applications. #2994 - Added the
onCredMgrsUpdate
VSCode event to notify extenders when the local PC's credential manager has been updated by other applications. #2994 - Added
Commands
value to thePersistenceSchemaEnum
enum for storing MVS, TSO, and USS command history. #2788 - Added the
getEncoding
optional function to theIZoweDatasetTreeNode
andIZoweUSSTreeNode
interfaces. #2207 - Added an optional function
nodeDataChanged
to theIZoweTree
interface to signal an event when a tree node needs updated. #2207 - Added the optional
vscode.DragAndDropController
interface to theIZoweTree
interface to allow Zowe tree views to support drag and drop. #2207 - Added a
ZoweScheme
enum to expose the core FileSystemProvider schemes for USS files, data sets and jobs. #2207 - Added optional function
move
to theMainframeInteraction.IUss
interface to move USS folders/files from one path to another. #2207 - Added the
buildUniqueSpoolName
function to build spool names for Zowe resource URIs and VS Code editor tabs. #2207 - Added the
isNodeInEditor
function to determine whether a tree node is open in the editor. #2207 - Added Created Date to
stats
optional variable for storing dataset stats #2565 - Added Date created to DatasetSortOpts enum #2565
- Added new
ProfilesCache.convertV1ProfToConfig
API endpoint for extenders migrating from v1 profiles to team configuration files. #2284 - Added new APIs for Issue UNIX Command. #1326
- Updated the
ProfilesCache.getProfiles
method to return empty list instead of undefined when there are no profiles. #2947 - Updated the
TableViewProvider.setTableView
function to show the Zowe Resources panel if a table is provided. Ifnull
is passed, the Zowe Resources panel will be hidden. #3113 - Updated
Table.Conditional
andTable.Callback
types to support multi-row callbacks. - Renamed the
_lookup
function tolookup
in theBaseProvider
class and updated its access to public, allowing extenders to look up resources outside of the provider implementations. The_lookup
function is still accessible, but now deprecated in favor of the publiclookup
function. #3040 - Changed the type for the options parameter in the
getContents
function (MainframeInteraction.IUss
andMainframeInteraction.IMvs
interfaces) fromzosfiles.IDownloadOptions
tozosfiles.IDownloadSingleOptions
. #2207- The type was changed to match the function's intended behavior (to get the contents of a single resource).
- Changed
TableViewProvider.setTableView
function to be asynchronous for more optimized data updates. - Changed IApiExplorerExtenders.initForZowe
profileTypeConfigurations: imperative.ICommandProfileTypeConfiguration[]
to a required argument to address issues seen after registration of profile type when not passed. #2575 - Breaking: Removed
ProfilesCache.getSchema()
,ProfilesCache.getCliProfileManager()
,ProfilesCache.saveProfile()
&ProfilesCache.deleteProfileOnDisk()
v1 Profiles manipulation endpoints. - Breaking: Removed
ZoweTreeNode.binary
,ZoweTreeNode.binaryFiles
, andZoweTreeNode.shortLabel
. These properties are not applicable for all tree nodes and should be defined in subclasses ofZoweTreeNode
if necessary. - Breaking: Removed the following properties/methods:
IZoweUSSTreeNode.binaryFiles
->IZoweUSSTreeNode.encodingMap
IZoweUSSTreeNode.mProfileName
->IZoweUSSTreeNode.getProfileName()
IZoweUSSTreeNode.setBinary()
->IZoweUSSTreeNode.setEncoding()
- Breaking: Added the following required API:
uploadFromBuffer
#2738- For v3, this API will be used for saving data sets and USS files instead of
putContent(s)
. Extenders must implement this API to continue supporting Zowe Explorer save operations.
- For v3, this API will be used for saving data sets and USS files instead of
- Breaking: Removed the
encoding
property from theIZoweUSSTreeNode
interface in favor of the newgetEncoding
function. #2207 - Breaking: Removed string as a return type of the
uploadFromBuffer
method, since the z/OSMF API has been fixed to return a response object that includes an etag. #2785 - Breaking: Marked
getJobsByParameters
as a required function for theMainframeInteraction.IJes
interface. #2764 - Breaking: Removed the
MemberEntry
filesystem class, in favor of using theDsEntry
class withisMember
set totrue
. - Breaking: Changed return type of
ZoweVsCodeExtension.logoutWithBaseProfile
method fromvoid
toboolean
to indicate whether logout was successful. - Breaking: Changed behavior of the
ProfilesCache.fetchBaseProfile
method so that if a nested profile name is specified (e.g. "lpar.zosmf"), then its parent profile is returned unless token is already stored in the base profile. - Breaking: Consolidated WebView API options into a single object (
WebViewOpts
type), both for developer convenience and to support future options. - Breaking: Updated most function signatures for exported programmatic interfaces. Changes make developing with the Zowe Explorer API more efficient for extenders by showing which properties they can expect when calling our APIs. #2952
- Updated
IApiExplorerExtender.ts
, see changes below:- Allowed
reloadProfiles
andinitForZowe
to be synchronous methods (non-breaking)
- Allowed
- Updated
MainframeInteraction.ts
, see changes below:- Modified
getStatus
to addstring
type to the optional parameterprofileType
- Modified
- Updated
IZoweTree.ts
, see changes below:- Modified
checkCurrentProfile(node: IZoweTreeNode);
to returnValidation.IValidationProfile | Promise<Validation.IValidationProfile>
- Modified
getSearchHistory()
to returnstring[]
- Modified
getAllLoadedItems()
to returnIZoweTreeNode[] | Promise<IZoweTreeNode[]>
- Modified
getFileHistory()
to returnstring[]
- Modified
createFilterString?(newFilter: string, node: IZoweTreeNode);
to returnstring
- Allowed the following methods to be implemented synchronously: (non-breaking)
addSession
addSingleSession
editSession
createZoweSession
createZoweSchema
ssoLogin
ssoLogout
addFavorite
removeFavorite
removeFavProfile
onDidChangeConfiguration
flipState
synchronous - noPromise
returnedrename
open
copy
paste
delete
setItem
synchronous - noPromise
returnedsaveSearch
saveFile
refreshPS
uploadDialog
filterPrompt
addSearchHistory
synchronous - noPromise
returneddeleteSession
synchronous - noPromise
returnedupdateFavorites
renameFavorite
addFileHistory
synchronous - noPromise
returnedremoveFileHistory
synchronous - noPromise
returnedrenameNode
openItemFromPath
addDsTemplate
pollData
openWithEncoding
Note: Developers should not expect a value to be returned from the methods above (breaking)
- Modified
- Updated
IZoweTreeNode.ts
, see changes below:- Modified
rename?(newNamePath: string);
to returnPromise<IZosFilesResponse>
- Developers should not be expecting output from the following methods:
openUSS
refreshUSS
deleteUSSNode
renameUSSNode
reopen
saveSearch
- Modified
- Updated
- Breaking: Changed
ProfilesCache.convertV1ProfToConfig
method to be a static method that requiresProfileInfo
instance as a parameter. - Breaking: Changed the parameters of the
addSession
method on theIZoweTree
interface since they were all optional. It now receives an object of typeAddSessionOpts
. #2947 - Breaking: Removed the redundant
zoweFileProvider
parameter fromeditSession
method on theIZoweTree
interface. #2947 - Breaking: Removed deprecated methods: #2238
refreshAndReopen
function on theIZoweTreeNode
interface - use thereopen
function instead.copyUssFile
function on theIZoweTreeNode
interface - use thepasteUssTree
function instead.ZoweVsCodeExtension.showVsCodeMessage
- useGui.showMessage
instead.ZoweVsCodeExtension.inputBox
- useGui.showInputBox
instead.ZoweVsCodeExtension.promptCredentials
- useZoweVsCodeExtension.updateCredentials
instead.
- Breaking: Removed unused property
profileManagerByType
which used the V1-profile classCLIProfileManager
. #3057 - Breaking: Added return type of
Promise<void>
to the followingIZoweTree
methods: #2238- addFavorite
- removeFavorite
- removeFavProfile
- ssoLogin
- ssoLogout
- Breaking: Added return type of
Promise<void>
toIZoweTree.addDsTemplate
. #2345 - Breaking: Added return type of
Promise<void>
toMainframeInteractions.ICommon.logout
. #2783 - Breaking: ProfilesCache.getProfileInfo no longer accepts any parameters. #2744
- Breaking: issueUnixCommand API now takes sshSession as a optional parameter. #2866
- Deprecated the following properties on Zowe tree interfaces in favor of setters and getters to incentivize encapsulation: #2026
binary
property on theIZoweDatasetTreeNode
interface - use thegetEncoding
andsetEncoding
functions instead.encodingMap
property on theIZoweDatasetTreeNode
andIZoweUSSTreeNode
interfaces - use thegetEncodingInMap
andupdateEncodingInMap
functions instead.stats
property on theIZoweDatasetTreeNode
interface - use thegetStats
andsetStats
functions instead.encoding
property on theIZoweDatasetTreeNode
andIZoweUSSTreeNode
interfaces - use thegetEncoding
andsetEncoding
functions instead.shortLabel
property on theIZoweUSSTreeNode
interface - use thegetBaseName
function instead.attributes
property on theIZoweUSSTreeNode
interface - use thegetAttributes
andsetAttributes
functions instead.
- Deprecated the
openFiles
property onIZoweTree
interface - in v3 open files are tracked by theFileSystemProvider
instead. #2947 - Deprecated the
getUSSDocumentFilePath
function on theIZoweTreeNode
interface as Zowe Explorer no longer uses the local file system for storing USS files. No replacement is planned; please access data from tree nodes using their resource URIs instead. #2968 - Deprecated the method
ProfilesCache.updateProfilesArrays
. UseProfilesCache.updateCachedProfile
instead, which handles updating credentials cached in memory whenautoStore
is false. #3120 - Deprecated the methods
ZoweVsCodeExtension.loginWithBaseProfile
andZoweVsCodeExtension.logoutWithBaseProfile
. UseZoweVsCodeExtension.ssoLogin
andZoweVsCodeExtension.ssoLogout
instead, which use theBaseProfileAuthOptions
interface and allow you to choose whether the token value in the base profile should have precedence in case there are conflicts. #3076
Bug fixes
- Fixed behavior of logout action when token is defined in both base profile and parent profile. #3076
- Fixed profile cached by
FileSystemProvider
not refreshing on password change. #3120 - Fixed extender's ability to fetch profile information from ProfilesCache for SSH profile types.
- Fixed an issue where the
ZoweVsCodeExtension.updateCredentials
method could remove credentials from session when input prompt was cancelled. #3009 - Fixed an issue where the loaded configuration could be overridden when extenders retrieved the Zowe home directory. #2994
- Fixed an issue where remote lookup functionality caused the local side of a conflict to be overwritten with the remote contents. #3085
- Fixed export of api
onProfilesUpdate
. - Fixed bug in
ProfilesCache
class where old profiles were still accessible after deleting a Team configuration file. #3124