import React, { useState, useMemo } from "react"; export const AppConnectionsBrowser = () => { const [searchTerm, setSearchTerm] = useState(""); const [selectedCategory, setSelectedCategory] = useState("All"); const categories = [ "All", "Cloud Providers", "Databases", "CI/CD", "Monitoring", "Directory Services", "Identity & Auth", "Data Analytics", "Hosting", "DevOps Tools", "Security", "Networking & DNS", ]; const connections = [ { name: "AWS", slug: "aws", path: "/integrations/app-connections/aws", description: "Learn how to connect your AWS applications to pull secrets from Infisical.", category: "Cloud Providers", }, { name: "Azure Key Vault", slug: "azure-key-vault", path: "/integrations/app-connections/azure-key-vault", description: "Learn how to connect your Azure Key Vault to pull secrets from Infisical.", category: "Cloud Providers", }, { name: "Azure App Configuration", slug: "azure-app-configuration", path: "/integrations/app-connections/azure-app-configuration", description: "Learn how to connect your Azure App Configuration to pull secrets from Infisical.", category: "Cloud Providers", }, { name: "Azure Client Secrets", slug: "azure-client-secrets", path: "/integrations/app-connections/azure-client-secrets", description: "Learn how to connect your Azure Client Secrets to pull secrets from Infisical.", category: "Cloud Providers", }, { name: "Azure DevOps", slug: "azure-devops", path: "/integrations/app-connections/azure-devops", description: "Learn how to connect your Azure DevOps to pull secrets from Infisical.", category: "CI/CD", }, { name: "Azure ADCS", slug: "azure-adcs", path: "/integrations/app-connections/azure-adcs", description: "Learn how to connect your Azure ADCS to pull secrets from Infisical.", category: "Cloud Providers", }, { name: "GCP", slug: "gcp", path: "/integrations/app-connections/gcp", description: "Learn how to connect your GCP applications to pull secrets from Infisical.", category: "Cloud Providers", }, { name: "HashiCorp Vault", slug: "hashicorp-vault", path: "/integrations/app-connections/hashicorp-vault", description: "Learn how to connect your HashiCorp Vault to pull secrets from Infisical.", category: "Security", }, { name: "1Password", slug: "1password", path: "/integrations/app-connections/1password", description: "Learn how to connect your 1Password to pull secrets from Infisical.", category: "Security", }, { name: "Vercel", slug: "vercel", path: "/integrations/app-connections/vercel", description: "Learn how to connect your Vercel application to pull secrets from Infisical.", category: "Hosting", }, { name: "Netlify", slug: "netlify", path: "/integrations/app-connections/netlify", description: "Learn how to connect your Netlify application to pull secrets from Infisical.", category: "Hosting", }, { name: "Railway", slug: "railway", path: "/integrations/app-connections/railway", description: "Learn how to connect your Railway application to pull secrets from Infisical.", category: "Hosting", }, { name: "Fly.io", slug: "flyio", path: "/integrations/app-connections/flyio", description: "Learn how to connect your Fly.io application to pull secrets from Infisical.", category: "Hosting", }, { name: "Render", slug: "render", path: "/integrations/app-connections/render", description: "Learn how to connect your Render application to pull secrets from Infisical.", category: "Hosting", }, { name: "Heroku", slug: "heroku", path: "/integrations/app-connections/heroku", description: "Learn how to connect your Heroku application to pull secrets from Infisical.", category: "Hosting", }, { name: "DigitalOcean", slug: "digital-ocean", path: "/integrations/app-connections/digital-ocean", description: "Learn how to connect your DigitalOcean application to pull secrets from Infisical.", category: "Hosting", }, { name: "Supabase", slug: "supabase", path: "/integrations/app-connections/supabase", description: "Learn how to connect your Supabase application to pull secrets from Infisical.", category: "Databases", }, { name: "Checkly", slug: "checkly", path: "/integrations/app-connections/checkly", description: "Learn how to connect your Checkly application to pull secrets from Infisical.", category: "Monitoring", }, { name: "GitHub", slug: "github", path: "/integrations/app-connections/github", description: "Learn how to connect your GitHub application to pull secrets from Infisical.", category: "CI/CD", }, { name: "GitHub Radar", slug: "github-radar", path: "/integrations/app-connections/github-radar", description: "Learn how to connect your GitHub Radar to pull secrets from Infisical.", category: "CI/CD", }, { name: "GitLab", slug: "gitlab", path: "/integrations/app-connections/gitlab", description: "Learn how to connect your GitLab application to pull secrets from Infisical.", category: "CI/CD", }, { name: "TeamCity", slug: "teamcity", path: "/integrations/app-connections/teamcity", description: "Learn how to connect your TeamCity to pull secrets from Infisical.", category: "CI/CD", }, { name: "Bitbucket", slug: "bitbucket", path: "/integrations/app-connections/bitbucket", description: "Learn how to connect your Bitbucket to pull secrets from Infisical.", category: "CI/CD", }, { name: "Terraform Cloud", slug: "terraform-cloud", path: "/integrations/app-connections/terraform-cloud", description: "Learn how to connect your Terraform Cloud to pull secrets from Infisical.", category: "DevOps Tools", }, { name: "Cloudflare", slug: "cloudflare", path: "/integrations/app-connections/cloudflare", description: "Learn how to connect your Cloudflare application to pull secrets from Infisical.", category: "Cloud Providers", }, { name: "Databricks", slug: "databricks", path: "/integrations/app-connections/databricks", description: "Learn how to connect your Databricks to pull secrets from Infisical.", category: "Data Analytics", }, { name: "DNS Made Easy", slug: "dns-made-easy", path: "/integrations/app-connections/dns-made-easy", description: "Learn how to connect Infisical to DNS Made Easy.", category: "Networking & DNS", }, { name: "Windmill", slug: "windmill", path: "/integrations/app-connections/windmill", description: "Learn how to connect your Windmill to pull secrets from Infisical.", category: "DevOps Tools", }, { name: "Camunda", slug: "camunda", path: "/integrations/app-connections/camunda", description: "Learn how to connect your Camunda to pull secrets from Infisical.", category: "DevOps Tools", }, { name: "Humanitec", slug: "humanitec", path: "/integrations/app-connections/humanitec", description: "Learn how to connect your Humanitec to pull secrets from Infisical.", category: "DevOps Tools", }, { name: "OCI", slug: "oci", path: "/integrations/app-connections/oci", description: "Learn how to connect your OCI applications to pull secrets from Infisical.", category: "Cloud Providers", }, { name: "Zabbix", slug: "zabbix", path: "/integrations/app-connections/zabbix", description: "Learn how to connect your Zabbix to pull secrets from Infisical.", category: "Monitoring", }, { name: "MySQL", slug: "mysql", path: "/integrations/app-connections/mysql", description: "Learn how to connect your MySQL database to pull secrets from Infisical.", category: "Databases", }, { name: "PostgreSQL", slug: "postgres", path: "/integrations/app-connections/postgres", description: "Learn how to connect your PostgreSQL database to pull secrets from Infisical.", category: "Databases", }, { name: "Microsoft SQL Server", slug: "mssql", path: "/integrations/app-connections/mssql", description: "Learn how to connect your SQL Server database to pull secrets from Infisical.", category: "Databases", }, { name: "Oracle Database", slug: "oracledb", path: "/integrations/app-connections/oracledb", description: "Learn how to connect your Oracle database to pull secrets from Infisical.", category: "Databases", }, { name: "Redis", slug: "redis", path: "/integrations/app-connections/redis", description: "Learn how to connect Redis to pull secrets from Infisical.", category: "Databases", }, { name: "LDAP", slug: "ldap", path: "/integrations/app-connections/ldap", description: "Learn how to connect your LDAP to pull secrets from Infisical.", category: "Directory Services", }, { name: "Auth0", slug: "auth0", path: "/integrations/app-connections/auth0", description: "Learn how to connect your Auth0 to pull secrets from Infisical.", category: "Identity & Auth", }, { name: "Okta", slug: "okta", path: "/integrations/app-connections/okta", description: "Learn how to connect your Okta to pull secrets from Infisical.", category: "Identity & Auth", }, { name: "Laravel Forge", slug: "laravel-forge", path: "/integrations/app-connections/laravel-forge", description: "Learn how to connect your Laravel Forge to pull secrets from Infisical.", category: "Hosting", }, { name: "Chef", slug: "chef", path: "/integrations/app-connections/chef", description: "Learn how to connect your Chef to pull secrets from Infisical.", category: "DevOps Tools", }, { name: "Northflank", slug: "northflank", path: "/integrations/app-connections/northflank", description: "Learn how to connect your Northflank projects to pull secrets from Infisical.", category: "Hosting", }, { name: "MongoDB", slug: "mongodb", path: "/integrations/app-connections/mongodb", description: "Learn how to connect your MongoDB to pull secrets from Infisical.", category: "Databases" } ].sort(function (a, b) { return a.name.toLowerCase().localeCompare(b.name.toLowerCase()); }); const filteredConnections = useMemo(() => { let filtered = connections; if (selectedCategory !== "All") { filtered = filtered.filter( (connection) => connection.category === selectedCategory ); } if (searchTerm) { filtered = filtered.filter( (connection) => connection.name.toLowerCase().includes(searchTerm.toLowerCase()) || connection.description .toLowerCase() .includes(searchTerm.toLowerCase()) || connection.category.toLowerCase().includes(searchTerm.toLowerCase()) ); } return filtered; }, [searchTerm, selectedCategory]); return (
{filteredConnections.length} app connection {filteredConnections.length !== 1 ? "s" : ""} found {selectedCategory !== "All" && ` in ${selectedCategory}`} {searchTerm && ` for "${searchTerm}"`}
{connection.description}
No app connections found matching your criteria
{searchTerm && (Try adjusting your search terms or filters
)}