This commit is contained in:
Milo Schwartz 2025-01-04 22:38:46 -05:00
commit 855bd571b8
3 changed files with 3 additions and 6 deletions

View file

@ -23,7 +23,7 @@ const createTargetParamsSchema = z
const createTargetSchema = z
.object({
ip: z.string().ip(),
ip: z.string().ip().or(z.literal('localhost')),
method: z.string().min(1).max(10),
port: z.number().int().min(1).max(65535),
protocol: z.string().optional(),

View file

@ -19,7 +19,7 @@ const updateTargetParamsSchema = z
const updateTargetBodySchema = z
.object({
ip: z.string().ip().optional(), // for now we cant update the ip; you will have to delete
ip: z.string().ip().or(z.literal('localhost')).optional(), // for now we cant update the ip; you will have to delete
method: z.string().min(1).max(10).optional(),
port: z.number().int().min(1).max(65535).optional(),
enabled: z.boolean().optional()

View file

@ -59,7 +59,6 @@ import {
SettingsSectionTitle,
SettingsSectionDescription,
SettingsSectionBody,
SettingsSectionForm,
SettingsSectionFooter
} from "@app/components/Settings";
import { SwitchInput } from "@app/components/SwitchInput";
@ -71,8 +70,6 @@ const addTargetSchema = z.object({
// protocol: z.string(),
});
type AddTargetFormValues = z.infer<typeof addTargetSchema>;
type LocalTarget = Omit<
ArrayElement<ListTargetsResponse["targets"]> & {
new?: boolean;
@ -182,7 +179,7 @@ export default function ReverseProxyTargets(props: {
// make sure that the target IP is within the site subnet
const targetIp = data.ip;
const subnet = site.subnet;
if (!isIPInSubnet(targetIp, subnet)) {
if (targetIp === "localhost" || !isIPInSubnet(targetIp, subnet)) {
toast({
variant: "destructive",
title: "Invalid target IP",