Pull in the destination from the api

This commit is contained in:
Owen
2026-05-15 11:48:13 -07:00
parent e822b681cd
commit 4c8f0cc9ec
6 changed files with 29 additions and 20 deletions

View File

@@ -780,9 +780,9 @@ async function syncAcmeCerts(acmeJsonPath: string): Promise<void> {
} }
} }
logger.debug( // logger.debug(
`acmeCertSync: cert for ${mainDomain} covers ${allDomains.size} domain(s): ${[...allDomains].join(", ")}` // `acmeCertSync: cert for ${mainDomain} covers ${allDomains.size} domain(s): ${[...allDomains].join(", ")}`
); // );
for (const domain of allDomains) { for (const domain of allDomains) {
try { try {

View File

@@ -38,10 +38,12 @@ export async function getBrowserTarget(
const { fullDomain } = parsed.data; const { fullDomain } = parsed.data;
const [row] = await db logger.info(`Retrieving browser target for domain: ${fullDomain}`);
const [browserTarget] = await db
.select({ .select({
ip: browserGatewayTarget.destination, destination: browserGatewayTarget.destination,
port: browserGatewayTarget.destinationPort destinationPort: browserGatewayTarget.destinationPort
}) })
.from(browserGatewayTarget) .from(browserGatewayTarget)
.innerJoin( .innerJoin(
@@ -51,7 +53,7 @@ export async function getBrowserTarget(
.where(eq(resources.fullDomain, fullDomain)) .where(eq(resources.fullDomain, fullDomain))
.limit(1); .limit(1);
if (!row) { if (!browserTarget) {
return next( return next(
createHttpError( createHttpError(
HttpCode.NOT_FOUND, HttpCode.NOT_FOUND,
@@ -61,7 +63,10 @@ export async function getBrowserTarget(
} }
return response<GetBrowserTargetResponse>(res, { return response<GetBrowserTargetResponse>(res, {
data: { ip: row.ip, port: row.port }, data: {
ip: browserTarget.destination,
port: browserTarget.destinationPort
},
success: true, success: true,
error: false, error: false,
message: "Browser target retrieved successfully", message: "Browser target retrieved successfully",

View File

@@ -223,9 +223,9 @@ export default function RdpClient({
); );
} }
const destination = target const destination = target ? `${target.ip}:${target.port}` : "";
? `${target.ip}:${target.port}`
: ""; console.log("Starting RDP session with destination:", destination);
const builder = userInteraction const builder = userInteraction
.configBuilder() .configBuilder()

View File

@@ -1,5 +1,5 @@
import { headers } from "next/headers"; import { headers } from "next/headers";
import { internal } from "@app/lib/api"; import { priv } from "@app/lib/api";
import { AxiosResponse } from "axios"; import { AxiosResponse } from "axios";
import { GetBrowserTargetResponse } from "@server/routers/resource"; import { GetBrowserTargetResponse } from "@server/routers/resource";
import RdpClient from "./RdpClient"; import RdpClient from "./RdpClient";
@@ -19,11 +19,13 @@ export default async function RdpPage() {
let error: string | null = null; let error: string | null = null;
try { try {
const res = await internal.get<AxiosResponse<GetBrowserTargetResponse>>( const res = await priv.get<AxiosResponse<GetBrowserTargetResponse>>(
`/resource/browser-target?fullDomain=${encodeURIComponent(hostname)}` `/resource/browser-target?fullDomain=${encodeURIComponent(hostname)}`
); );
target = res.data.data; target = res.data.data;
} catch { console.log("Fetched browser target:", target);
} catch (error) {
console.error("Error fetching browser target:", error);
error = "No resource found for this domain"; error = "No resource found for this domain";
} }

View File

@@ -1,5 +1,5 @@
import { headers } from "next/headers"; import { headers } from "next/headers";
import { internal } from "@app/lib/api"; import { priv } from "@app/lib/api";
import { AxiosResponse } from "axios"; import { AxiosResponse } from "axios";
import { GetBrowserTargetResponse } from "@server/routers/resource"; import { GetBrowserTargetResponse } from "@server/routers/resource";
import SshClient from "./SshClient"; import SshClient from "./SshClient";
@@ -19,11 +19,12 @@ export default async function SshPage() {
let error: string | null = null; let error: string | null = null;
try { try {
const res = await internal.get<AxiosResponse<GetBrowserTargetResponse>>( const res = await priv.get<AxiosResponse<GetBrowserTargetResponse>>(
`/resource/browser-target?fullDomain=${encodeURIComponent(hostname)}` `/resource/browser-target?fullDomain=${encodeURIComponent(hostname)}`
); );
target = res.data.data; target = res.data.data;
} catch { } catch (error) {
console.error("Error fetching browser target:", error);
error = "No resource found for this domain"; error = "No resource found for this domain";
} }

View File

@@ -1,5 +1,5 @@
import { headers } from "next/headers"; import { headers } from "next/headers";
import { internal } from "@app/lib/api"; import { priv } from "@app/lib/api";
import { AxiosResponse } from "axios"; import { AxiosResponse } from "axios";
import { GetBrowserTargetResponse } from "@server/routers/resource"; import { GetBrowserTargetResponse } from "@server/routers/resource";
import VncClient from "./VncClient"; import VncClient from "./VncClient";
@@ -19,11 +19,12 @@ export default async function VncPage() {
let error: string | null = null; let error: string | null = null;
try { try {
const res = await internal.get<AxiosResponse<GetBrowserTargetResponse>>( const res = await priv.get<AxiosResponse<GetBrowserTargetResponse>>(
`/resource/browser-target?fullDomain=${encodeURIComponent(hostname)}` `/resource/browser-target?fullDomain=${encodeURIComponent(hostname)}`
); );
target = res.data.data; target = res.data.data;
} catch { } catch (error) {
console.error("Error fetching browser target:", error);
error = "No resource found for this domain"; error = "No resource found for this domain";
} }