mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
minor improvements
This commit is contained in:
@@ -541,8 +541,8 @@ export const expandSecretReferencesFactory = ({
|
|||||||
secretPath: string;
|
secretPath: string;
|
||||||
environment: string;
|
environment: string;
|
||||||
}) => {
|
}) => {
|
||||||
const { stackTrace } = await recursivelyExpandSecret({ ...inputSecret, shouldStackTrace: true });
|
const { stackTrace, expandedValue } = await recursivelyExpandSecret({ ...inputSecret, shouldStackTrace: true });
|
||||||
return stackTrace;
|
return { stackTrace, expandedValue };
|
||||||
};
|
};
|
||||||
|
|
||||||
return { expandSecretReferences: expandSecret, getExpandedSecretStackTrace };
|
return { expandSecretReferences: expandSecret, getExpandedSecretStackTrace };
|
||||||
|
|||||||
@@ -1976,7 +1976,7 @@ export const secretV2BridgeServiceFactory = ({
|
|||||||
? secretManagerDecryptor({ cipherTextBlob: secret.encryptedValue }).toString()
|
? secretManagerDecryptor({ cipherTextBlob: secret.encryptedValue }).toString()
|
||||||
: "";
|
: "";
|
||||||
|
|
||||||
const { getExpandedSecretStackTrace, expandSecretReferences } = expandSecretReferencesFactory({
|
const { getExpandedSecretStackTrace } = expandSecretReferencesFactory({
|
||||||
projectId,
|
projectId,
|
||||||
folderDAL,
|
folderDAL,
|
||||||
secretDAL,
|
secretDAL,
|
||||||
@@ -1988,17 +1988,13 @@ export const secretV2BridgeServiceFactory = ({
|
|||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
|
||||||
const tree = await getExpandedSecretStackTrace({
|
const { expandedValue, stackTrace } = await getExpandedSecretStackTrace({
|
||||||
environment,
|
environment,
|
||||||
secretPath,
|
secretPath,
|
||||||
value: secretValue
|
value: secretValue
|
||||||
});
|
});
|
||||||
const value = await expandSecretReferences({
|
|
||||||
environment,
|
return { tree: stackTrace, value: expandedValue };
|
||||||
secretPath,
|
|
||||||
value: secretValue
|
|
||||||
});
|
|
||||||
return { tree, value };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ type Props = {
|
|||||||
handleSecretShare: (value: string) => void;
|
handleSecretShare: (value: string) => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const INTERPOLATION_SYNTAX_REG = /\${([^}]+)}/g;
|
||||||
|
|
||||||
export const SecretDetailSidebar = ({
|
export const SecretDetailSidebar = ({
|
||||||
isOpen,
|
isOpen,
|
||||||
onToggle,
|
onToggle,
|
||||||
@@ -174,6 +176,8 @@ export const SecretDetailSidebar = ({
|
|||||||
const secretReminderRepeatDays = watch("reminderRepeatDays");
|
const secretReminderRepeatDays = watch("reminderRepeatDays");
|
||||||
const secretReminderNote = watch("reminderNote");
|
const secretReminderNote = watch("reminderNote");
|
||||||
|
|
||||||
|
const hasReferences = secret?.value?.match(INTERPOLATION_SYNTAX_REG);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<CreateReminderForm
|
<CreateReminderForm
|
||||||
@@ -460,16 +464,21 @@ export const SecretDetailSidebar = ({
|
|||||||
>
|
>
|
||||||
{(isAllowed) => (
|
{(isAllowed) => (
|
||||||
<Modal>
|
<Modal>
|
||||||
<ModalTrigger asChild>
|
<Tooltip
|
||||||
<Button
|
className="text-center"
|
||||||
variant="outline_bg"
|
content={hasReferences ? "" : "Secret does not contain references"}
|
||||||
className="w-full px-2 py-1"
|
>
|
||||||
leftIcon={<FontAwesomeIcon icon={faProjectDiagram} />}
|
<ModalTrigger asChild>
|
||||||
isDisabled={!isAllowed}
|
<Button
|
||||||
>
|
variant="outline_bg"
|
||||||
Reference Tree
|
className="w-full px-2 py-1"
|
||||||
</Button>
|
leftIcon={<FontAwesomeIcon icon={faProjectDiagram} />}
|
||||||
</ModalTrigger>
|
isDisabled={!isAllowed || !hasReferences}
|
||||||
|
>
|
||||||
|
Reference Tree
|
||||||
|
</Button>
|
||||||
|
</ModalTrigger>
|
||||||
|
</Tooltip>
|
||||||
<ModalContent
|
<ModalContent
|
||||||
title="Secret Reference Tree"
|
title="Secret Reference Tree"
|
||||||
subTitle="Visual breakdown of secrets referenced by this secret."
|
subTitle="Visual breakdown of secrets referenced by this secret."
|
||||||
|
|||||||
@@ -29,10 +29,10 @@ export const SecretReferenceNode = ({
|
|||||||
/>
|
/>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
) : (
|
) : (
|
||||||
<div className="py-2 text-sm">
|
<div className="bg-bunker-700 py-2 text-sm">
|
||||||
<div>
|
<div>
|
||||||
{node.key}
|
{node.key}
|
||||||
<Tooltip content={node.value}>
|
<Tooltip className="break-words" content={node.value}>
|
||||||
<span
|
<span
|
||||||
className={twMerge(
|
className={twMerge(
|
||||||
"ml-2 rounded border border-gray-400 px-1 text-xs text-gray-400",
|
"ml-2 rounded border border-gray-400 px-1 text-xs text-gray-400",
|
||||||
@@ -79,11 +79,11 @@ export const SecretReferenceNode = ({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="w-full border-b border-gray-800 py-1" />
|
<div className="w-full border-b border-mineshaft-500 py-1" />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{node.children.length > 0 && (
|
{node.children.length > 0 && (
|
||||||
<div className="border-l border-gray-600 pl-6 transition-all hover:border-primary-600">
|
<div className="border-l border-gray-600 bg-bunker-700 pl-6 transition-all hover:border-gray-400">
|
||||||
{node.children.map((el, index) => (
|
{node.children.map((el, index) => (
|
||||||
<SecretReferenceNode node={el} key={`node-${node.key}-${index + 1}`} />
|
<SecretReferenceNode node={el} key={`node-${node.key}-${index + 1}`} />
|
||||||
))}
|
))}
|
||||||
@@ -124,7 +124,7 @@ export const SecretReferenceTree = ({ secretPath, environment, secret }: Props)
|
|||||||
containerClassName="text-bunker-300 hover:border-primary-400/50 border border-mineshaft-600 bg-bunker-800 px-2 py-1.5"
|
containerClassName="text-bunker-300 hover:border-primary-400/50 border border-mineshaft-600 bg-bunker-800 px-2 py-1.5"
|
||||||
/>
|
/>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<div className="max-h-96 overflow-auto">
|
<div className="max-h-96 overflow-auto rounded">
|
||||||
{tree && <SecretReferenceNode node={tree} isRoot />}
|
{tree && <SecretReferenceNode node={tree} isRoot />}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user