diff --git a/frontend/src/pages/secret-manager/CommitDetailsPage/components/CommitDetailsTab/CommitDetailsTab.tsx b/frontend/src/pages/secret-manager/CommitDetailsPage/components/CommitDetailsTab/CommitDetailsTab.tsx
index c403f9f3f..7c7fa3d0d 100644
--- a/frontend/src/pages/secret-manager/CommitDetailsPage/components/CommitDetailsTab/CommitDetailsTab.tsx
+++ b/frontend/src/pages/secret-manager/CommitDetailsPage/components/CommitDetailsTab/CommitDetailsTab.tsx
@@ -1,5 +1,5 @@
import { useEffect, useState } from "react";
-import { faAngleDown } from "@fortawesome/free-solid-svg-icons";
+import { faAngleDown, faCodeCommit, faWarning } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { DropdownMenuItem } from "@radix-ui/react-dropdown-menu";
import { useSearch } from "@tanstack/react-router";
@@ -7,12 +7,14 @@ import { useSearch } from "@tanstack/react-router";
import { createNotification } from "@app/components/notifications";
import { ProjectPermissionCan } from "@app/components/permissions";
import {
+ Button,
+ ContentLoader,
DeleteActionModal,
DropdownMenu,
DropdownMenuContent,
DropdownMenuTrigger,
- IconButton,
- Spinner
+ EmptyState,
+ PageHeader
} from "@app/components/v2";
import { ROUTE_PATHS } from "@app/const/routes";
import {
@@ -108,25 +110,25 @@ export const CommitDetailsTab = ({
// If no commit is selected or data is loading, show appropriate message
if (!selectedCommitId) {
return (
-
-
Select a commit to view details
-
+
+ goBackToHistory()}>
+ Back to Commits
+
+
);
}
if (isLoading) {
- return (
-
-
-
- );
+ return ;
}
if (!commitDetails) {
return (
-
-
No details found for this commit
-
+
+ goBackToHistory()}>
+ Back to Commits
+
+
);
}
@@ -138,9 +140,11 @@ export const CommitDetailsTab = ({
} catch (error) {
console.error("Failed to parse commit details:", error);
return (
-
-
Error parsing commit details
-
+
+ goBackToHistory()}>
+ Back to Commits
+
+
);
}
@@ -223,13 +227,12 @@ export const CommitDetailsTab = ({
// Render an item from the merged list
const renderMergedItem = (item: MergedItem): JSX.Element => {
return (
-
- toggleItemCollapsed(id)}
- />
-
+ toggleItemCollapsed(id)}
+ />
);
};
@@ -240,114 +243,94 @@ export const CommitDetailsTab = ({
"Unknown";
return (
-
-
-
-
-
-
-
- {parsedCommitDetails.changes?.message || "No message"}
-
-
-
-
-
- Commited by
- {actorDisplay}
- on
-
- {formatDisplayDate(
- parsedCommitDetails.changes?.createdAt || new Date().toISOString()
- )}
-
- {parsedCommitDetails.changes?.isLatest && (
- (Latest)
- )}
-
-
-
-
-
- {(isAllowed) => (
-
-
+
+ Commited by {actorDisplay} on{" "}
+ {formatDisplayDate(parsedCommitDetails.changes?.createdAt || new Date().toISOString())}
+ {parsedCommitDetails.changes?.isLatest && (
+ (Latest)
+ )}
+ >
+ }
+ >
+
+ {(isAllowed) => (
+
+
+ }
+ variant="solid"
+ className="h-min"
+ colorSchema="secondary"
+ >
+ Restore Options
+
+
+
+ {!parsedCommitDetails.changes.isLatest && (
+ goToRollbackPreview()}
>
-
- Restore Options
-
-
-
-
- {!parsedCommitDetails.changes.isLatest && (
- goToRollbackPreview()}
- >
-
-
-
- Roll back to this commit
-
-
- Return this folder to its exact state at the time of this commit,
- discarding all other changes made after it
-
-
-
-
- )}
-
- handlePopUpOpen("revertChanges")}
- >
-
-
- Revert changes
-
- Will restore to the previous version of affected resources
-
-
+
+
+
+ Roll back to this commit
+
+
+ Return this folder to its exact state at the time of this commit,
+ discarding all other changes made after it
+
-
-
-
- )}
-
-
+
+
+ )}
+ handlePopUpOpen("revertChanges")}
+ >
+
+
+ Revert changes
+
+ Will restore to the previous version of affected resources
+
+
+
+
+
+
+ )}
+
+
+
+
+
Commit Changes
-
-
-
-
- {sortedChangedItems.length > 0 ? (
- sortedChangedItems.map((item) => renderMergedItem(item))
- ) : (
-
-
No changed items found
-
- )}
-
+
+
+ {sortedChangedItems.length > 0 ? (
+ sortedChangedItems.map((item) => renderMergedItem(item))
+ ) : (
+
+ )}
-
-
+ >
);
};
diff --git a/frontend/src/pages/secret-manager/CommitDetailsPage/components/SecretVersionDiffView/SecretVersionDiffView.tsx b/frontend/src/pages/secret-manager/CommitDetailsPage/components/SecretVersionDiffView/SecretVersionDiffView.tsx
index 7744d3626..b3bda7368 100644
--- a/frontend/src/pages/secret-manager/CommitDetailsPage/components/SecretVersionDiffView/SecretVersionDiffView.tsx
+++ b/frontend/src/pages/secret-manager/CommitDetailsPage/components/SecretVersionDiffView/SecretVersionDiffView.tsx
@@ -225,15 +225,17 @@ const renderJsonWithDiffs = (
const getLineClass = (different: boolean) => {
if (!different) return "flex";
- return isOldVersion ? "flex bg-red-950 text-red-300" : "flex bg-green-950 text-green-300";
+ return isOldVersion
+ ? "flex bg-red-500/50 rounded-sm text-red-300"
+ : "flex bg-green-500/50 rounded-sm text-green-300";
};
- const getHighlightClass = (different: boolean) => {
- if (!different) return "";
- return isOldVersion ? "bg-red-900 rounded px-1" : "bg-green-900 rounded px-1";
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ const getHighlightClass = (_different: boolean) => {
+ return "";
};
- const prefix = isDifferent ? (isOldVersion ? "-" : "+") : " ";
+ const prefix = isDifferent ? (isOldVersion ? " -" : " +") : " ";
const keyDisplay = keyName ? `"${keyName}": ` : "";
const comma = !isLastItem ? "," : "";
@@ -320,7 +322,7 @@ const renderJsonWithDiffs = (
- {isContainerAddedOrRemoved ? (isOldVersion ? "-" : "+") : " "}
+ {isContainerAddedOrRemoved ? (isOldVersion ? " -" : " +") : " "}
{indent}
@@ -625,12 +627,11 @@ export const SecretVersionDiffView = ({
};
return (
-
+
{showHeader && renderHeader()}
-
{!collapsed && (
-
-
+
+
{
title="Commits"
description="Track, inspect, and restore your secrets and folders with confidence. View the complete history of changes made to your environment, examine specific modifications at each commit point, and preview the exact impact before rolling back to previous states."
/>
-
+
Secret Snapshots have been officially renamed to Commits. Going forward, all secret
changes will be tracked as Commits. If you made changes before this update, you can
diff --git a/frontend/src/pages/secret-manager/CommitsPage/components/CommitHistoryTab/CommitHistoryTab.tsx b/frontend/src/pages/secret-manager/CommitsPage/components/CommitHistoryTab/CommitHistoryTab.tsx
index 8f529ba86..0f0cf8323 100644
--- a/frontend/src/pages/secret-manager/CommitsPage/components/CommitHistoryTab/CommitHistoryTab.tsx
+++ b/frontend/src/pages/secret-manager/CommitsPage/components/CommitHistoryTab/CommitHistoryTab.tsx
@@ -2,13 +2,14 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import {
faArrowDownWideShort,
faArrowUpWideShort,
+ faCodeCommit,
faCopy,
faSearch
} from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { format, formatDistanceToNow } from "date-fns";
-import { Button, Input, Spinner } from "@app/components/v2";
+import { Button, ContentLoader, EmptyState, IconButton, Input } from "@app/components/v2";
import { CopyButton } from "@app/components/v2/CopyButton";
import { useGetFolderCommitHistory } from "@app/hooks/api/folderCommits";
@@ -40,58 +41,40 @@ const CommitItem = ({
onSelectCommit: (commitId: string, tab: string) => void;
}) => {
return (
-
-
-
-
-
- {
- e.stopPropagation();
- onSelectCommit(commit.id, "tab-commit-details");
- }}
- >
- {commit.message}
-
-
-
-
- {commit.actorMetadata?.email || commit.actorMetadata?.name || commit.actorType}
- committed
- {formatTimeAgo(commit.createdAt)}
-
-
-
-
-
- {
- e.stopPropagation();
- onSelectCommit(commit.id, "tab-commit-details");
- }}
- >
-
- {commit.id?.substring(0, 11)}
-
-
-
-
-
+
{
+ e.stopPropagation();
+ onSelectCommit(commit.id, "tab-commit-details");
+ }}
+ className="w-full border border-b-0 border-mineshaft-600 bg-mineshaft-800 first:rounded-t-md last:rounded-b-md last:border-b"
+ >
+
+
+
+ {commit.message}
+
+
+ {commit.actorMetadata?.email || commit.actorMetadata?.name || commit.actorType}{" "}
+ committed {formatTimeAgo(commit.createdAt)}
+
+
+
+
+
+ {commit.id?.substring(0, 11)}
+
+
-
+
);
};
@@ -108,24 +91,16 @@ const DateGroup = ({
onSelectCommit: (commitId: string, tab: string) => void;
}) => {
return (
-
-
-
-
Commits on {date}
+
+
+
+
Commits on {date}
-
-
+
{commits.map((commit) => (
-
+
))}
@@ -150,7 +125,7 @@ export const CommitHistoryTab = ({
const [offset, setOffset] = useState(0);
const [allCommits, setAllCommits] = useState
([]);
const debounceTimeoutRef = useRef();
- const limit = 5;
+ const limit = 10;
// Debounce search term
useEffect(() => {
@@ -234,42 +209,37 @@ export const CommitHistoryTab = ({
}, [hasMore, isFetching, limit]);
return (
-
+
+
Commit History
-
{isLoading && offset === 0 ? (
-
-
-
+
) : (
-
+
{Object.keys(groupedCommits).length > 0 ? (
<>
{Object.entries(groupedCommits).map(([date, dateCommits]) => (
@@ -282,34 +252,21 @@ export const CommitHistoryTab = ({
))}
>
) : (
-
-
-
No matching commits found. Try a different search term.
-
+
)}
{hasMore && (
- {isFetching ? (
- <>
-
- Loading...
- >
- ) : (
- "Load more commits"
- )}
+ Load More Commits
)}