Update browser targets

This commit is contained in:
Owen
2026-06-07 10:43:16 -07:00
parent 3b6b78b3e1
commit c394490473
3 changed files with 49 additions and 22 deletions
+16 -7
View File
@@ -27,6 +27,7 @@ import {
import { encrypt } from "@server/lib/crypto"; import { encrypt } from "@server/lib/crypto";
import { generateId } from "@server/auth/sessions/app"; import { generateId } from "@server/auth/sessions/app";
import config from "@server/lib/config"; import config from "@server/lib/config";
import { sendBrowserGatewayTargets } from "@server/routers/newt/targets";
const createTargetParamsSchema = z.strictObject({ const createTargetParamsSchema = z.strictObject({
resourceId: z.coerce.number().int().positive() resourceId: z.coerce.number().int().positive()
@@ -342,13 +343,21 @@ export async function createTarget(
.where(eq(newts.siteId, site.siteId)) .where(eq(newts.siteId, site.siteId))
.limit(1); .limit(1);
await addTargets( if (["http", "tcp", "udp"].includes(newTarget[0].mode)) {
newt.newtId, await addTargets(
newTarget, newt.newtId,
healthCheck, newTarget,
resource.mode === "udp" ? "udp" : "tcp", healthCheck,
newt.version resource.mode === "udp" ? "udp" : "tcp",
); newt.version
);
} else if (["ssh", "rdp", "vnc"].includes(newTarget[0].mode)) {
await sendBrowserGatewayTargets(
newt.newtId,
newTarget,
newt.version
);
}
} }
} }
+17 -8
View File
@@ -11,6 +11,7 @@ import { fromError } from "zod-validation-error";
import { removeTargets } from "../newt/targets"; import { removeTargets } from "../newt/targets";
import { OpenAPITags, registry } from "@server/openApi"; import { OpenAPITags, registry } from "@server/openApi";
import { targetHealthCheck } from "@server/db"; import { targetHealthCheck } from "@server/db";
import { removeBrowserGatewayTarget } from "@server/routers/newt/targets";
const deleteTargetSchema = z.strictObject({ const deleteTargetSchema = z.strictObject({
targetId: z.coerce.number().int().positive() targetId: z.coerce.number().int().positive()
@@ -136,14 +137,22 @@ export async function deleteTarget(
.where(eq(newts.siteId, site.siteId)) .where(eq(newts.siteId, site.siteId))
.limit(1); .limit(1);
await removeTargets( if (["http", "tcp", "udp"].includes(deletedTarget.mode)) {
newt.newtId, await removeTargets(
// [deletedTarget], newt.newtId,
[], // deleting the target from newt causes issues because we cant unbind the port. this needs to be fixed in newt before we can do this // [deletedTarget],
[deletedHealthCheck], [], // deleting the target from newt causes issues because we cant unbind the port. this needs to be fixed in newt before we can do this
resource.mode === "udp" ? "udp" : "tcp", [deletedHealthCheck],
newt.version resource.mode === "udp" ? "udp" : "tcp",
); newt.version
);
} else if (["ssh", "rdp", "vnc"].includes(deletedTarget.mode)) {
await removeBrowserGatewayTarget(
newt.newtId,
deletedTarget.targetId,
newt.version
);
}
} }
} }
+16 -7
View File
@@ -18,6 +18,7 @@ import {
import { pickPort } from "./helpers"; import { pickPort } from "./helpers";
import { isTargetValid } from "@server/lib/validators"; import { isTargetValid } from "@server/lib/validators";
import { OpenAPITags, registry } from "@server/openApi"; import { OpenAPITags, registry } from "@server/openApi";
import { sendBrowserGatewayTargets } from "@server/routers/newt/targets";
const updateTargetParamsSchema = z.strictObject({ const updateTargetParamsSchema = z.strictObject({
targetId: z.coerce.number().int().positive() targetId: z.coerce.number().int().positive()
@@ -350,13 +351,21 @@ export async function updateTarget(
.where(eq(newts.siteId, site.siteId)) .where(eq(newts.siteId, site.siteId))
.limit(1); .limit(1);
await addTargets( if (["http", "tcp", "udp"].includes(updatedTarget.mode)) {
newt.newtId, await addTargets(
[updatedTarget], newt.newtId,
[updatedHc], [updatedTarget],
resource.mode === "udp" ? "udp" : "tcp", [updatedHc],
newt.version resource.mode === "udp" ? "udp" : "tcp",
); newt.version
);
} else if (["ssh", "rdp", "vnc"].includes(updatedTarget.mode)) {
await sendBrowserGatewayTargets(
newt.newtId,
[updatedTarget],
newt.version
);
}
} }
} }