feat(get): secret entries will not output unless --secret is explicitly passed

This commit is contained in:
Lewis Wynne 2025-11-06 23:59:49 +00:00
parent 9036efb25b
commit f1a4f86675

View file

@ -22,6 +22,8 @@ THE SOFTWARE.
package cmd
import (
"fmt"
"github.com/dgraph-io/badger/v4"
"github.com/spf13/cobra"
)
@ -38,6 +40,7 @@ func get(cmd *cobra.Command, args []string) error {
store := &Store{}
var v []byte
var meta byte
trans := TransactionArgs{
key: args[0],
readonly: true,
@ -47,6 +50,7 @@ func get(cmd *cobra.Command, args []string) error {
if err != nil {
return err
}
meta = item.UserMeta()
v, err = item.ValueCopy(nil)
return err
},
@ -56,6 +60,14 @@ func get(cmd *cobra.Command, args []string) error {
return err
}
includeSecret, err := cmd.Flags().GetBool("secret")
if err != nil {
return err
}
if meta&metaSecret != 0 && !includeSecret {
return fmt.Errorf("%q is marked secret; re-run with --secret to display it", args[0])
}
binary, err := cmd.Flags().GetBool("include-binary")
if err != nil {
return err
@ -67,5 +79,6 @@ func get(cmd *cobra.Command, args []string) error {
func init() {
getCmd.Flags().BoolP("include-binary", "b", false, "include binary data in text output")
getCmd.Flags().Bool("secret", false, "display values marked as secret")
rootCmd.AddCommand(getCmd)
}