diff --git a/frontend/components/basic/dialog/AddServiceTokenDialog.js b/frontend/components/basic/dialog/AddServiceTokenDialog.js
index f8300358f..b50108d62 100644
--- a/frontend/components/basic/dialog/AddServiceTokenDialog.js
+++ b/frontend/components/basic/dialog/AddServiceTokenDialog.js
@@ -15,13 +15,7 @@ import {
import Button from "../buttons/Button";
import InputField from "../InputField";
import ListBox from "../Listbox";
-
-const envMapping = {
- Development: "dev",
- Staging: "staging",
- Production: "prod",
- Testing: "test",
-};
+import { envMapping } from "../../../public/data/frequentConstants";
const expiryMapping = {
"1 day": 86400,
diff --git a/frontend/components/basic/table/ServiceTokenTable.js b/frontend/components/basic/table/ServiceTokenTable.js
index 8018d3e1c..e6cd26221 100644
--- a/frontend/components/basic/table/ServiceTokenTable.js
+++ b/frontend/components/basic/table/ServiceTokenTable.js
@@ -4,15 +4,7 @@ import { faX } from "@fortawesome/free-solid-svg-icons";
import guidGenerator from "../../utilities/randomId";
import Button from "../buttons/Button";
-
-const roles = ["admin", "user"];
-
-const reverseEnvMapping = {
- dev: "Development",
- staging: "Staging",
- prod: "Production",
- test: "Testing",
-};
+import { reverseEnvMapping } from "../../../public/data/frequentConstants";
/**
* This is the component that we utilize for the user table - in future, can reuse it for some other purposes too.
diff --git a/frontend/components/utilities/secrets/getSecretsForProject.js b/frontend/components/utilities/secrets/getSecretsForProject.js
index ba502ccfd..814c1d442 100644
--- a/frontend/components/utilities/secrets/getSecretsForProject.js
+++ b/frontend/components/utilities/secrets/getSecretsForProject.js
@@ -1,6 +1,7 @@
import getSecrets from "~/pages/api/files/GetSecrets";
import guidGenerator from "../randomId";
+import { envMapping } from "../../../public/data/frequentConstants";
const {
decryptAssymmetric,
@@ -9,13 +10,6 @@ const {
const nacl = require("tweetnacl");
nacl.util = require("tweetnacl-util");
-const envMapping = {
- Development: "dev",
- Staging: "staging",
- Production: "prod",
- Testing: "test",
-};
-
const getSecretsForProject = async ({
env,
setFileState,
diff --git a/frontend/components/utilities/secrets/pushKeys.js b/frontend/components/utilities/secrets/pushKeys.js
index 97ec31c06..1dfefe220 100644
--- a/frontend/components/utilities/secrets/pushKeys.js
+++ b/frontend/components/utilities/secrets/pushKeys.js
@@ -1,6 +1,7 @@
import uploadSecrets from "~/pages/api/files/UploadSecrets";
import getLatestFileKey from "~/pages/api/workspace/getLatestFileKey";
import getWorkspaceKeys from "~/pages/api/workspace/getWorkspaceKeys";
+import { envMapping } from "../../../public/data/frequentConstants";
const crypto = require("crypto");
const {
@@ -12,12 +13,6 @@ const {
const nacl = require("tweetnacl");
nacl.util = require("tweetnacl-util");
-const envMapping = {
- Development: "dev",
- Staging: "staging",
- Production: "prod",
- Testing: "test",
-};
const pushKeys = async (obj, workspaceId, env) => {
let sharedKey = await getLatestFileKey(workspaceId);
diff --git a/frontend/pages/dashboard/[id].js b/frontend/pages/dashboard/[id].js
index 50a97b72e..b6e7c52b6 100644
--- a/frontend/pages/dashboard/[id].js
+++ b/frontend/pages/dashboard/[id].js
@@ -39,13 +39,7 @@ import getUser from "../api/user/getUser";
import checkUserAction from "../api/userActions/checkUserAction";
import registerUserAction from "../api/userActions/registerUserAction";
import getWorkspaces from "../api/workspace/getWorkspaces";
-
-const envMapping = {
- Development: "dev",
- Staging: "staging",
- Production: "prod",
- Testing: "test",
-};
+import { envMapping } from "../../public/data/frequentConstants";
/**
* This component represent a single row for an environemnt variable on the dashboard
diff --git a/frontend/pages/integrations/[id].js b/frontend/pages/integrations/[id].js
index 3689c24ff..d39d4a975 100644
--- a/frontend/pages/integrations/[id].js
+++ b/frontend/pages/integrations/[id].js
@@ -24,23 +24,10 @@ import getIntegrations from "../api/integrations/GetIntegrations";
import getWorkspaceAuthorizations from "../api/integrations/getWorkspaceAuthorizations";
import getWorkspaceIntegrations from "../api/integrations/getWorkspaceIntegrations";
import startIntegration from "../api/integrations/StartIntegration";
+import { envMapping, reverseEnvMapping, frameworks } from "../../public/data/frequentConstants";
const crypto = require("crypto");
-const envMapping = {
- Development: "dev",
- Staging: "staging",
- Production: "prod",
- Testing: "test",
-};
-
-const reverseEnvMapping = {
- dev: "Development",
- staging: "Staging",
- prod: "Production",
- test: "Testing",
-};
-
const Integration = ({ projectIntegration }) => {
const [integrationEnvironment, setIntegrationEnvironment] = useState(
reverseEnvMapping[projectIntegration.environment]
@@ -248,7 +235,7 @@ export default function Integrations() {
)}
-
Available Integrations
+
Platform & Cloud Integrations
Click on the itegration you want to connect. This will let your
@@ -265,7 +252,7 @@ export default function Integrations() {
reach out support@infisical.com.
-
+
{Object.keys(integrations).map((integration) => (
{integrations[integration].name.split(" ").length > 2 ? (
-
+
{integrations[integration].name.split(" ")[0]}
{integrations[integration].name.split(" ")[1]}{" "}
@@ -303,7 +290,7 @@ export default function Integrations() {
) : (
-
+
{integrations[integration].name}
)}
@@ -353,6 +340,35 @@ export default function Integrations() {
))}
+
+
+
Framework Integrations
+
+
+ Click on a framework to get the setup instructions.
+
+
+ {frameworks.map((framework) => (
+
+ ))}
+
diff --git a/frontend/public/data/frequentConstants.ts b/frontend/public/data/frequentConstants.ts
new file mode 100644
index 000000000..fbc0034d3
--- /dev/null
+++ b/frontend/public/data/frequentConstants.ts
@@ -0,0 +1,82 @@
+const envMapping = {
+ Development: "dev",
+ Staging: "staging",
+ Production: "prod",
+ Testing: "test",
+};
+
+const reverseEnvMapping = {
+ dev: "Development",
+ staging: "Staging",
+ prod: "Production",
+ test: "Testing",
+};
+
+const frameworks = [{
+ "name": "Docker",
+ "image": "Docker",
+ "link": "https://infisical.com/docs/integrations/platforms/docker"
+ }, {
+ "name": "Docker Compose",
+ "image": "Docker Compose",
+ "link": "https://infisical.com/docs/integrations/platforms/docker-compose"
+ }, {
+ "name": "React",
+ "image": "React",
+ "link": "https://infisical.com/docs/integrations/frameworks/react"
+ }, {
+ "name": "Vue",
+ "image": "Vue",
+ "link": "https://infisical.com/docs/integrations/frameworks/vue"
+ }, {
+ "image": "Express",
+ "link": "https://infisical.com/docs/integrations/frameworks/express"
+ },{
+ "image": "Next.js",
+ "link": "https://infisical.com/docs/integrations/frameworks/nextjs"
+ }, {
+ "name": "Django",
+ "image": "Django",
+ "link": "https://infisical.com/docs/integrations/frameworks/django"
+ }, {
+ "name": "NestJS",
+ "image": "NestJS",
+ "link": "https://infisical.com/docs/integrations/frameworks/nestjs"
+ }, {
+ "name": "Nuxt",
+ "image": "Nuxt",
+ "link": "https://infisical.com/docs/integrations/frameworks/nuxt"
+ }, {
+ "name": "Gatsby",
+ "image": "Gatsby",
+ "link": "https://infisical.com/docs/integrations/frameworks/gatsby"
+ }, {
+ "name": "Remix",
+ "image": "Remix",
+ "link": "https://infisical.com/docs/integrations/frameworks/remix"
+ }, {
+ "name": "Vite",
+ "image": "Vite",
+ "link": "https://infisical.com/docs/integrations/frameworks/vite"
+ }, {
+ "image": "Fiber",
+ "link": "https://infisical.com/docs/integrations/frameworks/fiber"
+ }, {
+ "name": "Flask",
+ "image": "Flask",
+ "link": "https://infisical.com/docs/integrations/frameworks/flask"
+ }, {
+ "name": "Laravel",
+ "image": "Laravel",
+ "link": "https://infisical.com/docs/integrations/frameworks/laravel"
+ }, {
+ "image": "Rails",
+ "link": "https://infisical.com/docs/integrations/frameworks/rails"
+ }
+]
+
+export {
+ envMapping,
+ frameworks,
+ reverseEnvMapping
+};
diff --git a/frontend/public/images/integrations/Django.png b/frontend/public/images/integrations/Django.png
new file mode 100644
index 000000000..2994c8bc0
Binary files /dev/null and b/frontend/public/images/integrations/Django.png differ
diff --git a/frontend/public/images/integrations/Docker Compose.png b/frontend/public/images/integrations/Docker Compose.png
new file mode 100644
index 000000000..aa9f58112
Binary files /dev/null and b/frontend/public/images/integrations/Docker Compose.png differ
diff --git a/frontend/public/images/integrations/Docker.png b/frontend/public/images/integrations/Docker.png
new file mode 100644
index 000000000..5180a6ae4
Binary files /dev/null and b/frontend/public/images/integrations/Docker.png differ
diff --git a/frontend/public/images/integrations/Express.png b/frontend/public/images/integrations/Express.png
new file mode 100644
index 000000000..87571cbfb
Binary files /dev/null and b/frontend/public/images/integrations/Express.png differ
diff --git a/frontend/public/images/integrations/Fiber.png b/frontend/public/images/integrations/Fiber.png
new file mode 100644
index 000000000..6f856be7b
Binary files /dev/null and b/frontend/public/images/integrations/Fiber.png differ
diff --git a/frontend/public/images/integrations/Flask.png b/frontend/public/images/integrations/Flask.png
new file mode 100644
index 000000000..31a69e832
Binary files /dev/null and b/frontend/public/images/integrations/Flask.png differ
diff --git a/frontend/public/images/integrations/Gatsby.png b/frontend/public/images/integrations/Gatsby.png
new file mode 100644
index 000000000..10dff2aa1
Binary files /dev/null and b/frontend/public/images/integrations/Gatsby.png differ
diff --git a/frontend/public/images/integrations/Laravel.png b/frontend/public/images/integrations/Laravel.png
new file mode 100644
index 000000000..41a6686d4
Binary files /dev/null and b/frontend/public/images/integrations/Laravel.png differ
diff --git a/frontend/public/images/integrations/NestJS.png b/frontend/public/images/integrations/NestJS.png
new file mode 100644
index 000000000..d7b6d349e
Binary files /dev/null and b/frontend/public/images/integrations/NestJS.png differ
diff --git a/frontend/public/images/integrations/Next.js.png b/frontend/public/images/integrations/Next.js.png
new file mode 100644
index 000000000..94296b178
Binary files /dev/null and b/frontend/public/images/integrations/Next.js.png differ
diff --git a/frontend/public/images/integrations/Nuxt.png b/frontend/public/images/integrations/Nuxt.png
new file mode 100644
index 000000000..9b8f0f342
Binary files /dev/null and b/frontend/public/images/integrations/Nuxt.png differ
diff --git a/frontend/public/images/integrations/Rails.png b/frontend/public/images/integrations/Rails.png
new file mode 100644
index 000000000..7b3eb1011
Binary files /dev/null and b/frontend/public/images/integrations/Rails.png differ
diff --git a/frontend/public/images/integrations/React.png b/frontend/public/images/integrations/React.png
new file mode 100644
index 000000000..1a48b7d0d
Binary files /dev/null and b/frontend/public/images/integrations/React.png differ
diff --git a/frontend/public/images/integrations/Remix.png b/frontend/public/images/integrations/Remix.png
new file mode 100644
index 000000000..e46c7ab41
Binary files /dev/null and b/frontend/public/images/integrations/Remix.png differ
diff --git a/frontend/public/images/integrations/Vite.png b/frontend/public/images/integrations/Vite.png
new file mode 100644
index 000000000..394614b0f
Binary files /dev/null and b/frontend/public/images/integrations/Vite.png differ
diff --git a/frontend/public/images/integrations/Vue.png b/frontend/public/images/integrations/Vue.png
new file mode 100644
index 000000000..1f299e476
Binary files /dev/null and b/frontend/public/images/integrations/Vue.png differ