mirror of
https://github.com/xpipe-io/xpipe.git
synced 2024-11-25 00:50:31 +00:00
More rework
This commit is contained in:
parent
4b263adb16
commit
27a7df8402
7 changed files with 68 additions and 17 deletions
|
@ -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"
|
||||
|
|
|
@ -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
2
dist/build.gradle
vendored
|
@ -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'
|
||||
|
|
31
dist/changelogs/10.0.md
vendored
31
dist/changelogs/10.0.md
vendored
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue