Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 12 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 (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-06T15:41:09.000Z (19 days ago)
- Last Synced: 2024-12-06T16:40:16.940Z (19 days ago)
- Topics: delinea, dsv, golang, thycotic
- Language: Shell
- Homepage: https://delinea.com/products/devops-secrets-management-vault
- Size: 4 MB
- Stars: 7
- Watchers: 3
- Forks: 5
- Open Issues: 11
-
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
![Tests](https://github.com/DelineaXPM/dsv-sdk-go/workflows/Tests/badge.svg)
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
Max Sokolovsky
Tim Krehl
Bill Hamilton
Andrii Zakurenyi