- Use wss:// scheme when TLS is enabled (specifically for bind=lan) - Load TLS runtime to get certificate fingerprint - Pass fingerprint to probeGatewayStatus for self-signed cert trust
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { callGateway } from "../../gateway/call.js";
|
|
import { GATEWAY_CLIENT_MODES, GATEWAY_CLIENT_NAMES } from "../../utils/message-channel.js";
|
|
import { withProgress } from "../progress.js";
|
|
|
|
export async function probeGatewayStatus(opts: {
|
|
url: string;
|
|
token?: string;
|
|
password?: string;
|
|
tlsFingerprint?: string;
|
|
timeoutMs: number;
|
|
json?: boolean;
|
|
configPath?: string;
|
|
}) {
|
|
try {
|
|
await withProgress(
|
|
{
|
|
label: "Checking gateway status...",
|
|
indeterminate: true,
|
|
enabled: opts.json !== true,
|
|
},
|
|
async () =>
|
|
await callGateway({
|
|
url: opts.url,
|
|
token: opts.token,
|
|
password: opts.password,
|
|
tlsFingerprint: opts.tlsFingerprint,
|
|
method: "status",
|
|
timeoutMs: opts.timeoutMs,
|
|
clientName: GATEWAY_CLIENT_NAMES.CLI,
|
|
mode: GATEWAY_CLIENT_MODES.CLI,
|
|
...(opts.configPath ? { configPath: opts.configPath } : {}),
|
|
}),
|
|
);
|
|
return { ok: true } as const;
|
|
} catch (err) {
|
|
return {
|
|
ok: false,
|
|
error: err instanceof Error ? err.message : String(err),
|
|
} as const;
|
|
}
|
|
}
|