61 lines
1.3 KiB
Go
61 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"log"
|
|
|
|
openbao "github.com/openbao/openbao/api/v2"
|
|
)
|
|
|
|
func main() {
|
|
// fmt.Println("hello there")
|
|
main2()
|
|
}
|
|
|
|
func main2() {
|
|
fmt.Println("Connecting...")
|
|
config := openbao.DefaultConfig()
|
|
config.Address = "http://localhost:8200"
|
|
|
|
client, err := openbao.NewClient(config)
|
|
if err != nil {
|
|
log.Fatalf("unable to initialize OpenBao client: %v", err)
|
|
}
|
|
|
|
// client.SetToken("s.javThgMSxCxyJbpS8sSNOPhO")
|
|
client.SetToken("dev-only-token")
|
|
|
|
// 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)
|
|
}
|