xpipe-mirror/dist/changelogs/1.5.0.md

4.1 KiB

Changes in 1.5.0

This is the largest update yet and comes with loads of improvements and changes. As a side effect, it will also break some existing connections, so be prepared for that.

Passwords & Password managers

This update comes with a first attempt of supporting the retrieval of passwords from external sources. Due to the variety of available password managers and formats, I went with the most straightforward approach here which is essentially delegating that task to the CLI of your password manager.

Essentially, you're able to specify a command template to retrieve your passwords. For example, by specifying the command template mypasswordmgr get $KEY, you can then choose the password when creating connections by just supplying the key argument. XPipe will call the command, read the password, and supply it from there.

There's also support to specify an arbitrary command or to dynamically prompt the password on each login.

Fish

This update brings support for fish as another possible shell type.

Note that there are several limitations with this implementation as fish does not support an interactive mode in headless environments, resulting in XPipe having to use a fallback shell for certain operations.

CLI

This update lays the foundation for future advancements in the command-line interface of XPipe. To start off, it comes with a few new commands to read and write files on remote systems directly from your terminal.

The workflow is designed as follows:

  1. You can list all available connections and their ids to use with xpipe list
  2. Using the command xpipe drain <id> <remote file path>, you are able to forward the file contents to the stdout
  3. Using the command xpipe sink <id> <remote file path>, you are able to forward content from your stdin to the remote file

The id system is flexible, allowing you to only specify as much of the id as is necessary.

An easy example would be the following: Assume that you have a Windows server with an id of ssh-windows and want to filter a file there, but you are missing grep. Then you can execute on your local machine: xpipe drain ssh-windows "C:\myfile.txt" | grep <filter> | xpipe sink ssh-windows "C:\myfile_filtered.txt".

The XPipe CLI should be put automatically in your path upon installation, you can test that with xpipe --help. Otherwise, you will find it in <xpipe dir>/cli/bin/xpipe.

Antivirus adjustments

As it turns out, several antivirus programs do not like XPipe and what it is doing with shells. As a result, some of them quarantine XPipe and even the system shells itself as they get confused of who is making the calls.

This update aims to reduce any unexpected issues caused by antivirus programs by automatically detecting whether a problematic antivirus is installed and giving the user the chance to prepare for any upcoming issues.

Cygwin and MSYS2

XPipe can now automatically detect Cygwin and MSYS2 environments on your machine. This also comes with full support of the feature set for these environments

Misc

  • Separate staging and production storage directories
  • For every system, XPipe will now also display the appropriate OS/distro logo (if recognized)
  • Rework SSH key-based authentication to properly interact with agents, now also including pageant
  • Add ability to test out terminals and editors directly in the settings menu
  • Implement a new internal API to better assemble complex commands
  • Rework os detection logic for passthrough environments like Cygwin and MSYS2
  • Fix desktop directory not being determined correctly on Windows when it was moved from the default location
  • Rework threading in navigation bar in browser to improve responsiveness
  • Recheck if prepared update is still the latest one prior to installing it
  • Built-in documentation popups now honour the dark mode setting
  • Properly detect applications such as editors and terminals when they are present in the path on Windows
  • Rework operation mode handling to properly honor the startup mode setting
  • Many other small miscellaneous fixes and improvements
  • Improve app detection on macOS