feat: harden plugin api for separate repos, signed updates and generic external login

This commit is contained in:
LukeGus committed 2026-09-29 18:11:59 -05:00
1 parent fb9c168b6b
commit 80944301dd
310 files changed
+6577 -4927

No files matched your search

@@ -43,7 +43,7 @@ describe("createMacosVncCompatibilityProxy", () => {
socket.write(Buffer.from([5, 30, 33]));
socket.write(Buffer.from([36, 2, 35]));
socket.once("data", (selection) => {
selectedSecurityType = selection[0];
selectedSecurityType = Number(selection[0]);
socket.write("desktop-data");
});
});
@@ -17,8 +17,8 @@ import { GuacamoleTokenService } from "../../src/backend/token-service.js";
const manifest = manifestJson as unknown as PluginManifest;
// The token key comes from JWT_SECRET; without one each service picks its own.
process.env.JWT_SECRET = "remote-desktop-test-secret";
// Without a fixed key each token service picks its own.
process.env.GUACAMOLE_ENCRYPTION_KEY = "ab".repeat(32);
function target(
overrides: Partial<PluginProtocolTarget["auth"]> = {},
@@ -10,7 +10,7 @@ import {
isServerOwnedSetting,
} from "../../src/backend/token-service.js";
process.env.JWT_SECRET = "remote-desktop-test-secret";
process.env.GUACAMOLE_ENCRYPTION_KEY = "ab".repeat(32);
function decode(token: string) {
return JSON.parse(Buffer.from(token, "base64").toString("utf8")) as {
@@ -59,8 +59,10 @@ describe("GuacamoleTokenService", () => {
const termixMeta = {
termixConnectId: "connect-1",
hostId: 7,
hostName: "windows",
ownerUserId: "user-1",
protocol: "rdp" as const,
tabInstanceId: null,
};
const token = tokenService.createRdpToken(
"windows.example.test",