{"id":25257242,"url":"https://github.com/zowe/zowe-client-java-sdk","last_synced_at":"2025-10-27T02:31:46.820Z","repository":{"id":44679960,"uuid":"380036761","full_name":"zowe/zowe-client-java-sdk","owner":"zowe","description":"Zowe Client Java SDK","archived":false,"fork":false,"pushed_at":"2024-12-11T02:10:57.000Z","size":12572,"stargazers_count":23,"open_issues_count":1,"forks_count":8,"subscribers_count":12,"default_branch":"main","last_synced_at":"2024-12-11T02:34:32.342Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zowe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-24T19:58:16.000Z","updated_at":"2024-12-11T02:11:01.000Z","dependencies_parsed_at":"2023-10-12T07:35:45.748Z","dependency_job_id":"6468f135-7592-4291-b4b8-5afae9c18ac6","html_url":"https://github.com/zowe/zowe-client-java-sdk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zowe%2Fzowe-client-java-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zowe%2Fzowe-client-java-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zowe%2Fzowe-client-java-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zowe%2Fzowe-client-java-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zowe","download_url":"https://codeload.github.com/zowe/zowe-client-java-sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238423787,"owners_count":19469899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-12T06:38:26.047Z","updated_at":"2025-10-27T02:31:46.815Z","avatar_url":"https://github.com/zowe.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"This program and the accompanying materials are made available under the terms of the Eclipse Public License v2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html\n\nSPDX-License-Identifier: EPL-2.0\n\nCopyright Contributors to the Zowe Project.\n\n# Zowe Java Client SDK\n\n![zowe org_video_outro_gif_accessibility](https://github.com/zowe/zowe-client-java-sdk/assets/7764341/aaa26c45-6fb3-4857-8e6b-80fc85dad4cd)\n  \n![](https://img.shields.io/badge/license-EPL--2.0-blue)\n[![Maven Central](https://img.shields.io/maven-central/v/org.zowe.client.java.sdk/zowe-client-java-sdk.svg?label=Maven%20Central)](https://central.sonatype.com/search?q=org.zowe.client.java.sdk\u0026smo=true)\n[![javadoc](https://javadoc.io/badge2/org.zowe.client.java.sdk/zowe-client-java-sdk/javadoc.svg)](https://javadoc.io/doc/org.zowe.client.java.sdk/zowe-client-java-sdk)\n\nThis project is a subproject of Zowe, focusing on modernizing the mainframe experience. Zowe is a project hosted by the Open Mainframe Project, a Linux Foundation project.\n\nThe Java SDK lets you leverage the underlying z/OSMF REST APIs on a z/OS system to build client applications and scripts that interface with your z/OS instance seamlessly.\n\nFor instance, one API package provides the ability to upload and download z/OS data sets. You can leverage that package to rapidly build a client application that interacts with data sets.\n\nThe Java SDK joins an existing community of other language-specific SDKs. It provides the Java community with similar capabilities based on the NodeJS SDK. \n  \nThis SDK may differ from some others with the JobMonitor class adding prebuilt functionality for automation tasks.  \n  \nIssues worked on documenting the main feature set provided can be viewed within the following MVP issues:  \n[#1](https://github.com/zowe/zowe-client-java-sdk/issues/5) [#2](https://github.com/zowe/zowe-client-java-sdk/issues/219) [#3](https://github.com/zowe/zowe-client-java-sdk/issues/281) [#4](https://github.com/zowe/zowe-client-java-sdk/issues/338)   \n  \nIn addition to the MVP issues noted, see the following release notes for [version 4](https://github.com/zowe/zowe-client-java-sdk/pull/363), [version 5](https://github.com/zowe/zowe-client-java-sdk/issues/414) and [version 5.1.0](https://github.com/zowe/zowe-client-java-sdk/issues/429) of the SDK.   \n    \nPrebuilt API services are located in the following packages/classes:  \n\nzowe.client.sdk.zosconsole.method  \n  \n    ConsoleCmd\n    ConsoleGet\n  \nzowe.client.sdk.zosfiles.dsn.methods  \n  \n    DsnCopy\n    DsnCreate\n    DsnDelete\n    DsnGet\n    DsnList\n    DsnRename\n    DsnWrite\n  \nzowe.client.sdk.zosfiles.uss.methods  \n    \n    UssChangeMode\n    UssChangeOwner\n    UssChangeTag\n    UssCopy\n    UssCreate\n    UssDelete\n    UssExtAttrs\n    UssGet\n    UssGetAcl\n    UssList\n    UssMount\n    UssSetAcl\n    UssWrite\n\nzowe.client.sdk.zosjobs.methods\n  \n    JobCancel\n    JobDelete\n    JobGet\n    JobMonitor\n    JobSubmit\n\nzowe.client.sdk.zoslogs.method  \n  \n    ZosLog  \n\nzowe.client.sdk.zosmfauth.methods  \n  \n    ZosmfLogin\n    ZosmfLogout  \n    ZosmfPassword  \n    \nzowe.client.sdk.zosmfinfo.methods  \n  \n    ZosmfStatus  \n    ZosmfSystems   \n\nzowe.client.sdk.zostso.methods  \n  \n    TsoCmd\n    TsoPing\n    TsoReply\n    TsoSend\n    TsoStop\n\nzowe.client.sdk.zosuss.method  \n  \n    UssCmd   \n          \n## TeamConfig Package  \n  \nThe TeamConfig package provides API methods to retrieve a profile section from Zowe Global Team Configuration with keytar information to help perform connection processing without a hard coding username and password. Keytar represents credentials stored securely on your computer when performing the Zowe Global Initialize [command](https://docs.zowe.org/stable/user-guide/cli-using-initializing-team-configuration/) which prompts you for username and password.   \n  \nTeamConfig class only supports Zowe Global Team Configuration provided by Zowe V2.  \n  \nWith Zowe CLI and Global Team Configuration initialized, you can use TeamConfig API methods to retrieve a profile type which will include the secure username and password information stored in our OS credential store manager.   \n  \nYou can use this information to create a dynamic ZosConnection object to perform zosmf authentication for all the other packages. This avoids the need to hard code values.    \n  \nSee the following package/class:  \n  \nzowe.client.sdk.teamconfig  \n    \n    TeamConfig\n    \nNOTE:  \nWhenever you encounter a JSON parse error for reading the Zowe Team Configuration file, make sure to include double quotes around keys and its values.  \n  \n## Http Rest Processing\n  \nSDK release version 2 uses Unirest 3.x Http functionality.  \n  \nSDK release version 3 and above uses Unirest 4.x, which removes the dependency on Apache Commons and provides token processing for Web TOKEN authentication.   \n   \nUnirest's library provides the ability to retrieve an IBM z/OSMF JSON error document.  \n  \nFor example, the following http GET request will result in an HTTP 500 error:  \n  \n    https://xxxxxxx.xxxxx.net:xxxx/zosmf/restfiles/ds?\n  \nand the JSON error report document body response is:  \n  \n    {\"rc\":4,\"reason\":13,\"category\":1,\"message\":\"query parm dslevel= or volser= must be specified\"} \n\n## Authenticating to z/OSMF\n  \nSince the release of the SDK, the authentication of each REST API call is done with BASIC authentication.\n  \nWith SDK release version 3, Web TOKEN authentication was added.   \n  \nWith project version 4, SSL authentication from a certificate file was added.  \n  \nWith three types of authentication available, the AuthType enum class was introduced to represent each type.    \n  \nThis enum is used to send it to the ZosConnection constructor denoting the type of authentication to perform.  \n\nFor BASIC, the following ZosConnection object is specified to perform BASIC authentication:  \n  \n    ZosConnection connection = ZosConnectionFactory.createBasicConnection(\"host\", \"zosmfPort\", \"user\", \"password\");\n  \nBasic authentication means that the http request contains a BASIC header representing the username and password encrypted.   \n  \nFor web TOKEN, the following ZosConnection object is specified:  \n  \n    ZosConnection connection = ZosConnectionFactory.createTokenConnection(\"host\", \"port\", new Cookie(\"xxx\", \"xxx\")));\n  \nWith the zosmfauth package, ZosmfAuth provides an API (zosmfLogin) to retrieve authentication tokens (a JSON Web and an LTPA TOKEN) on a BASIC authentication request. This package contains an API that can also be used to delete the current store of JSON Web and LPTA tokens.  \n  \nSee the README.MD in the zosmfauth package for code examples on retrieving an initial token and then using it for further requests without needing user and password information.  \n  \nWeb TOKEN support must be enabled on your z/OSMF system. For more information, see Enabling JSON Web TOKEN support in the IBM z/OS Management Facility Configuration Guide.  \n\nSee [README.md](https://github.com/zowe/zowe-client-java-sdk/blob/main/src/main/java/zowe/client/sdk/zosmfauth/README.md) in zosmfauth package for further details.     \n  \nFor SSL, the following ZosConnection object is specified:  \n\n    ZosConnection connection = ZosConnectionFactory.createSslConnection(\"host\", \"port\", \"c:\\file.p12\", \"certpassword\"));\n  \nThe SDK supports .p12 file format that represents a key-store that houses a certificate.  \n  \nIn the example above, for certFilePath specify a path with a file name representing the location and file name of the .p12 file.  \n  \nFor certPassword, specify the paraphrase/password used for the key store.  \n  \nFor a self-signed certificate, you will need to enable inSecure processing by setting the following system property:  \n  \n    zowe.sdk.allow.insecure.connection  \n  \nto true value.  \n      \nSee [README.md](https://github.com/zowe/zowe-client-java-sdk/blob/main/src/main/java/zowe/client/sdk/zosmfauth/README.md) in zosmfauth package for further details.    \n  \n## Requirements  \n    \n    Maven  \n    Compatible with all Java versions 11 and above.\n    z/OSMF installed on your backend z/OS instance.  \n  \n## Code Samples  \n\n[Samples](https://github.com/frankgiordano/zowe-client-java-sdk-examples)    \n   \n## Demo App  \n\n[ZosShell](https://github.com/frankgiordano/ZosShell)\n\n## Examples  \n\n  See the following GITHUB [Zowe-Java-SDK](https://github.com/Zowe-Java-SDK) location for code examples and applications.  \n\nIn the project, you will find code examples located in each package's README.MD file. See:  \n\n  [teamconfig](https://github.com/zowe/zowe-client-java-sdk/blob/main/src/main/java/zowe/client/sdk/teamconfig/README.md)  \n  [zosconsole](https://github.com/zowe/zowe-client-java-sdk/blob/main/src/main/java/zowe/client/sdk/zosconsole/README.md)  \n  [zosfiles-dsn](https://github.com/zowe/zowe-client-java-sdk/blob/main/src/main/java/zowe/client/sdk/zosfiles/dsn/README.md)  \n  [zosfiles-uss](https://github.com/zowe/zowe-client-java-sdk/blob/main/src/main/java/zowe/client/sdk/zosfiles/uss/README.md)  \n  [zosjobs](https://github.com/zowe/zowe-client-java-sdk/blob/main/src/main/java/zowe/client/sdk/zosjobs/README.md)  \n  [zoslogs](https://github.com/zowe/zowe-client-java-sdk/blob/main/src/main/java/zowe/client/sdk/zoslogs/README.md)  \n  [zosmfauth](https://github.com/zowe/zowe-client-java-sdk/blob/main/src/main/java/zowe/client/sdk/zosmfauth/README.md)  \n  [zosmfinfo](https://github.com/zowe/zowe-client-java-sdk/blob/main/src/main/java/zowe/client/sdk/zosmfinfo/README.md)  \n  [zostso](https://github.com/zowe/zowe-client-java-sdk/blob/main/src/main/java/zowe/client/sdk/zostso/README.md)    \n  [zosuss](https://github.com/zowe/zowe-client-java-sdk/blob/main/src/main/java/zowe/client/sdk/zosuss/README.md)  \n      \n## Build  \n\nJava 11 and above is required to compile JAR file. Maven is required to build JAR file.     \n  \nThe following maven command at the root prompt of the project will produce zowe-client-java-sdk.jar in the target directory:\n  \n    mvnw clean package  \n  \n## Logger \n     \nFor logging, the SDK does NOT include SLF4j (Simple Logging Facade for Java) dependency within its FATJAR. \n  \nYou will need to add SLF4j dependency and plug into your SLF4J by implementing a logging framework of your choice for your project. \n    \n## Documentation  \n\nhttps://javadoc.io/doc/org.zowe.client.java.sdk/zowe-client-java-sdk/latest/index.html  \n  \n## Maven Central Publication  \n\nhttps://mvnrepository.com/artifact/org.zowe.client.java.sdk/zowe-client-java-sdk  \n\n## Install Java SDK from an online registry\n\nTo install this library in your project, use a build tool such as Maven, Gradle or Ant. Use the following link to get the necessary artifact:\n\nhttps://mvnrepository.com/artifact/org.zowe.client.java.sdk/zowe-client-java-sdk\n\nFor a Maven project add the SDK as a dependency by updating your `pom.xml` as follows:\n\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.zowe.client.java.sdk\u003c/groupId\u003e\n        \u003cartifactId\u003ezowe-client-java-sdk\u003c/artifactId\u003e\n        \u003cversion\u003e5.1.1\u003c/version\u003e\n    \u003c/dependency\u003e\n\nFor a Gradle project add the SDK as a dependency by updating your `build.gradle` as follows:\n\n    implementation group: 'org.zowe.client.java.sdk', name: 'zowe-client-java-sdk', version: '5.1.1'  \n  \n## Publishing to Maven Central  \n  \nThe following documents the steps taken to publish a new release of this project to maven central:\n  \n- Start the following process on your machine:\n  \n      gpg-agent --daemon\n  \n  \n- Execute the following maven build and deploy command at the project's root directory:\n  \n      mvnw clean deploy -Pci-cd\n  \n  You will be prompted for a passphrase for uploading.\n  \n   \n- Login to the following website:\n  \n      https://central.sonatype.com/\n  \n- Navigate to the Publish section within the website.\n\n    \n- In Publishing Settings, see the Deployments section and click on the Publish button for the release that was uploaded. \n   \nNOTE: For the publishing to work fully, you will need to add a server section in your maven settings.xml file that contains an id of central with username and password values.  \n    \nThe username and password values are generated by maven central repository as a portal token for publishing and specified within the server section of settings.xml.  \n  \nSee https://central.sonatype.org/publish/generate-portal-token/  \n  \nSee the settings.xml example described in the next section.   \n    \n## Maven settings.xml  \n  \nThis project contains maven plugins within the pom.xml. Some of these require the maven2 repository. As such, the settings.xml file for your maven setup needs to have a maven2 repository specified.  \n  \nWithin the project's root directory, a settings_example.xml is available as a template for this project usage within your local development environment.  \n  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzowe%2Fzowe-client-java-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzowe%2Fzowe-client-java-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzowe%2Fzowe-client-java-sdk/lists"}