mirror of
https://github.com/Infisical/infisical.git
synced 2026-01-09 15:38:03 -05:00
Merge pull request #4944 from Infisical/PKI-72-dns-made-easy-document
[PKI-72] Add DNS Made Easy document
This commit is contained in:
@@ -118,6 +118,7 @@
|
|||||||
"integrations/app-connections/cloudflare",
|
"integrations/app-connections/cloudflare",
|
||||||
"integrations/app-connections/databricks",
|
"integrations/app-connections/databricks",
|
||||||
"integrations/app-connections/digital-ocean",
|
"integrations/app-connections/digital-ocean",
|
||||||
|
"integrations/app-connections/dns-made-easy",
|
||||||
"integrations/app-connections/flyio",
|
"integrations/app-connections/flyio",
|
||||||
"integrations/app-connections/gcp",
|
"integrations/app-connections/gcp",
|
||||||
"integrations/app-connections/github",
|
"integrations/app-connections/github",
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ their **ACME Directory URL** such as:
|
|||||||
- ZeroSSL: `https://acme.zerossl.com/v2/DV90`.
|
- ZeroSSL: `https://acme.zerossl.com/v2/DV90`.
|
||||||
- SSL.com: `https://acme.ssl.com/sslcom-dv-rsa`.
|
- SSL.com: `https://acme.ssl.com/sslcom-dv-rsa`.
|
||||||
|
|
||||||
When Infisical requests a certificate from an ACME-compatible CA, it creates a TXT record at `_acme-challenge.{your-domain}` in your configured DNS provider (e.g. Route53, Cloudflare, etc.); this TXT record contains the challenge token issued by the ACME-compatible CA to validate domain control for the requested certificate.
|
When Infisical requests a certificate from an ACME-compatible CA, it creates a TXT record at `_acme-challenge.{your-domain}` in your configured DNS provider (e.g. Route53, Cloudflare, DNS Made Easy, etc.); this TXT record contains the challenge token issued by the ACME-compatible CA to validate domain control for the requested certificate.
|
||||||
The ACME provider checks for the existence of this TXT record to verify domain control before issuing the certificate back to Infisical.
|
The ACME provider checks for the existence of this TXT record to verify domain control before issuing the certificate back to Infisical.
|
||||||
|
|
||||||
After validation completes successfully, Infisical automatically removes the TXT record from your DNS provider.
|
After validation completes successfully, Infisical automatically removes the TXT record from your DNS provider.
|
||||||
@@ -120,6 +120,11 @@ In the following steps, we explore how to connect Infisical to an ACME-compatibl
|
|||||||
|
|
||||||
For detailed instructions on setting up a Cloudflare connection, see the [Cloudflare Connection](/integrations/app-connections/cloudflare) documentation.
|
For detailed instructions on setting up a Cloudflare connection, see the [Cloudflare Connection](/integrations/app-connections/cloudflare) documentation.
|
||||||
</Tab>
|
</Tab>
|
||||||
|
<Tab title="DNS Made Easy">
|
||||||
|
Navigate to your Certificate Management Project > App Connections and create a new DNS Made Easy connection.
|
||||||
|
|
||||||
|
For detailed instructions on setting up a DNS Made Easy connection, see the [DNS Made Easy Connection](/integrations/app-connections/dns-made-easy) documentation.
|
||||||
|
</Tab>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
</Step>
|
</Step>
|
||||||
<Step title="Register an ACME-compatible CA">
|
<Step title="Register an ACME-compatible CA">
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 73 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 128 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 149 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 122 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 74 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 185 KiB |
59
docs/integrations/app-connections/dns-made-easy.mdx
Normal file
59
docs/integrations/app-connections/dns-made-easy.mdx
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
---
|
||||||
|
title: "DNS Made Easy"
|
||||||
|
description: "Learn how to configure a DNS Made Easy Connection for Infisical."
|
||||||
|
---
|
||||||
|
|
||||||
|
Infisical supports connecting to DNS Made Easy using API key and secret key for secure access to your DNS Made Easy service.
|
||||||
|
|
||||||
|
## Configure API key and secret Key for Infisical
|
||||||
|
|
||||||
|
<Steps>
|
||||||
|
<Step title="Generate API key and secret key">
|
||||||
|
Navigate to your DNS Made Easy dashboard and go to **Account Information** under the **Config** top menu.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
If your **API Key** and **Secret Key** are already available, proceed to step 2.
|
||||||
|
|
||||||
|
Otherwise, check the **Generate New API Credentials** then click the **Save** button to generate the new API credentials.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
</Step>
|
||||||
|
<Step title="Copy Your API Key and Secret Key">
|
||||||
|
After creation, copy your API key and secret key.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
<Warning>
|
||||||
|
Keep your API key and secret key secure and do not share it.
|
||||||
|
Anyone with access to this token can manage your DNS Made Easy resources.
|
||||||
|
</Warning>
|
||||||
|
|
||||||
|
</Step>
|
||||||
|
</Steps>
|
||||||
|
|
||||||
|
## Setup DNS Made Easy Connection in Infisical
|
||||||
|
|
||||||
|
<Steps>
|
||||||
|
<Step title="Navigate to App Connections">
|
||||||
|
Navigate to the **App Connections** page in the desired project. 
|
||||||
|
</Step>
|
||||||
|
<Step title="Add Connection">
|
||||||
|
Select the **DNS Made Easy Connection** option from the connection options
|
||||||
|
modal. 
|
||||||
|
</Step>
|
||||||
|
<Step title="Input Credentials">
|
||||||
|
Enter your DNS Made Easy API key and secret key in the provided fields and
|
||||||
|
click **Connect to DNS Made Easy** to establish the connection. 
|
||||||
|
</Step>
|
||||||
|
<Step title="Connection Created">
|
||||||
|
Your **DNS Made Easy Connection** is now available for use in your Infisical
|
||||||
|
projects. 
|
||||||
|
</Step>
|
||||||
|
</Steps>
|
||||||
@@ -1,70 +1,388 @@
|
|||||||
import React, { useState, useMemo } from 'react';
|
import React, { useState, useMemo } from "react";
|
||||||
|
|
||||||
export const AppConnectionsBrowser = () => {
|
export const AppConnectionsBrowser = () => {
|
||||||
const [searchTerm, setSearchTerm] = useState('');
|
const [searchTerm, setSearchTerm] = useState("");
|
||||||
const [selectedCategory, setSelectedCategory] = useState('All');
|
const [selectedCategory, setSelectedCategory] = useState("All");
|
||||||
|
|
||||||
const categories = ['All', 'Cloud Providers', 'Databases', 'CI/CD', 'Monitoring', 'Directory Services', 'Identity & Auth', 'Data Analytics', 'Hosting', 'DevOps Tools', 'Security'];
|
const categories = [
|
||||||
|
"All",
|
||||||
|
"Cloud Providers",
|
||||||
|
"Databases",
|
||||||
|
"CI/CD",
|
||||||
|
"Monitoring",
|
||||||
|
"Directory Services",
|
||||||
|
"Identity & Auth",
|
||||||
|
"Data Analytics",
|
||||||
|
"Hosting",
|
||||||
|
"DevOps Tools",
|
||||||
|
"Security",
|
||||||
|
"Networking & DNS",
|
||||||
|
];
|
||||||
|
|
||||||
const connections = [
|
const connections = [
|
||||||
{"name": "AWS", "slug": "aws", "path": "/integrations/app-connections/aws", "description": "Learn how to connect your AWS applications to pull secrets from Infisical.", "category": "Cloud Providers"},
|
{
|
||||||
{"name": "Azure Key Vault", "slug": "azure-key-vault", "path": "/integrations/app-connections/azure-key-vault", "description": "Learn how to connect your Azure Key Vault to pull secrets from Infisical.", "category": "Cloud Providers"},
|
name: "AWS",
|
||||||
{"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"},
|
slug: "aws",
|
||||||
{"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"},
|
path: "/integrations/app-connections/aws",
|
||||||
{"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"},
|
description:
|
||||||
{"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"},
|
"Learn how to connect your AWS applications to pull secrets from Infisical.",
|
||||||
{"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"},
|
category: "Cloud Providers",
|
||||||
{"name": "HashiCorp Vault", "slug": "hashicorp-vault", "path": "/integrations/app-connections/hashicorp-vault", "description": "Learn how to connect your HashiCorp Vault to pull secrets from Infisical.", "category": "Security"},
|
},
|
||||||
{"name": "1Password", "slug": "1password", "path": "/integrations/app-connections/1password", "description": "Learn how to connect your 1Password to pull secrets from Infisical.", "category": "Security"},
|
{
|
||||||
{"name": "Vercel", "slug": "vercel", "path": "/integrations/app-connections/vercel", "description": "Learn how to connect your Vercel application to pull secrets from Infisical.", "category": "Hosting"},
|
name: "Azure Key Vault",
|
||||||
{"name": "Netlify", "slug": "netlify", "path": "/integrations/app-connections/netlify", "description": "Learn how to connect your Netlify application to pull secrets from Infisical.", "category": "Hosting"},
|
slug: "azure-key-vault",
|
||||||
{"name": "Railway", "slug": "railway", "path": "/integrations/app-connections/railway", "description": "Learn how to connect your Railway application to pull secrets from Infisical.", "category": "Hosting"},
|
path: "/integrations/app-connections/azure-key-vault",
|
||||||
{"name": "Fly.io", "slug": "flyio", "path": "/integrations/app-connections/flyio", "description": "Learn how to connect your Fly.io application to pull secrets from Infisical.", "category": "Hosting"},
|
description:
|
||||||
{"name": "Render", "slug": "render", "path": "/integrations/app-connections/render", "description": "Learn how to connect your Render application to pull secrets from Infisical.", "category": "Hosting"},
|
"Learn how to connect your Azure Key Vault to pull secrets from Infisical.",
|
||||||
{"name": "Heroku", "slug": "heroku", "path": "/integrations/app-connections/heroku", "description": "Learn how to connect your Heroku application to pull secrets from Infisical.", "category": "Hosting"},
|
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": "Hosting"},
|
},
|
||||||
{"name": "Supabase", "slug": "supabase", "path": "/integrations/app-connections/supabase", "description": "Learn how to connect your Supabase application to pull secrets from Infisical.", "category": "Databases"},
|
{
|
||||||
{"name": "Checkly", "slug": "checkly", "path": "/integrations/app-connections/checkly", "description": "Learn how to connect your Checkly application to pull secrets from Infisical.", "category": "Monitoring"},
|
name: "Azure App Configuration",
|
||||||
{"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"},
|
slug: "azure-app-configuration",
|
||||||
{"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"},
|
path: "/integrations/app-connections/azure-app-configuration",
|
||||||
{"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"},
|
description:
|
||||||
{"name": "TeamCity", "slug": "teamcity", "path": "/integrations/app-connections/teamcity", "description": "Learn how to connect your TeamCity to pull secrets from Infisical.", "category": "CI/CD"},
|
"Learn how to connect your Azure App Configuration to pull secrets from Infisical.",
|
||||||
{"name": "Bitbucket", "slug": "bitbucket", "path": "/integrations/app-connections/bitbucket", "description": "Learn how to connect your Bitbucket to pull secrets from Infisical.", "category": "CI/CD"},
|
category: "Cloud Providers",
|
||||||
{"name": "Terraform Cloud", "slug": "terraform-cloud", "path": "/integrations/app-connections/terraform-cloud", "description": "Learn how to connect your Terraform Cloud to pull secrets from Infisical.", "category": "DevOps Tools"},
|
},
|
||||||
{"name": "Cloudflare", "slug": "cloudflare", "path": "/integrations/app-connections/cloudflare", "description": "Learn how to connect your Cloudflare application to pull secrets from Infisical.", "category": "Cloud Providers"},
|
{
|
||||||
{"name": "Databricks", "slug": "databricks", "path": "/integrations/app-connections/databricks", "description": "Learn how to connect your Databricks to pull secrets from Infisical.", "category": "Data Analytics"},
|
name: "Azure Client Secrets",
|
||||||
{"name": "Windmill", "slug": "windmill", "path": "/integrations/app-connections/windmill", "description": "Learn how to connect your Windmill to pull secrets from Infisical.", "category": "DevOps Tools"},
|
slug: "azure-client-secrets",
|
||||||
{"name": "Camunda", "slug": "camunda", "path": "/integrations/app-connections/camunda", "description": "Learn how to connect your Camunda to pull secrets from Infisical.", "category": "DevOps Tools"},
|
path: "/integrations/app-connections/azure-client-secrets",
|
||||||
{"name": "Humanitec", "slug": "humanitec", "path": "/integrations/app-connections/humanitec", "description": "Learn how to connect your Humanitec to pull secrets from Infisical.", "category": "DevOps Tools"},
|
description:
|
||||||
{"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"},
|
"Learn how to connect your Azure Client Secrets to pull secrets from Infisical.",
|
||||||
{"name": "Zabbix", "slug": "zabbix", "path": "/integrations/app-connections/zabbix", "description": "Learn how to connect your Zabbix to pull secrets from Infisical.", "category": "Monitoring"},
|
category: "Cloud Providers",
|
||||||
{"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: "Azure DevOps",
|
||||||
{"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"},
|
slug: "azure-devops",
|
||||||
{"name": "Redis", "slug": "redis", "path": "/integrations/app-connections/redis", "description": "Learn how to connect Redis to pull secrets from Infisical.", "category": "Databases"},
|
path: "/integrations/app-connections/azure-devops",
|
||||||
{"name": "LDAP", "slug": "ldap", "path": "/integrations/app-connections/ldap", "description": "Learn how to connect your LDAP to pull secrets from Infisical.", "category": "Directory Services"},
|
description:
|
||||||
{"name": "Auth0", "slug": "auth0", "path": "/integrations/app-connections/auth0", "description": "Learn how to connect your Auth0 to pull secrets from Infisical.", "category": "Identity & Auth"},
|
"Learn how to connect your Azure DevOps to pull secrets from Infisical.",
|
||||||
{"name": "Okta", "slug": "okta", "path": "/integrations/app-connections/okta", "description": "Learn how to connect your Okta to pull secrets from Infisical.", "category": "Identity & Auth"},
|
category: "CI/CD",
|
||||||
{"name": "Laravel Forge", "slug": "laravel-forge", "path": "/integrations/app-connections/laravel-forge", "description": "Learn how to connect your Laravel Forge to pull secrets from Infisical.", "category": "Hosting"},
|
},
|
||||||
{"name": "Chef", "slug": "chef", "path": "/integrations/app-connections/chef", "description": "Learn how to connect your Chef to pull secrets from Infisical.", "category": "DevOps Tools"},
|
{
|
||||||
{"name": "Northflank", "slug": "northflank", "path": "/integrations/app-connections/northflank", "description": "Learn how to connect your Northflank projects to pull secrets from Infisical.", "category": "Hosting"}
|
name: "Azure ADCS",
|
||||||
].sort(function(a, b) {
|
slug: "azure-adcs",
|
||||||
return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
|
path: "/integrations/app-connections/azure-adcs",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Azure ADCS to pull secrets from Infisical.",
|
||||||
|
category: "Cloud Providers",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GCP",
|
||||||
|
slug: "gcp",
|
||||||
|
path: "/integrations/app-connections/gcp",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your GCP applications to pull secrets from Infisical.",
|
||||||
|
category: "Cloud Providers",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "HashiCorp Vault",
|
||||||
|
slug: "hashicorp-vault",
|
||||||
|
path: "/integrations/app-connections/hashicorp-vault",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your HashiCorp Vault to pull secrets from Infisical.",
|
||||||
|
category: "Security",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "1Password",
|
||||||
|
slug: "1password",
|
||||||
|
path: "/integrations/app-connections/1password",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your 1Password to pull secrets from Infisical.",
|
||||||
|
category: "Security",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Vercel",
|
||||||
|
slug: "vercel",
|
||||||
|
path: "/integrations/app-connections/vercel",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Vercel application to pull secrets from Infisical.",
|
||||||
|
category: "Hosting",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Netlify",
|
||||||
|
slug: "netlify",
|
||||||
|
path: "/integrations/app-connections/netlify",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Netlify application to pull secrets from Infisical.",
|
||||||
|
category: "Hosting",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Railway",
|
||||||
|
slug: "railway",
|
||||||
|
path: "/integrations/app-connections/railway",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Railway application to pull secrets from Infisical.",
|
||||||
|
category: "Hosting",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Fly.io",
|
||||||
|
slug: "flyio",
|
||||||
|
path: "/integrations/app-connections/flyio",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Fly.io application to pull secrets from Infisical.",
|
||||||
|
category: "Hosting",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Render",
|
||||||
|
slug: "render",
|
||||||
|
path: "/integrations/app-connections/render",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Render application to pull secrets from Infisical.",
|
||||||
|
category: "Hosting",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Heroku",
|
||||||
|
slug: "heroku",
|
||||||
|
path: "/integrations/app-connections/heroku",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Heroku application to pull secrets from Infisical.",
|
||||||
|
category: "Hosting",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "DigitalOcean",
|
||||||
|
slug: "digital-ocean",
|
||||||
|
path: "/integrations/app-connections/digital-ocean",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your DigitalOcean application to pull secrets from Infisical.",
|
||||||
|
category: "Hosting",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Supabase",
|
||||||
|
slug: "supabase",
|
||||||
|
path: "/integrations/app-connections/supabase",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Supabase application to pull secrets from Infisical.",
|
||||||
|
category: "Databases",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Checkly",
|
||||||
|
slug: "checkly",
|
||||||
|
path: "/integrations/app-connections/checkly",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Checkly application to pull secrets from Infisical.",
|
||||||
|
category: "Monitoring",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GitHub",
|
||||||
|
slug: "github",
|
||||||
|
path: "/integrations/app-connections/github",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your GitHub application to pull secrets from Infisical.",
|
||||||
|
category: "CI/CD",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GitHub Radar",
|
||||||
|
slug: "github-radar",
|
||||||
|
path: "/integrations/app-connections/github-radar",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your GitHub Radar to pull secrets from Infisical.",
|
||||||
|
category: "CI/CD",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GitLab",
|
||||||
|
slug: "gitlab",
|
||||||
|
path: "/integrations/app-connections/gitlab",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your GitLab application to pull secrets from Infisical.",
|
||||||
|
category: "CI/CD",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "TeamCity",
|
||||||
|
slug: "teamcity",
|
||||||
|
path: "/integrations/app-connections/teamcity",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your TeamCity to pull secrets from Infisical.",
|
||||||
|
category: "CI/CD",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Bitbucket",
|
||||||
|
slug: "bitbucket",
|
||||||
|
path: "/integrations/app-connections/bitbucket",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Bitbucket to pull secrets from Infisical.",
|
||||||
|
category: "CI/CD",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Terraform Cloud",
|
||||||
|
slug: "terraform-cloud",
|
||||||
|
path: "/integrations/app-connections/terraform-cloud",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Terraform Cloud to pull secrets from Infisical.",
|
||||||
|
category: "DevOps Tools",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Cloudflare",
|
||||||
|
slug: "cloudflare",
|
||||||
|
path: "/integrations/app-connections/cloudflare",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Cloudflare application to pull secrets from Infisical.",
|
||||||
|
category: "Cloud Providers",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Databricks",
|
||||||
|
slug: "databricks",
|
||||||
|
path: "/integrations/app-connections/databricks",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Databricks to pull secrets from Infisical.",
|
||||||
|
category: "Data Analytics",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "DNS Made Easy",
|
||||||
|
slug: "dns-made-easy",
|
||||||
|
path: "/integrations/app-connections/dns-made-easy",
|
||||||
|
description: "Learn how to connect Infisical to DNS Made Easy.",
|
||||||
|
category: "Networking & DNS",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Windmill",
|
||||||
|
slug: "windmill",
|
||||||
|
path: "/integrations/app-connections/windmill",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Windmill to pull secrets from Infisical.",
|
||||||
|
category: "DevOps Tools",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Camunda",
|
||||||
|
slug: "camunda",
|
||||||
|
path: "/integrations/app-connections/camunda",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Camunda to pull secrets from Infisical.",
|
||||||
|
category: "DevOps Tools",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Humanitec",
|
||||||
|
slug: "humanitec",
|
||||||
|
path: "/integrations/app-connections/humanitec",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Humanitec to pull secrets from Infisical.",
|
||||||
|
category: "DevOps Tools",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "OCI",
|
||||||
|
slug: "oci",
|
||||||
|
path: "/integrations/app-connections/oci",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your OCI applications to pull secrets from Infisical.",
|
||||||
|
category: "Cloud Providers",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Zabbix",
|
||||||
|
slug: "zabbix",
|
||||||
|
path: "/integrations/app-connections/zabbix",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Zabbix to pull secrets from Infisical.",
|
||||||
|
category: "Monitoring",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "MySQL",
|
||||||
|
slug: "mysql",
|
||||||
|
path: "/integrations/app-connections/mysql",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your MySQL database to pull secrets from Infisical.",
|
||||||
|
category: "Databases",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "PostgreSQL",
|
||||||
|
slug: "postgres",
|
||||||
|
path: "/integrations/app-connections/postgres",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your PostgreSQL database to pull secrets from Infisical.",
|
||||||
|
category: "Databases",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Microsoft SQL Server",
|
||||||
|
slug: "mssql",
|
||||||
|
path: "/integrations/app-connections/mssql",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your SQL Server database to pull secrets from Infisical.",
|
||||||
|
category: "Databases",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Oracle Database",
|
||||||
|
slug: "oracledb",
|
||||||
|
path: "/integrations/app-connections/oracledb",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Oracle database to pull secrets from Infisical.",
|
||||||
|
category: "Databases",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Redis",
|
||||||
|
slug: "redis",
|
||||||
|
path: "/integrations/app-connections/redis",
|
||||||
|
description: "Learn how to connect Redis to pull secrets from Infisical.",
|
||||||
|
category: "Databases",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "LDAP",
|
||||||
|
slug: "ldap",
|
||||||
|
path: "/integrations/app-connections/ldap",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your LDAP to pull secrets from Infisical.",
|
||||||
|
category: "Directory Services",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Auth0",
|
||||||
|
slug: "auth0",
|
||||||
|
path: "/integrations/app-connections/auth0",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Auth0 to pull secrets from Infisical.",
|
||||||
|
category: "Identity & Auth",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Okta",
|
||||||
|
slug: "okta",
|
||||||
|
path: "/integrations/app-connections/okta",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Okta to pull secrets from Infisical.",
|
||||||
|
category: "Identity & Auth",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Laravel Forge",
|
||||||
|
slug: "laravel-forge",
|
||||||
|
path: "/integrations/app-connections/laravel-forge",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Laravel Forge to pull secrets from Infisical.",
|
||||||
|
category: "Hosting",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Chef",
|
||||||
|
slug: "chef",
|
||||||
|
path: "/integrations/app-connections/chef",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Chef to pull secrets from Infisical.",
|
||||||
|
category: "DevOps Tools",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Northflank",
|
||||||
|
slug: "northflank",
|
||||||
|
path: "/integrations/app-connections/northflank",
|
||||||
|
description:
|
||||||
|
"Learn how to connect your Northflank projects to pull secrets from Infisical.",
|
||||||
|
category: "Hosting",
|
||||||
|
},
|
||||||
|
].sort(function (a, b) {
|
||||||
|
return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
|
||||||
});
|
});
|
||||||
|
|
||||||
const filteredConnections = useMemo(() => {
|
const filteredConnections = useMemo(() => {
|
||||||
let filtered = connections;
|
let filtered = connections;
|
||||||
|
|
||||||
if (selectedCategory !== 'All') {
|
if (selectedCategory !== "All") {
|
||||||
filtered = filtered.filter(connection => connection.category === selectedCategory);
|
filtered = filtered.filter(
|
||||||
|
(connection) => connection.category === selectedCategory
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (searchTerm) {
|
if (searchTerm) {
|
||||||
filtered = filtered.filter(connection =>
|
filtered = filtered.filter(
|
||||||
connection.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
(connection) =>
|
||||||
connection.description.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
connection.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
||||||
connection.category.toLowerCase().includes(searchTerm.toLowerCase())
|
connection.description
|
||||||
|
.toLowerCase()
|
||||||
|
.includes(searchTerm.toLowerCase()) ||
|
||||||
|
connection.category.toLowerCase().includes(searchTerm.toLowerCase())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,8 +395,18 @@ export const AppConnectionsBrowser = () => {
|
|||||||
<div className="mb-6">
|
<div className="mb-6">
|
||||||
<div className="relative w-full">
|
<div className="relative w-full">
|
||||||
<div className="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
|
<div className="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
|
||||||
<svg className="h-4 w-4 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
<svg
|
||||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />
|
className="h-4 w-4 text-gray-400"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
strokeLinecap="round"
|
||||||
|
strokeLinejoin="round"
|
||||||
|
strokeWidth="2"
|
||||||
|
d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
|
||||||
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<input
|
<input
|
||||||
@@ -94,14 +422,14 @@ export const AppConnectionsBrowser = () => {
|
|||||||
{/* Category Filter */}
|
{/* Category Filter */}
|
||||||
<div className="mb-6">
|
<div className="mb-6">
|
||||||
<div className="flex flex-wrap gap-2">
|
<div className="flex flex-wrap gap-2">
|
||||||
{categories.map(category => (
|
{categories.map((category) => (
|
||||||
<button
|
<button
|
||||||
key={category}
|
key={category}
|
||||||
onClick={() => setSelectedCategory(category)}
|
onClick={() => setSelectedCategory(category)}
|
||||||
className={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors shadow-sm ${
|
className={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors shadow-sm ${
|
||||||
selectedCategory === category
|
selectedCategory === category
|
||||||
? 'bg-yellow-100 text-yellow-700 border border-yellow-200'
|
? "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'
|
: "bg-white text-gray-700 border border-gray-200 hover:bg-yellow-50 hover:border-yellow-200"
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
{category}
|
{category}
|
||||||
@@ -113,8 +441,9 @@ export const AppConnectionsBrowser = () => {
|
|||||||
{/* Results Count */}
|
{/* Results Count */}
|
||||||
<div className="mb-4">
|
<div className="mb-4">
|
||||||
<p className="text-sm text-gray-600">
|
<p className="text-sm text-gray-600">
|
||||||
{filteredConnections.length} app connection{filteredConnections.length !== 1 ? 's' : ''} found
|
{filteredConnections.length} app connection
|
||||||
{selectedCategory !== 'All' && ` in ${selectedCategory}`}
|
{filteredConnections.length !== 1 ? "s" : ""} found
|
||||||
|
{selectedCategory !== "All" && ` in ${selectedCategory}`}
|
||||||
{searchTerm && ` for "${searchTerm}"`}
|
{searchTerm && ` for "${searchTerm}"`}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -147,13 +476,17 @@ export const AppConnectionsBrowser = () => {
|
|||||||
) : (
|
) : (
|
||||||
<div className="text-center py-8">
|
<div className="text-center py-8">
|
||||||
<div className="flex flex-col items-center space-y-2">
|
<div className="flex flex-col items-center space-y-2">
|
||||||
<p className="text-gray-500">No app connections found matching your criteria</p>
|
<p className="text-gray-500">
|
||||||
|
No app connections found matching your criteria
|
||||||
|
</p>
|
||||||
{searchTerm && (
|
{searchTerm && (
|
||||||
<p className="text-gray-400 text-sm">Try adjusting your search terms or filters</p>
|
<p className="text-gray-400 text-sm">
|
||||||
|
Try adjusting your search terms or filters
|
||||||
|
</p>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user