Coder Social home page Coder Social logo

zowe / cics-for-zowe-client Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 3.0 126.23 MB

Monorepo for all CICS related APIs and Apps built by Zowe Clients

Home Page: https://www.zowe.org/

License: Eclipse Public License 2.0

JavaScript 0.98% Shell 1.75% TypeScript 97.27%
cics mainframe zowe zowe-cli zowe-explorer zowe-sdk

cics-for-zowe-client's Introduction

IBM CICS for Zowe Clients

This repository contains all zowe apps for the IBM CICS product

cics-for-zowe-client's People

Contributors

awharn avatar t1m0thyj avatar zfernand0 avatar zowe-robot avatar

Stargazers

 avatar

Watchers

 avatar  avatar

cics-for-zowe-client's Issues

Add more resource types

Discuss with CICS COBOL developers and other users which resources may be most beneficial for their use case in addition to the current 'Programs', 'Local Transactions' and 'Local Files' and implement them.

Tasks

  1. enhancement
  2. enhancement priority-low
    AdarshdeepCheema
  3. enhancement priority-low
    Rajpreetgill
  4. enhancement
    Rajpreetgill
  5. enhancement priority-low
  6. Stale enhancement priority-low
  7. enhancement priority-medium

Creating a CMCI session via API

I want to make use of the @zowe/cics API in a new plug-in, I'm struggling to do so as the CicsSession class isn't part of the exported API. CicsSession is what's used to create the session object that is then referenced in the API functions, without it the API isn't very accessible.

I have been able to copy the logic from CicsSession.createBasicCicsSession() into my own code, it just seems an odd requirement to have to do that. Perhaps the logic for creating the session instance could be moved into a utility class that is part of the API? That would make it consistent with the equivalent code in the zosmf API.

On a related note, there may be a bug in CicsSession.createBasicCicsSession(); I found the following line of code:

password: profile.pass,

only worked in my copy of the code when I changed it to:

password: profile.password,

I imagine this is related to issue zowe/zowe-cli-cics-plugin#13.

Update README GIFs

Low Priority: The majority of GIFs in the README.md file are outdated in terms of the icons that are used for resources. Update them with newer screen recordings.

Ensure that the expanded all tree is kept at the loaded number of record count after applying the disable command

If we have the following 4 programs loaded:
image
and we click on "View 4 more..." to obtain 8 program resources in total now:
image
If a disable command is applied on one of the subsequently loaded programs, the state of the program resource goes back to showing 4 rather than keeping 8 resources in the viewing stage and the user would have to click "View 4 more..." to see the disabled program.
image

image

Document that the --regionName can also be set to be a CICSSystemGroup value

When a CICS profile is created for a CICSPlex region, the --cicsPlex value is set to the plex name and the --regionName set to one of the plex's regions, allowing a query like
zowe cics getResource CICSProgram --cicsPlex PLEX1 --regionName REGION1 to show all programs in REGION1 in the plex. The REST API constructed is a get request CICSSystemManagement/CICSProgram/PLEX1/REGION1.
Customers with plexes group regions together in system groups, using the table CICSSystemGroup. This can be used as the last segment of the URL, so if there is a system group AORS or FORS or ALLGRP (the name is up to the user to define), then a valid query is CICSSystemManagement/CICSProgram/PLEX1/AORS where the system group can be used in place of the regionName. In the CMCI documentation this is known as scope, that can be either a region or a system group.

Doing some tests it's possible to specify a system group in the --regionName attribute.

This issue is to change the imperative documentation so that the description for --regionName lets users know that it can be a region or a system group.

Remove unnecessary tree nodes

If SMSS system is in use, there is an unneeded tree with the Region Applid.
Screenshot 2021-08-04 at 10 24 37

If the system is an SMSS system, append the region applid to the profile node label and show programs, transactions and localfiles directly underneath.

Support extensibility

The Zowe Explorer for IBM CICS extension should support other plugins to access useful properties of CICS resources and extend its capabilities.

It should provide an API for other VS Code extension to contribute such implementations.

Allow --cicsPlex and --cicsRegion to be optional when creating a profile

When a CICS profile is created you need to specify a --region-name (if it's an SMSS managed region) and also a --cicsPlex if it's part of a plex

These can be queried, which means that it's possible to just connect to host:port and then return the scope/region for SMSS and also the CICSPlexnames if the plex isn't specified.

Feature request

Allow an SMSS connection to not have to specify the --region-name
Allow a CICS Plex connection likewise to have the plex name as optional. Also add the ability to get the plexes, e.g. zowe cics get CICSPlexes

Also, when you are connected to plex there is no reason to set a --region-name scope as you can retrieve all of the regions for a plex.

zowe cics get resource CICSCICSplexList

This should work, however it fails because it insists that a regionname is added which is actually invalid

Error messages inconsistent with ZE error messages

Use error message structure provided through the ZE APIs for CICS extension error message.

Snippet from FTP extension which uses the desired structure:

ZoweVsCodeExtension.showVsCodeMessage(
            "Zowe Explorer was modified for FTP support.",
            MessageSeverityEnum.INFO,
            ZoweLogger
        );

Show both 'Regions' and 'Managed regions' tables for Regions

Currently, when right-clicking 'Show Attributes' on a Region, the data is retrieved from a CICS 'Regions' table if the region is not part of a CICS Plex, whereas regions in a plex hit the 'Managed Regions' table.

Users may want to see attributes from the 'Regions' table e.g. Max tasks as well as attributes from 'Managed Region' table.

Idea 1

  • Have a separate menu action for viewing regions and managed regions attributes

Idea 2

  • Combine both managed region and regions table attributes into 'Show Atrributes' so users can search for all attributes in one place (ideal)
  • May lead to complications in the future when making the attributes editable

When a 401 response is received let the user know their credentials are invalid

** Problem **
A User was trying to connect and had their password wrong, but didn't get any visual feedback so it was revoked after a few attempts and they needed to get it reset

** Solution **
Show the 401 error message (which the rNext Zowe Explorer has) but also deal with 401 specially to let the user know it's because authentication failed with bad credentials.
It could be good also to have an "Open Profile" button against the error message to allow the user to quickly open their profile and remedy the password.
With TSO login it's possible to distinguish between bad user ID and bad password, however for the 401 response from CICS it may not be possible to separate the two conditions, so the error message should mention Invalid credentials (wrong userID or password)

Allow changing of maxtask on region

Currently the tree shows ManagedRegion. MAXTASK is an attribute on the CICS region table however.

Possible Design
Have "Show Managed Attributes" and also "Show Region Attributes" to allow opening of the attributes page for each of the base tables.

API expansion: Auto-generated code based on Specs/Schemas

Hi, I'm the lead developer of CICS Explorer at IBM, and I wanted to test the water to see if you would welcome contributions to expand the API covered by the CIC CLI plugin.

We use a lot of code generation technology in CICS Explorer to generate a Java model of CPSM's API. The code generator operates on a meta-model of CPSM's API, something like, but definitely not, an OpenAPI spec, I guess. I've toyed around with adapting this code generator in the past to generate TypeScript. I was taking a look at your CLI plugin, and I figured it'd probably be possible to generate support for more resource types and more actions. I guess this could potentially be all resource types and actions, though some will be more complicated than others!

Let me know if you're interested. This definitely doesn't constitute a promise, but we could at least do a little investigation and see how feasible it would be. Thanks!

Allow the user to customise which resources they want to see via Settings

With the addition of more resources, users should be able to choose which resources they see in their CICS view via Settings (UI).

Proposed UI: Users open Settings (UI) and then can select/unselect checkboxes to choose which resources to display. They should be able to then apply these changes by refreshing the window.

Changes required:

  1. Update package.json to add these checkboxes
  2. Add resource children to regions container based on which checkboxes are selected (remember to do the same for the 'All' trees!)
  3. Filtering on a Regions container currently shows options for all the resources. This should be changed so that the options shown depend on which resource checkboxes are selected.

Allow resource filtering by DEFINESOURCE to let users narrow down on program resources and exclude/internal resources

Currently there are settings that use the name to try and build up an exclusion NOT list of resources so that when a customer opens their programs/local files/transactions they don't see the DFH*, CE*, ... ones and only see the ones that represent that application resources in the region.

Rather than using name, it may be better to use DEFINESOURCE. If by default we exclude SYSTEM and DFH* that looks as though it is more effective that using name.

We should allow a user to extend the list to include vendor DEFINESOURCE values as well.
We could model the UI based on how VS Code allows users to add filters to restrict the files they see, where values are entered and combined together, rather than have a raw CRITERIA value (which makes it more error prone as a mistake in the field value would cause a bad request to be made)

Command palette actions require a tree node to be selected

A tree node should not need to be selected for a command palette action to work. If no node is selected, prompt the user to select a profile, then allow them to choose the type and then the name of the resource to perform the command on.

e.g. After a command is chosen from command palette:

  1. Select profile prompt
  • 3b
  • 2c
  • ...
  1. Select resource prompt
  • Program
  • local Transaction
  • Local File
  1. Type in name of resource prompt

Navigate from CICS region to the CEEMSG log

For developers who use the DISPLAY statement for debugging programs, this ends up being written to the CEEMSG JES file for the CICS job.

The request is to provide a point and shoot solution to go from a CICS region to open the CEEMSG file.

Issues to solve:

  • How to know the right z/OSMF, FTP, RSE (i.e. base profile) is associated with the CICS profile.
  • Existing analogous things are submit job and navigate to job, however this just goes from tree view to tree view. For CICS it may be possible to remove the need for a user to even open the JES view and just go directly to open the CEEMSG file.

ruc.dk

Provide way to see definitions (such as Db2 Tran Def and URI Map Def)

Users want to do a NewCopy on definitions in a CSD and then install them into the regions managed by the CSD

Proposed Idea

Show CSDs beneath a connection. In a plex connect to every region's LOCALFILE table to work out its CSD VSAM file name and from this have a map of which CSD a region is using.
From this show the CSDs, and allow the definitions to be shown. ? How do we know which region to connect through ?
For install can we allow a single definition to be installed across all of the regions that the CSD manages ?

Investigate Favorites

Investigate having favorites for CICS resources similar to the way Zowe Explorer does Data Sets/USS/JES where grouped resources across connections can be retrieved and actioned on

Applying region filter clears resource filter

Applying a resource filter, then applying a region filter clears the original resource filter.

Possible fix: Store the resource filter on the plex so that when a region filter is applied, the resource filter can be reapplied on the filtered regions.

Add funnel icon to filtered resources

Visual enhancement - Consider updating the current folder icons in the CICS view to have a funnel icon next to them after a filter is applied, the same as how Zowe Explorer does it.

image

VSCode - cannot connect to CICS

Have set up the CICS plugin in VScode, defined connection to a CICS WUI server, but it is not able to connect, I get an icon like red "no entry" sign

I can connect to the CICS WUI all ok from CICS SM Explorer in zOS Explorer on the same PC, so I know I have the correct settings to use to connect

Target CICS is V6.1 on zOS 2.5

VSCode is latest download as I set this up all new in last few days

Not using SSL/TLS to connect

No msgs in CICS or zOS syslog

Any advice on how to find out why cannot connect from VSCode ?

Resource label doesn't update on same resource across multiple systems

If two systems are expanded and a command that updates the resource label, e.g. new copy, is fired on a resource that's shared between both systems, only the currently selected resource label updates. The user will need to collapse and re-expand the parent node of the element in the other system to view the change.

The updating of both profile resources should be done automatically.

Support defining the cics resource like file,library etc.

Currently the cics zowe cli only support defining the program and transaction, however, it would be helpful to provide the support of managing the other cics resources like file, library etc.

This would be helpful while using the cics zowe cli during the DevOps.

Use the icon for the resource type in the Attributes editor

Individual resources (Program, File, Transaction) have particular icons used in the tree
It'd be good to use these icons in the attributes editor so they appear at the top of the editor and also are visible in the list of open editors when a user does a Ctrl+P

--region-name incorrectly documented

Documentation says:

--region-name | --rn (string)

The CICS region name from which to get the resources

However, the --region-name is actually a CICSPlex scope when using a CICSPlex. This is actually a good thing but should be documented to allow for newcopy across a CICSPlex.

Error running command cics-extension-for-zowe.addSession: command 'cics-extension-for-zowe.addSession' not found. This is likely caused by the extension that contributes cics-extension-for-zowe.addSession.

I have installed the extension, I have my profile for CICS created and it doesn't show up and it give me this error when I try to add.

Error running command cics-extension-for-zowe.addSession: command 'cics-extension-for-zowe.addSession' not found. This is likely caused by the extension that contributes cics-extension-for-zowe.addSession.

Define a CICS BUNDLE

Create a new Zowe CLI command to define a CICS BUNDLE resource (zowe cics define bundle).

The CICS bundle deployment API works really well with gradle to easily develop and deploy Java applications to CICS, however it requires the bundle definition to exist already. In sandbox environments it would be really useful to have a straightforward way to create the bundle instead of using resource builder and DFHCSDUP, or the other more traditional alternatives, and the zowe CLI would be a great option.

Bundle extension with webpack

Like Zowe Explorer and the FTP extension ๐Ÿ™‚ Some advantages of webpack are that it makes the VSIX install and launch faster.

Provide the ability to view Library datasets (in external to CICS view)

Show Library resources in CICS view

@FALLAI-Denis

We want to use LIBRARY resources in test environments to activate on-demand versions of programs in development:

the CICS test environment works with loadlibs declared in DFHRPL (they could also be declared by LIBRARY resources)
the CICS test environment is permanent and shared by all project teams
each member of a project team compiles (User Build) in a loadlib which is dedicated to the project, (the Db2 objects are common, and the Db2 PLAN contains all the packages, those of the programs in DFHRPL and those of the programs in loadlibs managed in LIBRARY, by playing on the VERSION parameter of Db2 precompilation)
to perform a test, the project team activates its LIBRARY, its programs therefore become active (with a PHASE IN)
at the end of the test, the project team deactivates its LIBRARY, it is the programs in DFHRPL which become active again (with a PHASE IN)
This is a solution that we are currently implementing as part of the switch to CI/CD mode on the mainframe.
This addresses the need to test User Builds triggered from a feature or hotfix branch in a Git workflow (Gitflow).

This allows us to save on the number of CICS test environments, while waiting for a solution to virtualize these environments, (probably Wazi Sandbox).

So we need a way to easily ENAble and DISable a LIBRARY resource, or query the status of a LIBRARY resource.

We also need to list the programs contained in a LIBRARY resource (which can consist of several loadlibs) to trigger the PHASE INs.

The declaration of the LIBRARY resource is made in an automated project initialization process, and its deletion is subordinated to the end of life action of the project.

Add support for LIBRARY ressource

We would like Zowe CLI CICS support the LIBRARY resource :

  • define
  • alter
  • install
  • delete
  • add-to-list
  • remove-from-list
  • get
  • enable
  • disable

We use LIBRARY to dynamically install new programs without altering loadlib defined by DFHRPL.

LIBRARY is defined for Application-Version, created at start of project, temporary enabled for a test, then disabled et end of the test, deleted at end of project.

Note: no alter group ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.