package main import ( "context" "fmt" "log" openbao "github.com/openbao/openbao/api/v2" ) func main() { main2() } func main2() { fmt.Println("Connecting...") config := openbao.DefaultConfig() config.Address = "http://openbao.localtest.me" client, err := openbao.NewClient(config) if err != nil { log.Fatalf("unable to initialize OpenBao client: %v", err) } client.SetToken("root") // Writing a secret secretData := map[string]interface{}{ "password": "OpenBao123", } _, err = client.KVv2("secret").Put(context.Background(), "my-secret-password", secretData) if err != nil { log.Fatalf("unable to write secret: %v", err) } fmt.Println("Secret written successfully.") // Retrieving a secret secret, err := client.KVv2("secret").Get(context.Background(), "my-secret-password") if err != nil { log.Fatalf("unable to read secret: %v", err) } value, ok := secret.Data["password"].(string) if !ok { log.Fatalf("value type assertion failed: %T %#v", secret.Data["password"], secret.Data["password"]) } if value != "OpenBao123" { log.Fatalf("unexpected password value %q retrieved from openbao", value) } fmt.Println("Access granted!") fmt.Println(value) }