mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-27 11:24:45 +08:00
feat: add utility to convert TOML configuration file to list of environment variables (#3096)
This commit is contained in:
360
.github/workflows/CI-pr.yml
vendored
360
.github/workflows/CI-pr.yml
vendored
@ -130,159 +130,53 @@ jobs:
|
||||
shell: bash
|
||||
run: sed -i 's/rustflags = \[/rustflags = \[\n "-Dwarnings",/' .cargo/config.toml
|
||||
|
||||
- name: Check files changed
|
||||
- name: Check modified crates
|
||||
shell: bash
|
||||
run: |
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/api_models/; then
|
||||
echo "api_models_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "api_models_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/cards/; then
|
||||
echo "cards_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "cards_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/common_enums/; then
|
||||
echo "common_enums_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "common_enums_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/common_utils/; then
|
||||
echo "common_utils_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "common_utils_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/diesel_models/; then
|
||||
echo "diesel_models_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "diesel_models_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/drainer/; then
|
||||
echo "drainer_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "drainer_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/external_services/; then
|
||||
echo "external_services_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "external_services_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/masking/; then
|
||||
echo "masking_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "masking_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/redis_interface/; then
|
||||
echo "redis_interface_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "redis_interface_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/router/; then
|
||||
echo "router_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "router_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/storage_impl/; then
|
||||
echo "storage_impl_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "storage_impl_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/router_derive/; then
|
||||
echo "router_derive_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "router_derive_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/router_env/; then
|
||||
echo "router_env_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "router_env_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/test_utils/; then
|
||||
echo "test_utils_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "test_utils_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --submodule=diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/pm_auth/; then
|
||||
echo "pm_auth_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "pm_auth_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
# Obtain a list of workspace members
|
||||
workspace_members="$(
|
||||
cargo metadata --format-version 1 --no-deps \
|
||||
| jq --compact-output --monochrome-output --raw-output '.workspace_members | sort | .[] | split(" ")[0]'
|
||||
)"
|
||||
|
||||
- name: Cargo hack api_models
|
||||
if: env.api_models_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p api_models
|
||||
PACKAGES_CHECKED=()
|
||||
PACKAGES_SKIPPED=()
|
||||
|
||||
- name: Cargo hack cards
|
||||
if: env.cards_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p cards
|
||||
while IFS= read -r package_name; do
|
||||
# Obtain comma-separated list of transitive workspace dependencies for each workspace member
|
||||
change_paths="$(cargo tree --all-features --no-dedupe --prefix none --package "${package_name}" \
|
||||
| grep 'crates/' \
|
||||
| sort --unique \
|
||||
| awk --field-separator ' ' '{ printf "crates/%s\n", $1 }' | paste -d ',' -s -)"
|
||||
|
||||
- name: Cargo hack common_enums
|
||||
if: env.common_enums_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p common_enums
|
||||
# Store change paths in an array by splitting `change_paths` by comma
|
||||
IFS=',' read -ra change_paths <<< "${change_paths}"
|
||||
|
||||
- name: Cargo hack common_utils
|
||||
if: env.common_utils_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p common_utils
|
||||
# A package must be checked if any of its transitive dependencies (or itself) has been modified
|
||||
if git diff --exit-code --quiet "origin/${GITHUB_BASE_REF}" -- "${change_paths[@]}"; then
|
||||
printf '::debug::Skipping `%s` since none of these paths were modified: %s\n' "${package_name}" "${change_paths[*]}"
|
||||
PACKAGES_SKIPPED+=("${package_name}")
|
||||
else
|
||||
printf '::debug::Checking `%s` since at least one of these paths was modified: %s\n' "${package_name}" "${change_paths[*]}"
|
||||
PACKAGES_CHECKED+=("${package_name}")
|
||||
fi
|
||||
done <<< "${workspace_members}"
|
||||
|
||||
- name: Cargo hack diesel_models
|
||||
if: env.diesel_models_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p diesel_models
|
||||
printf '::notice::Packages checked: %s; Packages skipped: %s\n' "${PACKAGES_CHECKED[*]}" "${PACKAGES_SKIPPED[*]}"
|
||||
echo "PACKAGES_CHECKED=${PACKAGES_CHECKED[*]}" >> ${GITHUB_ENV}
|
||||
echo "PACKAGES_SKIPPED=${PACKAGES_SKIPPED[*]}" >> ${GITHUB_ENV}
|
||||
|
||||
- name: Cargo hack drainer
|
||||
if: env.drainer_changes_exist == 'true'
|
||||
- name: Run `cargo hack` on modified crates
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p drainer
|
||||
run: |
|
||||
# Store packages to check in an array by splitting `PACKAGES_CHECKED` by space
|
||||
IFS=' ' read -ra PACKAGES_CHECKED <<< "${PACKAGES_CHECKED}"
|
||||
|
||||
- name: Cargo hack external_services
|
||||
if: env.external_services_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p external_services
|
||||
|
||||
- name: Cargo hack masking
|
||||
if: env.masking_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p masking
|
||||
|
||||
- name: Cargo hack redis_interface
|
||||
if: env.redis_interface_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p redis_interface
|
||||
|
||||
- name: Cargo hack pm_auth
|
||||
if: env.pm_auth_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p pm_auth
|
||||
|
||||
- name: Cargo hack router
|
||||
if: env.router_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --skip kms,basilisk,kv_store,accounts_cache,openapi --no-dev-deps -p router
|
||||
|
||||
- name: Cargo hack storage_impl
|
||||
if: env.storage_impl_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p storage_impl
|
||||
|
||||
- name: Cargo hack router_derive
|
||||
if: env.router_derive_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p router_derive
|
||||
|
||||
- name: Cargo hack router_env
|
||||
if: env.router_env_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p router_env
|
||||
|
||||
- name: Cargo hack test_utils
|
||||
if: env.test_utils_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p test_utils
|
||||
for package in "${PACKAGES_CHECKED[@]}"; do
|
||||
printf '::group::Running `cargo hack` on package `%s`\n' "${package}"
|
||||
cargo hack check --each-feature --all-targets --package "${package}"
|
||||
echo '::endgroup::'
|
||||
done
|
||||
|
||||
# cargo-deny:
|
||||
# name: Run cargo-deny
|
||||
@ -393,159 +287,53 @@ jobs:
|
||||
git push
|
||||
fi
|
||||
|
||||
- name: Check files changed
|
||||
- name: Check modified crates
|
||||
shell: bash
|
||||
run: |
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/api_models/; then
|
||||
echo "api_models_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "api_models_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/cards/; then
|
||||
echo "cards_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "cards_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/common_enums/; then
|
||||
echo "common_enums_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "common_enums_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/common_utils/; then
|
||||
echo "common_utils_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "common_utils_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/diesel_models/; then
|
||||
echo "diesel_models_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "diesel_models_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/drainer/; then
|
||||
echo "drainer_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "drainer_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/external_services/; then
|
||||
echo "external_services_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "external_services_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/masking/; then
|
||||
echo "masking_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "masking_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/redis_interface/; then
|
||||
echo "redis_interface_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "redis_interface_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/router/; then
|
||||
echo "router_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "router_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/router_derive/; then
|
||||
echo "router_derive_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "router_derive_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/storage_impl/; then
|
||||
echo "storage_impl_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "storage_impl_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/router_env/; then
|
||||
echo "router_env_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "router_env_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/test_utils/; then
|
||||
echo "test_utils_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "test_utils_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
if git diff --submodule=diff --exit-code --quiet origin/$GITHUB_BASE_REF -- crates/pm_auth/; then
|
||||
echo "pm_auth_changes_exist=false" >> $GITHUB_ENV
|
||||
else
|
||||
echo "pm_auth_changes_exist=true" >> $GITHUB_ENV
|
||||
fi
|
||||
# Obtain a list of workspace members
|
||||
workspace_members="$(
|
||||
cargo metadata --format-version 1 --no-deps \
|
||||
| jq --compact-output --monochrome-output --raw-output '.workspace_members | sort | .[] | split(" ")[0]'
|
||||
)"
|
||||
|
||||
- name: Cargo hack api_models
|
||||
if: env.api_models_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p api_models
|
||||
PACKAGES_CHECKED=()
|
||||
PACKAGES_SKIPPED=()
|
||||
|
||||
- name: Cargo hack cards
|
||||
if: env.cards_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p cards
|
||||
while IFS= read -r package_name; do
|
||||
# Obtain comma-separated list of transitive workspace dependencies for each workspace member
|
||||
change_paths="$(cargo tree --all-features --no-dedupe --prefix none --package "${package_name}" \
|
||||
| grep 'crates/' \
|
||||
| sort --unique \
|
||||
| awk --field-separator ' ' '{ printf "crates/%s\n", $1 }' | paste -d ',' -s -)"
|
||||
|
||||
- name: Cargo hack common_enums
|
||||
if: env.common_enums_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p common_enums
|
||||
# Store change paths in an array by splitting `change_paths` by comma
|
||||
IFS=',' read -ra change_paths <<< "${change_paths}"
|
||||
|
||||
- name: Cargo hack common_utils
|
||||
if: env.common_utils_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p common_utils
|
||||
# A package must be checked if any of its transitive dependencies (or itself) has been modified
|
||||
if git diff --exit-code --quiet "origin/${GITHUB_BASE_REF}" -- "${change_paths[@]}"; then
|
||||
printf '::debug::Skipping `%s` since none of these paths were modified: %s\n' "${package_name}" "${change_paths[*]}"
|
||||
PACKAGES_SKIPPED+=("${package_name}")
|
||||
else
|
||||
printf '::debug::Checking `%s` since at least one of these paths was modified: %s\n' "${package_name}" "${change_paths[*]}"
|
||||
PACKAGES_CHECKED+=("${package_name}")
|
||||
fi
|
||||
done <<< "${workspace_members}"
|
||||
|
||||
- name: Cargo hack diesel_models
|
||||
if: env.diesel_models_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p diesel_models
|
||||
printf '::notice::Packages checked: %s; Packages skipped: %s\n' "${PACKAGES_CHECKED[*]}" "${PACKAGES_SKIPPED[*]}"
|
||||
echo "PACKAGES_CHECKED=${PACKAGES_CHECKED[*]}" >> ${GITHUB_ENV}
|
||||
echo "PACKAGES_SKIPPED=${PACKAGES_SKIPPED[*]}" >> ${GITHUB_ENV}
|
||||
|
||||
- name: Cargo hack drainer
|
||||
if: env.drainer_changes_exist == 'true'
|
||||
- name: Run `cargo hack` on modified crates
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p drainer
|
||||
run: |
|
||||
# Store packages to check in an array by splitting `PACKAGES_CHECKED` by space
|
||||
IFS=' ' read -ra PACKAGES_CHECKED <<< "${PACKAGES_CHECKED}"
|
||||
|
||||
- name: Cargo hack external_services
|
||||
if: env.external_services_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p external_services
|
||||
|
||||
- name: Cargo hack masking
|
||||
if: env.masking_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p masking
|
||||
|
||||
- name: Cargo hack redis_interface
|
||||
if: env.redis_interface_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p redis_interface
|
||||
|
||||
- name: Cargo hack pm_auth
|
||||
if: env.pm_auth_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p pm_auth
|
||||
|
||||
- name: Cargo hack router
|
||||
if: env.router_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --skip kms,basilisk,kv_store,accounts_cache,openapi --no-dev-deps -p router
|
||||
|
||||
- name: Cargo hack router_derive
|
||||
if: env.router_derive_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p router_derive
|
||||
|
||||
- name: Cargo hack storage_impl
|
||||
if: env.storage_impl_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p storage_impl
|
||||
|
||||
- name: Cargo hack router_env
|
||||
if: env.router_env_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p router_env
|
||||
|
||||
- name: Cargo hack test_utils
|
||||
if: env.test_utils_changes_exist == 'true'
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps -p test_utils
|
||||
for package in "${PACKAGES_CHECKED[@]}"; do
|
||||
printf '::group::Running `cargo hack` on package `%s`\n' "${package}"
|
||||
cargo hack check --each-feature --all-targets --package "${package}"
|
||||
echo '::endgroup::'
|
||||
done
|
||||
|
||||
typos:
|
||||
name: Spell check
|
||||
|
||||
6
.github/workflows/CI-push.yml
vendored
6
.github/workflows/CI-push.yml
vendored
@ -80,8 +80,8 @@ jobs:
|
||||
- name: Cargo hack
|
||||
if: ${{ github.event_name == 'push' }}
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps
|
||||
|
||||
run: cargo hack check --workspace --each-feature --all-targets
|
||||
|
||||
- name: Cargo build release
|
||||
if: ${{ github.event_name == 'merge_group' }}
|
||||
shell: bash
|
||||
@ -166,7 +166,7 @@ jobs:
|
||||
- name: Cargo hack
|
||||
if: ${{ github.event_name == 'push' }}
|
||||
shell: bash
|
||||
run: cargo hack check --each-feature --no-dev-deps
|
||||
run: cargo hack check --workspace --each-feature --all-targets
|
||||
|
||||
- name: Cargo build release
|
||||
if: ${{ github.event_name == 'merge_group' }}
|
||||
|
||||
281
Cargo.lock
generated
281
Cargo.lock
generated
@ -44,8 +44,8 @@ dependencies = [
|
||||
"actix-rt",
|
||||
"actix-service",
|
||||
"actix-utils",
|
||||
"ahash 0.8.3",
|
||||
"base64 0.21.4",
|
||||
"ahash 0.8.6",
|
||||
"base64 0.21.5",
|
||||
"bitflags 1.3.2",
|
||||
"brotli",
|
||||
"bytes 1.5.0",
|
||||
@ -80,7 +80,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb"
|
||||
dependencies = [
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -118,7 +118,7 @@ dependencies = [
|
||||
"parse-size",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -220,7 +220,7 @@ dependencies = [
|
||||
"actix-service",
|
||||
"actix-utils",
|
||||
"actix-web-codegen",
|
||||
"ahash 0.7.6",
|
||||
"ahash 0.7.7",
|
||||
"bytes 1.5.0",
|
||||
"bytestring",
|
||||
"cfg-if 1.0.0",
|
||||
@ -255,7 +255,7 @@ dependencies = [
|
||||
"actix-router",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -281,25 +281,26 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
|
||||
|
||||
[[package]]
|
||||
name = "ahash"
|
||||
version = "0.7.6"
|
||||
version = "0.7.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
|
||||
checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
|
||||
dependencies = [
|
||||
"getrandom 0.2.10",
|
||||
"getrandom 0.2.11",
|
||||
"once_cell",
|
||||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ahash"
|
||||
version = "0.8.3"
|
||||
version = "0.8.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
|
||||
checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"getrandom 0.2.10",
|
||||
"getrandom 0.2.11",
|
||||
"once_cell",
|
||||
"version_check",
|
||||
"zerocopy",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -589,7 +590,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -600,7 +601,7 @@ checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -636,8 +637,8 @@ dependencies = [
|
||||
"actix-service",
|
||||
"actix-tls",
|
||||
"actix-utils",
|
||||
"ahash 0.7.6",
|
||||
"base64 0.21.4",
|
||||
"ahash 0.7.7",
|
||||
"base64 0.21.5",
|
||||
"bytes 1.5.0",
|
||||
"cfg-if 1.0.0",
|
||||
"cookie",
|
||||
@ -1163,9 +1164,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
|
||||
|
||||
[[package]]
|
||||
name = "base64"
|
||||
version = "0.21.4"
|
||||
version = "0.21.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
|
||||
checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
|
||||
|
||||
[[package]]
|
||||
name = "base64-simd"
|
||||
@ -1317,7 +1318,7 @@ dependencies = [
|
||||
"proc-macro-crate 2.0.0",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
"syn_derive",
|
||||
]
|
||||
|
||||
@ -1609,9 +1610,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "4.3.4"
|
||||
version = "4.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "80672091db20273a15cf9fdd4e47ed43b5091ec9841bf4c6145c9dfbbcae09ed"
|
||||
checksum = "401a4694d2bf92537b6867d94de48c4842089645fdcdf6c71865b175d836e9c2"
|
||||
dependencies = [
|
||||
"clap_builder",
|
||||
"clap_derive",
|
||||
@ -1620,9 +1621,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "clap_builder"
|
||||
version = "4.3.4"
|
||||
version = "4.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c1458a1df40e1e2afebb7ab60ce55c1fa8f431146205aa5f4887e0b111c27636"
|
||||
checksum = "72394f3339a76daf211e57d4bcb374410f3965dcc606dd0e03738c7888766980"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"bitflags 1.3.2",
|
||||
@ -1638,7 +1639,7 @@ dependencies = [
|
||||
"heck",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -1740,6 +1741,18 @@ dependencies = [
|
||||
"yaml-rust",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "config_importer"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"clap",
|
||||
"indexmap 2.1.0",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"toml 0.7.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "constant_time_eq"
|
||||
version = "0.2.6"
|
||||
@ -2012,7 +2025,7 @@ dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"strsim",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2023,7 +2036,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
|
||||
dependencies = [
|
||||
"darling_core",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2033,7 +2046,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"hashbrown 0.14.1",
|
||||
"hashbrown 0.14.3",
|
||||
"lock_api 0.4.10",
|
||||
"once_cell",
|
||||
"parking_lot_core 0.9.8",
|
||||
@ -2160,7 +2173,7 @@ dependencies = [
|
||||
"diesel_table_macro_syntax",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2190,7 +2203,7 @@ version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
|
||||
dependencies = [
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2247,7 +2260,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2401,7 +2414,7 @@ dependencies = [
|
||||
"common_enums",
|
||||
"currency_conversion",
|
||||
"euclid",
|
||||
"getrandom 0.2.10",
|
||||
"getrandom 0.2.11",
|
||||
"kgraph_utils",
|
||||
"once_cell",
|
||||
"ron-parser",
|
||||
@ -2427,7 +2440,7 @@ dependencies = [
|
||||
"aws-sdk-sesv2",
|
||||
"aws-sdk-sts",
|
||||
"aws-smithy-client",
|
||||
"base64 0.21.4",
|
||||
"base64 0.21.5",
|
||||
"common_utils",
|
||||
"dyn-clone",
|
||||
"error-stack",
|
||||
@ -2597,7 +2610,7 @@ checksum = "b0fa992f1656e1707946bbba340ad244f0814009ef8c0118eb7b658395f19a2e"
|
||||
dependencies = [
|
||||
"frunk_proc_macro_helpers",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2609,7 +2622,7 @@ dependencies = [
|
||||
"frunk_core",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2621,7 +2634,7 @@ dependencies = [
|
||||
"frunk_core",
|
||||
"frunk_proc_macro_helpers",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2734,7 +2747,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2806,9 +2819,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 1.0.0",
|
||||
"js-sys",
|
||||
@ -2907,16 +2920,16 @@ version = "0.12.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
|
||||
dependencies = [
|
||||
"ahash 0.7.6",
|
||||
"ahash 0.7.7",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hashbrown"
|
||||
version = "0.14.1"
|
||||
version = "0.14.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12"
|
||||
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
|
||||
dependencies = [
|
||||
"ahash 0.8.3",
|
||||
"ahash 0.8.6",
|
||||
"allocator-api2",
|
||||
]
|
||||
|
||||
@ -2926,7 +2939,7 @@ version = "0.8.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
|
||||
dependencies = [
|
||||
"hashbrown 0.14.1",
|
||||
"hashbrown 0.14.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2935,7 +2948,7 @@ version = "0.3.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
|
||||
dependencies = [
|
||||
"base64 0.21.4",
|
||||
"base64 0.21.5",
|
||||
"bytes 1.5.0",
|
||||
"headers-core",
|
||||
"http",
|
||||
@ -3140,16 +3153,16 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "iana-time-zone"
|
||||
version = "0.1.57"
|
||||
version = "0.1.58"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
|
||||
checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
|
||||
dependencies = [
|
||||
"android_system_properties",
|
||||
"core-foundation-sys",
|
||||
"iana-time-zone-haiku",
|
||||
"js-sys",
|
||||
"wasm-bindgen",
|
||||
"windows",
|
||||
"windows-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -3232,12 +3245,12 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "indexmap"
|
||||
version = "2.0.2"
|
||||
version = "2.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
|
||||
checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
|
||||
dependencies = [
|
||||
"equivalent",
|
||||
"hashbrown 0.14.1",
|
||||
"hashbrown 0.14.3",
|
||||
"serde",
|
||||
]
|
||||
|
||||
@ -3342,7 +3355,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "33a96c4f2128a6f44ecf7c36df2b03dddf5a07b060a4d5ebc0a81e9821f7c60e"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64 0.21.4",
|
||||
"base64 0.21.5",
|
||||
"flate2",
|
||||
"once_cell",
|
||||
"openssl",
|
||||
@ -3388,7 +3401,7 @@ version = "8.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
|
||||
dependencies = [
|
||||
"base64 0.21.4",
|
||||
"base64 0.21.5",
|
||||
"pem",
|
||||
"ring",
|
||||
"serde",
|
||||
@ -3434,9 +3447,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.148"
|
||||
version = "0.2.150"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
|
||||
checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
|
||||
|
||||
[[package]]
|
||||
name = "libgit2-sys"
|
||||
@ -3909,9 +3922,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "num-traits"
|
||||
version = "0.2.16"
|
||||
version = "0.2.17"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
|
||||
checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"libm",
|
||||
@ -4013,7 +4026,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -4299,7 +4312,7 @@ dependencies = [
|
||||
"pest_meta",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -4389,7 +4402,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -4509,7 +4522,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
"toml_edit 0.19.10",
|
||||
"toml_edit 0.19.14",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -4547,9 +4560,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.68"
|
||||
version = "1.0.70"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5b1106fec09662ec6dd98ccac0f81cef56984d0b49f75c92d8cbad76e20c005c"
|
||||
checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
|
||||
dependencies = [
|
||||
"unicode-ident",
|
||||
]
|
||||
@ -4755,7 +4768,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]]
|
||||
@ -4893,7 +4906,7 @@ version = "0.4.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
|
||||
dependencies = [
|
||||
"getrandom 0.2.10",
|
||||
"getrandom 0.2.11",
|
||||
"redox_syscall 0.2.16",
|
||||
"thiserror",
|
||||
]
|
||||
@ -4970,7 +4983,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
|
||||
dependencies = [
|
||||
"async-compression",
|
||||
"base64 0.21.4",
|
||||
"base64 0.21.5",
|
||||
"bytes 1.5.0",
|
||||
"encoding_rs",
|
||||
"futures-core",
|
||||
@ -5094,7 +5107,7 @@ dependencies = [
|
||||
"awc",
|
||||
"aws-config",
|
||||
"aws-sdk-s3",
|
||||
"base64 0.21.4",
|
||||
"base64 0.21.5",
|
||||
"bb8",
|
||||
"bigdecimal",
|
||||
"blake3",
|
||||
@ -5180,13 +5193,13 @@ name = "router_derive"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"diesel",
|
||||
"indexmap 2.0.2",
|
||||
"indexmap 2.1.0",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"strum 0.24.1",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -5246,7 +5259,7 @@ dependencies = [
|
||||
"quote",
|
||||
"rust-embed-utils",
|
||||
"shellexpand",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
"walkdir",
|
||||
]
|
||||
|
||||
@ -5404,7 +5417,7 @@ version = "1.0.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
|
||||
dependencies = [
|
||||
"base64 0.21.4",
|
||||
"base64 0.21.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -5580,9 +5593,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.188"
|
||||
version = "1.0.193"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
|
||||
checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
@ -5600,22 +5613,22 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.188"
|
||||
version = "1.0.193"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
|
||||
checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.107"
|
||||
version = "1.0.108"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
|
||||
checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
|
||||
dependencies = [
|
||||
"indexmap 2.0.2",
|
||||
"indexmap 2.1.0",
|
||||
"itoa",
|
||||
"ryu",
|
||||
"serde",
|
||||
@ -5670,7 +5683,7 @@ checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -5696,15 +5709,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde_with"
|
||||
version = "3.3.0"
|
||||
version = "3.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237"
|
||||
checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23"
|
||||
dependencies = [
|
||||
"base64 0.21.4",
|
||||
"base64 0.21.5",
|
||||
"chrono",
|
||||
"hex",
|
||||
"indexmap 1.9.3",
|
||||
"indexmap 2.0.2",
|
||||
"indexmap 2.1.0",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"serde_with_macros",
|
||||
@ -5713,14 +5726,14 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde_with_macros"
|
||||
version = "3.3.0"
|
||||
version = "3.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2e6be15c453eb305019bfa438b1593c731f36a289a7853f7707ee29e870b3b3c"
|
||||
checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788"
|
||||
dependencies = [
|
||||
"darling",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -5745,7 +5758,7 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -5968,7 +5981,7 @@ version = "0.6.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fa8241483a83a3f33aa5fff7e7d9def398ff9990b2752b6c6112b83c6d246029"
|
||||
dependencies = [
|
||||
"ahash 0.7.6",
|
||||
"ahash 0.7.7",
|
||||
"atoi",
|
||||
"base64 0.13.1",
|
||||
"bigdecimal",
|
||||
@ -6147,7 +6160,7 @@ dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"rustversion",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -6169,9 +6182,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.38"
|
||||
version = "2.0.39"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
|
||||
checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@ -6187,7 +6200,7 @@ dependencies = [
|
||||
"proc-macro-error",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -6295,7 +6308,7 @@ dependencies = [
|
||||
"proc-macro-error",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -6307,7 +6320,7 @@ dependencies = [
|
||||
"proc-macro-error",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
"test-case-core",
|
||||
]
|
||||
|
||||
@ -6316,7 +6329,7 @@ name = "test_utils"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"base64 0.21.4",
|
||||
"base64 0.21.5",
|
||||
"clap",
|
||||
"masking",
|
||||
"rand 0.8.5",
|
||||
@ -6386,7 +6399,7 @@ checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -6412,9 +6425,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "time"
|
||||
version = "0.3.22"
|
||||
version = "0.3.23"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd"
|
||||
checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"serde",
|
||||
@ -6430,9 +6443,9 @@ checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
|
||||
|
||||
[[package]]
|
||||
name = "time-macros"
|
||||
version = "0.2.9"
|
||||
version = "0.2.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b"
|
||||
checksum = "96ba15a897f3c86766b757e5ac7221554c6750054d74d5b28844fce5fb36a6c4"
|
||||
dependencies = [
|
||||
"time-core",
|
||||
]
|
||||
@ -6576,7 +6589,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -6745,10 +6758,11 @@ version = "0.7.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d6135d499e69981f9ff0ef2167955a5333c35e36f6937d382974566b3d5b94ec"
|
||||
dependencies = [
|
||||
"indexmap 1.9.3",
|
||||
"serde",
|
||||
"serde_spanned",
|
||||
"toml_datetime",
|
||||
"toml_edit 0.19.10",
|
||||
"toml_edit 0.19.14",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -6762,15 +6776,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "toml_edit"
|
||||
version = "0.19.10"
|
||||
version = "0.19.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739"
|
||||
checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
|
||||
dependencies = [
|
||||
"indexmap 1.9.3",
|
||||
"indexmap 2.1.0",
|
||||
"serde",
|
||||
"serde_spanned",
|
||||
"toml_datetime",
|
||||
"winnow 0.4.11",
|
||||
"winnow",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -6779,9 +6793,9 @@ version = "0.20.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
|
||||
dependencies = [
|
||||
"indexmap 2.0.2",
|
||||
"indexmap 2.1.0",
|
||||
"toml_datetime",
|
||||
"winnow 0.5.19",
|
||||
"winnow",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -7145,7 +7159,7 @@ version = "3.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d82b1bc5417102a73e8464c686eef947bdfb99fcdfc0a4f228e81afa9526470a"
|
||||
dependencies = [
|
||||
"indexmap 2.0.2",
|
||||
"indexmap 2.1.0",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"utoipa-gen",
|
||||
@ -7160,7 +7174,7 @@ dependencies = [
|
||||
"proc-macro-error",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -7186,7 +7200,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
|
||||
dependencies = [
|
||||
"atomic",
|
||||
"getrandom 0.2.10",
|
||||
"getrandom 0.2.11",
|
||||
"serde",
|
||||
]
|
||||
|
||||
@ -7309,7 +7323,7 @@ dependencies = [
|
||||
"once_cell",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
||||
@ -7343,7 +7357,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.38",
|
||||
"syn 2.0.39",
|
||||
"wasm-bindgen-backend",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
@ -7462,10 +7476,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||
|
||||
[[package]]
|
||||
name = "windows"
|
||||
version = "0.48.0"
|
||||
name = "windows-core"
|
||||
version = "0.51.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
|
||||
checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
|
||||
dependencies = [
|
||||
"windows-targets",
|
||||
]
|
||||
@ -7536,15 +7550,6 @@ version = "0.48.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
|
||||
|
||||
[[package]]
|
||||
name = "winnow"
|
||||
version = "0.4.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "656953b22bcbfb1ec8179d60734981d1904494ecc91f8a3f0ee5c7389bb8eb4b"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winnow"
|
||||
version = "0.5.19"
|
||||
@ -7566,13 +7571,13 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wiremock"
|
||||
version = "0.5.19"
|
||||
version = "0.5.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c6f71803d3a1c80377a06221e0530be02035d5b3e854af56c6ece7ac20ac441d"
|
||||
checksum = "bd7b0b5b253ebc0240d6aac6dd671c495c467420577bf634d3064ae7e6fa2b4c"
|
||||
dependencies = [
|
||||
"assert-json-diff",
|
||||
"async-trait",
|
||||
"base64 0.21.4",
|
||||
"base64 0.21.5",
|
||||
"deadpool",
|
||||
"futures 0.3.28",
|
||||
"futures-timer",
|
||||
@ -7637,6 +7642,26 @@ dependencies = [
|
||||
"linked-hash-map",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zerocopy"
|
||||
version = "0.7.26"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0"
|
||||
dependencies = [
|
||||
"zerocopy-derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zerocopy-derive"
|
||||
version = "0.7.26"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.39",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zeroize"
|
||||
version = "1.6.0"
|
||||
|
||||
2
Makefile
2
Makefile
@ -93,4 +93,4 @@ precommit : fmt clippy test
|
||||
|
||||
|
||||
hack:
|
||||
cargo hack check --workspace --each-feature --no-dev-deps
|
||||
cargo hack check --workspace --each-feature --all-targets
|
||||
@ -28,8 +28,8 @@ error-stack = "0.3.1"
|
||||
futures = "0.3.28"
|
||||
once_cell = "1.18.0"
|
||||
reqwest = { version = "0.11.18", features = ["serde_json"] }
|
||||
serde = { version = "1.0.163", features = ["derive", "rc"] }
|
||||
serde_json = "1.0.96"
|
||||
serde = { version = "1.0.193", features = ["derive", "rc"] }
|
||||
serde_json = "1.0.108"
|
||||
sqlx = { version = "0.6.3", features = ["postgres", "runtime-actix", "runtime-actix-native-tls", "time", "bigdecimal"] }
|
||||
strum = { version = "0.25.0", features = ["derive"] }
|
||||
thiserror = "1.0.43"
|
||||
|
||||
@ -24,8 +24,8 @@ actix-web = { version = "4.3.1", optional = true }
|
||||
error-stack = "0.3.1"
|
||||
mime = "0.3.17"
|
||||
reqwest = { version = "0.11.18", optional = true }
|
||||
serde = { version = "1.0.163", features = ["derive"] }
|
||||
serde_json = "1.0.96"
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
serde_json = "1.0.108"
|
||||
strum = { version = "0.25", features = ["derive"] }
|
||||
time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] }
|
||||
url = { version = "2.4.0", features = ["serde"] }
|
||||
|
||||
@ -12,7 +12,7 @@ license.workspace = true
|
||||
[dependencies]
|
||||
error-stack = "0.3.1"
|
||||
luhn = "1.0.1"
|
||||
serde = { version = "1.0.163", features = ["derive"] }
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
thiserror = "1.0.40"
|
||||
time = "0.3.21"
|
||||
|
||||
@ -21,4 +21,4 @@ common_utils = { version = "0.1.0", path = "../common_utils" }
|
||||
masking = { version = "0.1.0", path = "../masking" }
|
||||
|
||||
[dev-dependencies]
|
||||
serde_json = "1.0.96"
|
||||
serde_json = "1.0.108"
|
||||
|
||||
@ -12,8 +12,8 @@ dummy_connector = []
|
||||
|
||||
[dependencies]
|
||||
diesel = { version = "2.1.0", features = ["postgres"] }
|
||||
serde = { version = "1.0.160", features = ["derive"] }
|
||||
serde_json = "1.0.96"
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
serde_json = "1.0.108"
|
||||
strum = { version = "0.25", features = ["derive"] }
|
||||
utoipa = { version = "3.3.0", features = ["preserve_order"] }
|
||||
|
||||
@ -21,4 +21,4 @@ utoipa = { version = "3.3.0", features = ["preserve_order"] }
|
||||
router_derive = { version = "0.1.0", path = "../router_derive" }
|
||||
|
||||
[dev-dependencies]
|
||||
serde_json = "1.0.96"
|
||||
serde_json = "1.0.108"
|
||||
|
||||
@ -30,8 +30,8 @@ regex = "1.8.4"
|
||||
reqwest = { version = "0.11.18", features = ["json", "native-tls", "gzip", "multipart"] }
|
||||
ring = { version = "0.16.20", features = ["std"] }
|
||||
rustc-hash = "1.1.0"
|
||||
serde = { version = "1.0.163", features = ["derive"] }
|
||||
serde_json = "1.0.96"
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
serde_json = "1.0.108"
|
||||
serde_urlencoded = "0.7.1"
|
||||
signal-hook = { version = "0.3.15", optional = true }
|
||||
strum = { version = "0.24.1", features = ["derive"] }
|
||||
|
||||
24
crates/config_importer/Cargo.toml
Normal file
24
crates/config_importer/Cargo.toml
Normal file
@ -0,0 +1,24 @@
|
||||
[package]
|
||||
name = "config_importer"
|
||||
description = "Utility to convert a TOML configuration file to a list of environment variables"
|
||||
version = "0.1.0"
|
||||
edition.workspace = true
|
||||
rust-version.workspace = true
|
||||
readme = "README.md"
|
||||
license.workspace = true
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
all-features = true
|
||||
rustdoc-args = ["--cfg", "docsrs"]
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0.75"
|
||||
clap = { version = "4.3.2", default-features = false, features = ["std", "derive", "help", "usage"] }
|
||||
indexmap = { version = "2.1.0", optional = true }
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
serde_json = "1.0.108"
|
||||
toml = { version = "0.7.4", default-features = false, features = ["parse"] }
|
||||
|
||||
[features]
|
||||
default = ["preserve_order"]
|
||||
preserve_order = ["dep:indexmap", "serde_json/preserve_order", "toml/preserve_order"]
|
||||
41
crates/config_importer/README.md
Normal file
41
crates/config_importer/README.md
Normal file
@ -0,0 +1,41 @@
|
||||
# config_importer
|
||||
|
||||
A simple utility tool to import a Hyperswitch TOML configuration file, convert
|
||||
it into environment variable key-value pairs, and export it in the specified
|
||||
format.
|
||||
As of now, it supports only exporting the environment variables to a JSON format
|
||||
compatible with Kubernetes, but it can be easily extended to export to a YAML
|
||||
format compatible with Kubernetes or the env file format.
|
||||
|
||||
## Usage
|
||||
|
||||
You can find the usage information from the help message by specifying the
|
||||
`--help` flag:
|
||||
|
||||
```shell
|
||||
cargo run --bin config_importer -- --help
|
||||
```
|
||||
|
||||
### Specifying the output location
|
||||
|
||||
If the `--output-file` flag is not specified, the utility prints the output to
|
||||
stdout.
|
||||
If you would like to write the output to a file instead, you can specify the
|
||||
`--output-file` flag with the path to the output file:
|
||||
|
||||
```shell
|
||||
cargo run --bin config_importer -- --input-file config/development.toml --output-file config/development.json
|
||||
```
|
||||
|
||||
### Specifying a different prefix
|
||||
|
||||
If the `--prefix` flag is not specified, the default prefix `ROUTER` is
|
||||
considered, which generates the environment variables accepted by the `router`
|
||||
binary/application.
|
||||
If you'd want to generate environment variables for the `drainer`
|
||||
binary/application, then you can specify the `--prefix` flag with value
|
||||
`drainer` (or `DRAINER`, both work).
|
||||
|
||||
```shell
|
||||
cargo run --bin config_importer -- --input-file config/drainer.toml --prefix drainer
|
||||
```
|
||||
43
crates/config_importer/src/cli.rs
Normal file
43
crates/config_importer/src/cli.rs
Normal file
@ -0,0 +1,43 @@
|
||||
use std::path::PathBuf;
|
||||
|
||||
/// Utility to import a hyperswitch TOML configuration file, convert it into environment variable
|
||||
/// key-value pairs, and export it in the specified format.
|
||||
#[derive(clap::Parser, Debug)]
|
||||
#[command(arg_required_else_help = true)]
|
||||
pub(crate) struct Args {
|
||||
/// Input TOML configuration file.
|
||||
#[arg(short, long, value_name = "FILE")]
|
||||
pub(crate) input_file: PathBuf,
|
||||
|
||||
/// The format to convert the environment variables to.
|
||||
#[arg(
|
||||
value_enum,
|
||||
short = 'f',
|
||||
long,
|
||||
value_name = "FORMAT",
|
||||
default_value = "kubernetes-json"
|
||||
)]
|
||||
pub(crate) output_format: OutputFormat,
|
||||
|
||||
/// Output file. Output will be written to stdout if not specified.
|
||||
#[arg(short, long, value_name = "FILE")]
|
||||
pub(crate) output_file: Option<PathBuf>,
|
||||
|
||||
/// Prefix to be used for each environment variable in the generated output.
|
||||
#[arg(short, long, default_value = "ROUTER")]
|
||||
pub(crate) prefix: String,
|
||||
}
|
||||
|
||||
/// The output format to convert environment variables to.
|
||||
#[derive(clap::ValueEnum, Clone, Copy, Debug)]
|
||||
pub(crate) enum OutputFormat {
|
||||
/// Converts each environment variable to an object containing `name` and `value` fields.
|
||||
///
|
||||
/// ```json
|
||||
/// {
|
||||
/// "name": "ENVIRONMENT",
|
||||
/// "value": "PRODUCTION"
|
||||
/// }
|
||||
/// ```
|
||||
KubernetesJson,
|
||||
}
|
||||
98
crates/config_importer/src/main.rs
Normal file
98
crates/config_importer/src/main.rs
Normal file
@ -0,0 +1,98 @@
|
||||
mod cli;
|
||||
|
||||
use std::io::{BufWriter, Write};
|
||||
|
||||
use anyhow::Context;
|
||||
|
||||
/// The separator used in environment variable names.
|
||||
const ENV_VAR_SEPARATOR: &str = "__";
|
||||
|
||||
#[cfg(not(feature = "preserve_order"))]
|
||||
type EnvironmentVariableMap = std::collections::HashMap<String, String>;
|
||||
|
||||
#[cfg(feature = "preserve_order")]
|
||||
type EnvironmentVariableMap = indexmap::IndexMap<String, String>;
|
||||
|
||||
fn main() -> anyhow::Result<()> {
|
||||
let args = <cli::Args as clap::Parser>::parse();
|
||||
|
||||
// Read input TOML file
|
||||
let toml_contents =
|
||||
std::fs::read_to_string(args.input_file).context("Failed to read input file")?;
|
||||
let table = toml_contents
|
||||
.parse::<toml::Table>()
|
||||
.context("Failed to parse TOML file contents")?;
|
||||
|
||||
// Parse TOML file contents to a `HashMap` of environment variable name and value pairs
|
||||
let env_vars = table
|
||||
.iter()
|
||||
.flat_map(|(key, value)| process_toml_value(&args.prefix, key, value))
|
||||
.collect::<EnvironmentVariableMap>();
|
||||
|
||||
let writer: BufWriter<Box<dyn Write>> = match args.output_file {
|
||||
// Write to file if output file is specified
|
||||
Some(file) => BufWriter::new(Box::new(
|
||||
std::fs::OpenOptions::new()
|
||||
.create(true)
|
||||
.write(true)
|
||||
.truncate(true)
|
||||
.open(file)
|
||||
.context("Failed to open output file")?,
|
||||
)),
|
||||
// Write to stdout otherwise
|
||||
None => BufWriter::new(Box::new(std::io::stdout().lock())),
|
||||
};
|
||||
|
||||
// Write environment variables in specified format
|
||||
match args.output_format {
|
||||
cli::OutputFormat::KubernetesJson => {
|
||||
let k8s_env_vars = env_vars
|
||||
.into_iter()
|
||||
.map(|(name, value)| KubernetesEnvironmentVariable { name, value })
|
||||
.collect::<Vec<_>>();
|
||||
serde_json::to_writer_pretty(writer, &k8s_env_vars)
|
||||
.context("Failed to serialize environment variables as JSON")?
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn process_toml_value(
|
||||
prefix: impl std::fmt::Display + Clone,
|
||||
key: impl std::fmt::Display + Clone,
|
||||
value: &toml::Value,
|
||||
) -> Vec<(String, String)> {
|
||||
let key_with_prefix = format!("{prefix}{ENV_VAR_SEPARATOR}{key}").to_ascii_uppercase();
|
||||
|
||||
match value {
|
||||
toml::Value::String(s) => vec![(key_with_prefix, s.to_owned())],
|
||||
toml::Value::Integer(i) => vec![(key_with_prefix, i.to_string())],
|
||||
toml::Value::Float(f) => vec![(key_with_prefix, f.to_string())],
|
||||
toml::Value::Boolean(b) => vec![(key_with_prefix, b.to_string())],
|
||||
toml::Value::Datetime(dt) => vec![(key_with_prefix, dt.to_string())],
|
||||
toml::Value::Array(values) => {
|
||||
if values.is_empty() {
|
||||
return vec![(key_with_prefix, String::new())];
|
||||
}
|
||||
|
||||
// This logic does not support / account for arrays of tables or arrays of arrays.
|
||||
let (_processed_keys, processed_values) = values
|
||||
.iter()
|
||||
.flat_map(|v| process_toml_value(prefix.clone(), key.clone(), v))
|
||||
.unzip::<_, _, Vec<String>, Vec<String>>();
|
||||
vec![(key_with_prefix, processed_values.join(","))]
|
||||
}
|
||||
toml::Value::Table(map) => map
|
||||
.into_iter()
|
||||
.flat_map(|(k, v)| process_toml_value(key_with_prefix.clone(), k, v))
|
||||
.collect(),
|
||||
}
|
||||
}
|
||||
|
||||
/// The Kubernetes environment variable structure containing a name and a value.
|
||||
#[derive(Debug, serde::Serialize, serde::Deserialize)]
|
||||
pub(crate) struct KubernetesEnvironmentVariable {
|
||||
name: String,
|
||||
value: String,
|
||||
}
|
||||
@ -12,5 +12,5 @@ common_enums = { version = "0.1.0", path = "../common_enums", package = "common_
|
||||
# Third party crates
|
||||
rust_decimal = "1.29"
|
||||
rusty-money = { version = "0.4.0", features = ["iso", "crypto"] }
|
||||
serde = { version = "1.0.163", features = ["derive"] }
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
thiserror = "1.0.43"
|
||||
|
||||
@ -22,7 +22,7 @@ diesel_models = { version = "0.1.0", path = "../diesel_models", features = ["kv_
|
||||
# Third party deps
|
||||
async-trait = "0.1.68"
|
||||
error-stack = "0.3.1"
|
||||
serde = { version = "1.0.163", features = ["derive"] }
|
||||
serde_json = "1.0.96"
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
serde_json = "1.0.108"
|
||||
thiserror = "1.0.40"
|
||||
time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] }
|
||||
|
||||
@ -17,8 +17,8 @@ diesel = { version = "2.1.0", features = ["postgres", "serde_json", "time", "64-
|
||||
error-stack = "0.3.1"
|
||||
frunk = "0.4.1"
|
||||
frunk_core = "0.4.1"
|
||||
serde = { version = "1.0.163", features = ["derive"] }
|
||||
serde_json = "1.0.96"
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
serde_json = "1.0.108"
|
||||
strum = { version = "0.24.1", features = ["derive"] }
|
||||
thiserror = "1.0.40"
|
||||
time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] }
|
||||
|
||||
@ -20,9 +20,9 @@ config = { version = "0.13.3", features = ["toml"] }
|
||||
diesel = { version = "2.1.0", features = ["postgres"] }
|
||||
error-stack = "0.3.1"
|
||||
once_cell = "1.18.0"
|
||||
serde = "1.0.163"
|
||||
serde_json = "1.0.96"
|
||||
serde_path_to_error = "0.1.11"
|
||||
serde = "1.0.193"
|
||||
serde_json = "1.0.108"
|
||||
serde_path_to_error = "0.1.14"
|
||||
thiserror = "1.0.40"
|
||||
tokio = { version = "1.28.2", features = ["macros", "rt-multi-thread"] }
|
||||
|
||||
|
||||
@ -12,8 +12,8 @@ frunk_core = "0.4.1"
|
||||
nom = { version = "7.1.3", features = ["alloc"], optional = true }
|
||||
once_cell = "1.18.0"
|
||||
rustc-hash = "1.1.0"
|
||||
serde = { version = "1.0.163", features = ["derive", "rc"] }
|
||||
serde_json = "1.0.96"
|
||||
serde = { version = "1.0.193", features = ["derive", "rc"] }
|
||||
serde_json = "1.0.108"
|
||||
strum = { version = "0.25", features = ["derive"] }
|
||||
thiserror = "1.0.43"
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ base64 = "0.21.2"
|
||||
dyn-clone = "1.0.11"
|
||||
error-stack = "0.3.1"
|
||||
once_cell = "1.18.0"
|
||||
serde = { version = "1.0.163", features = ["derive"] }
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
thiserror = "1.0.40"
|
||||
tokio = "1.28.2"
|
||||
hyper-proxy = "0.9.1"
|
||||
|
||||
@ -16,8 +16,8 @@ euclid = { version = "0.1.0", path = "../euclid" }
|
||||
masking = { version = "0.1.0", path = "../masking/" }
|
||||
|
||||
# Third party crates
|
||||
serde = "1.0.163"
|
||||
serde_json = "1.0.96"
|
||||
serde = "1.0.193"
|
||||
serde_json = "1.0.108"
|
||||
thiserror = "1.0.43"
|
||||
|
||||
[dev-dependencies]
|
||||
|
||||
@ -20,9 +20,9 @@ rustdoc-args = ["--cfg", "docsrs"]
|
||||
bytes = { version = "1", optional = true }
|
||||
diesel = { version = "2.1.0", features = ["postgres", "serde_json", "time"], optional = true }
|
||||
serde = { version = "1", features = ["derive"], optional = true }
|
||||
serde_json = { version = "1.0.96", optional = true }
|
||||
serde_json = { version = "1.0.108", optional = true }
|
||||
subtle = "=2.4.1"
|
||||
zeroize = { version = "1.6", default-features = false }
|
||||
|
||||
[dev-dependencies]
|
||||
serde_json = "1.0.96"
|
||||
serde_json = "1.0.108"
|
||||
|
||||
@ -117,7 +117,7 @@ fn without_serialize() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
|
||||
|
||||
#[test]
|
||||
fn for_string() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
|
||||
#[cfg_attr(feature = "serde", derive(Serialize))]
|
||||
#[cfg_attr(all(feature = "alloc", feature = "serde"), derive(Serialize))]
|
||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||
pub struct Composite {
|
||||
secret_number: Secret<String>,
|
||||
@ -147,7 +147,7 @@ fn for_string() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
|
||||
|
||||
// serialize
|
||||
|
||||
#[cfg(feature = "serde")]
|
||||
#[cfg(all(feature = "alloc", feature = "serde"))]
|
||||
{
|
||||
let got = serde_json::to_string(&composite).unwrap();
|
||||
let exp = r#"{"secret_number":"abc","not_secret":"not secret"}"#;
|
||||
|
||||
@ -21,7 +21,7 @@ bytes = "1.4.0"
|
||||
error-stack = "0.3.1"
|
||||
http = "0.2.9"
|
||||
mime = "0.3.17"
|
||||
serde = "1.0.159"
|
||||
serde_json = "1.0.91"
|
||||
serde = "1.0.193"
|
||||
serde_json = "1.0.108"
|
||||
strum = { version = "0.24.1", features = ["derive"] }
|
||||
thiserror = "1.0.43"
|
||||
|
||||
@ -11,7 +11,7 @@ license.workspace = true
|
||||
error-stack = "0.3.1"
|
||||
fred = { version = "6.3.0", features = ["metrics", "partial-tracing", "subscriber-client"] }
|
||||
futures = "0.3"
|
||||
serde = { version = "1.0.163", features = ["derive"] }
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
thiserror = "1.0.40"
|
||||
tokio = "1.28.2"
|
||||
|
||||
|
||||
@ -79,12 +79,12 @@ ring = "0.16.20"
|
||||
roxmltree = "0.18.0"
|
||||
rust_decimal = { version = "1.30.0", features = ["serde-with-float", "serde-with-str"] }
|
||||
rustc-hash = "1.1.0"
|
||||
serde = { version = "1.0.163", features = ["derive"] }
|
||||
serde_json = "1.0.96"
|
||||
serde_path_to_error = "0.1.11"
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
serde_json = "1.0.108"
|
||||
serde_path_to_error = "0.1.14"
|
||||
serde_qs = { version = "0.12.0", optional = true }
|
||||
serde_urlencoded = "0.7.1"
|
||||
serde_with = "3.0.0"
|
||||
serde_with = "3.4.0"
|
||||
sha-1 = { version = "0.9" }
|
||||
sqlx = { version = "0.6.3", features = ["postgres", "runtime-actix", "runtime-actix-native-tls", "time", "bigdecimal"] }
|
||||
strum = { version = "0.25", features = ["derive"] }
|
||||
@ -134,7 +134,7 @@ rand = "0.8.5"
|
||||
serial_test = "2.0.0"
|
||||
time = { version = "0.3.21", features = ["macros"] }
|
||||
tokio = "1.28.2"
|
||||
wiremock = "0.5"
|
||||
wiremock = "0.5.18"
|
||||
|
||||
# First party dev-dependencies
|
||||
test_utils = { version = "0.1.0", path = "../test_utils" }
|
||||
|
||||
@ -12,7 +12,7 @@ proc-macro = true
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
indexmap = "2.0.0"
|
||||
indexmap = "2.1.0"
|
||||
proc-macro2 = "1.0.56"
|
||||
quote = "1.0.26"
|
||||
syn = { version = "2.0.5", features = ["full", "extra-traits"] } # the full feature does not seem to encompass all the features
|
||||
@ -20,6 +20,6 @@ strum = { version = "0.24.1", features = ["derive"] }
|
||||
|
||||
[dev-dependencies]
|
||||
diesel = { version = "2.1.0", features = ["postgres"] }
|
||||
serde = { version = "1.0.163", features = ["derive"] }
|
||||
serde_json = "1.0.96"
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
serde_json = "1.0.108"
|
||||
|
||||
|
||||
@ -16,9 +16,9 @@ once_cell = "1.18.0"
|
||||
opentelemetry = { version = "0.19.0", features = ["rt-tokio-current-thread", "metrics"] }
|
||||
opentelemetry-otlp = { version = "0.12.0", features = ["metrics"] }
|
||||
rustc-hash = "1.1"
|
||||
serde = { version = "1.0.163", features = ["derive"] }
|
||||
serde_json = "1.0.96"
|
||||
serde_path_to_error = "0.1.11"
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
serde_json = "1.0.108"
|
||||
serde_path_to_error = "0.1.14"
|
||||
strum = { version = "0.24.1", features = ["derive"] }
|
||||
time = { version = "0.3.21", default-features = false, features = ["formatting"] }
|
||||
tokio = { version = "1.28.2" }
|
||||
|
||||
@ -15,8 +15,8 @@ error-stack = "0.3.1"
|
||||
futures = "0.3.28"
|
||||
once_cell = "1.18.0"
|
||||
rand = "0.8.5"
|
||||
serde = "1.0.163"
|
||||
serde_json = "1.0.96"
|
||||
serde = "1.0.193"
|
||||
serde_json = "1.0.108"
|
||||
strum = { version = "0.24.1", features = ["derive"] }
|
||||
thiserror = "1.0.40"
|
||||
time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] }
|
||||
|
||||
@ -41,7 +41,7 @@ mime = "0.3.17"
|
||||
moka = { version = "0.11.3", features = ["future"] }
|
||||
once_cell = "1.18.0"
|
||||
ring = "0.16.20"
|
||||
serde = { version = "1.0.185", features = ["derive"] }
|
||||
serde_json = "1.0.105"
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
serde_json = "1.0.108"
|
||||
thiserror = "1.0.40"
|
||||
tokio = { version = "1.28.2", features = ["rt-multi-thread"] }
|
||||
|
||||
@ -18,8 +18,8 @@ base64 = "0.21.2"
|
||||
clap = { version = "4.3.2", default-features = false, features = ["std", "derive", "help", "usage"] }
|
||||
rand = "0.8.5"
|
||||
reqwest = { version = "0.11.18", features = ["native-tls"] }
|
||||
serde = { version = "1.0.163", features = ["derive"] }
|
||||
serde_json = "1.0.96"
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
serde_json = "1.0.108"
|
||||
serde_urlencoded = "0.7.1"
|
||||
serial_test = "2.0.0"
|
||||
thirtyfour = "0.31.0"
|
||||
|
||||
Reference in New Issue
Block a user