## Summary - add a server-backed HTTPS proxy flow for Tauri remote windows so self-signed remote HTTPS works with the local CLI TLS assets and desktop auth/cookie handling - manage remote proxy sessions through `packages/server` with per-session bootstrap, local-only cleanup, and explicit session lifecycle handling - support the Tauri desktop flow across environments, including packaged Windows builds, `tauri dev`, and updated Linux/macOS handling for the new local HTTPS proxy path ## Testing - `npm run build --workspace @neuralnomads/codenomad` - `cargo check` - `npm run build --workspace @codenomad/tauri-app` - Windows smoke test for concurrent remote proxy bootstrap sessions - Windows manual validation of packaged Tauri remote connection flow ## Notes - Windows was validated end-to-end. - Linux and macOS code paths were updated for the new proxy flow, but runtime validation on those platforms is still pending. --------- Co-authored-by: Shantur Rathore <i@shantur.com>
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import { invoke } from "@tauri-apps/api/core"
|
|
import type { RemoteServerProfile } from "../../../../server/src/api-types"
|
|
import { runtimeEnv } from "../runtime-env"
|
|
|
|
export interface RemoteWindowOpenPayload {
|
|
id: string
|
|
name: string
|
|
baseUrl: string
|
|
entryUrl?: string
|
|
proxySessionId?: string
|
|
skipTlsVerify: boolean
|
|
}
|
|
|
|
export async function openRemoteServerWindow(
|
|
profile: Pick<RemoteServerProfile, "id" | "name" | "baseUrl" | "skipTlsVerify">,
|
|
entryUrl?: string,
|
|
proxySessionId?: string,
|
|
): Promise<void> {
|
|
const payload: RemoteWindowOpenPayload = {
|
|
id: profile.id,
|
|
name: profile.name,
|
|
baseUrl: profile.baseUrl,
|
|
entryUrl,
|
|
proxySessionId,
|
|
skipTlsVerify: profile.skipTlsVerify,
|
|
}
|
|
|
|
if (runtimeEnv.host === "electron") {
|
|
const api = (window as Window & { electronAPI?: ElectronAPI }).electronAPI
|
|
if (typeof api?.openRemoteWindow === "function") {
|
|
await api.openRemoteWindow(payload)
|
|
return
|
|
}
|
|
}
|
|
|
|
if (runtimeEnv.host === "tauri") {
|
|
await invoke("open_remote_window", { payload })
|
|
return
|
|
}
|
|
|
|
window.open(profile.baseUrl, "_blank", "noopener,noreferrer")
|
|
}
|