diff --git a/.github/pr-comments/for-community.md b/.github/pr-comments/for-community.md
new file mode 100644
index 0000000000..b449c7433c
--- /dev/null
+++ b/.github/pr-comments/for-community.md
@@ -0,0 +1,13 @@
+:smiley_cat: Thank you for creating this PR!
+
+Certain labels are needed to open a pull request in the `docs-site` repo, but it looks like you may not be able to add labels. That's because you either do not have permissions or you are using a fork in your PR. To publish your content to [Zowe Docs](https://docs.zowe.org/), follow these steps.
+
+- [ ] Use comments to add labels to your pull request. Enter the `/labels` command in a comment to add the required `review`, `area`, and `release` label types.
+ - Example: Enter `/labels doc cli V2` to add the `review: doc`, `area: cli`, and `version: V2` labels to your PR.
+ - The `review` label indicates the kind of review your content requires. The `area` label indicates the content topic area. The `release` labels tells us the major release aligned with your content.
+ - See the [docs-site labels](https://github.com/zowe/docs-site/issues/labels) to see the labels are available for use.
+ - To remove a label, use the minus sign: `/labels -V2`
+- [ ] Select the `master` branch if your PR updates content that is on the **live site**. Select `docs-staging` if your PR updates content for a future release. Use the `v3-doc-branch` for Zowe V3 content.
+- [ ] Notify the Doc Squad about this PR. If you don't know whom should review your content, message the [#zowe-doc](https://openmainframeproject.slack.com/archives/CC961JYMQ) Slack channel. If you know which Doc Squad writer should approve your content, add that person as a reviewer.
+
+**Need help?** Contact the Doc Squad in the [#zowe-doc](https://openmainframeproject.slack.com/archives/CC961JYMQ) Slack channel.
diff --git a/.github/pr-comments/for-labeller.md b/.github/pr-comments/for-labeller.md
new file mode 100644
index 0000000000..34a27078a8
--- /dev/null
+++ b/.github/pr-comments/for-labeller.md
@@ -0,0 +1,10 @@
+:smiley_cat: Thank you for creating this PR! To publish your content to [Zowe Docs](https://docs.zowe.org/), follow these required steps.
+
+- [ ] Add the label `review: doc`.
+- [ ] Identify your content topic with a label. (Examples: `area: apiml`, `area: cli`, `area: install and config`, etc.)
+- [ ] Specify the major Zowe release(s) for your content. (Examples: `release: V1`, `release: V2`, `release: V3`)
+ - [ ] If adding content that needs to be removed from V3 documentation, add the `V3 N/A` tag.
+- [ ] Select the `master` branch if your PR updates content that is on the **live site**. Select `docs-staging` if your PR updates content for a future release.
+- [ ] Notify the Doc Squad about this PR. If you don't know whom should review your content, message the [#zowe-doc](https://openmainframeproject.slack.com/archives/CC961JYMQ) Slack channel. If you know which Doc Squad writer should approve your content, add that person as a reviewer.
+
+**Need help?** Contact the Doc Squad in the [#zowe-doc](https://openmainframeproject.slack.com/archives/CC961JYMQ) Slack channel.
diff --git a/.github/pr-comments/for-writer.md b/.github/pr-comments/for-writer.md
new file mode 100644
index 0000000000..85f21afaa0
--- /dev/null
+++ b/.github/pr-comments/for-writer.md
@@ -0,0 +1,10 @@
+:smiley_cat: Thank you for creating this PR! To publish your content to [Zowe Docs](https://docs.zowe.org/), follow these steps.
+
+- [ ] Add the label `review: sme` if an SME needs to check your content.
+- [ ] Identify your content topic with a label. (Examples: `area: apiml`, `area: cli`, `area: install and config`, etc.)
+- [ ] Specify the major Zowe release(s) for your content. (Examples: `release: V1`, `release: V2`, `release: V3`)
+ - [ ] If adding content that needs to be removed from V3 documentation, add the `V3 N/A` tag.
+- [ ] Link any [Doc Issues](https://github.com/zowe/docs-site/issues) related to this PR.
+- [ ] Fix broken links found in your content areas.
+- [ ] Notify the SME to review this PR (if applicable).
+- [ ] Merge to the `master` branch if your PR updates content that is on the live site. Merge to `docs-staging` if your PR updates content for a future release.
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index 209c8a8bf4..607f900923 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -1,12 +1,5 @@
-### Your checklist for this pull request
-🚨Please review the [guidelines for contributing](../docs/contribute/contributing.md) to this repository.
+Describe your pull request here:
-- [ ] If the changes in this PR is part of the next future release, make this pull request against the **docs-staging** branch which will be published at the next release boundary. If the changes in this PR are part of the current release, use the default base branch, **master**. For more information about branches, see https://github.com/zowe/docs-site/tree/master#understanding-the-doc-branches.
-
-- [ ] If this PR relates to GitHub issues in `docs-site` or other repositories, please list in Description, prefixed with **close**, **fix** or **resolve** keywords.
-
-### Description (including links to related git issues)
-Please describe your pull request.
-
-:heart:Thank you!
+List the file(s) included in this PR:
+After creating the PR, follow the instructions in the comments.
diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml
index 6f7b47afec..062a261979 100644
--- a/.github/workflows/link-checker.yml
+++ b/.github/workflows/link-checker.yml
@@ -35,5 +35,5 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
- args: "--accept 401,429 --cache --max-cache-age 1d --max-concurrency 64 --no-progress --verbose 'docs/**/*.md'"
+ args: "--accept 401,403,429 --cache --max-cache-age 1d --max-concurrency 64 --no-progress --verbose 'docs/**/*.md'"
fail: true
diff --git a/.github/workflows/pr-comment-trigger.yml b/.github/workflows/pr-comment-trigger.yml
new file mode 100644
index 0000000000..cd925573bc
--- /dev/null
+++ b/.github/workflows/pr-comment-trigger.yml
@@ -0,0 +1,80 @@
+name: PR Comment Trigger
+
+on:
+ issue_comment:
+ types:
+ - created
+
+jobs:
+ pr-comment:
+ runs-on: ubuntu-latest
+ if: ${{ github.event.issue.pull_request && github.event.comment.user.login == github.event.issue.user.login }}
+
+ steps:
+ - name: Execute script if PR author commented
+ uses: actions/github-script@v6
+ with:
+ github-token: ${{ secrets.ZOWE_ROBOT_TOKEN }}
+ script: |
+ console.log("PR URL:", context.payload.issue.pull_request.url);
+ console.log("PR author:", context.payload.issue.user.login);
+ console.log("Comment author:", context.payload.comment.user.login);
+ const body = context.payload.comment.body;
+ if (body.startsWith("/labels ")) {
+ console.log("Comment body:", body);
+ const repoLabels = (await github.rest.issues.listLabelsForRepo(context.repo)).data.map((label) => label.name);
+ const labelMapping = {};
+ for (const label of repoLabels) {
+ if (label.includes(": ")) {
+ console.log("Found repo label:", label);
+ labelMapping[label.replace(" ", "")] = label;
+ labelMapping[label.slice(label.indexOf(":") + 2)] = label;
+ }
+ }
+ const labelsCurrent = (await github.rest.issues.listLabelsOnIssue({ ...context.repo, issue_number: context.payload.issue.number })).data.map((label) => label.name);
+ console.log("PR labels:", labelsCurrent.join(", "));
+ const cmdArgs = body.split(" ").slice(1);
+ const labelsToAdd = cmdArgs.filter((arg) => !arg.startsWith("-")).map((arg) => arg.startsWith("+") ? arg.slice(1) : arg);
+ console.log("Labels to add:", labelsToAdd.join(", "));
+ const labelsToRemove = cmdArgs.filter((arg) => arg.startsWith("-")).map((arg) => arg.slice(1));
+ console.log("Labels to remove:", labelsToRemove.join(", "));
+ const labelsInvalid = [];
+ for (const label of labelsToAdd) {
+ if (labelMapping[label] == null) {
+ console.log("Invalid label:", label);
+ labelsInvalid.push(label);
+ } else if (labelsCurrent.includes(labelMapping[label])) {
+ console.log("Skipping label:", labelMapping[label]);
+ } else {
+ console.log("Adding label:", labelMapping[label]);
+ try {
+ await github.rest.issues.addLabels({ ...context.repo, issue_number: context.payload.issue.number, labels: [labelMapping[label]] });
+ } catch (err) {
+ console.log("Failed to add label:", err);
+ labelsInvalid.push(label);
+ }
+ }
+ }
+ for (const label of labelsToRemove) {
+ if (labelMapping[label] == null) {
+ console.log("Invalid label:", label);
+ labelsInvalid.push(label);
+ } else if (!labelsCurrent.includes(labelMapping[label])) {
+ console.log("Skipping label:", labelMapping[label]);
+ } else {
+ console.log("Removing label:", labelMapping[label]);
+ try {
+ await github.rest.issues.removeLabel({ ...context.repo, issue_number: context.payload.issue.number, name: labelMapping[label] });
+ } catch (err) {
+ console.log("Failed to remove label:", err);
+ labelsInvalid.push(label);
+ }
+ }
+ }
+ await github.rest.issues.deleteComment({ ...context.repo, comment_id: context.payload.comment.id });
+ if (labelsInvalid.length > 0) {
+ console.log("Invalid labels:", labelsInvalid.join(", "));
+ const bodyQuoted = body.split("\n").map((line) => "> " + line).join("\n");
+ await github.rest.issues.createComment({ ...context.repo, issue_number: context.payload.issue.number, body: bodyQuoted + "\n\nThe following labels are invalid: " + labelsInvalid.join(", ") });
+ }
+ }
diff --git a/.github/workflows/pull-request-checker.yml b/.github/workflows/pull-request-checker.yml
new file mode 100644
index 0000000000..976ea6d44a
--- /dev/null
+++ b/.github/workflows/pull-request-checker.yml
@@ -0,0 +1,178 @@
+name: PR Checker
+
+on:
+ pull_request_target:
+ branches:
+ - docs-staging
+ - master
+ - anax-test-branch # TODO Delete this line before merging PR
+ types: [opened, reopened, edited, labeled]
+
+jobs:
+ initial-comment:
+ name: PR Instructions
+ runs-on: ubuntu-latest
+ if: github.event.pull_request.user.login != 'zowe-robot'
+
+ steps:
+ # 1. Check out files needed by subsequent steps
+ - name: Checkout files
+ uses: actions/checkout@v4
+ with:
+ sparse-checkout: .github
+
+ # 2. Define outputs used by subsequent steps
+ - name: Check if author is writer
+ id: check-if-writer
+ if: contains(fromJson('["anaxceron", "jandacek", "nannanli", "samanthasusu", "nellietan", "lparadkar-rocket"]'), github.event.pull_request.user.login)
+ run: echo "PR_AUTHOR_TYPE=writer" >> $GITHUB_ENV
+
+ - name: Check if author is labeller
+ id: check-if-labeller
+ if: ${{ steps.check-if-writer.outcome == 'skipped' }}
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ response=$(curl -fs -H "Authorization: Token $GITHUB_TOKEN" \
+ "https://api.github.com/repos/${{ github.repository }}/collaborators/${{ github.event.pull_request.user.login }}/permission")
+ triage_permission=$(echo "$response" | jq -r '.user.permissions.triage')
+ if [ "$triage_permission" == "true" ]; then
+ echo "PR_AUTHOR_TYPE=labeller" >> $GITHUB_ENV
+ else
+ echo "PR_AUTHOR_TYPE=community" >> $GITHUB_ENV
+ fi
+
+ # 3. Add initial comment on PR
+ - name: Add initial comment
+ uses: marocchino/sticky-pull-request-comment@v2
+ with:
+ header: Initial comment
+ path: .github/pr-comments/for-${{ env.PR_AUTHOR_TYPE }}.md
+ only_create: true
+
+ # 4. Validate PR description
+ - name: Description checker
+ id: description_checker
+ uses: jadrol/pr-description-checker-action@v1.0.0
+ with:
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
+ template-path: "./.github/pull_request_template.md"
+ comment: false
+ - name: Template Not Filled Comment PR
+ if: failure() && steps.description_checker.outcome == 'failure'
+ uses: marocchino/sticky-pull-request-comment@v2
+ with:
+ header: Invalid PR description
+ message: |
+ :warning: Looks like something is wrong with the PR description. Remember to add a description and the file(s) included in this PR.
+
+ If you have addressed this issue already, refresh this page in your browser to remove this comment.
+ - name: File type checker
+ id: file_type_checker
+ uses: JJ/github-pr-contains-action@releases/v10
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ bodyContains: '\.md|\.jpg|\.gif|\.png'
+ - name: Missing File Name Comment PR
+ if: failure() && steps.file_type_checker.outcome == 'failure'
+ uses: marocchino/sticky-pull-request-comment@v2
+ with:
+ header: Invalid PR description
+ message: |
+ :file_folder: The PR description is missing the file name(s) for the updated content. List all the files included in this PR so this information displays in our [Zowe Docs GitHub Slack channel](https://openmainframeproject.slack.com/archives/C05GH3LT59D).
+
+ If you have addressed this issue already, refresh this page in your browser to remove this comment.
+ - name: Fixed Invalid Description Comment PR
+ if: success()
+ uses: marocchino/sticky-pull-request-comment@v2
+ with:
+ header: Invalid PR description
+ delete: true
+
+ review-labels:
+ name: Check for missing review label
+ runs-on: ubuntu-latest
+ needs: [initial-comment]
+ if: ${{ always() && !contains(fromJson('["zowe-robot", "anaxceron", "jandacek", "nannanli", "samanthasusu", "nellietan", "lparadkar-rocket"]'), github.event.pull_request.user.login) }}
+
+ steps:
+ - name: Review Label Check
+ id: prefix_label_check
+ uses: docker://agilepathway/pull-request-label-checker:latest
+ with:
+ prefix_mode: true
+ any_of: "review:"
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
+ - name: Missing Review Label Comment PR
+ if: failure()
+ uses: marocchino/sticky-pull-request-comment@v2
+ with:
+ header: Review label missing
+ message: |
+ :mag: The **review** label is missing. Add a `review:` label so we can determine who needs to approve this PR.
+
+ If you have addressed this issue already, refresh this page in your browser to remove this comment.
+ - name: Fixed Review Label Comment PR
+ if: success()
+ uses: marocchino/sticky-pull-request-comment@v2
+ with:
+ header: Review label missing
+ delete: true
+
+ release-labels:
+ name: Check for missing release label
+ runs-on: ubuntu-latest
+ needs: [initial-comment]
+ if: ${{ always() && github.event.pull_request.user.login != 'zowe-robot' }}
+
+ steps:
+ - id: prefix_label_check
+ uses: docker://agilepathway/pull-request-label-checker:latest
+ with:
+ prefix_mode: true
+ one_of: "release:"
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
+ - name: Missing Release Label Comment PR
+ if: failure()
+ uses: marocchino/sticky-pull-request-comment@v2
+ with:
+ header: Release label missing
+ message: |
+ :floppy_disk: The **release** label is missing. Add a `release:` label so your content is published with the correct major Zowe release.
+
+ If you have addressed this issue already, refresh this page in your browser to remove this comment.
+ - name: Fixed Release Label Comment PR
+ if: success()
+ uses: marocchino/sticky-pull-request-comment@v2
+ with:
+ header: Release label missing
+ delete: true
+
+ area-labels:
+ name: Check for missing area label
+ runs-on: ubuntu-latest
+ needs: [initial-comment]
+ if: ${{ always() && github.event.pull_request.user.login != 'zowe-robot' }}
+
+ steps:
+ - id: prefix_label_check
+ uses: docker://agilepathway/pull-request-label-checker:latest
+ with:
+ prefix_mode: true
+ any_of: "area:"
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
+ - name: Missing Area Label Comment PR
+ if: failure()
+ uses: marocchino/sticky-pull-request-comment@v2
+ with:
+ header: Area label missing
+ message: |
+ :pushpin: The **subject area** label is missing. Add an `area:` label so we know what your content is about.
+
+ If you have addressed this issue already, refresh this page in your browser to remove this comment.
+ - name: Fixed Area Label Comment PR
+ if: success()
+ uses: marocchino/sticky-pull-request-comment@v2
+ with:
+ header: Area label missing
+ delete: true
diff --git a/docs/appendix/zowe-glossary.md b/docs/appendix/zowe-glossary.md
index 559b3902c3..c9a928e700 100644
--- a/docs/appendix/zowe-glossary.md
+++ b/docs/appendix/zowe-glossary.md
@@ -6,33 +6,60 @@ This reference includes both technical as well as organizational terms that are
Not finding something you are looking for? Send a message to the Zowe Docs squad in the [#zowe-doc](https://openmainframeproject.slack.com/archives/CC961JYMQ) Slack channel to discuss updating this glossary.
+:::note
+Security is central to a wide range of functionalities in Zowe. As such, a separate glossary of Zowe Security terminology is available in the _Overview_ section under _Zowe security_. For more information, see the [**Glossary of Zowe Security teminology**](./zowe-security-glossary).
+
+For an overview of security in Zowe, see [the Zowe Security policy](https://www.zowe.org/security) on zowe.org.
+:::
+
## Core Zowe Projects
-#### API Mediation Layer (API ML)
+### Zowe API Mediation Layer (API ML)
Provides a reverse proxy and enables REST APIs by providing a single point of access for mainframe service REST APIs like MVS Data Sets, JES, as well as working with z/OSMF. It has dynamic discovery capability for these services and Gateway is also responsible for generating the authentication token used to provide single sign-on (SSO) functionality.
-#### Zowe Application Framework
+
+
+Click here for descriptions of the various components that form the API Mediation Layer.
+
+
+#### API Catalog
+Displays API services that have been discovered by the [API Mediation Layer](#api-mediation-layer-api-ml).
+
+#### API Discovery Service
+As the central repository of active services in the [API Mediation Layer](#api-mediation-layer-api-ml) ecosystem, it continuously collects and aggregates service information to provide status updates. This enables the discoverability of services.
+
+#### API Gateway Â
+A proxy server that routes requests from clients on its northbound edge (such as web browsers or [Zowe CLI](#zowe-cli)) to servers on its southbound edge that are able to provide data to serve the request.
+
+Also responsible for generating the authentication token used to provide single sign-on (SSO) functionality.
+
+#### Caching Service
+Designed for Zowe components in a high availability (HA) configuration. It supports the HA of all components within Zowe, allowing components to be stateless by providing a mechanism to offload their state to a location accessible by all instances of the service, including those which just started.
+
+
+
+### Zowe Application Framework
Modernizes and simplifies working on the mainframe via a web visual interface. Functionality is provided through apps and a desktop user experience called the [Zowe Desktop](#zowe-desktop). Base functionality includes apps to work with JES, MVS Data Sets, Unix System Services, as well as a [3270 Terminal](#3270-terminal), [Virtual Terminal](#virtual-vt-terminal), and an [Editor](#zowe-editor).
-#### Zowe CLI
+### Zowe CLI
Provides a command-line interface that lets you interact with the mainframe remotely and use common tools such as Integrated Development Environments (IDEs), shell commands, bash scripts, and build tools for mainframe development. The core set of commands includes working with data sets, USS, JES, as well as issuing TSO and console commands. The Zowe CLI is incredibly popular in modern mainframe education.
-#### Zowe client projects
+### Zowe client projects
Includes all the Zowe projects that are installed on the user's PC. Also known as *Zowe client-side projects*.
-#### Zowe Client SDKs
+### Zowe Client SDKs
Allow extenders to build applications on top of existing programmatic APIs such as z/OSMF. Currently supported client SDKs include Node.js (core), Kotlin/z/OSMF, Python, Swift, and Java.
-#### Zowe Explorer
+### Zowe Explorer
A Visual Studio Code extension that modernizes the way developers and system administrators interact with z/OS mainframes. Zowe Explorer lets you interact with data sets, USS files, and jobs that are stored on z/OS. Zowe Explorer is incredibly popular in modern mainframe education.
-#### Zowe server components
+### Zowe server components
Includes all the Zowe components that are installed on z/OS. Also known as *Zowe z/OS components* or *Zowe server-side components*.
@@ -44,23 +71,6 @@ ZSS is written in C and uses native calls to z/OS to provide its services.
## Architecture and other components
-#### API Catalog
-
-Displays API services that have been discovered by the [API Mediation Layer](#api-mediation-layer-api-ml).
-#### API Discovery Service
-
-As the central repository of active services in the [API Mediation Layer](#api-mediation-layer-api-ml) ecosystem, it continuously collects and aggregates service information to provide status updates. This enables the discoverability of services.
-
-#### API GatewayÂ
-
-A proxy server that routes requests from clients on its northbound edge (such as web browsers or [Zowe CLI](#zowe-cli)) to servers on its southbound edge that are able to provide data to serve the request.
-
-Also responsible for generating the authentication token used to provide single sign-on (SSO) functionality.
-
-#### Caching Service
-
-Designed for Zowe components in a high availability (HA) configuration. It supports the HA of all components within Zowe, allowing components to be stateless by providing a mechanism to offload their state to a location accessible by all instances of the service, including those which just started.
-
#### Configuration Manager
Works closely with the [Zowe Launcher](#zowe-launcher) to manage the configuration of Zowe across its lifecycle. Interacted with primarily via `zwe` command
@@ -91,6 +101,14 @@ A more general term used to describe a modular piece of some component. Dependin
A component may have multiple plug-ins, sometimes working together to form a single purpose or user experience, but an individual plug-in belongs to a single component. See [extension](#extension) for additional context.
+#### Secure credential store
+
+Secret storage functionality embedded in core Zowe CLI and Zowe Explorer starting from Zowe V2.
+
+Securely stores configured private credentials in the secure vault available on your client operating system. Examples of such vaults include Windows Credential Manager on Microsoft Windows, and Passwords and Keys on Ubuntu Linux.
+
+A separate plug-in of the same name used in Zowe V1 CLI.
+
#### Service
A service provides one or more APIs, and is identified by a service ID. Note that sometimes the term *service name* can be used to mean *service ID*.
@@ -230,10 +248,7 @@ The instance directory also contains a log directory where different microservic
#### Zowe runtime
Refers to the full, unarchived set of binaries, executable files, scripts, and other elements that are run when Zowe is started.
-
-### Security
-
-For an overview of security in Zowe, see [the Zowe Security policy](https://www.zowe.org/security) on zowe.org.
+
#### Sample library
diff --git a/docs/appendix/zowe-security-glossary.md b/docs/appendix/zowe-security-glossary.md
index 3d9960e6e8..d7335d8ce3 100644
--- a/docs/appendix/zowe-security-glossary.md
+++ b/docs/appendix/zowe-security-glossary.md
@@ -1,4 +1,4 @@
-# Zowe security concepts glossary
+# Glossary of Zowe Security terminology
Zowe implements a number of modern cyber-security concepts. Before getting started with configuring certificates, it is useful to familiarize yourself with the basic terminology.
Read the following definitions for explanation of the security terms related to the core security technologies applied by Zowe:
diff --git a/docs/extend/extend-apiml/api-mediation-caching-service.md b/docs/extend/extend-apiml/api-mediation-caching-service.md
index 55915a3b45..4f4616b01d 100644
--- a/docs/extend/extend-apiml/api-mediation-caching-service.md
+++ b/docs/extend/extend-apiml/api-mediation-caching-service.md
@@ -12,14 +12,15 @@ The Caching Service is available only for internal Zowe applications, and is not
- [Architecture](#architecture)
- [Storage methods](#storage-methods)
+ - [Infinispan](#infinispan)
- [VSAM](#vsam)
- [Redis](#redis)
- - [Infinispan](#infinispan)
- [InMemory](#inmemory)
- [How to start the service](#how-to-start-the-service)
- [Methods to use the Caching service API](#methods-to-use-the-caching-service-api)
- [Configuration properties](#configuration-properties)
- [Authentication](#authentication)
+
## Architecture
A precondition to provide for High Availability of all components within Zowe is the requirement that these components be either stateless, or for the resources of the service, to be offloaded to a location accessible by all instances of the service. This condition also applies to recently started instances. Some services, however, are not and cannot be stateless. The Caching Service is designed for these types of services.
@@ -36,25 +37,30 @@ Information from cached APIs is stored as a JSON in the following format:
## Storage methods
The Caching Service supports the following storage solutions, which provide the option to add custom implementation.
+
+### Infinispan (recommended)
+
+Infinispan is a storage solution that can also run on the z/OS platform. It can store data structures in key-value pairs, has high-availability support, and is highly performant.
+
+For more information about the Infinispan storage access method, see [Using Infinispan as a storage solution through the Caching service](./api-mediation-infinispan.md).
+
### VSAM
VSAM can be used to organize records into four types of data sets: key-sequenced, entry-sequenced, linear, or relative record. Use VSAM as the storage solution for production. VSAM is used primarily for applications and is not used for source programs, JCL, or executable modules. ISPF cannot be used to display or edit VSAM files.
For more information about the VSAM storage access method, see [Using VSAM as a storage solution through the Caching Service](./api-mediation-vsam.md).
+
### Redis
Redis is a common storage solution that runs outside of the z/OS platform. It can store data structures in key-value pairs, has high-availability support, and is highly performant.
For more information about the Redis storage access method, see [Using Redis as a storage solution through the Caching Service](./api-mediation-redis.md).
-### Infinispan
-Infinispan is a storage solution that can also run on the z/OS platform. It can store data structures in key-value pairs, has high-availability support, and is highly performant.
-
-For more information about the Infinispan storage access method, see [Using Infinispan as a storage solution through the Caching service](./api-mediation-infinispan.md).
### InMemory
The InMemory storage method is a method suitable for testing and integration verification. Be sure not to use InMemory storage in production.
The key/value pairs are stored only in the memory of a single instance of the service. As such, the key/value pairs do not persist.
+
## How to start the Service
By default, the Caching Service starts along with the other Zowe components. To prevent the Caching Service from starting, set
@@ -102,9 +108,10 @@ This parameter specifies service behavior when the limit of records is reached.
* **removeOldest**
removes the oldest item in the cache when the service reaches the configured maximum number
-**Notes:**
+:::note**Notes:**
- For more information about how to configure the Caching Service in the `application.yml`, see: [Add API Onboarding Configuration](../extend-apiml/onboard-spring-boot-enabler.md).
- When using VSAM, ensure that you set the additional configuration parameters. For more information about setting these parameters, see [Using VSAM as a storage solution through the Caching Service](./api-mediation-vsam.md).
+:::
## Authentication
diff --git a/docs/extend/extend-apiml/api-mediation-infinispan.md b/docs/extend/extend-apiml/api-mediation-infinispan.md
index 5d456d20cd..82a03a5350 100644
--- a/docs/extend/extend-apiml/api-mediation-infinispan.md
+++ b/docs/extend/extend-apiml/api-mediation-infinispan.md
@@ -15,10 +15,10 @@ For more information on Infinispan, see the [official Infinispan documentation](
### Infinispan replica instances
-Infinispan can be used with both on standalone instance and High Availability mode. In case of multiple Caching Service instances,
-you will have to specify all the cluster nodes (members). Each Infinispan node is bound to specific Caching Service instance and runs on a different port and host, which can be configured. See the [nfinispan configuration](#infinispan-configuration) to know how to configure multiple Infinispan nodes.
+Infinispan can be used with both a standalone instance and high availability mode. When using multiple Caching Service instances,
+it is necessary to specify all of the cluster nodes (members). Each Infinispan node is bound to a specific Caching Service instance and runs on a different port and host, which can be configured. For more information about configuring multiple Infinispan modes, see the [Infinispan configuration](#infinispan-configuration).
-For more information on Infinispan replication and how to configure a replica instance, see the [official Infinispan Cross-site Replication documentation](https://infinispan.org/docs/stable/titles/xsite/xsite.html).
+For more information on Infinispan replication and how to configure a replica instance, see the [Infinispan Cross-site Replication](https://infinispan.org/docs/stable/titles/xsite/xsite.html) documentation.
## Infinispan configuration
@@ -35,10 +35,10 @@ Configure Infinispan as a storage solution through the Caching service by settin
* **`CACHING_STORAGE_INFINISPAN_PERSISTENCE_DATALOCATION`**
- The path where the Soft-Index store will keep its data files for the Infinispan Soft-Index Cache Store.
+ The path where the Soft-Index store keeps its data files for the Infinispan Soft-Index Cache Store.
The default value is `data`. If you run the Caching Service in HA and the instances use the same filesystem,
you have to specify a different value of the `CACHING_STORAGE_INFINISPAN_PERSISTENCE_DATALOCATION` property for each
- instance. For more information, see [Soft-Index File Store](https://infinispan.org/blog/2014/10/31/soft-index-file-store).
+ instance. For more information, see the [Soft-Index File Store](https://infinispan.org/blog/2014/10/31/soft-index-file-store).
* **`JGROUPS_BIND_PORT`**
diff --git a/docs/extend/extend-apiml/api-mediation-oidc-authentication.md b/docs/extend/extend-apiml/api-mediation-oidc-authentication.md
index 38dac47375..18b8653629 100644
--- a/docs/extend/extend-apiml/api-mediation-oidc-authentication.md
+++ b/docs/extend/extend-apiml/api-mediation-oidc-authentication.md
@@ -9,6 +9,10 @@ This configuration is useful in advanced deployments of Zowe where client applic
This article details the API ML OIDC authentication functionality, and how to configure the OIDC Authentication feature.
+:::note
+The OIDC feature is currently unavailable on ACF2 systems.
+:::
+
- [Usage](#usage)
- [Authentication flow](#authentication-flow)
- [Prerequisites](#prerequisites)
diff --git a/docs/getting-started/zowe_faq.md b/docs/getting-started/zowe_faq.md
index 544152011f..7521f6e597 100644
--- a/docs/getting-started/zowe_faq.md
+++ b/docs/getting-started/zowe_faq.md
@@ -114,7 +114,11 @@ The Docker image contains the Zowe components that do not have the requirement o
Configurating components with Docker is similar to the procedures you would follow without Docker, however tasks such as installation and running with Docker are a bit different, as these tasks become Linux oriented, rather than utilizing Jobs and STCs.
-**NOTE:** z/OS is still required when using the Docker image. Depending on which components of Zowe you use, you'll still need to set up z/OS Management Facility as well as Zowe's ZSS and Cross memory servers.
+:::note
+
+z/OS is still required when using the Docker image. Depending on which components of Zowe you use, you'll still need to set up z/OS Management Facility as well as Zowe's ZSS and Cross memory servers.
+
+:::
@@ -181,6 +185,17 @@ For information and tutorials about extending Zowe with a new plug-in or applica
+### Where can I submit an idea for a future enhancement to Zowe?
+
+
+
+
+
+Go to the [Zowe Community ReadMe file](https://github.com/zowe/community#submit-an-issue) for information on requesting a bug fix or enhancement. Members of the Zowe community can then review your issue to post feedback or vote their support. Issues are continuously monitored by Zowe squads for improvement ideas.
+
+
+
+
### When will Zowe be completed?
@@ -206,7 +221,6 @@ Zowe is also compatible with IBM z/OSMF Lite for non-production use. For more in
-
## Zowe CLI FAQ
### Why might I use Zowe CLI versus a traditional ISPF interface to perform mainframe tasks?
diff --git a/docs/troubleshoot/cli/troubleshoot-cli-credentials.md b/docs/troubleshoot/cli/troubleshoot-cli-credentials.md
index c9651885c4..76e45c09e9 100644
--- a/docs/troubleshoot/cli/troubleshoot-cli-credentials.md
+++ b/docs/troubleshoot/cli/troubleshoot-cli-credentials.md
@@ -1,3 +1,7 @@
+---
+keywords: [troubleshooting pem certificates]
+---
+
# Troubleshooting Zowe CLI credentials
## Secure credentials
@@ -11,3 +15,48 @@ Zowe CLI accepts various methods, or mechanisms, of authentication when communic
However, some services can accept multiple methods of authentication. When multiple methods are provided (in a profile or command) for a service, the CLI follows an *order of precedence* to determine which method to apply.
To find the authentication methods used for different services and their order of precedence, see the table in [Authentication mechanisms](../../extend/extend-cli/cli-devTutorials.md#authentication-mechanisms).
+
+### PEM certificate files
+
+PEM certificate files are used by Zowe CLI to authenticate to the API Mediation Layer. To be accepted, these certificate files must first be recorded in the service's keyring/trust-store on the mainframe before they are used by Zowe CLI.
+
+Some users choose to secure PEM certificates by placing them in a password protected container, such as a PGP file, a ZIP file, or a password protected PKCS12 file (a.k.a. a PFX file). However, Zowe CLI does not currently support any certificate files that require a password for use.
+
+:::note
+
+These client certificate files are different from the certificates generated or imported during Zowe server configuration. For more information, see [Using Certificates](https://docs.zowe.org/stable/user-guide/use-certificates/).
+
+:::
+
+To log into the API Mediation Layer with a PEM certificate file, refer to this workaround.
+
+**Symptom:**
+
+When using a password protected certificate to log in to API ML, an error message displays.
+
+**Sample message:**
+
+```
+Unexpected Command Error:
+Please review the message and stack below.
+Contact the creator of handler:
+"PATH-TO-INSTALLED-NPM\bin\npm\node_modules\@zowe\cli\lib/auth/ApimlAuthHandler"
+Message:
+error:1E08010C:DECODER routines::unsupported
+Stack:
+Error: error:1E08010C:DECODER routines::unsupported
+ at setKey (node:internal/tls/secure-context:92:11)
+ at configSecureContext (node:internal/tls/secure-context:174:7)
+ at Object.createSecureContext (node:_tls_common:117:3)
+ at Object.connect (node:_tls_wrap:1629:48)
+ at Agent.createConnection (node:https:150:22)
+ at Agent.createSocket (node:_http_agent:350:26)
+ at Agent.addRequest (node:_http_agent:297:10)
+ at new ClientRequest (node:_http_client:335:16)
+ at Object.request (node:https:360:10)
+ at PATH-TO-INSTALLED-NPM\bin\npm\node_modules\@zowe\cli\node_modules\@zowe\imperative\lib\rest\src\client\AbstractRestClient.js:117:39
+```
+
+**Solution:**
+
+Create a new PEM certificate file with no password requirement to log in to API ML.
diff --git a/docs/troubleshoot/cli/troubleshoot-ibm-db2-database-plug-in.md b/docs/troubleshoot/cli/troubleshoot-ibm-db2-database-plug-in.md
new file mode 100644
index 0000000000..46280271fd
--- /dev/null
+++ b/docs/troubleshoot/cli/troubleshoot-ibm-db2-database-plug-in.md
@@ -0,0 +1,98 @@
+# IBM Db2 Database Plug-in troubleshooting
+
+As part of the IBM Db2 Database Plug-in installation, the ODBC driver is automatically installed. The driver is required to connect to Db2, but installation can fail due to security restrictions.
+
+When the ODBC driver installation fails, Zowe CLI displays an error message. To resolve this, the user can manually download and install the driver.
+
+**Symptom:**
+
+The ODBC driver installation fails when installing the IBM Db2 Database Plug-in.
+
+**Sample:**
+
+The ODBC driver installation can fail due to several factors, displaying the following error when the `zowe plugins install` command is issued:
+
+```
+_______________________________________________________________
+Installed plugin name = '@zowe/db2-for-zowe-cli'
+
+_____ Validation results for plugin '@zowe/db2-for-zowe-cli' _____
+
+*** CmdError: Failed to combine command definitions. Reason = Encountered an error loading one of the files (cli/call/Call.definition.js) that matched the provided command module glob for the glob **/cli/*/*.definition!(.d).*s: Could not locate the bindings file. Tried:
+→ C:\Users\username\.zowe\plugins\installed\node_modules\@zowe\db2-for-zowe-cli\node_modules\ibm_db\build\odbc_bindings.node
+→ C:\Users\username\.zowe\plugins\installed\node_modules\@zowe\db2-for-zowe-cli\node_modules\ibm_db\build\Debug\odbc_bindings.node
+→ C:\Users\username\.zowe\plugins\installed\node_modules\@zowe\db2-for-zowe-cli\node_modules\ibm_db\build\Release\odbc_bindings.node
+```
+
+To identify the cause of the error and get more details to troubleshoot, run the following command:
+
+```
+npm install ibm_db --foreground-scripts true
+```
+
+The response includes an error message, which could specify a timeout or unpacking error.
+
+#### Timeout error
+
+Network restrictions can prevent the ODBC driver from downloading, resulting in a timeout error:
+
+```
+Downloading DB2 ODBC CLI Driver from https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/ntx64_odbc_cli.zip ...
+
+ETIMEDOUT : https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/ntx64_odbc_cli.zipbm_db/-/ibm_db-3.2.3.tgz 7210ms (cache miss)
+Downloading DB2 ODBC CLI Driver from https://github.com/ibmdb/db2drivers/raw/main/clidriver/ntx64_odbc_cli.zip ...
+
+ETIMEDOUT : https://github.com/ibmdb/db2drivers/raw/main/clidriver/ntx64_odbc_cli.zipifactory/api/npm/npmjs/ibm_db/-/ibm_db-3.2.3.tgz 7210ms (cache miss)
+
+=====================================
+Error: Installation of ibm_db failed.
+=====================================
+```
+
+To troubleshoot a timeout error, see [Downloading the ODBC driver manually](#downloading-the-odbc-driver-manually).
+
+#### Unpacking error
+
+If the driver downloads successfully, security settings can still prompt an unpacking error.
+
+In the following example, the ODBC driver was downloaded manually and the environment variable `IBM_DB_INSTALLER_URL` was set.
+
+```
+Error: invalid distance too far back
+ at Zlib.zlibOnError [as onerror] (node:zlib:190:17)
+Emitted 'error' event on InflateRaw instance at:
+ at emitErrorNT (node:internal/streams/destroy:157:8)
+ at emitErrorCloseNT (node:internal/streams/destroy:122:3)
+ at processTicksAndRejections (node:internal/process/task_queues:83:21) {
+ errno: -3,
+ code: 'Z_DATA_ERROR'
+}
+npm ERR! code 1
+npm ERR! path C:\Users\username\node_modules\ibm_db
+npm ERR! command failed
+npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node installer/driverInstall.js
+```
+
+To troubleshoot a packaging error, see [Fixing a failed extraction](#fixing-a-failed-extraction).
+
+**Solution:**
+
+#### Downloading the ODBC driver manually
+
+To manually download the ODBC driver, see instructions in [Downloading the ODBC driver](../../user-guide/cli-db2plugin.md#downloading-the-odbc-driver).
+
+#### Fixing a failed extraction
+
+1. Manually extract the ODBC driver binaries from the `build.zip` file which is bundled with the [ibm_db](https://www.npmjs.com/package/ibm_db) package. The `build.zip` archive can also be downloaded from [GitHub](https://github.com/ibmdb/node-ibm_db/blob/master/build.zip).
+
+2. Open the `build/Release` folder and copy the binary for your Node version (for example, `odbc_bindings.node.18.18.2` if you have Node 18) into the Db2 plug-in folder (`C:\Users\username\.zowe\plugins\installed\node_modules\@zowe\db2-for-zowe-cli\node_modules\ibm_db\build\Release`).
+
+3. Rename the file to `odbc_bindings.node`. This is the name used by the Db2 plug-in.
+
+ You have successfully extracted the ODBC driver.
+
+:::note
+
+The preceding steps extract the driver binary to fix a broken installation of the IBM Db2 Database Plug-in. When installing a new version of the plug-in, perform the workaround again to fix a failed extraction.
+
+:::
diff --git a/docs/user-guide/cli-using-creating-global-team-profiles.md b/docs/user-guide/_cli-using-creating-global-team-profiles.md
similarity index 100%
rename from docs/user-guide/cli-using-creating-global-team-profiles.md
rename to docs/user-guide/_cli-using-creating-global-team-profiles.md
diff --git a/docs/user-guide/cli-db2plugin.md b/docs/user-guide/cli-db2plugin.md
index adcf2c380f..23e4c9ae1a 100644
--- a/docs/user-guide/cli-db2plugin.md
+++ b/docs/user-guide/cli-db2plugin.md
@@ -52,9 +52,7 @@ Follow these procedures if you downloaded the Zowe installation package:
#### Downloading the ODBC driver
-Download the ODBC driver before you install the Db2 plug-in.
-
-**Follow these steps:**
+Download the ODBC driver before you install the Db2 plug-in:
1. If you are installing the plug-in on a Apple computer that contains an M1 (or later architecture) processor, complete the steps in [M1 processor installation](../user-guide/cli-db2-install-m1.md). If not, continue to Step 2.
@@ -64,13 +62,15 @@ Download the ODBC driver before you install the Db2 plug-in.
4. Place the ODBC driver in the `odbc_cli` folder. **Do not extract the ODBC driver**.
-You downloaded and prepared to use the ODBC driver successfully. Proceed to install the plug-in to Zowe CLI.
+ You downloaded and prepared to use the ODBC driver successfully. Proceed to install the plug-in to Zowe CLI.
#### Installing Xcode on MacOS
To install the Db2 CLI plug-in on MacOS, you need the command line tools, which can be obtained by installing Xcode from the [App Store](https://medium.com/r/?url=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Fxcode%2Fid497799835%3Fmt%3D12).
-**Note:** On some versions of MacOS, you may receive the error `xcrun: error: invalid active developer path` as shown below:
+:::note
+
+ On some versions of MacOS, you may receive the error `xcrun: error: invalid active developer path` as shown below:
```
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
@@ -82,17 +82,15 @@ If this occurs, a manual refresh of the command line tools is required by runnin
sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install
```
+:::
#### Installing the plug-in
-
-Now that the Db2 ODBC CLI driver is downloaded, set the `IBM_DB_INSTALLER_URL` environment variable and install the Db2 plug-in to Zowe CLI.
-
-**Follow these steps:**
+With the Db2 ODBC CLI driver downloaded, set the `IBM_DB_INSTALLER_URL` environment variable and install the Db2 plug-in to Zowe CLI:
1. Open a command line window and change the directory to the location where you extracted the `zowe-cli-bundle.zip` file. If you do not have the `zowe-cli-bundle.zip` file, see the topic **Install Zowe CLI from local package** in [Installing Zowe CLI](cli-installcli.md) for information about how to obtain and extract it.
-2. From a command line window, set the `IBM_DB_INSTALLER_URL` environment variable by issuing the following command:
+2. From a command line window, set the `IBM_DB_INSTALLER_URL` environment variable:
- Windows operating systems:
@@ -105,22 +103,25 @@ Now that the Db2 ODBC CLI driver is downloaded, set the `IBM_DB_INSTALLER_URL` e
export IBM_DB_INSTALLER_URL=/odbc_cli
```
- For example, if you downloaded the Windows x64 driver (ntx64_odbc_cli.zip) to C:\odbc_cli, you would issue the following command:
- ```
- set IBM_DB_INSTALLER_URL=C:\odbc_cli
- ```
+ For example, if you downloaded the Windows x64 driver (`ntx64_odbc_cli.zip`) to `C:\odbc_cli`:
-2. Issue the following command to install the plug-in:
+ ```
+ set IBM_DB_INSTALLER_URL=C:\odbc_cli
+ ```
+
+3. To install the IBM Db2 Database Plug-in:
```
zowe plugins install db2-for-zowe-cli.tgz
```
-3. [Address the license requirements](#addressing-the-license-requirement) to begin using the plug-in.
+4. [Address the license requirements](#addressing-the-license-requirement) to begin using the plug-in.
+
+ You have installed the IBM Db2 Database Plug-in successfully.
## Addressing the license requirement
-To successfully connect the Db2 CLI plug-in to a database on z/OS, a license needs to be present either on the client where the Zowe CLI is executed from, or else on z/OS. If you do not have a license configured when you execute Db2 CLI commands, you will receive an error `SQL1598N`, for example:
+To successfully connect the Db2 CLI plug-in to a database on z/OS, a license needs to be present either on the client where the Zowe CLI is executed from, or else on z/OS. If you do not have a license configured when you execute Db2 CLI commands, you will receive an error `SQL1598N`:
```
DB2 ODBC Driver Error: [node-ibm_db] SQL_ERROR
@@ -138,16 +139,24 @@ If the utility `db2connectactivate` has not been executed against the Db2 databa
1. Locate your client copy of the Db2 license file `db2consv_zs.lic`.
- **Note:** The license must be of version 11.5 if the Db2 server is not `db2connectactivated`. You can buy a db2connect license from IBM. The connectivity can be enabled either on server using db2connectactivate utility or on client using client side license file.
+ :::note
+
+ The license must be of version 11.5 if the Db2 server is not `db2connectactivated`. You can buy a db2connect license from IBM. The connectivity can be enabled either on server using db2connectactivate utility or on client using client side license file.
To know more about DB2 license and purchasing cost, please contact IBM Customer Support.
+ :::
+
2. Copy your Db2 license file `db2consv_za.lic` and place it in the following directory.
```
/plugins/installed/lib/node_modules/@zowe/db2-for-zowe-cli/node_modules/ibm_db/installer/clidriver/license
```
- **Tip:** By default, is set to `~/.zowe` on \*UNIX Aand Mac systems, and `C:\Users\\.zowe` on Windows systems.
+ :::tip
- After the license is copied, you can use the Db2 plugin functionality.
+ By default, is set to `~/.zowe` on \UNIX and Mac systems, and `C:\Users\\.zowe` on Windows systems.
+
+ :::
+
+ After the license is copied, you can use the Db2 plug-in functionality.
## Creating a user profile
@@ -163,13 +172,17 @@ We recommend that you create profiles using the configuration file. We do not re
When you issue various `zowe config` commands, such as `init`, `auto-init`, and `convert-profiles`, they create a `zowe.config.json` configuration file. When you install the DB2 plug-in, the commands create an entry for a `db2 profile` in your `zowe.config.json` file.
-Alternatively, you can create a db2 profile manually by adding a section that contains the configuration details to your `zowe.config.json` configuration file.
+Alternatively, you can create a db2 profile manually by adding a section that contains the configuration details to your `zowe.config.json` configuration file:
1. Browse to the following directory: `C:\Users\\.zowe`
2. Open the `zowe.config.json` configuration file using a text editor or IDE, such as Visual Studio Code or IntelliJ.
- **NOTE:** If the file does not exist, issue the following command to create the configuration file: `zowe config init --gc`
+ :::note
+
+ If the file does not exist, issue the following command to create the configuration file: `zowe config init --gc`
+
+ :::
3. Add code to the "profiles" section as shown in the following example:
```
@@ -187,40 +200,40 @@ Alternatively, you can create a db2 profile manually by adding a section that co
}
```
-4. Save the file
+4. Save the file.
-You can now use your profile when you issue commands in the db2 command group.
+ You can now use your profile when you issue commands in the db2 command group.
### Creating plug-in profiles using a command
-The following steps describe how to create a profile using the `zowe profiles create` command.
+Create a profile using the `zowe profiles create` command:
1. Open a terminal window and issue the following command:
```
zowe profiles create db2 –-host --port --user --password --region-name
```
- **`profile_name`:**
+ **`profile_name`**
Specifies a name for your profile.
- **`host`:**
+ **`host`**
Specifies the host name for the instance.
- **`user`:**
+ **`user`**
Specifies your user name to log in to the instance.
- **`password`:**
+ **`password`**
Specifies your password to log in to the instance.
- **`port`:**
+ **`port`**
Specifies the port number to connect to the instance.
- **`database`:**
+ **`database`**
Specifies the database to use on the instance.
@@ -228,6 +241,6 @@ The following steps describe how to create a profile using the `zowe profiles cr
```
zowe profiles create db2-profile database1 --host db2.zowe.org --port 25000 --user zowe --password zowepass --database zowedb
```
-2. Press Enter. The result of the command displays as a success or failure message.
+2. Press `Enter`. The result of the command displays as a success or failure message.
-You can now use your profile when you issue commands in the db2 command group.
+ You can now use your profile when you issue commands in the db2 command group.
diff --git a/docs/user-guide/cli-installcli.md b/docs/user-guide/cli-installcli.md
index 318a83c09e..569fa53161 100644
--- a/docs/user-guide/cli-installcli.md
+++ b/docs/user-guide/cli-installcli.md
@@ -73,20 +73,20 @@ Use the following procedure to install Zowe CLI from a local package:
1. Meet the [prerequisites](#prerequisites) for installing Zowe CLI.
-2. Navigate to [Download Zowe](https://www.zowe.org/download.html) and click the **Zowe vNext CLI Core** button.
+2. Navigate to [Download Zowe](https://www.zowe.org/download.html) and click the **Zowe \ CLI Core** button.
3. Read the End User License Agreement for Zowe and click **I agree** to download the core package.
- `zowe-cli-package-next-2022MMDD.zip` is downloaded to your computer (where MMDD indicates the month and day of the build).
+ `zowe-cli-package-.zip` is downloaded to your computer.
4. **(Optional)** Meet the [prerequisites](#prerequisites) for installing Zowe CLI plug-ins.
-5. **(Optional)** Navigate to [Download Zowe](https://www.zowe.org/download.html) and click the **Zowe vNext CLI Plugins** button to download the plugins.
+5. **(Optional)** Navigate to [Download Zowe](https://www.zowe.org/download.html) and click the **Zowe \ CLI Plugins** button to download the plug-ins.
6. **(Optional)** Read the End User License Agreement for Zowe plug-ins and click **I agree** to download the plugins package.
- `zowe-cli-plugins-next-2022MMDD.zip` is downloaded to your computer (where MMDD indicates the month and day of the build).
+ `zowe-cli-plugins-next-.zip` is downloaded to your computer.
-7. Unzip the contents of `zowe-cli-package-next-2021MMDD.zip` (and optionally `zowe-cli-plugins-2021MMDD.zip`) to a working directory.
+7. Unzip the contents of `zowe-cli-package-.zip` (and optionally `zowe-cli-plugins-.zip`) to a working directory.
8. To install Zowe CLI Core, open a command-line window and issue the following commands to the working directory that you used in Step 7:
@@ -94,7 +94,11 @@ Use the following procedure to install Zowe CLI from a local package:
npm install -g zowe-cli.tgz
```
- **Note:** If an `EACCESS` error displays, see [Resolving EACCESS permissions errors when installing packages globally](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally) in the npm documentation.
+ :::note
+
+ If an `EACCESS` error displays, see [Resolving EACCESS permissions errors when installing packages globally](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally) in the npm documentation.
+
+ :::
9. **(Optional)** To install Zowe CLI plug-ins, issue the following command to the working directory that you used in Step 7:
diff --git a/docs/user-guide/cli-using-team-managing-credential-security.md b/docs/user-guide/cli-using-team-managing-credential-security.md
index 30308ab9ea..33b536bed2 100644
--- a/docs/user-guide/cli-using-team-managing-credential-security.md
+++ b/docs/user-guide/cli-using-team-managing-credential-security.md
@@ -1,15 +1,79 @@
# Managing credential security
-When you first run the `zowe config init --global-config` command, the `profiles.base.properties.user` and `profiles.base.properties.password` fields are defined to the "secure" array in your configuration file, which helps to ensure that the username and password are stored securely on your computer.
+## Secure credential storage
-To store or update values for the secure fields (for example, when you want to change your username and password), issue the `zowe config secure` command. If, for example, you want to update several property values in a long list of properties, press Enter to skip a field.
+With the introduction of team profiles in Zowe CLI V2, the **Secure Credential Store (SCS) Plug-in** is deprecated. The `zowe scs` command group is obsolete.
-To secure a specific field, issue `zowe config set --secure `. For example, `zowe config set --secure profiles.base.properties.password`. When you issue the command for an option that is already secured, the CLI prompts you to enter a new option value.
+Secure credential encryption is now included with the Zowe CLI core application. When a command using a profile with missing `user` and `password` information is issued, Zowe CLI V2 prompts you to enter the username and password. Both are then stored securely by default.
-You can use an editor to define options to the secure array in `zowe.config.json`. Any option that you define to there becomes secure/prompted-for.
+For other ways to store credentials securely, use the `zowe config` command group. See the following instructions.
-## Changes to secure credential storage
+## Configuring secure properties
-With the introduction of team profiles in Zowe CLI V2, the **Secure Credential Store (SCS) Plug-in** is deprecated. The `zowe scs` command group is obsolete. Secure credential encryption is now included with the Zowe CLI core application.
+Create a configuration file and set its secure properties (such as usernames and passwords):
-Zowe CLI V2 prompts you to enter the `username` and `password` securely by default. Commands in the `zowe config` command group let you manage security for any option value.
+1. Open the Zowe CLI command prompt.
+
+2. To initialize a **project team** configuration file in the current working directory:
+
+ ```
+ zowe config init
+ ```
+ To initialize a **project user** configuration file in the current working directory:
+ ```
+ zowe config init --user-config
+ ```
+ To initialize a **global team** configuration file in the `ZOWE_CLI_HOME` directory:
+ ```
+ zowe config init --global-config
+ ```
+ To initialize a **global user** configuration file in the `ZOWE_CLI_HOME` directory:
+
+ ```
+ zowe config init --global-config --user-config
+ ```
+ A configuration file is created, if one does not already exist.
+
+ Additionally, the `profiles.base.properties.user` and `profiles.base.properties.password` fields are added to the base profile `secure` array for that configuration file. Zowe CLI stores the username and password in the [secure credential store](../appendix/zowe-glossary#secure-credential-store).
+
+3. If needed, add other fields to the secure array.
+ - Use a text editor or an IDE (such as Visual Studio Code) to edit the configuration file.
+ - Issue the `zowe config set --secure ` command to secure a specific property in a specific profile.
+
+ For example, `zowe config set profiles.base.properties.password pw123 --secure` adds the `password` property to the base profile's `secure` array and saves the password `pw123` in the secure credential store.
+
+ If you issue the command for a property that is already secured, the CLI prompts you to enter a new property value.
+
+ The values for these properties are saved in the secure credential store.
+
+## Updating secure properties
+
+Update secure credentials in an existing config profile:
+
+1. Open the Zowe CLI command prompt.
+
+2. To update values for secure fields in a **project team** configuration file:
+ ```
+ zowe config secure
+ ```
+ To update values for secure fields in a **project user** configuration file:
+ ```
+ zowe config secure --user-config
+ ```
+ To update values for secure fields in a **global team** configuration file:
+ ```
+ zowe config secure --global-config
+ ```
+ To update values for secure fields in a **global user** configuration file:
+ ```
+ zowe config secure --global-config --user-config
+ ```
+ Prompts request new values for all secure fields defined in the configuration file. In most cases, these properties include a username or password, but some users may include other fields, such as a token value or connection properties.
+
+3. Respond to prompts as needed. Press `Enter` to leave the value unchanged.
+
+ New values are saved in the secure credential store. After the last secure value is submitted, the user returns to the system command prompt.
+
+## Setting secure properties programmatically
+
+When configuring secure properties with scripts or workflow pipelines, use the `zowe config set` command. See Step 3 in [Configuring secure properties](#configuring-secure-properties) for instructions on how to use the command.
diff --git a/docs/user-guide/cli-using-using-team-profiles.md b/docs/user-guide/cli-using-using-team-profiles.md
index 0b4bd759ce..bb311dd1cd 100644
--- a/docs/user-guide/cli-using-using-team-profiles.md
+++ b/docs/user-guide/cli-using-using-team-profiles.md
@@ -6,13 +6,14 @@ Zowe CLI V2 introduces the concept of **team profiles**, which add *team* config
Both team and user configurations can be applied either *globally* or *per project*, as described in the following definitions:
+- A **team configuration file** stores *team profiles* and is used by a group of people who need the same properties to run commands.
+
- A **user configuration file** stores *user profiles* and is used for one person who needs their own unique properties to run commands.
-- A **team configuration file** stores *team profiles* and is used by a group of people who need the same properties to run commands.
+- A **project configuration file** resides in a directory of your choice. It contains project *user profiles* and project *team profiles*.
- A **global configuration file** resides in the `ZOWE_CLI_HOME` directory (YourUserHomeDirectory/.zowe, by default). It contains global *user profiles* and global *team profiles*.
-- A **project configuration file** resides in a directory of your choice. It contains project *user profiles* and project *team profiles*.
## Zowe CLI profile types
@@ -20,9 +21,32 @@ Configuration files are made up of multiple profiles that can be used by Zowe CL
The following profile types were introduced in Zowe V1 and continue to be used in Zowe V2:
+- **Base profiles** let you store connection information for use with one or more services. Your service profiles can pull information from base profiles as needed, so that you can specify a common username and password once. The base profile can optionally store tokens to connect to Zowe API Mediation Layer, which improves security by enabling Multi-Factor Authentication (MFA) and Single Sign-on (SSO).
+
- **Service profiles** let you store connection information for specific mainframe service, such as IBM z/OSMF. Plug-ins can introduce other service profile types, such as the `cics` profile to connect to IBM CICS.
-- **Base profiles** let you store connection information for use with one or more services. Your service profiles can pull information from base profiles as needed, so that you can specify a common username and password once. The base profile can optionally store tokens to connect to Zowe API Mediation Layer, which improves security by enabling Multi-Factor Authentication (MFA) and Single Sign-on (SSO).
+## Updating secure credentials
+
+To change an existing username or password in a team config profile, use the `zowe config secure` command for a quick update:
+
+1. Open the Zowe CLI command prompt.
+
+2. To update values for secure fields in a **project team** configuration file:
+ ```
+ zowe config secure
+ ```
+ To update values for secure fields in a **global team** configuration file:
+ ```
+ zowe config secure --global-config
+ ```
+ Prompts request new values for all secure fields defined in the configuration file. In most cases, these properties include a username or password, but some users may include other fields, such as a token value or connection properties.
+
+3. Respond to prompts as needed. Press `Enter` to leave the value unchanged.
+
+ New values are saved in the [secure credential store](../appendix/zowe-glossary#secure-credential-store). After the last secure value is submitted, the user returns to the system command prompt.
+
+For more ways to secure credentials in config profiles, see [Managing credential security](../user-guide/cli-using-team-managing-credential-security).
+
## Benefits of team profiles
Using team profiles in configuration files helps to improve the initial setup of Zowe CLI by making service connection details easier to share and easier to store within projects.
@@ -54,10 +78,6 @@ You can continue using Zowe CLI V1 profiles with Zowe CLI V2. However, we highly
:::
-
- Commands in the `zowe config` [command group](../user-guide/cli-using-understanding-core-command-groups#config) now let you manage security for any option value.
-- The `zowe scs` and `zowe config` command groups were repurposed to work with team profiles.
-
- Zowe CLI V2 prompts you to enter the username and password securely by default.
-
diff --git a/docs/user-guide/systemrequirements-cli.md b/docs/user-guide/systemrequirements-cli.md
index 464d521cbe..6f2d0cf67f 100644
--- a/docs/user-guide/systemrequirements-cli.md
+++ b/docs/user-guide/systemrequirements-cli.md
@@ -1,49 +1,93 @@
# Zowe CLI System requirements
-Before installing Zowe CLI, ensure that your environment meets the prerequisites that are described in this article.
+Before installing Zowe CLI, ensure that your environment meets the prerequisites that are described here.
+
## Client-side requirements
Zowe CLI is supported on Windows, Linux, and Mac operating systems. Meet the following requirements before you install the CLI:
-- **Node.js:** Install a currently supported version of [Node.js LTS](https://nodejs.org/en/). For a complete list of supported LTS versions, see [Nodejs Releases](https://nodejs.org/en/about/releases/).
+### Node.js
+
+The JavaScript runtime environment Node.js must be installed to run JavaScript applications (such as Zowe CLI) outside of a web browser.
+
+To install Node.js:
+
+ 1. Go to [Node.js LTS](https://nodejs.org/en/) to select and install a runtime version with active support.
+
+ For a list of supported LTS versions, see [Nodejs Releases](https://nodejs.org/en/about/previous-releases).
- **Note:** You might need to restart the command prompt after installing Node.js. Issue the following command to verify that Node.js is installed.
+ 2. Restart the command prompt after installing Node.js, if required.
+
+ 3. Verify that Node.js is installed:
```
node --version
```
+ Node.js is installed on your PC when a message returns with the correct Node.js version.
+
+ If you issue the `node --version` command and get an error message, confirm that your PATH environment variable includes the path to the Node.js installation location.
+
+:::info important
+If you are installing Zowe CLI with Node.js 16 on a Windows operating system, see [Installing Zowe CLI with Node.js 16 on Windows](../user-guide/cli-install-cli-nodejs-windows.md).
+:::
+
+### npm
- **Important!** If you are installing Zowe CLI with Node.js 16 on a Windows operating system, see [Installing Zowe CLI with Node.js 16 on Windows](../user-guide/cli-install-cli-nodejs-windows.md).
+Node Package Manager (npm) is included with most Node.js installations and is used to install and manage Node.js packages on your personal computer.
-- **npm:** Install a version of Node Package Manager (npm) that is compatible with your version of Node.js.
+Your installed version of npm must be compatible with your version of Node.js.
- npm is included with *most* Node.js installations. Issue the following command to determine your currently installed version of npm.
+To determine the installed version of npm:
+
+1. Issue the following command in the command prompt:
```
npm --version
```
+
+ A message returns with the installed version of npm.
- See [Node.js release matrix](https://nodejs.org/en/download/releases/) to verify that the versions are compatible.
+2. Verify that your installed version of npm is compatible with your version of Node.js by referring to the [Node.js release matrix](https://nodejs.org/en/about/previous-releases#looking-for-latest-release-of-a-version-branch).
+
+ If your npm version is not compatible, install a new version of Node.js.
+
+:::info important
+ If you are running npm version 8.11.0 or 8.12.0 and you are installing Zowe CLI on a computer that cannot access the Internet or has restricted Internet access, your Zowe CLI installation appears to complete successfully.
+
+ However, when you issue Zowe commands that access the Secure Credential Store, the commands return error messages. To circumvent this problem, install npm 8.12.1 or later on your computer. If you cannot upgrade to 8.12.1 or later, see [Zowe Commands Fail with Secure Credential Errors](../troubleshoot/cli/known-cli.md#zowe-commands-fail-with-secure-credential-errors).
+:::
+
+### Secure Credential Store
- **Important!** If you are running npm version 8.11.0 or 8.12.0 and you are installing Zowe CLI on a computer that cannot access the Internet or has restricted Internet access, your Zowe CLI installation appears to complete successfully. However, when you issue Zowe commands that access the secure credential store, the commands return error messages. To circumvent this problem, install npm 8.12.1 or later on your computer. If you cannot upgrade to 8.12.1 or later, see *Zowe Commands Fail with Secure Credential Errors* in [Known Zowe CLI issues](../troubleshoot/cli/known-cli.md).
+On Linux systems, you must install the packages `gnome-keyring` and `libsecret` (or `libsecret-1-0` on Debian and Ubuntu).
-- **Secure Credential Store:** On Linux systems, you must install the packages `gnome-keyring` and `libsecret` (or `libsecret-1-0` on Debian and Ubuntu).
+For information about how to configure Secure Credential Store on headless Linux and z/Linux, see [Configure Secure Credential Store on headless Linux operating systems](../user-guide/cli-configure-scs-on-headless-linux-os.md).
- **Note:** For information about how to configure Secure Credential Store on headless Linux and z/Linux, see [Configure Secure Credential Store on headless Linux operating systems](../user-guide/cli-configure-scs-on-headless-linux-os.md).
+### Plug-in client requirements
-- **Plug-in client requirements:** If you plan to install plug-ins, review the [Software requirements for CLI plug-ins](./cli-swreqplugins.md).
+If you plan to install plug-ins, review the [Software requirements for CLI plug-ins](./cli-swreqplugins.md).
- **Important!** Ensure that you meet the client-side requirements for the **IBM Db2** plug-in *before* you install it.
+:::info important
+Ensure that you meet the client-side requirements for the **IBM Db2** plug-in *before* it is installed.
+:::
## Host-side requirements
-Zowe CLI requires the following mainframe configuration:
+### IBM z/OSMF
+
+IBM z/OSMF must be configured and running.
+
+You do not need to install the full Zowe solution to install and use Zowe CLI. Minimally, an instance of IBM z/OSMF must be running on the mainframe before you can issue Zowe CLI commands successfully. z/OSMF enables the core capabilities, such as retrieving data sets, executing TSO commands, submitting jobs, and more. If Zowe API Mediation Layer (API ML) is configured and running, Zowe CLI users can choose to connect to API ML rather than to every separate service.
+
+### Plug-in services
+
+Services for plug-ins must be configured and running.
-- **IBM z/OSMF configured and running:** You do not need to install the full Zowe solution to install and use Zowe CLI. Minimally, an instance of IBM z/OSMF must be running on the mainframe before you can issue Zowe CLI commands successfully. z/OSMF enables the core capabilities, such as retrieving data sets, executing TSO commands, submitting jobs, and more. If Zowe API Mediation Layer (API ML) is configured and running, Zowe CLI users can choose to connect to API ML rather than to every separate service.
+Plug-ins communicate with various mainframe services. The services must be configured and running on the mainframe before issuing plug-in commands. For example, the IMS plug-in requires an instance of IBM IMS on the mainframe with IMS Connect (REST services) running. For more information, see [Software requirements for CLI plug-ins](./cli-swreqplugins.md)
-- **Plug-in services configured and running:** Plug-ins communicate with various mainframe services. The services must be configured and running on the mainframe before issuing plug-in commands. For example, the IMS plug-in requires an instance of IBM IMS on the mainframe with IMS Connect (REST services) running. For more information, see [Software requirements for CLI plug-ins](./cli-swreqplugins.md)
+### Zowe CLI on z/OS is not supported
-- **Zowe CLI on z/OS is not supported:** Zowe CLI can be installed on an IBM z/OS environment and run under Unix System Services (USS). However, the IBM Db2 plug-in cannot run on z/OS due to native code requirements. As such, Zowe CLI is _not supported on z/OS_ and is currently experimental.
+Zowe CLI can be installed on an IBM z/OS environment and run under Unix System Services (USS). However, the IBM Db2 plug-in cannot run on z/OS due to native code requirements. As such, Zowe CLI is *not supported* on z/OS and is currently experimental.
## Free disk space
diff --git a/release-handbook/release_handbook.md b/release-handbook/release_handbook.md
index b5601e1816..91281f69e4 100644
--- a/release-handbook/release_handbook.md
+++ b/release-handbook/release_handbook.md
@@ -41,8 +41,6 @@ The following schedule takes release version 2.4 as an example:
|Doc Freeze | 2022/10/16| 1 day before GA|
|Doc Publish | 2022/10/17| GA day |
-
-
### Release communication
The Zowe community communicates the release schedule in several ways.
@@ -52,8 +50,7 @@ The Zowe community communicates the release schedule in several ways.
Release contacts are as follows:
-- Release engineer: OJ Celis (Slack @OJ Celis)
-
+- Release engineer: Mark Ackert (Slack @Mark Ackert)
## Preparing documentation for a new release
@@ -154,6 +151,8 @@ Summary: Create new directories to archive content. Relocate content files for t
![Verify the archived doc](images/verify-archive.png)
+ **NOTE:** When the local build displays in your web browser, expect to see the previous minor release version listed twice in the Zowe Docs version drop-down menu. You will fix this in Part 3.
+
7. In GitHub, create a pull request to merge the content in your temporary branch into the `docs-staging` branch.
8. Using the **Create a merge commit** option, merge the pull request.
@@ -173,11 +172,10 @@ Summary: Using Visual Studio Code, update the necessary files to add the next re
1. Create and publish a new (temporary) branch based off the `docs-staging` branch.
2. Open your branch branch in Visual Studio Code.
3. Navigate to the `/docusaurus.config.js` file.
-4. Change the `LATEST_VERSION` variable present in the `/docusaurus.config.js` file to a new version.
-
- 1. Locate the presets: `> @docusaurus/preset-classic" > docs > versions`.
+4. Change the `LATEST_VERSION` variable present in Line 1 of the `/docusaurus.config.js` file to a new version.
+5. Locate the presets: `> @docusaurus/preset-classic" > docs > versions` in the `/docusaurus.config.js` file to include the previous version in the list.
- 2. Create an entry label for the previous version.
+ 1. Create an entry label for the previous version.
Example: If version v1.24.x docs is getting updated to v1.25.x, then v1.24.x will be appended between `current` and `v1.23.x` in the following format:
@@ -207,7 +205,7 @@ Summary: Using Visual Studio Code, update the necessary files to add the next re
},
```
-5. Open the `versions.json` file. Add the previous release version number at the top of the list. For example:
+5. Open the `versions.json` file. Confirm that the previous release version number was added to the top of the list. (This is typically done automatically by the command issued in Part 2, Step 3.) If not, manually add the version number. For example:
```
[
@@ -228,8 +226,8 @@ Summary: Using Visual Studio Code, create placeholder files for the next release
**Procedure**
1. In Visual Studio Code, add the release notes placeholder file for the new version to the temporary branch you created in [Part 3](#part-3-bump-the-release-version).
- 1. Go to `/docs/getting-started/release-notes`.
- 2. Create a file for the new version and add the outline to the document. For example: `/docs/getting-started/release-notes/v1_25.md`
+ 1. Go to `/docs/whats-new/release-notes`.
+ 2. Create a file for the new version and add the outline to the document. For example: `/docs/whats-new/release-notes/v1_25.md`
To insert the outline, copy and paste the template from the [Release Notes guide](release_notes_guide.md). Ensure that you update the release version number in the template.
@@ -239,10 +237,9 @@ Summary: Using Visual Studio Code, create placeholder files for the next release
type: "category",
label: "Release notes",
items: [
- "getting-started/release-notes/v1_25",
- "getting-started/release-notes/v1_24",
- "getting-started/release-notes/v1_23",
- "getting-started/summaryofchanges",
+ "whats-new/release-notes/v1_25",
+ "whats-new/release-notes/v1_24",
+ "whats-new/release-notes/v1_23",
],
},
```
diff --git a/release-handbook/release_notes_guide.md b/release-handbook/release_notes_guide.md
index 7d3f7e766a..22e75f290d 100644
--- a/release-handbook/release_notes_guide.md
+++ b/release-handbook/release_notes_guide.md
@@ -39,9 +39,24 @@ Zowe Version 2.3.0 contains the enhancements that are described in the following
#### IMS Plug-in for Zowe CLI
-
### Zowe Explorer
+#### Zowe Explorer (Core)
+
+- See the [Zowe Explorer](https://github.com/zowe/vscode-extension-for-zowe/blob/main/packages/zowe-explorer/CHANGELOG.md) changelog for updates included in this release.
+
+#### Zowe Explorer API
+
+- See the [Zowe Explorer API](https://github.com/zowe/vscode-extension-for-zowe/blob/main/packages/zowe-explorer-api/CHANGELOG.md) changelog for updates included in this release.
+
+#### Zowe Explorer FTP Extension
+
+- See the [Zowe Explorer FTP Extension](https://github.com/zowe/vscode-extension-for-zowe/blob/main/packages/zowe-explorer-ftp-extension/CHANGELOG.md) changelog for updates included in this release.
+
+#### Zowe Explorer ESLint Plug-in
+
+- See the [Zowe Explorer ESLint Plug-in](https://github.com/zowe/vscode-extension-for-zowe/blob/main/packages/eslint-plugin-zowe-explorer/CHANGELOG.md) changelog for updates included in this release.
+
## Bug fixes
Zowe Version 2.3.0 contains the bug fixes that are described in the following topics.
@@ -68,6 +83,22 @@ Zowe Version 2.3.0 contains the bug fixes that are described in the following to
### Zowe Explorer
+#### Zowe Explorer (Core)
+
+- See the [Zowe Explorer](https://github.com/zowe/vscode-extension-for-zowe/blob/main/packages/zowe-explorer/CHANGELOG.md) changelog for updates included in this release.
+
+#### Zowe Explorer API
+
+- See the [Zowe Explorer API](https://github.com/zowe/vscode-extension-for-zowe/blob/main/packages/zowe-explorer-api/CHANGELOG.md) changelog for updates included in this release.
+
+#### Zowe Explorer FTP Extension
+
+- See the [Zowe Explorer FTP Extension](https://github.com/zowe/vscode-extension-for-zowe/blob/main/packages/zowe-explorer-ftp-extension/CHANGELOG.md) changelog for updates included in this release.
+
+#### Zowe Explorer ESLint Plug-in
+
+- See the [Zowe Explorer ESLint Plug-in](https://github.com/zowe/vscode-extension-for-zowe/blob/main/packages/eslint-plugin-zowe-explorer/CHANGELOG.md) changelog for updates included in this release.
+
### Vulnerabilities fixed
Zowe discloses fixed vulnerabilities in a timely manner giving you sufficient time to plan your upgrades. Zowe does not disclose the vulnerabilities fixed in the latest release as we respect the need for at least 45 days to decide when and how you upgrade Zowe. When a new release is published, Zowe publishes the vulnerabilities fixed in the previous release. For more information about the Zowe security policy, see the [Security page](https://www.zowe.org/security.html) on the Zowe website.
diff --git a/scripts/updateTypedoc.sh b/scripts/updateTypedoc.sh
index c6602ff0d3..b0118d5085 100644
--- a/scripts/updateTypedoc.sh
+++ b/scripts/updateTypedoc.sh
@@ -20,7 +20,8 @@ rm -rf typedoc
rm -f zowe-nodejs-sdk-typedoc.zip
# Download and extract new files
-curl -L -o zowe-nodejs-sdk-typedoc.zip https://zowe.jfrog.io/artifactory/libs-release-local/org/zowe/sdk/zowe-nodejs-sdk/$ZOWE_VERSION/zowe-nodejs-sdk-typedoc-$ZOWE_VERSION-RC2.zip
+filename=$(curl https://zowe.jfrog.io/artifactory/libs-release-local/org/zowe/sdk/zowe-nodejs-sdk/$ZOWE_VERSION/ | grep -o 'zowe-nodejs-sdk-typedoc-[^"<]\+' | tail -1)
+curl -L -o zowe-nodejs-sdk-typedoc.zip https://zowe.jfrog.io/artifactory/libs-release-local/org/zowe/sdk/zowe-nodejs-sdk/$ZOWE_VERSION/$filename
unzip zowe-nodejs-sdk-typedoc.zip
# Stage changes in Git
diff --git a/sidebars.js b/sidebars.js
index 58ca69ee1f..346596ad6d 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -42,6 +42,10 @@ module.exports = {
label: "Zowe security",
link: {type: "doc", id: "getting-started/zowe-security-overview"},
items: [
+ { type: "doc",
+ label: "Glossary of Zowe Security terminology",
+ id: "appendix/zowe-security-glossary",
+ },
{ type: "doc",
label: "Digital Certificates",
id: "getting-started/zowe-certificates-overview",
@@ -647,6 +651,7 @@ module.exports = {
label: "Caching service",
items: [
"extend/extend-apiml/api-mediation-caching-service",
+ "extend/extend-apiml/api-mediation-infinispan"
"extend/extend-apiml/api-mediation-vsam",
"extend/extend-apiml/api-mediation-redis",
],
@@ -769,7 +774,14 @@ module.exports = {
"troubleshoot/cli/troubleshoot-cli-credentials",
"troubleshoot/cli/known-cli",
"troubleshoot/cli/cli-issue",
- "troubleshoot/cli/troubleshoot-cli-plugins",
+ ],
+ },
+ {
+ type: "category",
+ label: "Troubleshooting Zowe CLI plug-ins",
+ link: {type:"doc", id:"troubleshoot/cli/troubleshoot-cli-plugins"},
+ items: [
+ "troubleshoot/cli/troubleshoot-ibm-db2-database-plug-in",
],
},
{
diff --git a/static/zowe-docs.pdf b/static/zowe-docs.pdf
index 7ab484f8dd..97448c526b 100644
Binary files a/static/zowe-docs.pdf and b/static/zowe-docs.pdf differ
diff --git a/versioned_docs/version-v2.12.x/getting-started/release-notes/v2_11_0.md b/versioned_docs/version-v2.12.x/getting-started/release-notes/v2_11_0.md
index 4ce51f7738..8aa9467e8f 100644
--- a/versioned_docs/version-v2.12.x/getting-started/release-notes/v2_11_0.md
+++ b/versioned_docs/version-v2.12.x/getting-started/release-notes/v2_11_0.md
@@ -1,4 +1,4 @@
-# Version 2.11.0 (September 2023)
+# Version 2.11.0 (September 2023)
Welcome to the Zowe Version 2.11.0 release!