Refactor vault functionality to dedicated package, fix import cycles with interface pattern, fix tests

This commit is contained in:
2025-05-29 12:48:36 -07:00
parent c33385be6c
commit ddb395901b
18 changed files with 1847 additions and 2128 deletions

View File

@@ -10,6 +10,7 @@ import (
"filippo.io/age"
"git.eeqj.de/sneak/secret/internal/secret"
"git.eeqj.de/sneak/secret/internal/vault"
"git.eeqj.de/sneak/secret/pkg/agehd"
"github.com/spf13/afero"
"github.com/spf13/cobra"
@@ -83,17 +84,17 @@ func (cli *CLIInstance) Init(cmd *cobra.Command) error {
return fmt.Errorf("failed to derive long-term key from mnemonic: %w", err)
}
// Create default vault
// Create the default vault
secret.Debug("Creating default vault")
vault, err := secret.CreateVault(cli.fs, cli.stateDir, "default")
vlt, err := vault.CreateVault(cli.fs, cli.stateDir, "default")
if err != nil {
secret.Debug("Failed to create default vault", "error", err)
return fmt.Errorf("failed to create default vault: %w", err)
}
// Set default vault as current
// Set as current vault
secret.Debug("Setting default vault as current")
if err := secret.SelectVault(cli.fs, cli.stateDir, "default"); err != nil {
if err := vault.SelectVault(cli.fs, cli.stateDir, "default"); err != nil {
secret.Debug("Failed to select default vault", "error", err)
return fmt.Errorf("failed to select default vault: %w", err)
}
@@ -108,7 +109,7 @@ func (cli *CLIInstance) Init(cmd *cobra.Command) error {
}
// Unlock the vault with the derived long-term key
vault.Unlock(ltIdentity)
vlt.Unlock(ltIdentity)
// Prompt for passphrase for unlock key
var passphraseStr string
@@ -127,7 +128,7 @@ func (cli *CLIInstance) Init(cmd *cobra.Command) error {
// Create passphrase-protected unlock key
secret.Debug("Creating passphrase-protected unlock key")
passphraseKey, err := vault.CreatePassphraseKey(passphraseStr)
passphraseKey, err := vlt.CreatePassphraseKey(passphraseStr)
if err != nil {
secret.Debug("Failed to create unlock key", "error", err)
return fmt.Errorf("failed to create unlock key: %w", err)
@@ -162,7 +163,7 @@ func (cli *CLIInstance) Init(cmd *cobra.Command) error {
if cmd != nil {
cmd.Printf("\nDefault vault created and configured\n")
cmd.Printf("Long-term public key: %s\n", ltPubKey)
cmd.Printf("Unlock key ID: %s\n", passphraseKey.GetMetadata().ID)
cmd.Printf("Unlock key ID: %s\n", passphraseKey.GetID())
cmd.Println("\nYour secret manager is ready to use!")
cmd.Println("Note: When using SB_SECRET_MNEMONIC environment variable,")
cmd.Println("unlock keys are not required for secret operations.")