merge main and deconflict

This commit is contained in:
Scott Wilson
2025-08-06 18:50:02 -07:00
204 changed files with 5291 additions and 3396 deletions
@@ -1207,13 +1207,16 @@ export const OverviewPage = () => {
secretsToDeleteKeys={secretsToDeleteKeys}
usedBySecretSyncs={usedBySecretSyncs}
/>
<div ref={tableRef} className="thin-scrollbar mt-4">
<div ref={tableRef} className="mt-4">
<TableContainer
onScroll={(e) => setScrollOffset(e.currentTarget.scrollLeft)}
className="thin-scrollbar rounded-b-none"
className="thin-scrollbar max-h-[66vh] overflow-y-auto rounded-b-none"
>
<Table>
<THead style={{ height: collapseEnvironments ? headerHeight : undefined }}>
<THead
className="sticky top-0 z-20"
style={{ height: collapseEnvironments ? headerHeight : undefined }}
>
<Tr
className="sticky top-0 z-20 border-0"
style={{ height: collapseEnvironments ? headerHeight : undefined }}
@@ -1370,7 +1373,7 @@ export const OverviewPage = () => {
})}
onClick={() => handleExploreEnvClick(slug)}
>
<p className="truncate font-medium">{name}</p>
<p className="truncate font-medium underline">{name}</p>
</button>
{!collapseEnvironments && missingKeyCount > 0 && (
<Tooltip
@@ -139,7 +139,7 @@ export const SecretItem = memo(
);
const getDefaultValue = () => {
if (secret.secretValueHidden) {
if (secret.secretValueHidden && !isPending) {
return canEditSecretValue ? HIDDEN_SECRET_VALUE : "";
}
return secret.valueOverride || secret.value || "";
@@ -219,7 +219,7 @@ export const SecretItem = memo(
}
if (isDirty && !isSubmitting && !isAutoSavingRef.current) {
const debounceTime = 600;
const debounceTime = 200;
autoSaveTimeoutRef.current = setTimeout(() => {
autoSaveChanges(formValues);
@@ -410,7 +410,7 @@ export const SecretItem = memo(
tabIndex={0}
role="button"
>
{secretValueHidden && !isOverridden && (
{secretValueHidden && !isOverridden && !isPending && (
<Tooltip
content={`You do not have access to view the current value${canEditSecretValue && !isRotatedSecret ? ", but you can set a new one" : "."}`}
>
@@ -441,12 +441,14 @@ export const SecretItem = memo(
<InfisicalSecretInput
isReadOnly={isReadOnlySecret}
key="secret-value"
isVisible={isVisible && !secretValueHidden}
canEditButNotView={secretValueHidden && !isOverridden}
isVisible={isVisible && (!secretValueHidden || isPending)}
canEditButNotView={secretValueHidden && !isOverridden && !isPending}
environment={environment}
secretPath={secretPath}
{...field}
defaultValue={secretValueHidden ? HIDDEN_SECRET_VALUE : undefined}
defaultValue={
secretValueHidden && !isPending ? HIDDEN_SECRET_VALUE : undefined
}
containerClassName="py-1.5 rounded-md transition-all"
/>
)}
@@ -343,31 +343,18 @@ export const SecretListView = ({
id: orgSecret.id,
type: PendingAction.Update,
secretKey: trueOriginalSecret.key,
...(key !== trueOriginalSecret.key && { newSecretName: key }),
...(value !== trueOriginalSecret.value && {
originalValue: trueOriginalSecret.value,
secretValue: value
}),
...(comment !== trueOriginalSecret.comment && {
originalComment: trueOriginalSecret.comment,
secretComment: comment
}),
...(modSecret.skipMultilineEncoding !==
trueOriginalSecret.skipMultilineEncoding && {
originalSkipMultilineEncoding: trueOriginalSecret.skipMultilineEncoding,
skipMultilineEncoding: modSecret.skipMultilineEncoding
}),
...(!isSameTags && {
originalTags:
trueOriginalSecret.tags?.map((tag) => ({ id: tag.id, slug: tag.slug })) || [],
tags: tags?.map((tag) => ({ id: tag.id, slug: tag.name || tag.slug || "" })) || []
}),
...(JSON.stringify(secretMetadata) !==
JSON.stringify(trueOriginalSecret.secretMetadata) && {
originalSecretMetadata: trueOriginalSecret.secretMetadata || [],
secretMetadata: secretMetadata || []
}),
newSecretName: key,
originalValue: trueOriginalSecret.value,
secretValue: value,
originalComment: trueOriginalSecret.comment,
secretComment: comment,
originalSkipMultilineEncoding: trueOriginalSecret.skipMultilineEncoding,
skipMultilineEncoding: modSecret.skipMultilineEncoding,
originalTags:
trueOriginalSecret.tags?.map((tag) => ({ id: tag.id, slug: tag.slug })) || [],
tags: tags?.map((tag) => ({ id: tag.id, slug: tag.name || tag.slug || "" })) || [],
originalSecretMetadata: trueOriginalSecret.secretMetadata || [],
secretMetadata: secretMetadata || [],
timestamp: Date.now(),
resourceType: "secret",
existingSecret: orgSecret