From 7f87e5e2bca6d0f6b52e8a5b416fbccfe10d86dc Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 7 Nov 2023 23:23:38 +0100 Subject: [PATCH 001/196] feat: inherit metadata for clap from project --- src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 042a0f2..6fbda49 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,7 +6,7 @@ use std::fs::File; use std::io::Write; #[derive(Parser)] -#[clap(version = "0.1.0", author = "Bart van der Braak ")] +#[clap(author, version, about, long_about = None)] struct Opts { #[clap( short, From 8b033eea085a5f5ec53accb59ce2592af0d37ea5 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 7 Nov 2023 23:23:58 +0100 Subject: [PATCH 002/196] docs: introduce author entry --- Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.toml b/Cargo.toml index fe44a93..138d70f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,7 @@ name = "keyweave" version = "0.1.0" edition = "2021" +authors = ["Bart van der Braak "] [dependencies] azure_identity = "0.17.0" From 609e4fe6da64f22399d8760f1d17700ae85fc7d3 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 7 Nov 2023 23:24:44 +0100 Subject: [PATCH 003/196] feat: pre-check for git tag and project version --- .github/workflows/release.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f72540d..8e6a152 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,9 +5,22 @@ on: push: tags: - 'v[0-9]+.[0-9]+.[0-9]+' - + jobs: + pre-check: + name: Pre-check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - run: | + if [[ "$(git describe --tags --abbrev=0)" != "v$(grep -m1 -F 'version =' Cargo.toml | cut -d\" -f2)" ]]; then + echo "Error: The git tag does not match the Cargo.toml version." + exit 1 + fi + echo "Success: The git tag matches the Cargo.toml version." + build: + needs: pre-check strategy: matrix: name: From fd1872ca1ccd79d039592cccdf6c0abc72b44a56 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 7 Nov 2023 23:25:30 +0100 Subject: [PATCH 004/196] feat: workflow with several checks --- .github/workflows/checks.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/checks.yml diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml new file mode 100644 index 0000000..9984c66 --- /dev/null +++ b/.github/workflows/checks.yml @@ -0,0 +1,31 @@ +name: Checks + +on: + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + + - name: Install cargo-audit + run: cargo install cargo-audit + + - name: Format code with rustfmt + run: cargo fmt --all -- --check + + - name: Lint code with clippy + run: cargo clippy --all -- --deny warnings + + - name: Check for known vulnerabilities with cargo-audit + run: cargo audit + + - name: Build project + run: cargo build --all --release + + - name: Run tests + run: cargo test --all From 22487a334baaf44b23a76f143f6256b6414d01f2 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 7 Nov 2023 23:28:21 +0100 Subject: [PATCH 005/196] feat: formatting using fmt --- src/main.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 6fbda49..79dea17 100644 --- a/src/main.rs +++ b/src/main.rs @@ -39,10 +39,7 @@ async fn fetch_secrets_from_key_vault( filter: Option<&str>, ) -> Result, Box> { let credential = DefaultAzureCredential::default(); - let client = KeyvaultClient::new( - &vault_url, - std::sync::Arc::new(credential), - )?.secret_client(); + let client = KeyvaultClient::new(&vault_url, std::sync::Arc::new(credential))?.secret_client(); let mut secret_values = Vec::new(); let mut secret_pages = client.list_secrets().into_stream(); From 13675f7ff8d79b20e340df7000c7b23c51d20edb Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 7 Nov 2023 23:53:00 +0100 Subject: [PATCH 006/196] fix: remove needless initialization reference --- src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 79dea17..10a8149 100644 --- a/src/main.rs +++ b/src/main.rs @@ -39,7 +39,7 @@ async fn fetch_secrets_from_key_vault( filter: Option<&str>, ) -> Result, Box> { let credential = DefaultAzureCredential::default(); - let client = KeyvaultClient::new(&vault_url, std::sync::Arc::new(credential))?.secret_client(); + let client = KeyvaultClient::new(vault_url, std::sync::Arc::new(credential))?.secret_client(); let mut secret_values = Vec::new(); let mut secret_pages = client.list_secrets().into_stream(); From 32153efb4cae509a2b15b0b5402aeef69d3a6b9a Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 8 Nov 2023 00:42:13 +0100 Subject: [PATCH 007/196] feat: use separate jobs for checks --- .github/workflows/checks.yml | 48 ++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 9984c66..8efb941 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -6,26 +6,42 @@ on: - main jobs: + fmt: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - id: fmt + name: Format code with rustfmt + run: | + cargo fmt --all -- --check + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Lint code with clippy + run: cargo clippy --all -- --deny warnings + audit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Install cargo-audit + run: cargo install cargo-audit + - name: Check for known vulnerabilities with cargo-audit + run: cargo audit + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Run tests + run: cargo test --all build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - - - name: Install cargo-audit - run: cargo install cargo-audit - - - name: Format code with rustfmt - run: cargo fmt --all -- --check - - - name: Lint code with clippy - run: cargo clippy --all -- --deny warnings - - - name: Check for known vulnerabilities with cargo-audit - run: cargo audit - - name: Build project run: cargo build --all --release - - - name: Run tests - run: cargo test --all From dc1d8a7a1f3262c72e52778afc0474cbf7c79566 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 8 Nov 2023 00:58:17 +0100 Subject: [PATCH 008/196] docs: align logo on the right --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7aa1dad..a0a6308 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,7 @@ -

- Cluster -

- # Keyweave +Cluster + Keyweave is an open-source tool designed to seamlessly fetch secrets from Azure Key Vault and weave them into a convenient `.env` file. Developed in Rust, Keyweave is efficient and easy to use, making it an ideal choice for managing your application's secrets. ## Features From cd7f7f59abdb6af9ef2b96f90a382a2910de222e Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 8 Nov 2023 01:11:38 +0100 Subject: [PATCH 009/196] feat: multi-threading secret lookups --- src/main.rs | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 10a8149..1a211d4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,6 +4,7 @@ use clap::Parser; use futures::stream::StreamExt; use std::fs::File; use std::io::Write; +use tokio::sync::mpsc; #[derive(Parser)] #[clap(author, version, about, long_about = None)] @@ -46,15 +47,42 @@ async fn fetch_secrets_from_key_vault( while let Some(page) = secret_pages.next().await { let page = page?; + let (tx, mut rx) = mpsc::channel(32); // Channel for concurrent secret retrieval + for secret in &page.value { if let Some(filter) = filter { if !secret.id.contains(filter) { continue; } } - let secret_name = secret.id.split('/').last().unwrap_or_default(); - let secret_bundle = client.get(secret_name).await?; - secret_values.push((secret.id.clone(), secret_bundle.value)); + let tx = tx.clone(); + + // Clone necessary data before moving into the spawned task + let secret_id = secret.id.clone(); + let client_clone = client.clone(); + + tokio::spawn(async move { + let secret_name = secret_id.split('/').last().unwrap_or_default(); + let secret_bundle = client_clone.get(secret_name).await; + + // Handle the result and send it through the channel + match secret_bundle { + Ok(bundle) => { + tx.send((secret_id, bundle.value)).await.expect("Send error"); + } + Err(err) => { + eprintln!("Error fetching secret: {}", err); + // You can decide to continue or not in case of an error. + } + } + }); + } + + drop(tx); // Drop the sender to signal the end of sending tasks + + while let Some(result) = rx.recv().await { + let (key, value) = result; + secret_values.push((key, value)); } } @@ -88,4 +116,4 @@ async fn main() -> Result<(), Box> { println!("Process completed successfully!"); Ok(()) -} +} \ No newline at end of file From 407463d70b5c33ac25ce5a1225d1936fb07625cf Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 8 Nov 2023 01:14:01 +0100 Subject: [PATCH 010/196] fix: formatting of `tx.send()` --- src/main.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 1a211d4..6579715 100644 --- a/src/main.rs +++ b/src/main.rs @@ -68,7 +68,9 @@ async fn fetch_secrets_from_key_vault( // Handle the result and send it through the channel match secret_bundle { Ok(bundle) => { - tx.send((secret_id, bundle.value)).await.expect("Send error"); + tx.send((secret_id, bundle.value)) + .await + .expect("Send error"); } Err(err) => { eprintln!("Error fetching secret: {}", err); @@ -116,4 +118,4 @@ async fn main() -> Result<(), Box> { println!("Process completed successfully!"); Ok(()) -} \ No newline at end of file +} From be162f7f281b7755333da961651ecadd7b993163 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 8 Nov 2023 01:26:58 +0100 Subject: [PATCH 011/196] feat: update package and bump version --- Cargo.lock | 6 +++--- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 827919c..cf73330 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -419,9 +419,9 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" +checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e" dependencies = [ "libc", "windows-sys", @@ -852,7 +852,7 @@ dependencies = [ [[package]] name = "keyweave" -version = "0.1.0" +version = "0.2.0" dependencies = [ "azure_identity", "azure_security_keyvault", diff --git a/Cargo.toml b/Cargo.toml index 138d70f..7d52ef8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyweave" -version = "0.1.0" +version = "0.2.0" edition = "2021" authors = ["Bart van der Braak "] From a6cdc18bc39fa172b8c0116824946100197009d9 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 8 Nov 2023 21:00:49 +0100 Subject: [PATCH 012/196] feat: add trigger deployment --- .github/workflows/trigger.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/trigger.yml diff --git a/.github/workflows/trigger.yml b/.github/workflows/trigger.yml new file mode 100644 index 0000000..eec709e --- /dev/null +++ b/.github/workflows/trigger.yml @@ -0,0 +1,26 @@ +name: test trigger + +on: + push: + branches: + - "feat/homebrew-releases" + pull_request: + branches: + - "main" + paths: + - ".github/workflows/trigger.yml" + +jobs: + trigger: + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v6 + with: + github-token: ${{ secrets.PAT_TOKEN }} + script: | + await github.rest.actions.createWorkflowDispatch({ + owner: 'bartvdbraak', + repo: 'homebrew-keyweave', + workflow_id: 'release.yml', + ref: 'main' + }) \ No newline at end of file From 6226f282a3e0e7ae4774e0d536e501ada001b1e0 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 8 Nov 2023 22:15:09 +0100 Subject: [PATCH 013/196] feat: send inputs with version and sha256sums --- .github/workflows/trigger.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/trigger.yml b/.github/workflows/trigger.yml index eec709e..a85ba75 100644 --- a/.github/workflows/trigger.yml +++ b/.github/workflows/trigger.yml @@ -14,6 +14,8 @@ jobs: trigger: runs-on: ubuntu-latest steps: + - id: setversion + run: echo "version=$(grep -m1 -F 'version =' Cargo.toml | cut -d\" -f2)" >> $GITHUB_OUTPUT - uses: actions/github-script@v6 with: github-token: ${{ secrets.PAT_TOKEN }} @@ -22,5 +24,14 @@ jobs: owner: 'bartvdbraak', repo: 'homebrew-keyweave', workflow_id: 'release.yml', - ref: 'main' + ref: 'main', + inputs: { + version: '${{ steps.setversion.outputs.version }}', + sha256sums: '5d486e110fed077ff9309814cc4bb205b50fa4263bad3d204e4d9f230002dd3c keyweave-aarch64-apple-darwin.tar.xz + da415340276b6bc8f700e54cafdef23445973dba0d126065cf73135dff2c922d keyweave-aarch64-unsknown-linux-gnu.tar.xz + 45863c6d3f34bb7727cd112a0adfc20b840f4f5c92def99b9e15bde20e2a32f8 keyweave-armv7-unknown-linux-gnueabihf.tar.xz + d88f646619d69f088fb2a1c223c7b1cf6199659fd593abc475851ddee866d4e9 keyweave-x86_64-apple-darwin.tar.xz + 79317c194bd41a2d9ec55e80353e3eb510a11e3c57708e65cc0a34966a86ae14 keyweave-x86_64-unknown-linux-gnu.tar.xz + 6f6ad0810a4bf75d914dd09c4c55efadc8b038d10811c4223b787ac5d1cf4186 keyweave-x86_64-unknown-linux-musl.tar.xz' + } }) \ No newline at end of file From 5fbaf26aabdcc639c60344d7f0b7007516b5fc48 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 8 Nov 2023 22:17:23 +0100 Subject: [PATCH 014/196] fix: sha256 file, transform and workflow dispatch --- .github/workflows/release.yml | 33 ++++++++++++++++++++++++++++--- .github/workflows/trigger.yml | 37 ----------------------------------- 2 files changed, 30 insertions(+), 40 deletions(-) delete mode 100644 .github/workflows/trigger.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8e6a152..9a4a621 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -167,8 +167,10 @@ jobs: with: name: builds - - name: Checksums with SHA512 - run: sha512sum keyweave-* | tee SHA512SUMS + - name: Checksums with SHA512 and SHA256 + run: | + sha512sum keyweave-* | tee SHA512SUMS + sha256sum keyweave-* | tee SHA256SUMS - uses: softprops/action-gh-release@v1 env: @@ -179,4 +181,29 @@ jobs: files: | keyweave-*.tar.xz keyweave-*/keyweave.exe - *SUMS* \ No newline at end of file + *SUMS* + + - name: Create Homebrew inputs + id: homebrew-inputs + run: | + sha256sums="{$(awk '{printf "%s '\''%s'\'': '\''%s'\''", (NR>1 ? "," : ""), $2, $1} END {print ""}' SHA256SUMS)}" + echo "sha256sums=$sha256sums" >> $GITHUB_OUTPUT + echo "version=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT + + - uses: actions/github-script@v6 + name: Dispatch Homebrew release + with: + github-token: ${{ secrets.PAT_TOKEN }} + script: | + const sha256sums = JSON.parse('${{ steps.homebrew-inputs.outputs.sha256sums }}'); + + await github.rest.actions.createWorkflowDispatch({ + owner: 'bartvdbraak', + repo: 'homebrew-keyweave', + workflow_id: 'release.yml', + ref: 'main', + inputs: { + version: '${{ steps.homebrew-inputs.outputs.version }}', + sha256sums: JSON.stringify(sha256sums) + } + }) \ No newline at end of file diff --git a/.github/workflows/trigger.yml b/.github/workflows/trigger.yml deleted file mode 100644 index a85ba75..0000000 --- a/.github/workflows/trigger.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: test trigger - -on: - push: - branches: - - "feat/homebrew-releases" - pull_request: - branches: - - "main" - paths: - - ".github/workflows/trigger.yml" - -jobs: - trigger: - runs-on: ubuntu-latest - steps: - - id: setversion - run: echo "version=$(grep -m1 -F 'version =' Cargo.toml | cut -d\" -f2)" >> $GITHUB_OUTPUT - - uses: actions/github-script@v6 - with: - github-token: ${{ secrets.PAT_TOKEN }} - script: | - await github.rest.actions.createWorkflowDispatch({ - owner: 'bartvdbraak', - repo: 'homebrew-keyweave', - workflow_id: 'release.yml', - ref: 'main', - inputs: { - version: '${{ steps.setversion.outputs.version }}', - sha256sums: '5d486e110fed077ff9309814cc4bb205b50fa4263bad3d204e4d9f230002dd3c keyweave-aarch64-apple-darwin.tar.xz - da415340276b6bc8f700e54cafdef23445973dba0d126065cf73135dff2c922d keyweave-aarch64-unsknown-linux-gnu.tar.xz - 45863c6d3f34bb7727cd112a0adfc20b840f4f5c92def99b9e15bde20e2a32f8 keyweave-armv7-unknown-linux-gnueabihf.tar.xz - d88f646619d69f088fb2a1c223c7b1cf6199659fd593abc475851ddee866d4e9 keyweave-x86_64-apple-darwin.tar.xz - 79317c194bd41a2d9ec55e80353e3eb510a11e3c57708e65cc0a34966a86ae14 keyweave-x86_64-unknown-linux-gnu.tar.xz - 6f6ad0810a4bf75d914dd09c4c55efadc8b038d10811c4223b787ac5d1cf4186 keyweave-x86_64-unknown-linux-musl.tar.xz' - } - }) \ No newline at end of file From 2d4a74e6c4c2b4fe069e2f2c00563237504cec5a Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Thu, 9 Nov 2023 00:38:55 +0100 Subject: [PATCH 015/196] docs: add instructions for installation --- README.md | 46 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a0a6308..f1ee98e 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Cluster -Keyweave is an open-source tool designed to seamlessly fetch secrets from Azure Key Vault and weave them into a convenient `.env` file. Developed in Rust, Keyweave is efficient and easy to use, making it an ideal choice for managing your application's secrets. +Keyweave is an open-source tool crafted to seamlessly fetch secrets from Azure Key Vault and weave them into a convenient `.env` file. Developed in Rust, Keyweave stands out for its efficiency and user-friendly design, making it an ideal choice for managing your application's secrets. ## Features @@ -13,30 +13,52 @@ Keyweave is an open-source tool designed to seamlessly fetch secrets from Azure ## Prerequisites -- **Rust**: Ensure you have Rust installed on your system. If not, you can install it using [rustup](https://rustup.rs/). -- **Azure Account**: Log into your Azure tenant and set up the right subscription. +Before diving into Keyweave, ensure you have the following prerequisites: -## Installation +- **Azure Account**: Log into your Azure tenant and set up the right subscription, along with any Access Policies required for you to read and list secrets from your Key Vault. -Clone the repository to your local machine: +```sh +az login --tenant "your-tenant-guid" +az account set --subscription "your-subscription-guid" +``` + +## Installation (MacOS, Linux) + +For MacOS and Linux systems, installation is a breeze with [Homebrew](https://brew.sh/). Simply run: + +```bash +brew tap bartvdbraak/keyweave +brew install keyweave +``` + +## Manual Download + +If you prefer manual installation or need binaries for different platforms (including an executable for Windows), visit the [Releases](/releases) page of this GitHub repository. + +## Building from Source + +Keyweave is built with [Cargo](https://doc.rust-lang.org/cargo/), the Rust package manager. + +To build Keyweave from source, follow these steps: ```sh git clone https://github.com/bartvdbraak/keyweave.git cd keyweave +cargo build --release ``` -Build the project: +Once built, run Keyweave using Cargo: ```sh -cargo build --release +cargo run -- --vault_name [--output ] [--filter ] ``` ## Usage -After building the project, you can run Keyweave using the following command: +With the binary on your `PATH`, run Keyweave as follows: ```sh -cargo run -- --vault_name [--output ] [--filter ] +keyweave --vault_name [--output ] [--filter ] ``` - `--vault_name `: Sets the name of the Azure Key Vault. @@ -46,13 +68,13 @@ cargo run -- --vault_name [--output ] [--filter ] ## Example ```sh -cargo run -- --vault_name my-key-vault --output my-env-file.env --filter my-secret +keyweave --vault_name my-key-vault --output my-env-file.env --filter my-secret ``` ## License -Keyweave is licensed under the GLPv3 License. See [LICENSE](LICENSE) for more details. +Keyweave is licensed under the GPLv3 License. See [LICENSE](LICENSE) for more details. ## Contributing -We welcome contributions! Please feel free to submit pull requests, report issues, or suggest new features. +We welcome contributions! Feel free to submit pull requests, report issues, or suggest new features. Your input helps make Keyweave even better. From b97ce2bd1641487428507e50ea9c61c5bd0ed172 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Thu, 9 Nov 2023 00:43:59 +0100 Subject: [PATCH 016/196] feat: bump version to 0.2.1 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 7d52ef8..0f95b37 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyweave" -version = "0.2.0" +version = "0.2.1" edition = "2021" authors = ["Bart van der Braak "] From 8d6c1334ab2dbbb1cbbbe6d809f65b8fbab712b2 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Thu, 9 Nov 2023 00:48:01 +0100 Subject: [PATCH 017/196] feat: version bump incl linux-raw-sys, getrandom --- Cargo.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cf73330..c727f21 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -136,7 +136,7 @@ dependencies = [ "bytes", "dyn-clone", "futures", - "getrandom 0.2.10", + "getrandom 0.2.11", "http-types", "log", "paste", @@ -626,9 +626,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "js-sys", @@ -852,7 +852,7 @@ dependencies = [ [[package]] name = "keyweave" -version = "0.2.0" +version = "0.2.1" dependencies = [ "azure_identity", "azure_security_keyvault", @@ -876,9 +876,9 @@ checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" [[package]] name = "linux-raw-sys" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -982,7 +982,7 @@ checksum = "c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f" dependencies = [ "base64 0.13.1", "chrono", - "getrandom 0.2.10", + "getrandom 0.2.11", "http", "rand 0.8.5", "serde", @@ -1230,7 +1230,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", ] [[package]] @@ -1751,7 +1751,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", ] [[package]] From e31bd8746c716718dda1f4b2f1861b4b2617159d Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Thu, 9 Nov 2023 01:00:25 +0100 Subject: [PATCH 018/196] fix: remove unnecessary json parse --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9a4a621..a7db628 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -195,7 +195,7 @@ jobs: with: github-token: ${{ secrets.PAT_TOKEN }} script: | - const sha256sums = JSON.parse('${{ steps.homebrew-inputs.outputs.sha256sums }}'); + const sha256sums = ${{ steps.homebrew-inputs.outputs.sha256sums }} await github.rest.actions.createWorkflowDispatch({ owner: 'bartvdbraak', From a24661c152748a39f4a8a8a07135b1e5c14a65f8 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Thu, 9 Nov 2023 12:10:06 +0100 Subject: [PATCH 019/196] fix: use version without prefix --- .github/workflows/release.yml | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a7db628..f69ff96 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,14 +10,21 @@ jobs: pre-check: name: Pre-check runs-on: ubuntu-latest + outputs: + version: ${{ steps.version-check.outputs.version }} steps: - uses: actions/checkout@v4 - - run: | - if [[ "$(git describe --tags --abbrev=0)" != "v$(grep -m1 -F 'version =' Cargo.toml | cut -d\" -f2)" ]]; then + - id: version-check + run: | + version_tag="$(git describe --tags --abbrev=0 | sed 's/^v//')" + version_toml="$(grep -m1 -F 'version =' Cargo.toml | cut -d\" -f2)" + + if [[ "$version_tag" != "$version_toml" ]]; then echo "Error: The git tag does not match the Cargo.toml version." exit 1 fi echo "Success: The git tag matches the Cargo.toml version." + echo "version=$version_toml" >> $GITHUB_OUTPUT build: needs: pre-check @@ -108,16 +115,7 @@ jobs: - name: Extract version shell: bash run: | - set -euxo pipefail - - version=$(grep -m1 -F 'version =' Cargo.toml | cut -d\" -f2) - - if [[ -z "$version" ]]; then - echo "Error: no version :(" - exit 1 - fi - - echo "$version" > VERSION + echo "${{ needs.pre-check.outputs.version }}" > VERSION - name: Package shell: bash @@ -148,7 +146,9 @@ jobs: keyweave-x86_64-pc-windows-gnu/keyweave.exe sign: - needs: build + needs: + - pre-check + - build name: Checksum and sign runs-on: ubuntu-latest @@ -183,12 +183,11 @@ jobs: keyweave-*/keyweave.exe *SUMS* - - name: Create Homebrew inputs + - name: Generate SHA256SUM input for Homebrew id: homebrew-inputs run: | sha256sums="{$(awk '{printf "%s '\''%s'\'': '\''%s'\''", (NR>1 ? "," : ""), $2, $1} END {print ""}' SHA256SUMS)}" echo "sha256sums=$sha256sums" >> $GITHUB_OUTPUT - echo "version=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT - uses: actions/github-script@v6 name: Dispatch Homebrew release @@ -203,7 +202,7 @@ jobs: workflow_id: 'release.yml', ref: 'main', inputs: { - version: '${{ steps.homebrew-inputs.outputs.version }}', + version: '${{ needs.pre-check.outputs.version }}', sha256sums: JSON.stringify(sha256sums) } }) \ No newline at end of file From 852a0e6fef1ce24aafbe082040e8ea7b5d701f56 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Thu, 9 Nov 2023 23:17:40 +0100 Subject: [PATCH 020/196] feat: update smallvec, tokio, tokio-macros --- Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c727f21..d781ebe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1464,9 +1464,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] name = "socket2" @@ -1608,9 +1608,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.33.0" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ "backtrace", "bytes", @@ -1627,9 +1627,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", From 41a622e34dc573ffc8b99328be6068fc7559c2cf Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Thu, 9 Nov 2023 23:24:00 +0100 Subject: [PATCH 021/196] feat: add job to publish to crates.io --- .github/workflows/release.yml | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f69ff96..4f3621f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -145,12 +145,12 @@ jobs: keyweave-*.tar.xz keyweave-x86_64-pc-windows-gnu/keyweave.exe - sign: + release: needs: - pre-check - build - name: Checksum and sign + name: Sign and Release runs-on: ubuntu-latest permissions: id-token: write @@ -195,7 +195,6 @@ jobs: github-token: ${{ secrets.PAT_TOKEN }} script: | const sha256sums = ${{ steps.homebrew-inputs.outputs.sha256sums }} - await github.rest.actions.createWorkflowDispatch({ owner: 'bartvdbraak', repo: 'homebrew-keyweave', @@ -205,4 +204,20 @@ jobs: version: '${{ needs.pre-check.outputs.version }}', sha256sums: JSON.stringify(sha256sums) } - }) \ No newline at end of file + }) + + publish: + needs: release + name: Publish crate + runs-on: ubuntu-latest + steps: + - name: Install stable toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - run: cargo publish --token ${CARGO_REGISTRY_TOKEN} + env: + CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} \ No newline at end of file From c95b689aad0e61583aec0b8738e84f65b11c9c8f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Nov 2023 22:27:31 +0000 Subject: [PATCH 022/196] fix(deps): update rust crate tokio to 1.34.0 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c727f21..58917dd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1608,9 +1608,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.33.0" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ "backtrace", "bytes", @@ -1627,9 +1627,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 0f95b37..99ac2fa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ azure_identity = "0.17.0" azure_security_keyvault = "0.17.0" clap = { version = "4.4.7", features = ["derive"] } futures = "0.3.29" -tokio = {version = "1.33.0", features = ["full"]} +tokio = {version = "1.34.0", features = ["full"]} [target.'cfg(all(target_os = "linux", any(target_env = "musl", target_arch = "arm", target_arch = "aarch64")))'.dependencies] openssl = { version = "0.10", features = ["vendored"] } \ No newline at end of file From 914c80213a86ca70e77caf80b74487e499200cc1 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 10 Nov 2023 00:20:36 +0100 Subject: [PATCH 023/196] docs: windows example, prereqs, cargo --- README.md | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index f1ee98e..8ed42be 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Keyweave -Cluster +Cluster Keyweave is an open-source tool crafted to seamlessly fetch secrets from Azure Key Vault and weave them into a convenient `.env` file. Developed in Rust, Keyweave stands out for its efficiency and user-friendly design, making it an ideal choice for managing your application's secrets. @@ -15,14 +15,25 @@ Keyweave is an open-source tool crafted to seamlessly fetch secrets from Azure K Before diving into Keyweave, ensure you have the following prerequisites: -- **Azure Account**: Log into your Azure tenant and set up the right subscription, along with any Access Policies required for you to read and list secrets from your Key Vault. +- Logged into the right Azure tenant: -```sh -az login --tenant "your-tenant-guid" -az account set --subscription "your-subscription-guid" + ```bash + az login --tenant "your-tenant-guid" + ``` + +- Identity has `Get` and `List` Secret Permissions in the Access Policies of the Key Vault. + +## Installation + +### Cargo + +Keyweave is built with [Cargo](https://doc.rust-lang.org/cargo/), the Rust package manager. It can also be used to install from [crates.io](https://crates.io/crates/keyweave): + +```bash +cargo install keyweave ``` -## Installation (MacOS, Linux) +### Homebrew (MacOS, Linux) For MacOS and Linux systems, installation is a breeze with [Homebrew](https://brew.sh/). Simply run: @@ -31,13 +42,15 @@ brew tap bartvdbraak/keyweave brew install keyweave ``` -## Manual Download +### Manual Download If you prefer manual installation or need binaries for different platforms (including an executable for Windows), visit the [Releases](/releases) page of this GitHub repository. -## Building from Source +```powershell +Invoke-WebRequest -Uri 'https://github.com/bartvdbraak/keyweave/releases/latest/download/keyweave.exe' -OutFile 'keyweave.exe' +``` -Keyweave is built with [Cargo](https://doc.rust-lang.org/cargo/), the Rust package manager. +## Building from Source To build Keyweave from source, follow these steps: @@ -71,6 +84,10 @@ keyweave --vault_name [--output ] [--filter ] keyweave --vault_name my-key-vault --output my-env-file.env --filter my-secret ``` +## Documentation + +Additional documentation for this package can be found on [docs.rs](https://docs.rs/keyweave). + ## License Keyweave is licensed under the GPLv3 License. See [LICENSE](LICENSE) for more details. From fa90ae8a53a7345a63fb2c6415d720c3c5978305 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 10 Nov 2023 00:23:42 +0100 Subject: [PATCH 024/196] feat: move to `.github` --- renovate.json => .github/renovate.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename renovate.json => .github/renovate.json (100%) diff --git a/renovate.json b/.github/renovate.json similarity index 100% rename from renovate.json rename to .github/renovate.json From ddb9fac7caa05ac4dcfbc5e91cf522795b4940cd Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 10 Nov 2023 00:24:19 +0100 Subject: [PATCH 025/196] feat: add standard reviewer --- .github/renovate.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index 39a2b6e..7269f0b 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -1,6 +1,5 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "config:base" - ] -} + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": ["config:base"], + "reviewers": ["bartvdbraak"] +} \ No newline at end of file From 08466adb0c7b9b3fba6a233e3f7224ebeb212d7d Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 10 Nov 2023 00:26:01 +0100 Subject: [PATCH 026/196] feat: bump version to 0.2.2 --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d781ebe..de438f3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -852,7 +852,7 @@ dependencies = [ [[package]] name = "keyweave" -version = "0.2.1" +version = "0.2.2" dependencies = [ "azure_identity", "azure_security_keyvault", diff --git a/Cargo.toml b/Cargo.toml index 0f95b37..9f979ae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyweave" -version = "0.2.1" +version = "0.2.2" edition = "2021" authors = ["Bart van der Braak "] From be400c0c50a7d354777291dcaac2efdd71da2558 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 10 Nov 2023 00:46:36 +0100 Subject: [PATCH 027/196] feat: additional metadata fields --- Cargo.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 9f979ae..4c6f890 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,11 @@ name = "keyweave" version = "0.2.2" edition = "2021" authors = ["Bart van der Braak "] +keywords = ["azure", "keyvault", "env"] +description = "Fetches secrets from Azure Key Vault and weaves them into a convenient .env file" +license = "GPL-3.0" +documentation = "https://docs.rs/keyweave" +repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] azure_identity = "0.17.0" From b9656bf118da7f054dbab26276ecfdb858a22aa6 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 10 Nov 2023 01:14:19 +0100 Subject: [PATCH 028/196] refactor: optimize threads and error handling --- Cargo.lock | 1 + Cargo.toml | 3 +- src/main.rs | 161 ++++++++++++++++++++++++++++------------------------ 3 files changed, 90 insertions(+), 75 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index de438f3..9aaee82 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -854,6 +854,7 @@ dependencies = [ name = "keyweave" version = "0.2.2" dependencies = [ + "anyhow", "azure_identity", "azure_security_keyvault", "clap", diff --git a/Cargo.toml b/Cargo.toml index 6cdcb7f..ad8a2ec 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,7 @@ documentation = "https://docs.rs/keyweave" repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] +anyhow = "1.0.75" azure_identity = "0.17.0" azure_security_keyvault = "0.17.0" clap = { version = "4.4.7", features = ["derive"] } @@ -17,4 +18,4 @@ futures = "0.3.29" tokio = {version = "1.34.0", features = ["full"]} [target.'cfg(all(target_os = "linux", any(target_env = "musl", target_arch = "arm", target_arch = "aarch64")))'.dependencies] -openssl = { version = "0.10", features = ["vendored"] } \ No newline at end of file +openssl = { version = "0.10", features = ["vendored"] } diff --git a/src/main.rs b/src/main.rs index 6579715..c7268e7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,121 +1,134 @@ +use anyhow::{Context, Result}; use azure_identity::DefaultAzureCredential; +use azure_security_keyvault::prelude::KeyVaultGetSecretsResponse; use azure_security_keyvault::KeyvaultClient; use clap::Parser; use futures::stream::StreamExt; use std::fs::File; use std::io::Write; +use std::sync::Arc; use tokio::sync::mpsc; +use tokio::sync::Semaphore; -#[derive(Parser)] +#[derive(Parser, Debug)] #[clap(author, version, about, long_about = None)] struct Opts { - #[clap( - short, - long, - value_name = "VAULT_NAME", - help = "Sets the name of the Azure Key Vault" - )] + /// Sets the name of the Azure Key Vault + #[clap(short, long, value_name = "VAULT_NAME")] vault_name: String, - #[clap( - short, - long, - value_name = "FILE", - default_value = ".env", - help = "Sets the name of the output file" - )] + /// Sets the name of the output file + #[clap(short, long, value_name = "FILE", default_value = ".env")] output: String, - #[clap( - short, - long, - value_name = "FILTER", - help = "Filters the secrets to be retrieved by name" - )] + /// Filters the secrets to be retrieved by name + #[clap(short, long, value_name = "FILTER")] filter: Option, } async fn fetch_secrets_from_key_vault( - vault_url: &str, + client: &KeyvaultClient, filter: Option<&str>, -) -> Result, Box> { - let credential = DefaultAzureCredential::default(); - let client = KeyvaultClient::new(vault_url, std::sync::Arc::new(credential))?.secret_client(); - +) -> Result> { let mut secret_values = Vec::new(); - let mut secret_pages = client.list_secrets().into_stream(); + let mut secret_pages = client.secret_client().list_secrets().into_stream(); while let Some(page) = secret_pages.next().await { - let page = page?; - let (tx, mut rx) = mpsc::channel(32); // Channel for concurrent secret retrieval - - for secret in &page.value { - if let Some(filter) = filter { - if !secret.id.contains(filter) { - continue; - } - } - let tx = tx.clone(); - - // Clone necessary data before moving into the spawned task - let secret_id = secret.id.clone(); - let client_clone = client.clone(); - - tokio::spawn(async move { - let secret_name = secret_id.split('/').last().unwrap_or_default(); - let secret_bundle = client_clone.get(secret_name).await; - - // Handle the result and send it through the channel - match secret_bundle { - Ok(bundle) => { - tx.send((secret_id, bundle.value)) - .await - .expect("Send error"); - } - Err(err) => { - eprintln!("Error fetching secret: {}", err); - // You can decide to continue or not in case of an error. - } - } - }); - } - - drop(tx); // Drop the sender to signal the end of sending tasks - - while let Some(result) = rx.recv().await { - let (key, value) = result; - secret_values.push((key, value)); - } + let page = page.context("Failed to fetch secrets page")?; + secret_values + .extend(fetch_secrets_from_page(&client.secret_client(), &page, filter).await?); } Ok(secret_values) } -fn create_env_file(secrets: Vec<(String, String)>, output_file: &str) -> std::io::Result<()> { - let mut file = File::create(output_file)?; +async fn fetch_secrets_from_page( + client: &azure_security_keyvault::SecretClient, + page: &KeyVaultGetSecretsResponse, + filter: Option<&str>, +) -> Result> { + let (tx, mut rx) = mpsc::channel(32); + let semaphore = Arc::new(Semaphore::new(10)); + let mut handles = Vec::new(); + + for secret in &page.value { + if let Some(filter) = filter { + if !secret.id.contains(filter) { + continue; + } + } + + let permit = semaphore.clone().acquire_owned().await.unwrap(); + let tx = tx.clone(); + let secret_id = secret.id.clone(); + let client_clone = client.clone(); + + handles.push(tokio::spawn(async move { + let _permit = permit; + fetch_and_send_secret(client_clone, secret_id, tx).await + })); + } + + drop(tx); + + let mut secrets = Vec::new(); + for handle in handles { + if let Ok(result) = handle.await { + secrets.push(result); + } + } + + while let Some(result) = rx.recv().await { + secrets.push(result); + } + + Ok(secrets) +} + +async fn fetch_and_send_secret( + client: azure_security_keyvault::SecretClient, + secret_id: String, + tx: mpsc::Sender<(String, String)>, +) -> (String, String) { + let secret_name = secret_id.split('/').last().unwrap_or_default(); + match client.get(secret_name).await { + Ok(bundle) => { + let _ = tx.send((secret_id.clone(), bundle.value.clone())).await; + (secret_id, bundle.value) + } + Err(err) => { + eprintln!("Error fetching secret: {}", err); + (secret_id, String::new()) + } + } +} + +fn create_env_file(secrets: Vec<(String, String)>, output_file: &str) -> Result<()> { + let mut file = File::create(output_file).context("Failed to create output file")?; for (key, value) in secrets { - // Extract the secret name from the URL if let Some(secret_name) = key.split('/').last() { - writeln!(file, "{}={}", secret_name, value)?; + writeln!(file, "{}={}", secret_name, value) + .with_context(|| format!("Failed to write to output file: {}", output_file))?; } } Ok(()) } #[tokio::main] -async fn main() -> Result<(), Box> { +async fn main() -> Result<()> { let opts: Opts = Opts::parse(); let vault_url = format!("https://{}.vault.azure.net", opts.vault_name); - println!("Fetching secrets from Key Vault: {}", opts.vault_name); - let secrets = fetch_secrets_from_key_vault(&vault_url, opts.filter.as_deref()).await?; + let credential = DefaultAzureCredential::default(); + let client = KeyvaultClient::new(&vault_url, std::sync::Arc::new(credential)) + .context("Failed to create KeyvaultClient")?; + let secrets = fetch_secrets_from_key_vault(&client, opts.filter.as_deref()).await?; println!("Creating output file: {}", opts.output); create_env_file(secrets, &opts.output)?; println!("Process completed successfully!"); - Ok(()) } From 33874f2d358173c48330bc45444292574889d9e7 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 10 Nov 2023 01:19:53 +0100 Subject: [PATCH 029/196] feat: added unit test for creating env file --- src/main.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/main.rs b/src/main.rs index c7268e7..55c3a1d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -114,6 +114,36 @@ fn create_env_file(secrets: Vec<(String, String)>, output_file: &str) -> Result< Ok(()) } +#[cfg(test)] +mod tests { + use super::*; + use std::fs; + use std::io::{self, BufRead}; + + #[tokio::test] + async fn test_create_env_file() -> Result<()> { + let test_secrets = vec![ + ("SECRET_KEY".to_string(), "secret_value1".to_string()), + ("API_KEY".to_string(), "secret_value2".to_string()), + ]; + + let test_file = "test_output.env"; + create_env_file(test_secrets, test_file)?; + + let file = fs::File::open(test_file)?; + let reader = io::BufReader::new(file); + let lines: Vec = reader.lines().collect::>()?; + + assert_eq!( + lines, + vec!["SECRET_KEY=secret_value1", "API_KEY=secret_value2",] + ); + + fs::remove_file(test_file)?; // Clean up the test file + Ok(()) + } +} + #[tokio::main] async fn main() -> Result<()> { let opts: Opts = Opts::parse(); From 5bb706ef8be7847bc1ee0aff6ceede6e9dab958b Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 10 Nov 2023 02:04:00 +0100 Subject: [PATCH 030/196] fix: use updated rust toolchain tasks and jobs --- .github/workflows/release.yml | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4f3621f..494d965 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -146,12 +146,12 @@ jobs: keyweave-x86_64-pc-windows-gnu/keyweave.exe release: - needs: - - pre-check - - build - + needs: build name: Sign and Release runs-on: ubuntu-latest + outputs: + sha256sums: ${{ steps.homebrew-inputs.outputs.sha256sums }} + permissions: id-token: write contents: write @@ -188,13 +188,18 @@ jobs: run: | sha256sums="{$(awk '{printf "%s '\''%s'\'': '\''%s'\''", (NR>1 ? "," : ""), $2, $1} END {print ""}' SHA256SUMS)}" echo "sha256sums=$sha256sums" >> $GITHUB_OUTPUT - + + publish-brew: + needs: [release, pre-check] + name: Publish brew formula + runs-on: ubuntu-latest + steps: - uses: actions/github-script@v6 name: Dispatch Homebrew release with: github-token: ${{ secrets.PAT_TOKEN }} script: | - const sha256sums = ${{ steps.homebrew-inputs.outputs.sha256sums }} + const sha256sums = ${{ needs.release.outputs.sha256sums }} await github.rest.actions.createWorkflowDispatch({ owner: 'bartvdbraak', repo: 'homebrew-keyweave', @@ -206,18 +211,14 @@ jobs: } }) - publish: + publish-crate: needs: release - name: Publish crate + name: Publish rust crate runs-on: ubuntu-latest steps: - - name: Install stable toolchain - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - - - run: cargo publish --token ${CARGO_REGISTRY_TOKEN} + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Publish to crates.io + run: cargo publish --token ${CARGO_REGISTRY_TOKEN} env: CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} \ No newline at end of file From 86bc86fcedfcc490c55824e11a700ded5f9e87ba Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 10 Nov 2023 22:54:46 +0000 Subject: [PATCH 031/196] fix(deps): update rust crate clap to 4.4.8 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9aaee82..9ccfcda 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -279,9 +279,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.7" +version = "4.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b" +checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64" dependencies = [ "clap_builder", "clap_derive", @@ -289,9 +289,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.7" +version = "4.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663" +checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index ad8a2ec..b620648 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ repository = "https://github.com/bartvdbraak/keyweave/" anyhow = "1.0.75" azure_identity = "0.17.0" azure_security_keyvault = "0.17.0" -clap = { version = "4.4.7", features = ["derive"] } +clap = { version = "4.4.8", features = ["derive"] } futures = "0.3.29" tokio = {version = "1.34.0", features = ["full"]} From 135c805e28ac1afd7a92b9a345f9a3073d75d1f6 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Sat, 11 Nov 2023 21:22:18 +0100 Subject: [PATCH 032/196] feat: run on pushes to `main` --- .github/workflows/checks.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 8efb941..659e407 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -1,6 +1,9 @@ name: Checks on: + push: + branches: + - main pull_request: branches: - main From c16f93ef940b9fe1bc2ffc1906637873fc2c5216 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Sat, 11 Nov 2023 21:30:05 +0100 Subject: [PATCH 033/196] docs: badges at the top of readme --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 8ed42be..6554df0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,10 @@ # Keyweave +[github](https://github.com/bartvdbraak/keyweave) +[crates.io](https://crates.io/crates/keyweave) +[docs.rs](https://docs.rs/keyweave) +[build status](https://github.com/bartvdbraak/keyweave/actions/workflows/checks.yml) + Cluster Keyweave is an open-source tool crafted to seamlessly fetch secrets from Azure Key Vault and weave them into a convenient `.env` file. Developed in Rust, Keyweave stands out for its efficiency and user-friendly design, making it an ideal choice for managing your application's secrets. From 7f1e459daaf02697e3fcdd7eb878d628b5e9b0d2 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Sat, 11 Nov 2023 21:34:17 +0100 Subject: [PATCH 034/196] feat: change build badge to use checks status --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6554df0..19863b8 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [github](https://github.com/bartvdbraak/keyweave) [crates.io](https://crates.io/crates/keyweave) [docs.rs](https://docs.rs/keyweave) -[build status](https://github.com/bartvdbraak/keyweave/actions/workflows/checks.yml) +[build status](https://github.com/bartvdbraak/keyweave/actions/workflows/checks.yml) Cluster From 2e124fac616bcf76c631028c823682ecc476bb5a Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Sat, 11 Nov 2023 21:39:03 +0100 Subject: [PATCH 035/196] feat: add paths to workflow trigger --- .github/workflows/checks.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 659e407..df67ff3 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -2,11 +2,11 @@ name: Checks on: push: - branches: - - main + branches: [ main ] + paths: [ 'src/**', 'Cargo.toml', 'Cargo.lock' ] pull_request: - branches: - - main + branches: [ main ] + paths: [ 'src/**', 'Cargo.toml', 'Cargo.lock' ] jobs: fmt: From a58c0919451be3e9e85afe071c9fd14b0f3a8156 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Sat, 11 Nov 2023 21:43:10 +0100 Subject: [PATCH 036/196] fix: correction in github badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 19863b8..3d2ad4d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Keyweave -[github](https://github.com/bartvdbraak/keyweave) +[github](https://github.com/bartvdbraak/keyweave) [crates.io](https://crates.io/crates/keyweave) [docs.rs](https://docs.rs/keyweave) [build status](https://github.com/bartvdbraak/keyweave/actions/workflows/checks.yml) From ba0548febc131af2bcb36d3b2ee9c1dcf11ccc76 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Sun, 12 Nov 2023 22:48:12 +0100 Subject: [PATCH 037/196] feat: add paris for pretty logging --- Cargo.lock | 7 +++++++ Cargo.toml | 1 + src/main.rs | 14 +++++++++++--- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9ccfcda..0ba35ef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -860,6 +860,7 @@ dependencies = [ "clap", "futures", "openssl", + "paris", "tokio", ] @@ -1063,6 +1064,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "paris" +version = "1.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fecab3723493c7851f292cb060f3ee1c42f19b8d749345d0d7eaf3fd19aa62d" + [[package]] name = "parking" version = "2.2.0" diff --git a/Cargo.toml b/Cargo.toml index b620648..567b504 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,7 @@ azure_identity = "0.17.0" azure_security_keyvault = "0.17.0" clap = { version = "4.4.8", features = ["derive"] } futures = "0.3.29" +paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.34.0", features = ["full"]} [target.'cfg(all(target_os = "linux", any(target_env = "musl", target_arch = "arm", target_arch = "aarch64")))'.dependencies] diff --git a/src/main.rs b/src/main.rs index 55c3a1d..8a8494a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,6 +9,8 @@ use std::io::Write; use std::sync::Arc; use tokio::sync::mpsc; use tokio::sync::Semaphore; +use paris::Logger; +// use paris::error; #[derive(Parser, Debug)] #[clap(author, version, about, long_about = None)] @@ -147,18 +149,24 @@ mod tests { #[tokio::main] async fn main() -> Result<()> { let opts: Opts = Opts::parse(); + let mut log = Logger::new(); let vault_url = format!("https://{}.vault.azure.net", opts.vault_name); - println!("Fetching secrets from Key Vault: {}", opts.vault_name); + log.loading("Detecting credentials."); let credential = DefaultAzureCredential::default(); let client = KeyvaultClient::new(&vault_url, std::sync::Arc::new(credential)) .context("Failed to create KeyvaultClient")?; + log.success("Detected credentials."); + log.loading(format!("Fetching secrets from Key Vault: {}", opts.vault_name)); let secrets = fetch_secrets_from_key_vault(&client, opts.filter.as_deref()).await?; - println!("Creating output file: {}", opts.output); + log.success(format!("Fetched secrets from Key Vault: {}", opts.vault_name)); + + log.loading(format!("Creating output file: {}", opts.output)); create_env_file(secrets, &opts.output)?; + log.success(format!("Created output file: {}", opts.output)); - println!("Process completed successfully!"); + log.success("Done."); Ok(()) } From 2f16d60a0fa4aec603d23126ed272d63658e6152 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Sun, 12 Nov 2023 22:49:44 +0100 Subject: [PATCH 038/196] refactor: applied formatting --- src/main.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 8a8494a..4313c95 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,12 +4,12 @@ use azure_security_keyvault::prelude::KeyVaultGetSecretsResponse; use azure_security_keyvault::KeyvaultClient; use clap::Parser; use futures::stream::StreamExt; +use paris::Logger; use std::fs::File; use std::io::Write; use std::sync::Arc; use tokio::sync::mpsc; use tokio::sync::Semaphore; -use paris::Logger; // use paris::error; #[derive(Parser, Debug)] @@ -159,10 +159,16 @@ async fn main() -> Result<()> { .context("Failed to create KeyvaultClient")?; log.success("Detected credentials."); - log.loading(format!("Fetching secrets from Key Vault: {}", opts.vault_name)); + log.loading(format!( + "Fetching secrets from Key Vault: {}", + opts.vault_name + )); let secrets = fetch_secrets_from_key_vault(&client, opts.filter.as_deref()).await?; - log.success(format!("Fetched secrets from Key Vault: {}", opts.vault_name)); - + log.success(format!( + "Fetched secrets from Key Vault: {}", + opts.vault_name + )); + log.loading(format!("Creating output file: {}", opts.output)); create_env_file(secrets, &opts.output)?; log.success(format!("Created output file: {}", opts.output)); From 68e78cdd54a8d4305d87a00d510e27104eab5cd6 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Mon, 13 Nov 2023 14:52:05 +0100 Subject: [PATCH 039/196] refactor: use paris for formatted error logging --- src/main.rs | 42 ++++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4313c95..af80d3e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,16 +1,15 @@ -use anyhow::{Context, Result}; +use anyhow::Result; use azure_identity::DefaultAzureCredential; use azure_security_keyvault::prelude::KeyVaultGetSecretsResponse; use azure_security_keyvault::KeyvaultClient; use clap::Parser; use futures::stream::StreamExt; -use paris::Logger; +use paris::{error, Logger}; use std::fs::File; use std::io::Write; use std::sync::Arc; use tokio::sync::mpsc; use tokio::sync::Semaphore; -// use paris::error; #[derive(Parser, Debug)] #[clap(author, version, about, long_about = None)] @@ -36,7 +35,13 @@ async fn fetch_secrets_from_key_vault( let mut secret_pages = client.secret_client().list_secrets().into_stream(); while let Some(page) = secret_pages.next().await { - let page = page.context("Failed to fetch secrets page")?; + let page = match page { + Ok(p) => p, + Err(err) => { + error!("Failed to fetch secrets page: {}", err); + return Err(err.into()); // Convert the error into anyhow::Error + } + }; secret_values .extend(fetch_secrets_from_page(&client.secret_client(), &page, filter).await?); } @@ -77,6 +82,8 @@ async fn fetch_secrets_from_page( for handle in handles { if let Ok(result) = handle.await { secrets.push(result); + } else { + error!("Error occurred while fetching a secret."); } } @@ -99,20 +106,30 @@ async fn fetch_and_send_secret( (secret_id, bundle.value) } Err(err) => { - eprintln!("Error fetching secret: {}", err); + error!("Error fetching secret: {}", err); (secret_id, String::new()) } } } fn create_env_file(secrets: Vec<(String, String)>, output_file: &str) -> Result<()> { - let mut file = File::create(output_file).context("Failed to create output file")?; + let mut file = match File::create(output_file) { + Ok(f) => f, + Err(err) => { + error!("Failed to create output file: {}", err); + return Err(err.into()); + } + }; + for (key, value) in secrets { if let Some(secret_name) = key.split('/').last() { - writeln!(file, "{}={}", secret_name, value) - .with_context(|| format!("Failed to write to output file: {}", output_file))?; + if let Err(err) = writeln!(file, "{}={}", secret_name, value) { + error!("Failed to write to output file: {}: {}", output_file, err); + return Err(err.into()); + } } } + Ok(()) } @@ -155,8 +172,13 @@ async fn main() -> Result<()> { log.loading("Detecting credentials."); let credential = DefaultAzureCredential::default(); - let client = KeyvaultClient::new(&vault_url, std::sync::Arc::new(credential)) - .context("Failed to create KeyvaultClient")?; + let client = match KeyvaultClient::new(&vault_url, std::sync::Arc::new(credential)) { + Ok(c) => c, + Err(err) => { + error!("Failed to create KeyvaultClient: {}", err); + return Err(err.into()); + } + }; log.success("Detected credentials."); log.loading(format!( From c8a4d02e48b51a2c7b82681b5d2e10f5d1087fd8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 13 Nov 2023 20:08:53 +0000 Subject: [PATCH 040/196] chore(deps): update actions/github-script action to v7 --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 494d965..d1bce27 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -194,7 +194,7 @@ jobs: name: Publish brew formula runs-on: ubuntu-latest steps: - - uses: actions/github-script@v6 + - uses: actions/github-script@v7 name: Dispatch Homebrew release with: github-token: ${{ secrets.PAT_TOKEN }} From e5bbfd278cc5e584cfe11aa7c445aa8ad2d24cc1 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Mon, 13 Nov 2023 18:58:32 -0800 Subject: [PATCH 041/196] feat: bump version to 0.2.3 --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0ba35ef..494dcbd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -852,7 +852,7 @@ dependencies = [ [[package]] name = "keyweave" -version = "0.2.2" +version = "0.2.3" dependencies = [ "anyhow", "azure_identity", diff --git a/Cargo.toml b/Cargo.toml index 567b504..57e9320 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyweave" -version = "0.2.2" +version = "0.2.3" edition = "2021" authors = ["Bart van der Braak "] keywords = ["azure", "keyvault", "env"] From cdb62b86e040b9e90df8411dc2ca5aabc8b97280 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Mon, 13 Nov 2023 18:59:06 -0800 Subject: [PATCH 042/196] feat: update packages --- Cargo.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 494dcbd..d58f8b6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -99,11 +99,11 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e900cdcd39bb94a14487d3f7ef92ca222162e6c7c3fe7cb3550ea75fb486ed" +checksum = "deb2ab2aa8a746e221ab826c73f48bc6ba41be6763f0855cb249eb6d154cf1d7" dependencies = [ - "event-listener 3.0.1", + "event-listener 3.1.0", "event-listener-strategy", "pin-project-lite", ] @@ -249,9 +249,9 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "0f8e7c90afad890484a21653d08b6e209ae34770fb5ee298f9c699fcc1e5c856" dependencies = [ "libc", ] @@ -435,9 +435,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "3.0.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cec0252c2afff729ee6f00e903d479fba81784c8e2bd77447673471fdfaea1" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" dependencies = [ "concurrent-queue", "parking", @@ -450,7 +450,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160" dependencies = [ - "event-listener 3.0.1", + "event-listener 3.1.0", "pin-project-lite", ] @@ -682,9 +682,9 @@ checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "http" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ "bytes", "fnv", @@ -1316,9 +1316,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.21" +version = "0.38.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" +checksum = "80109a168d9bc0c7f483083244543a6eb0dba02295d33ca268145e6190d6df0c" dependencies = [ "bitflags 2.4.1", "errno", From 430496228076ae13fab97ed70a22b6349646ece6 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 15 Nov 2023 01:17:45 +0100 Subject: [PATCH 043/196] feat: updated logo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3d2ad4d..220b7d3 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [docs.rs](https://docs.rs/keyweave) [build status](https://github.com/bartvdbraak/keyweave/actions/workflows/checks.yml) -Cluster +Keyweave Keyweave is an open-source tool crafted to seamlessly fetch secrets from Azure Key Vault and weave them into a convenient `.env` file. Developed in Rust, Keyweave stands out for its efficiency and user-friendly design, making it an ideal choice for managing your application's secrets. From 03ea1e498709793dfadd2771f1f366e7a75eda03 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 15 Nov 2023 01:24:34 +0100 Subject: [PATCH 044/196] refactor: embed logo without text --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 220b7d3..40a6e91 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [docs.rs](https://docs.rs/keyweave) [build status](https://github.com/bartvdbraak/keyweave/actions/workflows/checks.yml) -Keyweave +Keyweave Keyweave is an open-source tool crafted to seamlessly fetch secrets from Azure Key Vault and weave them into a convenient `.env` file. Developed in Rust, Keyweave stands out for its efficiency and user-friendly design, making it an ideal choice for managing your application's secrets. From 3ed4444422d75404778494a0a10b66eb2bf07870 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 21 Nov 2023 13:15:33 +0100 Subject: [PATCH 045/196] feat: bicep templates for azure resources --- bicep/main.bicep | 86 ++++++++++++++++++++++++++++++++++++++ bicep/main.test.bicepparam | 3 ++ bicep/modules/id.bicep | 36 ++++++++++++++++ bicep/modules/kv.bicep | 72 +++++++++++++++++++++++++++++++ bicep/modules/law.bicep | 24 +++++++++++ 5 files changed, 221 insertions(+) create mode 100644 bicep/main.bicep create mode 100644 bicep/main.test.bicepparam create mode 100644 bicep/modules/id.bicep create mode 100644 bicep/modules/kv.bicep create mode 100644 bicep/modules/law.bicep diff --git a/bicep/main.bicep b/bicep/main.bicep new file mode 100644 index 0000000..b6c1eca --- /dev/null +++ b/bicep/main.bicep @@ -0,0 +1,86 @@ +targetScope = 'subscription' + +/* + Parameters +*/ + +@allowed([ + 'D' // Development + 'T' // Test + 'A' // Acceptance + 'P' // Production +]) +param environment string +param location string = 'westeurope' +param name object = { + tenantId: 'BVDB' + projectId: 'KEYWEAVE' + region: 'WEU' +} + +/* + Variables +*/ + +var tags = { + project: 'keyweave' +} +var nameFormat = '${name.tenantId}-${name.projectId}-${environment}-${name.region}-{0}-{1:N0}' + +/* + Resource Group +*/ + +resource ResourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' = { + name: format(nameFormat, 'RG', 1) + location: location + tags: tags +} + +/* + Module for Log Analytics Workspace +*/ + +module LogAnalyticsWorkspace 'modules/law.bicep' = { + name: 'LogAnalyticsWorkspace' + scope: ResourceGroup + params: { + nameFormat: nameFormat + location: location + tags: tags + } +} + +/* + Module for Managed Identities +*/ + +module ManagedIdentities 'modules/id.bicep' = { + name: 'ManagedIdentities' + scope: ResourceGroup + params: { + nameFormat: nameFormat + location: location + tags: tags + } +} + +/* + Module for KeyVault +*/ + +module KeyVault 'modules/kv.bicep' = { + name: 'KeyVault' + scope: ResourceGroup + dependsOn: [ + LogAnalyticsWorkspace + ] + params: { + nameFormat: nameFormat + location: location + tags: tags + + getPrincipalIds: ManagedIdentities.outputs.getPrincipalIds + listPrincipalIds: ManagedIdentities.outputs.listPrincipalIds + } +} diff --git a/bicep/main.test.bicepparam b/bicep/main.test.bicepparam new file mode 100644 index 0000000..5c7b6fa --- /dev/null +++ b/bicep/main.test.bicepparam @@ -0,0 +1,3 @@ +using 'main.bicep' + +param environment = 'T' diff --git a/bicep/modules/id.bicep b/bicep/modules/id.bicep new file mode 100644 index 0000000..4d2d19b --- /dev/null +++ b/bicep/modules/id.bicep @@ -0,0 +1,36 @@ +param nameFormat string +param location string +param tags object + +resource managedIdentityNone 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { + name: format(nameFormat, 'ID', 1) + location: location + tags: tags +} + +resource managedIdentityGet 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { + name: format(nameFormat, 'ID', 2) + location: location + tags: tags +} + +resource managedIdentityList 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { + name: format(nameFormat, 'ID', 3) + location: location + tags: tags +} + +resource managedIdentityGetList 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { + name: format(nameFormat, 'ID', 4) + location: location + tags: tags +} + +output getPrincipalIds array = [ + managedIdentityGet.properties.principalId + managedIdentityGetList.properties.principalId +] +output listPrincipalIds array = [ + managedIdentityList.properties.principalId + managedIdentityGetList.properties.principalId +] diff --git a/bicep/modules/kv.bicep b/bicep/modules/kv.bicep new file mode 100644 index 0000000..52978a2 --- /dev/null +++ b/bicep/modules/kv.bicep @@ -0,0 +1,72 @@ +param nameFormat string +param location string +param tags object + +param getPrincipalIds array +param listPrincipalIds array + +var accessPolicies = [for id in union(getPrincipalIds, listPrincipalIds): { + tenantId: tenant().tenantId + objectId: id + permissions: { + secrets: contains(getPrincipalIds, id) && contains(listPrincipalIds, id) ? ['Get', 'List'] : contains(listPrincipalIds, id) ? ['List'] : ['Get'] + } +}] + +/* + Log Analytics Workspace (existing) +*/ + +resource _logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2022-10-01' existing = { + name: format(nameFormat, 'LAW', 1) +} + +/* + Key Vault +*/ + +resource keyVault 'Microsoft.KeyVault/vaults@2023-02-01' = { + name: replace(toLower(format(nameFormat, 'KVT', 1)), '-', '') + location: location + tags: tags + properties: { + sku: { + family: 'A' + name: 'standard' + } + tenantId: tenant().tenantId + enableSoftDelete: true + enablePurgeProtection: true + accessPolicies: accessPolicies + } + resource testSecret 'secrets' = { + name: 'testSecret' + properties: { + value: 'testSecretValue' + } + } + resource filterTestSecret 'secrets' = { + name: 'filterTestSecret' + properties: { + value: 'filterTestSecretValue' + } + } +} + +/* + Diagnostic Settings for Key Vault +*/ + +resource keyVaultDiagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = { + name: 'keyVaultLogging' + scope: keyVault + properties: { + workspaceId: _logAnalyticsWorkspace.id + logs: [ + { + category: 'AuditEvent' + enabled: true + } + ] + } +} diff --git a/bicep/modules/law.bicep b/bicep/modules/law.bicep new file mode 100644 index 0000000..451519c --- /dev/null +++ b/bicep/modules/law.bicep @@ -0,0 +1,24 @@ +param nameFormat string +param location string +param tags object + +/* + Log Analytics Workspace +*/ + +resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2022-10-01' = { + name: format(nameFormat, 'LAW', 1) + location: location + tags: tags + properties: { + sku: { + name: 'PerGB2018' + } + features: { + enableLogAccessUsingOnlyResourcePermissions: true + } + workspaceCapping: { + dailyQuotaGb: json('0.025') + } + } +} From 2f4dace719ab78c903f12bc329e062d3a537c2bc Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 21 Nov 2023 13:15:49 +0100 Subject: [PATCH 046/196] feat: end-to-end test workflow --- .github/workflows/e2e.yml | 109 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 .github/workflows/e2e.yml diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml new file mode 100644 index 0000000..ad429a4 --- /dev/null +++ b/.github/workflows/e2e.yml @@ -0,0 +1,109 @@ +name: Checks + +permissions: + id-token: write + contents: read + +on: + push: + branches: [ main ] + paths: [ 'bicep/**', 'src/**', 'Cargo.toml', 'Cargo.lock', '.github/workflows/e2e.yml' ] + pull_request: + branches: [ main ] + paths: [ 'bicep/**', 'src/**', 'Cargo.toml', 'Cargo.lock', '.github/workflows/e2e.yml' ] + +jobs: + bicep: + name: Deploy Azure resources + environment: bicep + runs-on: ubuntu-latest + env: + LOCATION: eastus + DEPLOYMENT_NAME: keyweave-${{ github.run_id }} + steps: + - uses: actions/checkout@v3 + - uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + + - name: Validate Bicep template + uses: azure/arm-deploy@v1 + with: + scope: subscription + region: ${{ env.LOCATION }} + template: infra/bicep/main.bicep + parameters: infra/bicep/main.params.json + deploymentName: ${{ env.DEPLOYMENT_NAME }} + additionalArguments: "--what-if" + + - name: Deploy Bicep template + if: github.ref == 'refs/heads/main' + uses: azure/arm-deploy@v1 + with: + scope: subscription + region: ${{ env.LOCATION }} + template: infra/bicep/main.bicep + parameters: infra/bicep/main.params.json + deploymentName: ${{ env.DEPLOYMENT_NAME }} + none-test: + needs: bicep + runs-on: ubuntu-latest + environment: 1-none + steps: + - uses: actions/checkout@v4 + - name: Log into Azure + uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + - uses: dtolnay/rust-toolchain@stable + - name: Use Keyweave with No Access Policies + run: cargo run -- --vault-name bvdbkeyweavetweukvt1 + get-test: + needs: bicep + runs-on: ubuntu-latest + environment: 2-get + steps: + - uses: actions/checkout@v4 + - name: Log into Azure + uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + - uses: dtolnay/rust-toolchain@stable + - name: Use Keyweave with Only Get Access Policy + run: cargo run -- --vault-name bvdbkeyweavetweukvt1 + list-test: + needs: bicep + runs-on: ubuntu-latest + environment: 3-list + steps: + - uses: actions/checkout@v4 + - name: Log into Azure + uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + - uses: dtolnay/rust-toolchain@stable + - name: Use Keyweave with Only List Access Policy + run: cargo run -- --vault-name bvdbkeyweavetweukvt1 + get-list-test: + needs: bicep + runs-on: ubuntu-latest + environment: 4-get-list + steps: + - uses: actions/checkout@v4 + - name: Log into Azure + uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + - uses: dtolnay/rust-toolchain@stable + - name: Use Keyweave with both Get and List Access Policies + run: cargo run -- --vault-name bvdbkeyweavetweukvt1 From dd3b46951c1476bcfad3f0b98e5fc2b2cf5370ce Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 21 Nov 2023 13:16:06 +0100 Subject: [PATCH 047/196] chore: remove unnecessary comments --- src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index af80d3e..18e55b8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -39,7 +39,7 @@ async fn fetch_secrets_from_key_vault( Ok(p) => p, Err(err) => { error!("Failed to fetch secrets page: {}", err); - return Err(err.into()); // Convert the error into anyhow::Error + return Err(err.into()); } }; secret_values @@ -158,7 +158,7 @@ mod tests { vec!["SECRET_KEY=secret_value1", "API_KEY=secret_value2",] ); - fs::remove_file(test_file)?; // Clean up the test file + fs::remove_file(test_file)?; Ok(()) } } From 84832c5ead8b81e29f7f42cb3b5ea5c6a28ba6a2 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 21 Nov 2023 13:21:15 +0100 Subject: [PATCH 048/196] fix: remove what-if and correct path, displaynames --- .github/workflows/e2e.yml | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index ad429a4..31bbae5 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -27,27 +27,16 @@ jobs: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - - name: Validate Bicep template - uses: azure/arm-deploy@v1 - with: - scope: subscription - region: ${{ env.LOCATION }} - template: infra/bicep/main.bicep - parameters: infra/bicep/main.params.json - deploymentName: ${{ env.DEPLOYMENT_NAME }} - additionalArguments: "--what-if" - - name: Deploy Bicep template - if: github.ref == 'refs/heads/main' uses: azure/arm-deploy@v1 with: scope: subscription region: ${{ env.LOCATION }} - template: infra/bicep/main.bicep - parameters: infra/bicep/main.params.json + template: bicep/main.bicep + parameters: bicep/main.params.json deploymentName: ${{ env.DEPLOYMENT_NAME }} none-test: + name: Tests without access needs: bicep runs-on: ubuntu-latest environment: 1-none @@ -63,6 +52,7 @@ jobs: - name: Use Keyweave with No Access Policies run: cargo run -- --vault-name bvdbkeyweavetweukvt1 get-test: + name: Tests with Get access needs: bicep runs-on: ubuntu-latest environment: 2-get @@ -78,6 +68,7 @@ jobs: - name: Use Keyweave with Only Get Access Policy run: cargo run -- --vault-name bvdbkeyweavetweukvt1 list-test: + name: Tests with List access needs: bicep runs-on: ubuntu-latest environment: 3-list @@ -93,6 +84,7 @@ jobs: - name: Use Keyweave with Only List Access Policy run: cargo run -- --vault-name bvdbkeyweavetweukvt1 get-list-test: + name: Tests with Get and List access needs: bicep runs-on: ubuntu-latest environment: 4-get-list From 4acd2a2e36ad61f2028be649b9e03f78db507236 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 21 Nov 2023 14:42:04 +0100 Subject: [PATCH 049/196] feat: use build and shortened creds --- .github/workflows/e2e.yml | 87 ++++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 43 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 31bbae5..f2496d0 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -4,6 +4,9 @@ permissions: id-token: write contents: read +env: + VAULT_NAME: bvdbkeyweavetweukvt1 + on: push: branches: [ main ] @@ -13,6 +16,19 @@ on: paths: [ 'bicep/**', 'src/**', 'Cargo.toml', 'Cargo.lock', '.github/workflows/e2e.yml' ] jobs: + build: + name: Build Keyweave + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Build project + run: cargo build --all --release + - name: Archive binary artifact + uses: actions/upload-artifact@v3.1.3 + with: + path: target/release/keyweave + bicep: name: Deploy Azure resources environment: bicep @@ -24,9 +40,7 @@ jobs: - uses: actions/checkout@v3 - uses: azure/login@v1 with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Deploy Bicep template uses: azure/arm-deploy@v1 with: @@ -35,67 +49,54 @@ jobs: template: bicep/main.bicep parameters: bicep/main.params.json deploymentName: ${{ env.DEPLOYMENT_NAME }} + none-test: name: Tests without access - needs: bicep + needs: [build, bicep] runs-on: ubuntu-latest - environment: 1-none + environment: none steps: - - uses: actions/checkout@v4 - - name: Log into Azure - uses: azure/login@v1 + - uses: actions/download-artifact@v3.0.2 + - uses: azure/login@v1 with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - uses: dtolnay/rust-toolchain@stable + creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Use Keyweave with No Access Policies - run: cargo run -- --vault-name bvdbkeyweavetweukvt1 + run: ./keyweave --vault-name ${{ env.VAULT_NAME}} + get-test: name: Tests with Get access - needs: bicep + needs: [build, bicep] runs-on: ubuntu-latest - environment: 2-get + environment: get steps: - - uses: actions/checkout@v4 - - name: Log into Azure - uses: azure/login@v1 + - uses: actions/download-artifact@v3.0.2 + - uses: azure/login@v1 with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - uses: dtolnay/rust-toolchain@stable + creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Use Keyweave with Only Get Access Policy - run: cargo run -- --vault-name bvdbkeyweavetweukvt1 + run: ./keyweave --vault-name ${{ env.VAULT_NAME}} + list-test: name: Tests with List access - needs: bicep + needs: [build, bicep] runs-on: ubuntu-latest - environment: 3-list + environment: list steps: - - uses: actions/checkout@v4 - - name: Log into Azure - uses: azure/login@v1 + - uses: actions/download-artifact@v3.0.2 + - uses: azure/login@v1 with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - uses: dtolnay/rust-toolchain@stable + creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Use Keyweave with Only List Access Policy - run: cargo run -- --vault-name bvdbkeyweavetweukvt1 + run: ./keyweave --vault-name ${{ env.VAULT_NAME}} get-list-test: name: Tests with Get and List access - needs: bicep + needs: [build, bicep] runs-on: ubuntu-latest - environment: 4-get-list + environment: getlist steps: - - uses: actions/checkout@v4 - - name: Log into Azure - uses: azure/login@v1 + - uses: actions/download-artifact@v3.0.2 + - uses: azure/login@v1 with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - uses: dtolnay/rust-toolchain@stable + creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Use Keyweave with both Get and List Access Policies - run: cargo run -- --vault-name bvdbkeyweavetweukvt1 + run: ./keyweave --vault-name ${{ env.VAULT_NAME}} From ea0f452eba60b65ef6f76551f43519086761d6dc Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 21 Nov 2023 14:50:36 +0100 Subject: [PATCH 050/196] fix: return to use oidc secrets --- .github/workflows/e2e.yml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index f2496d0..af05643 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -40,7 +40,9 @@ jobs: - uses: actions/checkout@v3 - uses: azure/login@v1 with: - creds: ${{ secrets.AZURE_CREDENTIALS }} + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Deploy Bicep template uses: azure/arm-deploy@v1 with: @@ -59,7 +61,9 @@ jobs: - uses: actions/download-artifact@v3.0.2 - uses: azure/login@v1 with: - creds: ${{ secrets.AZURE_CREDENTIALS }} + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Use Keyweave with No Access Policies run: ./keyweave --vault-name ${{ env.VAULT_NAME}} @@ -72,7 +76,9 @@ jobs: - uses: actions/download-artifact@v3.0.2 - uses: azure/login@v1 with: - creds: ${{ secrets.AZURE_CREDENTIALS }} + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Use Keyweave with Only Get Access Policy run: ./keyweave --vault-name ${{ env.VAULT_NAME}} @@ -85,7 +91,9 @@ jobs: - uses: actions/download-artifact@v3.0.2 - uses: azure/login@v1 with: - creds: ${{ secrets.AZURE_CREDENTIALS }} + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Use Keyweave with Only List Access Policy run: ./keyweave --vault-name ${{ env.VAULT_NAME}} get-list-test: @@ -97,6 +105,8 @@ jobs: - uses: actions/download-artifact@v3.0.2 - uses: azure/login@v1 with: - creds: ${{ secrets.AZURE_CREDENTIALS }} + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Use Keyweave with both Get and List Access Policies run: ./keyweave --vault-name ${{ env.VAULT_NAME}} From 0c30fec375cf38fecbcace997b96d5fa2d61bba6 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 21 Nov 2023 14:54:22 +0100 Subject: [PATCH 051/196] feat: use bicepparams file --- .github/workflows/e2e.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index af05643..ff4ced9 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -10,10 +10,8 @@ env: on: push: branches: [ main ] - paths: [ 'bicep/**', 'src/**', 'Cargo.toml', 'Cargo.lock', '.github/workflows/e2e.yml' ] pull_request: branches: [ main ] - paths: [ 'bicep/**', 'src/**', 'Cargo.toml', 'Cargo.lock', '.github/workflows/e2e.yml' ] jobs: build: @@ -49,7 +47,7 @@ jobs: scope: subscription region: ${{ env.LOCATION }} template: bicep/main.bicep - parameters: bicep/main.params.json + parameters: bicep/main.test.bicepparams deploymentName: ${{ env.DEPLOYMENT_NAME }} none-test: From dca1e14be4ec536b78d60ebe17f53e093b562f25 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 21 Nov 2023 14:56:03 +0100 Subject: [PATCH 052/196] fix: don't use param file --- .github/workflows/e2e.yml | 1 - bicep/main.bicep | 2 +- bicep/main.test.bicepparam | 3 --- 3 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 bicep/main.test.bicepparam diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index ff4ced9..b62d294 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -47,7 +47,6 @@ jobs: scope: subscription region: ${{ env.LOCATION }} template: bicep/main.bicep - parameters: bicep/main.test.bicepparams deploymentName: ${{ env.DEPLOYMENT_NAME }} none-test: diff --git a/bicep/main.bicep b/bicep/main.bicep index b6c1eca..cc6cbe3 100644 --- a/bicep/main.bicep +++ b/bicep/main.bicep @@ -10,7 +10,7 @@ targetScope = 'subscription' 'A' // Acceptance 'P' // Production ]) -param environment string +param environment string = 'T' param location string = 'westeurope' param name object = { tenantId: 'BVDB' diff --git a/bicep/main.test.bicepparam b/bicep/main.test.bicepparam deleted file mode 100644 index 5c7b6fa..0000000 --- a/bicep/main.test.bicepparam +++ /dev/null @@ -1,3 +0,0 @@ -using 'main.bicep' - -param environment = 'T' From 61ee03a3d619cd5b54fc15bb3f193c69a21def25 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 21 Nov 2023 16:53:20 +0100 Subject: [PATCH 053/196] chore: debug fs --- .github/workflows/e2e.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index b62d294..acbd824 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -22,8 +22,7 @@ jobs: - uses: dtolnay/rust-toolchain@stable - name: Build project run: cargo build --all --release - - name: Archive binary artifact - uses: actions/upload-artifact@v3.1.3 + - uses: actions/upload-artifact@v3.1.3 with: path: target/release/keyweave @@ -62,7 +61,10 @@ jobs: tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Use Keyweave with No Access Policies - run: ./keyweave --vault-name ${{ env.VAULT_NAME}} + run: | + ls -la + tree + ./keyweave --vault-name ${{ env.VAULT_NAME}} get-test: name: Tests with Get access From c272558f4a948c20906745e020eeb6136e4d6ac4 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 21 Nov 2023 17:02:17 +0100 Subject: [PATCH 054/196] fix: use correct artifact path --- .github/workflows/e2e.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index acbd824..d8ea05a 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -62,9 +62,7 @@ jobs: subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Use Keyweave with No Access Policies run: | - ls -la - tree - ./keyweave --vault-name ${{ env.VAULT_NAME}} + ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} get-test: name: Tests with Get access @@ -79,7 +77,7 @@ jobs: tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Use Keyweave with Only Get Access Policy - run: ./keyweave --vault-name ${{ env.VAULT_NAME}} + run: ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} list-test: name: Tests with List access @@ -94,7 +92,8 @@ jobs: tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Use Keyweave with Only List Access Policy - run: ./keyweave --vault-name ${{ env.VAULT_NAME}} + run: ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} + get-list-test: name: Tests with Get and List access needs: [build, bicep] @@ -108,4 +107,4 @@ jobs: tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Use Keyweave with both Get and List Access Policies - run: ./keyweave --vault-name ${{ env.VAULT_NAME}} + run: ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} From 3fd2ad2f7c450ea4b305b16b4c12eba54d5eadec Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 21 Nov 2023 17:15:08 +0100 Subject: [PATCH 055/196] fix: give execution permissions --- .github/workflows/e2e.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index d8ea05a..9db0f02 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -62,6 +62,7 @@ jobs: subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Use Keyweave with No Access Policies run: | + chmod +x ./artifact/keyweave ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} get-test: @@ -77,7 +78,9 @@ jobs: tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Use Keyweave with Only Get Access Policy - run: ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} + run: | + chmod +x ./artifact/keyweave + ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} list-test: name: Tests with List access @@ -92,7 +95,9 @@ jobs: tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Use Keyweave with Only List Access Policy - run: ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} + run: | + chmod +x ./artifact/keyweave + ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} get-list-test: name: Tests with Get and List access @@ -107,4 +112,6 @@ jobs: tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Use Keyweave with both Get and List Access Policies - run: ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} + run: | + chmod +x ./artifact/keyweave + ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} From bfb45cefa00a7c32a937e69c4715e1c8801ef8cf Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 21 Nov 2023 18:51:26 +0100 Subject: [PATCH 056/196] feat: add federated logins --- bicep/main.bicep | 3 +-- bicep/modules/id.bicep | 59 ++++++++++++++++++++---------------------- bicep/modules/kv.bicep | 9 +++---- 3 files changed, 33 insertions(+), 38 deletions(-) diff --git a/bicep/main.bicep b/bicep/main.bicep index cc6cbe3..9aa1534 100644 --- a/bicep/main.bicep +++ b/bicep/main.bicep @@ -80,7 +80,6 @@ module KeyVault 'modules/kv.bicep' = { location: location tags: tags - getPrincipalIds: ManagedIdentities.outputs.getPrincipalIds - listPrincipalIds: ManagedIdentities.outputs.listPrincipalIds + identities: ManagedIdentities.outputs.identities } } diff --git a/bicep/modules/id.bicep b/bicep/modules/id.bicep index 4d2d19b..91e6b21 100644 --- a/bicep/modules/id.bicep +++ b/bicep/modules/id.bicep @@ -2,35 +2,32 @@ param nameFormat string param location string param tags object -resource managedIdentityNone 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { - name: format(nameFormat, 'ID', 1) - location: location - tags: tags -} - -resource managedIdentityGet 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { - name: format(nameFormat, 'ID', 2) - location: location - tags: tags -} - -resource managedIdentityList 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { - name: format(nameFormat, 'ID', 3) - location: location - tags: tags -} - -resource managedIdentityGetList 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { - name: format(nameFormat, 'ID', 4) - location: location - tags: tags -} - -output getPrincipalIds array = [ - managedIdentityGet.properties.principalId - managedIdentityGetList.properties.principalId -] -output listPrincipalIds array = [ - managedIdentityList.properties.principalId - managedIdentityGetList.properties.principalId +param identityEnvironments array = [ + 'none' + 'get' + 'list' + 'getlist' ] + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = [for (environment, index) in identityEnvironments: { + name: format(nameFormat, 'ID', index+1) + location: location + tags: tags +}] + +resource federatedCredential 'Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials@2023-01-31' = [for (environment, index) in identityEnvironments: { + name: environment + parent: managedIdentity[index+1] + properties: { + issuer: 'https://token.actions.githubusercontent.com' + subject: 'repo:bartvdbraak/keyweave:environment:${environment}' + audiences: [ + 'api://AzureADTokenExchange' + ] + } +}] + +output identities array = [for (environment, index) in identityEnvironments: { + name: environment + id: managedIdentity[index+1].properties.principalId +}] diff --git a/bicep/modules/kv.bicep b/bicep/modules/kv.bicep index 52978a2..8a31e5e 100644 --- a/bicep/modules/kv.bicep +++ b/bicep/modules/kv.bicep @@ -2,14 +2,13 @@ param nameFormat string param location string param tags object -param getPrincipalIds array -param listPrincipalIds array +param identities array -var accessPolicies = [for id in union(getPrincipalIds, listPrincipalIds): { +var accessPolicies = [for identity in identities: { tenantId: tenant().tenantId - objectId: id + objectId: identity.id permissions: { - secrets: contains(getPrincipalIds, id) && contains(listPrincipalIds, id) ? ['Get', 'List'] : contains(listPrincipalIds, id) ? ['List'] : ['Get'] + secrets: contains(identity.name, 'get') && contains(identity.name, 'list') ? ['Get', 'List'] : contains(identity.name, 'get') ? ['Get'] : ['List'] } }] From d9522cb9af0d8cd56f10115fadea3c3b2f066f46 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 21 Nov 2023 18:51:56 +0100 Subject: [PATCH 057/196] feat: additional e2e tests --- .github/workflows/e2e.yml | 41 +++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 9db0f02..b9b3e9d 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -63,7 +63,7 @@ jobs: - name: Use Keyweave with No Access Policies run: | chmod +x ./artifact/keyweave - ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} + ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} get-test: name: Tests with Get access @@ -80,7 +80,7 @@ jobs: - name: Use Keyweave with Only Get Access Policy run: | chmod +x ./artifact/keyweave - ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} + ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} list-test: name: Tests with List access @@ -97,7 +97,7 @@ jobs: - name: Use Keyweave with Only List Access Policy run: | chmod +x ./artifact/keyweave - ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} + ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} get-list-test: name: Tests with Get and List access @@ -114,4 +114,37 @@ jobs: - name: Use Keyweave with both Get and List Access Policies run: | chmod +x ./artifact/keyweave - ./artifact/keyweave --vault-name ${{ env.VAULT_NAME}} + ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} + + - name: Use Keyweave with a filter + run: | + ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} --filter "filter" + + - name: Use Keyweave with a complex file path + run: | + mkdir -p "user/projects/project 1/src/lib" + ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} --output "user/projects/project 1/src/lib/.env" + + - name: Use Keyweave with a non-existent Key Vault + run: ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }}1234 + + - name: Use Keyweave with a no permissions + run: | + mkdir -p "user/projects/project 1/src/lib" + ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} --output "/.env" + + - uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.OTHER_SUBSCRIPTION_ID }} + - name: Use Keyweave while logged into other Subscription + run: ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} + + # - uses: azure/login@v1 + # with: + # client-id: ${{ secrets.AZURE_CLIENT_ID }} + # tenant-id: ${{ secrets.OTHER_TENANT_ID }} + # subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + # - name: Use Keyweave while logged into other Azure Tenant + # run: ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} \ No newline at end of file From c885abd540c878efdf9bef3f4880d47b6ca0f20d Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 21 Nov 2023 18:55:35 +0100 Subject: [PATCH 058/196] fix: index was incorrect --- bicep/modules/id.bicep | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bicep/modules/id.bicep b/bicep/modules/id.bicep index 91e6b21..cfc65fa 100644 --- a/bicep/modules/id.bicep +++ b/bicep/modules/id.bicep @@ -17,7 +17,7 @@ resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023- resource federatedCredential 'Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials@2023-01-31' = [for (environment, index) in identityEnvironments: { name: environment - parent: managedIdentity[index+1] + parent: managedIdentity[index] properties: { issuer: 'https://token.actions.githubusercontent.com' subject: 'repo:bartvdbraak/keyweave:environment:${environment}' @@ -29,5 +29,5 @@ resource federatedCredential 'Microsoft.ManagedIdentity/userAssignedIdentities/f output identities array = [for (environment, index) in identityEnvironments: { name: environment - id: managedIdentity[index+1].properties.principalId + id: managedIdentity[index].properties.principalId }] From cde1d2207c7a2fdd2292a2ca367693a15a73f9bf Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 22 Nov 2023 02:18:20 +0100 Subject: [PATCH 059/196] feat: e2e test for firewalled kv --- .github/workflows/e2e.yml | 25 ++++++++++--------- bicep/modules/kv.bicep | 52 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 65 insertions(+), 12 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index b9b3e9d..762b80c 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -5,7 +5,7 @@ permissions: contents: read env: - VAULT_NAME: bvdbkeyweavetweukvt1 + VAULT_NAME: bvdbkeyweavetweukvt{0} on: push: @@ -63,7 +63,7 @@ jobs: - name: Use Keyweave with No Access Policies run: | chmod +x ./artifact/keyweave - ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} + ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} get-test: name: Tests with Get access @@ -80,7 +80,7 @@ jobs: - name: Use Keyweave with Only Get Access Policy run: | chmod +x ./artifact/keyweave - ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} + ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} list-test: name: Tests with List access @@ -97,7 +97,7 @@ jobs: - name: Use Keyweave with Only List Access Policy run: | chmod +x ./artifact/keyweave - ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} + ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} get-list-test: name: Tests with Get and List access @@ -114,24 +114,27 @@ jobs: - name: Use Keyweave with both Get and List Access Policies run: | chmod +x ./artifact/keyweave - ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} + ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} - name: Use Keyweave with a filter run: | - ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} --filter "filter" + ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} --filter "filter" - name: Use Keyweave with a complex file path run: | mkdir -p "user/projects/project 1/src/lib" - ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} --output "user/projects/project 1/src/lib/.env" + ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} --output "user/projects/project 1/src/lib/.env" - name: Use Keyweave with a non-existent Key Vault - run: ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }}1234 + run: ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }}1234 + + - name: Use Keyweave with a firewalled Key Vault + run: ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '2') }} - name: Use Keyweave with a no permissions run: | mkdir -p "user/projects/project 1/src/lib" - ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} --output "/.env" + ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} --output "/.env" - uses: azure/login@v1 with: @@ -139,7 +142,7 @@ jobs: tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.OTHER_SUBSCRIPTION_ID }} - name: Use Keyweave while logged into other Subscription - run: ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} + run: ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} # - uses: azure/login@v1 # with: @@ -147,4 +150,4 @@ jobs: # tenant-id: ${{ secrets.OTHER_TENANT_ID }} # subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} # - name: Use Keyweave while logged into other Azure Tenant - # run: ./artifact/keyweave --vault-name ${{ env.VAULT_NAME }} \ No newline at end of file + # run: ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} \ No newline at end of file diff --git a/bicep/modules/kv.bicep b/bicep/modules/kv.bicep index 8a31e5e..a0bd707 100644 --- a/bicep/modules/kv.bicep +++ b/bicep/modules/kv.bicep @@ -53,7 +53,43 @@ resource keyVault 'Microsoft.KeyVault/vaults@2023-02-01' = { } /* - Diagnostic Settings for Key Vault + Key Vault +*/ + +resource keyVaultWithFirewall 'Microsoft.KeyVault/vaults@2023-02-01' = { + name: replace(toLower(format(nameFormat, 'KVT', 2)), '-', '') + location: location + tags: tags + properties: { + sku: { + family: 'A' + name: 'standard' + } + tenantId: tenant().tenantId + enableSoftDelete: true + enablePurgeProtection: true + accessPolicies: accessPolicies + networkAcls: { + defaultAction: 'Deny' + ipRules: [] + } + } + resource testSecret 'secrets' = { + name: 'testSecret' + properties: { + value: 'testSecretValue' + } + } + resource filterTestSecret 'secrets' = { + name: 'filterTestSecret' + properties: { + value: 'filterTestSecretValue' + } + } +} + +/* + Diagnostic Settings for Key Vaults */ resource keyVaultDiagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = { @@ -69,3 +105,17 @@ resource keyVaultDiagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021- ] } } + +resource keyVaultWithFirewallDiagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = { + name: 'keyVaultLogging' + scope: keyVaultWithFirewall + properties: { + workspaceId: _logAnalyticsWorkspace.id + logs: [ + { + category: 'AuditEvent' + enabled: true + } + ] + } +} From 7b40a0ae170b26b3dabb8e1d66570ad0b55b909d Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 22 Nov 2023 02:18:44 +0100 Subject: [PATCH 060/196] feat: add dns check to see if vault exists --- src/main.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/main.rs b/src/main.rs index 18e55b8..6aea81a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,6 +4,7 @@ use azure_security_keyvault::prelude::KeyVaultGetSecretsResponse; use azure_security_keyvault::KeyvaultClient; use clap::Parser; use futures::stream::StreamExt; +use paris::{info, log}; use paris::{error, Logger}; use std::fs::File; use std::io::Write; @@ -27,6 +28,24 @@ struct Opts { filter: Option, } +async fn check_vault_dns(vault_name: &str) -> Result<()> { + let vault_host = format!("{}.vault.azure.net", vault_name); + + let lookup_result = { + tokio::net::lookup_host((vault_host.as_str(), 443)).await + }; + + match lookup_result { + Ok(_) => Ok(()), + Err(err) => { + error!("DNS lookup failed for Key Vault: {}", vault_name); + info!("Please check that the Key Vault exists or that you have no connectivity issues."); + Err(err.into()) + } + } +} + + async fn fetch_secrets_from_key_vault( client: &KeyvaultClient, filter: Option<&str>, @@ -38,6 +57,7 @@ async fn fetch_secrets_from_key_vault( let page = match page { Ok(p) => p, Err(err) => { + log!("\n"); error!("Failed to fetch secrets page: {}", err); return Err(err.into()); } @@ -181,6 +201,8 @@ async fn main() -> Result<()> { }; log.success("Detected credentials."); + check_vault_dns(&opts.vault_name).await?; + log.loading(format!( "Fetching secrets from Key Vault: {}", opts.vault_name From 38a15a3bcd00ea3d6ca19251193a51a0a8ff911f Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 22 Nov 2023 05:17:04 +0100 Subject: [PATCH 061/196] feat: e2e tests within rust instead --- .github/workflows/checks.yml | 2 +- .github/workflows/e2e.yml | 153 ------------------ .github/workflows/tests.yml | 45 ++++++ Cargo.lock | 297 ++++++++++++++++++++++++++++++++++- Cargo.toml | 7 + bicep/modules/id.bicep | 2 +- src/main.rs | 12 ++ tests/e2e.rs | 188 ++++++++++++++++++++++ 8 files changed, 550 insertions(+), 156 deletions(-) delete mode 100644 .github/workflows/e2e.yml create mode 100644 .github/workflows/tests.yml create mode 100644 tests/e2e.rs diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index df67ff3..cf465d3 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -40,7 +40,7 @@ jobs: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - name: Run tests - run: cargo test --all + run: cargo test --bins build: runs-on: ubuntu-latest steps: diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml deleted file mode 100644 index 762b80c..0000000 --- a/.github/workflows/e2e.yml +++ /dev/null @@ -1,153 +0,0 @@ -name: Checks - -permissions: - id-token: write - contents: read - -env: - VAULT_NAME: bvdbkeyweavetweukvt{0} - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - name: Build Keyweave - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - name: Build project - run: cargo build --all --release - - uses: actions/upload-artifact@v3.1.3 - with: - path: target/release/keyweave - - bicep: - name: Deploy Azure resources - environment: bicep - runs-on: ubuntu-latest - env: - LOCATION: eastus - DEPLOYMENT_NAME: keyweave-${{ github.run_id }} - steps: - - uses: actions/checkout@v3 - - uses: azure/login@v1 - with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - name: Deploy Bicep template - uses: azure/arm-deploy@v1 - with: - scope: subscription - region: ${{ env.LOCATION }} - template: bicep/main.bicep - deploymentName: ${{ env.DEPLOYMENT_NAME }} - - none-test: - name: Tests without access - needs: [build, bicep] - runs-on: ubuntu-latest - environment: none - steps: - - uses: actions/download-artifact@v3.0.2 - - uses: azure/login@v1 - with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - name: Use Keyweave with No Access Policies - run: | - chmod +x ./artifact/keyweave - ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} - - get-test: - name: Tests with Get access - needs: [build, bicep] - runs-on: ubuntu-latest - environment: get - steps: - - uses: actions/download-artifact@v3.0.2 - - uses: azure/login@v1 - with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - name: Use Keyweave with Only Get Access Policy - run: | - chmod +x ./artifact/keyweave - ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} - - list-test: - name: Tests with List access - needs: [build, bicep] - runs-on: ubuntu-latest - environment: list - steps: - - uses: actions/download-artifact@v3.0.2 - - uses: azure/login@v1 - with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - name: Use Keyweave with Only List Access Policy - run: | - chmod +x ./artifact/keyweave - ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} - - get-list-test: - name: Tests with Get and List access - needs: [build, bicep] - runs-on: ubuntu-latest - environment: getlist - steps: - - uses: actions/download-artifact@v3.0.2 - - uses: azure/login@v1 - with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - name: Use Keyweave with both Get and List Access Policies - run: | - chmod +x ./artifact/keyweave - ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} - - - name: Use Keyweave with a filter - run: | - ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} --filter "filter" - - - name: Use Keyweave with a complex file path - run: | - mkdir -p "user/projects/project 1/src/lib" - ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} --output "user/projects/project 1/src/lib/.env" - - - name: Use Keyweave with a non-existent Key Vault - run: ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }}1234 - - - name: Use Keyweave with a firewalled Key Vault - run: ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '2') }} - - - name: Use Keyweave with a no permissions - run: | - mkdir -p "user/projects/project 1/src/lib" - ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} --output "/.env" - - - uses: azure/login@v1 - with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.OTHER_SUBSCRIPTION_ID }} - - name: Use Keyweave while logged into other Subscription - run: ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} - - # - uses: azure/login@v1 - # with: - # client-id: ${{ secrets.AZURE_CLIENT_ID }} - # tenant-id: ${{ secrets.OTHER_TENANT_ID }} - # subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - # - name: Use Keyweave while logged into other Azure Tenant - # run: ./artifact/keyweave --vault-name ${{ format(env.VAULT_NAME, '1') }} \ No newline at end of file diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..f2ce024 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,45 @@ +name: Tests + +permissions: + id-token: write + contents: read + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + bicep: + name: Deploy Azure resources + environment: bicep + runs-on: ubuntu-latest + env: + LOCATION: eastus + DEPLOYMENT_NAME: keyweave-${{ github.run_id }} + steps: + - uses: actions/checkout@v3 + - uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + - name: Deploy Bicep template + uses: azure/arm-deploy@v1 + with: + scope: subscription + region: ${{ env.LOCATION }} + template: bicep/main.bicep + deploymentName: ${{ env.DEPLOYMENT_NAME }} + + test: + name: Tests + needs: bicep + runs-on: ubuntu-latest + environment: test + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Run all tests + run: cargo test --all diff --git a/Cargo.lock b/Cargo.lock index d58f8b6..26084b7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,6 +17,15 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -86,6 +95,36 @@ version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +[[package]] +name = "assert_cmd" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6" +dependencies = [ + "anstyle", + "bstr", + "doc-comment", + "predicates", + "predicates-core", + "predicates-tree", + "wait-timeout", +] + +[[package]] +name = "assert_fs" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f070617a68e5c2ed5d06ee8dd620ee18fb72b99f6c094bed34cf8ab07c875b48" +dependencies = [ + "anstyle", + "doc-comment", + "globwalk", + "predicates", + "predicates-core", + "predicates-tree", + "tempfile", +] + [[package]] name = "async-channel" version = "1.9.0" @@ -235,6 +274,17 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bstr" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" +dependencies = [ + "memchr", + "regex-automata", + "serde", +] + [[package]] name = "bumpalo" version = "3.14.0" @@ -382,6 +432,19 @@ dependencies = [ "typenum", ] +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.2", + "lock_api", + "once_cell", + "parking_lot_core", +] + [[package]] name = "deranged" version = "0.3.9" @@ -392,6 +455,12 @@ dependencies = [ "serde", ] +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + [[package]] name = "digest" version = "0.10.7" @@ -402,12 +471,24 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + [[package]] name = "dyn-clone" version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + [[package]] name = "encoding_rs" version = "0.8.33" @@ -469,6 +550,15 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + [[package]] name = "fnv" version = "1.0.7" @@ -643,6 +733,30 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +[[package]] +name = "globset" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "globwalk" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc" +dependencies = [ + "bitflags 1.3.2", + "ignore", + "walkdir", +] + [[package]] name = "h2" version = "0.3.21" @@ -668,6 +782,12 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +[[package]] +name = "hashbrown" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" + [[package]] name = "heck" version = "0.4.1" @@ -804,6 +924,23 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "ignore" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" +dependencies = [ + "globset", + "lazy_static", + "log", + "memchr", + "regex", + "same-file", + "thread_local", + "walkdir", + "winapi-util", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -811,7 +948,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", ] [[package]] @@ -835,6 +972,15 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -855,12 +1001,17 @@ name = "keyweave" version = "0.2.3" dependencies = [ "anyhow", + "assert_cmd", + "assert_fs", + "azure_core", "azure_identity", "azure_security_keyvault", "clap", "futures", "openssl", "paris", + "predicates", + "serial_test", "tokio", ] @@ -948,6 +1099,12 @@ dependencies = [ "tempfile", ] +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + [[package]] name = "num-traits" version = "0.2.17" @@ -1161,6 +1318,37 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "predicates" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0" +dependencies = [ + "anstyle", + "difflib", + "float-cmp", + "itertools", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" + +[[package]] +name = "predicates-tree" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +dependencies = [ + "predicates-core", + "termtree", +] + [[package]] name = "proc-macro2" version = "1.0.69" @@ -1259,6 +1447,35 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + [[package]] name = "reqwest" version = "0.11.22" @@ -1333,6 +1550,15 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + [[package]] name = "schannel" version = "0.1.22" @@ -1441,6 +1667,31 @@ dependencies = [ "serde", ] +[[package]] +name = "serial_test" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e56dd856803e253c8f298af3f4d7eb0ae5e23a737252cd90bb4f3b435033b2d" +dependencies = [ + "dashmap", + "futures", + "lazy_static", + "log", + "parking_lot", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "sha2" version = "0.10.8" @@ -1547,6 +1798,12 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + [[package]] name = "thiserror" version = "1.0.50" @@ -1567,6 +1824,16 @@ dependencies = [ "syn", ] +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + [[package]] name = "time" version = "0.3.30" @@ -1774,12 +2041,31 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + [[package]] name = "waker-fn" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" +[[package]] +name = "walkdir" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "want" version = "0.3.1" @@ -1906,6 +2192,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" diff --git a/Cargo.toml b/Cargo.toml index 57e9320..b1ddc77 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,6 +11,7 @@ repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] anyhow = "1.0.75" +azure_core = "0.17.0" azure_identity = "0.17.0" azure_security_keyvault = "0.17.0" clap = { version = "4.4.8", features = ["derive"] } @@ -20,3 +21,9 @@ tokio = {version = "1.34.0", features = ["full"]} [target.'cfg(all(target_os = "linux", any(target_env = "musl", target_arch = "arm", target_arch = "aarch64")))'.dependencies] openssl = { version = "0.10", features = ["vendored"] } + +[dev-dependencies] +assert_cmd = "2.0.12" +assert_fs = "1.0.13" +predicates = "3.0.4" +serial_test = "2.0.0" diff --git a/bicep/modules/id.bicep b/bicep/modules/id.bicep index cfc65fa..3f95431 100644 --- a/bicep/modules/id.bicep +++ b/bicep/modules/id.bicep @@ -20,7 +20,7 @@ resource federatedCredential 'Microsoft.ManagedIdentity/userAssignedIdentities/f parent: managedIdentity[index] properties: { issuer: 'https://token.actions.githubusercontent.com' - subject: 'repo:bartvdbraak/keyweave:environment:${environment}' + subject: 'repo:bartvdbraak/keyweave:environment:test' audiences: [ 'api://AzureADTokenExchange' ] diff --git a/src/main.rs b/src/main.rs index 6aea81a..2b11a37 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,6 +11,7 @@ use std::io::Write; use std::sync::Arc; use tokio::sync::mpsc; use tokio::sync::Semaphore; +use azure_core::error::HttpError; #[derive(Parser, Debug)] #[clap(author, version, about, long_about = None)] @@ -59,6 +60,15 @@ async fn fetch_secrets_from_key_vault( Err(err) => { log!("\n"); error!("Failed to fetch secrets page: {}", err); + let specific_error = err.downcast_ref::(); + if let Some(specific_error) = specific_error { + // Check the contents of the specific error + if specific_error.error_message().unwrap().to_string().contains("does not have secrets list permission on key vault") { + info!("Make sure you have List permissions on the Key Vault."); + } else if specific_error.error_message().unwrap().to_string().contains("is not authorized and caller is not a trusted service") { + info!("Make sure you're on the Key Vaults Firewall allowlist."); + } + } return Err(err.into()); } }; @@ -69,6 +79,7 @@ async fn fetch_secrets_from_key_vault( Ok(secret_values) } + async fn fetch_secrets_from_page( client: &azure_security_keyvault::SecretClient, page: &KeyVaultGetSecretsResponse, @@ -127,6 +138,7 @@ async fn fetch_and_send_secret( } Err(err) => { error!("Error fetching secret: {}", err); + info!("Make sure you have Get permissions on the Key Vault."); (secret_id, String::new()) } } diff --git a/tests/e2e.rs b/tests/e2e.rs new file mode 100644 index 0000000..58b256b --- /dev/null +++ b/tests/e2e.rs @@ -0,0 +1,188 @@ +use assert_cmd::prelude::*; +use assert_fs::prelude::*; +use assert_fs::TempDir; +use std::process::Command; +use predicates::prelude::*; +use serial_test::serial; +use std::env; + +static BINARY: &str = "keyweave"; +static KEYVAULT: &str = "bvdbkeyweavetweukvt1"; +static FIREWALL_KEYVAULT: &str = "bvdbkeyweavetweukvt2"; +static NON_EXISTENT_KEYVAULT: &str = "bvdbkeyweavetweukvt3"; + +fn azure_cli_login(client_id: String, tenant_id: String, subscription_id: String) -> Result<(), std::io::Error> { + Command::new("az") + .arg("login") + .arg("--identity") + .arg("--username") + .arg(client_id) + .arg("--tenant") + .arg(tenant_id) + .output()?; + + Command::new("az") + .arg("account") + .arg("set") + .arg("--subscription") + .arg(subscription_id) + .output()?; + + Ok(()) +} + +/// Test with no access policies - expected to fail. +#[tokio::test] +#[serial] +async fn test_no_access_policies() { + azure_cli_login( + env::var("AZURE_CLIENT_ID_NO_ACCESS").expect("Failed to get AZURE_CLIENT_ID_NO_ACCESS"), + env::var("AZURE_TENANT_ID").expect("Failed to get AZURE_TENANT_ID"), + env::var("AZURE_SUBSCRIPTION_ID").expect("Failed to get AZURE_SUBSCRIPTION_ID"), + ).expect("Failed to log in to Azure CLI"); + + let temp_dir = TempDir::new().unwrap(); + let output_path = temp_dir.child(".env"); + + let mut cmd = Command::cargo_bin(BINARY).unwrap(); + cmd.arg("--vault-name").arg(KEYVAULT) + .arg("--output").arg(output_path.path()); + cmd.assert().failure().stderr(predicate::str::contains("Make sure you have List permissions on the Key Vault.")); + + temp_dir.close().unwrap(); +} + +/// Test with only Get access policy - expected to fail. +#[tokio::test] +#[serial] +async fn test_only_get_access_policy() { + azure_cli_login( + env::var("AZURE_CLIENT_ID_GET").expect("Failed to get AZURE_CLIENT_ID_GET"), + env::var("AZURE_TENANT_ID").expect("Failed to get AZURE_TENANT_ID"), + env::var("AZURE_SUBSCRIPTION_ID").expect("Failed to get AZURE_SUBSCRIPTION_ID"), + ).expect("Failed to log in to Azure CLI"); + + let temp_dir = TempDir::new().unwrap(); + let output_path = temp_dir.child(".env"); + + let mut cmd = Command::cargo_bin(BINARY).unwrap(); + cmd.arg("--vault-name").arg(KEYVAULT) + .arg("--output").arg(output_path.path()); + cmd.assert().failure().stderr(predicate::str::contains("Make sure you have List permissions on the Key Vault.")); + + temp_dir.close().unwrap(); +} + +/// Test with only List access policy - expected to succeed with get errors. +#[tokio::test] +#[serial] +async fn test_only_list_access_policy() { + azure_cli_login( + env::var("AZURE_CLIENT_ID_LIST").expect("Failed to get AZURE_CLIENT_ID_LIST"), + env::var("AZURE_TENANT_ID").expect("Failed to get AZURE_TENANT_ID"), + env::var("AZURE_SUBSCRIPTION_ID").expect("Failed to get AZURE_SUBSCRIPTION_ID"), + ).expect("Failed to log in to Azure CLI"); + + let temp_dir = TempDir::new().unwrap(); + let output_path = temp_dir.child(".env"); + + let mut cmd = Command::cargo_bin(BINARY).unwrap(); + cmd.arg("--vault-name").arg(KEYVAULT) + .arg("--output").arg(output_path.path()); + cmd.assert().success().stderr(predicate::str::contains("Make sure you have Get permissions on the Key Vault.")); + + temp_dir.close().unwrap(); +} + +/// Test with both Get and List access policies - expected to pass. +#[tokio::test] +#[serial] +async fn test_get_and_list_access_policies() { + azure_cli_login( + env::var("AZURE_CLIENT_ID_GET_LIST").expect("Failed to get AZURE_CLIENT_ID_GET_LIST"), + env::var("AZURE_TENANT_ID").expect("Failed to get AZURE_TENANT_ID"), + env::var("AZURE_SUBSCRIPTION_ID").expect("Failed to get AZURE_SUBSCRIPTION_ID"), + ).expect("Failed to log in to Azure CLI"); + + let temp_dir = TempDir::new().unwrap(); + let output_path = temp_dir.child(".env"); + + let mut cmd = Command::cargo_bin(BINARY).unwrap(); + cmd.arg("--vault-name").arg(KEYVAULT) + .arg("--output").arg(output_path.path()); + cmd.assert().success(); + + output_path.assert(predicate::path::is_file()); + output_path.assert(predicate::str::contains("testSecret=testSecretValue")); + output_path.assert(predicate::str::contains("filterTestSecret=filterTestSecretValue")); + + temp_dir.close().unwrap(); +} + +/// Test with both Get and List access policies and filter - expected to pass. +#[tokio::test] +#[serial] +async fn test_get_and_list_access_policies_filter() { + azure_cli_login( + env::var("AZURE_CLIENT_ID_GET_LIST").expect("Failed to get AZURE_CLIENT_ID_GET_LIST"), + env::var("AZURE_TENANT_ID").expect("Failed to get AZURE_TENANT_ID"), + env::var("AZURE_SUBSCRIPTION_ID").expect("Failed to get AZURE_SUBSCRIPTION_ID"), + ).expect("Failed to log in to Azure CLI"); + + let temp_dir = TempDir::new().unwrap(); + let output_path = temp_dir.child(".env"); + + let mut cmd = Command::cargo_bin(BINARY).unwrap(); + cmd.arg("--vault-name").arg(KEYVAULT) + .arg("--output").arg(output_path.path()) + .arg("--filter").arg("filter"); + cmd.assert().success(); + + output_path.assert(predicate::path::is_file()); + output_path.assert(predicate::str::contains("filterTestSecret=filterTestSecretValue")); + + temp_dir.close().unwrap(); +} + +/// Test with both Get and List access policies on a Key Vault with Firewall - expected to fail. +#[tokio::test] +#[serial] +async fn test_get_and_list_access_policies_firewall() { + azure_cli_login( + env::var("AZURE_CLIENT_ID_GET_LIST").expect("Failed to get AZURE_CLIENT_ID_GET_LIST"), + env::var("AZURE_TENANT_ID").expect("Failed to get AZURE_TENANT_ID"), + env::var("AZURE_SUBSCRIPTION_ID").expect("Failed to get AZURE_SUBSCRIPTION_ID"), + ).expect("Failed to log in to Azure CLI"); + + let temp_dir = TempDir::new().unwrap(); + let output_path = temp_dir.child(".env"); + + let mut cmd = Command::cargo_bin(BINARY).unwrap(); + cmd.arg("--vault-name").arg(FIREWALL_KEYVAULT) + .arg("--output").arg(output_path.path()); + cmd.assert().failure().stderr(predicate::str::contains("Make sure you're on the Key Vaults Firewall allowlist.")); + + temp_dir.close().unwrap(); +} + +/// Test with both Get and List access policies on a non-existent Key Vault - expected to fail. +#[tokio::test] +#[serial] +async fn test_get_and_list_access_policies_non_existent() { + azure_cli_login( + env::var("AZURE_CLIENT_ID_GET_LIST").expect("Failed to get AZURE_CLIENT_ID_GET_LIST"), + env::var("AZURE_TENANT_ID").expect("Failed to get AZURE_TENANT_ID"), + env::var("AZURE_SUBSCRIPTION_ID").expect("Failed to get AZURE_SUBSCRIPTION_ID"), + ).expect("Failed to log in to Azure CLI"); + + let temp_dir = TempDir::new().unwrap(); + let output_path = temp_dir.child(".env"); + + let mut cmd = Command::cargo_bin(BINARY).unwrap(); + cmd.arg("--vault-name").arg(NON_EXISTENT_KEYVAULT) + .arg("--output").arg(output_path.path()); + cmd.assert().failure().stderr(predicate::str::contains("Please check that the Key Vault exists or that you have no connectivity issues.")); + + temp_dir.close().unwrap(); +} + From 8432d03949b7410e88c4e5a3027def3ea7609977 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 22 Nov 2023 05:21:12 +0100 Subject: [PATCH 062/196] feat: add concurrency for bicep --- .github/workflows/tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f2ce024..5247634 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,6 +15,8 @@ jobs: name: Deploy Azure resources environment: bicep runs-on: ubuntu-latest + concurrency: + group: bicep env: LOCATION: eastus DEPLOYMENT_NAME: keyweave-${{ github.run_id }} From 068e4063fc714df6f0a6f2ff78253c798a8dcb78 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 22 Nov 2023 05:24:02 +0100 Subject: [PATCH 063/196] fix: make sure environment variables are available --- .github/workflows/tests.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5247634..1fe19d7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -40,6 +40,13 @@ jobs: needs: bicep runs-on: ubuntu-latest environment: test + env: + AZURE_CLIENT_ID_NO_ACCESS: ${{ secrets.AZURE_CLIENT_ID_NO_ACCESS }} + AZURE_CLIENT_ID_GET: ${{ secrets.AZURE_CLIENT_ID_GET }} + AZURE_CLIENT_ID_LIST: ${{ secrets.AZURE_CLIENT_ID_LIST }} + AZURE_CLIENT_ID_GET_LIST: ${{ secrets.AZURE_CLIENT_ID_GET_LIST }} + AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable From b7b2a3de6a56a97917d0e3b2fe2883eea1bf2b12 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Sat, 25 Nov 2023 18:17:17 +0100 Subject: [PATCH 064/196] chore: add debug output and logging --- tests/e2e.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/tests/e2e.rs b/tests/e2e.rs index 58b256b..0d45949 100644 --- a/tests/e2e.rs +++ b/tests/e2e.rs @@ -12,22 +12,24 @@ static FIREWALL_KEYVAULT: &str = "bvdbkeyweavetweukvt2"; static NON_EXISTENT_KEYVAULT: &str = "bvdbkeyweavetweukvt3"; fn azure_cli_login(client_id: String, tenant_id: String, subscription_id: String) -> Result<(), std::io::Error> { - Command::new("az") + println!("Executing 'az login' with client ID: {}", client_id); + let login_output = Command::new("az") .arg("login") .arg("--identity") .arg("--username") - .arg(client_id) + .arg(&client_id) .arg("--tenant") - .arg(tenant_id) + .arg(&tenant_id) .output()?; - - Command::new("az") + println!("Login output: {:?}", login_output); + println!("Executing 'az account set' with subscription ID: {}", subscription_id); + let account_output = Command::new("az") .arg("account") .arg("set") .arg("--subscription") - .arg(subscription_id) + .arg(&subscription_id) .output()?; - + println!("Account output: {:?}", account_output); Ok(()) } From ce9aa2898f6f564585be8aba80ec173ca36e7b92 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Sat, 25 Nov 2023 19:07:07 +0100 Subject: [PATCH 065/196] feat: test multiple jobs --- .github/workflows/checks.yml | 2 +- .github/workflows/tests.yml | 67 +++++++++++++--- bicep/modules/kv.bicep | 2 +- src/main.rs | 41 +++++----- tests/e2e.rs | 143 +++++++++++++---------------------- 5 files changed, 134 insertions(+), 121 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index cf465d3..c66d806 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -39,7 +39,7 @@ jobs: steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - - name: Run tests + - name: Run unit tests run: cargo test --bins build: runs-on: ubuntu-latest diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1fe19d7..2eeba49 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -35,20 +35,67 @@ jobs: template: bicep/main.bicep deploymentName: ${{ env.DEPLOYMENT_NAME }} - test: - name: Tests + tests-no-access: + name: Tests with No Access needs: bicep runs-on: ubuntu-latest environment: test - env: - AZURE_CLIENT_ID_NO_ACCESS: ${{ secrets.AZURE_CLIENT_ID_NO_ACCESS }} - AZURE_CLIENT_ID_GET: ${{ secrets.AZURE_CLIENT_ID_GET }} - AZURE_CLIENT_ID_LIST: ${{ secrets.AZURE_CLIENT_ID_LIST }} - AZURE_CLIENT_ID_GET_LIST: ${{ secrets.AZURE_CLIENT_ID_GET_LIST }} - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable + - name: 'Az CLI login' + uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID_NO_ACCESS }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Run all tests - run: cargo test --all + run: cargo test no_access + tests-get: + name: Tests with Get + needs: bicep + runs-on: ubuntu-latest + environment: test + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: 'Az CLI login' + uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID_GET }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + - name: Run all tests + run: cargo test only_get + tests-list: + name: Tests with List + needs: bicep + runs-on: ubuntu-latest + environment: test + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: 'Az CLI login' + uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID_LIST }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + - name: Run all tests + run: cargo test only_list + tests-get-list: + name: Tests with Get and List + needs: bicep + runs-on: ubuntu-latest + environment: test + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: 'Az CLI login' + uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID_GET_LIST }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + - name: Run all tests + run: cargo test get_and_list_access diff --git a/bicep/modules/kv.bicep b/bicep/modules/kv.bicep index a0bd707..de4d025 100644 --- a/bicep/modules/kv.bicep +++ b/bicep/modules/kv.bicep @@ -8,7 +8,7 @@ var accessPolicies = [for identity in identities: { tenantId: tenant().tenantId objectId: identity.id permissions: { - secrets: contains(identity.name, 'get') && contains(identity.name, 'list') ? ['Get', 'List'] : contains(identity.name, 'get') ? ['Get'] : ['List'] + secrets: contains(identity.name, 'get') && contains(identity.name, 'list') ? ['Get', 'List'] : contains(identity.name, 'get') ? ['Get'] : contains(identity.name, 'list') ? ['List'] : [] } }] diff --git a/src/main.rs b/src/main.rs index 2b11a37..59fe640 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,17 +1,16 @@ use anyhow::Result; +use azure_core::error::HttpError; use azure_identity::DefaultAzureCredential; use azure_security_keyvault::prelude::KeyVaultGetSecretsResponse; use azure_security_keyvault::KeyvaultClient; use clap::Parser; use futures::stream::StreamExt; -use paris::{info, log}; use paris::{error, Logger}; use std::fs::File; use std::io::Write; use std::sync::Arc; use tokio::sync::mpsc; use tokio::sync::Semaphore; -use azure_core::error::HttpError; #[derive(Parser, Debug)] #[clap(author, version, about, long_about = None)] @@ -32,21 +31,20 @@ struct Opts { async fn check_vault_dns(vault_name: &str) -> Result<()> { let vault_host = format!("{}.vault.azure.net", vault_name); - let lookup_result = { - tokio::net::lookup_host((vault_host.as_str(), 443)).await - }; + let lookup_result = { tokio::net::lookup_host((vault_host.as_str(), 443)).await }; match lookup_result { Ok(_) => Ok(()), Err(err) => { error!("DNS lookup failed for Key Vault: {}", vault_name); - info!("Please check that the Key Vault exists or that you have no connectivity issues."); + error!( + "Please check that the Key Vault exists or that you have no connectivity issues." + ); Err(err.into()) } } } - async fn fetch_secrets_from_key_vault( client: &KeyvaultClient, filter: Option<&str>, @@ -58,15 +56,24 @@ async fn fetch_secrets_from_key_vault( let page = match page { Ok(p) => p, Err(err) => { - log!("\n"); - error!("Failed to fetch secrets page: {}", err); + error!("\n"); + error!("Failed to fetch secrets."); let specific_error = err.downcast_ref::(); if let Some(specific_error) = specific_error { - // Check the contents of the specific error - if specific_error.error_message().unwrap().to_string().contains("does not have secrets list permission on key vault") { - info!("Make sure you have List permissions on the Key Vault."); - } else if specific_error.error_message().unwrap().to_string().contains("is not authorized and caller is not a trusted service") { - info!("Make sure you're on the Key Vaults Firewall allowlist."); + if specific_error + .error_message() + .unwrap() + .to_string() + .contains("does not have secrets list permission on key vault") + { + error!("Make sure you have List permissions on the Key Vault."); + } else if specific_error + .error_message() + .unwrap() + .to_string() + .contains("is not authorized and caller is not a trusted service") + { + error!("Make sure you're on the Key Vaults Firewall allowlist."); } } return Err(err.into()); @@ -79,7 +86,6 @@ async fn fetch_secrets_from_key_vault( Ok(secret_values) } - async fn fetch_secrets_from_page( client: &azure_security_keyvault::SecretClient, page: &KeyVaultGetSecretsResponse, @@ -136,9 +142,8 @@ async fn fetch_and_send_secret( let _ = tx.send((secret_id.clone(), bundle.value.clone())).await; (secret_id, bundle.value) } - Err(err) => { - error!("Error fetching secret: {}", err); - info!("Make sure you have Get permissions on the Key Vault."); + Err(_err) => { + error!("Error fetching secret. Make sure you have Get permissions on the Key Vault."); (secret_id, String::new()) } } diff --git a/tests/e2e.rs b/tests/e2e.rs index 0d45949..0b2332f 100644 --- a/tests/e2e.rs +++ b/tests/e2e.rs @@ -1,76 +1,47 @@ use assert_cmd::prelude::*; use assert_fs::prelude::*; use assert_fs::TempDir; -use std::process::Command; use predicates::prelude::*; use serial_test::serial; -use std::env; +use std::process::Command; static BINARY: &str = "keyweave"; static KEYVAULT: &str = "bvdbkeyweavetweukvt1"; static FIREWALL_KEYVAULT: &str = "bvdbkeyweavetweukvt2"; static NON_EXISTENT_KEYVAULT: &str = "bvdbkeyweavetweukvt3"; -fn azure_cli_login(client_id: String, tenant_id: String, subscription_id: String) -> Result<(), std::io::Error> { - println!("Executing 'az login' with client ID: {}", client_id); - let login_output = Command::new("az") - .arg("login") - .arg("--identity") - .arg("--username") - .arg(&client_id) - .arg("--tenant") - .arg(&tenant_id) - .output()?; - println!("Login output: {:?}", login_output); - println!("Executing 'az account set' with subscription ID: {}", subscription_id); - let account_output = Command::new("az") - .arg("account") - .arg("set") - .arg("--subscription") - .arg(&subscription_id) - .output()?; - println!("Account output: {:?}", account_output); - Ok(()) -} - -/// Test with no access policies - expected to fail. #[tokio::test] #[serial] async fn test_no_access_policies() { - azure_cli_login( - env::var("AZURE_CLIENT_ID_NO_ACCESS").expect("Failed to get AZURE_CLIENT_ID_NO_ACCESS"), - env::var("AZURE_TENANT_ID").expect("Failed to get AZURE_TENANT_ID"), - env::var("AZURE_SUBSCRIPTION_ID").expect("Failed to get AZURE_SUBSCRIPTION_ID"), - ).expect("Failed to log in to Azure CLI"); - let temp_dir = TempDir::new().unwrap(); let output_path = temp_dir.child(".env"); let mut cmd = Command::cargo_bin(BINARY).unwrap(); - cmd.arg("--vault-name").arg(KEYVAULT) - .arg("--output").arg(output_path.path()); - cmd.assert().failure().stderr(predicate::str::contains("Make sure you have List permissions on the Key Vault.")); + cmd.arg("--vault-name") + .arg(KEYVAULT) + .arg("--output") + .arg(output_path.path()); + cmd.assert().failure().stderr(predicate::str::contains( + "Make sure you have List permissions on the Key Vault.", + )); temp_dir.close().unwrap(); } -/// Test with only Get access policy - expected to fail. #[tokio::test] #[serial] async fn test_only_get_access_policy() { - azure_cli_login( - env::var("AZURE_CLIENT_ID_GET").expect("Failed to get AZURE_CLIENT_ID_GET"), - env::var("AZURE_TENANT_ID").expect("Failed to get AZURE_TENANT_ID"), - env::var("AZURE_SUBSCRIPTION_ID").expect("Failed to get AZURE_SUBSCRIPTION_ID"), - ).expect("Failed to log in to Azure CLI"); - let temp_dir = TempDir::new().unwrap(); let output_path = temp_dir.child(".env"); let mut cmd = Command::cargo_bin(BINARY).unwrap(); - cmd.arg("--vault-name").arg(KEYVAULT) - .arg("--output").arg(output_path.path()); - cmd.assert().failure().stderr(predicate::str::contains("Make sure you have List permissions on the Key Vault.")); + cmd.arg("--vault-name") + .arg(KEYVAULT) + .arg("--output") + .arg(output_path.path()); + cmd.assert().failure().stderr(predicate::str::contains( + "Make sure you have List permissions on the Key Vault.", + )); temp_dir.close().unwrap(); } @@ -79,19 +50,17 @@ async fn test_only_get_access_policy() { #[tokio::test] #[serial] async fn test_only_list_access_policy() { - azure_cli_login( - env::var("AZURE_CLIENT_ID_LIST").expect("Failed to get AZURE_CLIENT_ID_LIST"), - env::var("AZURE_TENANT_ID").expect("Failed to get AZURE_TENANT_ID"), - env::var("AZURE_SUBSCRIPTION_ID").expect("Failed to get AZURE_SUBSCRIPTION_ID"), - ).expect("Failed to log in to Azure CLI"); - let temp_dir = TempDir::new().unwrap(); let output_path = temp_dir.child(".env"); let mut cmd = Command::cargo_bin(BINARY).unwrap(); - cmd.arg("--vault-name").arg(KEYVAULT) - .arg("--output").arg(output_path.path()); - cmd.assert().success().stderr(predicate::str::contains("Make sure you have Get permissions on the Key Vault.")); + cmd.arg("--vault-name") + .arg(KEYVAULT) + .arg("--output") + .arg(output_path.path()); + cmd.assert().success().stderr(predicate::str::contains( + "Make sure you have Get permissions on the Key Vault.", + )); temp_dir.close().unwrap(); } @@ -100,23 +69,21 @@ async fn test_only_list_access_policy() { #[tokio::test] #[serial] async fn test_get_and_list_access_policies() { - azure_cli_login( - env::var("AZURE_CLIENT_ID_GET_LIST").expect("Failed to get AZURE_CLIENT_ID_GET_LIST"), - env::var("AZURE_TENANT_ID").expect("Failed to get AZURE_TENANT_ID"), - env::var("AZURE_SUBSCRIPTION_ID").expect("Failed to get AZURE_SUBSCRIPTION_ID"), - ).expect("Failed to log in to Azure CLI"); - let temp_dir = TempDir::new().unwrap(); let output_path = temp_dir.child(".env"); let mut cmd = Command::cargo_bin(BINARY).unwrap(); - cmd.arg("--vault-name").arg(KEYVAULT) - .arg("--output").arg(output_path.path()); + cmd.arg("--vault-name") + .arg(KEYVAULT) + .arg("--output") + .arg(output_path.path()); cmd.assert().success(); output_path.assert(predicate::path::is_file()); output_path.assert(predicate::str::contains("testSecret=testSecretValue")); - output_path.assert(predicate::str::contains("filterTestSecret=filterTestSecretValue")); + output_path.assert(predicate::str::contains( + "filterTestSecret=filterTestSecretValue", + )); temp_dir.close().unwrap(); } @@ -125,23 +92,22 @@ async fn test_get_and_list_access_policies() { #[tokio::test] #[serial] async fn test_get_and_list_access_policies_filter() { - azure_cli_login( - env::var("AZURE_CLIENT_ID_GET_LIST").expect("Failed to get AZURE_CLIENT_ID_GET_LIST"), - env::var("AZURE_TENANT_ID").expect("Failed to get AZURE_TENANT_ID"), - env::var("AZURE_SUBSCRIPTION_ID").expect("Failed to get AZURE_SUBSCRIPTION_ID"), - ).expect("Failed to log in to Azure CLI"); - let temp_dir = TempDir::new().unwrap(); let output_path = temp_dir.child(".env"); let mut cmd = Command::cargo_bin(BINARY).unwrap(); - cmd.arg("--vault-name").arg(KEYVAULT) - .arg("--output").arg(output_path.path()) - .arg("--filter").arg("filter"); + cmd.arg("--vault-name") + .arg(KEYVAULT) + .arg("--output") + .arg(output_path.path()) + .arg("--filter") + .arg("filter"); cmd.assert().success(); output_path.assert(predicate::path::is_file()); - output_path.assert(predicate::str::contains("filterTestSecret=filterTestSecretValue")); + output_path.assert(predicate::str::contains( + "filterTestSecret=filterTestSecretValue", + )); temp_dir.close().unwrap(); } @@ -150,19 +116,17 @@ async fn test_get_and_list_access_policies_filter() { #[tokio::test] #[serial] async fn test_get_and_list_access_policies_firewall() { - azure_cli_login( - env::var("AZURE_CLIENT_ID_GET_LIST").expect("Failed to get AZURE_CLIENT_ID_GET_LIST"), - env::var("AZURE_TENANT_ID").expect("Failed to get AZURE_TENANT_ID"), - env::var("AZURE_SUBSCRIPTION_ID").expect("Failed to get AZURE_SUBSCRIPTION_ID"), - ).expect("Failed to log in to Azure CLI"); - let temp_dir = TempDir::new().unwrap(); let output_path = temp_dir.child(".env"); let mut cmd = Command::cargo_bin(BINARY).unwrap(); - cmd.arg("--vault-name").arg(FIREWALL_KEYVAULT) - .arg("--output").arg(output_path.path()); - cmd.assert().failure().stderr(predicate::str::contains("Make sure you're on the Key Vaults Firewall allowlist.")); + cmd.arg("--vault-name") + .arg(FIREWALL_KEYVAULT) + .arg("--output") + .arg(output_path.path()); + cmd.assert().failure().stderr(predicate::str::contains( + "Make sure you're on the Key Vaults Firewall allowlist.", + )); temp_dir.close().unwrap(); } @@ -171,20 +135,17 @@ async fn test_get_and_list_access_policies_firewall() { #[tokio::test] #[serial] async fn test_get_and_list_access_policies_non_existent() { - azure_cli_login( - env::var("AZURE_CLIENT_ID_GET_LIST").expect("Failed to get AZURE_CLIENT_ID_GET_LIST"), - env::var("AZURE_TENANT_ID").expect("Failed to get AZURE_TENANT_ID"), - env::var("AZURE_SUBSCRIPTION_ID").expect("Failed to get AZURE_SUBSCRIPTION_ID"), - ).expect("Failed to log in to Azure CLI"); - let temp_dir = TempDir::new().unwrap(); let output_path = temp_dir.child(".env"); let mut cmd = Command::cargo_bin(BINARY).unwrap(); - cmd.arg("--vault-name").arg(NON_EXISTENT_KEYVAULT) - .arg("--output").arg(output_path.path()); - cmd.assert().failure().stderr(predicate::str::contains("Please check that the Key Vault exists or that you have no connectivity issues.")); + cmd.arg("--vault-name") + .arg(NON_EXISTENT_KEYVAULT) + .arg("--output") + .arg(output_path.path()); + cmd.assert().failure().stderr(predicate::str::contains( + "Please check that the Key Vault exists or that you have no connectivity issues.", + )); temp_dir.close().unwrap(); } - From 6721d580249f5fd4806b2e6c0570384e80d86fcb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Nov 2023 23:00:09 +0000 Subject: [PATCH 066/196] chore(deps): update resource microsoft.keyvault/vaults to 2023-07-01 --- bicep/modules/kv.bicep | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bicep/modules/kv.bicep b/bicep/modules/kv.bicep index de4d025..5d701ad 100644 --- a/bicep/modules/kv.bicep +++ b/bicep/modules/kv.bicep @@ -24,7 +24,7 @@ resource _logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2022-1 Key Vault */ -resource keyVault 'Microsoft.KeyVault/vaults@2023-02-01' = { +resource keyVault 'Microsoft.KeyVault/vaults@2023-07-01' = { name: replace(toLower(format(nameFormat, 'KVT', 1)), '-', '') location: location tags: tags @@ -56,7 +56,7 @@ resource keyVault 'Microsoft.KeyVault/vaults@2023-02-01' = { Key Vault */ -resource keyVaultWithFirewall 'Microsoft.KeyVault/vaults@2023-02-01' = { +resource keyVaultWithFirewall 'Microsoft.KeyVault/vaults@2023-07-01' = { name: replace(toLower(format(nameFormat, 'KVT', 2)), '-', '') location: location tags: tags From eecd5b5b392a7c31425ca6ebf097a3ec818a94cb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Nov 2023 23:01:17 +0000 Subject: [PATCH 067/196] fix(deps): update rust crate clap to 4.4.10 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 26084b7..7b03eef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -329,9 +329,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.8" +version = "4.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64" +checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" dependencies = [ "clap_builder", "clap_derive", @@ -339,9 +339,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.8" +version = "4.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc" +checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index b1ddc77..1d30631 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.75" azure_core = "0.17.0" azure_identity = "0.17.0" azure_security_keyvault = "0.17.0" -clap = { version = "4.4.8", features = ["derive"] } +clap = { version = "4.4.10", features = ["derive"] } futures = "0.3.29" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.34.0", features = ["full"]} From d3ad5688512ffe6bebec1120de0e6a356aa0bfb1 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 1 Dec 2023 00:26:15 +0100 Subject: [PATCH 068/196] feat: add checks and git tags for azure deployed --- .github/workflows/tests.yml | 50 +++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2eeba49..430be3f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -21,19 +21,43 @@ jobs: LOCATION: eastus DEPLOYMENT_NAME: keyweave-${{ github.run_id }} steps: - - uses: actions/checkout@v3 - - uses: azure/login@v1 - with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - name: Deploy Bicep template - uses: azure/arm-deploy@v1 - with: - scope: subscription - region: ${{ env.LOCATION }} - template: bicep/main.bicep - deploymentName: ${{ env.DEPLOYMENT_NAME }} + - uses: actions/checkout@v3 + + - name: Fetch complete history + run: git fetch --prune --unshallow + + - name: Get last deployed commit + id: last_deployed + run: echo "LAST_DEPLOYED_COMMIT=$(git rev-list -n 1 deployed)" >> $GITHUB_ENV + + - name: Check for changes in bicep folder + run: | + if git diff --quiet $LAST_DEPLOYED_COMMIT HEAD -- bicep/ ; then + echo "NO_CHANGES=true" >> $GITHUB_ENV + else + echo "NO_CHANGES=false" >> $GITHUB_ENV + + - if: env.NO_CHANGES == 'false' + uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + + - if: env.NO_CHANGES == 'false' + name: Deploy Bicep template + uses: azure/arm-deploy@v1 + with: + scope: subscription + region: ${{ env.LOCATION }} + template: bicep/main.bicep + deploymentName: ${{ env.DEPLOYMENT_NAME }} + + - if: env.NO_CHANGES == 'false' + name: Tag Deployment + run: | + git tag -fa deployed -m "Deployed to Azure" + git push origin --tags --force tests-no-access: name: Tests with No Access From 9d83d41a36dd0596a9cb4a828295ad28b16ac066 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 1 Dec 2023 00:30:28 +0100 Subject: [PATCH 069/196] fix: hanlde if first add git tag --- .github/workflows/tests.yml | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 430be3f..3941093 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -22,29 +22,32 @@ jobs: DEPLOYMENT_NAME: keyweave-${{ github.run_id }} steps: - uses: actions/checkout@v3 - - name: Fetch complete history run: git fetch --prune --unshallow - - - name: Get last deployed commit - id: last_deployed - run: echo "LAST_DEPLOYED_COMMIT=$(git rev-list -n 1 deployed)" >> $GITHUB_ENV - + - name: Check for deployed tag + id: check_tag + run: | + if git rev-parse --verify deployed >/dev/null 2>&1; then + echo "DEPLOYED_TAG_EXISTS=true" >> $GITHUB_ENV + echo "LAST_DEPLOYED_COMMIT=$(git rev-list -n 1 deployed)" >> $GITHUB_ENV + else + echo "DEPLOYED_TAG_EXISTS=false" >> $GITHUB_ENV + fi - name: Check for changes in bicep folder + if: env.DEPLOYED_TAG_EXISTS == 'true' run: | if git diff --quiet $LAST_DEPLOYED_COMMIT HEAD -- bicep/ ; then echo "NO_CHANGES=true" >> $GITHUB_ENV else echo "NO_CHANGES=false" >> $GITHUB_ENV - - - if: env.NO_CHANGES == 'false' + fi + - if: env.DEPLOYED_TAG_EXISTS == 'false' || env.NO_CHANGES == 'false' uses: azure/login@v1 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - - if: env.NO_CHANGES == 'false' + - if: env.DEPLOYED_TAG_EXISTS == 'false' || env.NO_CHANGES == 'false' name: Deploy Bicep template uses: azure/arm-deploy@v1 with: @@ -52,8 +55,7 @@ jobs: region: ${{ env.LOCATION }} template: bicep/main.bicep deploymentName: ${{ env.DEPLOYMENT_NAME }} - - - if: env.NO_CHANGES == 'false' + - if: env.DEPLOYED_TAG_EXISTS == 'false' || env.NO_CHANGES == 'false' name: Tag Deployment run: | git tag -fa deployed -m "Deployed to Azure" From 4c0ad2ff5f2c39eecc6bb6433d94edd5544afc02 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 1 Dec 2023 00:33:58 +0100 Subject: [PATCH 070/196] fix: add git identity for github actions bot --- .github/workflows/tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3941093..c79920f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -58,6 +58,8 @@ jobs: - if: env.DEPLOYED_TAG_EXISTS == 'false' || env.NO_CHANGES == 'false' name: Tag Deployment run: | + git config --global user.name "${{ env.CI_COMMIT_AUTHOR }}" + git config --global user.email "bartvdbraak@users.noreply.github.com" git tag -fa deployed -m "Deployed to Azure" git push origin --tags --force From 6bb67d26a3c9f4a3c2879dc06ae925ad0349e516 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 1 Dec 2023 00:59:38 +0100 Subject: [PATCH 071/196] fix: allow git write operations --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c79920f..5620c30 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -2,7 +2,7 @@ name: Tests permissions: id-token: write - contents: read + contents: write on: push: From 8e1908130069ae7495758f1feccf7c91fa356c26 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 1 Dec 2023 01:07:35 +0100 Subject: [PATCH 072/196] fix: use github actions bot as identity --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5620c30..a29085f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -58,8 +58,8 @@ jobs: - if: env.DEPLOYED_TAG_EXISTS == 'false' || env.NO_CHANGES == 'false' name: Tag Deployment run: | - git config --global user.name "${{ env.CI_COMMIT_AUTHOR }}" - git config --global user.email "bartvdbraak@users.noreply.github.com" + git config --global user.name "github-actions[bot]" + git config --global user.email "github-actions[bot]@users.noreply.github.com" git tag -fa deployed -m "Deployed to Azure" git push origin --tags --force From 563c52178a06b12766ba2af14f97759ffd1ab213 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 1 Dec 2023 14:18:47 +0100 Subject: [PATCH 073/196] feat: add pre-check before bicep jobs --- .github/workflows/tests.yml | 90 ++++++++++++++++++++----------------- 1 file changed, 49 insertions(+), 41 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a29085f..7e30aa8 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -11,8 +11,38 @@ on: branches: [ main ] jobs: + bicep-pre-check: + name: Bicep Pre-check + environment: bicep + runs-on: ubuntu-latest + outputs: + deployed_tag_exists: ${{ steps.check_tag.outputs.DEPLOYED_TAG_EXISTS }} + no_changes: ${{ steps.check_tag.outputs.NO_CHANGES }} + steps: + - uses: actions/checkout@v3 + - name: Fetch complete history + run: git fetch --prune --unshallow + - name: Check for deployed tag + id: check_tag + run: | + if git rev-parse --verify deployed >/dev/null 2>&1; then + echo "DEPLOYED_TAG_EXISTS=true" >> $GITHUB_ENV + echo "LAST_DEPLOYED_COMMIT=$(git rev-list -n 1 deployed)" >> $GITHUB_ENV + else + echo "DEPLOYED_TAG_EXISTS=false" >> $GITHUB_ENV + fi + - name: Check for changes in bicep folder + if: env.DEPLOYED_TAG_EXISTS == 'true' + run: | + if git diff --quiet $LAST_DEPLOYED_COMMIT HEAD -- bicep/ ; then + echo "NO_CHANGES=true" >> $GITHUB_ENV + else + echo "NO_CHANGES=false" >> $GITHUB_ENV + fi bicep: name: Deploy Azure resources + needs: bicep-pre-check + if: ${{ needs.bicep-pre-check.outputs.deployed_tag_exists }} == 'false' || ${{ needs.bicep-pre-check.outputs.no_changes }} == 'false' environment: bicep runs-on: ubuntu-latest concurrency: @@ -21,47 +51,25 @@ jobs: LOCATION: eastus DEPLOYMENT_NAME: keyweave-${{ github.run_id }} steps: - - uses: actions/checkout@v3 - - name: Fetch complete history - run: git fetch --prune --unshallow - - name: Check for deployed tag - id: check_tag - run: | - if git rev-parse --verify deployed >/dev/null 2>&1; then - echo "DEPLOYED_TAG_EXISTS=true" >> $GITHUB_ENV - echo "LAST_DEPLOYED_COMMIT=$(git rev-list -n 1 deployed)" >> $GITHUB_ENV - else - echo "DEPLOYED_TAG_EXISTS=false" >> $GITHUB_ENV - fi - - name: Check for changes in bicep folder - if: env.DEPLOYED_TAG_EXISTS == 'true' - run: | - if git diff --quiet $LAST_DEPLOYED_COMMIT HEAD -- bicep/ ; then - echo "NO_CHANGES=true" >> $GITHUB_ENV - else - echo "NO_CHANGES=false" >> $GITHUB_ENV - fi - - if: env.DEPLOYED_TAG_EXISTS == 'false' || env.NO_CHANGES == 'false' - uses: azure/login@v1 - with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - if: env.DEPLOYED_TAG_EXISTS == 'false' || env.NO_CHANGES == 'false' - name: Deploy Bicep template - uses: azure/arm-deploy@v1 - with: - scope: subscription - region: ${{ env.LOCATION }} - template: bicep/main.bicep - deploymentName: ${{ env.DEPLOYMENT_NAME }} - - if: env.DEPLOYED_TAG_EXISTS == 'false' || env.NO_CHANGES == 'false' - name: Tag Deployment - run: | - git config --global user.name "github-actions[bot]" - git config --global user.email "github-actions[bot]@users.noreply.github.com" - git tag -fa deployed -m "Deployed to Azure" - git push origin --tags --force + - uses: actions/checkout@v3 + - uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + - name: Deploy Bicep template + uses: azure/arm-deploy@v1 + with: + scope: subscription + region: ${{ env.LOCATION }} + template: bicep/main.bicep + deploymentName: ${{ env.DEPLOYMENT_NAME }} + - name: Tag Deployment + run: | + git config --global user.name "github-actions[bot]" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git tag -fa deployed -m "Deployed to Azure" + git push origin --tags --force tests-no-access: name: Tests with No Access From faf32aeea918e208d53d7ca391c6d3ce3b905daf Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 1 Dec 2023 14:26:12 +0100 Subject: [PATCH 074/196] fix: use id as reference for output var --- .github/workflows/tests.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 7e30aa8..ddb51c3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest outputs: deployed_tag_exists: ${{ steps.check_tag.outputs.DEPLOYED_TAG_EXISTS }} - no_changes: ${{ steps.check_tag.outputs.NO_CHANGES }} + no_changes: ${{ steps.check_changes.outputs.NO_CHANGES }} steps: - uses: actions/checkout@v3 - name: Fetch complete history @@ -32,6 +32,7 @@ jobs: echo "DEPLOYED_TAG_EXISTS=false" >> $GITHUB_ENV fi - name: Check for changes in bicep folder + id: check_changes if: env.DEPLOYED_TAG_EXISTS == 'true' run: | if git diff --quiet $LAST_DEPLOYED_COMMIT HEAD -- bicep/ ; then From ae51c45e5538f7044c9c297d1462f104f2ce335c Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 1 Dec 2023 14:42:27 +0100 Subject: [PATCH 075/196] refactor: use github output variables --- .github/workflows/tests.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ddb51c3..1da5d56 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -26,19 +26,19 @@ jobs: id: check_tag run: | if git rev-parse --verify deployed >/dev/null 2>&1; then - echo "DEPLOYED_TAG_EXISTS=true" >> $GITHUB_ENV - echo "LAST_DEPLOYED_COMMIT=$(git rev-list -n 1 deployed)" >> $GITHUB_ENV + echo "DEPLOYED_TAG_EXISTS=true" >> $GITHUB_OUTPUT + echo "LAST_DEPLOYED_COMMIT=$(git rev-list -n 1 deployed)" >> $GITHUB_OUTPUT else - echo "DEPLOYED_TAG_EXISTS=false" >> $GITHUB_ENV + echo "DEPLOYED_TAG_EXISTS=false" >> $GITHUB_OUTPUT fi - name: Check for changes in bicep folder id: check_changes - if: env.DEPLOYED_TAG_EXISTS == 'true' + if: steps.check_tag.outputs.DEPLOYED_TAG_EXISTS == 'true' run: | - if git diff --quiet $LAST_DEPLOYED_COMMIT HEAD -- bicep/ ; then - echo "NO_CHANGES=true" >> $GITHUB_ENV + if git diff --quiet ${{ steps.check_tag.outputs.LAST_DEPLOYED_COMMIT }} HEAD -- bicep/ ; then + echo "NO_CHANGES=true" >> $GITHUB_OUTPUT else - echo "NO_CHANGES=false" >> $GITHUB_ENV + echo "NO_CHANGES=false" >> $GITHUB_OUTPUT fi bicep: name: Deploy Azure resources From 3916f3dbb94ecafeebbadda9bd955db6035e2989 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 1 Dec 2023 14:45:12 +0100 Subject: [PATCH 076/196] feat: add conditionals to tests --- .github/workflows/tests.yml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1da5d56..57e1427 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -21,7 +21,8 @@ jobs: steps: - uses: actions/checkout@v3 - name: Fetch complete history - run: git fetch --prune --unshallow + run: | + git fetch --prune --unshallow --tags - name: Check for deployed tag id: check_tag run: | @@ -43,7 +44,7 @@ jobs: bicep: name: Deploy Azure resources needs: bicep-pre-check - if: ${{ needs.bicep-pre-check.outputs.deployed_tag_exists }} == 'false' || ${{ needs.bicep-pre-check.outputs.no_changes }} == 'false' + if: needs.bicep-pre-check.outputs.deployed_tag_exists == 'false' || needs.bicep-pre-check.outputs.no_changes == 'false' environment: bicep runs-on: ubuntu-latest concurrency: @@ -75,13 +76,13 @@ jobs: tests-no-access: name: Tests with No Access needs: bicep + if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') runs-on: ubuntu-latest environment: test steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - - name: 'Az CLI login' - uses: azure/login@v1 + - uses: azure/login@v1 with: client-id: ${{ secrets.AZURE_CLIENT_ID_NO_ACCESS }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} @@ -91,13 +92,13 @@ jobs: tests-get: name: Tests with Get needs: bicep + if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') runs-on: ubuntu-latest environment: test steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - - name: 'Az CLI login' - uses: azure/login@v1 + - uses: azure/login@v1 with: client-id: ${{ secrets.AZURE_CLIENT_ID_GET }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} @@ -107,13 +108,13 @@ jobs: tests-list: name: Tests with List needs: bicep + if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') runs-on: ubuntu-latest environment: test steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - - name: 'Az CLI login' - uses: azure/login@v1 + - uses: azure/login@v1 with: client-id: ${{ secrets.AZURE_CLIENT_ID_LIST }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} @@ -123,13 +124,13 @@ jobs: tests-get-list: name: Tests with Get and List needs: bicep + if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') runs-on: ubuntu-latest environment: test steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - - name: 'Az CLI login' - uses: azure/login@v1 + - uses: azure/login@v1 with: client-id: ${{ secrets.AZURE_CLIENT_ID_GET_LIST }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} From 716bafc7ebd400e89bec29fb918e71fbbd64863e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 14:50:17 +0000 Subject: [PATCH 077/196] chore(deps): update actions/checkout action to v4 --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 57e1427..82db391 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -19,7 +19,7 @@ jobs: deployed_tag_exists: ${{ steps.check_tag.outputs.DEPLOYED_TAG_EXISTS }} no_changes: ${{ steps.check_changes.outputs.NO_CHANGES }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Fetch complete history run: | git fetch --prune --unshallow --tags @@ -53,7 +53,7 @@ jobs: LOCATION: eastus DEPLOYMENT_NAME: keyweave-${{ github.run_id }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: azure/login@v1 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} From 1d3389d497b77208dff6287996d0434d2e765346 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 14:50:20 +0000 Subject: [PATCH 078/196] chore(deps): update resource microsoft.resources/resourcegroups to 2023-07-01 --- bicep/main.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bicep/main.bicep b/bicep/main.bicep index 9aa1534..a0738f0 100644 --- a/bicep/main.bicep +++ b/bicep/main.bicep @@ -31,7 +31,7 @@ var nameFormat = '${name.tenantId}-${name.projectId}-${environment}-${name.regio Resource Group */ -resource ResourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' = { +resource ResourceGroup 'Microsoft.Resources/resourceGroups@2023-07-01' = { name: format(nameFormat, 'RG', 1) location: location tags: tags From 3d9cb6ba30e087a3ac5db3687dbdd3d2954fad6e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 15:13:56 +0000 Subject: [PATCH 079/196] build(deps): bump openssl from 0.10.59 to 0.10.60 Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.59 to 0.10.60. - [Release notes](https://github.com/sfackler/rust-openssl/releases) - [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.59...openssl-v0.10.60) --- updated-dependencies: - dependency-name: openssl dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7b03eef..e80aa8c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1169,9 +1169,9 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "openssl" -version = "0.10.59" +version = "0.10.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a257ad03cd8fb16ad4172fedf8094451e1af1c4b70097636ef2eac9a5f0cc33" +checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800" dependencies = [ "bitflags 2.4.1", "cfg-if", @@ -1210,9 +1210,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.95" +version = "0.9.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40a4130519a360279579c2053038317e40eff64d13fd3f004f9e1b72b8a6aaf9" +checksum = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f" dependencies = [ "cc", "libc", From 756cd7f0e5d99080ffa7b4f50c8aebb6f8a72a0b Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 1 Dec 2023 16:32:53 +0100 Subject: [PATCH 080/196] feat: use matrix strategy for testing --- .github/workflows/tests.yml | 72 ++++++++++--------------------------- 1 file changed, 18 insertions(+), 54 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 82db391..f066aff 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -73,67 +73,31 @@ jobs: git tag -fa deployed -m "Deployed to Azure" git push origin --tags --force - tests-no-access: - name: Tests with No Access + tests: + name: Run End-to-End Tests needs: bicep if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') + strategy: + matrix: + include: + - filter: no_access + client-id-ref: AZURE_CLIENT_ID_NO_ACCESS + - filter: only_get + client-id-ref: AZURE_CLIENT_ID_GET + - filter: only_list + client-id-ref: AZURE_CLIENT_ID_LIST + - filter: get_and_list_access + client-id-ref: AZURE_CLIENT_ID_GET_LIST runs-on: ubuntu-latest environment: test steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - - uses: azure/login@v1 + - name: Azure Login + uses: azure/login@v1 with: - client-id: ${{ secrets.AZURE_CLIENT_ID_NO_ACCESS }} + client-id: ${{ secrets[matrix.client-id-ref] }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - name: Run all tests - run: cargo test no_access - tests-get: - name: Tests with Get - needs: bicep - if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') - runs-on: ubuntu-latest - environment: test - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: azure/login@v1 - with: - client-id: ${{ secrets.AZURE_CLIENT_ID_GET }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - name: Run all tests - run: cargo test only_get - tests-list: - name: Tests with List - needs: bicep - if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') - runs-on: ubuntu-latest - environment: test - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: azure/login@v1 - with: - client-id: ${{ secrets.AZURE_CLIENT_ID_LIST }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - name: Run all tests - run: cargo test only_list - tests-get-list: - name: Tests with Get and List - needs: bicep - if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') - runs-on: ubuntu-latest - environment: test - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: azure/login@v1 - with: - client-id: ${{ secrets.AZURE_CLIENT_ID_GET_LIST }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - name: Run all tests - run: cargo test get_and_list_access + - name: Run ${{ matrix.filter }} tests + run: cargo test ${{ matrix.filter }} From a706a50814f60df4f331ee495b845703c06cf78e Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 1 Dec 2023 16:50:30 +0100 Subject: [PATCH 081/196] feat: update packages using cargo --- Cargo.lock | 308 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 198 insertions(+), 110 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e80aa8c..35a1064 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -76,7 +76,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -86,7 +86,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" dependencies = [ "anstyle", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -138,11 +138,11 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.1.0" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb2ab2aa8a746e221ab826c73f48bc6ba41be6763f0855cb249eb6d154cf1d7" +checksum = "dea8b3453dd7cc96711834b75400d671b73e3656975fa68d9f277163b7f7e316" dependencies = [ - "event-listener 3.1.0", + "event-listener 4.0.0", "event-listener-strategy", "pin-project-lite", ] @@ -299,9 +299,9 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cc" -version = "1.0.84" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f8e7c90afad890484a21653d08b6e209ae34770fb5ee298f9c699fcc1e5c856" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "libc", ] @@ -324,7 +324,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -390,9 +390,9 @@ checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935" [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -400,9 +400,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" @@ -413,6 +413,30 @@ dependencies = [ "libc", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "scopeguard", +] + [[package]] name = "crossbeam-utils" version = "0.8.16" @@ -439,7 +463,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if", - "hashbrown 0.14.2", + "hashbrown", "lock_api", "once_cell", "parking_lot_core", @@ -499,13 +523,19 @@ dependencies = [ ] [[package]] -name = "errno" -version = "0.3.6" +name = "equivalent" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -516,9 +546,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "3.1.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" dependencies = [ "concurrent-queue", "parking", @@ -527,11 +557,11 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ - "event-listener 3.1.0", + "event-listener 4.0.0", "pin-project-lite", ] @@ -582,9 +612,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -729,21 +759,21 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "globset" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" +checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" dependencies = [ "aho-corasick", "bstr", - "fnv", "log", - "regex", + "regex-automata", + "regex-syntax", ] [[package]] @@ -759,9 +789,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.21" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" dependencies = [ "bytes", "fnv", @@ -778,15 +808,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.12.3" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "heck" @@ -916,9 +940,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -926,29 +950,28 @@ dependencies = [ [[package]] name = "ignore" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" +checksum = "747ad1b4ae841a78e8aba0d63adbfbeaea26b517b63705d47856b73015d27060" dependencies = [ + "crossbeam-deque", "globset", - "lazy_static", "log", "memchr", - "regex", + "regex-automata", "same-file", - "thread_local", "walkdir", "winapi-util", ] [[package]] name = "indexmap" -version = "1.9.3" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ - "autocfg", - "hashbrown 0.12.3", + "equivalent", + "hashbrown", ] [[package]] @@ -989,9 +1012,9 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "js-sys" -version = "0.3.65" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] @@ -1029,9 +1052,9 @@ checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" [[package]] name = "linux-raw-sys" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "lock_api" @@ -1055,6 +1078,15 @@ version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + [[package]] name = "mime" version = "0.3.17" @@ -1078,7 +1110,7 @@ checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1253,7 +1285,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -1264,9 +1296,9 @@ checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project" @@ -1351,9 +1383,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.69" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] @@ -1533,15 +1565,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.22" +version = "0.38.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80109a168d9bc0c7f483083244543a6eb0dba02295d33ca268145e6190d6df0c" +checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a" dependencies = [ "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1565,7 +1597,7 @@ version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1605,18 +1637,18 @@ checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.192" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.192" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", @@ -1744,7 +1776,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1795,7 +1827,7 @@ dependencies = [ "fastrand 2.0.1", "redox_syscall", "rustix", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1824,16 +1856,6 @@ dependencies = [ "syn", ] -[[package]] -name = "thread_local" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" -dependencies = [ - "cfg-if", - "once_cell", -] - [[package]] name = "time" version = "0.3.30" @@ -1897,7 +1919,7 @@ dependencies = [ "signal-hook-registry", "socket2 0.5.5", "tokio-macros", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2004,9 +2026,9 @@ dependencies = [ [[package]] name = "url" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", "idna", @@ -2022,9 +2044,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.5.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" dependencies = [ "getrandom 0.2.11", ] @@ -2089,9 +2111,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2099,9 +2121,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", @@ -2114,9 +2136,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" +checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" dependencies = [ "cfg-if", "js-sys", @@ -2126,9 +2148,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2136,9 +2158,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", @@ -2149,9 +2171,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "wasm-streams" @@ -2168,9 +2190,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.65" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" dependencies = [ "js-sys", "wasm-bindgen", @@ -2213,7 +2235,7 @@ version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -2222,7 +2244,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", ] [[package]] @@ -2231,13 +2262,28 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -2246,42 +2292,84 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winreg" version = "0.50.0" @@ -2289,5 +2377,5 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ "cfg-if", - "windows-sys", + "windows-sys 0.48.0", ] From 9e735ea44dc939744a2fa52b8956f1b39d1d12fd Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 1 Dec 2023 16:56:01 +0100 Subject: [PATCH 082/196] feat: update package version to 0.2.4 --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 35a1064..5373870 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1021,7 +1021,7 @@ dependencies = [ [[package]] name = "keyweave" -version = "0.2.3" +version = "0.2.4" dependencies = [ "anyhow", "assert_cmd", diff --git a/Cargo.toml b/Cargo.toml index 1d30631..9fbbb0d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyweave" -version = "0.2.3" +version = "0.2.4" edition = "2021" authors = ["Bart van der Braak "] keywords = ["azure", "keyvault", "env"] From 5adb3a2069c8e789333b0641f3f2ccbcb3ac700e Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 1 Dec 2023 20:24:40 +0100 Subject: [PATCH 083/196] docs: correct flag used for vault name --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 40a6e91..6481f33 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ cargo build --release Once built, run Keyweave using Cargo: ```sh -cargo run -- --vault_name [--output ] [--filter ] +cargo run -- --vault-name [--output ] [--filter ] ``` ## Usage @@ -76,17 +76,17 @@ cargo run -- --vault_name [--output ] [--filter ] With the binary on your `PATH`, run Keyweave as follows: ```sh -keyweave --vault_name [--output ] [--filter ] +keyweave --vault-name [--output ] [--filter ] ``` -- `--vault_name `: Sets the name of the Azure Key Vault. +- `--vault-name `: Sets the name of the Azure Key Vault. - `--output `: (Optional) Sets the name of the output file (default: `.env`). - `--filter `: (Optional) Filters the secrets to be retrieved by name. ## Example ```sh -keyweave --vault_name my-key-vault --output my-env-file.env --filter my-secret +keyweave --vault-name my-key-vault --output my-env-file.env --filter my-secret ``` ## Documentation From 939a49e761f5caddff95f7818864a6276de39a91 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Fri, 1 Dec 2023 20:29:52 +0100 Subject: [PATCH 084/196] docs: minor formulation changes --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6481f33..4dbe99a 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Before diving into Keyweave, ensure you have the following prerequisites: az login --tenant "your-tenant-guid" ``` -- Identity has `Get` and `List` Secret Permissions in the Access Policies of the Key Vault. +- The identity you logged in with has `Get` and `List` Secret Permissions in the Access Policies of the Key Vault. ## Installation @@ -83,7 +83,7 @@ keyweave --vault-name [--output ] [--filter ] - `--output `: (Optional) Sets the name of the output file (default: `.env`). - `--filter `: (Optional) Filters the secrets to be retrieved by name. -## Example +### Example ```sh keyweave --vault-name my-key-vault --output my-env-file.env --filter my-secret From 53d8a8e725c63fb613023e6f1791bd26710108e7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 21:39:59 +0000 Subject: [PATCH 085/196] fix(deps): update rust crate clap to 4.4.11 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5373870..46195b3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -329,9 +329,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.10" +version = "4.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" +checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" dependencies = [ "clap_builder", "clap_derive", @@ -339,9 +339,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.9" +version = "4.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1" +checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index 9fbbb0d..39cca7e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.75" azure_core = "0.17.0" azure_identity = "0.17.0" azure_security_keyvault = "0.17.0" -clap = { version = "4.4.10", features = ["derive"] } +clap = { version = "4.4.11", features = ["derive"] } futures = "0.3.29" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.34.0", features = ["full"]} From 07263c76516b0e28bcf74632b4fa407e360136df Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 9 Dec 2023 00:15:30 +0000 Subject: [PATCH 086/196] fix(deps): update rust crate tokio to 1.35.0 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 46195b3..17da441 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1905,9 +1905,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.34.0" +version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" +checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" dependencies = [ "backtrace", "bytes", diff --git a/Cargo.toml b/Cargo.toml index 39cca7e..895add0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ azure_security_keyvault = "0.17.0" clap = { version = "4.4.11", features = ["derive"] } futures = "0.3.29" paris = { version = "1.5.15", features = ["macros"] } -tokio = {version = "1.34.0", features = ["full"]} +tokio = {version = "1.35.0", features = ["full"]} [target.'cfg(all(target_os = "linux", any(target_env = "musl", target_arch = "arm", target_arch = "aarch64")))'.dependencies] openssl = { version = "0.10", features = ["vendored"] } From 2708a152946eb44b454b46ed970e5b0abdc6c1ce Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 09:48:24 +0000 Subject: [PATCH 087/196] fix(deps): update rust crate azure_core to 0.18.0 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 895add0..b081ed8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] anyhow = "1.0.75" -azure_core = "0.17.0" +azure_core = "0.18.0" azure_identity = "0.17.0" azure_security_keyvault = "0.17.0" clap = { version = "4.4.11", features = ["derive"] } From a6a7c1a9332b0434abaebde5c663b5a32632f4ff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 09:49:10 +0000 Subject: [PATCH 088/196] fix(deps): update rust crate azure_security_keyvault to 0.18.0 --- Cargo.lock | 38 ++++++++++++++++++++++++++++++++------ Cargo.toml | 2 +- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 17da441..bdaf185 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -190,6 +190,33 @@ dependencies = [ "uuid", ] +[[package]] +name = "azure_core" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6218987c374650fdad0b476bfc675729762c28dfb35f58608a38a2b1ea337dd" +dependencies = [ + "async-trait", + "base64 0.21.5", + "bytes", + "dyn-clone", + "futures", + "getrandom 0.2.11", + "http-types", + "log", + "once_cell", + "paste", + "pin-project", + "rand 0.8.5", + "reqwest", + "rustc_version", + "serde", + "serde_json", + "time", + "url", + "uuid", +] + [[package]] name = "azure_identity" version = "0.17.0" @@ -198,7 +225,7 @@ checksum = "8bd7ea32ca7eb66ff4757f83baac702ff11d469e5de365b6bc6f79f9c25d3436" dependencies = [ "async-lock", "async-trait", - "azure_core", + "azure_core 0.17.0", "futures", "log", "oauth2", @@ -213,17 +240,16 @@ dependencies = [ [[package]] name = "azure_security_keyvault" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304ad09313aef2847451c3ac10a160922afec260e93e752b70c7a458d4007f1" +checksum = "a7b31bc2b045f0fe1fe377960df975fcf578a22277268c1565fb2b239d9a7ffa" dependencies = [ "async-trait", - "azure_core", + "azure_core 0.18.0", "futures", "serde", "serde_json", "time", - "url", ] [[package]] @@ -1026,7 +1052,7 @@ dependencies = [ "anyhow", "assert_cmd", "assert_fs", - "azure_core", + "azure_core 0.17.0", "azure_identity", "azure_security_keyvault", "clap", diff --git a/Cargo.toml b/Cargo.toml index b081ed8..4d695b5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ repository = "https://github.com/bartvdbraak/keyweave/" anyhow = "1.0.75" azure_core = "0.18.0" azure_identity = "0.17.0" -azure_security_keyvault = "0.17.0" +azure_security_keyvault = "0.18.0" clap = { version = "4.4.11", features = ["derive"] } futures = "0.3.29" paris = { version = "1.5.15", features = ["macros"] } From 01875fbf86ed6efb7d25300054d8c9a6e8f0017a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 09:49:05 +0000 Subject: [PATCH 089/196] fix(deps): update rust crate azure_identity to 0.18.1 --- Cargo.lock | 36 +++++++++++++++++++++++++++++++----- Cargo.toml | 4 ++-- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bdaf185..204a5ac 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -218,20 +218,46 @@ dependencies = [ ] [[package]] -name = "azure_identity" -version = "0.17.0" +name = "azure_core" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bd7ea32ca7eb66ff4757f83baac702ff11d469e5de365b6bc6f79f9c25d3436" +checksum = "a6218987c374650fdad0b476bfc675729762c28dfb35f58608a38a2b1ea337dd" +dependencies = [ + "async-trait", + "base64 0.21.5", + "bytes", + "dyn-clone", + "futures", + "getrandom 0.2.11", + "http-types", + "log", + "once_cell", + "paste", + "pin-project", + "rand 0.8.5", + "reqwest", + "rustc_version", + "serde", + "serde_json", + "time", + "url", + "uuid", +] + +[[package]] +name = "azure_identity" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1eacc4f7fb2a73d57c39139d0fc3aed78435606055779ddaef4b43cdf919a8" dependencies = [ "async-lock", "async-trait", - "azure_core 0.17.0", + "azure_core 0.18.0", "futures", "log", "oauth2", "pin-project", "serde", - "serde_json", "time", "tz-rs", "url", diff --git a/Cargo.toml b/Cargo.toml index 4d695b5..408d0bc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,8 +11,8 @@ repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] anyhow = "1.0.75" -azure_core = "0.18.0" -azure_identity = "0.17.0" +azure_core = "0.17.0" +azure_identity = "0.18.1" azure_security_keyvault = "0.18.0" clap = { version = "4.4.11", features = ["derive"] } futures = "0.3.29" From 7dd49a8744534c897dcf83537c0ebe80b2673304 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 12 Dec 2023 13:56:18 +0100 Subject: [PATCH 090/196] chore(deps): update minor versions --- Cargo.lock | 112 ++++++++++++++++++++--------------------------------- 1 file changed, 42 insertions(+), 70 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 204a5ac..6c0794f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -43,9 +43,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" +checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" dependencies = [ "anstyle", "anstyle-parse", @@ -63,30 +63,30 @@ checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] name = "anstyle-parse" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -138,9 +138,9 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.1.2" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea8b3453dd7cc96711834b75400d671b73e3656975fa68d9f277163b7f7e316" +checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" dependencies = [ "event-listener 4.0.0", "event-listener-strategy", @@ -181,34 +181,6 @@ dependencies = [ "paste", "pin-project", "rand 0.8.5", - "reqwest", - "rustc_version", - "serde", - "serde_json", - "time", - "url", - "uuid", -] - -[[package]] -name = "azure_core" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6218987c374650fdad0b476bfc675729762c28dfb35f58608a38a2b1ea337dd" -dependencies = [ - "async-trait", - "base64 0.21.5", - "bytes", - "dyn-clone", - "futures", - "getrandom 0.2.11", - "http-types", - "log", - "once_cell", - "paste", - "pin-project", - "rand 0.8.5", - "reqwest", "rustc_version", "serde", "serde_json", @@ -427,9 +399,9 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "concurrent-queue" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" dependencies = [ "crossbeam-utils", ] @@ -523,9 +495,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" dependencies = [ "powerfmt", "serde", @@ -889,9 +861,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", @@ -1058,9 +1030,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" @@ -1098,9 +1070,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.150" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "linux-raw-sys" @@ -1156,9 +1128,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", @@ -1247,15 +1219,15 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" -version = "0.10.60" +version = "0.10.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800" +checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45" dependencies = [ "bitflags 2.4.1", "cfg-if", @@ -1285,18 +1257,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.1.6+3.1.4" +version = "300.2.1+3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439fac53e092cd7442a3660c85dde4643ab3b5bd39040912388dcdabf6b88085" +checksum = "3fe476c29791a5ca0d1273c697e96085bbabbbea2ef7afd5617e78a4b40332d3" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.96" +version = "0.9.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f" +checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b" dependencies = [ "cc", "libc", @@ -1617,9 +1589,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.26" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ "bitflags 2.4.1", "errno", @@ -1630,9 +1602,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "same-file" @@ -1839,9 +1811,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" -version = "2.0.39" +version = "2.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "13fa70a4ee923979ffb522cacce59d34421ebdea5625e1073c4326ef9d2dd42e" dependencies = [ "proc-macro2", "quote", @@ -2036,9 +2008,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typenum" @@ -2057,9 +2029,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" [[package]] name = "unicode-ident" From 9fbdf1a7d14ed47b1bfe12bff5b6f400c63f78af Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 12 Dec 2023 15:10:14 +0100 Subject: [PATCH 091/196] feat: consolidate error handling --- src/main.rs | 83 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 56 insertions(+), 27 deletions(-) diff --git a/src/main.rs b/src/main.rs index 59fe640..a6b790a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,17 +1,31 @@ use anyhow::Result; -use azure_core::error::HttpError; use azure_identity::DefaultAzureCredential; use azure_security_keyvault::prelude::KeyVaultGetSecretsResponse; use azure_security_keyvault::KeyvaultClient; use clap::Parser; use futures::stream::StreamExt; use paris::{error, Logger}; +use std::error::Error; +use std::fmt; use std::fs::File; use std::io::Write; use std::sync::Arc; use tokio::sync::mpsc; use tokio::sync::Semaphore; +#[derive(Debug)] +struct CustomError { + message: String, +} + +impl fmt::Display for CustomError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.message) + } +} + +impl Error for CustomError {} + #[derive(Parser, Debug)] #[clap(author, version, about, long_about = None)] struct Opts { @@ -35,12 +49,15 @@ async fn check_vault_dns(vault_name: &str) -> Result<()> { match lookup_result { Ok(_) => Ok(()), - Err(err) => { + Err(_err) => { error!("DNS lookup failed for Key Vault: {}", vault_name); error!( "Please check that the Key Vault exists or that you have no connectivity issues." ); - Err(err.into()) + Err(CustomError { + message: "An error occurred while fetching secrets".to_string(), + } + .into()) } } } @@ -56,27 +73,33 @@ async fn fetch_secrets_from_key_vault( let page = match page { Ok(p) => p, Err(err) => { - error!("\n"); - error!("Failed to fetch secrets."); - let specific_error = err.downcast_ref::(); - if let Some(specific_error) = specific_error { - if specific_error - .error_message() - .unwrap() - .to_string() - .contains("does not have secrets list permission on key vault") - { - error!("Make sure you have List permissions on the Key Vault."); - } else if specific_error - .error_message() - .unwrap() - .to_string() - .contains("is not authorized and caller is not a trusted service") - { - error!("Make sure you're on the Key Vaults Firewall allowlist."); + Logger::new().newline(1); + match err.as_http_error() { + Some(err) => { + if err + .error_message() + .unwrap() + .contains("does not have secrets list permission on key vault") + { + error!("Make sure you have List permissions on the Key Vault.") + } else if err + .error_message() + .unwrap() + .contains("is not authorized and caller is not a trusted service") + { + error!("Make sure you're on the Key Vaults Firewall allowlist.") + } else { + error!("HTTP Error: {}", err); + } } + _ => { + error!("Error: {}", err); + } + }; + return Err(CustomError { + message: "An error occurred while fetching secrets".to_string(), } - return Err(err.into()); + .into()); } }; secret_values @@ -154,15 +177,21 @@ fn create_env_file(secrets: Vec<(String, String)>, output_file: &str) -> Result< Ok(f) => f, Err(err) => { error!("Failed to create output file: {}", err); - return Err(err.into()); + return Err(CustomError { + message: "n Aerror occurred creating file".to_string(), + } + .into()); } }; for (key, value) in secrets { if let Some(secret_name) = key.split('/').last() { - if let Err(err) = writeln!(file, "{}={}", secret_name, value) { - error!("Failed to write to output file: {}: {}", output_file, err); - return Err(err.into()); + if let Err(_err) = writeln!(file, "{}={}", secret_name, value) { + error!("Failed to write to output file: {}", output_file); + return Err(CustomError { + message: "An error occurred while writing secrets to file".to_string(), + } + .into()); } } } @@ -203,7 +232,7 @@ mod tests { #[tokio::main] async fn main() -> Result<()> { let opts: Opts = Opts::parse(); - let mut log = Logger::new(); + let mut log: Logger<'_> = Logger::new(); let vault_url = format!("https://{}.vault.azure.net", opts.vault_name); From 4aa31ffdc1eed05998be4be63c90e41aff750646 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Dec 2023 21:18:44 +0000 Subject: [PATCH 092/196] chore(deps): update actions/download-artifact action to v4 --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d1bce27..20165d5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -163,7 +163,7 @@ jobs: path: ~/.cargo/bin key: sign-tools-${{ hashFiles('.github/workflows/release.yml') }} - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: name: builds From af81fca4ba5e7822e02202db448cf08447bfb90b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Dec 2023 21:18:48 +0000 Subject: [PATCH 093/196] chore(deps): update actions/upload-artifact action to v4 --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d1bce27..36f70ba 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -137,7 +137,7 @@ jobs: dst="keyweave-${{ matrix.target }}" tar cavf "$dst.tar.xz" "$dst" - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: builds retention-days: 1 From 193795cb91758963690dd609a6f3833f76adcb43 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 19:15:43 +0000 Subject: [PATCH 094/196] fix(deps): update rust crate tokio to 1.35.1 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6c0794f..14a23a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1929,9 +1929,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.35.0" +version = "1.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" dependencies = [ "backtrace", "bytes", diff --git a/Cargo.toml b/Cargo.toml index 408d0bc..5763b42 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ azure_security_keyvault = "0.18.0" clap = { version = "4.4.11", features = ["derive"] } futures = "0.3.29" paris = { version = "1.5.15", features = ["macros"] } -tokio = {version = "1.35.0", features = ["full"]} +tokio = {version = "1.35.1", features = ["full"]} [target.'cfg(all(target_os = "linux", any(target_env = "musl", target_arch = "arm", target_arch = "aarch64")))'.dependencies] openssl = { version = "0.10", features = ["vendored"] } From 98bf41c4c54b54f7f04b6fefcd685fba17769dec Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Dec 2023 04:09:08 +0000 Subject: [PATCH 095/196] fix(deps): update rust crate anyhow to 1.0.76 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 14a23a2..a9611fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,9 +91,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355" [[package]] name = "assert_cmd" diff --git a/Cargo.toml b/Cargo.toml index 5763b42..b10e398 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ documentation = "https://docs.rs/keyweave" repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] -anyhow = "1.0.75" +anyhow = "1.0.76" azure_core = "0.17.0" azure_identity = "0.18.1" azure_security_keyvault = "0.18.0" From 4b214976db36f87bf27f55afb5d8f0e0b9a4e6f1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 24 Dec 2023 17:14:35 +0000 Subject: [PATCH 096/196] fix(deps): update rust crate futures to 0.3.30 --- Cargo.lock | 36 ++++++++++++++++++------------------ Cargo.toml | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 14a23a2..03faddb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -645,9 +645,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -660,9 +660,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -670,15 +670,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -687,9 +687,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" @@ -708,9 +708,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", @@ -719,21 +719,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", diff --git a/Cargo.toml b/Cargo.toml index 5763b42..fb4c5d2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ azure_core = "0.17.0" azure_identity = "0.18.1" azure_security_keyvault = "0.18.0" clap = { version = "4.4.11", features = ["derive"] } -futures = "0.3.29" +futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.35.1", features = ["full"]} From 5ff0d583dd031d84ca0ef305a22ede7a0792c6f8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 27 Dec 2023 01:53:28 +0000 Subject: [PATCH 097/196] fix(deps): update rust crate anyhow to 1.0.77 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fc5934a..a058633 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,9 +91,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.76" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355" +checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9" [[package]] name = "assert_cmd" diff --git a/Cargo.toml b/Cargo.toml index f45e29e..f679a71 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ documentation = "https://docs.rs/keyweave" repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] -anyhow = "1.0.76" +anyhow = "1.0.77" azure_core = "0.17.0" azure_identity = "0.18.1" azure_security_keyvault = "0.18.0" From a3524d7b19c3227288ed5960fbf10a62f97baed7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 27 Dec 2023 18:53:22 +0000 Subject: [PATCH 098/196] chore(deps): update rust crate assert_fs to 1.1.0 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fc5934a..d9c5a36 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -112,9 +112,9 @@ dependencies = [ [[package]] name = "assert_fs" -version = "1.0.13" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f070617a68e5c2ed5d06ee8dd620ee18fb72b99f6c094bed34cf8ab07c875b48" +checksum = "adc5d78e9048d836d12a0c0040ca5f45b18a94d204b4ba4f677a8a7de162426b" dependencies = [ "anstyle", "doc-comment", diff --git a/Cargo.toml b/Cargo.toml index f45e29e..e9a306d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,6 +24,6 @@ openssl = { version = "0.10", features = ["vendored"] } [dev-dependencies] assert_cmd = "2.0.12" -assert_fs = "1.0.13" +assert_fs = "1.1.0" predicates = "3.0.4" serial_test = "2.0.0" From 9c6dce50419ac1123dd50a86736d8ad1514c9913 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 19:48:38 +0000 Subject: [PATCH 099/196] fix(deps): update rust crate clap to 4.4.12 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 82815f5..5093434 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -353,9 +353,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.11" +version = "4.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" +checksum = "dcfab8ba68f3668e89f6ff60f5b205cea56aa7b769451a59f34b8682f51c056d" dependencies = [ "clap_builder", "clap_derive", @@ -363,9 +363,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.11" +version = "4.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" +checksum = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index eb950ab..f302303 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.77" azure_core = "0.17.0" azure_identity = "0.18.1" azure_security_keyvault = "0.18.0" -clap = { version = "4.4.11", features = ["derive"] } +clap = { version = "4.4.12", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.35.1", features = ["full"]} From 7065b88d20b0d66241db5454e25a61483744e42e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 31 Dec 2023 00:47:55 +0000 Subject: [PATCH 100/196] fix(deps): update rust crate anyhow to 1.0.78 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5093434..b38a910 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,9 +91,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.77" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9" +checksum = "ca87830a3e3fb156dc96cfbd31cb620265dd053be734723f22b760d6cc3c3051" [[package]] name = "assert_cmd" diff --git a/Cargo.toml b/Cargo.toml index f302303..2a84643 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ documentation = "https://docs.rs/keyweave" repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] -anyhow = "1.0.77" +anyhow = "1.0.78" azure_core = "0.17.0" azure_identity = "0.18.1" azure_security_keyvault = "0.18.0" From d84131cde0b437bc7c2f86f0c86c0c1dbb4f4e45 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 07:29:47 +0000 Subject: [PATCH 101/196] fix(deps): update rust crate anyhow to 1.0.79 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b38a910..63d56bc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,9 +91,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca87830a3e3fb156dc96cfbd31cb620265dd053be734723f22b760d6cc3c3051" +checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" [[package]] name = "assert_cmd" diff --git a/Cargo.toml b/Cargo.toml index 2a84643..97cce5a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ documentation = "https://docs.rs/keyweave" repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] -anyhow = "1.0.78" +anyhow = "1.0.79" azure_core = "0.17.0" azure_identity = "0.18.1" azure_security_keyvault = "0.18.0" From bb4d3b5ef3e617ff8d5022f128678dfd86dbb20d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jan 2024 19:31:53 +0000 Subject: [PATCH 102/196] fix(deps): update rust crate clap to 4.4.13 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 63d56bc..bbb96fb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -353,9 +353,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.12" +version = "4.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfab8ba68f3668e89f6ff60f5b205cea56aa7b769451a59f34b8682f51c056d" +checksum = "52bdc885e4cacc7f7c9eedc1ef6da641603180c783c41a15c264944deeaab642" dependencies = [ "clap_builder", "clap_derive", diff --git a/Cargo.toml b/Cargo.toml index 97cce5a..4e19e56 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.79" azure_core = "0.17.0" azure_identity = "0.18.1" azure_security_keyvault = "0.18.0" -clap = { version = "4.4.12", features = ["derive"] } +clap = { version = "4.4.13", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.35.1", features = ["full"]} From 22f938b01060dea9e345c2d3c86d9b639276f3a8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 21:15:36 +0000 Subject: [PATCH 103/196] fix(deps): update rust crate azure_core to 0.19.0 --- Cargo.lock | 53 +++++++++++++++++++++++++++-------------------------- Cargo.toml | 2 +- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 63d56bc..84ca748 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -164,31 +164,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" -[[package]] -name = "azure_core" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ccd63c07d1fbfb3d4543d7ea800941bf5a30db1911b9b9e4db3b2c4210a434f" -dependencies = [ - "async-trait", - "base64 0.21.5", - "bytes", - "dyn-clone", - "futures", - "getrandom 0.2.11", - "http-types", - "log", - "paste", - "pin-project", - "rand 0.8.5", - "rustc_version", - "serde", - "serde_json", - "time", - "url", - "uuid", -] - [[package]] name = "azure_core" version = "0.18.0" @@ -216,6 +191,32 @@ dependencies = [ "uuid", ] +[[package]] +name = "azure_core" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70fd680c0d0424a518229b1150922f92653ba2ac933aa000abc8bf1ca08105f7" +dependencies = [ + "async-trait", + "base64 0.21.5", + "bytes", + "dyn-clone", + "futures", + "getrandom 0.2.11", + "http-types", + "log", + "once_cell", + "paste", + "pin-project", + "rand 0.8.5", + "rustc_version", + "serde", + "serde_json", + "time", + "url", + "uuid", +] + [[package]] name = "azure_identity" version = "0.18.1" @@ -1050,7 +1051,7 @@ dependencies = [ "anyhow", "assert_cmd", "assert_fs", - "azure_core 0.17.0", + "azure_core 0.19.0", "azure_identity", "azure_security_keyvault", "clap", diff --git a/Cargo.toml b/Cargo.toml index 97cce5a..bc0eefb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] anyhow = "1.0.79" -azure_core = "0.17.0" +azure_core = "0.19.0" azure_identity = "0.18.1" azure_security_keyvault = "0.18.0" clap = { version = "4.4.12", features = ["derive"] } From 74fe383e8ec77a846c082de6cb028f436a9831fe Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 6 Jan 2024 23:13:51 +0000 Subject: [PATCH 104/196] chore(deps): update rust crate serial_test to v3 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 84ca748..cd59dbf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1726,9 +1726,9 @@ dependencies = [ [[package]] name = "serial_test" -version = "2.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e56dd856803e253c8f298af3f4d7eb0ae5e23a737252cd90bb4f3b435033b2d" +checksum = "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d" dependencies = [ "dashmap", "futures", @@ -1740,9 +1740,9 @@ dependencies = [ [[package]] name = "serial_test_derive" -version = "2.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" +checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index bc0eefb..e0a1bec 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,4 +26,4 @@ openssl = { version = "0.10", features = ["vendored"] } assert_cmd = "2.0.12" assert_fs = "1.1.0" predicates = "3.0.4" -serial_test = "2.0.0" +serial_test = "3.0.0" From 1572e40dd00c9fcaee72e0c946a931df1c6aa688 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 21:31:50 +0000 Subject: [PATCH 105/196] fix(deps): update rust crate azure_identity to 0.19.0 --- Cargo.lock | 7 ++++--- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cd07c3a..509132c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -209,6 +209,7 @@ dependencies = [ "paste", "pin-project", "rand 0.8.5", + "reqwest", "rustc_version", "serde", "serde_json", @@ -219,13 +220,13 @@ dependencies = [ [[package]] name = "azure_identity" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1eacc4f7fb2a73d57c39139d0fc3aed78435606055779ddaef4b43cdf919a8" +checksum = "a6d2060f5b2e1c664026ca4edd561306c473be887c1f7a81f10bf06f9b71c63f" dependencies = [ "async-lock", "async-trait", - "azure_core 0.18.0", + "azure_core 0.19.0", "futures", "log", "oauth2", diff --git a/Cargo.toml b/Cargo.toml index 263ac9c..9705106 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] anyhow = "1.0.79" azure_core = "0.19.0" -azure_identity = "0.18.1" +azure_identity = "0.19.0" azure_security_keyvault = "0.18.0" clap = { version = "4.4.13", features = ["derive"] } futures = "0.3.30" From c12f15ce9992a9d07526f210919fefec3a8a4089 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 7 Jan 2024 20:41:39 +0000 Subject: [PATCH 106/196] fix(deps): update rust crate azure_security_keyvault to 0.19.0 --- Cargo.lock | 242 +++++++++++++++++++++-------------------------------- Cargo.toml | 2 +- 2 files changed, 95 insertions(+), 149 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 509132c..ba6ed86 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -138,20 +138,20 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" +checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ - "event-listener 4.0.0", + "event-listener 4.0.3", "event-listener-strategy", "pin-project-lite", ] [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", @@ -164,33 +164,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" -[[package]] -name = "azure_core" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6218987c374650fdad0b476bfc675729762c28dfb35f58608a38a2b1ea337dd" -dependencies = [ - "async-trait", - "base64 0.21.5", - "bytes", - "dyn-clone", - "futures", - "getrandom 0.2.11", - "http-types", - "log", - "once_cell", - "paste", - "pin-project", - "rand 0.8.5", - "reqwest", - "rustc_version", - "serde", - "serde_json", - "time", - "url", - "uuid", -] - [[package]] name = "azure_core" version = "0.19.0" @@ -198,11 +171,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70fd680c0d0424a518229b1150922f92653ba2ac933aa000abc8bf1ca08105f7" dependencies = [ "async-trait", - "base64 0.21.5", + "base64 0.21.6", "bytes", "dyn-clone", "futures", - "getrandom 0.2.11", + "getrandom 0.2.12", "http-types", "log", "once_cell", @@ -226,7 +199,7 @@ checksum = "a6d2060f5b2e1c664026ca4edd561306c473be887c1f7a81f10bf06f9b71c63f" dependencies = [ "async-lock", "async-trait", - "azure_core 0.19.0", + "azure_core", "futures", "log", "oauth2", @@ -240,12 +213,12 @@ dependencies = [ [[package]] name = "azure_security_keyvault" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7b31bc2b045f0fe1fe377960df975fcf578a22277268c1565fb2b239d9a7ffa" +checksum = "9c32a5dbb8b6f67ed8b8fdc7137a912f3b6547af7f961aedb42bb553ee394f5b" dependencies = [ "async-trait", - "azure_core 0.18.0", + "azure_core", "futures", "serde", "serde_json", @@ -275,9 +248,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.5" +version = "0.21.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +checksum = "c79fed4cdb43e993fcdadc7e58a09fd0e3e649c4436fa11da71c9f1f3ee7feb9" [[package]] name = "bitflags" @@ -302,9 +275,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" +checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" dependencies = [ "memchr", "regex-automata", @@ -355,9 +328,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.13" +version = "4.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52bdc885e4cacc7f7c9eedc1ef6da641603180c783c41a15c264944deeaab642" +checksum = "33e92c5c1a78c62968ec57dbc2440366a2d6e5a23faf829970ff1585dc6b18e2" dependencies = [ "clap_builder", "clap_derive", @@ -365,9 +338,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.12" +version = "4.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9" +checksum = "f4323769dc8a61e2c39ad7dc26f6f2800524691a44d74fe3d1071a5c24db6370" dependencies = [ "anstream", "anstyle", @@ -432,45 +405,37 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", - "memoffset", - "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" [[package]] name = "crypto-common" @@ -497,9 +462,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", "serde", @@ -572,9 +537,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "4.0.0" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" +checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" dependencies = [ "concurrent-queue", "parking", @@ -587,7 +552,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ - "event-listener 4.0.0", + "event-listener 4.0.3", "pin-project-lite", ] @@ -772,9 +737,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if", "js-sys", @@ -906,9 +871,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ "bytes", "futures-channel", @@ -921,7 +886,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2", "tokio", "tower-service", "tracing", @@ -943,9 +908,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -976,9 +941,9 @@ dependencies = [ [[package]] name = "ignore" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747ad1b4ae841a78e8aba0d63adbfbeaea26b517b63705d47856b73015d27060" +checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" dependencies = [ "crossbeam-deque", "globset", @@ -1052,7 +1017,7 @@ dependencies = [ "anyhow", "assert_cmd", "assert_fs", - "azure_core 0.19.0", + "azure_core", "azure_identity", "azure_security_keyvault", "clap", @@ -1072,9 +1037,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.151" +version = "0.2.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" +checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" [[package]] name = "linux-raw-sys" @@ -1100,18 +1065,9 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "mime" @@ -1199,7 +1155,7 @@ checksum = "c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f" dependencies = [ "base64 0.13.1", "chrono", - "getrandom 0.2.11", + "getrandom 0.2.12", "http", "rand 0.8.5", "serde", @@ -1212,9 +1168,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] @@ -1227,9 +1183,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" -version = "0.10.61" +version = "0.10.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45" +checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671" dependencies = [ "bitflags 2.4.1", "cfg-if", @@ -1268,9 +1224,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.97" +version = "0.9.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b" +checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7" dependencies = [ "cc", "libc", @@ -1360,9 +1316,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" [[package]] name = "powerfmt" @@ -1409,18 +1365,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -1484,7 +1440,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.12", ] [[package]] @@ -1536,11 +1492,11 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" -version = "0.11.22" +version = "0.11.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" dependencies = [ - "base64 0.21.5", + "base64 0.21.6", "bytes", "encoding_rs", "futures-core", @@ -1619,11 +1575,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1657,24 +1613,24 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" [[package]] name = "serde" -version = "1.0.193" +version = "1.0.195" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.195" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" dependencies = [ "proc-macro2", "quote", @@ -1683,9 +1639,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" dependencies = [ "itoa", "ryu", @@ -1694,9 +1650,9 @@ dependencies = [ [[package]] name = "serde_path_to_error" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335" +checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c" dependencies = [ "itoa", "serde", @@ -1785,16 +1741,6 @@ version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "socket2" version = "0.5.5" @@ -1813,9 +1759,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" -version = "2.0.40" +version = "2.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13fa70a4ee923979ffb522cacce59d34421ebdea5625e1073c4326ef9d2dd42e" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" dependencies = [ "proc-macro2", "quote", @@ -1845,15 +1791,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.8.1" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" dependencies = [ "cfg-if", "fastrand 2.0.1", "redox_syscall", "rustix", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1864,18 +1810,18 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" dependencies = [ "proc-macro2", "quote", @@ -1884,9 +1830,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" dependencies = [ "deranged", "itoa", @@ -1907,9 +1853,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" dependencies = [ "time-core", ] @@ -1943,7 +1889,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.5", + "socket2", "tokio-macros", "windows-sys 0.48.0", ] @@ -2074,7 +2020,7 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.12", ] [[package]] @@ -2257,11 +2203,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.52.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 9705106..c3aaff3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ repository = "https://github.com/bartvdbraak/keyweave/" anyhow = "1.0.79" azure_core = "0.19.0" azure_identity = "0.19.0" -azure_security_keyvault = "0.18.0" +azure_security_keyvault = "0.19.0" clap = { version = "4.4.13", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } From 112e2cedb2b10dd63673ee472bf9a9d6c4ede766 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Jan 2024 12:08:17 +0000 Subject: [PATCH 107/196] fix(deps): update rust crate clap to 4.4.14 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index c3aaff3..8a56a82 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.79" azure_core = "0.19.0" azure_identity = "0.19.0" azure_security_keyvault = "0.19.0" -clap = { version = "4.4.13", features = ["derive"] } +clap = { version = "4.4.14", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.35.1", features = ["full"]} From 4f15b45e7296b2bba1aeacd01a9831e5fbac173b Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 10 Jan 2024 15:41:47 +0100 Subject: [PATCH 108/196] feat: add code of conduct document --- CODE_OF_CONDUCT.md | 128 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..06de221 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +[bart@vanderbraak.nl](mailto:bart@vanderbraak.nl). +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. \ No newline at end of file From ea305f2cf38a4b703ec5acd1cf2d9d02be224e77 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Wed, 10 Jan 2024 15:41:58 +0100 Subject: [PATCH 109/196] feat: add security document --- SECURITY.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..3d04623 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,31 @@ +# Security Policy + +## Supported Versions + +Use the latest version of Keyweave for the latest security updates. + +## Reporting Vulnerabilities + +To report a security issue, please email [bart@vanderbraak.nl](mailto:bart@vanderbraak.nl) with a detailed description and steps to reproduce. Do not file a public issue for security vulnerabilities. + +### Response Timeline + +We aim to respond to security reports within 48 hours, and to patch the issue within a reasonable timeframe depending on the severity. + +### Responsible Disclosure + +Please allow us a reasonable timeframe to address the issue before publicly disclosing it. + +### Acknowledgements + +We appreciate the responsible disclosure of issues by our users and will acknowledge contributors in our release notes. + +## Security Best Practices + +- Ensure you are running the latest version of Keyweave. +- Follow secure password and authentication practices. + +## Contact Alternatives + +If you are unable to send an email, please open an issue on GitHub without disclosing details such that we can establish a alternative form of communication. + From 98aba8f7843fb8ac841e3516a83f193e653cfd00 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 19:12:05 +0000 Subject: [PATCH 110/196] fix(deps): update rust crate clap to 4.4.15 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ba6ed86..144e049 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -328,9 +328,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.14" +version = "4.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e92c5c1a78c62968ec57dbc2440366a2d6e5a23faf829970ff1585dc6b18e2" +checksum = "c12ed66a79a555082f595f7eb980d08669de95009dd4b3d61168c573ebe38fc9" dependencies = [ "clap_builder", "clap_derive", @@ -338,9 +338,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.14" +version = "4.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4323769dc8a61e2c39ad7dc26f6f2800524691a44d74fe3d1071a5c24db6370" +checksum = "0f4645eab3431e5a8403a96bea02506a8b35d28cd0f0330977dd5d22f9c84f43" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index 8a56a82..1a47ea6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.79" azure_core = "0.19.0" azure_identity = "0.19.0" azure_security_keyvault = "0.19.0" -clap = { version = "4.4.14", features = ["derive"] } +clap = { version = "4.4.15", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.35.1", features = ["full"]} From c1df565bd7376aac718cb7c7730c12c9853aedbf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jan 2024 03:13:33 +0000 Subject: [PATCH 111/196] chore(deps): update rust crate assert_fs to 1.1.1 --- Cargo.lock | 10 +++++----- Cargo.toml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 144e049..d5ef725 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -112,9 +112,9 @@ dependencies = [ [[package]] name = "assert_fs" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc5d78e9048d836d12a0c0040ca5f45b18a94d204b4ba4f677a8a7de162426b" +checksum = "2cd762e110c8ed629b11b6cde59458cc1c71de78ebbcc30099fc8e0403a2a2ec" dependencies = [ "anstyle", "doc-comment", @@ -769,11 +769,11 @@ dependencies = [ [[package]] name = "globwalk" -version = "0.8.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc" +checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "ignore", "walkdir", ] diff --git a/Cargo.toml b/Cargo.toml index 1a47ea6..5a8b904 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,6 +24,6 @@ openssl = { version = "0.10", features = ["vendored"] } [dev-dependencies] assert_cmd = "2.0.12" -assert_fs = "1.1.0" +assert_fs = "1.1.1" predicates = "3.0.4" serial_test = "3.0.0" From af02c1b5a7039957c16e4ac0e583a6b11299be5d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jan 2024 03:13:38 +0000 Subject: [PATCH 112/196] fix(deps): update rust crate clap to 4.4.16 --- Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 144e049..1c5c335 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -43,9 +43,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.5" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" +checksum = "4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba" dependencies = [ "anstyle", "anstyle-parse", @@ -328,9 +328,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.15" +version = "4.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c12ed66a79a555082f595f7eb980d08669de95009dd4b3d61168c573ebe38fc9" +checksum = "58e54881c004cec7895b0068a0a954cd5d62da01aef83fa35b1e594497bf5445" dependencies = [ "clap_builder", "clap_derive", @@ -338,9 +338,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.15" +version = "4.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4645eab3431e5a8403a96bea02506a8b35d28cd0f0330977dd5d22f9c84f43" +checksum = "59cb82d7f531603d2fd1f507441cdd35184fa81beff7bd489570de7f773460bb" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index 1a47ea6..3050380 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.79" azure_core = "0.19.0" azure_identity = "0.19.0" azure_security_keyvault = "0.19.0" -clap = { version = "4.4.15", features = ["derive"] } +clap = { version = "4.4.16", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.35.1", features = ["full"]} From 209b1b36c690a95a767fa324448eebc9f22e61f2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jan 2024 06:07:53 +0000 Subject: [PATCH 113/196] chore(deps): update rust crate assert_cmd to 2.0.13 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6a7ef08..45d8798 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,9 +97,9 @@ checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" [[package]] name = "assert_cmd" -version = "2.0.12" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6" +checksum = "00ad3f3a942eee60335ab4342358c161ee296829e0d16ff42fc1d6cb07815467" dependencies = [ "anstyle", "bstr", diff --git a/Cargo.toml b/Cargo.toml index 1ec4a5f..284664a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ tokio = {version = "1.35.1", features = ["full"]} openssl = { version = "0.10", features = ["vendored"] } [dev-dependencies] -assert_cmd = "2.0.12" +assert_cmd = "2.0.13" assert_fs = "1.1.1" predicates = "3.0.4" serial_test = "3.0.0" From 5a026fab532c99bba841dc6ee8585e6a77186569 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 16:48:44 +0000 Subject: [PATCH 114/196] fix(deps): update rust crate clap to 4.4.17 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 45d8798..8bcf75a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -328,9 +328,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.16" +version = "4.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58e54881c004cec7895b0068a0a954cd5d62da01aef83fa35b1e594497bf5445" +checksum = "80932e03c33999b9235edb8655bc9df3204adc9887c2f95b50cb1deb9fd54253" dependencies = [ "clap_builder", "clap_derive", @@ -338,9 +338,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.16" +version = "4.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59cb82d7f531603d2fd1f507441cdd35184fa81beff7bd489570de7f773460bb" +checksum = "d6c0db58c659eef1c73e444d298c27322a1b52f6927d2ad470c0c0f96fa7b8fa" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index 284664a..fad94b1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.79" azure_core = "0.19.0" azure_identity = "0.19.0" azure_security_keyvault = "0.19.0" -clap = { version = "4.4.16", features = ["derive"] } +clap = { version = "4.4.17", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.35.1", features = ["full"]} From e92ae4208b798f8f37e3e30c93afb765639a9cd1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 21:10:46 +0000 Subject: [PATCH 115/196] chore(deps): update rust crate predicates to 3.1.0 --- Cargo.lock | 20 ++------------------ Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8bcf75a..356ac1e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -498,12 +498,6 @@ version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" -[[package]] -name = "either" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" - [[package]] name = "encoding_rs" version = "0.8.33" @@ -986,15 +980,6 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.10" @@ -1334,14 +1319,13 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "3.0.4" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0" +checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" dependencies = [ "anstyle", "difflib", "float-cmp", - "itertools", "normalize-line-endings", "predicates-core", "regex", diff --git a/Cargo.toml b/Cargo.toml index fad94b1..ed73b57 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,5 +25,5 @@ openssl = { version = "0.10", features = ["vendored"] } [dev-dependencies] assert_cmd = "2.0.13" assert_fs = "1.1.1" -predicates = "3.0.4" +predicates = "3.1.0" serial_test = "3.0.0" From 88a977aa99cdaf06686c9d87748f43aa4d51108d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jan 2024 21:21:02 +0000 Subject: [PATCH 116/196] fix(deps): update rust crate clap to 4.4.18 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 356ac1e..56304f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -328,9 +328,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.17" +version = "4.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80932e03c33999b9235edb8655bc9df3204adc9887c2f95b50cb1deb9fd54253" +checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" dependencies = [ "clap_builder", "clap_derive", @@ -338,9 +338,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.17" +version = "4.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c0db58c659eef1c73e444d298c27322a1b52f6927d2ad470c0c0f96fa7b8fa" +checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index ed73b57..9f96c2f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.79" azure_core = "0.19.0" azure_identity = "0.19.0" azure_security_keyvault = "0.19.0" -clap = { version = "4.4.17", features = ["derive"] } +clap = { version = "4.4.18", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.35.1", features = ["full"]} From 1c355726730483e3329f18a83e69391c10bdfdcb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 20:12:56 +0000 Subject: [PATCH 117/196] chore(deps): update actions/cache action to v4 --- .github/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0dfa8a5..a549de5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -87,12 +87,12 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/cache@v3 + - uses: actions/cache@v4 with: path: ~/.cargo/registry key: ${{ runner.os }}-cargo-registry-${{ hashFiles('Cargo.lock') }} - - uses: actions/cache@v3 + - uses: actions/cache@v4 if: startsWith(matrix.name, 'linux-') with: path: ~/.cargo/bin @@ -158,7 +158,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/cache@v3 + - uses: actions/cache@v4 with: path: ~/.cargo/bin key: sign-tools-${{ hashFiles('.github/workflows/release.yml') }} From a9cc49b1f9dd8d818d95117b6d6330e4896c5f6f Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Mon, 22 Jan 2024 11:14:06 +0100 Subject: [PATCH 118/196] feat: bump version to 0.2.5 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 9f96c2f..3bca5c4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyweave" -version = "0.2.4" +version = "0.2.5" edition = "2021" authors = ["Bart van der Braak "] keywords = ["azure", "keyvault", "env"] From 8a9001b932261604a10b29d95e527fc98839fd78 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Mon, 22 Jan 2024 17:58:26 +0100 Subject: [PATCH 119/196] feat: add latest updates of cargo deps --- Cargo.lock | 108 ++++++++++++++++++++++++++--------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 56304f9..9ab12e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -43,9 +43,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.7" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba" +checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" dependencies = [ "anstyle", "anstyle-parse", @@ -171,7 +171,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70fd680c0d0424a518229b1150922f92653ba2ac933aa000abc8bf1ca08105f7" dependencies = [ "async-trait", - "base64 0.21.6", + "base64 0.21.7", "bytes", "dyn-clone", "futures", @@ -248,9 +248,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.6" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79fed4cdb43e993fcdadc7e58a09fd0e3e649c4436fa11da71c9f1f3ee7feb9" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "bitflags" @@ -260,9 +260,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" [[package]] name = "block-buffer" @@ -767,16 +767,16 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "ignore", "walkdir", ] [[package]] name = "h2" -version = "0.3.22" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" dependencies = [ "bytes", "fnv", @@ -805,9 +805,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" [[package]] name = "http" @@ -988,16 +988,16 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" dependencies = [ "wasm-bindgen", ] [[package]] name = "keyweave" -version = "0.2.4" +version = "0.2.5" dependencies = [ "anyhow", "assert_cmd", @@ -1028,9 +1028,9 @@ checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" [[package]] name = "linux-raw-sys" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "lock_api" @@ -1168,11 +1168,11 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" -version = "0.10.62" +version = "0.10.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671" +checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "cfg-if", "foreign-types", "libc", @@ -1209,9 +1209,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.98" +version = "0.9.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7" +checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" dependencies = [ "cc", "libc", @@ -1301,9 +1301,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" +checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" [[package]] name = "powerfmt" @@ -1349,9 +1349,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.76" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] @@ -1447,9 +1447,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.2" +version = "1.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", @@ -1459,9 +1459,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a" dependencies = [ "aho-corasick", "memchr", @@ -1480,7 +1480,7 @@ version = "0.11.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" dependencies = [ - "base64 0.21.6", + "base64 0.21.7", "bytes", "encoding_rs", "futures-core", @@ -1531,11 +1531,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.28" +version = "0.38.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "errno", "libc", "linux-raw-sys", @@ -1721,9 +1721,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" [[package]] name = "socket2" @@ -1961,9 +1961,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -2000,9 +2000,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" dependencies = [ "getrandom 0.2.12", ] @@ -2067,9 +2067,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2077,9 +2077,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" dependencies = [ "bumpalo", "log", @@ -2092,9 +2092,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.39" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461" dependencies = [ "cfg-if", "js-sys", @@ -2104,9 +2104,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2114,9 +2114,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" dependencies = [ "proc-macro2", "quote", @@ -2127,9 +2127,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" [[package]] name = "wasm-streams" @@ -2146,9 +2146,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" dependencies = [ "js-sys", "wasm-bindgen", From 43ba0e11ef2db355bbcae894b14e323fb634b903 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 23 Jan 2024 00:37:01 +0100 Subject: [PATCH 120/196] fix: use dist folder as artifact --- .github/workflows/release.yml | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a549de5..b41dbb7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -104,7 +104,6 @@ jobs: - uses: taiki-e/setup-cross-toolchain-action@v1 with: - # NB: sets CARGO_BUILD_TARGET evar - do not need --target flag in build target: ${{ matrix.target }} - uses: taiki-e/install-action@cross @@ -117,33 +116,28 @@ jobs: run: | echo "${{ needs.pre-check.outputs.version }}" > VERSION - - name: Package + - name: Archive and Package shell: bash run: | set -euxo pipefail ext="" [[ "${{ matrix.name }}" == windows-* ]] && ext=".exe" bin="target/${{ matrix.target }}/release/keyweave${ext}" - strip "$bin" || true + [[ "${{ matrix.name }}" != windows-* ]] && strip "$bin" dst="keyweave-${{ matrix.target }}" - mkdir "$dst" + mkdir -p "$dst" dist cp "$bin" "$dst/" - - - name: Archive (tar) - if: '! startsWith(matrix.name, ''windows-'')' - shell: bash - run: | - set -euxo pipefail - dst="keyweave-${{ matrix.target }}" - tar cavf "$dst.tar.xz" "$dst" + if [[ ${{ !startsWith(matrix.name, 'windows') }} ]] ; then + tar cavf "$dst.tar.xz" "$dst" + mv "$dst.tar.xz" dist/ + else + mv "$dst/keyweave${ext}" dist/keyweave-${{ matrix.target }}.exe + fi - uses: actions/upload-artifact@v4 with: - name: builds - retention-days: 1 - path: | - keyweave-*.tar.xz - keyweave-x86_64-pc-windows-gnu/keyweave.exe + name: dist-${{ matrix.target }} + path: dist release: needs: build @@ -165,7 +159,9 @@ jobs: - uses: actions/download-artifact@v4 with: - name: builds + name: dist-* + merge-multiple: true + path: dist - name: Checksums with SHA512 and SHA256 run: | From 0b685a051a726b4fca2c4d300e9c20813ba6a1a7 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 23 Jan 2024 00:53:04 +0100 Subject: [PATCH 121/196] fix: strip command in release workflow always return --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b41dbb7..6219d01 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -123,7 +123,7 @@ jobs: ext="" [[ "${{ matrix.name }}" == windows-* ]] && ext=".exe" bin="target/${{ matrix.target }}/release/keyweave${ext}" - [[ "${{ matrix.name }}" != windows-* ]] && strip "$bin" + strip "$bin" || true dst="keyweave-${{ matrix.target }}" mkdir -p "$dst" dist cp "$bin" "$dst/" From dedca912f0f2330b2159170f7db659ecb82fee7d Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 23 Jan 2024 01:05:04 +0100 Subject: [PATCH 122/196] fix: change path to pattern in download --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6219d01..df7aae5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -159,7 +159,7 @@ jobs: - uses: actions/download-artifact@v4 with: - name: dist-* + pattern: dist-* merge-multiple: true path: dist From 60fd9d92f2567d5af551ca4836308ca1dd31d647 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 14:24:10 +0000 Subject: [PATCH 123/196] fix(deps): update rust crate tokio to 1.36.0 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9ab12e9..5cbd711 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1861,9 +1861,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.35.1" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" dependencies = [ "backtrace", "bytes", diff --git a/Cargo.toml b/Cargo.toml index 3bca5c4..8c843ab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ azure_security_keyvault = "0.19.0" clap = { version = "4.4.18", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } -tokio = {version = "1.35.1", features = ["full"]} +tokio = {version = "1.36.0", features = ["full"]} [target.'cfg(all(target_os = "linux", any(target_env = "musl", target_arch = "arm", target_arch = "aarch64")))'.dependencies] openssl = { version = "0.10", features = ["vendored"] } From 0cd8d904ab98e6d6616eda867cd886db78a4ac45 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 Feb 2024 19:08:48 +0000 Subject: [PATCH 124/196] fix(deps): update rust crate clap to 4.5.0 --- Cargo.lock | 20 ++++++++++---------- Cargo.toml | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9ab12e9..b27f475 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -328,9 +328,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.18" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" +checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" dependencies = [ "clap_builder", "clap_derive", @@ -338,9 +338,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.18" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" +checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" dependencies = [ "anstream", "anstyle", @@ -350,9 +350,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.4.7" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" dependencies = [ "heck", "proc-macro2", @@ -362,9 +362,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "colorchoice" @@ -1737,9 +1737,9 @@ dependencies = [ [[package]] name = "strsim" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" [[package]] name = "syn" diff --git a/Cargo.toml b/Cargo.toml index 3bca5c4..767ffc9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.79" azure_core = "0.19.0" azure_identity = "0.19.0" azure_security_keyvault = "0.19.0" -clap = { version = "4.4.18", features = ["derive"] } +clap = { version = "4.5.0", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.35.1", features = ["full"]} From 6e852a4d474da29e4582f11bb44b50e0fa130a68 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 04:23:46 +0000 Subject: [PATCH 125/196] chore(deps): update azure/arm-deploy action to v2 --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f066aff..21ca3dc 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -60,7 +60,7 @@ jobs: tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Deploy Bicep template - uses: azure/arm-deploy@v1 + uses: azure/arm-deploy@v2 with: scope: subscription region: ${{ env.LOCATION }} From df5b5045976e244832ced61aa641b788e72ec207 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 16:41:47 +0000 Subject: [PATCH 126/196] fix(deps): update rust crate clap to 4.5.1 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 67147e2..8c67665 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -328,9 +328,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -338,9 +338,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index 206e000..b057734 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.79" azure_core = "0.19.0" azure_identity = "0.19.0" azure_security_keyvault = "0.19.0" -clap = { version = "4.5.0", features = ["derive"] } +clap = { version = "4.5.1", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.36.0", features = ["full"]} From a70e8711d37f4f7cfd8f0f2cfe78c862e29a54ca Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 07:08:16 +0000 Subject: [PATCH 127/196] fix(deps): update rust crate anyhow to 1.0.80 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 67147e2..ff17732 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,9 +91,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "assert_cmd" diff --git a/Cargo.toml b/Cargo.toml index 206e000..02fcea5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ documentation = "https://docs.rs/keyweave" repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] -anyhow = "1.0.79" +anyhow = "1.0.80" azure_core = "0.19.0" azure_identity = "0.19.0" azure_security_keyvault = "0.19.0" From 8cfb62819ec160ea02653985b722e6de6ef0fadf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 16:55:07 +0000 Subject: [PATCH 128/196] chore(deps): update rust crate assert_cmd to 2.0.14 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 67147e2..458293b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,9 +97,9 @@ checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" [[package]] name = "assert_cmd" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00ad3f3a942eee60335ab4342358c161ee296829e0d16ff42fc1d6cb07815467" +checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8" dependencies = [ "anstyle", "bstr", diff --git a/Cargo.toml b/Cargo.toml index 206e000..39950c1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ tokio = {version = "1.36.0", features = ["full"]} openssl = { version = "0.10", features = ["vendored"] } [dev-dependencies] -assert_cmd = "2.0.13" +assert_cmd = "2.0.14" assert_fs = "1.1.1" predicates = "3.1.0" serial_test = "3.0.0" From dce912c324eaaea49d5695fafc06cc8a2d8a71da Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Sun, 25 Feb 2024 23:06:52 +0100 Subject: [PATCH 129/196] chore: debug fs --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index df7aae5..fa511bb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -167,6 +167,7 @@ jobs: run: | sha512sum keyweave-* | tee SHA512SUMS sha256sum keyweave-* | tee SHA256SUMS + tree - uses: softprops/action-gh-release@v1 env: From 5678fb64699c6dafe8baac1f842525c7c682128c Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Sun, 25 Feb 2024 23:45:27 +0100 Subject: [PATCH 130/196] fix: unzip and change dest path --- .github/workflows/release.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fa511bb..74376a0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -160,14 +160,16 @@ jobs: - uses: actions/download-artifact@v4 with: pattern: dist-* - merge-multiple: true - path: dist + merge-multiple: true - - name: Checksums with SHA512 and SHA256 + - name: Unzip artifacts + run: | + unzip dist-*.zip + + - name: Unzip and Checksums with SHA512 and SHA256 run: | sha512sum keyweave-* | tee SHA512SUMS sha256sum keyweave-* | tee SHA256SUMS - tree - uses: softprops/action-gh-release@v1 env: @@ -177,7 +179,7 @@ jobs: fail_on_unmatched_files: true files: | keyweave-*.tar.xz - keyweave-*/keyweave.exe + keyweave-*.exe *SUMS* - name: Generate SHA256SUM input for Homebrew From 2c1d33031abeb53e1585492d020a64dfa8f3f6c7 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Mon, 26 Feb 2024 00:10:26 +0100 Subject: [PATCH 131/196] fix: use different condition for windows --- .github/workflows/release.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 74376a0..0560342 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -127,11 +127,11 @@ jobs: dst="keyweave-${{ matrix.target }}" mkdir -p "$dst" dist cp "$bin" "$dst/" - if [[ ${{ !startsWith(matrix.name, 'windows') }} ]] ; then + if [[ "${{ matrix.name }}" == windows-* ]] ; then + mv "$dst/keyweave${ext}" dist/keyweave-${{ matrix.target }}.exe + else tar cavf "$dst.tar.xz" "$dst" mv "$dst.tar.xz" dist/ - else - mv "$dst/keyweave${ext}" dist/keyweave-${{ matrix.target }}.exe fi - uses: actions/upload-artifact@v4 @@ -166,7 +166,7 @@ jobs: run: | unzip dist-*.zip - - name: Unzip and Checksums with SHA512 and SHA256 + - name: Checksums with SHA512 and SHA256 run: | sha512sum keyweave-* | tee SHA512SUMS sha256sum keyweave-* | tee SHA256SUMS From af792f98810d18d25495b8d3207b830e4434356a Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Mon, 26 Feb 2024 00:16:45 +0100 Subject: [PATCH 132/196] feat: remone unzip --- .github/workflows/release.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0560342..7017916 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -162,10 +162,6 @@ jobs: pattern: dist-* merge-multiple: true - - name: Unzip artifacts - run: | - unzip dist-*.zip - - name: Checksums with SHA512 and SHA256 run: | sha512sum keyweave-* | tee SHA512SUMS From d202c0066d312838bbc8be2124996b5b1190da39 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 09:46:33 +0000 Subject: [PATCH 133/196] chore(deps): update azure/login action to v2 --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 21ca3dc..5ea0221 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -54,7 +54,7 @@ jobs: DEPLOYMENT_NAME: keyweave-${{ github.run_id }} steps: - uses: actions/checkout@v4 - - uses: azure/login@v1 + - uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} @@ -94,7 +94,7 @@ jobs: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - name: Azure Login - uses: azure/login@v1 + uses: azure/login@v2 with: client-id: ${{ secrets[matrix.client-id-ref] }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} From 97e79111d3ebaa623aba321b71234bb75a680295 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 09:09:02 +0000 Subject: [PATCH 134/196] build(deps): bump mio from 0.8.10 to 0.8.11 Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.10 to 0.8.11. - [Release notes](https://github.com/tokio-rs/mio/releases) - [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/mio/compare/v0.8.10...v0.8.11) --- updated-dependencies: - dependency-name: mio dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5756a21..5138240 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1071,9 +1071,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", From f029dc31b080a5a66cbbe38f167872b19671fe65 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 5 Mar 2024 10:47:54 +0100 Subject: [PATCH 135/196] feat: add tests and branch specific status --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4dbe99a..3c4c80a 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,8 @@ [github](https://github.com/bartvdbraak/keyweave) [crates.io](https://crates.io/crates/keyweave) [docs.rs](https://docs.rs/keyweave) -[build status](https://github.com/bartvdbraak/keyweave/actions/workflows/checks.yml) +[build status](https://github.com/bartvdbraak/keyweave/actions/workflows/checks.yml) +[test status](https://github.com/bartvdbraak/keyweave/actions/workflows/tests.yml) Keyweave From d0bc688c39d15e7dbcdefa1c25cf8d313d363aef Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 5 Mar 2024 11:28:31 +0100 Subject: [PATCH 136/196] feat: bump version to 0.2.6 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 1b7283b..0c8a7a1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyweave" -version = "0.2.5" +version = "0.2.6" edition = "2021" authors = ["Bart van der Braak "] keywords = ["azure", "keyvault", "env"] From 9aa1d4230765ec5e6a014d75d33892d0c6693ed9 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 5 Mar 2024 11:41:24 +0100 Subject: [PATCH 137/196] Update keyweave version to 0.2.6 --- Cargo.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 5138240..8c1e510 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -997,7 +997,7 @@ dependencies = [ [[package]] name = "keyweave" -version = "0.2.5" +version = "0.2.6" dependencies = [ "anyhow", "assert_cmd", From 99a7908b33a986b2ca9ae220b9b017bd9d6468bf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 Mar 2024 18:45:11 +0000 Subject: [PATCH 138/196] fix(deps): update rust crate clap to 4.5.2 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8c1e510..ca57774 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -328,9 +328,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651" dependencies = [ "clap_builder", "clap_derive", @@ -338,9 +338,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index 0c8a7a1..831ed38 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.80" azure_core = "0.19.0" azure_identity = "0.19.0" azure_security_keyvault = "0.19.0" -clap = { version = "4.5.1", features = ["derive"] } +clap = { version = "4.5.2", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.36.0", features = ["full"]} From 6c954a143100e9eb8548b3cb09a4793995ec5c39 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 8 Mar 2024 21:48:24 +0000 Subject: [PATCH 139/196] chore(deps): update softprops/action-gh-release action to v2 --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7017916..505f2b0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -167,7 +167,7 @@ jobs: sha512sum keyweave-* | tee SHA512SUMS sha256sum keyweave-* | tee SHA256SUMS - - uses: softprops/action-gh-release@v1 + - uses: softprops/action-gh-release@v2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From 977cfe69f0d12e9edfe4d943e166c110f4ae7b12 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Mar 2024 03:39:02 +0000 Subject: [PATCH 140/196] fix(deps): update rust crate anyhow to 1.0.81 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ca57774..588eff0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,9 +91,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.80" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" +checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" [[package]] name = "assert_cmd" diff --git a/Cargo.toml b/Cargo.toml index 831ed38..0ac06b4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ documentation = "https://docs.rs/keyweave" repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] -anyhow = "1.0.80" +anyhow = "1.0.81" azure_core = "0.19.0" azure_identity = "0.19.0" azure_security_keyvault = "0.19.0" From 132a5cfe33d3a5bf32fccdea66ce38e3dd901c23 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 Mar 2024 14:20:22 +0000 Subject: [PATCH 141/196] fix(deps): update rust crate clap to 4.5.3 --- Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 588eff0..68cb19a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -328,9 +328,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.2" +version = "4.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651" +checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813" dependencies = [ "clap_builder", "clap_derive", @@ -350,9 +350,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f" dependencies = [ "heck", "proc-macro2", @@ -799,9 +799,9 @@ checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "heck" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" diff --git a/Cargo.toml b/Cargo.toml index 0ac06b4..b1378e2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.81" azure_core = "0.19.0" azure_identity = "0.19.0" azure_security_keyvault = "0.19.0" -clap = { version = "4.5.2", features = ["derive"] } +clap = { version = "4.5.3", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.36.0", features = ["full"]} From bca4601268762b1ede6ba0cc4c5c3a53aa93009a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 23:17:21 +0000 Subject: [PATCH 142/196] fix(deps): update rust crate clap to 4.5.4 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 68cb19a..af60fc2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -328,9 +328,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.3" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -350,9 +350,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.3" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ "heck", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index b1378e2..0f71277 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ anyhow = "1.0.81" azure_core = "0.19.0" azure_identity = "0.19.0" azure_security_keyvault = "0.19.0" -clap = { version = "4.5.3", features = ["derive"] } +clap = { version = "4.5.4", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.36.0", features = ["full"]} From 185a8c99c6be461595399d6799636ef9c4a76432 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Mar 2024 16:48:15 +0000 Subject: [PATCH 143/196] fix(deps): update rust crate tokio to 1.37.0 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index af60fc2..6051705 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1861,9 +1861,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", diff --git a/Cargo.toml b/Cargo.toml index 0f71277..d3f6ba8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ azure_security_keyvault = "0.19.0" clap = { version = "4.5.4", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } -tokio = {version = "1.36.0", features = ["full"]} +tokio = {version = "1.37.0", features = ["full"]} [target.'cfg(all(target_os = "linux", any(target_env = "musl", target_arch = "arm", target_arch = "aarch64")))'.dependencies] openssl = { version = "0.10", features = ["vendored"] } From b3b179fdc9bc3e7e47584e2228ef060bde42d86e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Apr 2024 16:17:25 +0000 Subject: [PATCH 144/196] build(deps): bump h2 from 0.3.24 to 0.3.26 Bumps [h2](https://github.com/hyperium/h2) from 0.3.24 to 0.3.26. - [Release notes](https://github.com/hyperium/h2/releases) - [Changelog](https://github.com/hyperium/h2/blob/v0.3.26/CHANGELOG.md) - [Commits](https://github.com/hyperium/h2/compare/v0.3.24...v0.3.26) --- updated-dependencies: - dependency-name: h2 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6051705..48e1f35 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -774,9 +774,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", From c3932d30ed929b0214536d76bf43431d4affc168 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Thu, 11 Apr 2024 00:51:09 +0200 Subject: [PATCH 145/196] fix: update dependencies due to vulnerabilities in h2 and iana-time-zone --- Cargo.lock | 387 ++++++++++++++++++++++++++++------------------------- 1 file changed, 204 insertions(+), 183 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 48e1f35..7a47d64 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -43,9 +43,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -57,9 +57,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" @@ -91,9 +91,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.81" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" +checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" [[package]] name = "assert_cmd" @@ -149,9 +149,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", @@ -160,9 +160,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "azure_core" @@ -175,7 +175,7 @@ dependencies = [ "bytes", "dyn-clone", "futures", - "getrandom 0.2.12", + "getrandom 0.2.14", "http-types", "log", "once_cell", @@ -227,9 +227,9 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -260,9 +260,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "block-buffer" @@ -275,9 +275,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.9.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" dependencies = [ "memchr", "regex-automata", @@ -286,24 +286,21 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41" [[package]] name = "cfg-if" @@ -313,9 +310,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" dependencies = [ "android-tzdata", "iana-time-zone", @@ -323,7 +320,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.48.5", + "windows-targets 0.52.4", ] [[package]] @@ -494,15 +491,15 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "encoding_rs" -version = "0.8.33" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ "cfg-if", ] @@ -561,9 +558,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "float-cmp" @@ -731,9 +728,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" dependencies = [ "cfg-if", "js-sys", @@ -767,7 +764,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "ignore", "walkdir", ] @@ -805,15 +802,15 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.4" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -902,9 +899,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.59" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -951,9 +948,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown", @@ -982,15 +979,15 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "js-sys" -version = "0.3.67" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -1022,9 +1019,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.152" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "linux-raw-sys" @@ -1044,15 +1041,15 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "mime" @@ -1062,9 +1059,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] @@ -1105,10 +1102,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] -name = "num-traits" -version = "0.2.17" +name = "num-conv" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-traits" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -1125,9 +1128,9 @@ dependencies = [ [[package]] name = "num_threads" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" dependencies = [ "libc", ] @@ -1140,7 +1143,7 @@ checksum = "c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f" dependencies = [ "base64 0.13.1", "chrono", - "getrandom 0.2.12", + "getrandom 0.2.14", "http", "rand 0.8.5", "serde", @@ -1168,11 +1171,11 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" -version = "0.10.63" +version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "cfg-if", "foreign-types", "libc", @@ -1200,18 +1203,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.2.1+3.2.0" +version = "300.2.3+3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fe476c29791a5ca0d1273c697e96085bbabbbea2ef7afd5617e78a4b40332d3" +checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.99" +version = "0.9.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" dependencies = [ "cc", "libc", @@ -1269,18 +1272,18 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", @@ -1289,9 +1292,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -1301,9 +1304,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "powerfmt" @@ -1349,18 +1352,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -1424,7 +1427,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.12", + "getrandom 0.2.14", ] [[package]] @@ -1447,9 +1450,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", @@ -1459,9 +1462,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", @@ -1470,15 +1473,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "reqwest" -version = "0.11.23" +version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64 0.21.7", "bytes", @@ -1498,9 +1501,11 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", + "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", + "sync_wrapper", "system-configuration", "tokio", "tokio-native-tls", @@ -1531,11 +1536,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.30" +version = "0.38.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "errno", "libc", "linux-raw-sys", @@ -1543,10 +1548,19 @@ dependencies = [ ] [[package]] -name = "ryu" -version = "1.0.16" +name = "rustls-pemfile" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "ryu" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "same-file" @@ -1574,9 +1588,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "security-framework" -version = "2.9.2" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -1587,9 +1601,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" dependencies = [ "core-foundation-sys", "libc", @@ -1597,24 +1611,24 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.195" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.195" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -1623,9 +1637,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.111" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "itoa", "ryu", @@ -1634,9 +1648,9 @@ dependencies = [ [[package]] name = "serde_path_to_error" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" dependencies = [ "itoa", "serde", @@ -1721,37 +1735,43 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "system-configuration" version = "0.5.1" @@ -1775,13 +1795,12 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.9.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", - "fastrand 2.0.1", - "redox_syscall", + "fastrand 2.0.2", "rustix", "windows-sys 0.52.0", ] @@ -1794,18 +1813,18 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", @@ -1814,14 +1833,15 @@ dependencies = [ [[package]] name = "time" -version = "0.3.31" +version = "0.3.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" +checksum = "ef89ece63debf11bc32d1ed8d078ac870cbeb44da02afb02a9ff135ae7ca0582" dependencies = [ "deranged", "itoa", "js-sys", "libc", + "num-conv", "num_threads", "powerfmt", "serde", @@ -1837,10 +1857,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ + "num-conv", "time-core", ] @@ -1973,9 +1994,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] @@ -2000,11 +2021,11 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" +checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" dependencies = [ - "getrandom 0.2.12", + "getrandom 0.2.14", ] [[package]] @@ -2036,9 +2057,9 @@ checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -2067,9 +2088,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2077,9 +2098,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", @@ -2092,9 +2113,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.40" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -2104,9 +2125,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2114,9 +2135,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", @@ -2127,15 +2148,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-streams" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" dependencies = [ "futures-util", "js-sys", @@ -2146,9 +2167,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.67" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -2191,7 +2212,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -2209,7 +2230,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -2229,17 +2250,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] [[package]] @@ -2250,9 +2271,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" @@ -2262,9 +2283,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" @@ -2274,9 +2295,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" @@ -2286,9 +2307,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" @@ -2298,9 +2319,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" @@ -2310,9 +2331,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] name = "windows_x86_64_msvc" @@ -2322,9 +2343,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "winreg" From 47120c6508d4f3d1a67fa7e1fdee60d3a2d81775 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Thu, 11 Apr 2024 00:56:42 +0200 Subject: [PATCH 146/196] feat: update keyweave crate version to 0.2.7 --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7a47d64..5977e38 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -994,7 +994,7 @@ dependencies = [ [[package]] name = "keyweave" -version = "0.2.6" +version = "0.2.7" dependencies = [ "anyhow", "assert_cmd", diff --git a/Cargo.toml b/Cargo.toml index d3f6ba8..2fc77d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyweave" -version = "0.2.6" +version = "0.2.7" edition = "2021" authors = ["Bart van der Braak "] keywords = ["azure", "keyvault", "env"] From 3821d2ed6a061639e9da3f8caf11b24e8196ab90 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Apr 2024 22:58:57 +0000 Subject: [PATCH 147/196] fix(deps): update rust crate anyhow to 1.0.82 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index d3f6ba8..5a7df44 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ documentation = "https://docs.rs/keyweave" repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] -anyhow = "1.0.81" +anyhow = "1.0.82" azure_core = "0.19.0" azure_identity = "0.19.0" azure_security_keyvault = "0.19.0" From 147c6ed04b1c56f5b572090be593d0a4ba2e7a3c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 21 Apr 2024 22:41:14 +0000 Subject: [PATCH 148/196] chore(deps): update rust crate serial_test to 3.1.0 --- Cargo.lock | 40 +++++++++++++++++++++------------------- Cargo.toml | 2 +- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5977e38..2ac1d7d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -444,19 +444,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if", - "hashbrown", - "lock_api", - "once_cell", - "parking_lot_core", -] - [[package]] name = "deranged" version = "0.3.11" @@ -1571,6 +1558,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "scc" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec96560eea317a9cc4e0bb1f6a2c93c09a19b8c4fc5cb3fcc0ec1c094cd783e2" +dependencies = [ + "sdd", +] + [[package]] name = "schannel" version = "0.1.23" @@ -1586,6 +1582,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sdd" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b84345e4c9bd703274a082fb80caaa99b7612be48dfaa1dd9266577ec412309d" + [[package]] name = "security-framework" version = "2.10.0" @@ -1681,23 +1683,23 @@ dependencies = [ [[package]] name = "serial_test" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d" +checksum = "adb86f9315df5df6a70eae0cc22395a44e544a0d8897586820770a35ede74449" dependencies = [ - "dashmap", "futures", - "lazy_static", "log", + "once_cell", "parking_lot", + "scc", "serial_test_derive", ] [[package]] name = "serial_test_derive" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212" +checksum = "a9bb72430492e9549b0c4596725c0f82729bff861c45aa8099c0a8e67fc3b721" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 52be48d..3554775 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,4 +26,4 @@ openssl = { version = "0.10", features = ["vendored"] } assert_cmd = "2.0.14" assert_fs = "1.1.1" predicates = "3.1.0" -serial_test = "3.0.0" +serial_test = "3.1.0" From b58fce276ddd3425574220be5ce5c525fdd7c668 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 May 2024 13:41:22 +0000 Subject: [PATCH 149/196] chore(deps): update resource microsoft.resources/resourcegroups to 2024-03-01 --- bicep/main.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bicep/main.bicep b/bicep/main.bicep index a0738f0..11a00e9 100644 --- a/bicep/main.bicep +++ b/bicep/main.bicep @@ -31,7 +31,7 @@ var nameFormat = '${name.tenantId}-${name.projectId}-${environment}-${name.regio Resource Group */ -resource ResourceGroup 'Microsoft.Resources/resourceGroups@2023-07-01' = { +resource ResourceGroup 'Microsoft.Resources/resourceGroups@2024-03-01' = { name: format(nameFormat, 'RG', 1) location: location tags: tags From fd3b5d83a1113869cee76c185a61b1098003cbd6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 5 May 2024 11:13:57 +0000 Subject: [PATCH 150/196] chore(deps): update rust crate serial_test to v3.1.1 --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2ac1d7d..3ae6170 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1683,9 +1683,9 @@ dependencies = [ [[package]] name = "serial_test" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb86f9315df5df6a70eae0cc22395a44e544a0d8897586820770a35ede74449" +checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d" dependencies = [ "futures", "log", @@ -1697,9 +1697,9 @@ dependencies = [ [[package]] name = "serial_test_derive" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9bb72430492e9549b0c4596725c0f82729bff861c45aa8099c0a8e67fc3b721" +checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" dependencies = [ "proc-macro2", "quote", From 6d3cc9df7912fe18a805eed06663ec7a10f1230f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 18 May 2024 15:36:59 +0000 Subject: [PATCH 151/196] fix(deps): update rust crate anyhow to v1.0.86 --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2ac1d7d..82aec3a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,9 +91,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.82" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "assert_cmd" From 7c4a7dfdff64ee8b7e5fa3af1aa7f50c6bdb7f41 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 May 2024 21:45:35 +0000 Subject: [PATCH 152/196] fix(deps): update rust crate tokio to v1.38.0 --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2ac1d7d..91d1914 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1884,9 +1884,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.37.0" +version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" dependencies = [ "backtrace", "bytes", @@ -1903,9 +1903,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", From 38a0d9811ad6dfb9d663159684ef297499bf33d2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 19:55:56 +0000 Subject: [PATCH 153/196] fix(deps): update rust crate clap to v4.5.8 --- Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2ac1d7d..40dd298 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -325,9 +325,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.4" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d" dependencies = [ "clap_builder", "clap_derive", @@ -335,9 +335,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.2" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708" dependencies = [ "anstream", "anstyle", @@ -347,9 +347,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.4" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" dependencies = [ "heck", "proc-macro2", From 9d5e1fcd3c52cd3193503239492060d2af8f8e76 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 5 May 2024 11:13:57 +0000 Subject: [PATCH 154/196] chore(deps): update rust crate serial_test to v3.1.1 --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2ac1d7d..3ae6170 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1683,9 +1683,9 @@ dependencies = [ [[package]] name = "serial_test" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb86f9315df5df6a70eae0cc22395a44e544a0d8897586820770a35ede74449" +checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d" dependencies = [ "futures", "log", @@ -1697,9 +1697,9 @@ dependencies = [ [[package]] name = "serial_test_derive" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9bb72430492e9549b0c4596725c0f82729bff861c45aa8099c0a8e67fc3b721" +checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" dependencies = [ "proc-macro2", "quote", From ce27373cf0d933f915afe2a1596cce085251480a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 19:55:56 +0000 Subject: [PATCH 155/196] fix(deps): update rust crate clap to v4.5.8 --- Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3ae6170..c903584 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -325,9 +325,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.4" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d" dependencies = [ "clap_builder", "clap_derive", @@ -335,9 +335,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.2" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708" dependencies = [ "anstream", "anstyle", @@ -347,9 +347,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.4" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" dependencies = [ "heck", "proc-macro2", From b0a49b5215f59cdcd2b4482e7d18d7ca79cec96e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 18 May 2024 15:36:59 +0000 Subject: [PATCH 156/196] fix(deps): update rust crate anyhow to v1.0.86 --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c903584..6ab31ec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,9 +91,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.82" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "assert_cmd" From b0c07d898750c2ccf11baef67b044fc3a9946658 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 May 2024 21:45:35 +0000 Subject: [PATCH 157/196] fix(deps): update rust crate tokio to v1.38.0 --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6ab31ec..621eff9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1884,9 +1884,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.37.0" +version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" dependencies = [ "backtrace", "bytes", @@ -1903,9 +1903,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", From 9ee9e3c462bf877f47344a0c1b265343d2f045a8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2024 00:21:02 +0000 Subject: [PATCH 158/196] chore(deps): update resource microsoft.operationalinsights/workspaces to 2023-09-01 --- bicep/modules/kv.bicep | 2 +- bicep/modules/law.bicep | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bicep/modules/kv.bicep b/bicep/modules/kv.bicep index 5d701ad..27b9280 100644 --- a/bicep/modules/kv.bicep +++ b/bicep/modules/kv.bicep @@ -16,7 +16,7 @@ var accessPolicies = [for identity in identities: { Log Analytics Workspace (existing) */ -resource _logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2022-10-01' existing = { +resource _logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' existing = { name: format(nameFormat, 'LAW', 1) } diff --git a/bicep/modules/law.bicep b/bicep/modules/law.bicep index 451519c..12ff713 100644 --- a/bicep/modules/law.bicep +++ b/bicep/modules/law.bicep @@ -6,7 +6,7 @@ param tags object Log Analytics Workspace */ -resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2022-10-01' = { +resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' = { name: format(nameFormat, 'LAW', 1) location: location tags: tags From 76a647b884f131def626b04a7ea41dd45eb117c5 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 2 Jul 2024 02:24:14 +0200 Subject: [PATCH 159/196] feat: update packages --- Cargo.lock | 400 +++++++++++++++++++++++++---------------------------- 1 file changed, 192 insertions(+), 208 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 621eff9..4574d16 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ "gimli", ] @@ -43,47 +43,48 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.13" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -138,20 +139,20 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 4.0.3", + "event-listener 5.3.1", "event-listener-strategy", "pin-project-lite", ] [[package]] name = "async-trait" -version = "0.1.79" +version = "0.1.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", @@ -160,9 +161,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "azure_core" @@ -175,7 +176,7 @@ dependencies = [ "bytes", "dyn-clone", "futures", - "getrandom 0.2.14", + "getrandom 0.2.15", "http-types", "log", "once_cell", @@ -227,9 +228,9 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ "addr2line", "cc", @@ -260,9 +261,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "block-buffer" @@ -298,9 +299,9 @@ checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.92" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41" +checksum = "74b6a57f98764a267ff415d50a25e6e166f3831a5071af4995296ea97d210490" [[package]] name = "cfg-if" @@ -310,9 +311,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.37" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", @@ -320,7 +321,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -359,30 +360,30 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" [[package]] name = "concurrent-queue" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] [[package]] name = "const_fn" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935" +checksum = "373e9fafaa20882876db20562275ff58d50e0caa2590077fe7ce7bef90211d0d" [[package]] name = "core-foundation" @@ -430,9 +431,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crypto-common" @@ -499,9 +500,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", "windows-sys 0.52.0", @@ -515,9 +516,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "4.0.3" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" dependencies = [ "concurrent-queue", "parking", @@ -526,11 +527,11 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.4.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener 4.0.3", + "event-listener 5.3.1", "pin-project-lite", ] @@ -545,9 +546,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "float-cmp" @@ -715,9 +716,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "js-sys", @@ -728,9 +729,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "globset" @@ -751,7 +752,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "ignore", "walkdir", ] @@ -777,9 +778,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "heck" @@ -837,9 +838,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "httpdate" @@ -849,9 +850,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "0.14.28" +version = "0.14.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" dependencies = [ "bytes", "futures-channel", @@ -951,9 +952,9 @@ checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", ] @@ -964,6 +965,12 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + [[package]] name = "itoa" version = "1.0.11" @@ -998,29 +1005,23 @@ dependencies = [ "tokio", ] -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - [[package]] name = "libc" -version = "0.2.153" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -1028,15 +1029,15 @@ dependencies = [ [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "memchr" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "mime" @@ -1046,9 +1047,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "miniz_oxide" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", ] @@ -1066,11 +1067,10 @@ dependencies = [ [[package]] name = "native-tls" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" dependencies = [ - "lazy_static", "libc", "log", "openssl", @@ -1096,9 +1096,9 @@ checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] name = "num-traits" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] @@ -1130,7 +1130,7 @@ checksum = "c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f" dependencies = [ "base64 0.13.1", "chrono", - "getrandom 0.2.14", + "getrandom 0.2.15", "http", "rand 0.8.5", "serde", @@ -1143,9 +1143,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.2" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" dependencies = [ "memchr", ] @@ -1162,7 +1162,7 @@ version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "foreign-types", "libc", @@ -1190,9 +1190,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.2.3+3.2.1" +version = "300.3.1+3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843" +checksum = "7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91" dependencies = [ "cc", ] @@ -1224,9 +1224,9 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core", @@ -1234,22 +1234,22 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.5", ] [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "percent-encoding" @@ -1339,9 +1339,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.79" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] @@ -1414,7 +1414,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.14", + "getrandom 0.2.15", ] [[package]] @@ -1428,18 +1428,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", ] [[package]] name = "regex" -version = "1.10.4" +version = "1.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" dependencies = [ "aho-corasick", "memchr", @@ -1449,9 +1449,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" dependencies = [ "aho-corasick", "memchr", @@ -1460,9 +1460,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "reqwest" @@ -1508,9 +1508,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc_version" @@ -1523,11 +1523,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.32" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", @@ -1545,9 +1545,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "same-file" @@ -1560,9 +1560,9 @@ dependencies = [ [[package]] name = "scc" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec96560eea317a9cc4e0bb1f6a2c93c09a19b8c4fc5cb3fcc0ec1c094cd783e2" +checksum = "76ad2bbb0ae5100a07b7a6f2ed7ab5fd0045551a4c507989b7a620046ea3efdc" dependencies = [ "sdd", ] @@ -1590,11 +1590,11 @@ checksum = "b84345e4c9bd703274a082fb80caaa99b7612be48dfaa1dd9266577ec412309d" [[package]] name = "security-framework" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", @@ -1603,9 +1603,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" dependencies = [ "core-foundation-sys", "libc", @@ -1613,24 +1613,24 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.197" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", @@ -1639,9 +1639,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.115" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" +checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" dependencies = [ "itoa", "ryu", @@ -1719,9 +1719,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -1743,9 +1743,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", "windows-sys 0.52.0", @@ -1759,9 +1759,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.58" +version = "2.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" +checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9" dependencies = [ "proc-macro2", "quote", @@ -1802,7 +1802,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", - "fastrand 2.0.2", + "fastrand 2.1.0", "rustix", "windows-sys 0.52.0", ] @@ -1815,18 +1815,18 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.58" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.58" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", @@ -1835,9 +1835,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.35" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef89ece63debf11bc32d1ed8d078ac870cbeb44da02afb02a9ff135ae7ca0582" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", @@ -1869,9 +1869,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "c55115c6fbe2d2bef26eb09ad74bde02d8255476fc0c7b515ef09fbb35742d82" dependencies = [ "tinyvec_macros", ] @@ -1924,16 +1924,15 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] @@ -2005,9 +2004,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", @@ -2017,17 +2016,17 @@ dependencies = [ [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.8.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" +checksum = "5de17fd2f7da591098415cff336e12965a28061ddace43b59cb3c430179c9439" dependencies = [ - "getrandom 0.2.14", + "getrandom 0.2.15", ] [[package]] @@ -2053,9 +2052,9 @@ dependencies = [ [[package]] name = "waker-fn" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" [[package]] name = "walkdir" @@ -2177,44 +2176,22 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" dependencies = [ - "winapi", + "windows-sys 0.52.0", ] -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - [[package]] name = "windows-core" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -2232,7 +2209,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -2252,17 +2229,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" dependencies = [ - "windows_aarch64_gnullvm 0.52.4", - "windows_aarch64_msvc 0.52.4", - "windows_i686_gnu 0.52.4", - "windows_i686_msvc 0.52.4", - "windows_x86_64_gnu 0.52.4", - "windows_x86_64_gnullvm 0.52.4", - "windows_x86_64_msvc 0.52.4", + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", ] [[package]] @@ -2273,9 +2251,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" @@ -2285,9 +2263,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" @@ -2297,9 +2275,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" @@ -2309,9 +2293,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" @@ -2321,9 +2305,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" @@ -2333,9 +2317,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" @@ -2345,9 +2329,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winreg" From dbfd200ff5f6b6dd6c6bdaa1c69cd6e59829daa2 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 2 Jul 2024 02:31:35 +0200 Subject: [PATCH 160/196] fix: use correct var name for secret --- .github/workflows/tests.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5ea0221..646fd21 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -56,9 +56,10 @@ jobs: - uses: actions/checkout@v4 - uses: azure/login@v2 with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} + client-id: ${{ secrets.AZURE_CLIENT_ID_BICEP }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + - name: Deploy Bicep template uses: azure/arm-deploy@v2 with: From ffdb0e840dd74d86efb762d0b2d89ffd075e03d1 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 2 Jul 2024 02:59:26 +0200 Subject: [PATCH 161/196] feat: update to latest azure-related sdk packages --- Cargo.lock | 401 +++++++++++++++++++++++++++++++++++----------------- Cargo.toml | 6 +- src/main.rs | 9 +- 3 files changed, 279 insertions(+), 137 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4574d16..e0634a9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -137,6 +137,37 @@ dependencies = [ "futures-core", ] +[[package]] +name = "async-channel" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-io" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964" +dependencies = [ + "async-lock", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite 2.3.0", + "parking", + "polling", + "rustix", + "slab", + "tracing", + "windows-sys 0.52.0", +] + [[package]] name = "async-lock" version = "3.4.0" @@ -148,6 +179,50 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "async-process" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7eda79bbd84e29c2b308d1dc099d7de8dcc7035e48f4bf5dc4a531a44ff5e2a" +dependencies = [ + "async-channel 2.3.1", + "async-io", + "async-lock", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener 5.3.1", + "futures-lite 2.3.0", + "rustix", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-signal" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794f185324c2f00e771cd9f1ae8b5ac68be2ca7abb129a87afd6e86d228bc54d" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix", + "signal-hook-registry", + "slab", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + [[package]] name = "async-trait" version = "0.1.80" @@ -159,6 +234,12 @@ dependencies = [ "syn", ] +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" version = "1.3.0" @@ -167,18 +248,17 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "azure_core" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70fd680c0d0424a518229b1150922f92653ba2ac933aa000abc8bf1ca08105f7" +checksum = "34ce3de4b65b1ee2667c81d1fc692949049502a4cf9c38118d811d6d79a7eaef" dependencies = [ "async-trait", - "base64 0.21.7", + "base64 0.22.1", "bytes", "dyn-clone", "futures", "getrandom 0.2.15", "http-types", - "log", "once_cell", "paste", "pin-project", @@ -188,25 +268,27 @@ dependencies = [ "serde", "serde_json", "time", + "tracing", "url", "uuid", ] [[package]] name = "azure_identity" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6d2060f5b2e1c664026ca4edd561306c473be887c1f7a81f10bf06f9b71c63f" +checksum = "72c97790480791ec1ee9b76f5c6499b1d0aac0d4cd1e62010bfc19bb545544c5" dependencies = [ "async-lock", + "async-process", "async-trait", "azure_core", "futures", - "log", "oauth2", "pin-project", "serde", "time", + "tracing", "tz-rs", "url", "uuid", @@ -214,9 +296,9 @@ dependencies = [ [[package]] name = "azure_security_keyvault" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c32a5dbb8b6f67ed8b8fdc7137a912f3b6547af7f961aedb42bb553ee394f5b" +checksum = "338cac645bda0555f59189873be0cccaf420c26791f009b2207b62474cebbab8" dependencies = [ "async-trait", "azure_core", @@ -249,15 +331,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.7" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bitflags" @@ -274,6 +350,19 @@ dependencies = [ "generic-array", ] +[[package]] +name = "blocking" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +dependencies = [ + "async-channel 2.3.1", + "async-task", + "futures-io", + "futures-lite 2.3.0", + "piper", +] + [[package]] name = "bstr" version = "1.9.1" @@ -483,21 +572,6 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" -[[package]] -name = "encoding_rs" -version = "0.8.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - [[package]] name = "errno" version = "0.3.9" @@ -652,6 +726,19 @@ dependencies = [ "waker-fn", ] +[[package]] +name = "futures-lite" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +dependencies = [ + "fastrand 2.1.0", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + [[package]] name = "futures-macro" version = "0.3.30" @@ -752,36 +839,11 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" dependencies = [ - "bitflags 2.6.0", + "bitflags", "ignore", "walkdir", ] -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - [[package]] name = "heck" version = "0.5.0" @@ -794,6 +856,12 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + [[package]] name = "http" version = "0.2.12" @@ -806,13 +874,36 @@ dependencies = [ ] [[package]] -name = "http-body" -version = "0.4.6" +name = "http" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", - "http", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body", "pin-project-lite", ] @@ -823,9 +914,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad" dependencies = [ "anyhow", - "async-channel", + "async-channel 1.9.0", "base64 0.13.1", - "futures-lite", + "futures-lite 1.13.0", "infer", "pin-project-lite", "rand 0.7.3", @@ -842,47 +933,59 @@ version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - [[package]] name = "hyper" -version = "0.14.29" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" +checksum = "c4fe55fb7a772d59a5ff1dfbff4fe0258d19b89fec4b233e75d35d5d2316badc" dependencies = [ "bytes", "futures-channel", - "futures-core", "futures-util", - "h2", - "http", + "http 1.1.0", "http-body", "httparse", - "httpdate", "itoa", "pin-project-lite", - "socket2", + "smallvec", "tokio", - "tower-service", - "tracing", "want", ] [[package]] name = "hyper-tls" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", + "http-body-util", "hyper", + "hyper-util", "native-tls", "tokio", "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", ] [[package]] @@ -934,16 +1037,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "indexmap" -version = "2.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" -dependencies = [ - "equivalent", - "hashbrown", -] - [[package]] name = "infer" version = "0.2.3" @@ -1109,7 +1202,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.9", "libc", ] @@ -1131,7 +1224,7 @@ dependencies = [ "base64 0.13.1", "chrono", "getrandom 0.2.15", - "http", + "http 0.2.12", "rand 0.8.5", "serde", "serde_json", @@ -1162,7 +1255,7 @@ version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "foreign-types", "libc", @@ -1289,12 +1382,38 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "piper" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391" +dependencies = [ + "atomic-waker", + "fastrand 2.1.0", + "futures-io", +] + [[package]] name = "pkg-config" version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +[[package]] +name = "polling" +version = "3.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi 0.4.0", + "pin-project-lite", + "rustix", + "tracing", + "windows-sys 0.52.0", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -1432,7 +1551,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" dependencies = [ - "bitflags 2.6.0", + "bitflags", ] [[package]] @@ -1466,20 +1585,20 @@ checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "reqwest" -version = "0.11.27" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "bytes", - "encoding_rs", "futures-core", "futures-util", - "h2", - "http", + "http 1.1.0", "http-body", + "http-body-util", "hyper", "hyper-tls", + "hyper-util", "ipnet", "js-sys", "log", @@ -1493,7 +1612,6 @@ dependencies = [ "serde_json", "serde_urlencoded", "sync_wrapper", - "system-configuration", "tokio", "tokio-native-tls", "tokio-util", @@ -1527,7 +1645,7 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.6.0", + "bitflags", "errno", "libc", "linux-raw-sys", @@ -1536,13 +1654,20 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.4" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", + "rustls-pki-types", ] +[[package]] +name = "rustls-pki-types" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" + [[package]] name = "ryu" version = "1.0.18" @@ -1594,7 +1719,7 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -1770,30 +1895,9 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "0.1.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" [[package]] name = "tempfile" @@ -1935,6 +2039,27 @@ dependencies = [ "tokio", ] +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + [[package]] name = "tower-service" version = "0.3.2" @@ -1948,9 +2073,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "pin-project-lite", + "tracing-attributes", "tracing-core", ] +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "tracing-core" version = "0.1.32" @@ -2335,9 +2472,9 @@ checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winreg" -version = "0.50.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" dependencies = [ "cfg-if", "windows-sys 0.48.0", diff --git a/Cargo.toml b/Cargo.toml index 3554775..745ea0b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,9 +11,9 @@ repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] anyhow = "1.0.82" -azure_core = "0.19.0" -azure_identity = "0.19.0" -azure_security_keyvault = "0.19.0" +azure_core = "0.20.0" +azure_identity = "0.20.0" +azure_security_keyvault = "0.20.0" clap = { version = "4.5.4", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } diff --git a/src/main.rs b/src/main.rs index a6b790a..b12608d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,5 @@ use anyhow::Result; -use azure_identity::DefaultAzureCredential; +use azure_identity::{DefaultAzureCredential, TokenCredentialOptions}; use azure_security_keyvault::prelude::KeyVaultGetSecretsResponse; use azure_security_keyvault::KeyvaultClient; use clap::Parser; @@ -237,7 +237,12 @@ async fn main() -> Result<()> { let vault_url = format!("https://{}.vault.azure.net", opts.vault_name); log.loading("Detecting credentials."); - let credential = DefaultAzureCredential::default(); + let credential_options = TokenCredentialOptions::default(); + let credential = + DefaultAzureCredential::create(credential_options).map_err(|e| CustomError { + message: format!("Failed to create DefaultAzureCredential: {}", e), + })?; + let client = match KeyvaultClient::new(&vault_url, std::sync::Arc::new(credential)) { Ok(c) => c, Err(err) => { From 56fa06754d101385140cc946f1d7683dfd55575f Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 2 Jul 2024 03:08:45 +0200 Subject: [PATCH 162/196] feat: update to version 0.3.0 --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e0634a9..285756f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1081,7 +1081,7 @@ dependencies = [ [[package]] name = "keyweave" -version = "0.2.7" +version = "0.3.0" dependencies = [ "anyhow", "assert_cmd", diff --git a/Cargo.toml b/Cargo.toml index 745ea0b..d46af4d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyweave" -version = "0.2.7" +version = "0.3.0" edition = "2021" authors = ["Bart van der Braak "] keywords = ["azure", "keyvault", "env"] From 2a2496a9facdf000874014a49561abada5aae685 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 2 Jul 2024 03:16:52 +0200 Subject: [PATCH 163/196] fix: use macos-latest for darwin arm builds --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 505f2b0..329b720 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -70,7 +70,7 @@ jobs: experimental: false - name: mac-arm64 - os: macos-11.0 + os: macos-latest target: aarch64-apple-darwin cross: true experimental: true From a112604add0e8e1110023e350bd120cf50b01ae2 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Tue, 2 Jul 2024 03:17:04 +0200 Subject: [PATCH 164/196] feat: update version to 0.3.1 --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 285756f..3adc25b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1081,7 +1081,7 @@ dependencies = [ [[package]] name = "keyweave" -version = "0.3.0" +version = "0.3.1" dependencies = [ "anyhow", "assert_cmd", diff --git a/Cargo.toml b/Cargo.toml index d46af4d..e93343d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyweave" -version = "0.3.0" +version = "0.3.1" edition = "2021" authors = ["Bart van der Braak "] keywords = ["azure", "keyvault", "env"] From 86f40179d453ae36bdd62f75137c96107261b807 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 20:34:27 +0000 Subject: [PATCH 165/196] fix(deps): update rust crate openssl to v0.10.66 [security] --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3adc25b..8933897 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1251,9 +1251,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" -version = "0.10.64" +version = "0.10.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" dependencies = [ "bitflags", "cfg-if", @@ -1292,9 +1292,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.102" +version = "0.9.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" dependencies = [ "cc", "libc", From 7d045cb1ccb14f60b18a4fbde7b491f8dfbffced Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 31 Jul 2024 10:14:31 +0000 Subject: [PATCH 166/196] chore(deps): update rust crate assert_cmd to v2.0.15 --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8933897..4127a0b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -98,9 +98,9 @@ checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "assert_cmd" -version = "2.0.14" +version = "2.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8" +checksum = "bc65048dd435533bb1baf2ed9956b9a278fbfdcf90301b39ee117f06c0199d37" dependencies = [ "anstyle", "bstr", From 48ba0fac9ca5ef9d79f751448260d77e99b66939 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 31 Jul 2024 10:14:38 +0000 Subject: [PATCH 167/196] chore(deps): update rust crate assert_fs to v1.1.2 --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8933897..7c95bb9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -113,9 +113,9 @@ dependencies = [ [[package]] name = "assert_fs" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd762e110c8ed629b11b6cde59458cc1c71de78ebbcc30099fc8e0403a2a2ec" +checksum = "7efdb1fdb47602827a342857666feb372712cbc64b414172bd6b167a02927674" dependencies = [ "anstyle", "doc-comment", From c3c29998dce103f4a9a9b9c688a9af61450f2ef7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 31 Jul 2024 10:14:43 +0000 Subject: [PATCH 168/196] chore(deps): update rust crate predicates to v3.1.2 --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8933897..4a954e6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1428,9 +1428,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "3.1.0" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" +checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" dependencies = [ "anstyle", "difflib", From 5b303a1c03ed9ca897b38bf5c6b19da5785dbe1b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 31 Jul 2024 10:14:49 +0000 Subject: [PATCH 169/196] fix(deps): update rust crate clap to v4.5.11 --- Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8933897..a0e392c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -415,9 +415,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.8" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d" +checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3" dependencies = [ "clap_builder", "clap_derive", @@ -425,9 +425,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.8" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708" +checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa" dependencies = [ "anstream", "anstyle", @@ -437,9 +437,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.8" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" +checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e" dependencies = [ "heck", "proc-macro2", From 0a6c8e08a2f71b4706e9e252a735d58eeb2d8341 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 31 Jul 2024 10:14:54 +0000 Subject: [PATCH 170/196] fix(deps): update rust crate tokio to v1.39.2 --- Cargo.lock | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8933897..a68f83b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1149,13 +1149,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.11" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" dependencies = [ + "hermit-abi 0.3.9", "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1196,16 +1197,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi 0.3.9", - "libc", -] - [[package]] name = "num_threads" version = "0.1.7" @@ -1988,28 +1979,27 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.0" +version = "1.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", From 0316c9b62a39a01a3b80fbb8aff8a99b275ef001 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 31 Jul 2024 18:36:35 +0000 Subject: [PATCH 171/196] fix(deps): update rust crate clap to v4.5.12 --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1cffeea..ba6743b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -415,9 +415,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.11" +version = "4.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3" +checksum = "c53aa12ec67affac065e7c7dd20a42fa2a4094921b655711d5d3107bb3d52bed" dependencies = [ "clap_builder", "clap_derive", @@ -425,9 +425,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.11" +version = "4.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa" +checksum = "efbdf2dd5fe10889e0c61942ff5d948aaf12fd0b4504408ab0cbb1916c2cffa9" dependencies = [ "anstream", "anstyle", From e2dff58fbc46adcc8d1d353e32b62239d28079db Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 31 Jul 2024 22:13:06 +0000 Subject: [PATCH 172/196] fix(deps): update rust crate clap to v4.5.13 --- Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ba6743b..3c6c420 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -415,9 +415,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.12" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c53aa12ec67affac065e7c7dd20a42fa2a4094921b655711d5d3107bb3d52bed" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" dependencies = [ "clap_builder", "clap_derive", @@ -425,9 +425,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.12" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbdf2dd5fe10889e0c61942ff5d948aaf12fd0b4504408ab0cbb1916c2cffa9" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" dependencies = [ "anstream", "anstyle", @@ -437,9 +437,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.11" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck", "proc-macro2", From 4114a4eb496007f63b9656d9d2832c339c8fe46c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:46:19 +0000 Subject: [PATCH 173/196] fix(deps): update rust crate clap to v4.5.14 --- Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3c6c420..251e2f8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -58,9 +58,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anstyle-parse" @@ -415,9 +415,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.13" +version = "4.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +checksum = "c937d4061031a6d0c8da4b9a4f98a172fc2976dfb1c19213a9cf7d0d3c837e36" dependencies = [ "clap_builder", "clap_derive", @@ -425,9 +425,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.13" +version = "4.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +checksum = "85379ba512b21a328adf887e85f7742d12e96eb31f3ef077df4ffc26b506ffed" dependencies = [ "anstream", "anstyle", From 5030f4530d017ae8ee0ceaf84cd968c120d87793 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 03:32:41 +0000 Subject: [PATCH 174/196] chore(deps): update rust crate assert_cmd to v2.0.16 --- Cargo.lock | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 251e2f8..b5008d9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -98,13 +98,14 @@ checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "assert_cmd" -version = "2.0.15" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc65048dd435533bb1baf2ed9956b9a278fbfdcf90301b39ee117f06c0199d37" +checksum = "dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d" dependencies = [ "anstyle", "bstr", "doc-comment", + "libc", "predicates", "predicates-core", "predicates-tree", From 97f9aefac45a94b761f49bc487cc332228e1559f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 Aug 2024 00:47:55 +0000 Subject: [PATCH 175/196] fix(deps): update rust crate clap to v4.5.15 --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b5008d9..bdb786d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -416,9 +416,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.14" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c937d4061031a6d0c8da4b9a4f98a172fc2976dfb1c19213a9cf7d0d3c837e36" +checksum = "11d8838454fda655dafd3accb2b6e2bea645b9e4078abe84a22ceb947235c5cc" dependencies = [ "clap_builder", "clap_derive", @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.14" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85379ba512b21a328adf887e85f7742d12e96eb31f3ef077df4ffc26b506ffed" +checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" dependencies = [ "anstream", "anstyle", From b711a67a355c4e2a6a35dbda7e9adf969c2a0621 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 22:07:02 +0000 Subject: [PATCH 176/196] fix(deps): update rust crate clap to v4.5.16 --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bdb786d..b225b27 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -416,9 +416,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.15" +version = "4.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d8838454fda655dafd3accb2b6e2bea645b9e4078abe84a22ceb947235c5cc" +checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" dependencies = [ "clap_builder", "clap_derive", From 501d4fdb9f2185dcaed9d1d59cea7b4eebf6764f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 17 Aug 2024 19:41:20 +0000 Subject: [PATCH 177/196] fix(deps): update rust crate tokio to v1.39.3 --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bdb786d..7a1f214 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1980,9 +1980,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.2" +version = "1.39.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" dependencies = [ "backtrace", "bytes", From 2ae74badf38bb232ae69c74cca2f434e110675d9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 09:23:54 +0000 Subject: [PATCH 178/196] fix(deps): update rust crate anyhow to v1.0.89 --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5e425ad..0389735 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -92,9 +92,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "assert_cmd" From 57ffb39d0de624df96dc8238a705563a9c233647 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 09:24:01 +0000 Subject: [PATCH 179/196] fix(deps): update rust crate clap to v4.5.17 --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5e425ad..280d28c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -416,9 +416,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.16" +version = "4.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" dependencies = [ "clap_builder", "clap_derive", @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.15" +version = "4.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" dependencies = [ "anstream", "anstyle", From a9023e5bf84bec988e0d18cad0021e034d33aa29 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 14:18:15 +0000 Subject: [PATCH 180/196] fix(deps): update rust crate tokio to v1.40.0 --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7fc621c..b9b4b0c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1980,9 +1980,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.3" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", From 75f7adea2064e7d495c497176ab988509c8e4b81 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 20 Sep 2024 22:07:32 +0000 Subject: [PATCH 181/196] fix(deps): update rust crate clap to v4.5.18 --- Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b9b4b0c..e90c473 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -416,9 +416,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.17" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" +checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" dependencies = [ "clap_builder", "clap_derive", @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.17" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" +checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" dependencies = [ "anstream", "anstyle", @@ -438,9 +438,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck", "proc-macro2", From bea9049dee71d75f75ed5e4c290e04ab54f5f46d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 18:32:48 +0000 Subject: [PATCH 182/196] fix(deps): update rust crate clap to v4.5.19 --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e90c473..522577d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -416,9 +416,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.18" +version = "4.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" +checksum = "7be5744db7978a28d9df86a214130d106a89ce49644cbc4e3f0c22c3fba30615" dependencies = [ "clap_builder", "clap_derive", @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.18" +version = "4.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" +checksum = "a5fbc17d3ef8278f55b282b2a2e75ae6f6c7d4bb70ed3d0382375104bfafdb4b" dependencies = [ "anstream", "anstyle", From 25a6d8bb85189a98aac72deb26cb9fb1b36c568f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 5 Oct 2024 08:03:37 +0000 Subject: [PATCH 183/196] fix(deps): update rust crate futures to v0.3.31 --- Cargo.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 522577d..3cd32ae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -666,9 +666,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -681,9 +681,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -691,15 +691,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -708,9 +708,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" @@ -742,9 +742,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", @@ -753,21 +753,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", From 60ad985e3f7fa0e8cd78cf91c8860b22e8d90a59 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 17:15:03 +0000 Subject: [PATCH 184/196] fix(deps): update rust crate clap to v4.5.20 --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3cd32ae..a4d75a5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -416,9 +416,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.19" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7be5744db7978a28d9df86a214130d106a89ce49644cbc4e3f0c22c3fba30615" +checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" dependencies = [ "clap_builder", "clap_derive", @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.19" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5fbc17d3ef8278f55b282b2a2e75ae6f6c7d4bb70ed3d0382375104bfafdb4b" +checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" dependencies = [ "anstream", "anstyle", From c724d7604dd0682a83f65f02188f1a34f81c436d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 20:53:51 +0000 Subject: [PATCH 185/196] fix(deps): update rust crate anyhow to v1.0.90 --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a4d75a5..385b6ad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -92,9 +92,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "37bf3594c4c988a53154954629820791dde498571819ae4ca50ca811e060cc95" [[package]] name = "assert_cmd" From 7db9b7d14d120c724bccf8b238dee97c5f6365cc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 21:14:38 +0000 Subject: [PATCH 186/196] fix(deps): update rust crate openssl to v0.10.68 --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 385b6ad..5812c29 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1243,9 +1243,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ "bitflags", "cfg-if", @@ -1284,9 +1284,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", From bf8d86b6fd412e4ff7758663a4f64092003f5890 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Sat, 19 Oct 2024 16:53:44 +0200 Subject: [PATCH 187/196] Update renovate.json --- .github/renovate.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/renovate.json b/.github/renovate.json index 7269f0b..9f4ba29 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -1,5 +1,12 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": ["config:base"], - "reviewers": ["bartvdbraak"] + "reviewers": ["bartvdbraak"], + "packageRules": [ + { + "matchPackagePrefixes": ["azure"], + "groupName": "Azure Dependencies", + "groupSlug": "azure-dependencies" + } + ] } \ No newline at end of file From 906dcb02fd38c83196584f582ef4e25d4c69b4cd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 19 Oct 2024 14:56:58 +0000 Subject: [PATCH 188/196] fix(deps): update azure dependencies to 0.21.0 --- Cargo.lock | 12 ++++++------ Cargo.toml | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5812c29..0cc926c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -249,9 +249,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "azure_core" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ce3de4b65b1ee2667c81d1fc692949049502a4cf9c38118d811d6d79a7eaef" +checksum = "7b552ad43a45a746461ec3d3a51dfb6466b4759209414b439c165eb6a6b7729e" dependencies = [ "async-trait", "base64 0.22.1", @@ -276,9 +276,9 @@ dependencies = [ [[package]] name = "azure_identity" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c97790480791ec1ee9b76f5c6499b1d0aac0d4cd1e62010bfc19bb545544c5" +checksum = "88ddd80344317c40c04b603807b63a5cefa532f1b43522e72f480a988141f744" dependencies = [ "async-lock", "async-process", @@ -297,9 +297,9 @@ dependencies = [ [[package]] name = "azure_security_keyvault" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "338cac645bda0555f59189873be0cccaf420c26791f009b2207b62474cebbab8" +checksum = "bd94f507b75349a0e381c0a23bd77cc654fb509f0e6797ce4f99dd959d9e2d68" dependencies = [ "async-trait", "azure_core", diff --git a/Cargo.toml b/Cargo.toml index e93343d..4cd708a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,9 +11,9 @@ repository = "https://github.com/bartvdbraak/keyweave/" [dependencies] anyhow = "1.0.82" -azure_core = "0.20.0" -azure_identity = "0.20.0" -azure_security_keyvault = "0.20.0" +azure_core = "0.21.0" +azure_identity = "0.21.0" +azure_security_keyvault = "0.21.0" clap = { version = "4.5.4", features = ["derive"] } futures = "0.3.30" paris = { version = "1.5.15", features = ["macros"] } From b30a73dc61f54857442872215080f9b7b961be96 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 Nov 2024 07:01:14 +0000 Subject: [PATCH 189/196] fix(deps): update rust crate anyhow to v1.0.93 --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0cc926c..1a39723 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -92,9 +92,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.90" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37bf3594c4c988a53154954629820791dde498571819ae4ca50ca811e060cc95" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" [[package]] name = "assert_cmd" From 2ecc6a63bbbf34445acc117ec03fe29e1217cfd3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 12:39:40 +0000 Subject: [PATCH 190/196] fix(deps): update rust crate tokio to v1.41.1 --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0cc926c..906db6f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1980,9 +1980,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.40.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", From b88b92bcdf5d9ff62906c2baf15a5ee0db10d902 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 8 Nov 2024 22:59:50 +0000 Subject: [PATCH 191/196] chore(deps): update rust crate serial_test to v3.2.0 --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0cc926c..7dcf48e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1800,9 +1800,9 @@ dependencies = [ [[package]] name = "serial_test" -version = "3.1.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d" +checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" dependencies = [ "futures", "log", @@ -1814,9 +1814,9 @@ dependencies = [ [[package]] name = "serial_test_derive" -version = "3.1.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" +checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", From ec2ad7eafec861d064d7074b3c88df7d578883dd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 13 Nov 2024 22:26:15 +0000 Subject: [PATCH 192/196] fix(deps): update rust crate clap to v4.5.21 --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7dcf48e..af58c39 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -416,9 +416,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.20" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" dependencies = [ "clap_builder", "clap_derive", @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.20" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" dependencies = [ "anstream", "anstyle", From 39ec69cdc3e98d28f21291a3414b7026a4efea17 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 17:04:33 +0000 Subject: [PATCH 193/196] fix(deps): update rust crate tokio to v1.42.0 --- Cargo.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7da5286..03c2471 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -1980,9 +1980,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.1" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" +checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" dependencies = [ "backtrace", "bytes", From 99727cbea076c1c6992d0b1219c1981302dbb3bd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 22:48:00 +0000 Subject: [PATCH 194/196] fix(deps): update rust crate anyhow to v1.0.94 --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 03c2471..39f4740 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -92,9 +92,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" +checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" [[package]] name = "assert_cmd" From d1fe52c071e40187e35c9ab37d313bffc6610bb3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 22:48:09 +0000 Subject: [PATCH 195/196] fix(deps): update rust crate clap to v4.5.22 --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 03c2471..130c964 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -416,9 +416,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.21" +version = "4.5.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" +checksum = "69371e34337c4c984bbe322360c2547210bf632eb2814bbe78a6e87a2935bd2b" dependencies = [ "clap_builder", "clap_derive", @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.21" +version = "4.5.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" +checksum = "6e24c1b4099818523236a8ca881d2b45db98dadfb4625cf6608c12069fcbbde1" dependencies = [ "anstream", "anstyle", From 183b6fb99d84ea3ca78f7aae64d9ae0b452f936f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 23:40:05 +0000 Subject: [PATCH 196/196] fix(deps): update rust crate clap to v4.5.23 --- Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index deeb608..2b4da3d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -416,9 +416,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.22" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69371e34337c4c984bbe322360c2547210bf632eb2814bbe78a6e87a2935bd2b" +checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" dependencies = [ "clap_builder", "clap_derive", @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.22" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e24c1b4099818523236a8ca881d2b45db98dadfb4625cf6608c12069fcbbde1" +checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" dependencies = [ "anstream", "anstyle", @@ -450,9 +450,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "colorchoice"