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: about 1 month 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 (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-28T14:09:27.000Z (8 months ago)
- Last Synced: 2025-03-28T15:24:20.949Z (8 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