mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-05 00:26:24 +00:00
Merge branch 'main' into snyk-upgrade-92cb55bf13238343efcdc817c6e6b2ce
This commit is contained in:
@@ -137,7 +137,9 @@ We're currently setting the foundation and building [integrations](https://infis
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="left" valign="middle">
|
<td align="left" valign="middle">
|
||||||
🔜 Supabase
|
<a href="https://infisical.com/docs/integrations/cloud/supabase?ref=github.com">
|
||||||
|
✔️ Supabase
|
||||||
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td align="left" valign="middle">
|
<td align="left" valign="middle">
|
||||||
<a href="https://infisical.com/docs/integrations/cicd/githubactions?ref=github.com">
|
<a href="https://infisical.com/docs/integrations/cicd/githubactions?ref=github.com">
|
||||||
@@ -145,7 +147,9 @@ We're currently setting the foundation and building [integrations](https://infis
|
|||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td align="left" valign="middle">
|
<td align="left" valign="middle">
|
||||||
🔜 Railway (https://github.com/Infisical/infisical/issues/271)
|
<a href="https://infisical.com/docs/integrations/cloud/railway?ref=github.com">
|
||||||
|
✔️ Railway
|
||||||
|
</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
Generated
+7
-7
@@ -38,7 +38,7 @@
|
|||||||
"jsrp": "^0.2.4",
|
"jsrp": "^0.2.4",
|
||||||
"libsodium-wrappers": "^0.7.10",
|
"libsodium-wrappers": "^0.7.10",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"mongoose": "^6.10.3",
|
"mongoose": "^6.10.4",
|
||||||
"nodemailer": "^6.8.0",
|
"nodemailer": "^6.8.0",
|
||||||
"posthog-node": "^2.6.0",
|
"posthog-node": "^2.6.0",
|
||||||
"query-string": "^7.1.3",
|
"query-string": "^7.1.3",
|
||||||
@@ -8308,9 +8308,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/mongoose": {
|
"node_modules/mongoose": {
|
||||||
"version": "6.10.3",
|
"version": "6.10.4",
|
||||||
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.3.tgz",
|
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.4.tgz",
|
||||||
"integrity": "sha512-fZ3pIlQn7lM632r1l4qiU58lKrJ+FufKVG8TNeRXSChAeu9alCl5KoQ9bLw4jnQNYevSq9o+sqZmFDHP+EVW3g==",
|
"integrity": "sha512-xCHVVEaOuhZxbthsKYxvHexWafJqWsl03sD7y7uyyt3euLd1sQoDI8DKueeJq9+hrbWkMkAGbGzgFPTIRqenPg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bson": "^4.7.0",
|
"bson": "^4.7.0",
|
||||||
"kareem": "2.5.1",
|
"kareem": "2.5.1",
|
||||||
@@ -19520,9 +19520,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mongoose": {
|
"mongoose": {
|
||||||
"version": "6.10.3",
|
"version": "6.10.4",
|
||||||
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.3.tgz",
|
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.10.4.tgz",
|
||||||
"integrity": "sha512-fZ3pIlQn7lM632r1l4qiU58lKrJ+FufKVG8TNeRXSChAeu9alCl5KoQ9bLw4jnQNYevSq9o+sqZmFDHP+EVW3g==",
|
"integrity": "sha512-xCHVVEaOuhZxbthsKYxvHexWafJqWsl03sD7y7uyyt3euLd1sQoDI8DKueeJq9+hrbWkMkAGbGzgFPTIRqenPg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"bson": "^4.7.0",
|
"bson": "^4.7.0",
|
||||||
"kareem": "2.5.1",
|
"kareem": "2.5.1",
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
"jsrp": "^0.2.4",
|
"jsrp": "^0.2.4",
|
||||||
"libsodium-wrappers": "^0.7.10",
|
"libsodium-wrappers": "^0.7.10",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"mongoose": "^6.10.3",
|
"mongoose": "^6.10.4",
|
||||||
"nodemailer": "^6.8.0",
|
"nodemailer": "^6.8.0",
|
||||||
"posthog-node": "^2.6.0",
|
"posthog-node": "^2.6.0",
|
||||||
"query-string": "^7.1.3",
|
"query-string": "^7.1.3",
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import React, { useState } from 'react'
|
import React from 'react'
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { faXmark } from '@fortawesome/free-solid-svg-icons';
|
import { faXmark } from '@fortawesome/free-solid-svg-icons';
|
||||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||||
|
|
||||||
import Button from '../basic/buttons/Button';
|
import Button from '../basic/buttons/Button';
|
||||||
import { DeleteEnvVar } from '../basic/dialog/DeleteEnvVar';
|
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
onSubmit: () => void;
|
onSubmit: () => void;
|
||||||
@@ -13,7 +12,6 @@ type Props = {
|
|||||||
|
|
||||||
export const DeleteActionButton = ({ onSubmit, isPlain }: Props) => {
|
export const DeleteActionButton = ({ onSubmit, isPlain }: Props) => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const [open, setOpen] = useState(false)
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={`${
|
<div className={`${
|
||||||
@@ -25,25 +23,17 @@ export const DeleteActionButton = ({ onSubmit, isPlain }: Props) => {
|
|||||||
onKeyDown={() => null}
|
onKeyDown={() => null}
|
||||||
role="button"
|
role="button"
|
||||||
tabIndex={0}
|
tabIndex={0}
|
||||||
onClick={() => setOpen(true)}
|
onClick={onSubmit}
|
||||||
className="invisible group-hover:visible"
|
className="invisible group-hover:visible"
|
||||||
>
|
>
|
||||||
<FontAwesomeIcon className="text-bunker-300 hover:text-red pl-2 pr-6 text-lg mt-0.5" icon={faXmark} />
|
<FontAwesomeIcon className="text-bunker-300 hover:text-red pl-2 pr-6 text-lg mt-0.5" icon={faXmark} />
|
||||||
</div>
|
</div>
|
||||||
: <Button
|
: <Button
|
||||||
text={String(t("Delete"))}
|
text={String(t("Delete"))}
|
||||||
// onButtonPressed={onSubmit}
|
|
||||||
color="red"
|
color="red"
|
||||||
size="md"
|
size="md"
|
||||||
onButtonPressed={() => setOpen(true)}
|
onButtonPressed={onSubmit}
|
||||||
/>}
|
/>}
|
||||||
<DeleteEnvVar
|
|
||||||
isOpen={open}
|
|
||||||
onClose={() => {
|
|
||||||
setOpen(false)
|
|
||||||
}}
|
|
||||||
onSubmit={onSubmit}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ import {
|
|||||||
} from '@fortawesome/free-solid-svg-icons';
|
} from '@fortawesome/free-solid-svg-icons';
|
||||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||||
import { Tag } from 'public/data/frequentInterfaces';
|
import { Tag } from 'public/data/frequentInterfaces';
|
||||||
import queryString from 'query-string';
|
|
||||||
|
|
||||||
|
// import queryString from 'query-string';
|
||||||
import Button from '@app/components/basic/buttons/Button';
|
import Button from '@app/components/basic/buttons/Button';
|
||||||
import BottonRightPopup from '@app/components/basic/popups/BottomRightPopup';
|
import BottonRightPopup from '@app/components/basic/popups/BottomRightPopup';
|
||||||
import { useNotificationContext } from '@app/components/context/Notifications/NotificationProvider';
|
import { useNotificationContext } from '@app/components/context/Notifications/NotificationProvider';
|
||||||
@@ -173,7 +173,7 @@ export default function Dashboard() {
|
|||||||
|
|
||||||
const { createNotification } = useNotificationContext();
|
const { createNotification } = useNotificationContext();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const envInURL = queryString.parse(router.asPath.split('?')[1])?.env;
|
// const envInURL = queryString.parse(router.asPath.split('?')[1])?.env;
|
||||||
|
|
||||||
const workspaceId = router.query.id as string;
|
const workspaceId = router.query.id as string;
|
||||||
const [workspaceEnvs, setWorkspaceEnvs] = useState<WorkspaceEnv[]>([]);
|
const [workspaceEnvs, setWorkspaceEnvs] = useState<WorkspaceEnv[]>([]);
|
||||||
@@ -240,7 +240,7 @@ export default function Dashboard() {
|
|||||||
setWorkspaceEnvs(accessibleEnvironments || []);
|
setWorkspaceEnvs(accessibleEnvironments || []);
|
||||||
|
|
||||||
// set env
|
// set env
|
||||||
const env = accessibleEnvironments?.[0] || {
|
const env = accessibleEnvironments[0] || {
|
||||||
name: 'unknown',
|
name: 'unknown',
|
||||||
slug: 'unknown'
|
slug: 'unknown'
|
||||||
};
|
};
|
||||||
@@ -816,7 +816,7 @@ export default function Dashboard() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return <div>
|
return <div>
|
||||||
{!envInURL
|
{false
|
||||||
? <DashboardEnvOverview />
|
? <DashboardEnvOverview />
|
||||||
: (data ? (
|
: (data ? (
|
||||||
<div className="bg-bunker-800 max-h-screen h-full relative flex flex-col justify-between text-white dark">
|
<div className="bg-bunker-800 max-h-screen h-full relative flex flex-col justify-between text-white dark">
|
||||||
@@ -846,7 +846,7 @@ export default function Dashboard() {
|
|||||||
<div className="w-full max-h-96 pb-2 dark:[color-scheme:dark]">
|
<div className="w-full max-h-96 pb-2 dark:[color-scheme:dark]">
|
||||||
<NavHeader
|
<NavHeader
|
||||||
pageName={t('dashboard:title')}
|
pageName={t('dashboard:title')}
|
||||||
currentEnv={workspaceEnvs?.filter(envir => envir.slug === envInURL)[0].name || ''}
|
currentEnv={selectedEnv?.name || ''}
|
||||||
isProjectRelated
|
isProjectRelated
|
||||||
userAvailableEnvs={workspaceEnvs}
|
userAvailableEnvs={workspaceEnvs}
|
||||||
onEnvChange={handleOnEnvironmentChange}
|
onEnvChange={handleOnEnvironmentChange}
|
||||||
@@ -1018,7 +1018,7 @@ export default function Dashboard() {
|
|||||||
<div className="flex items-center justify-center h-full my-48">
|
<div className="flex items-center justify-center h-full my-48">
|
||||||
<Image
|
<Image
|
||||||
src="/images/loading/loading.gif"
|
src="/images/loading/loading.gif"
|
||||||
height={600}
|
height={60}
|
||||||
width={100}
|
width={100}
|
||||||
alt="infisical loading indicator"
|
alt="infisical loading indicator"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ const DashboardInput = ({ isOverridden, isSecretValueHidden, isReadOnly, secret,
|
|||||||
ref.current.scrollLeft = e.currentTarget.scrollLeft;
|
ref.current.scrollLeft = e.currentTarget.scrollLeft;
|
||||||
};
|
};
|
||||||
|
|
||||||
return <td key={`row-${secret?.key || ''}--`} className={`flex flex-row w-full min-w-[11rem] justify-center h-10 items-center ${!(secret?.value || secret?.value === '') ? "bg-red-400/10" : "bg-mineshaft-900/30"}`}>
|
return <td key={`row-${secret?.key || ''}--`} className={`flex cursor-default flex-row w-full min-w-[11rem] justify-center h-10 items-center ${!(secret?.value || secret?.value === '') ? "bg-red-400/10" : "bg-mineshaft-900/30"}`}>
|
||||||
<div className="group relative whitespace-pre flex flex-col justify-center w-full">
|
<div className="group relative whitespace-pre flex flex-col justify-center w-full cursor-default">
|
||||||
<input
|
<input
|
||||||
// {...register(`secrets.${index}.valueOverride`)}
|
// {...register(`secrets.${index}.valueOverride`)}
|
||||||
defaultValue={(isOverridden ? secret.valueOverride : secret?.value || '')}
|
defaultValue={(isOverridden ? secret.valueOverride : secret?.value || '')}
|
||||||
@@ -39,7 +39,7 @@ const DashboardInput = ({ isOverridden, isSecretValueHidden, isReadOnly, secret,
|
|||||||
isSecretValueHidden
|
isSecretValueHidden
|
||||||
? 'text-transparent focus:text-transparent active:text-transparent'
|
? 'text-transparent focus:text-transparent active:text-transparent'
|
||||||
: ''
|
: ''
|
||||||
} z-10 peer font-mono ph-no-capture bg-transparent caret-transparent text-transparent text-sm px-2 py-2 w-full outline-none duration-200 no-scrollbar no-scrollbar::-webkit-scrollbar`}
|
} z-10 peer cursor-default font-mono ph-no-capture bg-transparent caret-transparent text-transparent text-sm px-2 py-2 w-full outline-none duration-200 no-scrollbar no-scrollbar::-webkit-scrollbar`}
|
||||||
spellCheck="false"
|
spellCheck="false"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
@@ -49,7 +49,7 @@ const DashboardInput = ({ isOverridden, isSecretValueHidden, isReadOnly, secret,
|
|||||||
? 'text-bunker-800 group-hover:text-gray-400 peer-focus:text-gray-100 peer-active:text-gray-400 duration-200'
|
? 'text-bunker-800 group-hover:text-gray-400 peer-focus:text-gray-100 peer-active:text-gray-400 duration-200'
|
||||||
: ''
|
: ''
|
||||||
} ${!secret?.value && "text-bunker-400 justify-center"}
|
} ${!secret?.value && "text-bunker-400 justify-center"}
|
||||||
absolute flex flex-row whitespace-pre font-mono z-0 ${isSecretValueHidden && secret?.value ? 'invisible' : 'visible'} peer-focus:visible mt-0.5 ph-no-capture overflow-x-scroll bg-transparent h-10 text-sm px-2 py-2 w-full min-w-16 outline-none duration-100 no-scrollbar no-scrollbar::-webkit-scrollbar`}
|
absolute cursor-default flex flex-row whitespace-pre font-mono z-0 ${isSecretValueHidden && secret?.value ? 'invisible' : 'visible'} peer-focus:visible mt-0.5 ph-no-capture overflow-x-scroll bg-transparent h-10 text-sm px-2 py-2 w-full min-w-16 outline-none duration-100 no-scrollbar no-scrollbar::-webkit-scrollbar`}
|
||||||
>
|
>
|
||||||
{(secret?.value || secret?.value === '') && (isOverridden ? secret.valueOverride : secret?.value)?.split('').length === 0 && <span className='text-bunker-400/80 font-sans w-full'>EMPTY</span>}
|
{(secret?.value || secret?.value === '') && (isOverridden ? secret.valueOverride : secret?.value)?.split('').length === 0 && <span className='text-bunker-400/80 font-sans w-full'>EMPTY</span>}
|
||||||
{(secret?.value || secret?.value === '') && (isOverridden ? secret.valueOverride : secret?.value)?.split(REGEX).map((word: string) => {
|
{(secret?.value || secret?.value === '') && (isOverridden ? secret.valueOverride : secret?.value)?.split(REGEX).map((word: string) => {
|
||||||
@@ -78,7 +78,7 @@ const DashboardInput = ({ isOverridden, isSecretValueHidden, isReadOnly, secret,
|
|||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
{!(secret?.value || secret?.value === '') && <span className='text-red-500/80 font-sans text-xs italic'>missing</span>}
|
{!(secret?.value || secret?.value === '') && <span className='text-red-500/80 cursor-default font-sans text-xs italic'>missing</span>}
|
||||||
</div>
|
</div>
|
||||||
{(isSecretValueHidden && secret?.value) && (
|
{(isSecretValueHidden && secret?.value) && (
|
||||||
<div className='absolute flex flex-row justify-between items-center z-0 peer pr-2 peer-active:hidden peer-focus:hidden group-hover:bg-white/[0.00] duration-100 h-10 w-full text-bunker-400 text-clip'>
|
<div className='absolute flex flex-row justify-between items-center z-0 peer pr-2 peer-active:hidden peer-focus:hidden group-hover:bg-white/[0.00] duration-100 h-10 w-full text-bunker-400 text-clip'>
|
||||||
@@ -118,7 +118,7 @@ export const EnvComparisonRow = ({
|
|||||||
<tr className="group min-w-full flex flex-row items-center hover:bg-bunker-700">
|
<tr className="group min-w-full flex flex-row items-center hover:bg-bunker-700">
|
||||||
<td className="w-10 h-10 px-4 flex items-center justify-center border-none"><div className='text-center w-10 text-xs text-bunker-400'>{index + 1}</div></td>
|
<td className="w-10 h-10 px-4 flex items-center justify-center border-none"><div className='text-center w-10 text-xs text-bunker-400'>{index + 1}</div></td>
|
||||||
<td className="flex flex-row justify-between items-center h-full min-w-[200px] lg:min-w-[220px] xl:min-w-[250px]">
|
<td className="flex flex-row justify-between items-center h-full min-w-[200px] lg:min-w-[220px] xl:min-w-[250px]">
|
||||||
<div className="flex flex-row items-center h-8">{secret?.key || ''}</div>
|
<div className="flex flex-row items-center h-8 cursor-default">{secret?.key || ''}</div>
|
||||||
<button type="button" className='mr-2 text-bunker-400 hover:text-bunker-300 invisible group-hover:visible' onClick={() => setAreValuesHiddenThisRow(!areValuesHiddenThisRow)}>
|
<button type="button" className='mr-2 text-bunker-400 hover:text-bunker-300 invisible group-hover:visible' onClick={() => setAreValuesHiddenThisRow(!areValuesHiddenThisRow)}>
|
||||||
<FontAwesomeIcon icon={areValuesHiddenThisRow ? faEye : faEyeSlash} />
|
<FontAwesomeIcon icon={areValuesHiddenThisRow ? faEye : faEyeSlash} />
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -62,7 +62,10 @@ export const OrgSettingsPage = () => {
|
|||||||
(orgUsers || []).length >= 5 &&
|
(orgUsers || []).length >= 5 &&
|
||||||
subscriptionPlan === plans.starter &&
|
subscriptionPlan === plans.starter &&
|
||||||
host === 'https://app.infisical.com' &&
|
host === 'https://app.infisical.com' &&
|
||||||
currentWorkspace?._id !== '63ea8121b6e2b0543ba79616';
|
currentWorkspace?._id !== '63ea8121b6e2b0543ba79616' &&
|
||||||
|
currentWorkspace?._id !== '634870246fd2e26f28e76996' &&
|
||||||
|
currentWorkspace?._id !== '63d823cef9e728a0a961255a' &&
|
||||||
|
currentWorkspace?._id !== '6412ec319db25595ac00b8c6';
|
||||||
|
|
||||||
const onRenameOrg = async (name: string) => {
|
const onRenameOrg = async (name: string) => {
|
||||||
if (!currentOrg?._id) return;
|
if (!currentOrg?._id) return;
|
||||||
|
|||||||
Reference in New Issue
Block a user