Skip to content

DelineaXPM/dsv-sdk-go

Repository files navigation

The Delinea DevOps Secrets Vault SDK for Go

Tests

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

sheldonhull
Sheldonhull
amigus
Adam C. Migus
EndlessTrax
Ricky White
maxsokolovsky
Max Sokolovsky
delineaKrehl
Tim Krehl
andrii-zakurenyi
Andrii Zakurenyi
michaelsauter
Michael Sauter
timothyfield
Tim Field