A Golang API and examples for Delinea DevOps Secrets Vault.
The API requires a Configuration
object containing a ClientID
, ClientSecret
and Tenant
:
type ClientCredential struct {
ClientID, ClientSecret string
}
type Configuration struct {
Credentials ClientCredential
Tenant, TLD, URLTemplate string
}
The unit tests populate Configuration
from test_config.json
:
config := new(Configuration)
if cj, err := ioutil.ReadFile("../test_config.json"); err == nil {
json.Unmarshal(cj, &config)
}
tss := New(*config)
Create test_config.json
:
{
"credentials": {
"clientId": "",
"clientSecret": ""
},
"tenant": "mytenant"
}
vault/role_test.go
declares:
const roleName = "test-role"
The tests assume that roleName
exists and has privilege to create, read,
and delete a client, as well as create, read and delete secrets with a test:
path prefix.
Define a Configuration
then use it to create an instance of Vault
:
dsv := vault.New(vault.Configuration{
ClientID: os.Getenv("DSV_CLIENT_ID"),
ClientSecret: os.Getenv("DSV_CLIENT_SECRET"),
Tenant: os.Getenv("DSV_TENANT"),
})
secret, err := dsv.Secret("path:of:the:secret")
if err != nil {
log.Fatal("failure calling vault.Secret", err)
}
fmt.Print("the SSH public key is", secret.Data["public"])
Sheldonhull |
Adam C. Migus |
Ricky White |
Max Sokolovsky |
Tim Krehl |
Andrii Zakurenyi |
Michael Sauter |
Tim Field |