From dcbbb67f030419c99bbac98dea0d09540e7e4851 Mon Sep 17 00:00:00 2001 From: Daniel Hougaard <62331820+DanielHougaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 17:30:19 -0700 Subject: [PATCH 1/2] Feat: Added secret interpolation to get secret by name command --- cli/packages/cmd/secrets.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/cli/packages/cmd/secrets.go b/cli/packages/cmd/secrets.go index 8c28b4cbcb..29f4ea4554 100644 --- a/cli/packages/cmd/secrets.go +++ b/cli/packages/cmd/secrets.go @@ -427,6 +427,12 @@ func getSecretsByNames(cmd *cobra.Command, args []string) { if err != nil { util.HandleError(err, "Unable to parse flag") } + + shouldExpand, err := cmd.Flags().GetBool("expand") + if err != nil { + util.HandleError(err, "Unable to parse flag") + } + tagSlugs, err := cmd.Flags().GetString("tags") if err != nil { util.HandleError(err, "Unable to parse flag") @@ -488,6 +494,18 @@ func getSecretsByNames(cmd *cobra.Command, args []string) { } } + if shouldExpand { + + authParams := models.ExpandSecretsAuthentication{} + if token != nil && token.Type == "service-token" { + authParams.InfisicalToken = token.Token + } else if token != nil && token.Type == "universal-auth-token" { + authParams.UniversalAuthAccessToken = token.Token + } + + requestedSecrets = util.ExpandSecrets(requestedSecrets, authParams, "") + } + if showOnlyValue && len(requestedSecrets) > 1 { util.PrintErrorMessageAndExit("--raw-value only works with one secret.") } @@ -750,6 +768,7 @@ func init() { secretsGetCmd.Flags().String("token", "", "Fetch secrets using the Infisical Token") secretsGetCmd.Flags().String("projectId", "", "manually set the projectId to fetch folders from for machine identity") secretsGetCmd.Flags().String("path", "/", "get secrets within a folder path") + secretsGetCmd.Flags().Bool("expand", true, "Parse shell parameter expansions in your secrets") secretsGetCmd.Flags().Bool("raw-value", false, "Returns only the value of secret, only works with one secret") secretsGetCmd.Flags().Bool("recursive", false, "Fetch secrets from all sub-folders") secretsCmd.AddCommand(secretsGetCmd) From 8f1e662688cde053d724c7569903c211e2856037 Mon Sep 17 00:00:00 2001 From: Daniel Hougaard <62331820+DanielHougaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 17:30:30 -0700 Subject: [PATCH 2/2] Feat: Added include imports to export command --- cli/packages/cmd/export.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/cli/packages/cmd/export.go b/cli/packages/cmd/export.go index 34deaff675..c6841a3f23 100644 --- a/cli/packages/cmd/export.go +++ b/cli/packages/cmd/export.go @@ -44,6 +44,11 @@ var exportCmd = &cobra.Command{ util.HandleError(err) } + includeImports, err := cmd.Flags().GetBool("include-imports") + if err != nil { + util.HandleError(err) + } + projectId, err := cmd.Flags().GetString("projectId") if err != nil { util.HandleError(err) @@ -75,10 +80,11 @@ var exportCmd = &cobra.Command{ } request := models.GetAllSecretsParameters{ - Environment: environmentName, - TagSlugs: tagSlugs, - WorkspaceId: projectId, - SecretsPath: secretsPath, + Environment: environmentName, + TagSlugs: tagSlugs, + WorkspaceId: projectId, + SecretsPath: secretsPath, + IncludeImport: includeImports, } if token != nil && token.Type == "service-token" { @@ -129,6 +135,7 @@ func init() { exportCmd.Flags().Bool("expand", true, "Parse shell parameter expansions in your secrets") exportCmd.Flags().StringP("format", "f", "dotenv", "Set the format of the output file (dotenv, json, csv)") exportCmd.Flags().Bool("secret-overriding", true, "Prioritizes personal secrets, if any, with the same name over shared secrets") + exportCmd.Flags().Bool("include-imports", true, "Imported linked secrets") exportCmd.Flags().String("token", "", "Fetch secrets using the Infisical Token") exportCmd.Flags().StringP("tags", "t", "", "filter secrets by tag slugs") exportCmd.Flags().String("projectId", "", "manually set the projectId to fetch secrets from")