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 |
Bill Hamilton |
Max Sokolovsky |
Tim Krehl |
Andrii Zakurenyi |
|
Michael Sauter |
Ricky White |
Tim Field |