feat(settings): wire frontend to Coolify SoT response shape

- McpEnvVar: infisical_value → coolify_value + has_duplicates
- McpEnvResponse: drop Infisical metadata fields
- EnvVarRow: 'Coolify:' label, 'ערוך ב-Coolify' external link
- DriftBadge: infisicalAvailable → coolifyAvailable
- EnvironmentTab: Coolify app badge, duplicates count
This commit is contained in:
2026-05-04 07:53:27 +00:00
parent d1e12619d4
commit ae35934383
4 changed files with 35 additions and 32 deletions

View File

@@ -67,8 +67,9 @@ export function EnvironmentTab() {
}
if (!data) return null;
const infisicalAvailable = data.errors.length === 0;
const coolifyAvailable = data.errors.length === 0;
const driftCount = data.vars.filter((v) => v.drift).length;
const duplicatesCount = data.vars.filter((v) => v.has_duplicates).length;
return (
<div className="space-y-4">
@@ -76,16 +77,18 @@ export function EnvironmentTab() {
<CardContent className="px-6 py-4 flex items-center justify-between gap-4 flex-wrap">
<div className="flex items-center gap-3 flex-wrap text-sm">
<Badge variant="outline">
Infisical: <code dir="ltr" className="ms-1">{data.infisical_environment}</code>
</Badge>
<Badge variant="outline">
Path: <code dir="ltr" className="ms-1">{data.infisical_path}</code>
Coolify app: <code dir="ltr" className="ms-1">{data.coolify_app_uuid.slice(0, 8)}</code>
</Badge>
{driftCount > 0 && (
<Badge variant="outline" className="text-warn border-warn/40">
{driftCount} drift
</Badge>
)}
{duplicatesCount > 0 && (
<Badge variant="outline" className="text-warn border-warn/40">
{duplicatesCount} duplicates
</Badge>
)}
{data.errors.length > 0 && (
<Badge variant="outline" className="text-danger border-danger/40">
{data.errors.join(", ")}
@@ -121,9 +124,8 @@ export function EnvironmentTab() {
<EnvVarRow
key={v.key}
spec={v}
infisicalProjectId={data.infisical_project_id}
infisicalEnv={data.infisical_environment}
infisicalAvailable={infisicalAvailable}
coolifyAppUuid={data.coolify_app_uuid}
coolifyAvailable={coolifyAvailable}
onPendingRedeploy={() => setPendingRedeploy(true)}
/>
))}