Awesome
The Delinea DevOps Secrets Vault SDK for Go
A Golang API and examples for Delinea
DevOps Secrets Vault.
Configure
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"
}
Test
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.
Use
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"])
Contributors
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<!-- readme: collaborators,contributors -start -->
<table>
<tr>
<td align="center">
<a href="https://github.com/sheldonhull">
<img src="https://avatars.githubusercontent.com/u/3526320?v=4" width="100;" alt="sheldonhull"/>
<br />
<sub><b>Sheldonhull</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/amigus">
<img src="https://avatars.githubusercontent.com/u/119477?v=4" width="100;" alt="amigus"/>
<br />
<sub><b>Adam C. Migus</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/EndlessTrax">
<img src="https://avatars.githubusercontent.com/u/17141891?v=4" width="100;" alt="EndlessTrax"/>
<br />
<sub><b>Ricky White</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/maxsokolovsky">
<img src="https://avatars.githubusercontent.com/u/17733533?v=4" width="100;" alt="maxsokolovsky"/>
<br />
<sub><b>Max Sokolovsky</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/delineaKrehl">
<img src="https://avatars.githubusercontent.com/u/105234788?v=4" width="100;" alt="delineaKrehl"/>
<br />
<sub><b>Tim Krehl</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/andrii-zakurenyi">
<img src="https://avatars.githubusercontent.com/u/85106843?v=4" width="100;" alt="andrii-zakurenyi"/>
<br />
<sub><b>Andrii Zakurenyi</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/michaelsauter">
<img src="https://avatars.githubusercontent.com/u/215455?v=4" width="100;" alt="michaelsauter"/>
<br />
<sub><b>Michael Sauter</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/timothyfield">
<img src="https://avatars.githubusercontent.com/u/12048504?v=4" width="100;" alt="timothyfield"/>
<br />
<sub><b>Tim Field</b></sub>
</a>
</td></tr>
</table>
<!-- readme: collaborators,contributors -end -->
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->