diff --git a/docs/snippets/AppConnectionsBrowser.jsx b/docs/snippets/AppConnectionsBrowser.jsx index cadd3f454..cfc65d1fd 100644 --- a/docs/snippets/AppConnectionsBrowser.jsx +++ b/docs/snippets/AppConnectionsBrowser.jsx @@ -1,364 +1,68 @@ -import React, { useState, useMemo } from "react"; +import React, { useState, useMemo } from 'react'; export const AppConnectionsBrowser = () => { - const [searchTerm, setSearchTerm] = useState(""); - const [selectedCategory, setSelectedCategory] = useState("All"); + 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", - ]; + const categories = ['All', 'Cloud Providers', 'Databases', 'CI/CD', 'Monitoring', 'Directory Services', 'Identity & Auth', 'Data Analytics', 'Hosting', 'DevOps Tools', 'Security']; 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: "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", - }, - ].sort(function (a, b) { - return a.name.toLowerCase().localeCompare(b.name.toLowerCase()); + {"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": "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"}, + ].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 (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()) + filtered = filtered.filter(connection => + connection.name.toLowerCase().includes(searchTerm.toLowerCase()) || + connection.description.toLowerCase().includes(searchTerm.toLowerCase()) || + connection.category.toLowerCase().includes(searchTerm.toLowerCase()) ); } @@ -366,29 +70,19 @@ export const AppConnectionsBrowser = () => { }, [searchTerm, selectedCategory]); return ( -
+
{/* Search Bar */} -
-
-
- - +
+
+
+ +
setSearchTerm(e.target.value)} /> @@ -396,16 +90,16 @@ export const AppConnectionsBrowser = () => {
{/* Category Filter */} -
-
- {categories.map((category) => ( +
+
+ {categories.map(category => (
{/* Results Count */} -
-

- {filteredConnections.length} app connection - {filteredConnections.length !== 1 ? "s" : ""} found - {selectedCategory !== "All" && ` in ${selectedCategory}`} +

+

+ {filteredConnections.length} app connection{filteredConnections.length !== 1 ? 's' : ''} found + {selectedCategory !== 'All' && ` in ${selectedCategory}`} {searchTerm && ` for "${searchTerm}"`}

{/* Connections List */} {filteredConnections.length > 0 ? ( -