Compare commits
103 commits
test-branc
...
main
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9c0ba04b31 | ||
![]() |
e499287079 | ||
![]() |
2a9a6c3562 | ||
![]() |
ad5d38259c | ||
![]() |
7c1f8fa48e | ||
![]() |
8dd4d0fda4 | ||
![]() |
5bbfcee0b6 | ||
![]() |
cb5c1fa809 | ||
![]() |
64e86994f7 | ||
![]() |
a97003bac2 | ||
![]() |
2576a495cf | ||
![]() |
d2ea50a0f2 | ||
![]() |
3246df75b6 | ||
![]() |
acb4e42fde | ||
![]() |
c3e54ef0d8 | ||
![]() |
d9b6e47e88 | ||
![]() |
8b56826363 | ||
![]() |
476b566c08 | ||
![]() |
298f45178f | ||
![]() |
adc964e823 | ||
![]() |
3d06d74645 | ||
![]() |
8f19909cc1 | ||
![]() |
3fdba6e880 | ||
![]() |
8c64f8e026 | ||
![]() |
ad9f303380 | ||
![]() |
7d4ba87bc1 | ||
![]() |
8585aba89f | ||
![]() |
3b8c7a770e | ||
![]() |
9d5a0cd12c | ||
![]() |
0322b1694a | ||
![]() |
3b460dda66 | ||
![]() |
0c78c1f31c | ||
![]() |
7985bd0143 | ||
![]() |
1862acceb5 | ||
![]() |
0bcc37a0f7 | ||
![]() |
b29242dfd4 | ||
![]() |
a284ca07ca | ||
![]() |
f048b46667 | ||
![]() |
31f7728602 | ||
![]() |
e3c11cce16 | ||
![]() |
2159709812 | ||
![]() |
b36e40357d | ||
![]() |
8749c21f4d | ||
![]() |
0ea6c16ac4 | ||
![]() |
abb6b71e62 | ||
![]() |
6370f83466 | ||
![]() |
1717d42faf | ||
![]() |
01720cd9e0 | ||
![]() |
b3faa1d7b5 | ||
![]() |
b1384788f5 | ||
![]() |
b238df4f49 | ||
![]() |
10e59b25f9 | ||
![]() |
13db095885 | ||
![]() |
000b294999 | ||
![]() |
e91454875b | ||
![]() |
942af6a91d | ||
![]() |
37a3dac008 | ||
![]() |
cb73084dc5 | ||
![]() |
0e966a64e5 | ||
![]() |
da86943cb6 | ||
![]() |
ee235e2294 | ||
![]() |
837bb2380d | ||
![]() |
5f565d3aae | ||
![]() |
dbd46f4484 | ||
![]() |
d756b11b60 | ||
![]() |
85eeee0000 | ||
![]() |
64e093931a | ||
![]() |
09ca7bd838 | ||
![]() |
7d88f7068b | ||
![]() |
2d0fff581e | ||
![]() |
206d725663 | ||
![]() |
73442fe8c2 | ||
![]() |
6c7d242679 | ||
![]() |
7c41f5dca0 | ||
![]() |
5b827b6acf | ||
![]() |
1db557a399 | ||
![]() |
41259a6971 | ||
![]() |
657c4bd688 | ||
![]() |
3b564c6d4b | ||
![]() |
28f8f9b5b3 | ||
![]() |
0448c231ac | ||
![]() |
639ae09fe1 | ||
![]() |
aa07c8447a | ||
![]() |
b4615658dd | ||
![]() |
7d6fea45cc | ||
![]() |
bb243fb00d | ||
![]() |
2bb81c05b5 | ||
![]() |
ec76f95510 | ||
![]() |
80e47c2a61 | ||
![]() |
a2bd4b38af | ||
![]() |
8e6563fa67 | ||
![]() |
2aa713fe20 | ||
![]() |
92dac9a17e | ||
![]() |
ca62af669e | ||
![]() |
784387cbc7 | ||
![]() |
0d4ebf715c | ||
![]() |
a3019ad7e3 | ||
![]() |
14ea80d54e | ||
![]() |
da8e6573f9 | ||
![]() |
1c358fabf7 | ||
![]() |
09f17906cb | ||
![]() |
75d41af8d6 | ||
![]() |
3db0095947 |
43 changed files with 5722 additions and 7336 deletions
|
@ -1,18 +0,0 @@
|
|||
# [Choice] Node.js version (use -bullseye variants on local arm64/Apple Silicon): 18, 16, 14, 18-bullseye, 16-bullseye, 14-bullseye, 18-buster, 16-buster, 14-buster
|
||||
ARG VARIANT=16-bullseye
|
||||
FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:${VARIANT}
|
||||
|
||||
# [Optional] Uncomment this section to install additional OS packages.
|
||||
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
||||
# && apt-get -y install --no-install-recommends <your-package-list-here>
|
||||
|
||||
RUN apt-get update && apt-get install gnupg2 -y
|
||||
|
||||
RUN npm i --location=global release-please
|
||||
|
||||
# [Optional] Uncomment if you want to install an additional version of node using nvm
|
||||
# ARG EXTRA_NODE_VERSION=10
|
||||
# RUN su node -c "source /usr/local/share/nvm/nvm.sh && nvm install ${EXTRA_NODE_VERSION}"
|
||||
|
||||
# [Optional] Uncomment if you want to install more global node packages
|
||||
# RUN su node -c "npm install -g <your-package-list -here>"
|
|
@ -1,22 +1,27 @@
|
|||
{
|
||||
"name": "Node.js & TypeScript",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
// Update 'VARIANT' to pick a Node version: 18, 16, 14.
|
||||
// Append -bullseye or -buster to pin to an OS version.
|
||||
// Use -bullseye variants on local on arm64/Apple Silicon.
|
||||
"args": {
|
||||
"VARIANT": "16-bullseye"
|
||||
}
|
||||
},
|
||||
"image": "mcr.microsoft.com/devcontainers/base:jammy",
|
||||
|
||||
"mounts": [
|
||||
"source=${localEnv:HOME}${localEnv:USERPROFILE}/.ssh/personal_id_rsa.pub,target=/home/vscode/.hostssh/id_rsa.pub,readonly,type=bind,consistency=cached"
|
||||
],
|
||||
"features": {
|
||||
"ghcr.io/devcontainers-contrib/features/node-asdf:0": {},
|
||||
},
|
||||
// Configure tool-specific properties.
|
||||
"customizations": {
|
||||
// Configure properties specific to VS Code.
|
||||
"vscode": {
|
||||
// Add the IDs of extensions you want installed when the container is created.
|
||||
"extensions": [
|
||||
"dbaeumer.vscode-eslint"
|
||||
"ms-vscode-remote.remote-containers",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"GitHub.copilot",
|
||||
"GitHub.copilot-chat",
|
||||
"esbenp.prettier-vscode",
|
||||
"rvest.vs-code-prettier-eslint",
|
||||
"bierner.markdown-mermaid",
|
||||
"stylelint.vscode-stylelint"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
@ -25,8 +30,8 @@
|
|||
// "forwardPorts": [],
|
||||
|
||||
// Use 'postCreateCommand' to run commands after the container is created.
|
||||
// "postCreateCommand": "yarn install",
|
||||
"postCreateCommand": "/bin/bash ./.devcontainer/scripts/tools.sh >> ~/post-create-tools.log",
|
||||
|
||||
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
||||
"remoteUser": "node"
|
||||
"remoteUser": "vscode"
|
||||
}
|
12
.devcontainer/scripts/tools.sh
Normal file
12
.devcontainer/scripts/tools.sh
Normal file
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
mkdir -p ~/.ssh && \
|
||||
touch ~/.ssh/known_hosts && \
|
||||
sudo tee ~/.ssh/config > /dev/null << EOF
|
||||
Host github.com
|
||||
HostName github.com
|
||||
PreferredAuthentications publickey
|
||||
IdentityFile ~/.hostssh/id_rsa.pub
|
||||
EOF
|
||||
|
||||
sudo chown -R vscode:vscode ~/.ssh
|
|
@ -1,3 +1,9 @@
|
|||
.git
|
||||
.cache
|
||||
app/node_modules
|
||||
app/client/src
|
||||
app/scripts
|
||||
app/.*
|
||||
app/*.sample
|
||||
app/client/tsconfig.json
|
||||
app/CHANGELOG.md
|
||||
|
|
75
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
75
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
|
@ -0,0 +1,75 @@
|
|||
name: Bug Report
|
||||
description: File a bug report
|
||||
title: "[Bug]: "
|
||||
labels: ["bug", "triage"]
|
||||
assignees:
|
||||
- billchurch
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Depending on the type of issue, please include the follwing information:
|
||||
- type: textarea
|
||||
id: what-happened
|
||||
attributes:
|
||||
label: What happened?
|
||||
description: Also tell us, what did you expect to happen?
|
||||
placeholder: Tell us what you see!
|
||||
value: "A bug happened!"
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: node_ver
|
||||
attributes:
|
||||
label: Node Version
|
||||
description: version of Node this problem occurs on
|
||||
placeholder: npm -v
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: npm_ver
|
||||
attributes:
|
||||
label: NPM Version
|
||||
description: version of NPM this problem occurs on
|
||||
placeholder: npm -v
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: server_ver
|
||||
attributes:
|
||||
label: Server OS Version
|
||||
description: Server OS Version / Distribution / Processor Architecture
|
||||
placeholder: uname -a;cat /etc/os-release
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: webssh2_ver
|
||||
attributes:
|
||||
label: WebSSH2 release version
|
||||
description: Version of WebSSH you are using
|
||||
placeholder: grep version app/package.json
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: sshhost_ver
|
||||
attributes:
|
||||
label: OS and Version of SSH server
|
||||
description: OS and Version of SSH server connecting to
|
||||
placeholder: 'on target server run: uname -a;sshd -v'
|
||||
validations:
|
||||
required: false
|
||||
- type: input
|
||||
id: browser_ver
|
||||
attributes:
|
||||
label: Browser Version
|
||||
description: Information from brwoser's About... or a screenshot of the about screen.
|
||||
placeholder:
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Relevant log output
|
||||
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
||||
render: shell
|
||||
|
10
.github/ISSUE_TEMPLATE/custom.md
vendored
Normal file
10
.github/ISSUE_TEMPLATE/custom.md
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
name: Question
|
||||
about: General how-to questions
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
|
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
2
.github/workflows/action-test.yml
vendored
2
.github/workflows/action-test.yml
vendored
|
@ -62,4 +62,4 @@ jobs:
|
|||
file: ./Dockerfile
|
||||
platforms: linux/amd64,linux/arm64,linux/ppc64le
|
||||
push: true
|
||||
tags: ${{ steps.prep.outputs.tags }}
|
||||
tags: ${{ steps.prep.outputs.tags }}
|
||||
|
|
69
.github/workflows/docker-multiplatform-tag.yml
vendored
Normal file
69
.github/workflows/docker-multiplatform-tag.yml
vendored
Normal file
|
@ -0,0 +1,69 @@
|
|||
---
|
||||
name: 'Build Docker On Tag'
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- bigip-server
|
||||
tags:
|
||||
- 'v[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
|
||||
workflow_dispatch: # Allows manual triggering from the GitHub UI
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 'Checkout'
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Prepare
|
||||
id: prep
|
||||
run: |
|
||||
DOCKER_IMAGE=${{ secrets.DOCKER_USERNAME }}/${GITHUB_REPOSITORY#*/}
|
||||
|
||||
# If this is a git tag, use the tag name as a docker tag
|
||||
if [[ $GITHUB_REF == refs/tags/* ]]; then
|
||||
VERSION=${GITHUB_REF#refs/tags/v}
|
||||
TAGS="${DOCKER_IMAGE}:${VERSION}"
|
||||
fi
|
||||
|
||||
# If this is a git branch, use the branch name as a docker tag
|
||||
if [[ $GITHUB_REF == refs/heads/* ]]; then
|
||||
VERSION=${GITHUB_REF#refs/heads/}
|
||||
TAGS="${DOCKER_IMAGE}:${VERSION}"
|
||||
fi
|
||||
|
||||
# If the VERSION looks like a version number, also tag as 'latest'
|
||||
if [[ $VERSION =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
|
||||
TAGS="$TAGS,${DOCKER_IMAGE}:latest"
|
||||
fi
|
||||
|
||||
# Set output parameters
|
||||
echo ::set-output name=tags::${TAGS}
|
||||
echo ::set-output name=docker_image::${DOCKER_IMAGE}
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
with:
|
||||
platforms: all
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to DockerHub
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
builder: ${{ steps.buildx.outputs.name }}
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
platforms: linux/amd64,linux/arm64,linux/ppc64le
|
||||
push: true
|
||||
tags: ${{ steps.prep.outputs.tags }}
|
6
.github/workflows/docker-multiplatform.yml
vendored
6
.github/workflows/docker-multiplatform.yml
vendored
|
@ -2,8 +2,8 @@
|
|||
name: 'Build Docker Images'
|
||||
|
||||
on:
|
||||
tags:
|
||||
- '**'
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
|
@ -18,7 +18,7 @@ jobs:
|
|||
|
||||
# If this is git tag, use the tag name as a docker tag
|
||||
if [[ $GITHUB_REF == refs/tags/* ]]; then
|
||||
VERSION=${GITHUB_REF#refs/tags/}
|
||||
VERSION=${GITHUB_REF#refs/tags/webssh2-v}
|
||||
TAGS="${DOCKER_IMAGE}:${VERSION}"
|
||||
fi
|
||||
|
||||
|
|
56
.github/workflows/release.yml
vendored
56
.github/workflows/release.yml
vendored
|
@ -1,41 +1,47 @@
|
|||
---
|
||||
name: 'Create Release'
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
paths-ignore:
|
||||
- '.github/**'
|
||||
- '.devcontainer/**'
|
||||
- '.**'
|
||||
- '**.md'
|
||||
jobs:
|
||||
release-please:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
paths_released: ${{ steps.manifest_release.outputs.paths_released }}
|
||||
steps:
|
||||
- uses: google-github-actions/release-please-action@v3
|
||||
id: manifest_release
|
||||
with:
|
||||
token: ${{ secrets.RELEASE_PLEASE_UAT }}
|
||||
command: manifest
|
||||
package-name: webssh2
|
||||
path: app
|
||||
default-branch: main
|
||||
release-type: node
|
||||
package-name: release-please-action
|
||||
|
||||
# The logic below handles the npm publication:
|
||||
- name: Checkout Repository
|
||||
if: ${{ steps.release.outputs.releases_created }}
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v1
|
||||
if: ${{ steps.release.outputs.releases_created }}
|
||||
publish:
|
||||
runs-on: ubuntu-20.04
|
||||
needs: release
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
path: ${{fromJson(needs.release.outputs.paths_released)}}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14
|
||||
node-version: 16
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
- name: Build Packages
|
||||
if: ${{ steps.release.outputs.releases_created }}
|
||||
run: |
|
||||
npm install
|
||||
npx lerna bootstrap
|
||||
|
||||
# Release Please has already incremented versions and published tags, so we just
|
||||
# need to publish all unpublished versions to NPM here
|
||||
# See: https://github.com/lerna/lerna/tree/main/commands/publish#bump-from-package
|
||||
- name: Publish to NPM
|
||||
if: ${{ steps.release.outputs.releases_created }}
|
||||
- name: publish-to-npm
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
|
||||
run: npx lerna publish from-package --no-push --no-private --yes
|
||||
run: |
|
||||
cd ${{ matrix.path }}
|
||||
npm install
|
||||
npx lerna bootstrap
|
||||
npx lerna publish from-package --no-push --no-private --yes
|
|
@ -1,3 +1,3 @@
|
|||
{
|
||||
"app": "0.4.6"
|
||||
"app": "0.5.0-pre-4"
|
||||
}
|
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
e2e70f7d2949b6c8fe0299f888a3725763a62c01a1faea1fb729babc2ed51c92 Build/Release/BIG-IP-ILX-WebSSH2-0.2.8.tgz
|
|
@ -1,7 +1,9 @@
|
|||
FROM node:16-alpine
|
||||
|
||||
RUN apk update && apk add bash
|
||||
|
||||
WORKDIR /usr/src
|
||||
COPY app/ /usr/src/
|
||||
RUN npm install --omit=dev
|
||||
RUN npm ci --audit=false --bin-links=false --fund=false
|
||||
EXPOSE 2222/tcp
|
||||
ENTRYPOINT [ "/usr/local/bin/node", "index.js" ]
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
Depending on the type of issue, please include the follwing information:
|
||||
- Node and NPM Version
|
||||
- `node -v`
|
||||
- `npm -v`
|
||||
- Server OS Version / Distribution / Processor Architecture
|
||||
- `uname -a`
|
||||
- `cat /etc/os-release`
|
||||
- WebSSH2 release version
|
||||
- `grep version app/package.json`
|
||||
- OS and Version of SSH server connecting to
|
||||
- `uname -a`
|
||||
- `sshd -v`
|
||||
- Browser Version and OS
|
||||
- Information from brwoser's About... or a screenshot of the about screen.
|
||||
- Any log or messages from the WebSSH2 output
|
16
README.md
16
README.md
|
@ -8,7 +8,7 @@ Web SSH Client using ssh2, socket.io, xterm.js, and express
|
|||
|
||||
A bare bones example of an HTML5 web-based terminal emulator and SSH client. We use SSH2 as a client on a host to proxy a Websocket / Socket.io connection to a SSH2 server.
|
||||
|
||||
<img width="600" height="340" alt="WebSSH2 v0.2.0 demo" src="https://github.com/billchurch/WebSSH2/raw/main/screenshots/demo-800.gif">
|
||||
<img width="600" height="340" alt="WebSSH2 v0.2.0 demo" src="https://user-images.githubusercontent.com/1668075/182425293-acc8741e-cc92-4105-afdc-9538e1685d4b.gif">
|
||||
|
||||
# Requirements
|
||||
Node v14.x or above. If using <v14.x you should be able to run by replacing the "read-config" package to @1 like this (after a clone):
|
||||
|
@ -45,7 +45,19 @@ Alternatively in main for testing, you can send credentials via POST with the va
|
|||
|
||||
See [BUILDING.md](BUILDING.md) for more details.
|
||||
|
||||
# Docker Instructions
|
||||
# Docker
|
||||
|
||||
## NOTICE
|
||||
Docker versions differ from what is in `main` and are release dependant.
|
||||
|
||||
Meaning billchurch/webssh2:latest is the latest official release. This does NOT sync with what is in `main` on this repo. `main` is development and will change until it gets a release tag.
|
||||
|
||||
On occasion, examples or instructions on `main` will drift from what is released. You should refer to the tag of the version you're using to ensure you are following the proper guidance.
|
||||
|
||||
That being said the most current release version is [0.4.6](https://github.com/billchurch/webssh2/tree/0.4.6), see that tag for details.
|
||||
|
||||
## Instructions
|
||||
|
||||
Some configuration options are available as [Environment Variables](#environment-variables). If there is a configuration option you require which does not have an environment variable please [open an issue requesting](../../issues/new/choose).
|
||||
|
||||
[webssh2 images are available in docker hub](https://hub.docker.com/repository/docker/billchurch/webssh2).
|
||||
|
|
|
@ -13,4 +13,4 @@ The following versions will get security updates.
|
|||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
If you find a vulnerability, simply [open an issue](../../issues/new) with the details, use the lable `security`.
|
||||
If you find a vulnerability, simply [open an issue](../../issues/new) with the details, use the label `security`.
|
||||
|
|
|
@ -2,6 +2,59 @@
|
|||
|
||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||
|
||||
## [0.5.0-pre-4](https://github.com/billchurch/webssh2/compare/webssh2-v0.4.7-pre-4...webssh2-v0.5.0-pre-4) (2022-08-07)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* test change for release ([476b566](https://github.com/billchurch/webssh2/commit/476b566c08a84bd35aaccf847253875b2c3afb10))
|
||||
|
||||
## [0.4.7-pre-4](https://github.com/billchurch/webssh2/compare/webssh2-v0.4.7-pre-3...webssh2-v0.4.7-pre-4) (2022-08-03)
|
||||
|
||||
|
||||
### Miscellaneous Chores
|
||||
|
||||
* release 0.4.7-pre-4 ([7d4ba87](https://github.com/billchurch/webssh2/commit/7d4ba87bc1c198600ea33ee220553ef46ea2a103))
|
||||
|
||||
## [0.4.7-pre-3](https://github.com/billchurch/webssh2/compare/webssh2-v0.4.7-pre-2...webssh2-v0.4.7-pre-3) (2022-08-03)
|
||||
|
||||
|
||||
### Miscellaneous Chores
|
||||
|
||||
* release 0.4.7-pre-3 ([0c78c1f](https://github.com/billchurch/webssh2/commit/0c78c1f31cc6380b7f0706822fc418cfede11413))
|
||||
|
||||
## [0.4.7-pre-2](https://github.com/billchurch/webssh2/compare/webssh2-v0.4.6...webssh2-v0.4.7-pre-2) (2022-08-02)
|
||||
|
||||
|
||||
### ⚠ BREAKING CHANGES
|
||||
|
||||
* validate referer to /reauth is valid
|
||||
* bump xterm to 4.18.0
|
||||
* consistent logging messages see #286
|
||||
* config system changes #284 (#285)
|
||||
|
||||
### Features
|
||||
|
||||
* add additional params for POST requests [#290](https://github.com/billchurch/webssh2/issues/290) ([46c1560](https://github.com/billchurch/webssh2/commit/46c1560e3c126376e18124e14e5c7fb8c029a0a1))
|
||||
* add additional vars to POST requests [#290](https://github.com/billchurch/webssh2/issues/290) ([0a4e419](https://github.com/billchurch/webssh2/commit/0a4e419fb371ae95340fa890497022a2aa9d063a))
|
||||
* add fontFamily, letterSpacing, lineHeight ([97f3088](https://github.com/billchurch/webssh2/commit/97f3088780744e13a6724a4967a4896aac3f20d8))
|
||||
* add fontSize option [#292](https://github.com/billchurch/webssh2/issues/292) ([5e78812](https://github.com/billchurch/webssh2/commit/5e788129744d326e78ec91bda86ed5cecfd70d3f))
|
||||
* config system changes [#284](https://github.com/billchurch/webssh2/issues/284) ([#285](https://github.com/billchurch/webssh2/issues/285)) ([9c99b09](https://github.com/billchurch/webssh2/commit/9c99b0940ec726193deae3c4999d25a297874d67))
|
||||
* consistent logging messages see [#286](https://github.com/billchurch/webssh2/issues/286) ([50cfcb9](https://github.com/billchurch/webssh2/commit/50cfcb97788cbd3409b4605adceef3d47e370e38))
|
||||
* credentials over http post for [#290](https://github.com/billchurch/webssh2/issues/290) ([5b8f88c](https://github.com/billchurch/webssh2/commit/5b8f88cfef1745c88748277217204e6c38c7ff7e))
|
||||
* reorder viewport setup at ssh handshake [#292](https://github.com/billchurch/webssh2/issues/292) ([140e1e2](https://github.com/billchurch/webssh2/commit/140e1e24b14d6b74848e9d250c2b44f806ad627d))
|
||||
* validate referer to /reauth is valid ([0dcaa6e](https://github.com/billchurch/webssh2/commit/0dcaa6e15062cdc3252ce52abd9057caf4c00a30))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Fix the parameter passing problem of setDefaultCredentials to make it perform data initialization normally ([#288](https://github.com/billchurch/webssh2/issues/288)) ([40cbb35](https://github.com/billchurch/webssh2/commit/40cbb35616fa17c1c36520690f40ebce0b488153))
|
||||
* invalid css in style.css ([ffab534](https://github.com/billchurch/webssh2/commit/ffab5345dcb568fa2bb50a96f403174ad3728286))
|
||||
|
||||
|
||||
### package
|
||||
|
||||
* bump xterm to 4.18.0 ([84c09ec](https://github.com/billchurch/webssh2/commit/84c09ec8a1909e4bbd0051debdbb905276a4245e))
|
||||
|
||||
### [0.4.6](https://github.com/billchurch/WebSSH2/compare/v0.2.10-0...v0.4.6) (2022-04-17)
|
||||
|
||||
|
|
21
app/LICENSE
Normal file
21
app/LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2017 Bill Church
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
BIN
app/bun.lockb
Executable file
BIN
app/bun.lockb
Executable file
Binary file not shown.
File diff suppressed because one or more lines are too long
|
@ -1,5 +0,0 @@
|
|||
/*!
|
||||
* Font Awesome Free 6.1.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2022 Fonticons, Inc.
|
||||
*/
|
|
@ -140,7 +140,7 @@
|
|||
cursor: crosshair;
|
||||
}
|
||||
|
||||
.xterm .xterm-accessibility,
|
||||
.xterm .xterm-accessibility:not(.debug),
|
||||
.xterm .xterm-message {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
|
@ -149,6 +149,16 @@
|
|||
right: 0;
|
||||
z-index: 10;
|
||||
color: transparent;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.xterm .xterm-accessibility-tree:not(.debug) *::selection {
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
.xterm .xterm-accessibility-tree {
|
||||
user-select: text;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.xterm .live-region {
|
||||
|
@ -160,13 +170,27 @@
|
|||
}
|
||||
|
||||
.xterm-dim {
|
||||
opacity: 0.5;
|
||||
/* Dim should not apply to background, so the opacity of the foreground color is applied
|
||||
* explicitly in the generated class and reset to 1 here */
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
.xterm-underline {
|
||||
text-decoration: underline;
|
||||
.xterm-underline-1 { text-decoration: underline; }
|
||||
.xterm-underline-2 { text-decoration: double underline; }
|
||||
.xterm-underline-3 { text-decoration: wavy underline; }
|
||||
.xterm-underline-4 { text-decoration: dotted underline; }
|
||||
.xterm-underline-5 { text-decoration: dashed underline; }
|
||||
|
||||
.xterm-overline {
|
||||
text-decoration: overline;
|
||||
}
|
||||
|
||||
.xterm-overline.xterm-underline-1 { text-decoration: overline underline; }
|
||||
.xterm-overline.xterm-underline-2 { text-decoration: overline double underline; }
|
||||
.xterm-overline.xterm-underline-3 { text-decoration: overline wavy underline; }
|
||||
.xterm-overline.xterm-underline-4 { text-decoration: overline dotted underline; }
|
||||
.xterm-overline.xterm-underline-5 { text-decoration: overline dashed underline; }
|
||||
|
||||
.xterm-strikethrough {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
@ -176,8 +200,12 @@
|
|||
position: absolute;
|
||||
}
|
||||
|
||||
.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer {
|
||||
z-index: 7;
|
||||
}
|
||||
|
||||
.xterm-decoration-overview-ruler {
|
||||
z-index: 7;
|
||||
z-index: 8;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* eslint-disable import/no-extraneous-dependencies */
|
||||
import { io } from 'socket.io-client';
|
||||
import { Terminal } from 'xterm';
|
||||
import { FitAddon } from 'xterm-addon-fit';
|
||||
import { Terminal } from '@xterm/xterm';
|
||||
import { FitAddon } from '@xterm/addon-fit';
|
||||
import { library, dom } from '@fortawesome/fontawesome-svg-core';
|
||||
import { faBars, faClipboard, faDownload, faKey, faCog } from '@fortawesome/free-solid-svg-icons';
|
||||
|
||||
|
@ -9,7 +9,7 @@ library.add(faBars, faClipboard, faDownload, faKey, faCog);
|
|||
dom.watch();
|
||||
|
||||
const debug = require('debug')('WebSSH2');
|
||||
require('xterm/css/xterm.css');
|
||||
require('@xterm/xterm/css/xterm.css');
|
||||
require('../css/style.css');
|
||||
|
||||
/* global Blob, logBtn, credentialsBtn, reauthBtn, downloadLogBtn */ // eslint-disable-line
|
||||
|
|
|
@ -5,7 +5,9 @@
|
|||
*
|
||||
* WebSSH2 - Web to SSH2 gateway
|
||||
* Bill Church - https://github.com/billchurch/WebSSH2 - May 2017
|
||||
* See LICENSE file
|
||||
*
|
||||
* test change
|
||||
*/
|
||||
|
||||
const { config } = require('./server/app');
|
||||
|
|
12497
app/package-lock.json
generated
12497
app/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "webssh2",
|
||||
"version": "0.4.6",
|
||||
"version": "0.6.0-pre-1",
|
||||
"ignore": [
|
||||
".gitignore"
|
||||
],
|
||||
|
@ -35,15 +35,15 @@
|
|||
"basic-auth": "~2.0.1",
|
||||
"cidr-matcher": "^2.1.1",
|
||||
"debug": "^4.3.4",
|
||||
"express": "^4.18.1",
|
||||
"express-session": "^1.17.3",
|
||||
"json-merger": "^1.1.9",
|
||||
"express": "^4.19.2",
|
||||
"express-session": "^1.18.0",
|
||||
"morgan": "~1.10.0",
|
||||
"read-config-ng": "^3.0.5",
|
||||
"read-config-ng": "^3.0.7",
|
||||
"serve-favicon": "^2.5.0",
|
||||
"socket.io": "^4.5.1",
|
||||
"ssh2": "^1.11.0",
|
||||
"validator": "^13.7.0"
|
||||
"socket.io": "^4.7.5",
|
||||
"ssh2": "^1.15.0",
|
||||
"validator": "^13.11.0",
|
||||
"winston": "^3.13.0"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "node index.js",
|
||||
|
@ -56,36 +56,34 @@
|
|||
"release": "standard-version"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fortawesome/fontawesome-svg-core": "^6.1.2",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.1.2",
|
||||
"@typescript-eslint/eslint-plugin": "^5.31.0",
|
||||
"@typescript-eslint/parser": "^5.31.0",
|
||||
"@fortawesome/fontawesome-svg-core": "^6.5.2",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.5.2",
|
||||
"@typescript-eslint/eslint-plugin": "^7.7.1",
|
||||
"@typescript-eslint/parser": "^7.7.1",
|
||||
"@xterm/addon-fit": "^0.10.0",
|
||||
"@xterm/xterm": "^5.5.0",
|
||||
"clean-webpack-plugin": "^4.0.0",
|
||||
"copy-webpack-plugin": "^11.0.0",
|
||||
"css-loader": "^6.7.1",
|
||||
"eslint": "^8.21.0",
|
||||
"copy-webpack-plugin": "^12.0.2",
|
||||
"css-loader": "^7.1.1",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-config-airbnb-base": "^15.0.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"mini-css-extract-plugin": "^2.6.1",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"mini-css-extract-plugin": "^2.9.0",
|
||||
"nodaemon": "0.0.5",
|
||||
"prettier": "^2.7.1",
|
||||
"npm-check-updates": "^16.14.20",
|
||||
"prettier": "^3.2.5",
|
||||
"snazzy": "^9.0.0",
|
||||
"snyk": "^1.981.0",
|
||||
"socket.io-client": "^4.5.1",
|
||||
"source-map-loader": "^4.0.0",
|
||||
"snyk": "^1.1290.0",
|
||||
"socket.io-client": "^4.7.5",
|
||||
"source-map-loader": "^5.0.0",
|
||||
"standard-version": "^9.5.0",
|
||||
"terser-webpack-plugin": "^5.3.3",
|
||||
"ts-loader": "^9.3.1",
|
||||
"typescript": "^4.7.4",
|
||||
"webpack": "^5.74.0",
|
||||
"webpack-cli": "^4.10.0",
|
||||
"webpack-merge": "^5.8.0",
|
||||
"xterm": "^4.19.0",
|
||||
"xterm-addon-fit": "^0.5.0"
|
||||
},
|
||||
"resolutions": {
|
||||
"trim-newlines": "^3.0.1"
|
||||
"terser-webpack-plugin": "^5.3.10",
|
||||
"ts-loader": "^9.5.1",
|
||||
"typescript": "^5.4.5",
|
||||
"webpack": "^5.91.0",
|
||||
"webpack-cli": "^5.1.4",
|
||||
"webpack-merge": "^5.10.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ const express = require('express');
|
|||
const logger = require('morgan');
|
||||
|
||||
const app = express();
|
||||
const server = require('http').Server(app);
|
||||
const server = require('http').createServer(app);
|
||||
const favicon = require('serve-favicon');
|
||||
const io = require('socket.io')(server, config.socketio);
|
||||
const session = require('express-session')(config.express);
|
||||
|
@ -102,7 +102,8 @@ const onConnection = (socket) => {
|
|||
});
|
||||
socket.on('geometry', (cols, rows) => {
|
||||
// TODO need to rework how we pass settings to ssh2, this is less than ideal
|
||||
socket.request.session.ssh.terminfo = { cols, rows };
|
||||
socket.request.session.ssh.cols = cols;
|
||||
socket.request.session.ssh.rows = rows;
|
||||
webssh2debug(socket, `SOCKET GEOMETRY: termCols = ${cols}, termRows = ${rows}`);
|
||||
});
|
||||
};
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
no-console: ["error", { allow: ["warn", "error", "info"] }] */
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const merger = require('json-merger');
|
||||
const debugWebSSH2 = require('debug')('WebSSH2');
|
||||
const crypto = require('crypto');
|
||||
const util = require('util');
|
||||
|
@ -110,7 +109,8 @@ try {
|
|||
}
|
||||
console.info(`WebSSH2 service reading config from: ${configPath}`);
|
||||
const configFile = readconfig(configPath, { override: true });
|
||||
myConfig = merger.mergeObjects([configDefault, configFile]);
|
||||
// myConfig = merger.mergeObjects([configDefault, configFile]);
|
||||
myConfig = { ...configDefault, ...configFile };
|
||||
debugWebSSH2(`\nCurrent config: ${util.inspect(myConfig)}`);
|
||||
} catch (err) {
|
||||
myConfig = configDefault;
|
||||
|
|
|
@ -171,6 +171,8 @@ exports.connect = function connect(req, res) {
|
|||
letterSpacing,
|
||||
lineHeight,
|
||||
},
|
||||
cols: null,
|
||||
rows: null,
|
||||
allowreplay:
|
||||
config.options.challengeButton ||
|
||||
(validator.isBoolean(`${req.headers.allowreplay}`)
|
||||
|
|
|
@ -105,7 +105,7 @@ module.exports = function appSocket(socket) {
|
|||
socket.emit('data', data.replace(/\r?\n/g, '\r\n').toString('utf-8'));
|
||||
});
|
||||
|
||||
conn.on('handshake', (data => {
|
||||
conn.on('handshake', () => {
|
||||
socket.emit('setTerminalOpts', socket.request.session.ssh.terminal);
|
||||
socket.emit('menu');
|
||||
socket.emit('allowreauth', socket.request.session.ssh.allowreauth);
|
||||
|
@ -118,7 +118,7 @@ module.exports = function appSocket(socket) {
|
|||
'footer',
|
||||
`ssh://${socket.request.session.username}@${socket.request.session.ssh.host}:${socket.request.session.ssh.port}`
|
||||
);
|
||||
}));
|
||||
});
|
||||
|
||||
conn.on('ready', () => {
|
||||
webssh2debug(
|
||||
|
|
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
b512ae8f04eba0eab29e026542fab1063b1bb4ae6db04e3613a8939260fe031c Build/Release/BIG-IP-ILX-WebSSH2-0.2.9.tgz
|
BIN
bun.lockb
Executable file
BIN
bun.lockb
Executable file
Binary file not shown.
6
package.json
Normal file
6
package.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"bun-types": "^1.0.1"
|
||||
}
|
||||
}
|
|
@ -1,6 +1,4 @@
|
|||
{
|
||||
"bootstrap-sha": "cf4d8c384740de98f3875b9d5362142b74db0bd3",
|
||||
"release-as": "0.4.7-pre-0",
|
||||
"changelogPath": "CHANGELOG.md",
|
||||
"include-v-in-tags": false,
|
||||
"prerelease": true,
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 129 KiB |
Binary file not shown.
Before Width: | Height: | Size: 131 KiB |
Binary file not shown.
Before Width: | Height: | Size: 186 KiB |
Binary file not shown.
Before Width: | Height: | Size: 187 KiB |
Binary file not shown.
Before Width: | Height: | Size: 130 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.5 MiB |
Loading…
Reference in a new issue