diff --git a/messages/en-US.json b/messages/en-US.json
index f8f04f55a..ea4d1fc89 100644
--- a/messages/en-US.json
+++ b/messages/en-US.json
@@ -2032,13 +2032,13 @@
"healthCheckUnknown": "Unknown",
"healthCheck": "Health Check",
"configureHealthCheck": "Configure Health Check",
- "configureHealthCheckDescription": "Set up health monitoring for {target}",
+ "configureHealthCheckDescription": "Set up monitoring for your resource to ensure it is always available",
"enableHealthChecks": "Enable Health Checks",
"healthCheckDisabledStateDescription": "When disabled, the site will not perform health checks and the state will be considered unknown.",
"enableHealthChecksDescription": "Monitor the health of this target. You can monitor a different endpoint than the target if required.",
"healthScheme": "Method",
"healthSelectScheme": "Select Method",
- "healthCheckPortInvalid": "Health check port must be between 1 and 65535",
+ "healthCheckPortInvalid": "Port must be between 1 and 65535",
"healthCheckPath": "Path",
"healthHostname": "IP / Host",
"healthPort": "Port",
@@ -2080,6 +2080,11 @@
"sshServerDestination": "Server Destination",
"sshServerDestinationDescription": "Configure the destination of the SSH server",
"destination": "Destination",
+ "destinationRequired": "Destination is required.",
+ "domainRequired": "Domain is required.",
+ "proxyPortRequired": "Port is required.",
+ "invalidPathConfiguration": "Invalid path configuration.",
+ "invalidRewritePathConfiguration": "Invalid rewrite path configuration.",
"bgTargetMultiSiteDisclaimer": "Selecting multiple sites enables resilient routing and failover for high availability.",
"roleAllowSsh": "Allow SSH",
"roleAllowSshAllow": "Allow",
diff --git a/src/app/[orgId]/settings/(private)/policies/resource/[niceId]/page.tsx b/src/app/[orgId]/settings/(private)/policies/resources/public/[niceId]/page.tsx
similarity index 87%
rename from src/app/[orgId]/settings/(private)/policies/resource/[niceId]/page.tsx
rename to src/app/[orgId]/settings/(private)/policies/resources/public/[niceId]/page.tsx
index 5519506b9..1113016b8 100644
--- a/src/app/[orgId]/settings/(private)/policies/resource/[niceId]/page.tsx
+++ b/src/app/[orgId]/settings/(private)/policies/resources/public/[niceId]/page.tsx
@@ -28,11 +28,11 @@ export default async function EditPolicyPage(props: EditPolicyPageProps) {
);
policyResponse = res.data.data;
} catch {
- redirect(`/${params.orgId}/settings/policies/resource`);
+ redirect(`/${params.orgId}/settings/policies/resources/public`);
}
if (!policyResponse) {
- redirect(`/${params.orgId}/settings/policies/resource`);
+ redirect(`/${params.orgId}/settings/policies/resources/public`);
}
return (
@@ -46,7 +46,9 @@ export default async function EditPolicyPage(props: EditPolicyPageProps) {
/>
diff --git a/src/app/[orgId]/settings/(private)/policies/resource/create/page.tsx b/src/app/[orgId]/settings/(private)/policies/resources/public/create/page.tsx
similarity index 88%
rename from src/app/[orgId]/settings/(private)/policies/resource/create/page.tsx
rename to src/app/[orgId]/settings/(private)/policies/resources/public/create/page.tsx
index edf67fbef..4afa1110d 100644
--- a/src/app/[orgId]/settings/(private)/policies/resource/create/page.tsx
+++ b/src/app/[orgId]/settings/(private)/policies/resources/public/create/page.tsx
@@ -23,7 +23,9 @@ export default async function CreateResourcePolicyPage(
/>
diff --git a/src/app/[orgId]/settings/(private)/policies/resource/page.tsx b/src/app/[orgId]/settings/(private)/policies/resources/public/page.tsx
similarity index 100%
rename from src/app/[orgId]/settings/(private)/policies/resource/page.tsx
rename to src/app/[orgId]/settings/(private)/policies/resources/public/page.tsx
diff --git a/src/app/[orgId]/settings/resources/public/ProxyResourceTargetsForm.tsx b/src/app/[orgId]/settings/resources/public/ProxyResourceTargetsForm.tsx
index 881d46b7b..4e5302df2 100644
--- a/src/app/[orgId]/settings/resources/public/ProxyResourceTargetsForm.tsx
+++ b/src/app/[orgId]/settings/resources/public/ProxyResourceTargetsForm.tsx
@@ -10,7 +10,10 @@ import {
PathRewriteDisplay,
PathRewriteModal
} from "@app/components/PathMatchRenameModal";
-import { ResourceTargetAddressItem } from "@app/components/resource-target-address-item";
+import {
+ ResourceTargetAddressItem,
+ ResourceTargetSiteItem
+} from "@app/components/resource-target-address-item";
import {
SettingsSection,
SettingsSectionBody,
@@ -65,6 +68,7 @@ import {
useMemo,
useState
} from "react";
+import { maxSize } from "zod";
export type LocalTarget = Omit<
ArrayElement & {
@@ -228,7 +232,7 @@ export function ProxyResourceTargetsForm({
const priorityColumn: ColumnDef = {
id: "priority",
header: () => (
-