https://github.com/delineaxpm/dsv-sdk-go
A Golang SDK for Delinea DevOps Secrets Vault (DSV)
https://github.com/delineaxpm/dsv-sdk-go
delinea dsv golang thycotic
Last synced: 15 days ago
JSON representation
A Golang SDK for Delinea DevOps Secrets Vault (DSV)
- Host: GitHub
- URL: https://github.com/delineaxpm/dsv-sdk-go
- Owner: DelineaXPM
- License: mit
- Created: 2022-05-24T00:22:37.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-28T14:09:27.000Z (about 2 months ago)
- Last Synced: 2025-03-28T15:24:20.949Z (about 2 months ago)
- Topics: delinea, dsv, golang, thycotic
- Language: Shell
- Homepage: https://delinea.com/products/devops-secrets-management-vault
- Size: 4.86 MB
- Stars: 7
- Watchers: 3
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# The Delinea DevOps Secrets Vault SDK for Go

A Golang API and examples for [Delinea](https://delinea.com/)
[DevOps Secrets Vault](https://delinea.com/products/devops-secrets-management-vault).## Configure
The API requires a `Configuration` object containing a `ClientID`, `ClientSecret`
and `Tenant`:```golang
type ClientCredential struct {
ClientID, ClientSecret string
}type Configuration struct {
Credentials ClientCredential
Tenant, TLD, URLTemplate string
}
```The unit tests populate `Configuration` from `test_config.json`:
```golang
config := new(Configuration)if cj, err := ioutil.ReadFile("../test_config.json"); err == nil {
json.Unmarshal(cj, &config)
}tss := New(*config)
```Create `test_config.json`:
```json
{
"credentials": {
"clientId": "",
"clientSecret": ""
},
"tenant": "mytenant"
}
```## Test
`vault/role_test.go` declares:
```golang
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`:
```golang
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
![]()
Sheldonhull
![]()
Adam C. Migus
![]()
Bill Hamilton
![]()
Max Sokolovsky
![]()
Tim Krehl
![]()
Andrii Zakurenyi
![]()
Michael Sauter
![]()
Ricky White
![]()
Tim Field