More rework

This commit is contained in:
crschnick 2024-06-14 19:14:34 +00:00
parent 4b263adb16
commit 27a7df8402
7 changed files with 68 additions and 17 deletions

View file

@ -50,12 +50,12 @@ dependencies {
api files("$rootDir/gradle/gradle_scripts/markdowngenerator-1.3.1.1.jar")
api files("$rootDir/gradle/gradle_scripts/vernacular-1.16.jar")
api 'info.picocli:picocli:4.7.5'
api 'info.picocli:picocli:4.7.6'
api ('org.kohsuke:github-api:1.321') {
exclude group: 'org.apache.commons', module: 'commons-lang3'
}
api 'org.apache.commons:commons-lang3:3.14.0'
api 'io.sentry:sentry:7.8.0'
api 'io.sentry:sentry:7.10.0'
api 'commons-io:commons-io:2.16.1'
api group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "2.17.1"
api group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: "2.17.1"

View file

@ -44,7 +44,7 @@ public class StoreIntroComp extends SimpleComp {
text.setSpacing(5);
text.setAlignment(Pos.CENTER_LEFT);
var hbox = new HBox(img, text);
hbox.setSpacing(35);
hbox.setSpacing(55);
hbox.setAlignment(Pos.CENTER);
var v = new VBox(hbox, scanPane);
@ -68,7 +68,7 @@ public class StoreIntroComp extends SimpleComp {
var importDesc = new Label();
importDesc.textProperty().bind(AppI18n.observable("storeIntroImportDescription"));
importDesc.setWrapText(true);
importDesc.setMaxWidth(550);
importDesc.setMaxWidth(470);
var importButton = new Button(null, new FontIcon("mdi2g-git"));
importButton.textProperty().bind(AppI18n.observable("importConnections"));
@ -76,7 +76,10 @@ public class StoreIntroComp extends SimpleComp {
var importPane = new StackPane(importButton);
importPane.setAlignment(Pos.CENTER);
var img = new Region();
var fi = new FontIcon("mdi2g-git");
fi.setIconSize(80);
var img = new StackPane(fi);
img.setPrefWidth(100);
img.setPrefHeight(150);
var text = new VBox(title, importDesc);
text.setSpacing(5);

2
dist/build.gradle vendored
View file

@ -2,7 +2,7 @@
plugins {
id 'org.beryx.jlink' version '3.0.1'
id "org.asciidoctor.jvm.convert" version "4.0.2"
id 'org.jreleaser' version '1.11.0'
id 'org.jreleaser' version '1.12.0'
id("com.netflix.nebula.ospackage") version "11.9.1"
id 'org.gradle.crypto.checksum' version '1.4.0'
id 'signing'

View file

@ -11,7 +11,7 @@ Any kind of passwords and other secrets are automatically provided by XPipe when
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)
## Service integration
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.
@ -19,7 +19,9 @@ For example, if you are running a web service on a remote container, you can aut
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
For other systems, you can manually add services via their port.
You can use an unlimited amount of local services and one active tunneled service in the community edition.
## Script rework
@ -30,26 +32,35 @@ The scripting system has been reworked. There have been several issues with it b
If you have existing scripts, they will have to be manually adjusted by setting their execution types.
## Proxmox improvements
You can now automatically open the Proxmox dashboard website through the new service integration. This will also work with the service tunneling feature for remote servers.
You can now open VNC sessions to Proxmox VMs.
The Proxmox professional license requirement has been reworked to support one non-enterprise PVE node in the community edition.
## 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.
The docker integration has been updated to support docker contexts. You can use the default context in the community edition, essentially being the same as before as XPipe previously only used the default context. Support for using multiple contexts is included in the professional edition.
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. Any other subconnections like shell environments in docker containers will persist, although they might get invalidated and will show up on the bottom of the connection list.
Note that old docker container connections will be removed as they are incompatible with the new version.
There's now support for Windows docker containers running on HyperV.
## 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.
You can now order connections relative to other sibling connections. This ordering will also persist when changing the global order in the top left.
The UI has also been streamlined to make common actions and toggles more easily accessible.
## 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
- Several more actions have been added for podman containers
- Support VMs for tunneling
- 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
@ -57,3 +68,5 @@ You can now order connections relative to other sibling connections. This orderi
- Fix kubernetes not elevating correctly for non-default contexts
- Fix ohmyzsh update notification freezing shell
- Fix file browser icons being broken for links
- The Linux installers now contain application icons from multiple sizes which 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

View file

@ -30,6 +30,7 @@ public abstract class AbstractServiceStore extends JacksonizedValue implements S
@Override
public NetworkTunnelSession newSession() throws Exception {
ServiceLicenseCheck.check();
var l = localPort != null ? localPort : HostHelper.findRandomOpenPortOnAllLocalInterfaces();
return getHost().getStore().sessionChain(l, remotePort);
}

View file

@ -0,0 +1,34 @@
package io.xpipe.ext.base.service;
import io.xpipe.app.util.LicenseConnectionLimit;
import io.xpipe.app.util.LicenseProvider;
import io.xpipe.app.util.LicensedFeature;
import io.xpipe.core.store.DataStore;
public class ServiceLicenseCheck {
public static LicensedFeature getFeature() {
return LicenseProvider.get().getFeature("services");
}
public static void check() {
if (getFeature().isSupported()) {
return;
}
var limit = getConnectionLimit();
limit.checkLimit();
}
public static LicenseConnectionLimit getConnectionLimit() {
// We check before starting a new service
return new LicenseConnectionLimit(0, getFeature()) {
@Override
protected boolean matches(DataStore store) {
return store instanceof AbstractServiceStore abstractServiceStore && abstractServiceStore.requiresTunnel() && abstractServiceStore.isSessionRunning();
}
};
}
}

View file

@ -42,7 +42,7 @@ selectShellTypeDescription=Select the Type of the Shell Connection
name=Name
storeIntroTitle=Connection Hub
storeIntroDescription=Here you can manage all your local and remote shell connections in one place. To start off, you can quickly detect available connections automatically and choose which ones to add.
detectConnections=Search for connections
detectConnections=Search for connections ...
configuration=Configuration
dragAndDropFilesHere=Or just drag and drop a file here
confirmDsCreationAbortTitle=Confirm abort
@ -471,7 +471,7 @@ disableApiAuthentication=Disable API authentication
disableApiAuthenticationDescription=Disables all required authentication methods so that any unauthenticated request will be handled.\n\nAuthentication should only be disabled for development purposes.\n\nRequires a restart to apply.
api=API
storeIntroImportDescription=Already using XPipe on another system? Synchronize your existing connections across multiple systems through a remote git repository. You can also sync later at any time if it is not set up yet.
importConnections=Sync connections
importConnections=Sync connections ...
importConnectionsTitle=Import Connections
showAllChildren=Show all children
httpApi=HTTP API