diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 62ea88ad..b887673c 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -61,12 +61,3 @@ You are also able to properly debug the built production application through two Note that when any unit test is run using a debugger, the X-Pipe daemon process that is started will also attempt to connect to that debugger through [AttachMe](https://plugins.jetbrains.com/plugin/13263-attachme) as well. - -## FAQ - -#### Why are there no GitHub actions workflows in this repository? - -There are several test workflows run in a private environment as they use private test connections -such as remote server connections and database connections. -Other private workflows are responsible for packaging, signing, and distributing the releases. -So you can assume that the code is tested! diff --git a/FAQ.md b/FAQ.md new file mode 100644 index 00000000..d85d28d4 --- /dev/null +++ b/FAQ.md @@ -0,0 +1,99 @@ +# Frequently asked questions + +## What is so new about this? + +Compared to other existing tools, the fundamental approach of how to +connect and how to communicate with the remote system differs. +Other tools utilize the established protocol-based approach, i.e. connect and communicate with a +server via a certain protocol like SSH, SFTP, and many more. +X-Pipe utilizes a shell-based approach that works on top of command-line programs. + +Let's use the example of SSH. +Protocol-based programs come with an included SSH library that allows them to interact with a remote system via SSH. +This requires an SSH server implementation to be running on the remote system. +X-Pipe does not ship with any sort of SSH library or similar. +Instead, X-Pipe creates a new process using your local `ssh` executable, which is usually the OpenSSH client. +I.e. it launches the process `ssh user@host` in the background and communicates +with the opened remote shell through the stdout, stderr, stdin of the process. +From there, it detects what kind of server and environment, +e.g. shell type, os, etc. you have logged into with that shell connection, +and adjusts how it talks to the remote system from there. +It effectively delegates everything protocol and connection related to your external programs. + +As a result of this approach, you can do stuff with X-Pipe that you can't do with other tools. +One example would be connecting and accessing files on a +docker container as there's no real protocol to formally connect here by default. +X-Pipe can simply execute `docker exec -i sh` to open a shell into the container +and handle this shell exactly the same way as any other shell connection. + +More broadly, X-Pipe can work on any shell connection, regardless of how it is established. +From its perspective, there's no visible difference between a +remote ssh connection and a shell to a local docker container. + +## Does it run on my system? + +The desktop application should run on any reasonably up-to-date +Windows/Linux/macOS system that has been released in the last ten years. + +## What else do I need to use this? + +As mentioned previously, X-Pipe itself does not ship with any sort of libraries for connection handling +and instead delegates this to your existing command-line tools. +For this approach to work however, you need to have the required tools installed. + +For example, if you want to connect to a remote system via SSH with X-Pipe, +you need to have an `SSH` client installed and added to your PATH. +The exact vendor and version of this `ssh` command-line +tool doesn't matter as long as the standard options are supported. + +If a required program is attempted to be used but can not be found, X-Pipe will notify you. + +## Is this secure / Can I entrust my sensitive information to this? + +Due to its nature, X-Pipe has to handle a lot of sensitive information like passwords, keys, and more. +As security plays a very important role here, there exists a dedicated [security page](/SECURITY.md) +that should contain all relevant information for you to make your decision. + +## How does X-Pipe handle privacy? + +X-Pipe does not collect any sort of data like usage or tracking data. +The only case in which some sort of data is collected is when you choose to +use the built-in error reporter to submit a report. +This report data is limited to general system and error information, no sensitive information is submitted. +For those people who like to read legalese, there's the [privacy policy](/PRIVACY.md). + +## How does X-Pipe handle updates? + +Especially in its early development stage, it can be pretty important to frequently distribute new releases. +How exactly the update process is handled depends on your distribution: + +- Installers (msi/deb/rpm/pkg): They come with the ability to automatically check for + updates, download them, and install them if you provide your confirmation. +- Portable versions (zip/tar.gz/dmg): They can check for updates and will notify you if one is available but + lack the ability to install them. You therefore have to download and install them manually. +- Package managers: They can check for updates and will notify you if one is available + by allowing you to copy and paste the applicable package manager command in your terminal. + +Note that you can choose to disable this functionality entirely in the settings menu. + +## Why are there no GitHub actions workflows in this repository? + +There are several test workflows run in a private environment as they use private test connections +such as remote server connections and database connections. +Other private workflows are responsible for packaging, signing, and distributing the releases. +So you can assume that the code is tested and the release is automated! + +## What is the best way to reach out to the developers and other users? + +There are several to reach out, so you can choose whatever you like best: + +- [X-Pipe Discord Server](https://discord.gg/8y89vS8cRb) +- [X-Pipe Slack Server](https://join.slack.com/t/x-pipe/shared_invite/zt-1awjq0t5j-5i4UjNJfNe1VN4b_auu6Cg) +- [X-Pipe Issue Tracker](https://github.com/xpipe-io/xpipe/issues) + +## I want to be the first to test use new features. How can I do that? + +Most new releases are first published as a pre-release only. +By enabling the setting to download pre-releases in the settings menu when looking for updates, +you can be the first to use a new version. + diff --git a/README.md b/README.md index a00996e5..5b7f84a4 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ It currently supports: - [SSH](https://www.ssh.com/academy/ssh/protocol) connections - [Windows Subsystem for Linux](https://ubuntu.com/wsl) instances located on any host - [Powershell Remote Sessions](https://learn.microsoft.com/en-us/powershell/scripting/learn/remoting/running-remote-commands?view=powershell-7.3) +- [Kubernetes](https://kubernetes.io/) clusters and pods - Any other custom remote connection methods that works through the command-line - Arbitrary types of proxies to establish connections @@ -21,6 +22,8 @@ text/code editors, terminals, shells, command-line tools and more. The platform is designed to be extensible, allowing anyone to implement custom functionality through extensions. +You have more questions? Then check out the new [FAQ](/FAQ.md). + ## Getting Started Head over to the [releases page](https://github.com/xpipe-io/xpipe/releases/latest) and try it out. diff --git a/dist/changelogs/0.5.38.md b/dist/changelogs/0.5.38.md index 47137264..cddc63f0 100644 --- a/dist/changelogs/0.5.38.md +++ b/dist/changelogs/0.5.38.md @@ -1,4 +1,7 @@ ## Changes in 0.5.38 +- Improve file browser performance and responsiveness +- Show file attributes in file browser +- Fix PowerShell Core environments not launching pwsh.exe - Fix PowerShell Core launch timeouts due to ANSI escapes codes - Fix NullPointerException when using Powershell connection as host for SSH connection - Check whether SSH client is installed prior to calling it