a few review improvements + lint

This commit is contained in:
x032205
2025-10-31 19:04:27 -04:00
parent b531e4ed5e
commit 29d0fe8073
16 changed files with 27 additions and 28 deletions

View File

@@ -2382,7 +2382,7 @@ export const AppConnections = {
}, },
CHEF: { CHEF: {
serverUrl: "The URL of the Chef server to connect to.", serverUrl: "The URL of the Chef server to connect to.",
orgName: "The name of the Chef organization to connect to.", orgName: "The short name of the Chef organization to connect to.",
userName: "The username used to access Chef.", userName: "The username used to access Chef.",
privateKey: "The private key used to access Chef." privateKey: "The private key used to access Chef."
} }

View File

@@ -82,6 +82,12 @@ import {
TChecklyConnectionInput, TChecklyConnectionInput,
TValidateChecklyConnectionCredentialsSchema TValidateChecklyConnectionCredentialsSchema
} from "./checkly"; } from "./checkly";
import {
TChefConnection,
TChefConnectionConfig,
TChefConnectionInput,
TValidateChefConnectionCredentialsSchema
} from "./chef";
import { import {
TCloudflareConnection, TCloudflareConnection,
TCloudflareConnectionConfig, TCloudflareConnectionConfig,
@@ -239,12 +245,6 @@ import {
TZabbixConnectionConfig, TZabbixConnectionConfig,
TZabbixConnectionInput TZabbixConnectionInput
} from "./zabbix"; } from "./zabbix";
import {
TChefConnection,
TChefConnectionConfig,
TChefConnectionInput,
TValidateChefConnectionCredentialsSchema
} from "./chef";
export type TAppConnection = { id: string } & ( export type TAppConnection = { id: string } & (
| TAwsConnection | TAwsConnection

View File

@@ -1,5 +1,4 @@
import { ForbiddenRequestError } from "@app/lib/errors"; import { ForbiddenRequestError } from "@app/lib/errors";
// import { logger } from "@app/lib/logger";
import { OrgServiceActor } from "@app/lib/types"; import { OrgServiceActor } from "@app/lib/types";
import { AppConnection } from "../app-connection-enums"; import { AppConnection } from "../app-connection-enums";

View File

@@ -77,8 +77,8 @@ Please access your **starter kit** to get all the required information to create
Complete the form by providing: Complete the form by providing:
- A descriptive name for the connection - A descriptive name for the connection
- An optional description - An optional description
- Server URL(optional): The URL of the Chef server to connect to(defaults to https://api.chef.io) - Server URL(optional): The URL of the Chef server to connect with (defaults to https://api.chef.io)
- Organization name - Organization short name
- User name - User name
- Private key: Your Chef user's private key (.pem file) - Private key: Your Chef user's private key (.pem file)

View File

@@ -36,8 +36,8 @@ description: "Learn how to configure a Chef Sync for Infisical."
![Configure Destination](/images/secret-syncs/chef/sync-destination.png) ![Configure Destination](/images/secret-syncs/chef/sync-destination.png)
- **Chef Connection**: The Chef Connection to authenticate with. - **Chef Connection**: The Chef Connection to authenticate with.
- **Data Bag**: The Data Bag Name to sync secrets to. - **Data Bag**: The Data Bag to sync secrets to.
- **Data Bag Item**: The Data Bag Item Name to sync secrets to. - **Data Bag Item**: The Data Bag Item to sync secrets to.
</Step> </Step>
<Step title="Configure Sync Options"> <Step title="Configure Sync Options">
Configure the **Sync Options** to specify how secrets should be synced, then click **Next**. Configure the **Sync Options** to specify how secrets should be synced, then click **Next**.
@@ -46,8 +46,8 @@ description: "Learn how to configure a Chef Sync for Infisical."
- **Initial Sync Behavior**: Determines how Infisical should resolve the initial sync. - **Initial Sync Behavior**: Determines how Infisical should resolve the initial sync.
- **Overwrite Destination Secrets**: Removes any secrets at the destination endpoint not present in Infisical. - **Overwrite Destination Secrets**: Removes any secrets at the destination endpoint not present in Infisical.
- **Import Secrets (Prioritize Infisical)**: Imports secrets from the destination endpoint before syncing, prioritizing values from Infisical over Laravel Forge when keys conflict. - **Import Secrets (Prioritize Infisical)**: Imports secrets from the destination endpoint before syncing, prioritizing values from Infisical over Chef when keys conflict.
- **Import Secrets (Prioritize Laravel Forge)**: Imports secrets from the destination endpoint before syncing, prioritizing values from Laravel Forge over Infisical when keys conflict. - **Import Secrets (Prioritize Chef)**: Imports secrets from the destination endpoint before syncing, prioritizing values from Chef over Infisical when keys conflict.
- **Key Schema**: Template that determines how secret names are transformed when syncing, using `{{secretKey}}` as a placeholder for the original secret name and `{{environment}}` for the environment. - **Key Schema**: Template that determines how secret names are transformed when syncing, using `{{secretKey}}` as a placeholder for the original secret name and `{{environment}}` for the environment.
<Note> <Note>
We highly recommend using a Key Schema to ensure that Infisical only manages the specific keys you intend, keeping everything else untouched. We highly recommend using a Key Schema to ensure that Infisical only manages the specific keys you intend, keeping everything else untouched.

View File

@@ -5,9 +5,9 @@ import { SecretSyncConnectionField } from "@app/components/secret-syncs/forms/Se
import { FilterableSelect, FormControl } from "@app/components/v2"; import { FilterableSelect, FormControl } from "@app/components/v2";
import { import {
TChefDataBag, TChefDataBag,
useChefConnectionListDataBags, TChefDataBagItem,
useChefConnectionListDataBagItems, useChefConnectionListDataBagItems,
TChefDataBagItem useChefConnectionListDataBags
} from "@app/hooks/api/appConnections/chef"; } from "@app/hooks/api/appConnections/chef";
import { SecretSync } from "@app/hooks/api/secretSyncs"; import { SecretSync } from "@app/hooks/api/secretSyncs";

View File

@@ -12,6 +12,7 @@ import { AzureKeyVaultSyncFields } from "./AzureKeyVaultSyncFields";
import { BitbucketSyncFields } from "./BitbucketSyncFields"; import { BitbucketSyncFields } from "./BitbucketSyncFields";
import { CamundaSyncFields } from "./CamundaSyncFields"; import { CamundaSyncFields } from "./CamundaSyncFields";
import { ChecklySyncFields } from "./ChecklySyncFields"; import { ChecklySyncFields } from "./ChecklySyncFields";
import { ChefSyncFields } from "./ChefSyncFields";
import { CloudflarePagesSyncFields } from "./CloudflarePagesSyncFields"; import { CloudflarePagesSyncFields } from "./CloudflarePagesSyncFields";
import { CloudflareWorkersSyncFields } from "./CloudflareWorkersSyncFields"; import { CloudflareWorkersSyncFields } from "./CloudflareWorkersSyncFields";
import { DatabricksSyncFields } from "./DatabricksSyncFields"; import { DatabricksSyncFields } from "./DatabricksSyncFields";
@@ -35,7 +36,6 @@ import { TerraformCloudSyncFields } from "./TerraformCloudSyncFields";
import { VercelSyncFields } from "./VercelSyncFields"; import { VercelSyncFields } from "./VercelSyncFields";
import { WindmillSyncFields } from "./WindmillSyncFields"; import { WindmillSyncFields } from "./WindmillSyncFields";
import { ZabbixSyncFields } from "./ZabbixSyncFields"; import { ZabbixSyncFields } from "./ZabbixSyncFields";
import { ChefSyncFields } from "./ChefSyncFields";
export const SecretSyncDestinationFields = () => { export const SecretSyncDestinationFields = () => {
const { watch } = useFormContext<TSecretSyncForm>(); const { watch } = useFormContext<TSecretSyncForm>();

View File

@@ -24,6 +24,7 @@ import { AzureKeyVaultSyncReviewFields } from "./AzureKeyVaultSyncReviewFields";
import { BitbucketSyncReviewFields } from "./BitbucketSyncReviewFields"; import { BitbucketSyncReviewFields } from "./BitbucketSyncReviewFields";
import { CamundaSyncReviewFields } from "./CamundaSyncReviewFields"; import { CamundaSyncReviewFields } from "./CamundaSyncReviewFields";
import { ChecklySyncReviewFields } from "./ChecklySyncReviewFields"; import { ChecklySyncReviewFields } from "./ChecklySyncReviewFields";
import { ChefSyncReviewFields } from "./ChefSyncReviewFields";
import { CloudflarePagesSyncReviewFields } from "./CloudflarePagesReviewFields"; import { CloudflarePagesSyncReviewFields } from "./CloudflarePagesReviewFields";
import { CloudflareWorkersSyncReviewFields } from "./CloudflareWorkersReviewFields"; import { CloudflareWorkersSyncReviewFields } from "./CloudflareWorkersReviewFields";
import { DatabricksSyncReviewFields } from "./DatabricksSyncReviewFields"; import { DatabricksSyncReviewFields } from "./DatabricksSyncReviewFields";
@@ -48,7 +49,6 @@ import { TerraformCloudSyncReviewFields } from "./TerraformCloudSyncReviewFields
import { VercelSyncReviewFields } from "./VercelSyncReviewFields"; import { VercelSyncReviewFields } from "./VercelSyncReviewFields";
import { WindmillSyncReviewFields } from "./WindmillSyncReviewFields"; import { WindmillSyncReviewFields } from "./WindmillSyncReviewFields";
import { ZabbixSyncReviewFields } from "./ZabbixSyncReviewFields"; import { ZabbixSyncReviewFields } from "./ZabbixSyncReviewFields";
import { ChefSyncReviewFields } from "./ChefSyncReviewFields";
export const SecretSyncReviewFields = () => { export const SecretSyncReviewFields = () => {
const { watch } = useFormContext<TSecretSyncForm>(); const { watch } = useFormContext<TSecretSyncForm>();

View File

@@ -7,8 +7,8 @@ export const ChefSyncDestinationSchema = BaseSecretSyncSchema().merge(
z.object({ z.object({
destination: z.literal(SecretSync.Chef), destination: z.literal(SecretSync.Chef),
destinationConfig: z.object({ destinationConfig: z.object({
dataBagName: z.string().trim().min(1, "Data Bag Name required"), dataBagName: z.string().trim().min(1, "Data Bag required"),
dataBagItemName: z.string().trim().min(1, "Data Bag Item Name required") dataBagItemName: z.string().trim().min(1, "Data Bag Item required")
}) })
}) })
); );

View File

@@ -9,6 +9,7 @@ import { AzureKeyVaultSyncDestinationSchema } from "./azure-key-vault-sync-desti
import { BitbucketSyncDestinationSchema } from "./bitbucket-sync-destination-schema"; import { BitbucketSyncDestinationSchema } from "./bitbucket-sync-destination-schema";
import { CamundaSyncDestinationSchema } from "./camunda-sync-destination-schema"; import { CamundaSyncDestinationSchema } from "./camunda-sync-destination-schema";
import { ChecklySyncDestinationSchema } from "./checkly-sync-destination-schema"; import { ChecklySyncDestinationSchema } from "./checkly-sync-destination-schema";
import { ChefSyncDestinationSchema } from "./chef-sync-destination-schema";
import { CloudflarePagesSyncDestinationSchema } from "./cloudflare-pages-sync-destination-schema"; import { CloudflarePagesSyncDestinationSchema } from "./cloudflare-pages-sync-destination-schema";
import { CloudflareWorkersSyncDestinationSchema } from "./cloudflare-workers-sync-destination-schema"; import { CloudflareWorkersSyncDestinationSchema } from "./cloudflare-workers-sync-destination-schema";
import { DatabricksSyncDestinationSchema } from "./databricks-sync-destination-schema"; import { DatabricksSyncDestinationSchema } from "./databricks-sync-destination-schema";
@@ -32,7 +33,6 @@ import { TerraformCloudSyncDestinationSchema } from "./terraform-cloud-destinati
import { VercelSyncDestinationSchema } from "./vercel-sync-destination-schema"; import { VercelSyncDestinationSchema } from "./vercel-sync-destination-schema";
import { WindmillSyncDestinationSchema } from "./windmill-sync-destination-schema"; import { WindmillSyncDestinationSchema } from "./windmill-sync-destination-schema";
import { ZabbixSyncDestinationSchema } from "./zabbix-sync-destination-schema"; import { ZabbixSyncDestinationSchema } from "./zabbix-sync-destination-schema";
import { ChefSyncDestinationSchema } from "./chef-sync-destination-schema";
const SecretSyncUnionSchema = z.discriminatedUnion("destination", [ const SecretSyncUnionSchema = z.discriminatedUnion("destination", [
AwsParameterStoreSyncDestinationSchema, AwsParameterStoreSyncDestinationSchema,

View File

@@ -46,6 +46,7 @@ import {
} from "@app/hooks/api/appConnections/types"; } from "@app/hooks/api/appConnections/types";
import { BitbucketConnectionMethod } from "@app/hooks/api/appConnections/types/bitbucket-connection"; import { BitbucketConnectionMethod } from "@app/hooks/api/appConnections/types/bitbucket-connection";
import { ChecklyConnectionMethod } from "@app/hooks/api/appConnections/types/checkly-connection"; import { ChecklyConnectionMethod } from "@app/hooks/api/appConnections/types/checkly-connection";
import { ChefConnectionMethod } from "@app/hooks/api/appConnections/types/chef-connection";
import { DigitalOceanConnectionMethod } from "@app/hooks/api/appConnections/types/digital-ocean"; import { DigitalOceanConnectionMethod } from "@app/hooks/api/appConnections/types/digital-ocean";
import { HerokuConnectionMethod } from "@app/hooks/api/appConnections/types/heroku-connection"; import { HerokuConnectionMethod } from "@app/hooks/api/appConnections/types/heroku-connection";
import { LaravelForgeConnectionMethod } from "@app/hooks/api/appConnections/types/laravel-forge-connection"; import { LaravelForgeConnectionMethod } from "@app/hooks/api/appConnections/types/laravel-forge-connection";
@@ -55,7 +56,6 @@ import { OCIConnectionMethod } from "@app/hooks/api/appConnections/types/oci-con
import { RailwayConnectionMethod } from "@app/hooks/api/appConnections/types/railway-connection"; import { RailwayConnectionMethod } from "@app/hooks/api/appConnections/types/railway-connection";
import { RenderConnectionMethod } from "@app/hooks/api/appConnections/types/render-connection"; import { RenderConnectionMethod } from "@app/hooks/api/appConnections/types/render-connection";
import { SupabaseConnectionMethod } from "@app/hooks/api/appConnections/types/supabase-connection"; import { SupabaseConnectionMethod } from "@app/hooks/api/appConnections/types/supabase-connection";
import { ChefConnectionMethod } from "@app/hooks/api/appConnections/types/chef-connection";
export const APP_CONNECTION_MAP: Record< export const APP_CONNECTION_MAP: Record<
AppConnection, AppConnection,

View File

@@ -11,6 +11,7 @@ import { TAzureKeyVaultConnection } from "./azure-key-vault-connection";
import { TBitbucketConnection } from "./bitbucket-connection"; import { TBitbucketConnection } from "./bitbucket-connection";
import { TCamundaConnection } from "./camunda-connection"; import { TCamundaConnection } from "./camunda-connection";
import { TChecklyConnection } from "./checkly-connection"; import { TChecklyConnection } from "./checkly-connection";
import { TChefConnection } from "./chef-connection";
import { TCloudflareConnection } from "./cloudflare-connection"; import { TCloudflareConnection } from "./cloudflare-connection";
import { TDatabricksConnection } from "./databricks-connection"; import { TDatabricksConnection } from "./databricks-connection";
import { TDigitalOceanConnection } from "./digital-ocean"; import { TDigitalOceanConnection } from "./digital-ocean";
@@ -41,7 +42,6 @@ import { TTerraformCloudConnection } from "./terraform-cloud-connection";
import { TVercelConnection } from "./vercel-connection"; import { TVercelConnection } from "./vercel-connection";
import { TWindmillConnection } from "./windmill-connection"; import { TWindmillConnection } from "./windmill-connection";
import { TZabbixConnection } from "./zabbix-connection"; import { TZabbixConnection } from "./zabbix-connection";
import { TChefConnection } from "./chef-connection";
export * from "./1password-connection"; export * from "./1password-connection";
export * from "./auth0-connection"; export * from "./auth0-connection";
@@ -54,6 +54,7 @@ export * from "./azure-key-vault-connection";
export * from "./bitbucket-connection"; export * from "./bitbucket-connection";
export * from "./camunda-connection"; export * from "./camunda-connection";
export * from "./checkly-connection"; export * from "./checkly-connection";
export * from "./chef-connection";
export * from "./cloudflare-connection"; export * from "./cloudflare-connection";
export * from "./databricks-connection"; export * from "./databricks-connection";
export * from "./flyio-connection"; export * from "./flyio-connection";
@@ -83,7 +84,6 @@ export * from "./terraform-cloud-connection";
export * from "./vercel-connection"; export * from "./vercel-connection";
export * from "./windmill-connection"; export * from "./windmill-connection";
export * from "./zabbix-connection"; export * from "./zabbix-connection";
export * from "./chef-connection";
export type TAppConnection = export type TAppConnection =
| TAwsConnection | TAwsConnection

View File

@@ -10,6 +10,7 @@ import { TAzureKeyVaultSync } from "./azure-key-vault-sync";
import { TBitbucketSync } from "./bitbucket-sync"; import { TBitbucketSync } from "./bitbucket-sync";
import { TCamundaSync } from "./camunda-sync"; import { TCamundaSync } from "./camunda-sync";
import { TChecklySync } from "./checkly-sync"; import { TChecklySync } from "./checkly-sync";
import { TChefSync } from "./chef-sync";
import { TCloudflarePagesSync } from "./cloudflare-pages-sync"; import { TCloudflarePagesSync } from "./cloudflare-pages-sync";
import { TCloudflareWorkersSync } from "./cloudflare-workers-sync"; import { TCloudflareWorkersSync } from "./cloudflare-workers-sync";
import { TDatabricksSync } from "./databricks-sync"; import { TDatabricksSync } from "./databricks-sync";
@@ -33,7 +34,6 @@ import { TTerraformCloudSync } from "./terraform-cloud-sync";
import { TVercelSync } from "./vercel-sync"; import { TVercelSync } from "./vercel-sync";
import { TWindmillSync } from "./windmill-sync"; import { TWindmillSync } from "./windmill-sync";
import { TZabbixSync } from "./zabbix-sync"; import { TZabbixSync } from "./zabbix-sync";
import { TChefSync } from "./chef-sync";
export type TSecretSyncOption = { export type TSecretSyncOption = {
name: string; name: string;

View File

@@ -123,7 +123,7 @@ export const ChefConnectionForm = ({ appConnection, onSubmit }: Props) => {
<FormControl <FormControl
errorText={error?.message} errorText={error?.message}
isError={Boolean(error?.message)} isError={Boolean(error?.message)}
label="Organization Name" label="Organization Short Name"
> >
<Input <Input
className="border border-mineshaft-500 bg-mineshaft-900" className="border border-mineshaft-500 bg-mineshaft-900"

View File

@@ -9,6 +9,7 @@ import { AzureKeyVaultDestinationSyncCol } from "./AzureKeyVaultDestinationSyncC
import { BitbucketSyncDestinationCol } from "./BitbucketSyncDestinationCol"; import { BitbucketSyncDestinationCol } from "./BitbucketSyncDestinationCol";
import { CamundaSyncDestinationCol } from "./CamundaSyncDestinationCol"; import { CamundaSyncDestinationCol } from "./CamundaSyncDestinationCol";
import { ChecklySyncDestinationCol } from "./ChecklySyncDestinationCol"; import { ChecklySyncDestinationCol } from "./ChecklySyncDestinationCol";
import { ChefSyncDestinationCol } from "./ChefSyncDestinationCol";
import { CloudflarePagesSyncDestinationCol } from "./CloudflarePagesSyncDestinationCol"; import { CloudflarePagesSyncDestinationCol } from "./CloudflarePagesSyncDestinationCol";
import { CloudflareWorkersSyncDestinationCol } from "./CloudflareWorkersSyncDestinationCol"; import { CloudflareWorkersSyncDestinationCol } from "./CloudflareWorkersSyncDestinationCol";
import { DatabricksSyncDestinationCol } from "./DatabricksSyncDestinationCol"; import { DatabricksSyncDestinationCol } from "./DatabricksSyncDestinationCol";
@@ -32,7 +33,6 @@ import { TerraformCloudSyncDestinationCol } from "./TerraformCloudSyncDestinatio
import { VercelSyncDestinationCol } from "./VercelSyncDestinationCol"; import { VercelSyncDestinationCol } from "./VercelSyncDestinationCol";
import { WindmillSyncDestinationCol } from "./WindmillSyncDestinationCol"; import { WindmillSyncDestinationCol } from "./WindmillSyncDestinationCol";
import { ZabbixSyncDestinationCol } from "./ZabbixSyncDestinationCol"; import { ZabbixSyncDestinationCol } from "./ZabbixSyncDestinationCol";
import { ChefSyncDestinationCol } from "./ChefSyncDestinationCol";
type Props = { type Props = {
secretSync: TSecretSync; secretSync: TSecretSync;

View File

@@ -20,6 +20,7 @@ import { AzureKeyVaultSyncDestinationSection } from "./AzureKeyVaultSyncDestinat
import { BitbucketSyncDestinationSection } from "./BitbucketSyncDestinationSection"; import { BitbucketSyncDestinationSection } from "./BitbucketSyncDestinationSection";
import { CamundaSyncDestinationSection } from "./CamundaSyncDestinationSection"; import { CamundaSyncDestinationSection } from "./CamundaSyncDestinationSection";
import { ChecklySyncDestinationSection } from "./ChecklySyncDestinationSection"; import { ChecklySyncDestinationSection } from "./ChecklySyncDestinationSection";
import { ChefSyncDestinationSection } from "./ChefSyncDestinationSection";
import { CloudflarePagesSyncDestinationSection } from "./CloudflarePagesSyncDestinationSection"; import { CloudflarePagesSyncDestinationSection } from "./CloudflarePagesSyncDestinationSection";
import { CloudflareWorkersSyncDestinationSection } from "./CloudflareWorkersSyncDestinationSection"; import { CloudflareWorkersSyncDestinationSection } from "./CloudflareWorkersSyncDestinationSection";
import { DatabricksSyncDestinationSection } from "./DatabricksSyncDestinationSection"; import { DatabricksSyncDestinationSection } from "./DatabricksSyncDestinationSection";
@@ -43,7 +44,6 @@ import { TerraformCloudSyncDestinationSection } from "./TerraformCloudSyncDestin
import { VercelSyncDestinationSection } from "./VercelSyncDestinationSection"; import { VercelSyncDestinationSection } from "./VercelSyncDestinationSection";
import { WindmillSyncDestinationSection } from "./WindmillSyncDestinationSection"; import { WindmillSyncDestinationSection } from "./WindmillSyncDestinationSection";
import { ZabbixSyncDestinationSection } from "./ZabbixSyncDestinationSection"; import { ZabbixSyncDestinationSection } from "./ZabbixSyncDestinationSection";
import { ChefSyncDestinationSection } from "./ChefSyncDestinationSection";
type Props = { type Props = {
secretSync: TSecretSync; secretSync: TSecretSync;