xpipe/dist/changelogs/10.0.md
2024-06-11 19:43:03 +00:00

4 KiB

A new HTTP API

There is now a new HTTP API for the XPipe daemon, which allows you to programmatically manage remote systems. You can find details and an OpenAPI spec at the new API button in the sidebar. The API page contains everything you need to get started, including code samples for various different programming languages.

To start off, you can query connections based on various filters. With the matched connections, you can start remote shell sessions for each one and run arbitrary commands in them. You get the command exit code and output as a response, allowing you to adapt your control flow based on command outputs. Any kind of passwords and other secrets are automatically provided by XPipe when establishing a shell connection.

There will be more functionality added to the API in the future, for now this initial implementation is open for feedback.

Service integration (Professional feature)

Many systems run a variety of different services such as web services and others. There is now support to detect, forward, and open the services. For example, if you are running a web service on a remote container, you can automatically forward the service port via SSH tunnels, allowing you to access these services from your local machine, e.g. in a web browser. These service tunnels can be toggled at any time. The port forwarding supports specifying a custom local target port and also works for connections with multiple intermediate systems through chained tunnels. For containers, services are automatically detected via their exposed mapped ports. For other systems, you can manually add services via their port

Script rework

The scripting system has been reworked. There have been several issues with it being clunky and not fun to use. The new system allows you to assign each script one of multiple execution types. Based on these execution types, you can make scripts active or inactive with a toggle. If they are active, the scripts will apply in the selected use cases. There currently are these types:

  • Init scripts: When enabled, they will automatically run on init in all compatible shells. This is useful for setting things like aliases consistently
  • Shell scripts: When enabled, they will be copied over to the target system and put into the PATH. You can then call them in a normal shell session by their name, e.g. myscript.sh, also with arguments.
  • File scripts: When enabled, you can call them in the file browser with the selected files as arguments. Useful to perform common actions with files

If you have existing scripts, they will have to be manually adjusted by setting their execution types.

Docker improvements

The docker integration has been updated to support docker contexts. The UI has also been streamlined to make common actions more easily accessible.

There's also now support for Windows docker containers running on HyperV.

Note that old docker container connections will be removed as they are incompatible with the new version.

Better connection organization

The toggle to show only running connections will now no longer actually remove the connections internally and instead just not display them. This will reduce git vault updates and is faster in general.

You can now order connections relative to other sibling connections. This ordering will also apply when changing the global order in the top left.

Other

  • Support VMs for VNC tunneling
  • The Linux installers now contain application icons from multiple sizes it should increase the icon display quality
  • The Linux builds now list socat as a dependency such that the kitty terminal integration will work without issues
  • Searching for connections has been improved to show children as well
  • The welcome screen will now also contain the option to straight up jump to the synchronization settings
  • Add support for foot terminal
  • Fix elementary terminal not launching correctly
  • Fix kubernetes not elevating correctly for non-default contexts
  • Fix ohmyzsh update notification freezing shell
  • Fix file browser icons being broken for links