From c8bf9049dedc654cc58af54e60b0da81a909355a Mon Sep 17 00:00:00 2001
From: Carlos Monastyrski
Date: Mon, 1 Sep 2025 22:56:27 -0300
Subject: [PATCH 1/4] Add searchable component to docs
---
docs/.eslintrc.js | 40 +++++
docs/docs.json | 7 +
docs/integrations/app-connections.mdx | 8 +
.../integrations/app-connections/overview.mdx | 2 +-
docs/integrations/dynamic-secrets.mdx | 9 ++
docs/integrations/framework-integrations.mdx | 9 ++
docs/integrations/machine-authentication.mdx | 9 ++
docs/integrations/secret-rotations.mdx | 8 +
docs/integrations/secret-syncs.mdx | 8 +
docs/integrations/user-authentication.mdx | 9 ++
docs/snippets/AppConnectionsBrowser.jsx | 144 ++++++++++++++++++
docs/snippets/DynamicSecretsBrowser.jsx | 129 ++++++++++++++++
.../snippets/FrameworkIntegrationsBrowser.jsx | 124 +++++++++++++++
.../snippets/MachineAuthenticationBrowser.jsx | 93 +++++++++++
docs/snippets/RotationsBrowser.jsx | 116 ++++++++++++++
docs/snippets/SecretSyncsBrowser.jsx | 134 ++++++++++++++++
docs/snippets/UserAuthenticationBrowser.jsx | 124 +++++++++++++++
17 files changed, 972 insertions(+), 1 deletion(-)
create mode 100644 docs/.eslintrc.js
create mode 100644 docs/integrations/app-connections.mdx
create mode 100644 docs/integrations/dynamic-secrets.mdx
create mode 100644 docs/integrations/framework-integrations.mdx
create mode 100644 docs/integrations/machine-authentication.mdx
create mode 100644 docs/integrations/secret-rotations.mdx
create mode 100644 docs/integrations/secret-syncs.mdx
create mode 100644 docs/integrations/user-authentication.mdx
create mode 100644 docs/snippets/AppConnectionsBrowser.jsx
create mode 100644 docs/snippets/DynamicSecretsBrowser.jsx
create mode 100644 docs/snippets/FrameworkIntegrationsBrowser.jsx
create mode 100644 docs/snippets/MachineAuthenticationBrowser.jsx
create mode 100644 docs/snippets/RotationsBrowser.jsx
create mode 100644 docs/snippets/SecretSyncsBrowser.jsx
create mode 100644 docs/snippets/UserAuthenticationBrowser.jsx
diff --git a/docs/.eslintrc.js b/docs/.eslintrc.js
new file mode 100644
index 000000000..e44343a1c
--- /dev/null
+++ b/docs/.eslintrc.js
@@ -0,0 +1,40 @@
+module.exports = {
+ env: {
+ browser: true,
+ es2021: true,
+ node: true,
+ },
+ extends: [
+ 'eslint:recommended',
+ 'plugin:react/recommended',
+ 'plugin:react/jsx-runtime',
+ ],
+ parser: '@babel/eslint-parser',
+ parserOptions: {
+ ecmaVersion: 2021,
+ sourceType: 'module',
+ ecmaFeatures: {
+ jsx: true,
+ },
+ requireConfigFile: false,
+ babelOptions: {
+ presets: ['@babel/preset-react'],
+ },
+ },
+ plugins: ['react'],
+ rules: {
+ 'react/jsx-uses-react': 'error',
+ 'react/jsx-uses-vars': 'error',
+ },
+ settings: {
+ react: {
+ version: 'detect',
+ },
+ },
+ ignorePatterns: [
+ 'node_modules/',
+ 'dist/',
+ 'build/',
+ '*.config.js',
+ ],
+};
\ No newline at end of file
diff --git a/docs/docs.json b/docs/docs.json
index 6eadf70b8..b4eeaafdf 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -98,6 +98,7 @@
{
"group": "App Connections",
"pages": [
+ "integrations/app-connections",
"integrations/app-connections/overview",
{
"group": "Connections",
@@ -184,6 +185,7 @@
{
"group": "User Authentication",
"pages": [
+ "integrations/user-authentication",
"documentation/platform/auth-methods/email-password",
{
"group": "SSO",
@@ -243,6 +245,7 @@
{
"group": "Machine Identities",
"pages": [
+ "integrations/machine-authentication",
"documentation/platform/identities/alicloud-auth",
"documentation/platform/identities/aws-auth",
"documentation/platform/identities/azure-auth",
@@ -421,6 +424,7 @@
{
"group": "Secret Rotation",
"pages": [
+ "integrations/secret-rotations",
"documentation/platform/secret-rotation/overview",
"documentation/platform/secret-rotation/auth0-client-secret",
"documentation/platform/secret-rotation/aws-iam-user-secret",
@@ -436,6 +440,7 @@
{
"group": "Dynamic Secrets",
"pages": [
+ "integrations/dynamic-secrets",
"documentation/platform/dynamic-secrets/overview",
"documentation/platform/dynamic-secrets/aws-elasticache",
"documentation/platform/dynamic-secrets/aws-iam",
@@ -506,6 +511,7 @@
{
"group": "Secret Syncs",
"pages": [
+ "integrations/secret-syncs",
"integrations/secret-syncs/overview",
{
"group": "Syncs",
@@ -611,6 +617,7 @@
{
"group": "Framework Integrations",
"pages": [
+ "integrations/framework-integrations",
"integrations/frameworks/spring-boot-maven",
"integrations/frameworks/react",
"integrations/frameworks/vue",
diff --git a/docs/integrations/app-connections.mdx b/docs/integrations/app-connections.mdx
new file mode 100644
index 000000000..9f4b5b80f
--- /dev/null
+++ b/docs/integrations/app-connections.mdx
@@ -0,0 +1,8 @@
+---
+sidebarTitle: "Explore Options"
+description: "Browse and search through all available app connections for Infisical."
+---
+
+import { AppConnectionsBrowser } from "/snippets/AppConnectionsBrowser.jsx";
+
+
\ No newline at end of file
diff --git a/docs/integrations/app-connections/overview.mdx b/docs/integrations/app-connections/overview.mdx
index 92e6ab9d2..e698c4302 100644
--- a/docs/integrations/app-connections/overview.mdx
+++ b/docs/integrations/app-connections/overview.mdx
@@ -79,4 +79,4 @@ in the UI or by passing the associated `connectionId` when generating resources
## Platform Managed Credentials
Some App Connections support the ability to have their credentials managed by Infisical. By enabling this option,
-Infisical will modify the credentials to prevent external use of the configured access entity.
\ No newline at end of file
+Infisical will modify the credentials to prevent external use of the configured access entity.
diff --git a/docs/integrations/dynamic-secrets.mdx b/docs/integrations/dynamic-secrets.mdx
new file mode 100644
index 000000000..e2b5f0a46
--- /dev/null
+++ b/docs/integrations/dynamic-secrets.mdx
@@ -0,0 +1,9 @@
+---
+title: "Dynamic Secrets"
+sidebarTitle: "Explore Options"
+description: "Browse and search through all available dynamic secrets for Infisical."
+---
+
+import { DynamicSecretsBrowser } from "/snippets/DynamicSecretsBrowser.jsx";
+
+
\ No newline at end of file
diff --git a/docs/integrations/framework-integrations.mdx b/docs/integrations/framework-integrations.mdx
new file mode 100644
index 000000000..dfe78119a
--- /dev/null
+++ b/docs/integrations/framework-integrations.mdx
@@ -0,0 +1,9 @@
+---
+title: "Framework Integrations"
+sidebarTitle: "Explore Options"
+description: "Browse and search through all available framework integrations for Infisical."
+---
+
+import { FrameworkIntegrationsBrowser } from "/snippets/FrameworkIntegrationsBrowser.jsx";
+
+
\ No newline at end of file
diff --git a/docs/integrations/machine-authentication.mdx b/docs/integrations/machine-authentication.mdx
new file mode 100644
index 000000000..da4ba1042
--- /dev/null
+++ b/docs/integrations/machine-authentication.mdx
@@ -0,0 +1,9 @@
+---
+title: "Machine Authentication"
+sidebarTitle: "Explore Options"
+description: "Browse and search through all available machine authentication methods for Infisical."
+---
+
+import { MachineAuthenticationBrowser } from "/snippets/MachineAuthenticationBrowser.jsx";
+
+
\ No newline at end of file
diff --git a/docs/integrations/secret-rotations.mdx b/docs/integrations/secret-rotations.mdx
new file mode 100644
index 000000000..00d1cbb6a
--- /dev/null
+++ b/docs/integrations/secret-rotations.mdx
@@ -0,0 +1,8 @@
+---
+sidebarTitle: "Explore Options"
+description: "Browse and search through all available secret rotations for Infisical."
+---
+
+import { RotationsBrowser } from "/snippets/RotationsBrowser.jsx";
+
+
\ No newline at end of file
diff --git a/docs/integrations/secret-syncs.mdx b/docs/integrations/secret-syncs.mdx
new file mode 100644
index 000000000..6d71517f1
--- /dev/null
+++ b/docs/integrations/secret-syncs.mdx
@@ -0,0 +1,8 @@
+---
+sidebarTitle: "Explore Options"
+description: "Browse and search through all available secret syncs for Infisical."
+---
+
+import { SecretSyncsBrowser } from "/snippets/SecretSyncsBrowser.jsx";
+
+
\ No newline at end of file
diff --git a/docs/integrations/user-authentication.mdx b/docs/integrations/user-authentication.mdx
new file mode 100644
index 000000000..2b33fd7ba
--- /dev/null
+++ b/docs/integrations/user-authentication.mdx
@@ -0,0 +1,9 @@
+---
+title: "User Authentication"
+sidebarTitle: "Explore Options"
+description: "Browse and search through all available user authentication methods for Infisical."
+---
+
+import { UserAuthenticationBrowser } from "/snippets/UserAuthenticationBrowser.jsx";
+
+
\ No newline at end of file
diff --git a/docs/snippets/AppConnectionsBrowser.jsx b/docs/snippets/AppConnectionsBrowser.jsx
new file mode 100644
index 000000000..6b9a981dc
--- /dev/null
+++ b/docs/snippets/AppConnectionsBrowser.jsx
@@ -0,0 +1,144 @@
+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', 'Identity & Auth', 'Other'];
+
+ const connections = [
+ {"name": "1Password Connection", "slug": "1password", "path": "/integrations/app-connections/1password", "description": "Learn how to configure a 1Password Connection for Infisical.", "category": "Identity & Auth"},
+ {"name": "Auth0 Connection", "slug": "auth0", "path": "/integrations/app-connections/auth0", "description": "Learn how to configure an Auth0 Connection for Infisical.", "category": "Identity & Auth"},
+ {"name": "AWS Connection", "slug": "aws", "path": "/integrations/app-connections/aws", "description": "Learn how to configure an AWS Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "Azure ADCS Connection", "slug": "azure-adcs", "path": "/integrations/app-connections/azure-adcs", "description": "Learn how to configure an Azure ADCS Connection for Infisical certificate management.", "category": "Cloud Providers"},
+ {"name": "Azure App Configuration Connection", "slug": "azure-app-configuration", "path": "/integrations/app-connections/azure-app-configuration", "description": "Learn how to configure a Azure App Configuration Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "Azure Client Secrets Connection", "slug": "azure-client-secrets", "path": "/integrations/app-connections/azure-client-secrets", "description": "Learn how to configure an Azure Client Secrets Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "Azure DevOps Connection", "slug": "azure-devops", "path": "/integrations/app-connections/azure-devops", "description": "Learn how to configure an Azure DevOps Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "Azure Key Vault Connection", "slug": "azure-key-vault", "path": "/integrations/app-connections/azure-key-vault", "description": "Learn how to configure a Azure Key Vault Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "Bitbucket Connection", "slug": "bitbucket", "path": "/integrations/app-connections/bitbucket", "description": "Learn how to configure a Bitbucket Connection for Infisical.", "category": "CI/CD"},
+ {"name": "Camunda Connection", "slug": "camunda", "path": "/integrations/app-connections/camunda", "description": "Learn how to configure a Camunda Connection for Infisical.", "category": "Other"},
+ {"name": "Checkly Connection", "slug": "checkly", "path": "/integrations/app-connections/checkly", "description": "Learn how to configure a Checkly Connection for Infisical.", "category": "Monitoring"},
+ {"name": "Cloudflare Connection", "slug": "cloudflare", "path": "/integrations/app-connections/cloudflare", "description": "Learn how to configure a Cloudflare Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "Databricks Connection", "slug": "databricks", "path": "/integrations/app-connections/databricks", "description": "Learn how to configure a Databricks Connection for Infisical.", "category": "Monitoring"},
+ {"name": "DigitalOcean Connection", "slug": "digital-ocean", "path": "/integrations/app-connections/digital-ocean", "description": "Learn how to configure a DigitalOcean Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "Fly.io Connection", "slug": "flyio", "path": "/integrations/app-connections/flyio", "description": "Learn how to configure a Fly.io Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "GCP Connection", "slug": "gcp", "path": "/integrations/app-connections/gcp", "description": "Learn how to configure a GCP Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "GitHub Radar Connection", "slug": "github-radar", "path": "/integrations/app-connections/github-radar", "description": "Learn how to configure a GitHub Radar Connection for Infisical.", "category": "CI/CD"},
+ {"name": "GitHub Connection", "slug": "github", "path": "/integrations/app-connections/github", "description": "Learn how to configure a GitHub Connection for Infisical.", "category": "CI/CD"},
+ {"name": "GitLab Connection", "slug": "gitlab", "path": "/integrations/app-connections/gitlab", "description": "Learn how to configure a GitLab Connection for Infisical using OAuth or Access Token methods.", "category": "CI/CD"},
+ {"name": "Hashicorp Vault Connection", "slug": "hashicorp-vault", "path": "/integrations/app-connections/hashicorp-vault", "description": "Learn how to configure a Hashicorp Vault Connection for Infisical.", "category": "Other"},
+ {"name": "Heroku Connection", "slug": "heroku", "path": "/integrations/app-connections/heroku", "description": "Learn how to configure a Heroku Connection for Infisical using OAuth or Auth Token methods.", "category": "Cloud Providers"},
+ {"name": "Humanitec Connection", "slug": "humanitec", "path": "/integrations/app-connections/humanitec", "description": "Learn how to configure a Humanitec Connection for Infisical.", "category": "Other"},
+ {"name": "LDAP Connection", "slug": "ldap", "path": "/integrations/app-connections/ldap", "description": "Learn how to configure an LDAP Connection for Infisical.", "category": "Identity & Auth"},
+ {"name": "Microsoft SQL Server Connection", "slug": "mssql", "path": "/integrations/app-connections/mssql", "description": "Learn how to configure a Microsoft SQL Server Connection for Infisical.", "category": "Databases"},
+ {"name": "MySQL Connection", "slug": "mysql", "path": "/integrations/app-connections/mysql", "description": "Learn how to configure a MySQL Connection for Infisical.", "category": "Databases"},
+ {"name": "Netlify Connection", "slug": "netlify", "path": "/integrations/app-connections/netlify", "description": "Learn how to configure a Netlify Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "OCI Connection", "slug": "oci", "path": "/integrations/app-connections/oci", "description": "Learn how to configure an Oracle Cloud Infrastructure Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "Okta Connection", "slug": "okta", "path": "/integrations/app-connections/okta", "description": "Learn how to configure an Okta Connection for Infisical.", "category": "Identity & Auth"},
+ {"name": "OracleDB Connection", "slug": "oracledb", "path": "/integrations/app-connections/oracledb", "description": "Learn how to configure a Oracle Database Connection for Infisical.", "category": "Databases"},
+ {"name": "PostgreSQL Connection", "slug": "postgres", "path": "/integrations/app-connections/postgres", "description": "Learn how to configure a PostgreSQL Connection for Infisical.", "category": "Databases"},
+ {"name": "Railway Connection", "slug": "railway", "path": "/integrations/app-connections/railway", "description": "Learn how to configure a Railway Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "Render Connection", "slug": "render", "path": "/integrations/app-connections/render", "description": "Learn how to configure a Render Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "Supabase Connection", "slug": "supabase", "path": "/integrations/app-connections/supabase", "description": "Learn how to configure a Supabase Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "TeamCity Connection", "slug": "teamcity", "path": "/integrations/app-connections/teamcity", "description": "Learn how to configure a TeamCity Connection for Infisical.", "category": "CI/CD"},
+ {"name": "Terraform Cloud Connection", "slug": "terraform-cloud", "path": "/integrations/app-connections/terraform-cloud", "description": "Learn how to configure a Terraform Cloud Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "Vercel Connection", "slug": "vercel", "path": "/integrations/app-connections/vercel", "description": "Learn how to configure a Vercel Connection for Infisical.", "category": "Cloud Providers"},
+ {"name": "Windmill Connection", "slug": "windmill", "path": "/integrations/app-connections/windmill", "description": "Learn how to configure a Windmill Connection for Infisical.", "category": "Other"},
+ {"name": "Zabbix Connection", "slug": "zabbix", "path": "/integrations/app-connections/zabbix", "description": "Learn how to configure a Zabbix Connection for Infisical.", "category": "Monitoring"}
+ ];
+
+ 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;
+ }, [connections, searchTerm, selectedCategory]);
+
+ return (
+
+ {/* Search Bar */}
+
+
+
+
setSearchTerm(e.target.value)}
+ />
+
+
+
+ {/* Category Filter */}
+
+
+ {categories.map(category => (
+ setSelectedCategory(category)}
+ className={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors shadow-sm ${
+ selectedCategory === category
+ ? 'bg-yellow-100 text-yellow-700 border border-yellow-200'
+ : 'bg-white text-gray-700 border border-gray-200 hover:bg-yellow-50 hover:border-yellow-200'
+ }`}
+ >
+ {category}
+
+ ))}
+
+
+
+ {/* Results Count */}
+
+
+ {filteredConnections.length} app connection{filteredConnections.length !== 1 ? 's' : ''} found
+ {selectedCategory !== 'All' && ` in ${selectedCategory}`}
+ {searchTerm && ` for "${searchTerm}"`}
+
+
+
+ {/* Connections List */}
+ {filteredConnections.length > 0 ? (
+
+ ) : null}
+
+ );
+};
\ No newline at end of file
diff --git a/docs/snippets/DynamicSecretsBrowser.jsx b/docs/snippets/DynamicSecretsBrowser.jsx
new file mode 100644
index 000000000..46f8585c9
--- /dev/null
+++ b/docs/snippets/DynamicSecretsBrowser.jsx
@@ -0,0 +1,129 @@
+import React, { useState, useMemo } from 'react';
+
+export const DynamicSecretsBrowser = () => {
+ const [searchTerm, setSearchTerm] = useState('');
+ const [selectedCategory, setSelectedCategory] = useState('All');
+
+ const categories = ['All', 'Databases', 'Cloud Providers', 'Message Queues', 'Caches'];
+
+ const dynamicSecrets = [
+ {"name": "AWS IAM", "slug": "aws-iam", "path": "/documentation/platform/dynamic-secrets/aws-iam", "description": "Learn how to generate dynamic AWS IAM credentials on-demand.", "category": "Cloud Providers"},
+ {"name": "AWS ElastiCache", "slug": "aws-elasticache", "path": "/documentation/platform/dynamic-secrets/aws-elasticache", "description": "Learn how to generate dynamic AWS ElastiCache credentials on-demand.", "category": "Caches"},
+ {"name": "Azure Entra ID", "slug": "azure-entra-id", "path": "/documentation/platform/dynamic-secrets/azure-entra-id", "description": "Learn how to generate dynamic Azure Entra ID credentials on-demand.", "category": "Cloud Providers"},
+ {"name": "GCP IAM", "slug": "gcp-iam", "path": "/documentation/platform/dynamic-secrets/gcp-iam", "description": "Learn how to generate dynamic GCP IAM credentials on-demand.", "category": "Cloud Providers"},
+ {"name": "Cassandra", "slug": "cassandra", "path": "/documentation/platform/dynamic-secrets/cassandra", "description": "Learn how to generate dynamic Cassandra database credentials on-demand.", "category": "Databases"},
+ {"name": "Couchbase", "slug": "couchbase", "path": "/documentation/platform/dynamic-secrets/couchbase", "description": "Learn how to generate dynamic Couchbase database credentials on-demand.", "category": "Databases"},
+ {"name": "MongoDB", "slug": "mongodb", "path": "/documentation/platform/dynamic-secrets/mongo-db", "description": "Learn how to generate dynamic MongoDB database credentials on-demand.", "category": "Databases"},
+ {"name": "MongoDB Atlas", "slug": "mongodb-atlas", "path": "/documentation/platform/dynamic-secrets/mongo-atlas", "description": "Learn how to generate dynamic MongoDB Atlas database credentials on-demand.", "category": "Databases"},
+ {"name": "MySQL", "slug": "mysql", "path": "/documentation/platform/dynamic-secrets/mysql", "description": "Learn how to generate dynamic MySQL database credentials on-demand.", "category": "Databases"},
+ {"name": "PostgreSQL", "slug": "postgresql", "path": "/documentation/platform/dynamic-secrets/postgresql", "description": "Learn how to generate dynamic PostgreSQL database credentials on-demand.", "category": "Databases"},
+ {"name": "Microsoft SQL Server", "slug": "mssql", "path": "/documentation/platform/dynamic-secrets/mssql", "description": "Learn how to generate dynamic Microsoft SQL Server credentials on-demand.", "category": "Databases"},
+ {"name": "Oracle Database", "slug": "oracle", "path": "/documentation/platform/dynamic-secrets/oracle", "description": "Learn how to generate dynamic Oracle Database credentials on-demand.", "category": "Databases"},
+ {"name": "SAP ASE", "slug": "sap-ase", "path": "/documentation/platform/dynamic-secrets/sap-ase", "description": "Learn how to generate dynamic SAP ASE database credentials on-demand.", "category": "Databases"},
+ {"name": "SAP HANA", "slug": "sap-hana", "path": "/documentation/platform/dynamic-secrets/sap-hana", "description": "Learn how to generate dynamic SAP HANA database credentials on-demand.", "category": "Databases"},
+ {"name": "Snowflake", "slug": "snowflake", "path": "/documentation/platform/dynamic-secrets/snowflake", "description": "Learn how to generate dynamic Snowflake database credentials on-demand.", "category": "Databases"},
+ {"name": "Vertica", "slug": "vertica", "path": "/documentation/platform/dynamic-secrets/vertica", "description": "Learn how to generate dynamic Vertica database credentials on-demand.", "category": "Databases"},
+ {"name": "Redis", "slug": "redis", "path": "/documentation/platform/dynamic-secrets/redis", "description": "Learn how to generate dynamic Redis credentials on-demand.", "category": "Caches"},
+ {"name": "ElasticSearch", "slug": "elasticsearch", "path": "/documentation/platform/dynamic-secrets/elastic-search", "description": "Learn how to generate dynamic ElasticSearch credentials on-demand.", "category": "Databases"},
+ {"name": "RabbitMQ", "slug": "rabbitmq", "path": "/documentation/platform/dynamic-secrets/rabbit-mq", "description": "Learn how to generate dynamic RabbitMQ credentials on-demand.", "category": "Message Queues"},
+ {"name": "LDAP", "slug": "ldap", "path": "/documentation/platform/dynamic-secrets/ldap", "description": "Learn how to generate dynamic LDAP credentials on-demand.", "category": "Cloud Providers"},
+ {"name": "GitHub", "slug": "github", "path": "/documentation/platform/dynamic-secrets/github", "description": "Learn how to generate dynamic GitHub credentials on-demand.", "category": "Cloud Providers"},
+ {"name": "Kubernetes", "slug": "kubernetes", "path": "/documentation/platform/dynamic-secrets/kubernetes", "description": "Learn how to generate dynamic Kubernetes credentials on-demand.", "category": "Cloud Providers"},
+ {"name": "TOTP", "slug": "totp", "path": "/documentation/platform/dynamic-secrets/totp", "description": "Learn how to generate dynamic TOTP codes on-demand.", "category": "Cloud Providers"}
+ ];
+
+ const filteredDynamicSecrets = useMemo(() => {
+ let filtered = dynamicSecrets;
+
+ if (selectedCategory !== 'All') {
+ filtered = filtered.filter(secret => secret.category === selectedCategory);
+ }
+
+ if (searchTerm) {
+ filtered = filtered.filter(secret =>
+ secret.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
+ secret.description.toLowerCase().includes(searchTerm.toLowerCase()) ||
+ secret.category.toLowerCase().includes(searchTerm.toLowerCase())
+ );
+ }
+
+ return filtered;
+ }, [dynamicSecrets, searchTerm, selectedCategory]);
+
+ return (
+
+ {/* Search Bar */}
+
+
+
+
setSearchTerm(e.target.value)}
+ />
+
+
+
+ {/* Category Filter */}
+
+
+ {categories.map(category => (
+ setSelectedCategory(category)}
+ className={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors shadow-sm ${
+ selectedCategory === category
+ ? 'bg-yellow-100 text-yellow-700 border border-yellow-200'
+ : 'bg-white text-gray-700 border border-gray-200 hover:bg-yellow-50 hover:border-yellow-200'
+ }`}
+ >
+ {category}
+
+ ))}
+
+
+
+ {/* Results Count */}
+
+
+ {filteredDynamicSecrets.length} dynamic secret{filteredDynamicSecrets.length !== 1 ? 's' : ''} found
+ {selectedCategory !== 'All' && ` in ${selectedCategory}`}
+ {searchTerm && ` for "${searchTerm}"`}
+
+
+
+ {/* Dynamic Secrets List */}
+ {filteredDynamicSecrets.length > 0 ? (
+
+ ) : null}
+
+ );
+};
\ No newline at end of file
diff --git a/docs/snippets/FrameworkIntegrationsBrowser.jsx b/docs/snippets/FrameworkIntegrationsBrowser.jsx
new file mode 100644
index 000000000..0644d0826
--- /dev/null
+++ b/docs/snippets/FrameworkIntegrationsBrowser.jsx
@@ -0,0 +1,124 @@
+import React, { useState, useMemo } from 'react';
+
+export const FrameworkIntegrationsBrowser = () => {
+ const [searchTerm, setSearchTerm] = useState('');
+ const [selectedCategory, setSelectedCategory] = useState('All');
+
+ const categories = ['All', 'Web Frameworks'];
+
+ const integrations = [
+ {"name": "React", "slug": "react", "path": "/integrations/frameworks/react", "description": "Learn how to integrate Infisical with React applications for secure secret management.", "category": "Web Frameworks"},
+ {"name": "Next.js", "slug": "nextjs", "path": "/integrations/frameworks/nextjs", "description": "Learn how to integrate Infisical with Next.js applications.", "category": "Web Frameworks"},
+ {"name": "Vue.js", "slug": "vuejs", "path": "/integrations/frameworks/vue", "description": "Learn how to integrate Infisical with Vue.js applications.", "category": "Web Frameworks"},
+ {"name": "Nuxt.js", "slug": "nuxtjs", "path": "/integrations/frameworks/nuxt", "description": "Learn how to integrate Infisical with Nuxt.js applications.", "category": "Web Frameworks"},
+ {"name": "SvelteKit", "slug": "sveltekit", "path": "/integrations/frameworks/sveltekit", "description": "Learn how to integrate Infisical with SvelteKit applications.", "category": "Web Frameworks"},
+ {"name": "Express.js", "slug": "express", "path": "/integrations/frameworks/express", "description": "Learn how to integrate Infisical with Express.js backend applications.", "category": "Web Frameworks"},
+ {"name": "NestJS", "slug": "nestjs", "path": "/integrations/frameworks/nestjs", "description": "Learn how to integrate Infisical with NestJS applications.", "category": "Web Frameworks"},
+ {"name": "Django", "slug": "django", "path": "/integrations/frameworks/django", "description": "Learn how to integrate Infisical with Django applications.", "category": "Web Frameworks"},
+ {"name": "Flask", "slug": "flask", "path": "/integrations/frameworks/flask", "description": "Learn how to integrate Infisical with Flask applications.", "category": "Web Frameworks"},
+ {"name": "Ruby on Rails", "slug": "rails", "path": "/integrations/frameworks/rails", "description": "Learn how to integrate Infisical with Ruby on Rails applications.", "category": "Web Frameworks"},
+ {"name": "Spring Boot", "slug": "spring-boot-maven", "path": "/integrations/frameworks/spring-boot-maven", "description": "Learn how to integrate Infisical with Spring Boot applications.", "category": "Web Frameworks"},
+ {"name": "Laravel", "slug": "laravel", "path": "/integrations/frameworks/laravel", "description": "Learn how to integrate Infisical with Laravel applications.", "category": "Web Frameworks"},
+ {"name": ".NET", "slug": "dotnet", "path": "/integrations/frameworks/dotnet", "description": "Learn how to integrate Infisical with .NET applications.", "category": "Web Frameworks"},
+ {"name": "Fiber", "slug": "fiber", "path": "/integrations/frameworks/fiber", "description": "Learn how to integrate Infisical with Fiber (Go) framework.", "category": "Web Frameworks"},
+ {"name": "Gatsby", "slug": "gatsby", "path": "/integrations/frameworks/gatsby", "description": "Learn how to integrate Infisical with Gatsby applications.", "category": "Web Frameworks"},
+ {"name": "Remix", "slug": "remix", "path": "/integrations/frameworks/remix", "description": "Learn how to integrate Infisical with Remix applications.", "category": "Web Frameworks"},
+ {"name": "Vite", "slug": "vite", "path": "/integrations/frameworks/vite", "description": "Learn how to integrate Infisical with Vite applications.", "category": "Web Frameworks"},
+ {"name": "AB Initio", "slug": "ab-initio", "path": "/integrations/frameworks/ab-initio", "description": "Learn how to integrate Infisical with AB Initio applications.", "category": "Web Frameworks"}
+ ];
+
+ const filteredIntegrations = useMemo(() => {
+ let filtered = integrations;
+
+ if (selectedCategory !== 'All') {
+ filtered = filtered.filter(integration => integration.category === selectedCategory);
+ }
+
+ if (searchTerm) {
+ filtered = filtered.filter(integration =>
+ integration.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
+ integration.description.toLowerCase().includes(searchTerm.toLowerCase()) ||
+ integration.category.toLowerCase().includes(searchTerm.toLowerCase())
+ );
+ }
+
+ return filtered;
+ }, [integrations, searchTerm, selectedCategory]);
+
+ return (
+
+ {/* Search Bar */}
+
+
+
+
setSearchTerm(e.target.value)}
+ />
+
+
+
+ {/* Category Filter */}
+
+
+ {categories.map(category => (
+ setSelectedCategory(category)}
+ className={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors shadow-sm ${
+ selectedCategory === category
+ ? 'bg-yellow-100 text-yellow-700 border border-yellow-200'
+ : 'bg-white text-gray-700 border border-gray-200 hover:bg-yellow-50 hover:border-yellow-200'
+ }`}
+ >
+ {category}
+
+ ))}
+
+
+
+ {/* Results Count */}
+
+
+ {filteredIntegrations.length} framework integration{filteredIntegrations.length !== 1 ? 's' : ''} found
+ {selectedCategory !== 'All' && ` in ${selectedCategory}`}
+ {searchTerm && ` for "${searchTerm}"`}
+
+
+
+ {/* Integrations List */}
+ {filteredIntegrations.length > 0 ? (
+
+ ) : null}
+
+ );
+};
\ No newline at end of file
diff --git a/docs/snippets/MachineAuthenticationBrowser.jsx b/docs/snippets/MachineAuthenticationBrowser.jsx
new file mode 100644
index 000000000..cf1a5a860
--- /dev/null
+++ b/docs/snippets/MachineAuthenticationBrowser.jsx
@@ -0,0 +1,93 @@
+import React, { useState, useMemo } from 'react';
+
+export const MachineAuthenticationBrowser = () => {
+ const [searchTerm, setSearchTerm] = useState('');
+
+ const authMethods = [
+ {"name": "Universal Auth", "slug": "universal-auth", "path": "/documentation/platform/identities/universal-auth", "description": "Learn how to authenticate machines using Universal Auth tokens with client ID and secret.", "category": "Token-based"},
+ {"name": "Token Auth", "slug": "token-auth", "path": "/documentation/platform/identities/token-auth", "description": "Learn how to authenticate machines using long-lived access tokens.", "category": "Token-based"},
+ {"name": "JWT Auth", "slug": "jwt-auth", "path": "/documentation/platform/identities/jwt-auth", "description": "Learn how to authenticate machines using JSON Web Tokens (JWT).", "category": "Token-based"},
+ {"name": "AWS IAM Auth", "slug": "aws-iam-auth", "path": "/documentation/platform/identities/aws-auth", "description": "Learn how to authenticate AWS services and resources using IAM roles.", "category": "Cloud Provider"},
+ {"name": "Azure Auth", "slug": "azure-auth", "path": "/documentation/platform/identities/azure-auth", "description": "Learn how to authenticate Azure services using managed identities.", "category": "Cloud Provider"},
+ {"name": "GCP Auth", "slug": "gcp-auth", "path": "/documentation/platform/identities/gcp-auth", "description": "Learn how to authenticate GCP services using service accounts.", "category": "Cloud Provider"},
+ {"name": "Alicloud Auth", "slug": "alicloud-auth", "path": "/documentation/platform/identities/alicloud-auth", "description": "Learn how to authenticate Alicloud services using RAM roles.", "category": "Cloud Provider"},
+ {"name": "OCI Auth", "slug": "oci-auth", "path": "/documentation/platform/identities/oci-auth", "description": "Learn how to authenticate Oracle Cloud Infrastructure services.", "category": "Cloud Provider"},
+ {"name": "Kubernetes Auth", "slug": "kubernetes-auth", "path": "/documentation/platform/identities/kubernetes-auth", "description": "Learn how to authenticate Kubernetes workloads using service account tokens.", "category": "Kubernetes"},
+ {"name": "OIDC Auth (General)", "slug": "oidc-auth-general", "path": "/documentation/platform/identities/oidc-auth/general", "description": "Learn how to authenticate machines using OpenID Connect (OIDC) providers.", "category": "Token-based"},
+ {"name": "OIDC Auth (GitHub)", "slug": "oidc-auth-github", "path": "/documentation/platform/identities/oidc-auth/github", "description": "Learn how to authenticate GitHub Actions using OIDC.", "category": "Token-based"},
+ {"name": "OIDC Auth (GitLab)", "slug": "oidc-auth-gitlab", "path": "/documentation/platform/identities/oidc-auth/gitlab", "description": "Learn how to authenticate GitLab CI/CD using OIDC.", "category": "Token-based"},
+ {"name": "OIDC Auth (Azure)", "slug": "oidc-auth-azure", "path": "/documentation/platform/identities/oidc-auth/azure", "description": "Learn how to authenticate Azure services using OIDC.", "category": "Token-based"},
+ {"name": "OIDC Auth (CircleCI)", "slug": "oidc-auth-circleci", "path": "/documentation/platform/identities/oidc-auth/circleci", "description": "Learn how to authenticate CircleCI workflows using OIDC.", "category": "Token-based"},
+ {"name": "OIDC Auth (Terraform Cloud)", "slug": "oidc-auth-terraform", "path": "/documentation/platform/identities/oidc-auth/terraform-cloud", "description": "Learn how to authenticate Terraform Cloud using OIDC.", "category": "Token-based"},
+ {"name": "OIDC Auth (SPIRE)", "slug": "oidc-auth-spire", "path": "/documentation/platform/identities/oidc-auth/spire", "description": "Learn how to authenticate workloads using SPIFFE/SPIRE OIDC.", "category": "Token-based"},
+ {"name": "TLS Certificate Auth", "slug": "tls-cert-auth", "path": "/documentation/platform/identities/tls-cert-auth", "description": "Learn how to authenticate machines using TLS client certificates.", "category": "Certificate-based"},
+ {"name": "LDAP Auth (General)", "slug": "ldap-auth-general", "path": "/documentation/platform/identities/ldap-auth/general", "description": "Learn how to authenticate machines using LDAP credentials.", "category": "Certificate-based"},
+ {"name": "LDAP Auth (JumpCloud)", "slug": "ldap-auth-jumpcloud", "path": "/documentation/platform/identities/ldap-auth/jumpcloud", "description": "Learn how to authenticate machines using JumpCloud LDAP.", "category": "Certificate-based"}
+ ];
+
+ const filteredAuthMethods = useMemo(() => {
+ if (!searchTerm) return authMethods;
+
+ return authMethods.filter(method =>
+ method.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
+ method.description.toLowerCase().includes(searchTerm.toLowerCase())
+ );
+ }, [authMethods, searchTerm]);
+
+ return (
+
+ {/* Search Bar */}
+
+
+
+
setSearchTerm(e.target.value)}
+ />
+
+
+
+ {/* Results Count */}
+
+
+ {filteredAuthMethods.length} machine authentication method{filteredAuthMethods.length !== 1 ? 's' : ''} found
+ {searchTerm && ` for "${searchTerm}"`}
+
+
+
+ {/* Auth Methods List */}
+ {filteredAuthMethods.length > 0 ? (
+
+ ) : null}
+
+ );
+};
\ No newline at end of file
diff --git a/docs/snippets/RotationsBrowser.jsx b/docs/snippets/RotationsBrowser.jsx
new file mode 100644
index 000000000..0077e0798
--- /dev/null
+++ b/docs/snippets/RotationsBrowser.jsx
@@ -0,0 +1,116 @@
+import React, { useState, useMemo } from 'react';
+
+export const RotationsBrowser = () => {
+ const [searchTerm, setSearchTerm] = useState('');
+ const [selectedCategory, setSelectedCategory] = useState('All');
+
+ const categories = ['All', 'Databases', 'Identity & Auth', 'Cloud Providers'];
+
+ const rotations = [
+ {"name": "AWS IAM User Secret", "slug": "aws-iam-user", "path": "/documentation/platform/secret-rotation/aws-iam-user-secret", "description": "Learn how to automatically rotate AWS IAM user access keys.", "category": "Cloud Providers"},
+ {"name": "Azure Client Secret", "slug": "azure-client-secret", "path": "/documentation/platform/secret-rotation/azure-client-secret", "description": "Learn how to automatically rotate Azure client secrets.", "category": "Cloud Providers"},
+ {"name": "Auth0 Client Secret", "slug": "auth0-client-secret", "path": "/documentation/platform/secret-rotation/auth0-client-secret", "description": "Learn how to automatically rotate Auth0 client secrets.", "category": "Identity & Auth"},
+ {"name": "Okta Client Secret", "slug": "okta-client-secret", "path": "/documentation/platform/secret-rotation/okta-client-secret", "description": "Learn how to automatically rotate Okta client secrets.", "category": "Identity & Auth"},
+ {"name": "LDAP Password", "slug": "ldap-password", "path": "/documentation/platform/secret-rotation/ldap-password", "description": "Learn how to automatically rotate LDAP user passwords.", "category": "Identity & Auth"},
+ {"name": "MySQL Credentials", "slug": "mysql-credentials", "path": "/documentation/platform/secret-rotation/mysql-credentials", "description": "Learn how to automatically rotate MySQL database credentials.", "category": "Databases"},
+ {"name": "PostgreSQL Credentials", "slug": "postgres-credentials", "path": "/documentation/platform/secret-rotation/postgres-credentials", "description": "Learn how to automatically rotate PostgreSQL database credentials.", "category": "Databases"},
+ {"name": "Microsoft SQL Server Credentials", "slug": "mssql-credentials", "path": "/documentation/platform/secret-rotation/mssql-credentials", "description": "Learn how to automatically rotate Microsoft SQL Server credentials.", "category": "Databases"},
+ {"name": "Oracle Database Credentials", "slug": "oracledb-credentials", "path": "/documentation/platform/secret-rotation/oracledb-credentials", "description": "Learn how to automatically rotate Oracle Database credentials.", "category": "Databases"},
+ {"name": "SendGrid", "slug": "sendgrid", "path": "/documentation/platform/secret-rotation/sendgrid", "description": "Learn how to automatically rotate SendGrid API keys.", "category": "Cloud Providers"}
+ ];
+
+ const filteredRotations = useMemo(() => {
+ let filtered = rotations;
+
+ if (selectedCategory !== 'All') {
+ filtered = filtered.filter(rotation => rotation.category === selectedCategory);
+ }
+
+ if (searchTerm) {
+ filtered = filtered.filter(rotation =>
+ rotation.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
+ rotation.description.toLowerCase().includes(searchTerm.toLowerCase()) ||
+ rotation.category.toLowerCase().includes(searchTerm.toLowerCase())
+ );
+ }
+
+ return filtered;
+ }, [rotations, searchTerm, selectedCategory]);
+
+ return (
+
+ {/* Search Bar */}
+
+
+
+
setSearchTerm(e.target.value)}
+ />
+
+
+
+ {/* Category Filter */}
+
+
+ {categories.map(category => (
+ setSelectedCategory(category)}
+ className={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors shadow-sm ${
+ selectedCategory === category
+ ? 'bg-yellow-100 text-yellow-700 border border-yellow-200'
+ : 'bg-white text-gray-700 border border-gray-200 hover:bg-yellow-50 hover:border-yellow-200'
+ }`}
+ >
+ {category}
+
+ ))}
+
+
+
+ {/* Results Count */}
+
+
+ {filteredRotations.length} secret rotation{filteredRotations.length !== 1 ? 's' : ''} found
+ {selectedCategory !== 'All' && ` in ${selectedCategory}`}
+ {searchTerm && ` for "${searchTerm}"`}
+
+
+
+ {/* Rotations List */}
+ {filteredRotations.length > 0 ? (
+
+ ) : null}
+
+ );
+};
\ No newline at end of file
diff --git a/docs/snippets/SecretSyncsBrowser.jsx b/docs/snippets/SecretSyncsBrowser.jsx
new file mode 100644
index 000000000..5ae9f9c7a
--- /dev/null
+++ b/docs/snippets/SecretSyncsBrowser.jsx
@@ -0,0 +1,134 @@
+import React, { useState, useMemo } from 'react';
+
+export const SecretSyncsBrowser = () => {
+ const [searchTerm, setSearchTerm] = useState('');
+ const [selectedCategory, setSelectedCategory] = useState('All');
+
+ const categories = ['All', 'Cloud Providers', 'CI/CD', 'Databases', 'Identity & Auth', 'Other'];
+
+ const syncs = [
+ {"name": "AWS Parameter Store", "slug": "aws-parameter-store", "path": "/integrations/cloud/aws-parameter-store", "description": "Learn how to sync secrets from Infisical to AWS Parameter Store.", "category": "Cloud Providers"},
+ {"name": "AWS Secrets Manager", "slug": "aws-secrets-manager", "path": "/integrations/cloud/aws-secrets-manager", "description": "Learn how to sync secrets from Infisical to AWS Secrets Manager.", "category": "Cloud Providers"},
+ {"name": "Azure Key Vault", "slug": "azure-key-vault", "path": "/integrations/cloud/azure-key-vault", "description": "Learn how to sync secrets from Infisical to Azure Key Vault.", "category": "Cloud Providers"},
+ {"name": "Bitbucket", "slug": "bitbucket", "path": "/integrations/cicd/bitbucket", "description": "Learn how to sync secrets from Infisical to Bitbucket.", "category": "CI/CD"},
+ {"name": "Checkly", "slug": "checkly", "path": "/integrations/cloud/checkly", "description": "Learn how to sync secrets from Infisical to Checkly.", "category": "Other"},
+ {"name": "CircleCI", "slug": "circleci", "path": "/integrations/cicd/circleci", "description": "Learn how to sync secrets from Infisical to CircleCI.", "category": "CI/CD"},
+ {"name": "Cloudflare Pages", "slug": "cloudflare-pages", "path": "/integrations/cloud/cloudflare-pages", "description": "Learn how to sync secrets from Infisical to Cloudflare Pages.", "category": "Cloud Providers"},
+ {"name": "Cloudflare Workers", "slug": "cloudflare-workers", "path": "/integrations/cloud/cloudflare-workers", "description": "Learn how to sync secrets from Infisical to Cloudflare Workers.", "category": "Cloud Providers"},
+ {"name": "Databricks", "slug": "databricks", "path": "/integrations/cloud/databricks", "description": "Learn how to sync secrets from Infisical to Databricks.", "category": "Other"},
+ {"name": "DigitalOcean App Platform", "slug": "digital-ocean-app-platform", "path": "/integrations/cloud/digital-ocean-app-platform", "description": "Learn how to sync secrets from Infisical to DigitalOcean App Platform.", "category": "Cloud Providers"},
+ {"name": "Docker", "slug": "docker", "path": "/integrations/platforms/docker", "description": "Learn how to sync secrets from Infisical to Docker.", "category": "Other"},
+ {"name": "Docker Compose", "slug": "docker-compose", "path": "/integrations/platforms/docker-compose", "description": "Learn how to sync secrets from Infisical to Docker Compose.", "category": "Other"},
+ {"name": "Fly.io", "slug": "flyio", "path": "/integrations/cloud/flyio", "description": "Learn how to sync secrets from Infisical to Fly.io.", "category": "Cloud Providers"},
+ {"name": "GCP Secret Manager", "slug": "gcp-secret-manager", "path": "/integrations/cloud/gcp-secret-manager", "description": "Learn how to sync secrets from Infisical to GCP Secret Manager.", "category": "Cloud Providers"},
+ {"name": "GitHub Actions", "slug": "github-actions", "path": "/integrations/cicd/githubactions", "description": "Learn how to sync secrets from Infisical to GitHub Actions.", "category": "CI/CD"},
+ {"name": "GitLab CI/CD", "slug": "gitlab-cicd", "path": "/integrations/cicd/gitlab", "description": "Learn how to sync secrets from Infisical to GitLab CI/CD.", "category": "CI/CD"},
+ {"name": "HashiCorp Vault", "slug": "hashicorp-vault", "path": "/integrations/cloud/hashicorp-vault", "description": "Learn how to sync secrets from Infisical to HashiCorp Vault.", "category": "Other"},
+ {"name": "Heroku", "slug": "heroku", "path": "/integrations/cloud/heroku", "description": "Learn how to sync secrets from Infisical to Heroku.", "category": "Cloud Providers"},
+ {"name": "Laravel Forge", "slug": "laravel-forge", "path": "/integrations/cloud/laravel-forge", "description": "Learn how to sync secrets from Infisical to Laravel Forge.", "category": "Other"},
+ {"name": "Netlify", "slug": "netlify", "path": "/integrations/cloud/netlify", "description": "Learn how to sync secrets from Infisical to Netlify.", "category": "Cloud Providers"},
+ {"name": "Northflank", "slug": "northflank", "path": "/integrations/cloud/northflank", "description": "Learn how to sync secrets from Infisical to Northflank.", "category": "Cloud Providers"},
+ {"name": "Railway", "slug": "railway", "path": "/integrations/cloud/railway", "description": "Learn how to sync secrets from Infisical to Railway.", "category": "Cloud Providers"},
+ {"name": "Render", "slug": "render", "path": "/integrations/cloud/render", "description": "Learn how to sync secrets from Infisical to Render.", "category": "Cloud Providers"},
+ {"name": "Supabase", "slug": "supabase", "path": "/integrations/cloud/supabase", "description": "Learn how to sync secrets from Infisical to Supabase.", "category": "Cloud Providers"},
+ {"name": "TeamCity", "slug": "teamcity", "path": "/integrations/cicd/teamcity", "description": "Learn how to sync secrets from Infisical to TeamCity.", "category": "CI/CD"},
+ {"name": "Terraform Cloud", "slug": "terraform-cloud", "path": "/integrations/cloud/terraform-cloud", "description": "Learn how to sync secrets from Infisical to Terraform Cloud.", "category": "Other"},
+ {"name": "Vercel", "slug": "vercel", "path": "/integrations/cloud/vercel", "description": "Learn how to sync secrets from Infisical to Vercel.", "category": "Cloud Providers"},
+ {"name": "Windmill", "slug": "windmill", "path": "/integrations/cloud/windmill", "description": "Learn how to sync secrets from Infisical to Windmill.", "category": "Other"}
+ ];
+
+ const filteredSyncs = useMemo(() => {
+ let filtered = syncs;
+
+ if (selectedCategory !== 'All') {
+ filtered = filtered.filter(sync => sync.category === selectedCategory);
+ }
+
+ if (searchTerm) {
+ filtered = filtered.filter(sync =>
+ sync.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
+ sync.description.toLowerCase().includes(searchTerm.toLowerCase()) ||
+ sync.category.toLowerCase().includes(searchTerm.toLowerCase())
+ );
+ }
+
+ return filtered;
+ }, [syncs, searchTerm, selectedCategory]);
+
+ return (
+
+ {/* Search Bar */}
+
+
+
+
setSearchTerm(e.target.value)}
+ />
+
+
+
+ {/* Category Filter */}
+
+
+ {categories.map(category => (
+ setSelectedCategory(category)}
+ className={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors shadow-sm ${
+ selectedCategory === category
+ ? 'bg-yellow-100 text-yellow-700 border border-yellow-200'
+ : 'bg-white text-gray-700 border border-gray-200 hover:bg-yellow-50 hover:border-yellow-200'
+ }`}
+ >
+ {category}
+
+ ))}
+
+
+
+ {/* Results Count */}
+
+
+ {filteredSyncs.length} secret sync{filteredSyncs.length !== 1 ? 's' : ''} found
+ {selectedCategory !== 'All' && ` in ${selectedCategory}`}
+ {searchTerm && ` for "${searchTerm}"`}
+
+
+
+ {/* Syncs List */}
+ {filteredSyncs.length > 0 ? (
+
+ ) : null}
+
+ );
+};
\ No newline at end of file
diff --git a/docs/snippets/UserAuthenticationBrowser.jsx b/docs/snippets/UserAuthenticationBrowser.jsx
new file mode 100644
index 000000000..82dbd5b09
--- /dev/null
+++ b/docs/snippets/UserAuthenticationBrowser.jsx
@@ -0,0 +1,124 @@
+import React, { useState, useMemo } from 'react';
+
+export const UserAuthenticationBrowser = () => {
+ const [searchTerm, setSearchTerm] = useState('');
+ const [selectedCategory, setSelectedCategory] = useState('All');
+
+ const categories = ['All', 'SSO', 'LDAP', 'SCIM', 'General'];
+
+ const authMethods = [
+ {"name": "Auth0 OIDC SSO", "slug": "auth0-oidc-sso", "path": "/documentation/platform/sso/auth0-oidc", "description": "Learn how to configure Auth0 OIDC SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Auth0 SAML SSO", "slug": "auth0-saml-sso", "path": "/documentation/platform/sso/auth0-saml", "description": "Learn how to configure Auth0 SAML SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Azure AD SSO", "slug": "azure-ad-sso", "path": "/documentation/platform/sso/azure", "description": "Learn how to configure Azure Active Directory SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Google SSO", "slug": "google-sso", "path": "/documentation/platform/sso/google", "description": "Learn how to configure Google SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Google SAML SSO", "slug": "google-saml-sso", "path": "/documentation/platform/sso/google-saml", "description": "Learn how to configure Google SAML SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "GitHub SSO", "slug": "github-sso", "path": "/documentation/platform/sso/github", "description": "Learn how to configure GitHub SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "GitLab SSO", "slug": "gitlab-sso", "path": "/documentation/platform/sso/gitlab", "description": "Learn how to configure GitLab SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "JumpCloud SSO", "slug": "jumpcloud-sso", "path": "/documentation/platform/sso/jumpcloud", "description": "Learn how to configure JumpCloud SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Keycloak OIDC SSO", "slug": "keycloak-oidc-sso", "path": "/documentation/platform/sso/keycloak-oidc/overview", "description": "Learn how to configure Keycloak OIDC SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Keycloak SAML SSO", "slug": "keycloak-saml-sso", "path": "/documentation/platform/sso/keycloak-saml", "description": "Learn how to configure Keycloak SAML SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Okta SSO", "slug": "okta-sso", "path": "/documentation/platform/sso/okta", "description": "Learn how to configure Okta SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "General OIDC SSO", "slug": "general-oidc-sso", "path": "/documentation/platform/sso/general-oidc/overview", "description": "Learn how to configure general OIDC SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "JumpCloud LDAP", "slug": "jumpcloud-ldap", "path": "/documentation/platform/ldap/jumpcloud", "description": "Learn how to configure JumpCloud LDAP for user authentication in Infisical.", "category": "LDAP"},
+ {"name": "General LDAP", "slug": "general-ldap", "path": "/documentation/platform/ldap/general", "description": "Learn how to configure general LDAP for user authentication in Infisical.", "category": "LDAP"},
+ {"name": "JumpCloud SCIM", "slug": "jumpcloud-scim", "path": "/documentation/platform/scim/jumpcloud", "description": "Learn how to configure JumpCloud SCIM for user provisioning in Infisical.", "category": "SCIM"},
+ {"name": "Okta SCIM", "slug": "okta-scim", "path": "/documentation/platform/scim/okta", "description": "Learn how to configure Okta SCIM for user provisioning in Infisical.", "category": "SCIM"},
+ {"name": "Azure SCIM", "slug": "azure-scim", "path": "/documentation/platform/scim/azure", "description": "Learn how to configure Azure SCIM for user provisioning in Infisical.", "category": "SCIM"},
+ {"name": "Email & Password", "slug": "email-password", "path": "/documentation/platform/auth-methods/email-password", "description": "Learn about email and password authentication for users in Infisical.", "category": "General"}
+ ];
+
+ const filteredAuthMethods = useMemo(() => {
+ let filtered = authMethods;
+
+ if (selectedCategory !== 'All') {
+ filtered = filtered.filter(method => method.category === selectedCategory);
+ }
+
+ if (searchTerm) {
+ filtered = filtered.filter(method =>
+ method.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
+ method.description.toLowerCase().includes(searchTerm.toLowerCase()) ||
+ method.category.toLowerCase().includes(searchTerm.toLowerCase())
+ );
+ }
+
+ return filtered;
+ }, [authMethods, searchTerm, selectedCategory]);
+
+ return (
+
+ {/* Search Bar */}
+
+
+
+
setSearchTerm(e.target.value)}
+ />
+
+
+
+ {/* Category Filter */}
+
+
+ {categories.map(category => (
+ setSelectedCategory(category)}
+ className={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors shadow-sm ${
+ selectedCategory === category
+ ? 'bg-yellow-100 text-yellow-700 border border-yellow-200'
+ : 'bg-white text-gray-700 border border-gray-200 hover:bg-yellow-50 hover:border-yellow-200'
+ }`}
+ >
+ {category}
+
+ ))}
+
+
+
+ {/* Results Count */}
+
+
+ {filteredAuthMethods.length} authentication method{filteredAuthMethods.length !== 1 ? 's' : ''} found
+ {selectedCategory !== 'All' && ` in ${selectedCategory}`}
+ {searchTerm && ` for "${searchTerm}"`}
+
+
+
+ {/* Auth Methods List */}
+ {filteredAuthMethods.length > 0 ? (
+
+ ) : null}
+
+ );
+};
\ No newline at end of file
From 4d4b4c13c39afe10c3e27288a9c2e1e631f555e0 Mon Sep 17 00:00:00 2001
From: Carlos Monastyrski
Date: Mon, 1 Sep 2025 23:11:00 -0300
Subject: [PATCH 2/4] Address greptile comments
---
docs/integrations/dynamic-secrets.mdx | 2 +-
docs/snippets/AppConnectionsBrowser.jsx | 13 ++++++++++---
docs/snippets/DynamicSecretsBrowser.jsx | 15 ++++++++++++---
docs/snippets/FrameworkIntegrationsBrowser.jsx | 13 ++++++++++---
docs/snippets/MachineAuthenticationBrowser.jsx | 17 ++++++++++++-----
docs/snippets/RotationsBrowser.jsx | 10 +++++++---
docs/snippets/SecretSyncsBrowser.jsx | 13 ++++++++++---
docs/snippets/UserAuthenticationBrowser.jsx | 11 ++++++++---
8 files changed, 70 insertions(+), 24 deletions(-)
diff --git a/docs/integrations/dynamic-secrets.mdx b/docs/integrations/dynamic-secrets.mdx
index e2b5f0a46..84ff43ab5 100644
--- a/docs/integrations/dynamic-secrets.mdx
+++ b/docs/integrations/dynamic-secrets.mdx
@@ -6,4 +6,4 @@ description: "Browse and search through all available dynamic secrets for Infisi
import { DynamicSecretsBrowser } from "/snippets/DynamicSecretsBrowser.jsx";
-
\ No newline at end of file
+
diff --git a/docs/snippets/AppConnectionsBrowser.jsx b/docs/snippets/AppConnectionsBrowser.jsx
index 6b9a981dc..73e88fd01 100644
--- a/docs/snippets/AppConnectionsBrowser.jsx
+++ b/docs/snippets/AppConnectionsBrowser.jsx
@@ -63,7 +63,7 @@ export const AppConnectionsBrowser = () => {
}
return filtered;
- }, [connections, searchTerm, selectedCategory]);
+ }, [searchTerm, selectedCategory]);
return (
@@ -118,7 +118,7 @@ export const AppConnectionsBrowser = () => {
- ) : null}
+ ) : (
+
+
No app connections found matching your criteria.
+ {searchTerm && (
+
Try adjusting your search terms or category filter.
+ )}
+
+ )}
);
};
\ No newline at end of file
diff --git a/docs/snippets/DynamicSecretsBrowser.jsx b/docs/snippets/DynamicSecretsBrowser.jsx
index 46f8585c9..3de248170 100644
--- a/docs/snippets/DynamicSecretsBrowser.jsx
+++ b/docs/snippets/DynamicSecretsBrowser.jsx
@@ -48,7 +48,7 @@ export const DynamicSecretsBrowser = () => {
}
return filtered;
- }, [dynamicSecrets, searchTerm, selectedCategory]);
+ }, [searchTerm, selectedCategory]);
return (
@@ -103,7 +103,7 @@ export const DynamicSecretsBrowser = () => {
- ) : null}
+ ) : (
+
+
+
No dynamic secrets found
+ {searchTerm && (
+
Try adjusting your search terms or filters
+ )}
+
+
+ )}
);
};
\ No newline at end of file
diff --git a/docs/snippets/FrameworkIntegrationsBrowser.jsx b/docs/snippets/FrameworkIntegrationsBrowser.jsx
index 0644d0826..2ee650f7d 100644
--- a/docs/snippets/FrameworkIntegrationsBrowser.jsx
+++ b/docs/snippets/FrameworkIntegrationsBrowser.jsx
@@ -43,7 +43,7 @@ export const FrameworkIntegrationsBrowser = () => {
}
return filtered;
- }, [integrations, searchTerm, selectedCategory]);
+ }, [searchTerm, selectedCategory]);
return (
@@ -98,7 +98,7 @@ export const FrameworkIntegrationsBrowser = () => {
- ) : null}
+ ) : (
+
+
No framework integrations found matching your criteria.
+ {searchTerm && (
+
Try adjusting your search terms or category filter.
+ )}
+
+ )}
);
};
\ No newline at end of file
diff --git a/docs/snippets/MachineAuthenticationBrowser.jsx b/docs/snippets/MachineAuthenticationBrowser.jsx
index cf1a5a860..e6b5aa699 100644
--- a/docs/snippets/MachineAuthenticationBrowser.jsx
+++ b/docs/snippets/MachineAuthenticationBrowser.jsx
@@ -21,8 +21,8 @@ export const MachineAuthenticationBrowser = () => {
{"name": "OIDC Auth (Terraform Cloud)", "slug": "oidc-auth-terraform", "path": "/documentation/platform/identities/oidc-auth/terraform-cloud", "description": "Learn how to authenticate Terraform Cloud using OIDC.", "category": "Token-based"},
{"name": "OIDC Auth (SPIRE)", "slug": "oidc-auth-spire", "path": "/documentation/platform/identities/oidc-auth/spire", "description": "Learn how to authenticate workloads using SPIFFE/SPIRE OIDC.", "category": "Token-based"},
{"name": "TLS Certificate Auth", "slug": "tls-cert-auth", "path": "/documentation/platform/identities/tls-cert-auth", "description": "Learn how to authenticate machines using TLS client certificates.", "category": "Certificate-based"},
- {"name": "LDAP Auth (General)", "slug": "ldap-auth-general", "path": "/documentation/platform/identities/ldap-auth/general", "description": "Learn how to authenticate machines using LDAP credentials.", "category": "Certificate-based"},
- {"name": "LDAP Auth (JumpCloud)", "slug": "ldap-auth-jumpcloud", "path": "/documentation/platform/identities/ldap-auth/jumpcloud", "description": "Learn how to authenticate machines using JumpCloud LDAP.", "category": "Certificate-based"}
+ {"name": "LDAP Auth (General)", "slug": "ldap-auth-general", "path": "/documentation/platform/identities/ldap-auth/general", "description": "Learn how to authenticate machines using LDAP credentials.", "category": "Directory-based"},
+ {"name": "LDAP Auth (JumpCloud)", "slug": "ldap-auth-jumpcloud", "path": "/documentation/platform/identities/ldap-auth/jumpcloud", "description": "Learn how to authenticate machines using JumpCloud LDAP.", "category": "Directory-based"}
];
const filteredAuthMethods = useMemo(() => {
@@ -32,7 +32,7 @@ export const MachineAuthenticationBrowser = () => {
method.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
method.description.toLowerCase().includes(searchTerm.toLowerCase())
);
- }, [authMethods, searchTerm]);
+ }, [searchTerm]);
return (
@@ -67,7 +67,7 @@ export const MachineAuthenticationBrowser = () => {
- ) : null}
+ ) : (
+
+
No authentication methods found matching your criteria.
+ {searchTerm && (
+
Try adjusting your search terms.
+ )}
+
+ )}
);
};
\ No newline at end of file
diff --git a/docs/snippets/RotationsBrowser.jsx b/docs/snippets/RotationsBrowser.jsx
index 0077e0798..988c217bc 100644
--- a/docs/snippets/RotationsBrowser.jsx
+++ b/docs/snippets/RotationsBrowser.jsx
@@ -35,7 +35,7 @@ export const RotationsBrowser = () => {
}
return filtered;
- }, [rotations, searchTerm, selectedCategory]);
+ }, [searchTerm, selectedCategory]);
return (
@@ -90,7 +90,7 @@ export const RotationsBrowser = () => {
- ) : null}
+ ) : (
+
+
No secret rotations found matching your criteria.
+
+ )}
);
};
\ No newline at end of file
diff --git a/docs/snippets/SecretSyncsBrowser.jsx b/docs/snippets/SecretSyncsBrowser.jsx
index 5ae9f9c7a..e49765940 100644
--- a/docs/snippets/SecretSyncsBrowser.jsx
+++ b/docs/snippets/SecretSyncsBrowser.jsx
@@ -53,7 +53,7 @@ export const SecretSyncsBrowser = () => {
}
return filtered;
- }, [syncs, searchTerm, selectedCategory]);
+ }, [searchTerm, selectedCategory]);
return (
@@ -108,7 +108,7 @@ export const SecretSyncsBrowser = () => {
- ) : null}
+ ) : (
+
+
No secret syncs found matching your criteria.
+ {searchTerm && (
+
Try adjusting your search terms or category filter.
+ )}
+
+ )}
);
};
\ No newline at end of file
diff --git a/docs/snippets/UserAuthenticationBrowser.jsx b/docs/snippets/UserAuthenticationBrowser.jsx
index 82dbd5b09..c8feacc1b 100644
--- a/docs/snippets/UserAuthenticationBrowser.jsx
+++ b/docs/snippets/UserAuthenticationBrowser.jsx
@@ -43,7 +43,7 @@ export const UserAuthenticationBrowser = () => {
}
return filtered;
- }, [authMethods, searchTerm, selectedCategory]);
+ }, [searchTerm, selectedCategory]);
return (
@@ -98,7 +98,7 @@ export const UserAuthenticationBrowser = () => {
- ) : null}
+ ) : (
+
+
No authentication methods found matching your criteria.
+
Try adjusting your search terms or category filter.
+
+ )}
);
};
\ No newline at end of file
From 5b3cae7255850a5b9c2bf3ece0d8f9582f0d0a0e Mon Sep 17 00:00:00 2001
From: Carlos Monastyrski
Date: Tue, 2 Sep 2025 21:34:07 -0300
Subject: [PATCH 3/4] Docs improvements
---
docs/snippets/AppConnectionsBrowser.jsx | 90 ++++++++++---------
docs/snippets/DynamicSecretsBrowser.jsx | 6 +-
.../snippets/FrameworkIntegrationsBrowser.jsx | 60 +++----------
.../snippets/MachineAuthenticationBrowser.jsx | 82 ++++++++++++-----
docs/snippets/RotationsBrowser.jsx | 18 ++--
docs/snippets/SecretSyncsBrowser.jsx | 72 ++++++++-------
docs/snippets/UserAuthenticationBrowser.jsx | 54 +++++------
7 files changed, 199 insertions(+), 183 deletions(-)
diff --git a/docs/snippets/AppConnectionsBrowser.jsx b/docs/snippets/AppConnectionsBrowser.jsx
index 73e88fd01..c52bd7713 100644
--- a/docs/snippets/AppConnectionsBrowser.jsx
+++ b/docs/snippets/AppConnectionsBrowser.jsx
@@ -4,52 +4,52 @@ export const AppConnectionsBrowser = () => {
const [searchTerm, setSearchTerm] = useState('');
const [selectedCategory, setSelectedCategory] = useState('All');
- const categories = ['All', 'Cloud Providers', 'Databases', 'CI/CD', 'Monitoring', 'Identity & Auth', 'Other'];
+ const categories = ['All', 'Cloud Providers', 'Databases', 'CI/CD', 'Monitoring', 'Directory Services', 'Identity & Auth'];
const connections = [
- {"name": "1Password Connection", "slug": "1password", "path": "/integrations/app-connections/1password", "description": "Learn how to configure a 1Password Connection for Infisical.", "category": "Identity & Auth"},
- {"name": "Auth0 Connection", "slug": "auth0", "path": "/integrations/app-connections/auth0", "description": "Learn how to configure an Auth0 Connection for Infisical.", "category": "Identity & Auth"},
- {"name": "AWS Connection", "slug": "aws", "path": "/integrations/app-connections/aws", "description": "Learn how to configure an AWS Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "Azure ADCS Connection", "slug": "azure-adcs", "path": "/integrations/app-connections/azure-adcs", "description": "Learn how to configure an Azure ADCS Connection for Infisical certificate management.", "category": "Cloud Providers"},
- {"name": "Azure App Configuration Connection", "slug": "azure-app-configuration", "path": "/integrations/app-connections/azure-app-configuration", "description": "Learn how to configure a Azure App Configuration Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "Azure Client Secrets Connection", "slug": "azure-client-secrets", "path": "/integrations/app-connections/azure-client-secrets", "description": "Learn how to configure an Azure Client Secrets Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "Azure DevOps Connection", "slug": "azure-devops", "path": "/integrations/app-connections/azure-devops", "description": "Learn how to configure an Azure DevOps Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "Azure Key Vault Connection", "slug": "azure-key-vault", "path": "/integrations/app-connections/azure-key-vault", "description": "Learn how to configure a Azure Key Vault Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "Bitbucket Connection", "slug": "bitbucket", "path": "/integrations/app-connections/bitbucket", "description": "Learn how to configure a Bitbucket Connection for Infisical.", "category": "CI/CD"},
- {"name": "Camunda Connection", "slug": "camunda", "path": "/integrations/app-connections/camunda", "description": "Learn how to configure a Camunda Connection for Infisical.", "category": "Other"},
- {"name": "Checkly Connection", "slug": "checkly", "path": "/integrations/app-connections/checkly", "description": "Learn how to configure a Checkly Connection for Infisical.", "category": "Monitoring"},
- {"name": "Cloudflare Connection", "slug": "cloudflare", "path": "/integrations/app-connections/cloudflare", "description": "Learn how to configure a Cloudflare Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "Databricks Connection", "slug": "databricks", "path": "/integrations/app-connections/databricks", "description": "Learn how to configure a Databricks Connection for Infisical.", "category": "Monitoring"},
- {"name": "DigitalOcean Connection", "slug": "digital-ocean", "path": "/integrations/app-connections/digital-ocean", "description": "Learn how to configure a DigitalOcean Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "Fly.io Connection", "slug": "flyio", "path": "/integrations/app-connections/flyio", "description": "Learn how to configure a Fly.io Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "GCP Connection", "slug": "gcp", "path": "/integrations/app-connections/gcp", "description": "Learn how to configure a GCP Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "GitHub Radar Connection", "slug": "github-radar", "path": "/integrations/app-connections/github-radar", "description": "Learn how to configure a GitHub Radar Connection for Infisical.", "category": "CI/CD"},
- {"name": "GitHub Connection", "slug": "github", "path": "/integrations/app-connections/github", "description": "Learn how to configure a GitHub Connection for Infisical.", "category": "CI/CD"},
- {"name": "GitLab Connection", "slug": "gitlab", "path": "/integrations/app-connections/gitlab", "description": "Learn how to configure a GitLab Connection for Infisical using OAuth or Access Token methods.", "category": "CI/CD"},
- {"name": "Hashicorp Vault Connection", "slug": "hashicorp-vault", "path": "/integrations/app-connections/hashicorp-vault", "description": "Learn how to configure a Hashicorp Vault Connection for Infisical.", "category": "Other"},
- {"name": "Heroku Connection", "slug": "heroku", "path": "/integrations/app-connections/heroku", "description": "Learn how to configure a Heroku Connection for Infisical using OAuth or Auth Token methods.", "category": "Cloud Providers"},
- {"name": "Humanitec Connection", "slug": "humanitec", "path": "/integrations/app-connections/humanitec", "description": "Learn how to configure a Humanitec Connection for Infisical.", "category": "Other"},
- {"name": "LDAP Connection", "slug": "ldap", "path": "/integrations/app-connections/ldap", "description": "Learn how to configure an LDAP Connection for Infisical.", "category": "Identity & Auth"},
- {"name": "Microsoft SQL Server Connection", "slug": "mssql", "path": "/integrations/app-connections/mssql", "description": "Learn how to configure a Microsoft SQL Server Connection for Infisical.", "category": "Databases"},
- {"name": "MySQL Connection", "slug": "mysql", "path": "/integrations/app-connections/mysql", "description": "Learn how to configure a MySQL Connection for Infisical.", "category": "Databases"},
- {"name": "Netlify Connection", "slug": "netlify", "path": "/integrations/app-connections/netlify", "description": "Learn how to configure a Netlify Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "OCI Connection", "slug": "oci", "path": "/integrations/app-connections/oci", "description": "Learn how to configure an Oracle Cloud Infrastructure Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "Okta Connection", "slug": "okta", "path": "/integrations/app-connections/okta", "description": "Learn how to configure an Okta Connection for Infisical.", "category": "Identity & Auth"},
- {"name": "OracleDB Connection", "slug": "oracledb", "path": "/integrations/app-connections/oracledb", "description": "Learn how to configure a Oracle Database Connection for Infisical.", "category": "Databases"},
- {"name": "PostgreSQL Connection", "slug": "postgres", "path": "/integrations/app-connections/postgres", "description": "Learn how to configure a PostgreSQL Connection for Infisical.", "category": "Databases"},
- {"name": "Railway Connection", "slug": "railway", "path": "/integrations/app-connections/railway", "description": "Learn how to configure a Railway Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "Render Connection", "slug": "render", "path": "/integrations/app-connections/render", "description": "Learn how to configure a Render Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "Supabase Connection", "slug": "supabase", "path": "/integrations/app-connections/supabase", "description": "Learn how to configure a Supabase Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "TeamCity Connection", "slug": "teamcity", "path": "/integrations/app-connections/teamcity", "description": "Learn how to configure a TeamCity Connection for Infisical.", "category": "CI/CD"},
- {"name": "Terraform Cloud Connection", "slug": "terraform-cloud", "path": "/integrations/app-connections/terraform-cloud", "description": "Learn how to configure a Terraform Cloud Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "Vercel Connection", "slug": "vercel", "path": "/integrations/app-connections/vercel", "description": "Learn how to configure a Vercel Connection for Infisical.", "category": "Cloud Providers"},
- {"name": "Windmill Connection", "slug": "windmill", "path": "/integrations/app-connections/windmill", "description": "Learn how to configure a Windmill Connection for Infisical.", "category": "Other"},
- {"name": "Zabbix Connection", "slug": "zabbix", "path": "/integrations/app-connections/zabbix", "description": "Learn how to configure a Zabbix Connection for Infisical.", "category": "Monitoring"}
+ {"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": "Cloud Providers"},
+ {"name": "1Password", "slug": "1password", "path": "/integrations/app-connections/1password", "description": "Learn how to connect your 1Password to pull secrets from Infisical.", "category": "Cloud Providers"},
+ {"name": "Vercel", "slug": "vercel", "path": "/integrations/app-connections/vercel", "description": "Learn how to connect your Vercel application to pull secrets from Infisical.", "category": "Cloud Providers"},
+ {"name": "Netlify", "slug": "netlify", "path": "/integrations/app-connections/netlify", "description": "Learn how to connect your Netlify application to pull secrets from Infisical.", "category": "Cloud Providers"},
+ {"name": "Railway", "slug": "railway", "path": "/integrations/app-connections/railway", "description": "Learn how to connect your Railway application to pull secrets from Infisical.", "category": "Cloud Providers"},
+ {"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": "Cloud Providers"},
+ {"name": "Render", "slug": "render", "path": "/integrations/app-connections/render", "description": "Learn how to connect your Render application to pull secrets from Infisical.", "category": "Cloud Providers"},
+ {"name": "Heroku", "slug": "heroku", "path": "/integrations/app-connections/heroku", "description": "Learn how to connect your Heroku application to pull secrets from Infisical.", "category": "Cloud Providers"},
+ {"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": "Cloud Providers"},
+ {"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": "Cloud Providers"},
+ {"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": "Cloud Providers"},
+ {"name": "Windmill", "slug": "windmill", "path": "/integrations/app-connections/windmill", "description": "Learn how to connect your Windmill to pull secrets from Infisical.", "category": "Cloud Providers"},
+ {"name": "Camunda", "slug": "camunda", "path": "/integrations/app-connections/camunda", "description": "Learn how to connect your Camunda to pull secrets from Infisical.", "category": "Cloud Providers"},
+ {"name": "Humanitec", "slug": "humanitec", "path": "/integrations/app-connections/humanitec", "description": "Learn how to connect your Humanitec to pull secrets from Infisical.", "category": "Cloud Providers"},
+ {"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": "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"}
];
const filteredConnections = useMemo(() => {
let filtered = connections;
-
+
if (selectedCategory !== 'All') {
filtered = filtered.filter(connection => connection.category === selectedCategory);
}
@@ -140,10 +140,12 @@ export const AppConnectionsBrowser = () => {
) : (
-
No app connections found matching your criteria.
- {searchTerm && (
-
Try adjusting your search terms or category filter.
- )}
+
+
No app connections found matching your criteria
+ {searchTerm && (
+
Try adjusting your search terms or filters
+ )}
+
)}
diff --git a/docs/snippets/DynamicSecretsBrowser.jsx b/docs/snippets/DynamicSecretsBrowser.jsx
index 3de248170..f82728466 100644
--- a/docs/snippets/DynamicSecretsBrowser.jsx
+++ b/docs/snippets/DynamicSecretsBrowser.jsx
@@ -125,10 +125,10 @@ export const DynamicSecretsBrowser = () => {
) : (
-
-
No dynamic secrets found
+
+
No dynamic secrets found matching your criteria
{searchTerm && (
-
Try adjusting your search terms or filters
+
Try adjusting your search terms or filters
)}
diff --git a/docs/snippets/FrameworkIntegrationsBrowser.jsx b/docs/snippets/FrameworkIntegrationsBrowser.jsx
index 2ee650f7d..d608b95a3 100644
--- a/docs/snippets/FrameworkIntegrationsBrowser.jsx
+++ b/docs/snippets/FrameworkIntegrationsBrowser.jsx
@@ -2,17 +2,14 @@ import React, { useState, useMemo } from 'react';
export const FrameworkIntegrationsBrowser = () => {
const [searchTerm, setSearchTerm] = useState('');
- const [selectedCategory, setSelectedCategory] = useState('All');
-
- const categories = ['All', 'Web Frameworks'];
const integrations = [
{"name": "React", "slug": "react", "path": "/integrations/frameworks/react", "description": "Learn how to integrate Infisical with React applications for secure secret management.", "category": "Web Frameworks"},
{"name": "Next.js", "slug": "nextjs", "path": "/integrations/frameworks/nextjs", "description": "Learn how to integrate Infisical with Next.js applications.", "category": "Web Frameworks"},
- {"name": "Vue.js", "slug": "vuejs", "path": "/integrations/frameworks/vue", "description": "Learn how to integrate Infisical with Vue.js applications.", "category": "Web Frameworks"},
- {"name": "Nuxt.js", "slug": "nuxtjs", "path": "/integrations/frameworks/nuxt", "description": "Learn how to integrate Infisical with Nuxt.js applications.", "category": "Web Frameworks"},
+ {"name": "Vue", "slug": "vuejs", "path": "/integrations/frameworks/vue", "description": "Learn how to integrate Infisical with Vue.js applications.", "category": "Web Frameworks"},
+ {"name": "Nuxt", "slug": "nuxtjs", "path": "/integrations/frameworks/nuxt", "description": "Learn how to integrate Infisical with Nuxt.js applications.", "category": "Web Frameworks"},
{"name": "SvelteKit", "slug": "sveltekit", "path": "/integrations/frameworks/sveltekit", "description": "Learn how to integrate Infisical with SvelteKit applications.", "category": "Web Frameworks"},
- {"name": "Express.js", "slug": "express", "path": "/integrations/frameworks/express", "description": "Learn how to integrate Infisical with Express.js backend applications.", "category": "Web Frameworks"},
+ {"name": "Express, Fastify, Koa", "slug": "express", "path": "/integrations/frameworks/express", "description": "Learn how to integrate Infisical with Express.js backend applications.", "category": "Web Frameworks"},
{"name": "NestJS", "slug": "nestjs", "path": "/integrations/frameworks/nestjs", "description": "Learn how to integrate Infisical with NestJS applications.", "category": "Web Frameworks"},
{"name": "Django", "slug": "django", "path": "/integrations/frameworks/django", "description": "Learn how to integrate Infisical with Django applications.", "category": "Web Frameworks"},
{"name": "Flask", "slug": "flask", "path": "/integrations/frameworks/flask", "description": "Learn how to integrate Infisical with Flask applications.", "category": "Web Frameworks"},
@@ -28,22 +25,14 @@ export const FrameworkIntegrationsBrowser = () => {
];
const filteredIntegrations = useMemo(() => {
- let filtered = integrations;
-
- if (selectedCategory !== 'All') {
- filtered = filtered.filter(integration => integration.category === selectedCategory);
- }
-
if (searchTerm) {
- filtered = filtered.filter(integration =>
+ return integrations.filter(integration =>
integration.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
- integration.description.toLowerCase().includes(searchTerm.toLowerCase()) ||
- integration.category.toLowerCase().includes(searchTerm.toLowerCase())
+ integration.description.toLowerCase().includes(searchTerm.toLowerCase())
);
}
-
- return filtered;
- }, [searchTerm, selectedCategory]);
+ return integrations;
+ }, [searchTerm]);
return (
@@ -65,30 +54,10 @@ export const FrameworkIntegrationsBrowser = () => {
- {/* Category Filter */}
-
-
- {categories.map(category => (
- setSelectedCategory(category)}
- className={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors shadow-sm ${
- selectedCategory === category
- ? 'bg-yellow-100 text-yellow-700 border border-yellow-200'
- : 'bg-white text-gray-700 border border-gray-200 hover:bg-yellow-50 hover:border-yellow-200'
- }`}
- >
- {category}
-
- ))}
-
-
-
{/* Results Count */}
{filteredIntegrations.length} framework integration{filteredIntegrations.length !== 1 ? 's' : ''} found
- {selectedCategory !== 'All' && ` in ${selectedCategory}`}
{searchTerm && ` for "${searchTerm}"`}
@@ -103,13 +72,10 @@ export const FrameworkIntegrationsBrowser = () => {
className="group block px-4 py-3 border border-gray-200 rounded-xl hover:border-yellow-200 hover:bg-yellow-50/50 hover:shadow-sm transition-all duration-200 bg-white shadow-sm"
>
-
+
{integration.name}
-
- {integration.category}
-
{integration.description}
@@ -120,10 +86,12 @@ export const FrameworkIntegrationsBrowser = () => {
) : (
-
No framework integrations found matching your criteria.
- {searchTerm && (
-
Try adjusting your search terms or category filter.
- )}
+
+
No framework integrations found matching your criteria
+ {searchTerm && (
+
Try adjusting your search terms or filters
+ )}
+
)}
diff --git a/docs/snippets/MachineAuthenticationBrowser.jsx b/docs/snippets/MachineAuthenticationBrowser.jsx
index e6b5aa699..9c55b577b 100644
--- a/docs/snippets/MachineAuthenticationBrowser.jsx
+++ b/docs/snippets/MachineAuthenticationBrowser.jsx
@@ -2,37 +2,49 @@ import React, { useState, useMemo } from 'react';
export const MachineAuthenticationBrowser = () => {
const [searchTerm, setSearchTerm] = useState('');
+ const [selectedCategory, setSelectedCategory] = useState('All');
+
+ const categories = ['All', 'Token-based', 'Cloud Provider', 'Kubernetes', 'Certificate-based', 'Directory-based'];
const authMethods = [
{"name": "Universal Auth", "slug": "universal-auth", "path": "/documentation/platform/identities/universal-auth", "description": "Learn how to authenticate machines using Universal Auth tokens with client ID and secret.", "category": "Token-based"},
{"name": "Token Auth", "slug": "token-auth", "path": "/documentation/platform/identities/token-auth", "description": "Learn how to authenticate machines using long-lived access tokens.", "category": "Token-based"},
{"name": "JWT Auth", "slug": "jwt-auth", "path": "/documentation/platform/identities/jwt-auth", "description": "Learn how to authenticate machines using JSON Web Tokens (JWT).", "category": "Token-based"},
- {"name": "AWS IAM Auth", "slug": "aws-iam-auth", "path": "/documentation/platform/identities/aws-auth", "description": "Learn how to authenticate AWS services and resources using IAM roles.", "category": "Cloud Provider"},
+ {"name": "AWS Auth", "slug": "aws-iam-auth", "path": "/documentation/platform/identities/aws-auth", "description": "Learn how to authenticate AWS services and resources using IAM roles.", "category": "Cloud Provider"},
{"name": "Azure Auth", "slug": "azure-auth", "path": "/documentation/platform/identities/azure-auth", "description": "Learn how to authenticate Azure services using managed identities.", "category": "Cloud Provider"},
{"name": "GCP Auth", "slug": "gcp-auth", "path": "/documentation/platform/identities/gcp-auth", "description": "Learn how to authenticate GCP services using service accounts.", "category": "Cloud Provider"},
- {"name": "Alicloud Auth", "slug": "alicloud-auth", "path": "/documentation/platform/identities/alicloud-auth", "description": "Learn how to authenticate Alicloud services using RAM roles.", "category": "Cloud Provider"},
+ {"name": "Alibaba Cloud Auth", "slug": "alicloud-auth", "path": "/documentation/platform/identities/alicloud-auth", "description": "Learn how to authenticate Alibaba Cloud services using RAM roles.", "category": "Cloud Provider"},
{"name": "OCI Auth", "slug": "oci-auth", "path": "/documentation/platform/identities/oci-auth", "description": "Learn how to authenticate Oracle Cloud Infrastructure services.", "category": "Cloud Provider"},
{"name": "Kubernetes Auth", "slug": "kubernetes-auth", "path": "/documentation/platform/identities/kubernetes-auth", "description": "Learn how to authenticate Kubernetes workloads using service account tokens.", "category": "Kubernetes"},
- {"name": "OIDC Auth (General)", "slug": "oidc-auth-general", "path": "/documentation/platform/identities/oidc-auth/general", "description": "Learn how to authenticate machines using OpenID Connect (OIDC) providers.", "category": "Token-based"},
- {"name": "OIDC Auth (GitHub)", "slug": "oidc-auth-github", "path": "/documentation/platform/identities/oidc-auth/github", "description": "Learn how to authenticate GitHub Actions using OIDC.", "category": "Token-based"},
- {"name": "OIDC Auth (GitLab)", "slug": "oidc-auth-gitlab", "path": "/documentation/platform/identities/oidc-auth/gitlab", "description": "Learn how to authenticate GitLab CI/CD using OIDC.", "category": "Token-based"},
- {"name": "OIDC Auth (Azure)", "slug": "oidc-auth-azure", "path": "/documentation/platform/identities/oidc-auth/azure", "description": "Learn how to authenticate Azure services using OIDC.", "category": "Token-based"},
- {"name": "OIDC Auth (CircleCI)", "slug": "oidc-auth-circleci", "path": "/documentation/platform/identities/oidc-auth/circleci", "description": "Learn how to authenticate CircleCI workflows using OIDC.", "category": "Token-based"},
- {"name": "OIDC Auth (Terraform Cloud)", "slug": "oidc-auth-terraform", "path": "/documentation/platform/identities/oidc-auth/terraform-cloud", "description": "Learn how to authenticate Terraform Cloud using OIDC.", "category": "Token-based"},
- {"name": "OIDC Auth (SPIRE)", "slug": "oidc-auth-spire", "path": "/documentation/platform/identities/oidc-auth/spire", "description": "Learn how to authenticate workloads using SPIFFE/SPIRE OIDC.", "category": "Token-based"},
+ {"name": "OIDC Auth", "slug": "oidc-auth-general", "path": "/documentation/platform/identities/oidc-auth/general", "description": "Learn how to authenticate machines using OpenID Connect (OIDC) providers.", "category": "Token-based"},
+ {"name": "OIDC Auth for GitHub Actions", "slug": "oidc-auth-github", "path": "/documentation/platform/identities/oidc-auth/github", "description": "Learn how to authenticate GitHub Actions using OIDC.", "category": "Token-based"},
+ {"name": "OIDC Auth for GitLab CI/CD", "slug": "oidc-auth-gitlab", "path": "/documentation/platform/identities/oidc-auth/gitlab", "description": "Learn how to authenticate GitLab CI/CD using OIDC.", "category": "Token-based"},
+ {"name": "OIDC Auth for Azure", "slug": "oidc-auth-azure", "path": "/documentation/platform/identities/oidc-auth/azure", "description": "Learn how to authenticate Azure services using OIDC.", "category": "Token-based"},
+ {"name": "OIDC Auth for CircleCI", "slug": "oidc-auth-circleci", "path": "/documentation/platform/identities/oidc-auth/circleci", "description": "Learn how to authenticate CircleCI workflows using OIDC.", "category": "Token-based"},
+ {"name": "OIDC Auth for Terraform Cloud", "slug": "oidc-auth-terraform", "path": "/documentation/platform/identities/oidc-auth/terraform-cloud", "description": "Learn how to authenticate Terraform Cloud using OIDC.", "category": "Token-based"},
+ {"name": "OIDC Auth for SPIRE", "slug": "oidc-auth-spire", "path": "/documentation/platform/identities/oidc-auth/spire", "description": "Learn how to authenticate workloads using SPIFFE/SPIRE OIDC.", "category": "Token-based"},
{"name": "TLS Certificate Auth", "slug": "tls-cert-auth", "path": "/documentation/platform/identities/tls-cert-auth", "description": "Learn how to authenticate machines using TLS client certificates.", "category": "Certificate-based"},
- {"name": "LDAP Auth (General)", "slug": "ldap-auth-general", "path": "/documentation/platform/identities/ldap-auth/general", "description": "Learn how to authenticate machines using LDAP credentials.", "category": "Directory-based"},
- {"name": "LDAP Auth (JumpCloud)", "slug": "ldap-auth-jumpcloud", "path": "/documentation/platform/identities/ldap-auth/jumpcloud", "description": "Learn how to authenticate machines using JumpCloud LDAP.", "category": "Directory-based"}
+ {"name": "LDAP Auth", "slug": "ldap-auth-general", "path": "/documentation/platform/identities/ldap-auth/general", "description": "Learn how to authenticate machines using LDAP credentials.", "category": "Directory-based"},
+ {"name": "LDAP Auth for JumpCloud", "slug": "ldap-auth-jumpcloud", "path": "/documentation/platform/identities/ldap-auth/jumpcloud", "description": "Learn how to authenticate machines using JumpCloud LDAP.", "category": "Directory-based"}
];
const filteredAuthMethods = useMemo(() => {
- if (!searchTerm) return authMethods;
+ let filtered = authMethods;
- return authMethods.filter(method =>
- method.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
- method.description.toLowerCase().includes(searchTerm.toLowerCase())
- );
- }, [searchTerm]);
+ if (selectedCategory !== 'All') {
+ filtered = filtered.filter(method => method.category === selectedCategory);
+ }
+
+ if (searchTerm) {
+ filtered = filtered.filter(method =>
+ method.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
+ method.description.toLowerCase().includes(searchTerm.toLowerCase()) ||
+ method.category.toLowerCase().includes(searchTerm.toLowerCase())
+ );
+ }
+
+ return filtered;
+ }, [searchTerm, selectedCategory]);
return (
@@ -54,15 +66,35 @@ export const MachineAuthenticationBrowser = () => {
+ {/* Category Filter */}
+
+
+ {categories.map(category => (
+ setSelectedCategory(category)}
+ className={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors shadow-sm ${
+ selectedCategory === category
+ ? 'bg-yellow-100 text-yellow-700 border border-yellow-200'
+ : 'bg-white text-gray-700 border border-gray-200 hover:bg-yellow-50 hover:border-yellow-200'
+ }`}
+ >
+ {category}
+
+ ))}
+
+
+
{/* Results Count */}
- {filteredAuthMethods.length} machine authentication method{filteredAuthMethods.length !== 1 ? 's' : ''} found
+ {filteredAuthMethods.length} authentication method{filteredAuthMethods.length !== 1 ? 's' : ''} found
+ {selectedCategory !== 'All' && ` in ${selectedCategory}`}
{searchTerm && ` for "${searchTerm}"`}
- {/* Auth Methods List */}
+ {/* Authentication Methods List */}
{filteredAuthMethods.length > 0 ? (
{filteredAuthMethods.map((method, index) => (
@@ -77,7 +109,7 @@ export const MachineAuthenticationBrowser = () => {
{method.name}
- Authentication
+ {method.category}
@@ -89,10 +121,12 @@ export const MachineAuthenticationBrowser = () => {
) : (
-
No authentication methods found matching your criteria.
- {searchTerm && (
-
Try adjusting your search terms.
- )}
+
+
No authentication methods found matching your criteria
+ {searchTerm && (
+
Try adjusting your search terms or filters
+ )}
+
)}
diff --git a/docs/snippets/RotationsBrowser.jsx b/docs/snippets/RotationsBrowser.jsx
index 988c217bc..614fd8ce9 100644
--- a/docs/snippets/RotationsBrowser.jsx
+++ b/docs/snippets/RotationsBrowser.jsx
@@ -7,16 +7,15 @@ export const RotationsBrowser = () => {
const categories = ['All', 'Databases', 'Identity & Auth', 'Cloud Providers'];
const rotations = [
- {"name": "AWS IAM User Secret", "slug": "aws-iam-user", "path": "/documentation/platform/secret-rotation/aws-iam-user-secret", "description": "Learn how to automatically rotate AWS IAM user access keys.", "category": "Cloud Providers"},
+ {"name": "AWS IAM User", "slug": "aws-iam-user", "path": "/documentation/platform/secret-rotation/aws-iam-user-secret", "description": "Learn how to automatically rotate AWS IAM user access keys.", "category": "Cloud Providers"},
{"name": "Azure Client Secret", "slug": "azure-client-secret", "path": "/documentation/platform/secret-rotation/azure-client-secret", "description": "Learn how to automatically rotate Azure client secrets.", "category": "Cloud Providers"},
{"name": "Auth0 Client Secret", "slug": "auth0-client-secret", "path": "/documentation/platform/secret-rotation/auth0-client-secret", "description": "Learn how to automatically rotate Auth0 client secrets.", "category": "Identity & Auth"},
{"name": "Okta Client Secret", "slug": "okta-client-secret", "path": "/documentation/platform/secret-rotation/okta-client-secret", "description": "Learn how to automatically rotate Okta client secrets.", "category": "Identity & Auth"},
{"name": "LDAP Password", "slug": "ldap-password", "path": "/documentation/platform/secret-rotation/ldap-password", "description": "Learn how to automatically rotate LDAP user passwords.", "category": "Identity & Auth"},
- {"name": "MySQL Credentials", "slug": "mysql-credentials", "path": "/documentation/platform/secret-rotation/mysql-credentials", "description": "Learn how to automatically rotate MySQL database credentials.", "category": "Databases"},
- {"name": "PostgreSQL Credentials", "slug": "postgres-credentials", "path": "/documentation/platform/secret-rotation/postgres-credentials", "description": "Learn how to automatically rotate PostgreSQL database credentials.", "category": "Databases"},
- {"name": "Microsoft SQL Server Credentials", "slug": "mssql-credentials", "path": "/documentation/platform/secret-rotation/mssql-credentials", "description": "Learn how to automatically rotate Microsoft SQL Server credentials.", "category": "Databases"},
- {"name": "Oracle Database Credentials", "slug": "oracledb-credentials", "path": "/documentation/platform/secret-rotation/oracledb-credentials", "description": "Learn how to automatically rotate Oracle Database credentials.", "category": "Databases"},
- {"name": "SendGrid", "slug": "sendgrid", "path": "/documentation/platform/secret-rotation/sendgrid", "description": "Learn how to automatically rotate SendGrid API keys.", "category": "Cloud Providers"}
+ {"name": "MySQL", "slug": "mysql-credentials", "path": "/documentation/platform/secret-rotation/mysql-credentials", "description": "Learn how to automatically rotate MySQL database credentials.", "category": "Databases"},
+ {"name": "PostgreSQL", "slug": "postgres-credentials", "path": "/documentation/platform/secret-rotation/postgres-credentials", "description": "Learn how to automatically rotate PostgreSQL database credentials.", "category": "Databases"},
+ {"name": "Microsoft SQL Server", "slug": "mssql-credentials", "path": "/documentation/platform/secret-rotation/mssql-credentials", "description": "Learn how to automatically rotate Microsoft SQL Server credentials.", "category": "Databases"},
+ {"name": "Oracle Database", "slug": "oracledb-credentials", "path": "/documentation/platform/secret-rotation/oracledb-credentials", "description": "Learn how to automatically rotate Oracle Database credentials.", "category": "Databases"}
];
const filteredRotations = useMemo(() => {
@@ -112,7 +111,12 @@ export const RotationsBrowser = () => {
) : (
-
No secret rotations found matching your criteria.
+
+
No secret rotations found matching your criteria
+ {searchTerm && (
+
Try adjusting your search terms or filters
+ )}
+
)}
diff --git a/docs/snippets/SecretSyncsBrowser.jsx b/docs/snippets/SecretSyncsBrowser.jsx
index e49765940..5ea9ba776 100644
--- a/docs/snippets/SecretSyncsBrowser.jsx
+++ b/docs/snippets/SecretSyncsBrowser.jsx
@@ -4,37 +4,39 @@ export const SecretSyncsBrowser = () => {
const [searchTerm, setSearchTerm] = useState('');
const [selectedCategory, setSelectedCategory] = useState('All');
- const categories = ['All', 'Cloud Providers', 'CI/CD', 'Databases', 'Identity & Auth', 'Other'];
+ const categories = ['All', 'Cloud Providers', 'Databases', 'CI/CD', 'Monitoring'];
const syncs = [
- {"name": "AWS Parameter Store", "slug": "aws-parameter-store", "path": "/integrations/cloud/aws-parameter-store", "description": "Learn how to sync secrets from Infisical to AWS Parameter Store.", "category": "Cloud Providers"},
- {"name": "AWS Secrets Manager", "slug": "aws-secrets-manager", "path": "/integrations/cloud/aws-secrets-manager", "description": "Learn how to sync secrets from Infisical to AWS Secrets Manager.", "category": "Cloud Providers"},
- {"name": "Azure Key Vault", "slug": "azure-key-vault", "path": "/integrations/cloud/azure-key-vault", "description": "Learn how to sync secrets from Infisical to Azure Key Vault.", "category": "Cloud Providers"},
- {"name": "Bitbucket", "slug": "bitbucket", "path": "/integrations/cicd/bitbucket", "description": "Learn how to sync secrets from Infisical to Bitbucket.", "category": "CI/CD"},
- {"name": "Checkly", "slug": "checkly", "path": "/integrations/cloud/checkly", "description": "Learn how to sync secrets from Infisical to Checkly.", "category": "Other"},
- {"name": "CircleCI", "slug": "circleci", "path": "/integrations/cicd/circleci", "description": "Learn how to sync secrets from Infisical to CircleCI.", "category": "CI/CD"},
- {"name": "Cloudflare Pages", "slug": "cloudflare-pages", "path": "/integrations/cloud/cloudflare-pages", "description": "Learn how to sync secrets from Infisical to Cloudflare Pages.", "category": "Cloud Providers"},
- {"name": "Cloudflare Workers", "slug": "cloudflare-workers", "path": "/integrations/cloud/cloudflare-workers", "description": "Learn how to sync secrets from Infisical to Cloudflare Workers.", "category": "Cloud Providers"},
- {"name": "Databricks", "slug": "databricks", "path": "/integrations/cloud/databricks", "description": "Learn how to sync secrets from Infisical to Databricks.", "category": "Other"},
- {"name": "DigitalOcean App Platform", "slug": "digital-ocean-app-platform", "path": "/integrations/cloud/digital-ocean-app-platform", "description": "Learn how to sync secrets from Infisical to DigitalOcean App Platform.", "category": "Cloud Providers"},
- {"name": "Docker", "slug": "docker", "path": "/integrations/platforms/docker", "description": "Learn how to sync secrets from Infisical to Docker.", "category": "Other"},
- {"name": "Docker Compose", "slug": "docker-compose", "path": "/integrations/platforms/docker-compose", "description": "Learn how to sync secrets from Infisical to Docker Compose.", "category": "Other"},
- {"name": "Fly.io", "slug": "flyio", "path": "/integrations/cloud/flyio", "description": "Learn how to sync secrets from Infisical to Fly.io.", "category": "Cloud Providers"},
- {"name": "GCP Secret Manager", "slug": "gcp-secret-manager", "path": "/integrations/cloud/gcp-secret-manager", "description": "Learn how to sync secrets from Infisical to GCP Secret Manager.", "category": "Cloud Providers"},
- {"name": "GitHub Actions", "slug": "github-actions", "path": "/integrations/cicd/githubactions", "description": "Learn how to sync secrets from Infisical to GitHub Actions.", "category": "CI/CD"},
- {"name": "GitLab CI/CD", "slug": "gitlab-cicd", "path": "/integrations/cicd/gitlab", "description": "Learn how to sync secrets from Infisical to GitLab CI/CD.", "category": "CI/CD"},
- {"name": "HashiCorp Vault", "slug": "hashicorp-vault", "path": "/integrations/cloud/hashicorp-vault", "description": "Learn how to sync secrets from Infisical to HashiCorp Vault.", "category": "Other"},
- {"name": "Heroku", "slug": "heroku", "path": "/integrations/cloud/heroku", "description": "Learn how to sync secrets from Infisical to Heroku.", "category": "Cloud Providers"},
- {"name": "Laravel Forge", "slug": "laravel-forge", "path": "/integrations/cloud/laravel-forge", "description": "Learn how to sync secrets from Infisical to Laravel Forge.", "category": "Other"},
- {"name": "Netlify", "slug": "netlify", "path": "/integrations/cloud/netlify", "description": "Learn how to sync secrets from Infisical to Netlify.", "category": "Cloud Providers"},
- {"name": "Northflank", "slug": "northflank", "path": "/integrations/cloud/northflank", "description": "Learn how to sync secrets from Infisical to Northflank.", "category": "Cloud Providers"},
- {"name": "Railway", "slug": "railway", "path": "/integrations/cloud/railway", "description": "Learn how to sync secrets from Infisical to Railway.", "category": "Cloud Providers"},
- {"name": "Render", "slug": "render", "path": "/integrations/cloud/render", "description": "Learn how to sync secrets from Infisical to Render.", "category": "Cloud Providers"},
- {"name": "Supabase", "slug": "supabase", "path": "/integrations/cloud/supabase", "description": "Learn how to sync secrets from Infisical to Supabase.", "category": "Cloud Providers"},
- {"name": "TeamCity", "slug": "teamcity", "path": "/integrations/cicd/teamcity", "description": "Learn how to sync secrets from Infisical to TeamCity.", "category": "CI/CD"},
- {"name": "Terraform Cloud", "slug": "terraform-cloud", "path": "/integrations/cloud/terraform-cloud", "description": "Learn how to sync secrets from Infisical to Terraform Cloud.", "category": "Other"},
- {"name": "Vercel", "slug": "vercel", "path": "/integrations/cloud/vercel", "description": "Learn how to sync secrets from Infisical to Vercel.", "category": "Cloud Providers"},
- {"name": "Windmill", "slug": "windmill", "path": "/integrations/cloud/windmill", "description": "Learn how to sync secrets from Infisical to Windmill.", "category": "Other"}
+ {"name": "AWS Parameter Store", "slug": "aws-parameter-store", "path": "/integrations/secret-syncs/aws-parameter-store", "description": "Learn how to sync secrets from Infisical to AWS Parameter Store.", "category": "Cloud Providers"},
+ {"name": "AWS Secrets Manager", "slug": "aws-secrets-manager", "path": "/integrations/secret-syncs/aws-secrets-manager", "description": "Learn how to sync secrets from Infisical to AWS Secrets Manager.", "category": "Cloud Providers"},
+ {"name": "Azure Key Vault", "slug": "azure-key-vault", "path": "/integrations/secret-syncs/azure-key-vault", "description": "Learn how to sync secrets from Infisical to Azure Key Vault.", "category": "Cloud Providers"},
+ {"name": "Azure App Configuration", "slug": "azure-app-configuration", "path": "/integrations/secret-syncs/azure-app-configuration", "description": "Learn how to sync secrets from Infisical to Azure App Configuration.", "category": "Cloud Providers"},
+ {"name": "Azure DevOps", "slug": "azure-devops", "path": "/integrations/secret-syncs/azure-devops", "description": "Learn how to sync secrets from Infisical to Azure DevOps.", "category": "CI/CD"},
+ {"name": "GCP Secret Manager", "slug": "gcp-secret-manager", "path": "/integrations/secret-syncs/gcp-secret-manager", "description": "Learn how to sync secrets from Infisical to GCP Secret Manager.", "category": "Cloud Providers"},
+ {"name": "HashiCorp Vault", "slug": "hashicorp-vault", "path": "/integrations/secret-syncs/hashicorp-vault", "description": "Learn how to sync secrets from Infisical to HashiCorp Vault.", "category": "Cloud Providers"},
+ {"name": "1Password", "slug": "1password", "path": "/integrations/secret-syncs/1password", "description": "Learn how to sync secrets from Infisical to 1Password.", "category": "Cloud Providers"},
+ {"name": "Vercel", "slug": "vercel", "path": "/integrations/secret-syncs/vercel", "description": "Learn how to sync secrets from Infisical to Vercel.", "category": "Cloud Providers"},
+ {"name": "Netlify", "slug": "netlify", "path": "/integrations/secret-syncs/netlify", "description": "Learn how to sync secrets from Infisical to Netlify.", "category": "Cloud Providers"},
+ {"name": "Railway", "slug": "railway", "path": "/integrations/secret-syncs/railway", "description": "Learn how to sync secrets from Infisical to Railway.", "category": "Cloud Providers"},
+ {"name": "Fly.io", "slug": "flyio", "path": "/integrations/secret-syncs/flyio", "description": "Learn how to sync secrets from Infisical to Fly.io.", "category": "Cloud Providers"},
+ {"name": "Render", "slug": "render", "path": "/integrations/secret-syncs/render", "description": "Learn how to sync secrets from Infisical to Render.", "category": "Cloud Providers"},
+ {"name": "Heroku", "slug": "heroku", "path": "/integrations/secret-syncs/heroku", "description": "Learn how to sync secrets from Infisical to Heroku.", "category": "Cloud Providers"},
+ {"name": "DigitalOcean App Platform", "slug": "digital-ocean-app-platform", "path": "/integrations/secret-syncs/digital-ocean-app-platform", "description": "Learn how to sync secrets from Infisical to DigitalOcean App Platform.", "category": "Cloud Providers"},
+ {"name": "Supabase", "slug": "supabase", "path": "/integrations/secret-syncs/supabase", "description": "Learn how to sync secrets from Infisical to Supabase.", "category": "Databases"},
+ {"name": "Checkly", "slug": "checkly", "path": "/integrations/secret-syncs/checkly", "description": "Learn how to sync secrets from Infisical to Checkly.", "category": "Monitoring"},
+ {"name": "GitHub", "slug": "github", "path": "/integrations/secret-syncs/github", "description": "Learn how to sync secrets from Infisical to GitHub.", "category": "CI/CD"},
+ {"name": "GitLab", "slug": "gitlab", "path": "/integrations/secret-syncs/gitlab", "description": "Learn how to sync secrets from Infisical to GitLab.", "category": "CI/CD"},
+ {"name": "TeamCity", "slug": "teamcity", "path": "/integrations/secret-syncs/teamcity", "description": "Learn how to sync secrets from Infisical to TeamCity.", "category": "CI/CD"},
+ {"name": "Bitbucket", "slug": "bitbucket", "path": "/integrations/secret-syncs/bitbucket", "description": "Learn how to sync secrets from Infisical to Bitbucket.", "category": "CI/CD"},
+ {"name": "Terraform Cloud", "slug": "terraform-cloud", "path": "/integrations/secret-syncs/terraform-cloud", "description": "Learn how to sync secrets from Infisical to Terraform Cloud.", "category": "Cloud Providers"},
+ {"name": "Cloudflare Pages", "slug": "cloudflare-pages", "path": "/integrations/secret-syncs/cloudflare-pages", "description": "Learn how to sync secrets from Infisical to Cloudflare Pages.", "category": "Cloud Providers"},
+ {"name": "Cloudflare Workers", "slug": "cloudflare-workers", "path": "/integrations/secret-syncs/cloudflare-workers", "description": "Learn how to sync secrets from Infisical to Cloudflare Workers.", "category": "Cloud Providers"},
+ {"name": "Databricks", "slug": "databricks", "path": "/integrations/secret-syncs/databricks", "description": "Learn how to sync secrets from Infisical to Databricks.", "category": "Cloud Providers"},
+ {"name": "Windmill", "slug": "windmill", "path": "/integrations/secret-syncs/windmill", "description": "Learn how to sync secrets from Infisical to Windmill.", "category": "Cloud Providers"},
+ {"name": "Camunda", "slug": "camunda", "path": "/integrations/secret-syncs/camunda", "description": "Learn how to sync secrets from Infisical to Camunda.", "category": "Cloud Providers"},
+ {"name": "Humanitec", "slug": "humanitec", "path": "/integrations/secret-syncs/humanitec", "description": "Learn how to sync secrets from Infisical to Humanitec.", "category": "Cloud Providers"},
+ {"name": "OCI Vault", "slug": "oci-vault", "path": "/integrations/secret-syncs/oci-vault", "description": "Learn how to sync secrets from Infisical to OCI Vault.", "category": "Cloud Providers"},
+ {"name": "Zabbix", "slug": "zabbix", "path": "/integrations/secret-syncs/zabbix", "description": "Learn how to sync secrets from Infisical to Zabbix.", "category": "Monitoring"}
];
const filteredSyncs = useMemo(() => {
@@ -103,7 +105,7 @@ export const SecretSyncsBrowser = () => {
- {/* Syncs List */}
+ {/* Secret Syncs List */}
{filteredSyncs.length > 0 ? (
{filteredSyncs.map((sync, index) => (
@@ -130,10 +132,12 @@ export const SecretSyncsBrowser = () => {
) : (
-
No secret syncs found matching your criteria.
- {searchTerm && (
-
Try adjusting your search terms or category filter.
- )}
+
+
No secret syncs found matching your criteria
+ {searchTerm && (
+
Try adjusting your search terms or filters
+ )}
+
)}
diff --git a/docs/snippets/UserAuthenticationBrowser.jsx b/docs/snippets/UserAuthenticationBrowser.jsx
index c8feacc1b..f39b84199 100644
--- a/docs/snippets/UserAuthenticationBrowser.jsx
+++ b/docs/snippets/UserAuthenticationBrowser.jsx
@@ -7,29 +7,29 @@ export const UserAuthenticationBrowser = () => {
const categories = ['All', 'SSO', 'LDAP', 'SCIM', 'General'];
const authMethods = [
- {"name": "Auth0 OIDC SSO", "slug": "auth0-oidc-sso", "path": "/documentation/platform/sso/auth0-oidc", "description": "Learn how to configure Auth0 OIDC SSO for user authentication in Infisical.", "category": "SSO"},
- {"name": "Auth0 SAML SSO", "slug": "auth0-saml-sso", "path": "/documentation/platform/sso/auth0-saml", "description": "Learn how to configure Auth0 SAML SSO for user authentication in Infisical.", "category": "SSO"},
- {"name": "Azure AD SSO", "slug": "azure-ad-sso", "path": "/documentation/platform/sso/azure", "description": "Learn how to configure Azure Active Directory SSO for user authentication in Infisical.", "category": "SSO"},
- {"name": "Google SSO", "slug": "google-sso", "path": "/documentation/platform/sso/google", "description": "Learn how to configure Google SSO for user authentication in Infisical.", "category": "SSO"},
- {"name": "Google SAML SSO", "slug": "google-saml-sso", "path": "/documentation/platform/sso/google-saml", "description": "Learn how to configure Google SAML SSO for user authentication in Infisical.", "category": "SSO"},
- {"name": "GitHub SSO", "slug": "github-sso", "path": "/documentation/platform/sso/github", "description": "Learn how to configure GitHub SSO for user authentication in Infisical.", "category": "SSO"},
- {"name": "GitLab SSO", "slug": "gitlab-sso", "path": "/documentation/platform/sso/gitlab", "description": "Learn how to configure GitLab SSO for user authentication in Infisical.", "category": "SSO"},
- {"name": "JumpCloud SSO", "slug": "jumpcloud-sso", "path": "/documentation/platform/sso/jumpcloud", "description": "Learn how to configure JumpCloud SSO for user authentication in Infisical.", "category": "SSO"},
- {"name": "Keycloak OIDC SSO", "slug": "keycloak-oidc-sso", "path": "/documentation/platform/sso/keycloak-oidc/overview", "description": "Learn how to configure Keycloak OIDC SSO for user authentication in Infisical.", "category": "SSO"},
- {"name": "Keycloak SAML SSO", "slug": "keycloak-saml-sso", "path": "/documentation/platform/sso/keycloak-saml", "description": "Learn how to configure Keycloak SAML SSO for user authentication in Infisical.", "category": "SSO"},
- {"name": "Okta SSO", "slug": "okta-sso", "path": "/documentation/platform/sso/okta", "description": "Learn how to configure Okta SSO for user authentication in Infisical.", "category": "SSO"},
- {"name": "General OIDC SSO", "slug": "general-oidc-sso", "path": "/documentation/platform/sso/general-oidc/overview", "description": "Learn how to configure general OIDC SSO for user authentication in Infisical.", "category": "SSO"},
- {"name": "JumpCloud LDAP", "slug": "jumpcloud-ldap", "path": "/documentation/platform/ldap/jumpcloud", "description": "Learn how to configure JumpCloud LDAP for user authentication in Infisical.", "category": "LDAP"},
- {"name": "General LDAP", "slug": "general-ldap", "path": "/documentation/platform/ldap/general", "description": "Learn how to configure general LDAP for user authentication in Infisical.", "category": "LDAP"},
- {"name": "JumpCloud SCIM", "slug": "jumpcloud-scim", "path": "/documentation/platform/scim/jumpcloud", "description": "Learn how to configure JumpCloud SCIM for user provisioning in Infisical.", "category": "SCIM"},
- {"name": "Okta SCIM", "slug": "okta-scim", "path": "/documentation/platform/scim/okta", "description": "Learn how to configure Okta SCIM for user provisioning in Infisical.", "category": "SCIM"},
- {"name": "Azure SCIM", "slug": "azure-scim", "path": "/documentation/platform/scim/azure", "description": "Learn how to configure Azure SCIM for user provisioning in Infisical.", "category": "SCIM"},
- {"name": "Email & Password", "slug": "email-password", "path": "/documentation/platform/auth-methods/email-password", "description": "Learn about email and password authentication for users in Infisical.", "category": "General"}
+ {"name": "Auth0 OIDC", "slug": "auth0-oidc-sso", "path": "/documentation/platform/sso/auth0-oidc", "description": "Learn how to configure Auth0 OIDC SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Auth0 SAML", "slug": "auth0-saml-sso", "path": "/documentation/platform/sso/auth0-saml", "description": "Learn how to configure Auth0 SAML SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Entra ID / Azure AD SAML", "slug": "azure-ad-sso", "path": "/documentation/platform/sso/azure", "description": "Learn how to configure Azure Active Directory (Entra ID) SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Google", "slug": "google-sso", "path": "/documentation/platform/sso/google", "description": "Learn how to configure Google SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Google SAML", "slug": "google-saml-sso", "path": "/documentation/platform/sso/google-saml", "description": "Learn how to configure Google SAML SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "GitHub", "slug": "github-sso", "path": "/documentation/platform/sso/github", "description": "Learn how to configure GitHub SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "GitLab", "slug": "gitlab-sso", "path": "/documentation/platform/sso/gitlab", "description": "Learn how to configure GitLab SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "JumpCloud", "slug": "jumpcloud-sso", "path": "/documentation/platform/sso/jumpcloud", "description": "Learn how to configure JumpCloud SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Keycloak OIDC", "slug": "keycloak-oidc-sso", "path": "/documentation/platform/sso/keycloak-oidc/overview", "description": "Learn how to configure Keycloak OIDC SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Keycloak SAML", "slug": "keycloak-saml-sso", "path": "/documentation/platform/sso/keycloak-saml", "description": "Learn how to configure Keycloak SAML SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Okta", "slug": "okta-oidc-sso", "path": "/documentation/platform/sso/okta", "description": "Learn how to configure Okta OIDC SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "Okta SAML", "slug": "okta-saml-sso", "path": "/documentation/platform/sso/okta-saml", "description": "Learn how to configure Okta SAML SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "OneLogin SAML", "slug": "onelogin-saml-sso", "path": "/documentation/platform/sso/onelogin-saml", "description": "Learn how to configure OneLogin SAML SSO for user authentication in Infisical.", "category": "SSO"},
+ {"name": "General OIDC", "slug": "general-oidc-sso", "path": "/documentation/platform/sso/general-oidc", "description": "Learn how to configure generic OIDC providers for SSO in Infisical.", "category": "SSO"},
+ {"name": "General SAML 2.0", "slug": "general-saml-sso", "path": "/documentation/platform/sso/general-saml", "description": "Learn how to configure generic SAML 2.0 providers for SSO in Infisical.", "category": "SSO"},
+ {"name": "LDAP", "slug": "ldap", "path": "/documentation/platform/ldap/overview", "description": "Learn how to configure LDAP authentication for user login in Infisical.", "category": "LDAP"},
+ {"name": "SCIM", "slug": "scim", "path": "/documentation/platform/scim/overview", "description": "Learn how to configure SCIM provisioning for automated user management in Infisical.", "category": "SCIM"},
+ {"name": "Email/Password", "slug": "email-password", "path": "/documentation/getting-started/introduction", "description": "Learn how to use standard email and password authentication in Infisical.", "category": "General"}
];
const filteredAuthMethods = useMemo(() => {
let filtered = authMethods;
-
+
if (selectedCategory !== 'All') {
filtered = filtered.filter(method => method.category === selectedCategory);
}
@@ -57,7 +57,7 @@ export const UserAuthenticationBrowser = () => {
setSearchTerm(e.target.value)}
@@ -87,13 +87,13 @@ export const UserAuthenticationBrowser = () => {
{/* Results Count */}
- {filteredAuthMethods.length} authentication method{filteredAuthMethods.length !== 1 ? 's' : ''} found
+ {filteredAuthMethods.length} user authentication method{filteredAuthMethods.length !== 1 ? 's' : ''} found
{selectedCategory !== 'All' && ` in ${selectedCategory}`}
{searchTerm && ` for "${searchTerm}"`}
- {/* Auth Methods List */}
+ {/* Authentication Methods List */}
{filteredAuthMethods.length > 0 ? (
{filteredAuthMethods.map((method, index) => (
@@ -119,9 +119,13 @@ export const UserAuthenticationBrowser = () => {
))}
) : (
-
-
No authentication methods found matching your criteria.
-
Try adjusting your search terms or category filter.
+
+
+
No user authentication methods found matching your criteria
+ {searchTerm && (
+
Try adjusting your search terms or filters
+ )}
+
)}
From 3700597ba7462d75fb819472cf6be8e366b803f6 Mon Sep 17 00:00:00 2001
From: Scott Wilson
Date: Tue, 2 Sep 2025 20:11:36 -0700
Subject: [PATCH 4/4] improvement: alpha sort explorer options
---
docs/snippets/AppConnectionsBrowser.jsx | 4 +++-
docs/snippets/DynamicSecretsBrowser.jsx | 4 +++-
docs/snippets/FrameworkIntegrationsBrowser.jsx | 4 +++-
docs/snippets/MachineAuthenticationBrowser.jsx | 4 +++-
docs/snippets/RotationsBrowser.jsx | 4 +++-
docs/snippets/SecretSyncsBrowser.jsx | 4 +++-
docs/snippets/UserAuthenticationBrowser.jsx | 4 +++-
7 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/docs/snippets/AppConnectionsBrowser.jsx b/docs/snippets/AppConnectionsBrowser.jsx
index c52bd7713..50aec75b3 100644
--- a/docs/snippets/AppConnectionsBrowser.jsx
+++ b/docs/snippets/AppConnectionsBrowser.jsx
@@ -45,7 +45,9 @@ export const AppConnectionsBrowser = () => {
{"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"}
- ];
+ ].sort(function(a, b) {
+ return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
+ });
const filteredConnections = useMemo(() => {
let filtered = connections;
diff --git a/docs/snippets/DynamicSecretsBrowser.jsx b/docs/snippets/DynamicSecretsBrowser.jsx
index f82728466..37a26c3c8 100644
--- a/docs/snippets/DynamicSecretsBrowser.jsx
+++ b/docs/snippets/DynamicSecretsBrowser.jsx
@@ -30,7 +30,9 @@ export const DynamicSecretsBrowser = () => {
{"name": "GitHub", "slug": "github", "path": "/documentation/platform/dynamic-secrets/github", "description": "Learn how to generate dynamic GitHub credentials on-demand.", "category": "Cloud Providers"},
{"name": "Kubernetes", "slug": "kubernetes", "path": "/documentation/platform/dynamic-secrets/kubernetes", "description": "Learn how to generate dynamic Kubernetes credentials on-demand.", "category": "Cloud Providers"},
{"name": "TOTP", "slug": "totp", "path": "/documentation/platform/dynamic-secrets/totp", "description": "Learn how to generate dynamic TOTP codes on-demand.", "category": "Cloud Providers"}
- ];
+ ].sort(function(a, b) {
+ return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
+ });
const filteredDynamicSecrets = useMemo(() => {
let filtered = dynamicSecrets;
diff --git a/docs/snippets/FrameworkIntegrationsBrowser.jsx b/docs/snippets/FrameworkIntegrationsBrowser.jsx
index d608b95a3..f85da41ed 100644
--- a/docs/snippets/FrameworkIntegrationsBrowser.jsx
+++ b/docs/snippets/FrameworkIntegrationsBrowser.jsx
@@ -22,7 +22,9 @@ export const FrameworkIntegrationsBrowser = () => {
{"name": "Remix", "slug": "remix", "path": "/integrations/frameworks/remix", "description": "Learn how to integrate Infisical with Remix applications.", "category": "Web Frameworks"},
{"name": "Vite", "slug": "vite", "path": "/integrations/frameworks/vite", "description": "Learn how to integrate Infisical with Vite applications.", "category": "Web Frameworks"},
{"name": "AB Initio", "slug": "ab-initio", "path": "/integrations/frameworks/ab-initio", "description": "Learn how to integrate Infisical with AB Initio applications.", "category": "Web Frameworks"}
- ];
+ ].sort(function(a, b) {
+ return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
+ });
const filteredIntegrations = useMemo(() => {
if (searchTerm) {
diff --git a/docs/snippets/MachineAuthenticationBrowser.jsx b/docs/snippets/MachineAuthenticationBrowser.jsx
index 9c55b577b..521493846 100644
--- a/docs/snippets/MachineAuthenticationBrowser.jsx
+++ b/docs/snippets/MachineAuthenticationBrowser.jsx
@@ -26,7 +26,9 @@ export const MachineAuthenticationBrowser = () => {
{"name": "TLS Certificate Auth", "slug": "tls-cert-auth", "path": "/documentation/platform/identities/tls-cert-auth", "description": "Learn how to authenticate machines using TLS client certificates.", "category": "Certificate-based"},
{"name": "LDAP Auth", "slug": "ldap-auth-general", "path": "/documentation/platform/identities/ldap-auth/general", "description": "Learn how to authenticate machines using LDAP credentials.", "category": "Directory-based"},
{"name": "LDAP Auth for JumpCloud", "slug": "ldap-auth-jumpcloud", "path": "/documentation/platform/identities/ldap-auth/jumpcloud", "description": "Learn how to authenticate machines using JumpCloud LDAP.", "category": "Directory-based"}
- ];
+ ].sort(function(a, b) {
+ return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
+ });
const filteredAuthMethods = useMemo(() => {
let filtered = authMethods;
diff --git a/docs/snippets/RotationsBrowser.jsx b/docs/snippets/RotationsBrowser.jsx
index 614fd8ce9..3d50656b6 100644
--- a/docs/snippets/RotationsBrowser.jsx
+++ b/docs/snippets/RotationsBrowser.jsx
@@ -16,7 +16,9 @@ export const RotationsBrowser = () => {
{"name": "PostgreSQL", "slug": "postgres-credentials", "path": "/documentation/platform/secret-rotation/postgres-credentials", "description": "Learn how to automatically rotate PostgreSQL database credentials.", "category": "Databases"},
{"name": "Microsoft SQL Server", "slug": "mssql-credentials", "path": "/documentation/platform/secret-rotation/mssql-credentials", "description": "Learn how to automatically rotate Microsoft SQL Server credentials.", "category": "Databases"},
{"name": "Oracle Database", "slug": "oracledb-credentials", "path": "/documentation/platform/secret-rotation/oracledb-credentials", "description": "Learn how to automatically rotate Oracle Database credentials.", "category": "Databases"}
- ];
+ ].sort(function(a, b) {
+ return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
+ });
const filteredRotations = useMemo(() => {
let filtered = rotations;
diff --git a/docs/snippets/SecretSyncsBrowser.jsx b/docs/snippets/SecretSyncsBrowser.jsx
index 5ea9ba776..01688a6f3 100644
--- a/docs/snippets/SecretSyncsBrowser.jsx
+++ b/docs/snippets/SecretSyncsBrowser.jsx
@@ -37,7 +37,9 @@ export const SecretSyncsBrowser = () => {
{"name": "Humanitec", "slug": "humanitec", "path": "/integrations/secret-syncs/humanitec", "description": "Learn how to sync secrets from Infisical to Humanitec.", "category": "Cloud Providers"},
{"name": "OCI Vault", "slug": "oci-vault", "path": "/integrations/secret-syncs/oci-vault", "description": "Learn how to sync secrets from Infisical to OCI Vault.", "category": "Cloud Providers"},
{"name": "Zabbix", "slug": "zabbix", "path": "/integrations/secret-syncs/zabbix", "description": "Learn how to sync secrets from Infisical to Zabbix.", "category": "Monitoring"}
- ];
+ ].sort(function(a, b) {
+ return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
+ });
const filteredSyncs = useMemo(() => {
let filtered = syncs;
diff --git a/docs/snippets/UserAuthenticationBrowser.jsx b/docs/snippets/UserAuthenticationBrowser.jsx
index f39b84199..76b77ad93 100644
--- a/docs/snippets/UserAuthenticationBrowser.jsx
+++ b/docs/snippets/UserAuthenticationBrowser.jsx
@@ -25,7 +25,9 @@ export const UserAuthenticationBrowser = () => {
{"name": "LDAP", "slug": "ldap", "path": "/documentation/platform/ldap/overview", "description": "Learn how to configure LDAP authentication for user login in Infisical.", "category": "LDAP"},
{"name": "SCIM", "slug": "scim", "path": "/documentation/platform/scim/overview", "description": "Learn how to configure SCIM provisioning for automated user management in Infisical.", "category": "SCIM"},
{"name": "Email/Password", "slug": "email-password", "path": "/documentation/getting-started/introduction", "description": "Learn how to use standard email and password authentication in Infisical.", "category": "General"}
- ];
+ ].sort(function(a, b) {
+ return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
+ });
const filteredAuthMethods = useMemo(() => {
let filtered = authMethods;