{"id":22868520,"url":"https://github.com/delineaxpm/dsv-sdk-go","last_synced_at":"2025-10-14T03:22:48.900Z","repository":{"id":45904931,"uuid":"495614686","full_name":"DelineaXPM/dsv-sdk-go","owner":"DelineaXPM","description":"A Golang SDK for Delinea DevOps Secrets Vault (DSV)","archived":false,"fork":false,"pushed_at":"2025-03-28T14:09:27.000Z","size":5095,"stargazers_count":7,"open_issues_count":1,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-28T15:24:20.949Z","etag":null,"topics":["delinea","dsv","golang","thycotic"],"latest_commit_sha":null,"homepage":"https://delinea.com/products/devops-secrets-management-vault","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DelineaXPM.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-24T00:22:37.000Z","updated_at":"2025-03-28T14:09:30.000Z","dependencies_parsed_at":"2023-12-22T05:23:51.122Z","dependency_job_id":"2c84c02b-12b1-4798-a651-171c766927e5","html_url":"https://github.com/DelineaXPM/dsv-sdk-go","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DelineaXPM%2Fdsv-sdk-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DelineaXPM%2Fdsv-sdk-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DelineaXPM%2Fdsv-sdk-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DelineaXPM%2Fdsv-sdk-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DelineaXPM","download_url":"https://codeload.github.com/DelineaXPM/dsv-sdk-go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252566759,"owners_count":21769100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["delinea","dsv","golang","thycotic"],"created_at":"2024-12-13T12:35:40.951Z","updated_at":"2025-10-14T03:22:43.857Z","avatar_url":"https://github.com/DelineaXPM.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Delinea DevOps Secrets Vault SDK for Go\n\n![Tests](https://github.com/DelineaXPM/dsv-sdk-go/workflows/Tests/badge.svg)\n\nA Golang API and examples for [Delinea](https://delinea.com/)\n[DevOps Secrets Vault](https://delinea.com/products/devops-secrets-management-vault).\n\n## Configure\n\nThe API requires a `Configuration` object containing a `ClientID`, `ClientSecret`\nand `Tenant`:\n\n```golang\ntype ClientCredential struct {\n    ClientID, ClientSecret string\n}\n\ntype Configuration struct {\n    Credentials              ClientCredential\n    Tenant, TLD, URLTemplate string\n}\n```\n\nThe unit tests populate `Configuration` from `test_config.json`:\n\n```golang\nconfig := new(Configuration)\n\nif cj, err := ioutil.ReadFile(\"../test_config.json\"); err == nil {\n    json.Unmarshal(cj, \u0026config)\n}\n\ntss := New(*config)\n```\n\nCreate `test_config.json`:\n\n```json\n{\n  \"credentials\": {\n    \"clientId\": \"\",\n    \"clientSecret\": \"\"\n  },\n  \"tenant\": \"mytenant\"\n}\n```\n\n## Test\n\n`vault/role_test.go` declares:\n\n```golang\nconst roleName = \"test-role\"\n```\n\nThe tests assume that `roleName` exists and has privilege to create, read,\nand delete a client, as well as create, read and delete secrets with a `test:` path prefix.\n\n## Use\n\nDefine a `Configuration` then use it to create an instance of `Vault`:\n\n```golang\ndsv := vault.New(vault.Configuration{\n    ClientID:     os.Getenv(\"DSV_CLIENT_ID\"),\n    ClientSecret: os.Getenv(\"DSV_CLIENT_SECRET\"),\n    Tenant:       os.Getenv(\"DSV_TENANT\"),\n})\nsecret, err := dsv.Secret(\"path:of:the:secret\")\n\nif err != nil {\n    log.Fatal(\"failure calling vault.Secret\", err)\n}\n\nfmt.Print(\"the SSH public key is\", secret.Data[\"public\"])\n```\n\n## Contributors\n\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\n\u003c!-- readme: collaborators,contributors -start --\u003e\n\u003ctable\u003e\n\t\u003ctbody\u003e\n\t\t\u003ctr\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/sheldonhull\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/3526320?v=4\" width=\"100;\" alt=\"sheldonhull\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003eSheldonhull\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/amigus\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/119477?v=4\" width=\"100;\" alt=\"amigus\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003eAdam C. Migus\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/pacificcode\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/918320?v=4\" width=\"100;\" alt=\"pacificcode\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003eBill Hamilton\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/maxsokolovsky\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/17733533?v=4\" width=\"100;\" alt=\"maxsokolovsky\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003eMax Sokolovsky\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/delineaKrehl\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/105234788?v=4\" width=\"100;\" alt=\"delineaKrehl\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003eTim Krehl\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/andrii-zakurenyi\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/85106843?v=4\" width=\"100;\" alt=\"andrii-zakurenyi\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003eAndrii Zakurenyi\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/michaelsauter\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/215455?v=4\" width=\"100;\" alt=\"michaelsauter\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003eMichael Sauter\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/EndlessTrax\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/17141891?v=4\" width=\"100;\" alt=\"EndlessTrax\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003eRicky White\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/timothyfield\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/12048504?v=4\" width=\"100;\" alt=\"timothyfield\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003eTim Field\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\u003ctbody\u003e\n\u003c/table\u003e\n\u003c!-- readme: collaborators,contributors -end --\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdelineaxpm%2Fdsv-sdk-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdelineaxpm%2Fdsv-sdk-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdelineaxpm%2Fdsv-sdk-go/lists"}