- Update bucket structure to include unencrypted blob manifest files - Add <snapshot_id>.manifest.json.zst containing list of referenced blobs - This enables pruning operations without requiring decryption keys - Add snapshot management commands: list, rm, latest (stubs) - Add --prune flag to backup command for automatic cleanup - Update DESIGN.md to document manifest format and updated prune flow
30 lines
645 B
Go
30 lines
645 B
Go
package cli
|
|
|
|
import (
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
// NewRootCommand creates the root cobra command
|
|
func NewRootCommand() *cobra.Command {
|
|
cmd := &cobra.Command{
|
|
Use: "vaultik",
|
|
Short: "Secure incremental backup tool with asymmetric encryption",
|
|
Long: `vaultik is a secure incremental backup daemon that encrypts data using age
|
|
public keys and uploads to S3-compatible storage. No private keys are needed
|
|
on the source system.`,
|
|
SilenceUsage: true,
|
|
}
|
|
|
|
// Add subcommands
|
|
cmd.AddCommand(
|
|
NewBackupCommand(),
|
|
NewRestoreCommand(),
|
|
NewPruneCommand(),
|
|
NewVerifyCommand(),
|
|
NewFetchCommand(),
|
|
SnapshotCmd(),
|
|
)
|
|
|
|
return cmd
|
|
}
|