dsv-sdk-go

module
v0.0.0-...-faaa146 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 14, 2023 License: MIT

README

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": "93d866d4-635f-4d4e-9ce3-0ef7f879f319",
        "clientSecret": "xxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxx-xxxxx"
    },
    "tenant": "mytenant"
}

Test

vault/role_test.go declares:

const roleName = "test-role"

vault/secret_test.go declares:

const secretName = "/test/secret"

The tests assume that roleName can exists and has privilege to create, read, and delete a client, and read secretName.

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"])

Directories

Path Synopsis
example
aws
⚡ Core Mage Tasks.
⚡ Core Mage Tasks.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL