Skip to content

v0.8.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Aug 10:50
· 91 commits to main since this release
4fb3c1d

CLI Plug-in

  • Added ESM (RACF or equivalent) certificate and key ring management to the zssh system command group over SSH: zssh system keyring create|delete|list|list-rings|count and zssh system cert import|export|delete|show|connect|set-default|trust|rename|refresh. #1079
  • Added --exact-match option to the zssh list data-set command. This option defaults to false for backwards compatibility, but can be set to true to avoid appending .** to the end of data set patterns. #914
  • Fixed attribute columns being displayed when zssh list data-set is run without the --attributes option. #1012

Client SDK

  • Added detection of available disk space on the z/OS Unix deployment directory in the ZSshUtils.installServer method, giving the user the opportunity to cancel deployment if they have less than the recommended amount of available space. #1088
  • Fixed server deploy/setup failing with "SSH setup cancelled" when connecting with a private key that requires a passphrase, even after entering the correct passphrase. #1094
  • Added a certificates client API for managing ESM (RACF or equivalent) key rings and digital certificates, exposing the following functions: createKeyring, deleteKeyring, refreshDigtcert, deleteCertificate, listCertificates, exportCertificate, importCertificate, showCertificate, listRings, countRing, connectCertificate, setDefaultCertificate, trustCertificate, and renameCertificate. #1079
  • Added recognition of Language Environment load failures. CEE3561S and CEE3501S error codes now produce an actionable error naming the required z/OS release and Language Environment APARs, with errorCode: "ELERUNTIME", instead of a generic "Error starting Zowe server." Startup output is now accumulated before it is classified, so a diagnostic split across reads is still recognized. #871
  • Added a verification step to installServer() that runs the installed server binary and reports whether the remote system can load it, so a runtime mismatch surfaces during installation rather than on the next operation. The target system level from the uname -srv command is included in the error details. #871
  • Added exactMatch property to the ListDatasetsRequest type. This option defaults to false for backwards compatibility, but can be set to true to avoid appending .** to the end of data set patterns. #914
  • When a command fails, a structured error payload attached by the server (e.g. the safReturns SAF/ESM codes from certificate commands) is now delivered to SDK consumers via the ImperativeError's causeErrors, instead of being flattened into the error text. #1079

z/OS Components

  • c: Stripped ASA control characters when reading spool files. #114
  • c: Fixed --local-encoding being ignored when reading spool files. The source codepage was never copied to the ZDS struct passed to zds_read, so the conversion always fell back to the default source encoding (UTF-8). #1097
  • c: Fixed an issue where passing numeric values to the encoding or local-encoding arguments would result in an empty string, as their argument definitions did not enable string coercion. Now, values provided to these options are converted to strings to ensure proper codepage conversion. #1095
  • c: Added ESM (RACF or equivalent) certificate and key ring management to the system command group, migrating the keyring-utilities functionality (R_datalib and System SSL) into zowex as two subgroups: system keyring create|delete|list|list-rings|count and system cert import|export|delete|show|connect|set-default|trust|rename|refresh. #1079
  • Breaking: c: Changed the plug-in SDK types ast::ObjMap and plugin::ArgumentMap from std::unordered_map to std::map, and added the ZOWEX_PLUGIN_ABI_VERSION constant with a matching load-time check. Plug-ins must now be rebuilt against the current extend/plugin.hpp and must expand ZOWEX_PLUGIN_DECLARE_ABI() alongside register_plugin(); a plug-in built against an earlier header is rejected at load time with a diagnostic instead of being loaded with mismatched type layouts. #871
  • c: Replaced the string-keyed std::unordered_map/std::unordered_set containers in zjson.hpp and the JSON-RPC server with the ordered std::map/std::set, removing the binary's dependency on the out-of-line libc++ symbol std::__1_e::__hash_memory. That symbol is absent from CRTEQCXE on z/OS systems below the required Language Environment maintenance level, where it caused CEE3561S at load time. JSON object members are now emitted in alphabetical key order rather than hash order; member order was never part of the API contract. #871
  • c: Pinned the build to Open XL C/C++ 2.1, since 2.2 requires z/OS 3.1+ and references a newer libc++ than a z/OS 2.5 system can provide. Added a declared minimum supported z/OS level, ZosMinLevel=zosv2r5 in native/c/toolchain.mk, passed to the compiler as -mzos-target. make runtime-imports (npm run z:imports) reports the LE/libc++ symbols the binary imports, and npm run lint:compat rejects string-keyed hash containers at the source level. #871
  • c: Added --exact-match option to the zowex ds list command. This option defaults to false for backwards compatibility, but can be set to true to avoid appending .** to the end of data set patterns. #914