Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions sdk/security_keyvault/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ license = "MIT"
edition = "2021"

[dependencies]
async-trait = "0.1"
futures = "0.3"
base64 = "0.13"
reqwest = { version = "0.11", features = ["json"] }
time = { version = "0.3.10", features = ["serde"] }
time = { version = "0.3", features = ["serde"] }
Comment thread
bmc-msft marked this conversation as resolved.
Outdated
const_format = "0.2.13"
serde_json = "1.0"
url = "2.2"
Expand All @@ -31,4 +31,6 @@ async-trait = "0.1"
tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] }

[features]
default = ["azure_core/enable_reqwest"]
default = ["enable_reqwest"]
Comment thread
bmc-msft marked this conversation as resolved.
enable_reqwest = ["azure_core/enable_reqwest"]
enable_reqwest_rustls = ["azure_core/enable_reqwest_rustls"]
21 changes: 8 additions & 13 deletions sdk/security_keyvault/examples/backup_secret.rs
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
use azure_identity::{ClientSecretCredential, TokenCredentialOptions};
use azure_identity::DefaultAzureCredentialBuilder;
use azure_security_keyvault::SecretClient;
use std::env;
use std::sync::Arc;
use std::{env, sync::Arc};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client_id = env::var("CLIENT_ID").expect("Missing CLIENT_ID environment variable.");
let client_secret =
env::var("CLIENT_SECRET").expect("Missing CLIENT_SECRET environment variable.");
let tenant_id = env::var("TENANT_ID").expect("Missing TENANT_ID environment variable.");
let keyvault_url =
env::var("KEYVAULT_URL").expect("Missing KEYVAULT_URL environment variable.");
let secret_name = env::var("SECRET_NAME").expect("Missing SECRET_NAME environment variable.");

let creds = Arc::new(ClientSecretCredential::new(
tenant_id,
client_id,
client_secret,
TokenCredentialOptions::default(),
));
let creds = Arc::new(
DefaultAzureCredentialBuilder::new()
Comment thread
bmc-msft marked this conversation as resolved.
.exclude_managed_identity_credential()
.build(),
);

let client = SecretClient::new(&keyvault_url, creds)?;
let backup_response = client.backup(secret_name).into_future().await?;
dbg!(&backup_response);
Expand Down
21 changes: 8 additions & 13 deletions sdk/security_keyvault/examples/delete_secret.rs
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
use azure_identity::{ClientSecretCredential, TokenCredentialOptions};
use azure_identity::DefaultAzureCredentialBuilder;
use azure_security_keyvault::SecretClient;
use std::env;
use std::sync::Arc;
use std::{env, sync::Arc};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client_id = env::var("CLIENT_ID").expect("Missing CLIENT_ID environment variable.");
let client_secret =
env::var("CLIENT_SECRET").expect("Missing CLIENT_SECRET environment variable.");
let tenant_id = env::var("TENANT_ID").expect("Missing TENANT_ID environment variable.");
let keyvault_url =
env::var("KEYVAULT_URL").expect("Missing KEYVAULT_URL environment variable.");
let secret_name = env::var("SECRET_NAME").expect("Missing SECRET_NAME environment variable.");

let creds = Arc::new(ClientSecretCredential::new(
tenant_id,
client_id,
client_secret,
TokenCredentialOptions::default(),
));
let creds = Arc::new(
DefaultAzureCredentialBuilder::new()
.exclude_managed_identity_credential()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is always excluded in our examples, should we perhaps think about inverting this and requiring users who want it, to opt into it?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see #1016

.build(),
);

let client = SecretClient::new(&keyvault_url, creds)?;
client.delete(secret_name).into_future().await?;

Expand Down
27 changes: 15 additions & 12 deletions sdk/security_keyvault/examples/get_secret.rs
Original file line number Diff line number Diff line change
@@ -1,25 +1,28 @@
use azure_identity::{ClientSecretCredential, TokenCredentialOptions};
use azure_identity::DefaultAzureCredentialBuilder;
use azure_security_keyvault::SecretClient;
use std::env;
use futures::StreamExt;
use std::{env, sync::Arc};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client_id = env::var("CLIENT_ID").expect("Missing CLIENT_ID environment variable.");
let client_secret =
env::var("CLIENT_SECRET").expect("Missing CLIENT_SECRET environment variable.");
let tenant_id = env::var("TENANT_ID").expect("Missing TENANT_ID environment variable.");
let keyvault_url =
env::var("KEYVAULT_URL").expect("Missing KEYVAULT_URL environment variable.");
let secret_name = env::var("SECRET_NAME").expect("Missing SECRET_NAME environment variable.");

let creds = std::sync::Arc::new(ClientSecretCredential::new(
tenant_id,
client_id,
client_secret,
TokenCredentialOptions::default(),
));
let creds = Arc::new(
DefaultAzureCredentialBuilder::new()
.exclude_managed_identity_credential()
.build(),
);

let client = SecretClient::new(&keyvault_url, creds)?;

let mut versions = client.get_versions(&secret_name).into_stream();
while let Some(version) = versions.next().await {
let version = version?;
println!("{:?}", version);
Comment thread
bmc-msft marked this conversation as resolved.
Outdated
}

let secret = client.get(secret_name).into_future().await?;
dbg!(secret.value);

Expand Down
29 changes: 15 additions & 14 deletions sdk/security_keyvault/examples/get_secret_versions.rs
Original file line number Diff line number Diff line change
@@ -1,27 +1,28 @@
use azure_identity::{ClientSecretCredential, TokenCredentialOptions};
use azure_identity::DefaultAzureCredentialBuilder;
use azure_security_keyvault::SecretClient;
use std::env;
use std::sync::Arc;
use futures::StreamExt;
use std::{env, sync::Arc};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client_id = env::var("CLIENT_ID").expect("Missing CLIENT_ID environment variable.");
let client_secret =
env::var("CLIENT_SECRET").expect("Missing CLIENT_SECRET environment variable.");
let tenant_id = env::var("TENANT_ID").expect("Missing TENANT_ID environment variable.");
let keyvault_url =
env::var("KEYVAULT_URL").expect("Missing KEYVAULT_URL environment variable.");
let secret_name = env::var("SECRET_NAME").expect("Missing SECRET_NAME environment variable.");

let creds = Arc::new(ClientSecretCredential::new(
tenant_id,
client_id,
client_secret,
TokenCredentialOptions::default(),
));
let creds = Arc::new(
DefaultAzureCredentialBuilder::new()
.exclude_managed_identity_credential()
.build(),
);

let client = SecretClient::new(&keyvault_url, creds)?;

let secrets = client.get_versions(secret_name).into_future().await?;
let mut secrets = client.get_versions(secret_name).into_stream();
while let Some(secret) = secrets.next().await {
let secret = secret?;
println!("{:?}", secret);
Comment thread
bmc-msft marked this conversation as resolved.
Outdated
}

dbg!(&secrets);

Ok(())
Expand Down
31 changes: 15 additions & 16 deletions sdk/security_keyvault/examples/list_secrets.rs
Original file line number Diff line number Diff line change
@@ -1,27 +1,26 @@
use azure_identity::{ClientSecretCredential, TokenCredentialOptions};
use azure_identity::DefaultAzureCredentialBuilder;
use azure_security_keyvault::SecretClient;
use std::env;
use std::sync::Arc;
use futures::stream::StreamExt;
use std::{env, sync::Arc};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client_id = env::var("CLIENT_ID").expect("Missing CLIENT_ID environment variable.");
let client_secret =
env::var("CLIENT_SECRET").expect("Missing CLIENT_SECRET environment variable.");
let tenant_id = env::var("TENANT_ID").expect("Missing TENANT_ID environment variable.");
async fn main() -> azure_core::Result<()> {
let keyvault_url =
env::var("KEYVAULT_URL").expect("Missing KEYVAULT_URL environment variable.");

let creds = Arc::new(ClientSecretCredential::new(
tenant_id,
client_id,
client_secret,
TokenCredentialOptions::default(),
));
let creds = Arc::new(
DefaultAzureCredentialBuilder::new()
.exclude_managed_identity_credential()
.build(),
);

let client = SecretClient::new(&keyvault_url, creds)?;

let secrets = client.list_secrets().into_future().await?;
dbg!(&secrets);
let mut stream = client.list_secrets().into_stream();
while let Some(response) = stream.next().await {
let response = response?;
dbg!(&response);
Comment thread
bmc-msft marked this conversation as resolved.
Outdated
}

Ok(())
}
21 changes: 8 additions & 13 deletions sdk/security_keyvault/examples/pass_client.rs
Original file line number Diff line number Diff line change
@@ -1,23 +1,18 @@
use azure_identity::{ClientSecretCredential, TokenCredentialOptions};
use azure_identity::DefaultAzureCredentialBuilder;
use azure_security_keyvault::SecretClient;
use std::env;
use std::sync::Arc;
use std::{env, sync::Arc};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client_id = env::var("CLIENT_ID").expect("Missing CLIENT_ID environment variable.");
let client_secret =
env::var("CLIENT_SECRET").expect("Missing CLIENT_SECRET environment variable.");
let tenant_id = env::var("TENANT_ID").expect("Missing TENANT_ID environment variable.");
let keyvault_url =
env::var("KEYVAULT_URL").expect("Missing KEYVAULT_URL environment variable.");

let creds = Arc::new(ClientSecretCredential::new(
tenant_id,
client_id,
client_secret,
TokenCredentialOptions::default(),
));
let creds = Arc::new(
DefaultAzureCredentialBuilder::new()
.exclude_managed_identity_credential()
.build(),
);

let client = SecretClient::new(&keyvault_url, creds)?;

get_secret(&client).await?;
Expand Down
21 changes: 8 additions & 13 deletions sdk/security_keyvault/examples/restore_secret.rs
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
use azure_identity::{ClientSecretCredential, TokenCredentialOptions};
use azure_identity::DefaultAzureCredentialBuilder;
use azure_security_keyvault::SecretClient;
use std::env;
use std::sync::Arc;
use std::{env, sync::Arc};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client_id = env::var("CLIENT_ID").expect("Missing CLIENT_ID environment variable.");
let client_secret =
env::var("CLIENT_SECRET").expect("Missing CLIENT_SECRET environment variable.");
let tenant_id = env::var("TENANT_ID").expect("Missing TENANT_ID environment variable.");
let keyvault_url =
env::var("KEYVAULT_URL").expect("Missing KEYVAULT_URL environment variable.");
let backup_blob = env::var("BACKUP_BLOB").expect("Missing BACKUP_BLOB environment variable.");

let creds = Arc::new(ClientSecretCredential::new(
tenant_id,
client_id,
client_secret,
TokenCredentialOptions::default(),
));
let creds = Arc::new(
DefaultAzureCredentialBuilder::new()
.exclude_managed_identity_credential()
.build(),
);

let client = SecretClient::new(&keyvault_url, creds)?;

client.restore_secret(&backup_blob).into_future().await?;
Expand Down
21 changes: 8 additions & 13 deletions sdk/security_keyvault/examples/set_secret.rs
Original file line number Diff line number Diff line change
@@ -1,27 +1,22 @@
use azure_identity::{ClientSecretCredential, TokenCredentialOptions};
use azure_identity::DefaultAzureCredentialBuilder;
use azure_security_keyvault::SecretClient;
use std::env;
use std::sync::Arc;
use std::{env, sync::Arc};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client_id = env::var("CLIENT_ID").expect("Missing CLIENT_ID environment variable.");
let client_secret =
env::var("CLIENT_SECRET").expect("Missing CLIENT_SECRET environment variable.");
let tenant_id = env::var("TENANT_ID").expect("Missing TENANT_ID environment variable.");
let keyvault_url =
env::var("KEYVAULT_URL").expect("Missing KEYVAULT_URL environment variable.");
let secret_name = env::var("SECRET_NAME").expect("Missing SECRET_NAME environment variable.");
let secret_value =
env::var("SECRET_VALUE").expect("Missing SECRET_VALUE environment variable.");

let creds = ClientSecretCredential::new(
tenant_id,
client_id,
client_secret,
TokenCredentialOptions::default(),
let creds = Arc::new(
DefaultAzureCredentialBuilder::new()
.exclude_managed_identity_credential()
.build(),
);
let client = SecretClient::new(&keyvault_url, Arc::new(creds))?;

let client = SecretClient::new(&keyvault_url, creds)?;

client.set(&secret_name, secret_value).into_future().await?;

Expand Down
21 changes: 8 additions & 13 deletions sdk/security_keyvault/examples/update_secret.rs
Original file line number Diff line number Diff line change
@@ -1,29 +1,24 @@
use azure_core::date;
use azure_identity::{ClientSecretCredential, TokenCredentialOptions};
use azure_identity::DefaultAzureCredentialBuilder;
use azure_security_keyvault::SecretClient;
use std::env;
use std::sync::Arc;
use std::{env, sync::Arc};
use time::OffsetDateTime;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client_id = env::var("CLIENT_ID").expect("Missing CLIENT_ID environment variable.");
let client_secret =
env::var("CLIENT_SECRET").expect("Missing CLIENT_SECRET environment variable.");
let tenant_id = env::var("TENANT_ID").expect("Missing TENANT_ID environment variable.");
let keyvault_url =
env::var("KEYVAULT_URL").expect("Missing KEYVAULT_URL environment variable.");
let secret_name = env::var("SECRET_NAME").expect("Missing SECRET_NAME environment variable.");
let secret_version =
env::var("SECRET_VERSION").expect("Missing SECRET_VERSION environment variable.");

let creds = ClientSecretCredential::new(
tenant_id,
client_id,
client_secret,
TokenCredentialOptions::default(),
let creds = Arc::new(
DefaultAzureCredentialBuilder::new()
.exclude_managed_identity_credential()
.build(),
);
let client = SecretClient::new(&keyvault_url, Arc::new(creds))?;

let client = SecretClient::new(&keyvault_url, creds)?;

// Disable secret.
client
Expand Down
Loading