diff --git a/README.md b/README.md
index bd0442c938..ba76997f1f 100644
--- a/README.md
+++ b/README.md
@@ -60,7 +60,7 @@ To quickly get started, visit our [get started guide](https://infisical.com/docs
## 🔥 What's cool about this?
-Infisical makes secret management simple and end-to-end encrypted by default. We're on a mission to make it more accessible to all developers, not just security teams.
+Infisical makes secret management simple and end-to-end encrypted by default. We're on a mission to make it more accessible to all developers, not just security teams.
According to a [report](https://www.ekransystem.com/en/blog/secrets-management) in 2019, only 10% of organizations use secret management solutions despite all using digital secrets to some extent.
@@ -73,6 +73,7 @@ We are currently working hard to make Infisical more extensive. Need any integra
Whether it's big or small, we love contributions ❤️ Check out our guide to see how to [get started](https://infisical.com/docs/contributing/overview).
Not sure where to get started? You can:
+
- [Book a free, non-pressure pairing sessions with one of our teammates](mailto:tony@infisical.com?subject=Pairing%20session&body=I'd%20like%20to%20do%20a%20pairing%20session!)!
- Join our Slack, and ask us any questions there.
@@ -81,7 +82,7 @@ Not sure where to get started? You can:
- [Slack](https://join.slack.com/t/infisical-users/shared_invite/zt-1kdbk07ro-RtoyEt_9E~fyzGo_xQYP6g) (For live discussion with the community and the Infisical team)
- [GitHub Discussions](https://github.com/Infisical/infisical/discussions) (For help with building and deeper conversations about features)
- [GitHub Issues](https://github.com/Infisical/infisical-cli/issues) (For any bugs and errors you encounter using Infisical)
-- [Twitter](https://twitter.com/infisical) (Get news fast)
+- [Twitter](https://twitter.com/infisical) (Get news fast)
## 🐥 Status
@@ -200,7 +201,6 @@ We're currently setting the foundation and building [integrations](https://infis
-
@@ -294,7 +294,6 @@ We're currently setting the foundation and building [integrations](https://infis
-
## 🏘 Open-source vs. paid
This repo is entirely MIT licensed, with the exception of the `ee` directory which will contain premium enterprise features requiring a Infisical license in the future. We're currently focused on developing non-enterprise offerings first that should suit most use-cases.
@@ -311,4 +310,4 @@ Looking to report a security vulnerability? Please don't post about it in GitHub
-
+
diff --git a/backend/src/controllers/passwordController.ts b/backend/src/controllers/passwordController.ts
index 0109dc6a51..b029bc0bee 100644
--- a/backend/src/controllers/passwordController.ts
+++ b/backend/src/controllers/passwordController.ts
@@ -309,7 +309,7 @@ export const getBackupPrivateKey = async (req: Request, res: Response) => {
try {
backupPrivateKey = await BackupPrivateKey.findOne({
user: req.user._id
- });
+ }).select('+encryptedPrivateKey +iv +tag');
if (!backupPrivateKey) throw new Error('Failed to find backup private key');
} catch (err) {
diff --git a/docs/integrations/cloud/vercel.mdx b/docs/integrations/cloud/vercel.mdx
new file mode 100644
index 0000000000..eb09203b57
--- /dev/null
+++ b/docs/integrations/cloud/vercel.mdx
@@ -0,0 +1,5 @@
+---
+title: "Vercel"
+---
+
+Coming soon.
diff --git a/docs/integrations/overview.mdx b/docs/integrations/overview.mdx
index 17c7a7f726..9323f8917e 100644
--- a/docs/integrations/overview.mdx
+++ b/docs/integrations/overview.mdx
@@ -12,7 +12,7 @@ Missing an integration? Throw in a [request](https://github.com/Infisical/infisi
| [Docker-Compose](/integrations/platforms/docker-compose) | Platform | Available |
| Kubernetes | Platform | Coming soon |
| [Heroku](/integrations/cloud/heroku) | Cloud | Available |
-| Vercel | Cloud | Coming soon |
+| [Vercel](/integrations/cloud/vercel) | Cloud | Coming soon |
| AWS | Cloud | Coming soon |
| GCP | Cloud | Coming soon |
| Azure | Cloud | Coming soon |
@@ -31,8 +31,8 @@ Missing an integration? Throw in a [request](https://github.com/Infisical/infisi
| [Gatsby](/integrations/frameworks/gatsby) | Framework | Available |
| [Remix](/integrations/frameworks/remix) | Framework | Available |
| [Vite](/integrations/frameworks/vite) | Framework | Available |
-| [Fiber](/integrations/frameworks/fiber) | Framework | Coming soon |
+| [Fiber](/integrations/frameworks/fiber) | Framework | Available |
| [Django](/integrations/frameworks/django) | Framework | Available |
| [Flask](/integrations/frameworks/flask) | Framework | Available |
-| [Laravel](/integrations/frameworks/laravel) | Framework | Coming soon |
+| [Laravel](/integrations/frameworks/laravel) | Framework | Available |
| [Ruby on Rails](/integrations/frameworks/rails) | Framework | Available |
diff --git a/docs/mint.json b/docs/mint.json
index 4fa0436d8b..547291fa5e 100644
--- a/docs/mint.json
+++ b/docs/mint.json
@@ -130,7 +130,8 @@
{
"group": "Cloud",
"pages": [
- "integrations/cloud/heroku"
+ "integrations/cloud/heroku",
+ "integrations/cloud/vercel"
]
},
{
diff --git a/frontend/components/dashboard/DashboardInputField.tsx b/frontend/components/dashboard/DashboardInputField.tsx
index 43b001bbe8..cb75dcf8c6 100644
--- a/frontend/components/dashboard/DashboardInputField.tsx
+++ b/frontend/components/dashboard/DashboardInputField.tsx
@@ -7,8 +7,8 @@ import guidGenerator from '../utilities/randomId';
const REGEX = /([$]{.*?})/g;
interface DashboardInputFieldProps {
- index: number;
- onChangeHandler: (value: string, index: number) => void;
+ position: number;
+ onChangeHandler: (value: string, position: number) => void;
value: string;
type: 'varName' | 'value';
blurred: boolean;
@@ -18,7 +18,7 @@ interface DashboardInputFieldProps {
/**
* This component renders the input fields on the dashboard
* @param {object} obj - the order number of a keyPair
- * @param {number} obj.index - the order number of a keyPair
+ * @param {number} obj.pos - the order number of a keyPair
* @param {function} obj.onChangeHandler - what happens when the input is modified
* @param {string} obj.type - whether the input field is for a Key Name or for a Key Value
* @param {string} obj.value - value of the InputField
@@ -28,7 +28,7 @@ interface DashboardInputFieldProps {
*/
const DashboardInputField = ({
- index,
+ position,
onChangeHandler,
type,
value,
@@ -57,7 +57,7 @@ const DashboardInputField = ({
>
- onChangeHandler(e.target.value.toUpperCase(), index)
+ onChangeHandler(e.target.value.toUpperCase(), position)
}
type={type}
value={value}
@@ -87,7 +87,7 @@ const DashboardInputField = ({
>
onChangeHandler(e.target.value, index)}
+ onChange={(e) => onChangeHandler(e.target.value, position)}
onScroll={syncScroll}
className={`${
blurred
diff --git a/frontend/components/utilities/secrets/getSecretsForProject.ts b/frontend/components/utilities/secrets/getSecretsForProject.ts
index 284b8bee1d..3b63f9177a 100644
--- a/frontend/components/utilities/secrets/getSecretsForProject.ts
+++ b/frontend/components/utilities/secrets/getSecretsForProject.ts
@@ -74,26 +74,26 @@ const getSecretsForProject = async ({
setFileState(tempFileState);
setData(
- tempFileState.map((line, index) => [
- guidGenerator(),
- index,
- line['key'],
- line['value'],
- line['type']
- ])
- // .sort((a, b) =>
- // sortMethod == "alphabetical"
- // ? a[2].localeCompare(b[2])
- // : b[2].localeCompare(a[2])
- // )
+ tempFileState.map((line, index) => {
+ return {
+ id: guidGenerator(),
+ pos: index,
+ key: line['key'],
+ value: line['value'],
+ type: line['type']
+ };
+ })
);
- return tempFileState.map((line, index) => [
- guidGenerator(),
- index,
- line['key'],
- line['value'],
- line['type']
- ]);
+
+ return tempFileState.map((line, index) => {
+ return {
+ id: guidGenerator(),
+ pos: index,
+ key: line['key'],
+ value: line['value'],
+ type: line['type']
+ };
+ });
} catch (error) {
console.log('Something went wrong during accessing or decripting secrets.');
}
diff --git a/frontend/pages/dashboard/[id].js b/frontend/pages/dashboard/[id].js
index 95919749cb..4bb09c80f4 100644
--- a/frontend/pages/dashboard/[id].js
+++ b/frontend/pages/dashboard/[id].js
@@ -45,7 +45,7 @@ import getWorkspaces from '../api/workspace/getWorkspaces';
/**
* This component represent a single row for an environemnt variable on the dashboard
* @param {object} obj
- * @param {String[]} obj.keyPair - data related to the environment variable (index, key, value, public/private)
+ * @param {String[]} obj.keyPair - data related to the environment variable (id, pos, key, value, public/private)
* @param {function} obj.deleteRow - a function to delete a certain keyPair
* @param {function} obj.modifyKey - modify the key of a certain environment variable
* @param {function} obj.modifyValue - modify the value of a certain environment variable
@@ -73,8 +73,8 @@ const KeyPair = ({
@@ -84,8 +84,8 @@ const KeyPair = ({
@@ -114,18 +114,18 @@ const KeyPair = ({