• Stars
    star
    101
  • Rank 338,166 (Top 7 %)
  • Language
    TypeScript
  • License
    Eclipse Public Li...
  • Created about 6 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Zowe CLI

Zowe CLI

codecov OpenSSF Best Practices

Zowe CLI is a command-line interface that lets you interact with the mainframe in a familiar format. Zowe CLI helps to increase overall productivity, reduce the learning curve for developing mainframe applications, and exploit the ease-of-use of off-platform tools. Zowe CLI lets you use common tools such as Integrated Development Environments (IDEs), shell commands, bash scripts, and build tools for mainframe development. Through its ecosystem of plug-ins, you can automate actions on systems such as IBM Db2, IBM CICS, and more. It provides a set of utilities and services that help developers, DevOps engineers, and more become efficient in supporting and building z/OS applications quickly.

This repository also contains the Zowe Node Client SDK. The SDK lets you leverage the underlying APIs to build applications that interface with the mainframe.


Contents


Documentation

For information about how to install, configure, and use Zowe CLI, see Zowe CLI Quick Start Documentation. For more detailed instructions, see Zowe CLI Documentation, which also includes examples and tutorials for how to contribute to Zowe CLI and develop CLI plug-ins.

Engineering design documentation is contained in the 'docs' directory in this repository. To view the Web Help for all Zowe CLI commands and contributed plug-ins, see the Zowe CLI Web Help. To view all locally accessible commands, run zowe --help-web. For more use cases and tutorials visit Medium.com/zowe.


Contribution Guidelines

The following information is critical to working with the code, running/writing/maintaining automated tests, developing consistent syntax in your plug-in, and ensuring that your plug-in integrates with Zowe CLI properly:

For more information about ... See:
General guidelines that apply to contributing to Zowe CLI and Plug-ins Contribution Guidelines
Conventions and best practices for creating packages and plug-ins for Zowe CLI Package and Plug-in Guidelines
Guidelines for contributing to Zowe SDKs SDK Guidelines
Guidelines for running tests on Zowe CLI Testing Guidelines
Guidelines for running tests on the plug-ins that you build Plug-in Testing Guidelines
Documentation that describes the features of the Imperative CLI Framework About Imperative CLI Framework
Naming CLI commands and developing syntax Command Format Standards
Versioning conventions for Zowe CLI and Plug-ins Versioning Guidelines
Miscellaneous tips for development Development Tips

Tip:


Building Zowe CLI From Source

Zowe CLI requires NPM version 8 and Cargo version 1.72.0 (or newer) to build from source. Before proceeding, check your NPM version with npm --version and if it's older than 8.x, update with npm install -g npm. To check your version of Cargo, run cargo --version. Cargo can be installed using rustup: https://rustup.rs/. To update Cargo, run the rustup update command.

For developers using Linux, the following packages are required to build Zowe CLI from source:

  • Debian/Ubuntu:
    • sudo apt install build-essential libsecret-1-dev
  • Red Hat-based:
    • sudo dnf group install "Development Tools"
    • sudo dnf install libsecret-devel
  • Arch Linux:
    • sudo pacman -S base-devel libsecret

The first time that you download Zowe CLI from the GitHub repository, issue the following command to install the required Zowe CLI dependencies and several development tools:

npm install

To build your code changes, issue the following command:

npm run build

When you update package.json to include new dependencies, or when you pull changes that affect package.json, issue the following command to download the dependencies:

npm update

Tip:

  • When necessary, you can run the install command again to update dependencies changed in package.json.

Installing Zowe CLI From Source

From your copy of this repository, after a build, navigate to the packages/cli directory, then issue the following command to install Zowe CLI from source:

npm install -g

Notes:

  • Depending on how you configured npm on Linux or Mac, you might need to prefix the npm install -g command or the npm uninstall -g command with sudo to let npm have write access to the installation directory.
  • On Windows, the npm install -g command might fail several times due to an EPERM error. This appears to be a bug that npm documented in their GitHub issues. This behaviour does not appear to be specific to installing the Zowe CLI package. Unfortunately, the only solution that we know of is to issue the npm cache clean command and the npm install -g command repeatedly until it works.

Uninstalling Zowe CLI

From your local copy of this repository, issue the following command to uninstall Zowe CLI:

npm uninstall --global @zowe/cli

Configuring Zowe CLI

Zowe CLI configuration is made up of different profiles. The profiles contain the information that Zowe CLI needs to communicate with the mainframe system. For example, credentials and z/OSMF host name. If you try to use Zowe CLI functionality and you get an error message that Zowe CLI failed to load any profiles, see the zowe profiles create --help command for the group of commands that you are trying to use (if any) to initialize your configuration.

The most fundamental Zowe CLI profile is a zosmf profile. Issue the following command to understand how to create a zosmf profile in Zowe CLI:

zowe profiles create zosmf-profile --help

After you create your profile, you can confirm that the properties of your profile can connect to and communicate with your mainframe system successfully by issuing the following command:

zowe zosmf check status

For detailed information about creating service profiles, creating base profiles, or integrating with Zowe API ML, see Using Zowe CLI.

Tip:

  • When you confirm that your profile connects to and communicates with your mainframe system successfully, you can issue the same command at any time to verify the availability and status of the z/OSMF subsystem on your mainframe.

Zowe Node Client SDK

The Zowe Node Client SDK consists of APIs that enable you to build client applications that interface with the mainframe. Use the APIs to build your own client applications or automation scripts, independent of Zowe CLI.

For information about downloading and getting started with the SDK, see the Zowe Docs. To view the Zowe Node.js SDK doc, see Zowe SDK Docs.

Tip:

  • Alternatively, you can import Zowe CLI into your project to call the Node APIs. However, importing all of Zowe CLI will increase the size of your project. For example, use the following statement to import packages from Zowe CLI:

    import { <interfaceName> } from @zowe/cli
    

    Where <interfaceName> is the name of an interface that you populate (i.e. IIssueParms) or a function that submits requests (i.e IssueCommand).


Example API Usage

For example usage syntax, see the readme for each API package in this repository:

  • Provisioning: Provision middleware and resources such as IBM CICS, IBM Db2, IBM MQ, and more.
  • z/OS Console: Perform z/OS console operations.
  • z/OS Data Sets: Work with data sets on z/OS.
  • z/OS Jobs: Work with batch jobs on z/OS.
  • z/OS Logs: Interact with logs on z/OS.
  • z/OS TSO: Interact with TSO/E adress spaces on z/OS.
  • z/OS USS: Work with UNIX system services (USS) files on z/OS.
  • z/OS Workflows: Create and manage z/OSMF workflows on z/OS.
  • z/OSMF: Return data about z/OSMF, such as connection status or a list of available systems.

Running System Tests

In addition to Node.js, you must have a means to execute .sh (bash) scripts, which are required for running integration tests. On Windows, you can install "Git Bash" (bundled with the standard Git installation - check "Use Git and Unix Tools from Windows Command Prompt" installation option).

After downloading/installing the prerequisites, ensure that you can execute the following commands and receive success responses:

1. `node --version`
2. `npm --version`
3. On Windows: `where sh`

To run Zowe CLI system tests, you need a configured properties file with proper system information present.

A dummy properties file is present in the __tests__/__resources__/properties folder, default_properties.yaml. Using this file as a template, you should create a custom_properties.yaml file within the same directory. Git is configured to ignore all properties files in the properties folder, except for the default_properties.yaml file. If the custom_properties.yaml file cannot be found or loaded, an error with relevant details will be thrown when attempting to run tests.

You can then run the system tests by issuing the following command:

npm run test:system

IMPORTANT! Do not commit configured properties files because they contain security principles and other critical information.


Frequently Asked Questions

How can I install Zowe CLI as a root user on Mac/Linux?

  • You can install the CLI as root so that all users can access the CLI without installing it individually on their user account. As the root user on Mac/Linux, issue the following command:

    npm i -g @zowe/cli@latest --ignore-scripts
    

    WARNING! If you use this method, plug-ins that are installed as root can only be accessed as root. Users must install plug-ins on their user account or share all profiles/plugins/settings/logs with root. You also might encounter npm errors if you install as root. We recommend that Linux administrators implement a user/group environment where permissions can be more carefully controlled.

What is the difference between V1 and V2?

  • V2 uses team profiles and deprecates the Secure Credential Store (SCS) plug-in.

    Connection details can be managed efficiently within one file, promoting a global configuration that can be shared across teams and mainframe services. For more information on how to use profiles, visit Zowe Docs.

    Secure credential encryption is included in the core CLI.


Don't see what you're looking for? Browse questions from the community or ask your own in the Q&A section of our repo.

Project Structure and Governance

Zowe CLI is a component of the Zowe Open Mainframe Project, part of the Linux Foundation.

To learn more about how Zowe is structured and governed, see the Technical Steering Committee Structure and Governance documentation.

More Repositories

1

zowe-explorer-vscode

Visual Studio Code Plug-in for Zowe, which lets users interact with z/OS data sets on a remote mainframe instance. Powered by Zowe CLI.
TypeScript
156
star
2

sample-node-api

A sample node js api for finding cars and accounts for a dealership
JavaScript
85
star
3

docs-site

Documentation for the Zowe project
JavaScript
70
star
4

community

Zowe Community - Sub-projects, Squads, Contribution Guidelines, Meeting Minutes, and more
52
star
5

jenkins-library

Jenkins Pipeline Library
Groovy
51
star
6

api-layer

The API Mediation Layer provides a single point of access for mainframe service REST APIs.
Java
49
star
7

zlux

The top-level superproject for zLUX. zLUX includes the Zowe Desktop framework in addition to several built-in apps and an example server implementation.
38
star
8

zowe-client-python-sdk

Python
36
star
9

sample-spring-boot-api-service

Zowe REST API service SDK and sample API service that integrates with Zowe API Mediation Layer
Java
27
star
10

zowe-install-packaging

Packaging repository for the Zowe install scripts and files
Shell
26
star
11

imperative

Imperative CLI Framework
TypeScript
25
star
12

zowe-client-java-sdk

Zowe Client Java SDK
Java
23
star
13

zebra

ZEBRA is an open-source incubator project for Zowe. It is a data parsing framework that allows quick and easy access to z/OS performance metrics.
JavaScript
22
star
14

tn3270-ng2

A TN3270 emulator written in Angular and Javascript
TypeScript
19
star
15

zowe-cli-sample-scripts

Demo scripts for the Zowe CLI
JavaScript
18
star
16

zowe-cli-ftp-plugin

Zowe CLI FTP Plugin
TypeScript
16
star
17

vscode-extension-for-cics

Migrated to zowe/cics-for-zowe-client.
TypeScript
15
star
18

zac

Zowe Leadership Committee collaboration
HTML
13
star
19

zowe.github.io

Zowe.org website development
HTML
13
star
20

zss

Zowe System Services Server for enabling low-level microservices
C
11
star
21

zlux-app-server

A collection of build, deploy, and run scripts & configuration files for running a simple zLUX server.
JavaScript
11
star
22

zowe-common-c

C Libraries for various OS & Networking needs
C
10
star
23

zowe-cli-sample-plugin

Plugin Tutorial for Zowe CLI
TypeScript
9
star
24

zowe-explorer-intellij

IntelliJ Zowe Plug-in that provides possibility to interact with z/OS features. Has Zowe Kotlin SDK as it's core to interact
Kotlin
9
star
25

zowe-cli-db2-plugin

DB2 Plugin for the Zowe CLI
TypeScript
8
star
26

ims-operations-api

The IMS Operations API is a service that provides REST APIs to manage the IMS resources required for IMS application deployment. The REST APIs invoke the IMS commands that are required to manage and query the IMS application resources.
Java
8
star
27

zowe-cli-cics-plugin

Migrated to zowe/cics-for-zowe-client.
TypeScript
7
star
28

zowe-on-the-go

Zowe on the go: Mobile Application lets you interact with your Zowe instance running on the mainframe.
TypeScript
7
star
29

zlux-app-manager

zLUX Framework components for management of zLUX Apps. Used for window managers or web layouts.
TypeScript
7
star
30

zowe-cli-scs-plugin

The secure credential store plugin for Zowe CLI, leveraging keytar and the OS keychain to securely access and store sensitive user credentials normally stored in CLI profiles.
TypeScript
7
star
31

zowe-cli-tasks-plugin

TypeScript
6
star
32

data-sets

Repo for the springboot based data set APIs
Java
6
star
33

zlux-server-framework

Contains essential zLUX proxy server components including SSO and service catalogs
JavaScript
6
star
34

zowe-client-swift-sdk

Zowe Client Swift SDK
Swift
5
star
35

workshop-user-browser-app

Starter files & a tutorial README to get started on building a simple Zowe App
TypeScript
5
star
36

zowe-cli-zos-make-plugin

Zowe CLI z/OS Make Plugin
TypeScript
5
star
37

zlux-editor

A simple editor in a browser
TypeScript
5
star
38

perf-timing

Performance tests
TypeScript
5
star
39

jenkins-slave-images

Dockerfile
4
star
40

project-metrics

JavaScript
4
star
41

explorer-api-common

common repo for explorer api projects
Java
4
star
42

zowe-chat

Zowe Chat Ops
TypeScript
4
star
43

cpu_usage_sample

An example of a Spring Boot application
Java
3
star
44

zowe-install-test

Perform Zowe installation and smoke test
JavaScript
3
star
45

zowe-client-kotlin-sdk

Kotlin
3
star
46

zowe-smpe-packaging

Repo to hold the scripts and pipeline required to convert the pax build into an SMP/E package
Shell
3
star
47

zowe-cli-web-help-generator

This repository enables conformant plug-ins to contribute their web help to our Zowe Docs Site.
TypeScript
3
star
48

zowe-cli-standalone-package

Jenkins pipeline which generates a Zowe CLI ZIP containing the base CLI and Zowe plugins.
JavaScript
3
star
49

zowe-internal-dockerfiles

This repository contains Docker files used by Zowe.
Shell
2
star
50

sample-trial-app

JavaScript
2
star
51

spring-boot-jzos-sample

An example of a Spring Boot sample to be statically linked into the API Gateway
Java
2
star
52

zowe-zdevops-jenkins-plugin

Kotlin
2
star
53

keyring-utilities

Various key ring utilities that interact with z/OS RACF key rings using R_datalib API
C
2
star
54

vt-ng2

A simple USS/Unix/VT terminal emulator written in Angular and Javascript
TypeScript
2
star
55

zebra-desktop

Zowe Desktop App Zebra integration
JavaScript
2
star
56

sample-angular-app

TypeScript
2
star
57

jobs

Repo for the jobs api controller and code
Java
2
star
58

zlux-build

Repository for common build scripts among various superprojects
Shell
2
star
59

zowe-client-sample-apps

TypeScript
2
star
60

zowe-dependency-scan-pipeline

Zowe Organizational Dependency Scans - Attributions, Vulnerability Reports
TypeScript
2
star
61

zowe-cli-mq-plugin

Zowe CLI plug-in for MQ that enables users to issue MQSC commands to a queue manager.
TypeScript
2
star
62

zowe-cli-version-controller

Main controller and maintainer of the versioning scheme
Groovy
2
star
63

explorer-server

Explorer Server component contribution
Java
1
star
64

zlux-shared

zLUX framework components that are utilized both by the server and in the web browser
TypeScript
1
star
65

zowe-jcl-intellij

Plug-in for supporting JCL features in Intellij IDEAâ„¢
Lex
1
star
66

zowe-explorer-ftp-extension

Adds zFTP support to Zowe Explorer demonstrating how to extend the Zowe Explorer using its extensibility API.
TypeScript
1
star
67

explorer-injector

Shell
1
star
68

zowe-container-sample

Sample for deploying Zowe components using multiple containers in Docker Compose and Kubernetes based environments
Shell
1
star
69

zowe-pli-language-support

1
star
70

zen

TypeScript
1
star
71

explorer-ip

TypeScript
1
star
72

zowe-sample-dockerfiles

Dockerfile
1
star
73

cics-for-zowe-client

Monorepo for all CICS related APIs and Apps built by Zowe Clients
TypeScript
1
star
74

explorer-jes

JavaScript
1
star
75

jenkins-library-fvt-gradle

A gradle example project for testing zowe/jenkins-library
Shell
1
star
76

zosmf-auth

Auth handler for App server to connect to z/OSMF through standard z/OSMF login
JavaScript
1
star
77

zss-auth

Auth handler for App server to connect to ZSS through standard ZSS login
JavaScript
1
star
78

common-java

C
1
star
79

zowe-promote-publish

Zowe Pipeline to Promote and Publish a PAX Candidate
Groovy
1
star
80

zlux-platform

TypeScript
1
star
81

jupyter-app

A Zowe App for displaying Jupyter
JavaScript
1
star
82

zowe-install-packaging-tools

Utility tools will be used in Zowe build
JavaScript
1
star
83

zowe-bot

Combot Framework for use by Zowe-Chat project
TypeScript
1
star
84

workflow-wizard

Wofklow Wizard Incubator
C++
1
star