Skip to content

Releases: zowe/zowe-native-proto

v0.2.0

31 Oct 15:35

Choose a tag to compare

v0.2.0 Pre-release
Pre-release

VS Code Extension

  • Renamed SshConfigUtils class to ConfigUtils to avoid naming conflicts with SDK files #614
  • Added new defaultHandshakeTimeout VS Code setting to allow users to customize the handshake timeout when not specified in the profile. #605
  • Fixed SSH client caching to be per profile instead of per hostname, allowing multiple server instances on the same system. #558
  • Updated RPC response types for data set operations to align with SDK changes. #590
  • Added support for issuing TSO commands. #595
  • Fixed an issue where the input validation for the deploy directory prompt would falsely detect paths as invalid. #609

CLI Plug-in

  • Updated CliPromptApi class to gracefully handle unused functions from the AbstractConfigManager class. #605
  • Added a --depth option to the zssh list uss command for listing USS directories recursively. #575
  • Added zssh issue tso-command command. #595

Client SDK

  • Added unit tests for SshConfigUtils class. #614
  • Addressed an issue where ~ was not being resolved to the home directory within ssh configuration files. #614
  • Added additional error messages to the AbstractConfigManager class to provide better feedback during connection attempts. #605
  • Added depth property to the ListFilesRequest type for listing USS directories recursively. #575
  • Replaced this.uninstallServer with the class reference ZSshUtils.uninstallServer in ZSshUtils.ts. [#586] (#586).
  • Added recfm property to the Dataset type for listing data sets with attributes. #558
  • Restructured RPC request and response types to be human-maintained rather than auto-generated to improve maintainability. #590
  • Made attribute properties optional in the Dataset and UssItem types. #608
  • Fixed an issue where the input validation logic in the AbstractConfigManager.promptForDeployDirectory function would falsely detect paths as invalid. #609

z/OS Components

  • c: Fixed issue where uploading changes to a PDS member removed its ISPF stats. #556
  • c: Streamlined argument checks and access within command handlers. Handlers can now use get, get_if and find to search for arguments and retrieve their values, regardless of whether the argument is a keyword or positional argument. #574
  • c: Command handlers can now be called directly by providing an InvocationContext. The context provides helper functions for error, input, and output stream redirection. Handlers can use this context to print output and errors, as well as setting content length. #574
  • c: Organized command handlers into separate source files and namespaces in the commands folder. Reduced size of main entrypoint function by moving command registration to a register_commands function contained in each namespace. #409
  • native: Added a --depth option to the zowex uss list command for listing USS directories recursively. #575
  • native: Added zowex job list-proclib to list proclib concatenation.
  • c: Fixed issue where a directory handle was leaked when running chmod, chown, chtag or delete USS commands. #577
  • c: Fixed issue where a file handle was leaked if the fldata function call failed when listing data set members. #577
  • c: Fixed issue where a file handle was leaked if the fldata function call failed in the handle_data_set_compress command handler. #577
  • c: Fixed issue in the zut_substitute_symbol function where passing patterns with a length greater than the input buffer would cause a buffer overflow. #577
  • c: Fixed undefined behavior in the zut_bpxwdyn function by verifying that the allocated 31-bit region is valid before writing to it. #577
  • c: The CLI parser now prints unexpected, trailing positional arguments when handling command input. #594
  • Rewrote the middleware (zowed) in C++. This removes our dependency on Golang, improves performance, and allows parallel requests to be handled in a single address space. #595
  • c: Fixed issue where automatic codepage conversion with _BPXK_AUTOCVT was not disabled for all USS read and write operations, which could interfere with the --encoding option. #620

v0.1.10

02 Oct 12:40

Choose a tag to compare

v0.1.10 Pre-release
Pre-release

VS Code Extension

  • Updated the Zowe-SSH: Connect to Host... command to prompt the user to choose a deploy directory.[#527] (#527)

CLI Plug-in

  • Added a storeServerPath function as placeholder for future CLI functionality to persist deploy directory paths from user input. #527

Client SDK

  • Added a promptForDeployDirectory function to prompt the users to choose a deploy directory aside from the default.[#527] (#527)

z/OS Components

  • c: Added zowex tool list-parmlib command to list parmlib concatenation data sets.
  • Added plug-in support to the zowex backend. Plug-ins can contribute commands that users invoke through zowex. For more information on how to create and register a plug-in with zowex, please refer to the plugins.md file in the doc/ root-level folder. #148

v0.1.9

18 Sep 15:36

Choose a tag to compare

v0.1.9 Pre-release
Pre-release

VS Code Extension

  • Moved showSessionInTree call to before uninstallServer is called to ensure the session is displayed in the tree before the uninstall removes it. [#484] (#484)
  • Filtered out certain information messages to display a clear and concise error message for when creating a data set with an invalid management class. #502
  • Added "Worker Count" setting to configure number of zowex worker threads. #514
  • Fixed error when using SSH profiles in Zowe Explorer 3.3.0. #540
  • Fixed an issue where the Zowe-SSH: Connect to Host... command did not prompt the user for a password if the given private key was not recognized by the host. #524
  • Added a new prompt that shows if the user has an invalid private key on an existing profile when running the Zowe-SSH: Connect to Host... command. Now, if an invalid private key is detected, it is moved to a new comment in the JSON file and the user is given options to proceed. They can undo the comment action, delete the comment entirely, or preserve the comment and succeed with setup. #524

CLI Plug-in

  • Added support for the local-encoding option to data set, USS file, and job file commands (view, download, upload) to specify the source encoding of content (defaults to UTF-8). #511
  • Added support for --volume-serial option when uploading/downloading data sets. #439
  • Fixed an issue where the zssh config setup command did not prompt the user for a password if the given private key was not recognized by the host. #524
  • Added a new prompt that shows if the user has an invalid private key on an existing profile when running the zssh config setup command. Now, if an invalid private key is detected, it is moved to a new comment in the JSON file and the user is given options to proceed. They can undo the comment action, delete the comment entirely, or preserve the comment and succeed with setup. #524

Client SDK

  • Updated the ZSshUtils.uninstallServer function to remove the deploy directory and all of its contents.[#484] (#484)
  • Changed default number of zowex worker threads from 10 to 3 to reduce resource usage on z/OS. #514
  • Added support for localEncoding option in data set, USS file, and job file operations to specify the source encoding of content (defaults to UTF-8). #511
  • Added support for volume option when reading/writing data sets. #439
  • Added a new ConfigFileUtils class with helper functions for commenting out properties, removing comments after the properties section of a profile, and restoring properties from comments to their original values. #534

z/OS Components

  • golang: Fixed an issue where an empty response on the HandleReadFileRequest function would result in a panic. #550
  • c: Fixed issue where the zowex ds lm command always returned non-zero exit code for warnings and ignored the --no-warn flag. #498
  • c: Fixed issue where the zowex job submit-jcl command submitted the given JCL contents twice, causing two jobs to be created. #508
  • c: Implemented a logger for Metal C and C++ source code for diagnostics, debug information, and printing dumps. When enabled, log messages are written to a log file named zowex.log in a new logs folder, relative to the location of the zowex binary. #107
  • golang: Moved location of log file inside "logs" directory to be consistent with zowex. #514
  • c: Fixed issue where the zowex ds write command automatically created a data set when it did not exist. #292
  • native: Fixed issue where the zowex ds ls command could hang when listing data sets that the system cannot open. #496
  • c: Added --local-encoding option for read and write operations on data sets, USS files, and job files to specify the source encoding of content (defaults to UTF-8). #511
  • c: Fixed issue where the zowex ds create command did not parse --alcunit and integer arguments (e.g., --primary). #414
  • c: Fixed issue where listing data sets fails if the OBTAIN service fails while obtaining attributes for a data set in the list of matches. #529
  • native: Added support for volser option when reading/writing data sets. #439
  • native: Reduced number of memory allocations in vectors by reserving capacity before adding elements. #522
  • c: Added wrappers for Web Enablement Toolkit to be invoked via Metal C as header only or from LE-C using a 64-bit wrapper.
  • c: Added the zstd::optional class for handling optional values.
  • c: Added the zstd::unique_ptr class and zstd::make_unique function for RAII-based automatic memory management.
  • c: Added the zstd::expected class for error handling similar to Rust Result type.

Additional Assets

  • zowe_native_bindings-0.1.0-py3-none-any.whl
    This wheel should work with Python 3.11.

    Feel free to use this script for testing...
        import pwd
        import os
        from zowe_native_bindings import *
        # ------------------------------------------------------
        
        # Testing USS Files
        # from zusf_py import *
        
        print("\n--- Testing list_uss_dir ---")
        dir_listing = zusf_py.list_uss_dir("/tmp")
        print(f"Directory listing for /tmp:")
        for file in dir_listing.splitlines()[:10]:  # Show first 10 to avoid overwhelming output
          print(file)
        # ------------------------------------------------------
        
        # Testing Jobs
        # from zjb_py import *
        
        job_owner = pwd.getpwuid(os.getuid())[0]
        print("\n--- Testing list_jobs_by_owner ---")
        job_list = zjb_py.list_jobs_by_owner(job_owner)
        print(f"Found {len(job_list)} jobs for owner {job_owner}")
        for job in job_list:
          print(f"Job: {job.jobid} {job.jobname} Status: {job.status} RetCode: {job.retcode}")
        # ------------------------------------------------------
        
        # Testing Data Sets
        # from zds_py import *
        
        print("\n--- Testing list_data_sets (system datasets) ---")
        sys_dsname = "sys1.**"
        print(f"Listing data sets: {sys_dsname}")
        sys_ds_list = zds_py.list_data_sets(sys_dsname)
        print(f"Found {len(sys_ds_list)} system datasets")
        for ds in sys_ds_list[:5]:  # Show first 5 to avoid overwhelming output
          print(f"  Dataset: {ds.name} DSORG: {ds.dsorg}, RECFM: {ds.recfm} VOLSER: {ds.volser}, MIGR: {ds.migr}")
        # ------------------------------------------------------

v0.1.8

15 Aug 12:32

Choose a tag to compare

v0.1.8 Pre-release
Pre-release

z/OS Components

  • native: Added default value for --recfm so that when no options are specified the data set will not contain errors. #493
  • Fixed issue where special characters were detected as invalid characters when provided to zowex commands. #491
  • native: Increase default max returned entries in zowex ds list from 100 to 5000. This helps with #487 but does not fix it. In the future, users should be able to specify on the Zowe Clients the max number of entries.

v0.1.7

13 Aug 14:57

Choose a tag to compare

v0.1.7 Pre-release
Pre-release

VS Code Extension

  • Fixed regression in performance where opening data sets and USS files in the editor could be slow. #488

Client SDK

  • Fixed inconsistent type of the data property between the ReadDatasetResponse and ReadFileResponse types. #488

z/OS Components

  • Updated CLI parser find_kw_arg_bool function to take in an optional boolean check_for_negation that, when true, looks for a negated option value. #485
  • Fixed issue where listing data set members did not check for the negated option value. Now, the command handler passes the check_for_negation option to the find_kw_arg_bool function to check the value of the negated, equivalent option. #485
  • golang: Fixed inconsistent type of the data property between the ReadDatasetResponse and ReadFileResponse types. #488

v0.1.6

12 Aug 20:36

Choose a tag to compare

v0.1.6 Pre-release
Pre-release

VS Code Extension

  • Fixed regression where USS download operations would fail because of a missing callback function. #482

Client SDK

  • Fixed a TypeError in ZSshClient.request that caused stream operations to fail if a callback was not provided for progress updates. #482

z/OS Components

  • native: Fixed regression where data set download operations would fail due to a content length mismatch, due to the content length being printed as hexadecimal rather than decimal. #482

v0.1.5

12 Aug 17:23

Choose a tag to compare

v0.1.5 Pre-release
Pre-release

VS Code Extension

  • Implemented the getTag function in the SshUssApi class to return the tag of a UNIX file. Now, the VS Code extension automatically detects the file tag before the file is opened, and the detected encoding is shown in the "Open with Encoding" menu in Zowe Explorer. #346
  • Adopted streaming for API methods that upload/download data sets and USS files. #358

CLI Plug-in

  • Added support for progress messages for USS files downloaded and uploaded via the CLI plug-in. #426
  • Added support for listing the long format for USS files with the long request option. When provided, the CLI plug-in prints additional file attributes, including permissions, file tag, file size, number of links, owner, and group. #346
  • Added support for listing all USS files with the all request option. When provided, the CLI plug-in includes hidden files in the list response. #421
  • Added support for the encoding option to the zssh upload uss and the zssh upload ds commands. When the encoding option is provided, the command uses the option value as the target encoding for the uploaded content. #427
  • Added support for the file option to the zssh download uss and zssh download ds commands. When the file option is provided, the command uses the option value as the destination file path for the downloaded content. #428
  • Adopted streaming for commands that upload/download data sets and USS files. #358

Client SDK

  • Added support for progress messages for USS files downloaded and uploaded via the CLI plug-in. #426
  • Added support for listing the long format for USS files with the long request option. When provided, the SDK returns additional file attributes, including permissions, file tag, file size, number of links, owner, and group. #346
  • Added support for listing all USS files with the all request option. When provided, the SDK includes hidden files in the list response. #421
  • Refactored handling of RPC notifications to be managed by a separate class RpcNotificationManager. #358
  • Added content length validation for streamed requests. #358
  • Removed unnecessary prompt to unlock keyring on MacOS when connecting to a new host with a private key. #453

z/OS Components

  • native: Added completion code for POST so that users of the library code may determine if a timeout has occurred.
  • native: Added timeout for zowex console issue to prevent indefinite hang when no messages are returned. #470
  • native: Added contentLen property to RPC responses for reading/writing data sets and USS files. #358
  • native: Fixed file tag being prioritized over user-specified codepage when reading/writing USS files. #467
  • native: Fixed issue where max-entries argument was incorrectly parsed as a string rather than an integer. #469
  • native: The zowex root command now has a command handler to make adding new options easier. #468

v0.1.4

31 Jul 16:31

Choose a tag to compare

v0.1.4 Pre-release
Pre-release

z/OS Components

  • c: Fixed an issue where the CLI help text showed the [options] placeholder in the usage example before the positional arguments, which is not a supported syntax. Now, the usage text shows the [options] placeholder after the positional arguments for the given command.
  • c: Added zowex version command to print the latest build information for the zowex executable. The version output contains the build date and the package version. #366
  • c: Added full_status variable from job output to the CSV output for the zowex job view-status --rfc command. #450

v0.1.3

18 Jul 12:01

Choose a tag to compare

v0.1.3 Pre-release
Pre-release

Client SDK

  • The mode property for a list files response now contains the UNIX permissions of the corresponding file/folder. #341
  • Fixed an issue where a non-fatal chdir error (OpenSSH code FOTS1681) prevented the clients from handling the middleware's ready message. Now, the SSH client waits for the ready message from the zowed middleware before returning the new client connection.

z/OS Components

  • c: Fixed S0C4 where supervisor state, key 4 caller invokes zcn_put while running in SUPERVISOR state. #392
  • c: Fixed S0C4 where supervisor state, key 4 caller invokes zcn APIs and several miscellaneous issues. #389
  • c: Fixed issue where canceled jobs displayed as "CC nnnn" instead of the string "CANCELED". #169
  • c: Fixed issue where input job SYSOUT files could not be listed or displayed". #196
  • native: Fixed issue where zowed failed to process RPC requests larger than 64 KB. #364
  • golang: zowed now returns the UNIX permissions for each item's mode property in a USS list response. #341
  • c: Added --long option to the zowex uss list command to return the long format for list output, containing additional file metadata. #341
  • c: Added --all option to the zowex uss list command to show hidden files when listing a UNIX directory. #341
  • c: Added ListOptions parameter to the zusf_list_uss_file_path function to support listing the long format and hidden files. #341
  • c: Fixed issue where the record format (recfm attribute) was listed as unknown for a Partitioned Data Set (PDS) with no members. Now, the record format for all data sets is retrieved through the Volume Table of Contents. #351
  • c: Added CLI parser and lexer library for use in zowex. For an example of how to use the new CLI parser library, refer to the sample CLI code in examples/native-cli/testcli.cpp.
  • c: Fixed an issue where the zowex ds list command always printed data set attributes when passing the argument --response-format-csv, even if the attributes argument was false.
  • c: Fixed an issue where the zusf_chmod_uss_file_or_dir function did not handle invalid input before passing the mode to the chmod C standard library function. #399
  • c: Refactored the Base64 encoder and decoder to remove external dependency. #385

v0.1.2

03 Jun 10:44

Choose a tag to compare

v0.1.2 Pre-release
Pre-release

VS Code Extension

  • Enhanced SSH profile validation to auto-deploy server when it is missing or out of date. #44
  • Added keep-alive messages to keep SSH connection active. Their frequency can be controlled with the "Keep Alive Interval" option. #260

Client SDK

  • Improved error handling when SSH client connects to throw ENOTFOUND if server binary is missing. #44
  • Added ZSshUtils.checkIfOutdated method to check if deployed server is out of date. #44
  • Added keepAliveInterval option when creating an instance of the ZSshClient class that defaults to 30 seconds. #260
  • Added support for streaming data in chunks to handle large requests and responses in the ZSshClient class. This allows streaming USS file contents for read and write operations (ReadDatasetRequest, ReadFileRequest, WriteDatasetRequest, WriteFileRequest). #311

z/OS Components

  • golang: zowed now prints a ready message once it can accept input over stdin. #221
  • golang: Reduced startup time for zowed by initializing workers in the background. #237
  • golang: Added verbose option to enable debug logging. #237
  • golang: Added SHA256 checksums to the ready message to allow checks for outdated server. #236
  • c,golang: Added support for streaming USS file contents for read and write operations (zusf_read_from_uss_file_streamed, zusf_write_to_uss_file_streamed). #311
  • c,golang: Added support for streaming data set contents for read and write operations (zds_read_from_dsn_streamed, zds_write_to_dsn_streamed). #326
  • c: Added support for recfm (record format) attribute when listing data sets.
  • c: Fixed issue where data sets were not opened with the right recfm for reading/writing.