mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
feat(infisical-pg): resolved integration invalid cred error
This commit is contained in:
@@ -5,6 +5,7 @@ import { IntegrationAuthsSchema, SecretApprovalPoliciesSchema } from "@app/db/sc
|
|||||||
// sometimes the return data must be santizied to avoid leaking important values
|
// sometimes the return data must be santizied to avoid leaking important values
|
||||||
// always prefer pick over omit in zod
|
// always prefer pick over omit in zod
|
||||||
export const integrationAuthPubSchema = IntegrationAuthsSchema.pick({
|
export const integrationAuthPubSchema = IntegrationAuthsSchema.pick({
|
||||||
|
id: true,
|
||||||
projectId: true,
|
projectId: true,
|
||||||
integration: true,
|
integration: true,
|
||||||
teamId: true,
|
teamId: true,
|
||||||
|
|||||||
@@ -291,7 +291,15 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => {
|
|||||||
}),
|
}),
|
||||||
response: {
|
response: {
|
||||||
200: z.object({
|
200: z.object({
|
||||||
integrations: IntegrationsSchema.array()
|
integrations: IntegrationsSchema.merge(
|
||||||
|
z.object({
|
||||||
|
environment: z.object({
|
||||||
|
id: z.string(),
|
||||||
|
name: z.string(),
|
||||||
|
slug: z.string()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
).array()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -251,7 +251,7 @@ export const integrationAuthServiceFactory = ({
|
|||||||
accessToken = decryptSymmetric128BitHexKeyUTF8({
|
accessToken = decryptSymmetric128BitHexKeyUTF8({
|
||||||
ciphertext: integrationAuth.accessCiphertext,
|
ciphertext: integrationAuth.accessCiphertext,
|
||||||
iv: integrationAuth.accessIV,
|
iv: integrationAuth.accessIV,
|
||||||
tag: integrationAuth.accessIV,
|
tag: integrationAuth.accessTag,
|
||||||
key: botKey
|
key: botKey
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { getConfig } from "@app/lib/config/env";
|
|||||||
import { request } from "@app/lib/config/request";
|
import { request } from "@app/lib/config/request";
|
||||||
import { BadRequestError } from "@app/lib/errors";
|
import { BadRequestError } from "@app/lib/errors";
|
||||||
|
|
||||||
import { Integrations,IntegrationUrls } from "./integration-list";
|
import { Integrations, IntegrationUrls } from "./integration-list";
|
||||||
|
|
||||||
type ExchangeCodeAzureResponse = {
|
type ExchangeCodeAzureResponse = {
|
||||||
token_type: string;
|
token_type: string;
|
||||||
@@ -148,7 +148,6 @@ const exchangeCodeHeroku = async ({ code }: { code: string }) => {
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
).data;
|
).data;
|
||||||
|
|
||||||
accessExpiresAt.setSeconds(accessExpiresAt.getSeconds() + res.expires_in);
|
accessExpiresAt.setSeconds(accessExpiresAt.getSeconds() + res.expires_in);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ export default function GCPSecretManagerAuthorizeIntegrationPage() {
|
|||||||
const state = crypto.randomBytes(16).toString("hex");
|
const state = crypto.randomBytes(16).toString("hex");
|
||||||
localStorage.setItem("latestCSRFToken", state);
|
localStorage.setItem("latestCSRFToken", state);
|
||||||
|
|
||||||
const link = `https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/cloud-platform&response_type=code&access_type=offline&state=${state}&redirect_uri=${window.location.origin}/integrations/gcp-secret-manager/oauth2/callback&clientid=${integrationOption.clientId}`;
|
const link = `https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/cloud-platform&response_type=code&access_type=offline&state=${state}&redirect_uri=${window.location.origin}/integrations/gcp-secret-manager/oauth2/callback&client_id=${integrationOption.clientId}`;
|
||||||
window.location.assign(link);
|
window.location.assign(link);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ export default function GitLabAuthorizeIntegrationPage() {
|
|||||||
const state = `${csrfToken}|${
|
const state = `${csrfToken}|${
|
||||||
(gitLabURL as string).trim() === "" ? "" : (gitLabURL as string).trim()
|
(gitLabURL as string).trim() === "" ? "" : (gitLabURL as string).trim()
|
||||||
}`;
|
}`;
|
||||||
const link = `${baseURL}/oauth/authorize?clientid=${integrationOption.clientId}&redirect_uri=${window.location.origin}/integrations/gitlab/oauth2/callback&response_type=code&state=${state}`;
|
const link = `${baseURL}/oauth/authorize?client_id=${integrationOption.clientId}&redirect_uri=${window.location.origin}/integrations/gitlab/oauth2/callback&response_type=code&state=${state}`;
|
||||||
|
|
||||||
window.location.assign(link);
|
window.location.assign(link);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ export const redirectForProviderAuth = (integrationOption: TCloudIntegration) =>
|
|||||||
link = `${window.location.origin}/integrations/gcp-secret-manager/authorize`;
|
link = `${window.location.origin}/integrations/gcp-secret-manager/authorize`;
|
||||||
break;
|
break;
|
||||||
case "azure-key-vault":
|
case "azure-key-vault":
|
||||||
link = `https://login.microsoftonline.com/common/oauth2/v2.0/authorize?clientid=${integrationOption.clientId}&response_type=code&redirect_uri=${window.location.origin}/integrations/azure-key-vault/oauth2/callback&response_mode=query&scope=https://vault.azure.net/.default openid offline_access&state=${state}`;
|
link = `https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=${integrationOption.clientId}&response_type=code&redirect_uri=${window.location.origin}/integrations/azure-key-vault/oauth2/callback&response_mode=query&scope=https://vault.azure.net/.default openid offline_access&state=${state}`;
|
||||||
break;
|
break;
|
||||||
case "aws-parameter-store":
|
case "aws-parameter-store":
|
||||||
link = `${window.location.origin}/integrations/aws-parameter-store/authorize`;
|
link = `${window.location.origin}/integrations/aws-parameter-store/authorize`;
|
||||||
@@ -51,16 +51,16 @@ export const redirectForProviderAuth = (integrationOption: TCloudIntegration) =>
|
|||||||
link = `${window.location.origin}/integrations/aws-secret-manager/authorize`;
|
link = `${window.location.origin}/integrations/aws-secret-manager/authorize`;
|
||||||
break;
|
break;
|
||||||
case "heroku":
|
case "heroku":
|
||||||
link = `https://id.heroku.com/oauth/authorize?clientid=${integrationOption.clientId}&response_type=code&scope=write-protected&state=${state}`;
|
link = `https://id.heroku.com/oauth/authorize?client_id=${integrationOption.clientId}&response_type=code&scope=write-protected&state=${state}`;
|
||||||
break;
|
break;
|
||||||
case "vercel":
|
case "vercel":
|
||||||
link = `https://vercel.com/integrations/${integrationOption.clientSlug}/new?state=${state}`;
|
link = `https://vercel.com/integrations/${integrationOption.clientSlug}/new?state=${state}`;
|
||||||
break;
|
break;
|
||||||
case "netlify":
|
case "netlify":
|
||||||
link = `https://app.netlify.com/authorize?clientid=${integrationOption.clientId}&response_type=code&state=${state}&redirect_uri=${window.location.origin}/integrations/netlify/oauth2/callback`;
|
link = `https://app.netlify.com/authorize?client_id=${integrationOption.clientId}&response_type=code&state=${state}&redirect_uri=${window.location.origin}/integrations/netlify/oauth2/callback`;
|
||||||
break;
|
break;
|
||||||
case "github":
|
case "github":
|
||||||
link = `https://github.com/login/oauth/authorize?clientid=${integrationOption.clientId}&response_type=code&scope=repo&redirect_uri=${window.location.origin}/integrations/github/oauth2/callback&state=${state}`;
|
link = `https://github.com/login/oauth/authorize?client_id=${integrationOption.clientId}&response_type=code&scope=repo&redirect_uri=${window.location.origin}/integrations/github/oauth2/callback&state=${state}`;
|
||||||
break;
|
break;
|
||||||
case "gitlab":
|
case "gitlab":
|
||||||
link = `${window.location.origin}/integrations/gitlab/authorize`;
|
link = `${window.location.origin}/integrations/gitlab/authorize`;
|
||||||
@@ -105,7 +105,7 @@ export const redirectForProviderAuth = (integrationOption: TCloudIntegration) =>
|
|||||||
link = `${window.location.origin}/integrations/cloudflare-workers/authorize`;
|
link = `${window.location.origin}/integrations/cloudflare-workers/authorize`;
|
||||||
break;
|
break;
|
||||||
case "bitbucket":
|
case "bitbucket":
|
||||||
link = `https://bitbucket.org/site/oauth2/authorize?clientid=${integrationOption.clientId}&response_type=code&redirect_uri=${window.location.origin}/integrations/bitbucket/oauth2/callback&state=${state}`;
|
link = `https://bitbucket.org/site/oauth2/authorize?client_id=${integrationOption.clientId}&response_type=code&redirect_uri=${window.location.origin}/integrations/bitbucket/oauth2/callback&state=${state}`;
|
||||||
break;
|
break;
|
||||||
case "codefresh":
|
case "codefresh":
|
||||||
link = `${window.location.origin}/integrations/codefresh/authorize`;
|
link = `${window.location.origin}/integrations/codefresh/authorize`;
|
||||||
|
|||||||
Reference in New Issue
Block a user