import { FormLabel } from "@app/components/v2"; import { CircleCiScope } from "@app/hooks/api/integrationAuth/types"; import { IntegrationMappingBehavior, TIntegrationWithEnv } from "@app/hooks/api/integrations/types"; import { integrationSlugNameMapping } from "../IntegrationsDetailsByIDPage.utils"; type Props = { integration: TIntegrationWithEnv; }; export const IntegrationConnectionSection = ({ integration }: Props) => { const specifcQoveryDetails = () => { if (integration.integration !== "qovery") return null; return (
{integration?.owner || "-"}
{integration?.targetService || "-"}
{integration?.targetEnvironment || "-"}
); }; const isNotAwsManagerOneToOneDetails = () => { const isAwsSecretManagerOneToOne = integration.integration === "aws-secret-manager" && integration.metadata?.mappingBehavior === IntegrationMappingBehavior.ONE_TO_ONE; if (isAwsSecretManagerOneToOne) { return null; } const formLabel = () => { switch (integration.integration) { case "qovery": return integration.scope; case "circleci": if (integration.scope === CircleCiScope.Context) { return "Context"; } return "Project"; case "terraform-cloud": return "Project"; case "aws-secret-manager": return "Secret"; case "aws-parameter-store": case "rundeck": return "Path"; case "bitbucket": return "Repository"; case "octopus-deploy": return "Project"; case "github": if (["github-env", "github-repo"].includes(integration.scope!)) { return "Repository"; } return "Organization"; default: return "App"; } }; const contents = () => { switch (integration.integration) { case "hashicorp-vault": return `${integration.app} - path: ${integration.path}`; case "github": if (integration.scope === "github-org") { return `${integration.owner}`; } return `${integration.owner}/${integration.app}`; case "aws-parameter-store": case "rundeck": return `${integration.path}`; default: return `${integration.app}`; } }; return (
{contents()}
); }; const targetEnvironmentDetails = () => { if (integration.integration === "bitbucket") { return (
{integration.targetEnvironment || integration.targetEnvironmentId}
); } if (integration.integration === "octopus-deploy") { return (
{integration.targetEnvironment}
); } if ( ["vercel", "netlify", "railway", "gitlab", "teamcity"].includes(integration.integration) || (integration.integration === "github" && integration.scope === "github-env") ) { return (
{integration.targetEnvironment || integration.targetEnvironmentId}
); } return null; }; const generalIntegrationSpecificDetails = () => { if (integration.integration === "checkly" && integration.targetService) { return (
{integration.targetService}
); } if (integration.integration === "circleci" && integration.owner) { return (
{integration.owner}
); } if (integration.integration === "terraform-cloud" && integration.targetService) { return (
{integration.targetService}
); } if (integration.integration === "checkly" || integration.integration === "github") { return (
{integration?.metadata?.secretSuffix || "-"}
); } if (integration.integration === "bitbucket" && integration.targetServiceId) { return (
{integration.targetService}
); } return null; }; return (

Connection

{integration.environment.name}
{integration.secretPath}
{integrationSlugNameMapping?.[integration.integration]}
{specifcQoveryDetails()} {isNotAwsManagerOneToOneDetails()} {targetEnvironmentDetails()} {generalIntegrationSpecificDetails()}
); };