mirror of
https://github.com/fosrl/pangolin.git
synced 2026-08-20 11:12:31 +02:00
Update browser targets
This commit is contained in:
@@ -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
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user