This repository was archived by the owner on Nov 29, 2023. It is now read-only.

Repository files navigation

Vault.NET Build status

  • Vault API: v0.9.1
  • .NET Standard 1.3 (.NET: >= 4.6, .NET Core: >= 1.0.0)
  • .NET 4.5
  • Nuget: Vault NuGet

Vault.NET is an .NET API client for the interacting with Vault. This is a port of the go api client and provides generic methods for interacting with the paths in Vault.

Example

usingVault;varvaultClient=newVaultClient();vaultClient.Token="XXXXXX";

Generic Secret

vardata=newDictionary<string,string>{{"zip","zap"}};awaitvaultClient.Secret.Write("secret/foo",data);varsecret=awaitvaultClient.Secret.Read<Dictionary<string,string>>("secret/foo");Console.WriteLine(secret.Data["zip"]);// zap

PKI

usingVault.Models.Secret.Pki;vartestRole=newRolesRequest{AllowAnyDomain=true,EnforceHostnames=false,MaxTtl="1h"};awaitvaultClient.Secret.Write("pki/roles/test",testRole);varcertRequest=newIssueRequest{CommonName="Test Cert"};varcert=awaitvaultClient.Secret.Write<IssueRequest,IssueResponse>("pki/issue/test",certRequest);Console.WriteLine(secret.Data.Certificate);// -----BEGIN CERTIFICATE-----// MII...

Username/Password Authentication

usingVault.Models.Auth.UserPass;awaitvaultClient.Sys.EnableAuth("userpass","userpass","Userpass Mount");varusersRequest=newUsersRequest{Password="password",Policies=newList<string>{"default"},Ttl="1h",MaxTtl="2h"};awaitvaultClient.Auth.Write("userpass/users/username",usersRequest);varloginRequest=newLoginRequest{Password="password"};varloginResponse=awaitvaultClient.Auth.Write<LoginRequest,NoData>("userpass/login/username",loginRequest);// Set client token to authenticated tokenvaultClient.Token=loginResponse.Auth.ClientToken;// Proceed with authenticated requests

Models

Many request/response objects are provided in this package to support different backends. This is in no way an exhaustive list of all the objects. Since the models are the things that are going to most likely change between versions of vault, it may make sense to make your own to service your needs. These may get split into a seperate Nuget package in the future.

Testing

Since most of the operation of this library are just building requests and passing them to the vault API and the vault team provides an easy to use local development server, each test runs against its own vault server. This means that tests require the vault binary available to spin up the vault server instance. The test suite will first look for the environment variable VAULT_BIN and if not found will fall back to use the vault binary in the $PATH.

Downloads for vault can be found here.

Versioning

This library will follow the version of vault that it was developed against. Since most core operations of vault maintain backwards compatibility, this library can be used against many older and newer versions of vault. If features are added or bugs are fixed, a new point release will be created (ex. 0.6.4 -> 0.6.4.1). If there is some functionality that breaks on a newer version of vault, please submit a pull request.

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Nov 29, 2023. It is now read-only.

Repository files navigation

Vault.NET Build status

  • Vault API: v0.9.1
  • .NET Standard 1.3 (.NET: >= 4.6, .NET Core: >= 1.0.0)
  • .NET 4.5
  • Nuget: Vault NuGet

Vault.NET is an .NET API client for the interacting with Vault. This is a port of the go api client and provides generic methods for interacting with the paths in Vault.

Example

usingVault;varvaultClient=newVaultClient();vaultClient.Token="XXXXXX";

Generic Secret

vardata=newDictionary<string,string>{{"zip","zap"}};awaitvaultClient.Secret.Write("secret/foo",data);varsecret=awaitvaultClient.Secret.Read<Dictionary<string,string>>("secret/foo");Console.WriteLine(secret.Data["zip"]);// zap

PKI

usingVault.Models.Secret.Pki;vartestRole=newRolesRequest{AllowAnyDomain=true,EnforceHostnames=false,MaxTtl="1h"};awaitvaultClient.Secret.Write("pki/roles/test",testRole);varcertRequest=newIssueRequest{CommonName="Test Cert"};varcert=awaitvaultClient.Secret.Write<IssueRequest,IssueResponse>("pki/issue/test",certRequest);Console.WriteLine(secret.Data.Certificate);// -----BEGIN CERTIFICATE-----// MII...

Username/Password Authentication

usingVault.Models.Auth.UserPass;awaitvaultClient.Sys.EnableAuth("userpass","userpass","Userpass Mount");varusersRequest=newUsersRequest{Password="password",Policies=newList<string>{"default"},Ttl="1h",MaxTtl="2h"};awaitvaultClient.Auth.Write("userpass/users/username",usersRequest);varloginRequest=newLoginRequest{Password="password"};varloginResponse=awaitvaultClient.Auth.Write<LoginRequest,NoData>("userpass/login/username",loginRequest);// Set client token to authenticated tokenvaultClient.Token=loginResponse.Auth.ClientToken;// Proceed with authenticated requests

Models

Many request/response objects are provided in this package to support different backends. This is in no way an exhaustive list of all the objects. Since the models are the things that are going to most likely change between versions of vault, it may make sense to make your own to service your needs. These may get split into a seperate Nuget package in the future.

Testing

Since most of the operation of this library are just building requests and passing them to the vault API and the vault team provides an easy to use local development server, each test runs against its own vault server. This means that tests require the vault binary available to spin up the vault server instance. The test suite will first look for the environment variable VAULT_BIN and if not found will fall back to use the vault binary in the $PATH.

Downloads for vault can be found here.

Versioning

This library will follow the version of vault that it was developed against. Since most core operations of vault maintain backwards compatibility, this library can be used against many older and newer versions of vault. If features are added or bugs are fixed, a new point release will be created (ex. 0.6.4 -> 0.6.4.1). If there is some functionality that breaks on a newer version of vault, please submit a pull request.

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Nov 29, 2023. It is now read-only.

Repository files navigation

Vault.NET Build status

  • Vault API: v0.9.1
  • .NET Standard 1.3 (.NET: >= 4.6, .NET Core: >= 1.0.0)
  • .NET 4.5
  • Nuget: Vault NuGet

Vault.NET is an .NET API client for the interacting with Vault. This is a port of the go api client and provides generic methods for interacting with the paths in Vault.

Example

usingVault;varvaultClient=newVaultClient();vaultClient.Token="XXXXXX";

Generic Secret

vardata=newDictionary<string,string>{{"zip","zap"}};awaitvaultClient.Secret.Write("secret/foo",data);varsecret=awaitvaultClient.Secret.Read<Dictionary<string,string>>("secret/foo");Console.WriteLine(secret.Data["zip"]);// zap

PKI

usingVault.Models.Secret.Pki;vartestRole=newRolesRequest{AllowAnyDomain=true,EnforceHostnames=false,MaxTtl="1h"};awaitvaultClient.Secret.Write("pki/roles/test",testRole);varcertRequest=newIssueRequest{CommonName="Test Cert"};varcert=awaitvaultClient.Secret.Write<IssueRequest,IssueResponse>("pki/issue/test",certRequest);Console.WriteLine(secret.Data.Certificate);// -----BEGIN CERTIFICATE-----// MII...

Username/Password Authentication

usingVault.Models.Auth.UserPass;awaitvaultClient.Sys.EnableAuth("userpass","userpass","Userpass Mount");varusersRequest=newUsersRequest{Password="password",Policies=newList<string>{"default"},Ttl="1h",MaxTtl="2h"};awaitvaultClient.Auth.Write("userpass/users/username",usersRequest);varloginRequest=newLoginRequest{Password="password"};varloginResponse=awaitvaultClient.Auth.Write<LoginRequest,NoData>("userpass/login/username",loginRequest);// Set client token to authenticated tokenvaultClient.Token=loginResponse.Auth.ClientToken;// Proceed with authenticated requests

Models

Many request/response objects are provided in this package to support different backends. This is in no way an exhaustive list of all the objects. Since the models are the things that are going to most likely change between versions of vault, it may make sense to make your own to service your needs. These may get split into a seperate Nuget package in the future.

Testing

Since most of the operation of this library are just building requests and passing them to the vault API and the vault team provides an easy to use local development server, each test runs against its own vault server. This means that tests require the vault binary available to spin up the vault server instance. The test suite will first look for the environment variable VAULT_BIN and if not found will fall back to use the vault binary in the $PATH.

Downloads for vault can be found here.

Versioning

This library will follow the version of vault that it was developed against. Since most core operations of vault maintain backwards compatibility, this library can be used against many older and newer versions of vault. If features are added or bugs are fixed, a new point release will be created (ex. 0.6.4 -> 0.6.4.1). If there is some functionality that breaks on a newer version of vault, please submit a pull request.

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Nov 29, 2023. It is now read-only.

Repository files navigation

Vault.NET Build status

  • Vault API: v0.9.1
  • .NET Standard 1.3 (.NET: >= 4.6, .NET Core: >= 1.0.0)
  • .NET 4.5
  • Nuget: Vault NuGet

Vault.NET is an .NET API client for the interacting with Vault. This is a port of the go api client and provides generic methods for interacting with the paths in Vault.

Example

usingVault;varvaultClient=newVaultClient();vaultClient.Token="XXXXXX";

Generic Secret

vardata=newDictionary<string,string>{{"zip","zap"}};awaitvaultClient.Secret.Write("secret/foo",data);varsecret=awaitvaultClient.Secret.Read<Dictionary<string,string>>("secret/foo");Console.WriteLine(secret.Data["zip"]);// zap

PKI

usingVault.Models.Secret.Pki;vartestRole=newRolesRequest{AllowAnyDomain=true,EnforceHostnames=false,MaxTtl="1h"};awaitvaultClient.Secret.Write("pki/roles/test",testRole);varcertRequest=newIssueRequest{CommonName="Test Cert"};varcert=awaitvaultClient.Secret.Write<IssueRequest,IssueResponse>("pki/issue/test",certRequest);Console.WriteLine(secret.Data.Certificate);// -----BEGIN CERTIFICATE-----// MII...

Username/Password Authentication

usingVault.Models.Auth.UserPass;awaitvaultClient.Sys.EnableAuth("userpass","userpass","Userpass Mount");varusersRequest=newUsersRequest{Password="password",Policies=newList<string>{"default"},Ttl="1h",MaxTtl="2h"};awaitvaultClient.Auth.Write("userpass/users/username",usersRequest);varloginRequest=newLoginRequest{Password="password"};varloginResponse=awaitvaultClient.Auth.Write<LoginRequest,NoData>("userpass/login/username",loginRequest);// Set client token to authenticated tokenvaultClient.Token=loginResponse.Auth.ClientToken;// Proceed with authenticated requests

Models

Many request/response objects are provided in this package to support different backends. This is in no way an exhaustive list of all the objects. Since the models are the things that are going to most likely change between versions of vault, it may make sense to make your own to service your needs. These may get split into a seperate Nuget package in the future.

Testing

Since most of the operation of this library are just building requests and passing them to the vault API and the vault team provides an easy to use local development server, each test runs against its own vault server. This means that tests require the vault binary available to spin up the vault server instance. The test suite will first look for the environment variable VAULT_BIN and if not found will fall back to use the vault binary in the $PATH.

Downloads for vault can be found here.

Versioning

This library will follow the version of vault that it was developed against. Since most core operations of vault maintain backwards compatibility, this library can be used against many older and newer versions of vault. If features are added or bugs are fixed, a new point release will be created (ex. 0.6.4 -> 0.6.4.1). If there is some functionality that breaks on a newer version of vault, please submit a pull request.

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Nov 29, 2023. It is now read-only.

Repository files navigation

Vault.NET Build status

  • Vault API: v0.9.1
  • .NET Standard 1.3 (.NET: >= 4.6, .NET Core: >= 1.0.0)
  • .NET 4.5
  • Nuget: Vault NuGet

Vault.NET is an .NET API client for the interacting with Vault. This is a port of the go api client and provides generic methods for interacting with the paths in Vault.

Example

usingVault;varvaultClient=newVaultClient();vaultClient.Token="XXXXXX";

Generic Secret

vardata=newDictionary<string,string>{{"zip","zap"}};awaitvaultClient.Secret.Write("secret/foo",data);varsecret=awaitvaultClient.Secret.Read<Dictionary<string,string>>("secret/foo");Console.WriteLine(secret.Data["zip"]);// zap

PKI

usingVault.Models.Secret.Pki;vartestRole=newRolesRequest{AllowAnyDomain=true,EnforceHostnames=false,MaxTtl="1h"};awaitvaultClient.Secret.Write("pki/roles/test",testRole);varcertRequest=newIssueRequest{CommonName="Test Cert"};varcert=awaitvaultClient.Secret.Write<IssueRequest,IssueResponse>("pki/issue/test",certRequest);Console.WriteLine(secret.Data.Certificate);// -----BEGIN CERTIFICATE-----// MII...

Username/Password Authentication

usingVault.Models.Auth.UserPass;awaitvaultClient.Sys.EnableAuth("userpass","userpass","Userpass Mount");varusersRequest=newUsersRequest{Password="password",Policies=newList<string>{"default"},Ttl="1h",MaxTtl="2h"};awaitvaultClient.Auth.Write("userpass/users/username",usersRequest);varloginRequest=newLoginRequest{Password="password"};varloginResponse=awaitvaultClient.Auth.Write<LoginRequest,NoData>("userpass/login/username",loginRequest);// Set client token to authenticated tokenvaultClient.Token=loginResponse.Auth.ClientToken;// Proceed with authenticated requests

Models

Many request/response objects are provided in this package to support different backends. This is in no way an exhaustive list of all the objects. Since the models are the things that are going to most likely change between versions of vault, it may make sense to make your own to service your needs. These may get split into a seperate Nuget package in the future.

Testing

Since most of the operation of this library are just building requests and passing them to the vault API and the vault team provides an easy to use local development server, each test runs against its own vault server. This means that tests require the vault binary available to spin up the vault server instance. The test suite will first look for the environment variable VAULT_BIN and if not found will fall back to use the vault binary in the $PATH.

Downloads for vault can be found here.

Versioning

This library will follow the version of vault that it was developed against. Since most core operations of vault maintain backwards compatibility, this library can be used against many older and newer versions of vault. If features are added or bugs are fixed, a new point release will be created (ex. 0.6.4 -> 0.6.4.1). If there is some functionality that breaks on a newer version of vault, please submit a pull request.

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Nov 29, 2023. It is now read-only.

Repository files navigation

Vault.NET Build status

  • Vault API: v0.9.1
  • .NET Standard 1.3 (.NET: >= 4.6, .NET Core: >= 1.0.0)
  • .NET 4.5
  • Nuget: Vault NuGet

Vault.NET is an .NET API client for the interacting with Vault. This is a port of the go api client and provides generic methods for interacting with the paths in Vault.

Example

usingVault;varvaultClient=newVaultClient();vaultClient.Token="XXXXXX";

Generic Secret

vardata=newDictionary<string,string>{{"zip","zap"}};awaitvaultClient.Secret.Write("secret/foo",data);varsecret=awaitvaultClient.Secret.Read<Dictionary<string,string>>("secret/foo");Console.WriteLine(secret.Data["zip"]);// zap

PKI

usingVault.Models.Secret.Pki;vartestRole=newRolesRequest{AllowAnyDomain=true,EnforceHostnames=false,MaxTtl="1h"};awaitvaultClient.Secret.Write("pki/roles/test",testRole);varcertRequest=newIssueRequest{CommonName="Test Cert"};varcert=awaitvaultClient.Secret.Write<IssueRequest,IssueResponse>("pki/issue/test",certRequest);Console.WriteLine(secret.Data.Certificate);// -----BEGIN CERTIFICATE-----// MII...

Username/Password Authentication

usingVault.Models.Auth.UserPass;awaitvaultClient.Sys.EnableAuth("userpass","userpass","Userpass Mount");varusersRequest=newUsersRequest{Password="password",Policies=newList<string>{"default"},Ttl="1h",MaxTtl="2h"};awaitvaultClient.Auth.Write("userpass/users/username",usersRequest);varloginRequest=newLoginRequest{Password="password"};varloginResponse=awaitvaultClient.Auth.Write<LoginRequest,NoData>("userpass/login/username",loginRequest);// Set client token to authenticated tokenvaultClient.Token=loginResponse.Auth.ClientToken;// Proceed with authenticated requests

Models

Many request/response objects are provided in this package to support different backends. This is in no way an exhaustive list of all the objects. Since the models are the things that are going to most likely change between versions of vault, it may make sense to make your own to service your needs. These may get split into a seperate Nuget package in the future.

Testing

Since most of the operation of this library are just building requests and passing them to the vault API and the vault team provides an easy to use local development server, each test runs against its own vault server. This means that tests require the vault binary available to spin up the vault server instance. The test suite will first look for the environment variable VAULT_BIN and if not found will fall back to use the vault binary in the $PATH.

Downloads for vault can be found here.

Versioning

This library will follow the version of vault that it was developed against. Since most core operations of vault maintain backwards compatibility, this library can be used against many older and newer versions of vault. If features are added or bugs are fixed, a new point release will be created (ex. 0.6.4 -> 0.6.4.1). If there is some functionality that breaks on a newer version of vault, please submit a pull request.

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Nov 29, 2023. It is now read-only.

Repository files navigation

Vault.NET Build status

  • Vault API: v0.9.1
  • .NET Standard 1.3 (.NET: >= 4.6, .NET Core: >= 1.0.0)
  • .NET 4.5
  • Nuget: Vault NuGet

Vault.NET is an .NET API client for the interacting with Vault. This is a port of the go api client and provides generic methods for interacting with the paths in Vault.

Example

usingVault;varvaultClient=newVaultClient();vaultClient.Token="XXXXXX";

Generic Secret

vardata=newDictionary<string,string>{{"zip","zap"}};awaitvaultClient.Secret.Write("secret/foo",data);varsecret=awaitvaultClient.Secret.Read<Dictionary<string,string>>("secret/foo");Console.WriteLine(secret.Data["zip"]);// zap

PKI

usingVault.Models.Secret.Pki;vartestRole=newRolesRequest{AllowAnyDomain=true,EnforceHostnames=false,MaxTtl="1h"};awaitvaultClient.Secret.Write("pki/roles/test",testRole);varcertRequest=newIssueRequest{CommonName="Test Cert"};varcert=awaitvaultClient.Secret.Write<IssueRequest,IssueResponse>("pki/issue/test",certRequest);Console.WriteLine(secret.Data.Certificate);// -----BEGIN CERTIFICATE-----// MII...

Username/Password Authentication

usingVault.Models.Auth.UserPass;awaitvaultClient.Sys.EnableAuth("userpass","userpass","Userpass Mount");varusersRequest=newUsersRequest{Password="password",Policies=newList<string>{"default"},Ttl="1h",MaxTtl="2h"};awaitvaultClient.Auth.Write("userpass/users/username",usersRequest);varloginRequest=newLoginRequest{Password="password"};varloginResponse=awaitvaultClient.Auth.Write<LoginRequest,NoData>("userpass/login/username",loginRequest);// Set client token to authenticated tokenvaultClient.Token=loginResponse.Auth.ClientToken;// Proceed with authenticated requests

Models

Many request/response objects are provided in this package to support different backends. This is in no way an exhaustive list of all the objects. Since the models are the things that are going to most likely change between versions of vault, it may make sense to make your own to service your needs. These may get split into a seperate Nuget package in the future.

Testing

Since most of the operation of this library are just building requests and passing them to the vault API and the vault team provides an easy to use local development server, each test runs against its own vault server. This means that tests require the vault binary available to spin up the vault server instance. The test suite will first look for the environment variable VAULT_BIN and if not found will fall back to use the vault binary in the $PATH.

Downloads for vault can be found here.

Versioning

This library will follow the version of vault that it was developed against. Since most core operations of vault maintain backwards compatibility, this library can be used against many older and newer versions of vault. If features are added or bugs are fixed, a new point release will be created (ex. 0.6.4 -> 0.6.4.1). If there is some functionality that breaks on a newer version of vault, please submit a pull request.

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Nov 29, 2023. It is now read-only.

Repository files navigation

Vault.NET Build status

  • Vault API: v0.9.1
  • .NET Standard 1.3 (.NET: >= 4.6, .NET Core: >= 1.0.0)
  • .NET 4.5
  • Nuget: Vault NuGet

Vault.NET is an .NET API client for the interacting with Vault. This is a port of the go api client and provides generic methods for interacting with the paths in Vault.

Example

usingVault;varvaultClient=newVaultClient();vaultClient.Token="XXXXXX";

Generic Secret

vardata=newDictionary<string,string>{{"zip","zap"}};awaitvaultClient.Secret.Write("secret/foo",data);varsecret=awaitvaultClient.Secret.Read<Dictionary<string,string>>("secret/foo");Console.WriteLine(secret.Data["zip"]);// zap

PKI

usingVault.Models.Secret.Pki;vartestRole=newRolesRequest{AllowAnyDomain=true,EnforceHostnames=false,MaxTtl="1h"};awaitvaultClient.Secret.Write("pki/roles/test",testRole);varcertRequest=newIssueRequest{CommonName="Test Cert"};varcert=awaitvaultClient.Secret.Write<IssueRequest,IssueResponse>("pki/issue/test",certRequest);Console.WriteLine(secret.Data.Certificate);// -----BEGIN CERTIFICATE-----// MII...

Username/Password Authentication

usingVault.Models.Auth.UserPass;awaitvaultClient.Sys.EnableAuth("userpass","userpass","Userpass Mount");varusersRequest=newUsersRequest{Password="password",Policies=newList<string>{"default"},Ttl="1h",MaxTtl="2h"};awaitvaultClient.Auth.Write("userpass/users/username",usersRequest);varloginRequest=newLoginRequest{Password="password"};varloginResponse=awaitvaultClient.Auth.Write<LoginRequest,NoData>("userpass/login/username",loginRequest);// Set client token to authenticated tokenvaultClient.Token=loginResponse.Auth.ClientToken;// Proceed with authenticated requests

Models

Many request/response objects are provided in this package to support different backends. This is in no way an exhaustive list of all the objects. Since the models are the things that are going to most likely change between versions of vault, it may make sense to make your own to service your needs. These may get split into a seperate Nuget package in the future.

Testing

Since most of the operation of this library are just building requests and passing them to the vault API and the vault team provides an easy to use local development server, each test runs against its own vault server. This means that tests require the vault binary available to spin up the vault server instance. The test suite will first look for the environment variable VAULT_BIN and if not found will fall back to use the vault binary in the $PATH.

Downloads for vault can be found here.

Versioning

This library will follow the version of vault that it was developed against. Since most core operations of vault maintain backwards compatibility, this library can be used against many older and newer versions of vault. If features are added or bugs are fixed, a new point release will be created (ex. 0.6.4 -> 0.6.4.1). If there is some functionality that breaks on a newer version of vault, please submit a pull request.

Releases

Packages

Contributors

Languages