|
Add this skill
npx mdskills install sickn33/azure-keyvault-secrets-rustComprehensive SDK reference with clear examples, but lacks agent-specific workflow guidance
1---2name: azure-keyvault-secrets-rust3description: |4 Azure Key Vault Secrets SDK for Rust. Use for storing and retrieving secrets, passwords, and API keys.5 Triggers: "keyvault secrets rust", "SecretClient rust", "get secret rust", "set secret rust".6package: azure_security_keyvault_secrets7---89# Azure Key Vault Secrets SDK for Rust1011Client library for Azure Key Vault Secrets — secure storage for passwords, API keys, and other secrets.1213## Installation1415```sh16cargo add azure_security_keyvault_secrets azure_identity17```1819## Environment Variables2021```bash22AZURE_KEYVAULT_URL=https://<vault-name>.vault.azure.net/23```2425## Authentication2627```rust28use azure_identity::DeveloperToolsCredential;29use azure_security_keyvault_secrets::SecretClient;3031let credential = DeveloperToolsCredential::new(None)?;32let client = SecretClient::new(33 "https://<vault-name>.vault.azure.net/",34 credential.clone(),35 None,36)?;37```3839## Core Operations4041### Get Secret4243```rust44let secret = client45 .get_secret("secret-name", None)46 .await?47 .into_model()?;4849println!("Secret value: {:?}", secret.value);50```5152### Set Secret5354```rust55use azure_security_keyvault_secrets::models::SetSecretParameters;5657let params = SetSecretParameters {58 value: Some("secret-value".into()),59 ..Default::default()60};6162let secret = client63 .set_secret("secret-name", params.try_into()?, None)64 .await?65 .into_model()?;66```6768### Update Secret Properties6970```rust71use azure_security_keyvault_secrets::models::UpdateSecretPropertiesParameters;72use std::collections::HashMap;7374let params = UpdateSecretPropertiesParameters {75 content_type: Some("text/plain".into()),76 tags: Some(HashMap::from([("env".into(), "prod".into())])),77 ..Default::default()78};7980client81 .update_secret_properties("secret-name", params.try_into()?, None)82 .await?;83```8485### Delete Secret8687```rust88client.delete_secret("secret-name", None).await?;89```9091### List Secrets9293```rust94use azure_security_keyvault_secrets::ResourceExt;95use futures::TryStreamExt;9697let mut pager = client.list_secret_properties(None)?.into_stream();98while let Some(secret) = pager.try_next().await? {99 let name = secret.resource_id()?.name;100 println!("Secret: {}", name);101}102```103104### Get Specific Version105106```rust107use azure_security_keyvault_secrets::models::SecretClientGetSecretOptions;108109let options = SecretClientGetSecretOptions {110 secret_version: Some("version-id".into()),111 ..Default::default()112};113114let secret = client115 .get_secret("secret-name", Some(options))116 .await?117 .into_model()?;118```119120## Best Practices1211221. **Use Entra ID auth** — `DeveloperToolsCredential` for dev, `ManagedIdentityCredential` for production1232. **Use `into_model()?`** — to deserialize responses1243. **Use `ResourceExt` trait** — for extracting names from IDs1254. **Handle soft delete** — deleted secrets can be recovered within retention period1265. **Set content type** — helps identify secret format1276. **Use tags** — for organizing and filtering secrets1287. **Version secrets** — new values create new versions automatically129130## RBAC Permissions131132Assign these Key Vault roles:133- `Key Vault Secrets User` — get and list134- `Key Vault Secrets Officer` — full CRUD135136## Reference Links137138| Resource | Link |139|----------|------|140| API Reference | https://docs.rs/azure_security_keyvault_secrets |141| Source Code | https://github.com/Azure/azure-sdk-for-rust/tree/main/sdk/keyvault/azure_security_keyvault_secrets |142| crates.io | https://crates.io/crates/azure_security_keyvault_secrets |143
Full transparency — inspect the skill content before installing.