Merge branch 'Infisical:main' into feat/translation-fr

This commit is contained in:
Grraahaam
2023-01-11 01:38:47 +01:00
committed by GitHub
6 changed files with 132 additions and 158 deletions
+17 -45
View File
@@ -13,30 +13,23 @@ jobs:
- name: Save commit hashes for tag - name: Save commit hashes for tag
id: commit id: commit
uses: pr-mpt/actions-commit-hash@v2 uses: pr-mpt/actions-commit-hash@v2
- name: 🔧 Set up QEMU
uses: docker/setup-qemu-action@v2
- name: 🔧 Set up Docker Buildx - name: 🔧 Set up Docker Buildx
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v2
- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: 🐋 Login to Docker Hub - name: 🐋 Login to Docker Hub
uses: docker/login-action@v2 uses: docker/login-action@v2
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up Depot CLI
uses: depot/setup-action@v1
- name: 📦 Build backend and export to Docker - name: 📦 Build backend and export to Docker
uses: docker/build-push-action@v3 uses: depot/build-push-action@v1
with: with:
project: 64mmf0n610
token: ${{ secrets.DEPOT_PROJECT_TOKEN }}
load: true load: true
context: backend context: backend
tags: infisical/backend:test tags: infisical/backend:test
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
- name: ⏻ Spawn backend container and dependencies - name: ⏻ Spawn backend container and dependencies
run: | run: |
docker compose -f .github/resources/docker-compose.be-test.yml up --wait --quiet-pull docker compose -f .github/resources/docker-compose.be-test.yml up --wait --quiet-pull
@@ -47,22 +40,15 @@ jobs:
run: | run: |
docker compose -f .github/resources/docker-compose.be-test.yml down docker compose -f .github/resources/docker-compose.be-test.yml down
- name: 🏗️ Build backend and push - name: 🏗️ Build backend and push
uses: docker/build-push-action@v3 uses: depot/build-push-action@v1
with: with:
project: 64mmf0n610
token: ${{ secrets.DEPOT_PROJECT_TOKEN }}
push: true push: true
context: backend context: backend
tags: infisical/backend:${{ steps.commit.outputs.short }}, tags: infisical/backend:${{ steps.commit.outputs.short }},
infisical/backend:latest infisical/backend:latest
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
- # Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
frontend-image: frontend-image:
name: Build frontend image name: Build frontend image
@@ -74,30 +60,23 @@ jobs:
- name: Save commit hashes for tag - name: Save commit hashes for tag
id: commit id: commit
uses: pr-mpt/actions-commit-hash@v2 uses: pr-mpt/actions-commit-hash@v2
- name: 🔧 Set up QEMU
uses: docker/setup-qemu-action@v2
- name: 🔧 Set up Docker Buildx - name: 🔧 Set up Docker Buildx
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v2
- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: 🐋 Login to Docker Hub - name: 🐋 Login to Docker Hub
uses: docker/login-action@v2 uses: docker/login-action@v2
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up Depot CLI
uses: depot/setup-action@v1
- name: 📦 Build frontend and export to Docker - name: 📦 Build frontend and export to Docker
uses: docker/build-push-action@v3 uses: depot/build-push-action@v1
with: with:
load: true load: true
token: ${{ secrets.DEPOT_PROJECT_TOKEN }}
project: 64mmf0n610
context: frontend context: frontend
tags: infisical/frontend:test tags: infisical/frontend:test
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
build-args: | build-args: |
POSTHOG_API_KEY=${{ secrets.PUBLIC_POSTHOG_API_KEY }} POSTHOG_API_KEY=${{ secrets.PUBLIC_POSTHOG_API_KEY }}
- name: ⏻ Spawn frontend container - name: ⏻ Spawn frontend container
@@ -110,21 +89,14 @@ jobs:
run: | run: |
docker stop infisical-frontend-test docker stop infisical-frontend-test
- name: 🏗️ Build frontend and push - name: 🏗️ Build frontend and push
uses: docker/build-push-action@v3 uses: depot/build-push-action@v1
with: with:
project: 64mmf0n610
push: true push: true
token: ${{ secrets.DEPOT_PROJECT_TOKEN }}
context: frontend context: frontend
tags: infisical/frontend:${{ steps.commit.outputs.short }}, tags: infisical/frontend:${{ steps.commit.outputs.short }},
infisical/frontend:latest infisical/frontend:latest
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
build-args: | build-args: |
POSTHOG_API_KEY=${{ secrets.PUBLIC_POSTHOG_API_KEY }} POSTHOG_API_KEY=${{ secrets.PUBLIC_POSTHOG_API_KEY }}
- # Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
+106 -106
View File
@@ -7,7 +7,7 @@ const { ValidationError } = mongoose.Error;
import { BadRequestError, InternalServerError, UnauthorizedRequestError, ValidationError as RouteValidationError } from '../../utils/errors'; import { BadRequestError, InternalServerError, UnauthorizedRequestError, ValidationError as RouteValidationError } from '../../utils/errors';
import { AnyBulkWriteOperation } from 'mongodb'; import { AnyBulkWriteOperation } from 'mongodb';
import { SECRET_PERSONAL, SECRET_SHARED } from "../../variables"; import { SECRET_PERSONAL, SECRET_SHARED } from "../../variables";
import { postHogClient } from '../../services'; // import { postHogClient } from '../../services';
/** /**
* Create secret for workspace with id [workspaceId] and environment [environment] * Create secret for workspace with id [workspaceId] and environment [environment]
@@ -42,19 +42,19 @@ export const createSecret = async (req: Request, res: Response) => {
throw RouteValidationError({ message: error.message, stack: error.stack }) throw RouteValidationError({ message: error.message, stack: error.stack })
} }
if (postHogClient) { // if (postHogClient) {
postHogClient.capture({ // postHogClient.capture({
event: 'secrets added', // event: 'secrets added',
distinctId: req.user.email, // distinctId: req.user.email,
properties: { // properties: {
numberOfSecrets: 1, // numberOfSecrets: 1,
workspaceId, // workspaceId,
environment, // environment,
channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli', // channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli',
userAgent: req.headers?.['user-agent'] // userAgent: req.headers?.['user-agent']
} // }
}); // });
} // }
res.status(200).send({ res.status(200).send({
secret secret
@@ -103,19 +103,19 @@ export const createSecrets = async (req: Request, res: Response) => {
throw InternalServerError({ message: "Unable to process your batch create request. Please try again", stack: bulkCreateError.stack }) throw InternalServerError({ message: "Unable to process your batch create request. Please try again", stack: bulkCreateError.stack })
} }
if (postHogClient) { // if (postHogClient) {
postHogClient.capture({ // postHogClient.capture({
event: 'secrets added', // event: 'secrets added',
distinctId: req.user.email, // distinctId: req.user.email,
properties: { // properties: {
numberOfSecrets: (secretsToCreate ?? []).length, // numberOfSecrets: (secretsToCreate ?? []).length,
workspaceId, // workspaceId,
environment, // environment,
channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli', // channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli',
userAgent: req.headers?.['user-agent'] // userAgent: req.headers?.['user-agent']
} // }
}); // });
} // }
res.status(200).send({ res.status(200).send({
secrets secrets
@@ -158,19 +158,19 @@ export const deleteSecrets = async (req: Request, res: Response) => {
throw InternalServerError() throw InternalServerError()
} }
if (postHogClient) { // if (postHogClient) {
postHogClient.capture({ // postHogClient.capture({
event: 'secrets deleted', // event: 'secrets deleted',
distinctId: req.user.email, // distinctId: req.user.email,
properties: { // properties: {
numberOfSecrets: numSecretsDeleted, // numberOfSecrets: numSecretsDeleted,
environment: environmentName, // environment: environmentName,
workspaceId, // workspaceId,
channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli', // channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli',
userAgent: req.headers?.['user-agent'] // userAgent: req.headers?.['user-agent']
} // }
}); // });
} // }
res.status(200).send() res.status(200).send()
} }
@@ -183,19 +183,19 @@ export const deleteSecrets = async (req: Request, res: Response) => {
export const deleteSecret = async (req: Request, res: Response) => { export const deleteSecret = async (req: Request, res: Response) => {
await Secret.findByIdAndDelete(req._secret._id) await Secret.findByIdAndDelete(req._secret._id)
if (postHogClient) { // if (postHogClient) {
postHogClient.capture({ // postHogClient.capture({
event: 'secrets deleted', // event: 'secrets deleted',
distinctId: req.user.email, // distinctId: req.user.email,
properties: { // properties: {
numberOfSecrets: 1, // numberOfSecrets: 1,
workspaceId: req._secret.workspace.toString(), // workspaceId: req._secret.workspace.toString(),
environment: req._secret.environment, // environment: req._secret.environment,
channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli', // channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli',
userAgent: req.headers?.['user-agent'] // userAgent: req.headers?.['user-agent']
} // }
}); // });
} // }
res.status(200).send({ res.status(200).send({
secret: req._secret secret: req._secret
@@ -252,19 +252,19 @@ export const updateSecrets = async (req: Request, res: Response) => {
throw InternalServerError() throw InternalServerError()
} }
if (postHogClient) { // if (postHogClient) {
postHogClient.capture({ // postHogClient.capture({
event: 'secrets modified', // event: 'secrets modified',
distinctId: req.user.email, // distinctId: req.user.email,
properties: { // properties: {
numberOfSecrets: (secretsModificationsRequested ?? []).length, // numberOfSecrets: (secretsModificationsRequested ?? []).length,
environment: environmentName, // environment: environmentName,
workspaceId, // workspaceId,
channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli', // channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli',
userAgent: req.headers?.['user-agent'] // userAgent: req.headers?.['user-agent']
} // }
}); // });
} // }
return res.status(200).send() return res.status(200).send()
} }
@@ -304,19 +304,19 @@ export const updateSecret = async (req: Request, res: Response) => {
throw RouteValidationError({ message: "Unable to apply modifications, please try again", stack: error.stack }) throw RouteValidationError({ message: "Unable to apply modifications, please try again", stack: error.stack })
} }
if (postHogClient) { // if (postHogClient) {
postHogClient.capture({ // postHogClient.capture({
event: 'secrets modified', // event: 'secrets modified',
distinctId: req.user.email, // distinctId: req.user.email,
properties: { // properties: {
numberOfSecrets: 1, // numberOfSecrets: 1,
environment: environmentName, // environment: environmentName,
workspaceId, // workspaceId,
channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli', // channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli',
userAgent: req.headers?.['user-agent'] // userAgent: req.headers?.['user-agent']
} // }
}); // });
} // }
return res.status(200).send(singleModificationUpdate) return res.status(200).send(singleModificationUpdate)
} }
@@ -354,19 +354,19 @@ export const getSecrets = async (req: Request, res: Response) => {
throw RouteValidationError({ message: "Failed to get secrets, please try again", stack: err.stack }) throw RouteValidationError({ message: "Failed to get secrets, please try again", stack: err.stack })
} }
if (postHogClient) { // if (postHogClient) {
postHogClient.capture({ // postHogClient.capture({
event: 'secrets pulled', // event: 'secrets pulled',
distinctId: req.user.email, // distinctId: req.user.email,
properties: { // properties: {
numberOfSecrets: (secrets ?? []).length, // numberOfSecrets: (secrets ?? []).length,
environment, // environment,
workspaceId, // workspaceId,
channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli', // channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli',
userAgent: req.headers?.['user-agent'] // userAgent: req.headers?.['user-agent']
} // }
}); // });
} // }
return res.json(secrets) return res.json(secrets)
} }
@@ -378,20 +378,20 @@ export const getSecrets = async (req: Request, res: Response) => {
* @returns * @returns
*/ */
export const getSecret = async (req: Request, res: Response) => { export const getSecret = async (req: Request, res: Response) => {
if (postHogClient) { // if (postHogClient) {
postHogClient.capture({ // postHogClient.capture({
event: 'secrets pulled', // event: 'secrets pulled',
distinctId: req.user.email, // distinctId: req.user.email,
properties: { // properties: {
numberOfSecrets: 1, // numberOfSecrets: 1,
workspaceId: req._secret.workspace.toString(), // workspaceId: req._secret.workspace.toString(),
environment: req._secret.environment, // environment: req._secret.environment,
channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli', // channel: req.headers?.['user-agent']?.toLowerCase().includes('mozilla') ? 'web' : 'cli',
userAgent: req.headers?.['user-agent'] // userAgent: req.headers?.['user-agent']
} // }
}); // });
} // }
return res.status(200).send({ return res.status(200).send({
secret: req._secret secret: req._secret
}); });
+3 -3
View File
@@ -48,7 +48,7 @@ const INTEGRATION_OPTIONS = [
name: 'Vercel', name: 'Vercel',
slug: 'vercel', slug: 'vercel',
image: 'Vercel', image: 'Vercel',
isAvailable: true, isAvailable: false,
type: 'vercel', type: 'vercel',
clientId: '', clientId: '',
clientSlug: CLIENT_SLUG_VERCEL, clientSlug: CLIENT_SLUG_VERCEL,
@@ -58,7 +58,7 @@ const INTEGRATION_OPTIONS = [
name: 'Netlify', name: 'Netlify',
slug: 'netlify', slug: 'netlify',
image: 'Netlify', image: 'Netlify',
isAvailable: true, isAvailable: false,
type: 'oauth2', type: 'oauth2',
clientId: CLIENT_ID_NETLIFY, clientId: CLIENT_ID_NETLIFY,
docsLink: '' docsLink: ''
@@ -67,7 +67,7 @@ const INTEGRATION_OPTIONS = [
name: 'GitHub', name: 'GitHub',
slug: 'github', slug: 'github',
image: 'GitHub', image: 'GitHub',
isAvailable: true, isAvailable: false,
type: 'oauth2', type: 'oauth2',
clientId: CLIENT_ID_GITHUB, clientId: CLIENT_ID_GITHUB,
docsLink: '' docsLink: ''
-1
View File
@@ -9,7 +9,6 @@ export const initPostHog = () => {
if (typeof window !== 'undefined') { if (typeof window !== 'undefined') {
// @ts-ignore // @ts-ignore
if (ENV == 'production' && TELEMETRY_CAPTURING_ENABLED) { if (ENV == 'production' && TELEMETRY_CAPTURING_ENABLED) {
console.log("Outside of posthog", "POSTHOG_API_KEY", POSTHOG_API_KEY, "POSTHOG_HOST", POSTHOG_HOST)
posthog.init(POSTHOG_API_KEY, { posthog.init(POSTHOG_API_KEY, {
api_host: POSTHOG_HOST api_host: POSTHOG_HOST
}); });
+6 -1
View File
@@ -212,7 +212,12 @@ export default function Layout({ children }: LayoutProps) {
.split("/") .split("/")
[router.asPath.split("/").length - 1].split("?")[0]; [router.asPath.split("/").length - 1].split("?")[0];
localStorage.setItem("projectData.id", intendedWorkspaceId); if (
!["heroku", "vercel", "github", "netlify"].includes(intendedWorkspaceId)
) {
localStorage.setItem("projectData.id", intendedWorkspaceId);
}
// If a user is not a member of a workspace they are trying to access, just push them to one of theirs // If a user is not a member of a workspace they are trying to access, just push them to one of theirs
if ( if (
!["heroku", "vercel", "github", "netlify"].includes(intendedWorkspaceId) && !["heroku", "vercel", "github", "netlify"].includes(intendedWorkspaceId) &&
@@ -73,8 +73,6 @@ const AddServiceTokenDialog = ({
tag tag
}); });
console.log('newServiceToken', newServiceToken);
setServiceTokens(serviceTokens.concat([newServiceToken.serviceTokenData])); setServiceTokens(serviceTokens.concat([newServiceToken.serviceTokenData]));
setServiceToken(newServiceToken.serviceToken + "." + randomBytes); setServiceToken(newServiceToken.serviceToken + "." + randomBytes);
}; };