diff --git a/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/CheckpointDetailDrawer.module.css b/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/CheckpointDetailDrawer.module.css index 5a0d074c..3a715933 100644 --- a/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/CheckpointDetailDrawer.module.css +++ b/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/CheckpointDetailDrawer.module.css @@ -63,3 +63,30 @@ .logTimestamp { color: var(--text-muted); } + +/* ConfigPanel.tsx / DiffView */ +.diffList { + font-family: monospace; + font-size: 12px; +} + +.diffEntry { + margin-bottom: 8px; +} + +.diffPath { + color: var(--text-muted); + margin-bottom: 2px; +} + +.diffRemoved { + background: var(--red-bg, rgba(239, 68, 68, 0.15)); + border-left: 2px solid var(--red, #ef4444); + padding: 2px 6px; +} + +.diffAdded { + background: var(--green-bg, rgba(34, 197, 94, 0.15)); + border-left: 2px solid var(--green, #22c55e); + padding: 2px 6px; +} diff --git a/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/ConfigPanel.tsx b/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/ConfigPanel.tsx index 0cb81360..fd00828c 100644 --- a/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/ConfigPanel.tsx +++ b/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/ConfigPanel.tsx @@ -115,28 +115,12 @@ function DiffView({ diffs }: { diffs: FieldDiff[] }) { return
No differences in this section.
; } return ( -
+
{diffs.map((d) => ( -
-
{d.path}
-
- - {JSON.stringify(d.oldValue)} -
-
- + {JSON.stringify(d.newValue)} -
+
+
{d.path}
+
- {JSON.stringify(d.oldValue)}
+
+ {JSON.stringify(d.newValue)}
))}
diff --git a/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/snapshotToForm.ts b/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/snapshotToForm.ts index bacc2506..4c3d64b6 100644 --- a/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/snapshotToForm.ts +++ b/ui/src/pages/AppsTab/AppDeploymentPage/CheckpointDetailDrawer/snapshotToForm.ts @@ -1,11 +1,7 @@ +import type { Deployment } from '../../../../api/queries/admin/apps'; import type { DeploymentPageFormState } from '../hooks/useDeploymentPageState'; -interface DeployedConfigSnapshot { - jarVersionId: string; - agentConfig: Record | null; - containerConfig: Record; - sensitiveKeys: string[] | null; -} +type DeployedConfigSnapshot = NonNullable; /** * Maps a deployment snapshot to the page's form-state shape.