build(deps): update dependencies (#1342)

This commit is contained in:
Sanchith Hegde
2023-06-07 23:27:04 +05:30
committed by GitHub
parent a6e91a828b
commit bce01ced11
26 changed files with 510 additions and 1119 deletions

1282
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,9 @@
[workspace]
resolver = "2"
members = ["crates/*", "examples/*"]
members = ["crates/*"]
package.edition = "2021"
package.rust-version = "1.65"
package.license = "Apache-2.0"
[profile.release]
strip = true

View File

@ -1,37 +1,35 @@
[package]
name = "api_models"
description = "Request/response models for the `router` crate"
version = "0.1.0"
edition = "2021"
edition.workspace = true
rust-version.workspace = true
readme = "README.md"
license.workspace = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
default = []
errors = [
"dep:actix-web",
"dep:reqwest",
]
errors = ["dep:actix-web", "dep:reqwest"]
multiple_mca = []
dummy_connector = []
detailed_errors = []
[dependencies]
actix-web = { version = "4.3.1", optional = true }
error-stack = "0.3.1"
frunk = "0.4.1"
frunk_core = "0.4.1"
mime = "0.3.17"
reqwest = { version = "0.11.16", optional = true }
serde = { version = "1.0.160", features = ["derive"] }
reqwest = { version = "0.11.18", optional = true }
serde = { version = "1.0.163", features = ["derive"] }
serde_json = "1.0.96"
strum = { version = "0.24.1", features = ["derive"] }
time = { version = "0.3.20", features = ["serde", "serde-well-known", "std"] }
url = { version = "2.3.1", features = ["serde"] }
time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] }
url = { version = "2.4.0", features = ["serde"] }
utoipa = { version = "3.3.0", features = ["preserve_order"] }
# First party crates
cards = { version = "0.1.0", path = "../cards" }
common_enums = { path = "../common_enums" }
common_utils = { version = "0.1.0", path = "../common_utils" }
masking = { version = "0.1.0", path = "../masking" }
router_derive = { version = "0.1.0", path = "../router_derive" }
common_enums = {path = "../common_enums"}
cards = { version = "0.1.0", path = "../cards" }

View File

@ -0,0 +1,3 @@
# API Models
Request/response models for the `router` crate.

View File

@ -1,23 +1,25 @@
[package]
name = "cards"
description = "Types to handle card masking and validation"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
edition.workspace = true
rust-version.workspace = true
readme = "README.md"
license.workspace = true
[features]
default = ["serde"]
[dependencies]
time = { version = "0.3.20" }
error-stack = "0.3.1"
serde = { version = "1", features = ["derive"], optional = true }
thiserror = "1.0.40"
luhn = "1.0.1"
serde = { version = "1.0.163", features = ["derive"], optional = true }
thiserror = "1.0.40"
time = "0.3.21"
# First Party crates
masking = { version = "0.1.0", path = "../masking" }
# First party crates
common_utils = { version = "0.1.0", path = "../common_utils" }
masking = { version = "0.1.0", path = "../masking" }
[dev-dependencies]
serde_json = "1.0.94"
serde_json = "1.0.96"

3
crates/cards/README.md Normal file
View File

@ -0,0 +1,3 @@
# Cards
Types to handle card masking and validation.

View File

@ -1,13 +1,15 @@
[package]
name = "common_enums"
description = "Enums shared across the request/response types and database types"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
edition.workspace = true
rust-version.workspace = true
readme = "README.md"
license.workspace = true
[dependencies]
diesel = { version = "2.1.0", features = ["postgres"] }
serde = { version = "1.0.160", features = [ "derive" ] }
serde = { version = "1.0.163", features = ["derive"] }
strum = { version = "0.24.1", features = ["derive"] }
utoipa = { version = "3.3.0", features = ["preserve_order"] }

View File

@ -0,0 +1,3 @@
# Common Enums
Enums shared across the request/response types and database types.

View File

@ -1,11 +1,11 @@
[package]
name = "common_utils"
description = "Utilities shared across router and other crates"
description = "Utilities shared across `router` and other crates"
version = "0.1.0"
edition = "2021"
rust-version = "1.65"
edition.workspace = true
rust-version.workspace = true
readme = "README.md"
license = "Apache-2.0"
license.workspace = true
[features]
signals = ["dep:signal-hook-tokio", "dep:signal-hook", "dep:tokio", "dep:router_env", "dep:futures"]
@ -19,23 +19,20 @@ diesel = "2.1.0"
error-stack = "0.3.1"
futures = { version = "0.3.28", optional = true }
hex = "0.4.3"
md5 = "0.7.0"
nanoid = "0.4.0"
once_cell = "1.17.1"
once_cell = "1.18.0"
quick-xml = { version = "0.28.2", features = ["serialize"] }
rand = "0.8.5"
regex = "1.7.3"
regex = "1.8.4"
ring = { version = "0.16.20", features = ["std"] }
serde = { version = "1.0.160", features = ["derive"] }
serde = { version = "1.0.163", features = ["derive"] }
serde_json = "1.0.96"
serde_urlencoded = "0.7.1"
signal-hook = { version = "0.3.15", optional = true }
tokio = { version = "1.27.0", features = [
"macros",
"rt-multi-thread",
], optional = true }
thiserror = "1.0.40"
time = { version = "0.3.20", features = ["serde", "serde-well-known", "std"] }
md5 = "0.7.0"
time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] }
tokio = { version = "1.28.2", features = ["macros", "rt-multi-thread"], optional = true }
# First party crates
masking = { version = "0.1.0", path = "../masking" }
@ -45,5 +42,5 @@ router_env = { version = "0.1.0", path = "../router_env", features = ["log_extra
signal-hook-tokio = { version = "0.3.1", features = ["futures-v0_3"], optional = true }
[dev-dependencies]
fake = "2.5.0"
proptest = "1.1.0"
fake = "2.6.1"
proptest = "1.2.0"

View File

@ -1,11 +1,3 @@
# Common Utils
Common functionality required by internal crates
## Files Tree Layout
```text
└── src : source code
└── errors : common error specific types
└── ext_traits : traits for extending type functionalities
```
Utilities shared across `router` and other crates.

View File

@ -1,29 +1,29 @@
[package]
name = "drainer"
description = "App that reads redis streams and executes queries in DB"
description = "Application that reads Redis streams and executes queries in database"
version = "0.1.0"
edition = "2021"
rust-version = "1.65"
edition.workspace = true
rust-version.workspace = true
readme = "README.md"
license = "Apache-2.0"
license.workspace = true
[features]
kms = ["external_services/kms"]
vergen = ["router_env/vergen"]
[dependencies]
async-bb8-diesel = { git = "https://github.com/juspay/async-bb8-diesel", rev = "9a71d142726dbc33f41c1fd935ddaa79841c7be5" }
async-bb8-diesel = { git = "https://github.com/oxidecomputer/async-bb8-diesel", rev = "be3d9bce50051d8c0e0c06078e8066cc27db3001" }
bb8 = "0.8"
clap = { version = "4.2.2", default-features = false, features = ["std", "derive", "help", "usage"] }
clap = { version = "4.3.2", default-features = false, features = ["std", "derive", "help", "usage"] }
config = { version = "0.13.3", features = ["toml"] }
diesel = { version = "2.1.0", features = ["postgres"] }
error-stack = "0.3.1"
once_cell = "1.17.1"
serde = "1.0.160"
once_cell = "1.18.0"
serde = "1.0.163"
serde_json = "1.0.96"
serde_path_to_error = "0.1.11"
thiserror = "1.0.40"
tokio = { version = "1.27.0", features = ["macros", "rt-multi-thread"] }
tokio = { version = "1.28.2", features = ["macros", "rt-multi-thread"] }
# First Party Crates
common_utils = { version = "0.1.0", path = "../common_utils", features = ["signals"] }

View File

@ -1,3 +1,3 @@
# Drainer
App that reads redis streams and executes queries in DB
Application that reads Redis streams and executes queries in database.

View File

@ -2,30 +2,30 @@
name = "external_services"
description = "Interactions of the router with external systems"
version = "0.1.0"
edition = "2021"
rust-version = "1.65"
edition.workspace = true
rust-version.workspace = true
readme = "README.md"
license = "Apache-2.0"
license.workspace = true
[features]
kms = ["dep:aws-config", "dep:aws-sdk-kms"]
email = ["dep:aws-config"]
[dependencies]
aws-config = { version = "0.55.1", optional = true }
aws-sdk-kms = { version = "0.26.0", optional = true }
base64 = "0.21.0"
error-stack = "0.3.1"
once_cell = "1.17.1"
serde = { version = "1.0.160", features = ["derive"] }
thiserror = "1.0.40"
tokio = "1.27.0"
async-trait = "0.1.68"
aws-config = { version = "0.55.3", optional = true }
aws-sdk-kms = { version = "0.28.0", optional = true }
aws-sdk-sesv2 = "0.28.0"
aws-smithy-client = "0.55.3"
base64 = "0.21.2"
dyn-clone = "1.0.11"
async-trait = "0.1.66"
aws-sdk-sesv2 = "0.27.0"
aws-smithy-client = "0.55.0"
error-stack = "0.3.1"
once_cell = "1.18.0"
serde = { version = "1.0.163", features = ["derive"] }
thiserror = "1.0.40"
tokio = "1.28.2"
# First party crates
common_utils = { version = "0.1.0", path = "../common_utils" }
router_env = { version = "0.1.0", path = "../router_env", features = ["log_extra_implicit_fields", "log_custom_entries_to_extra"] }
masking = { version = "0.1.0", path = "../masking" }
router_env = { version = "0.1.0", path = "../router_env", features = ["log_extra_implicit_fields", "log_custom_entries_to_extra"] }

View File

@ -2,10 +2,10 @@
name = "masking"
description = "Personal Identifiable Information protection. Wrapper types and traits for secret management which help ensure they aren't accidentally copied, logged, or otherwise exposed (as much as possible), and also ensure secrets are securely wiped from memory when dropped."
version = "0.1.0"
edition = "2021"
rust-version = "1.65"
edition.workspace = true
rust-version.workspace = true
readme = "README.md"
license = "Apache-2.0"
license.workspace = true
[features]
default = ["alloc", "serde", "diesel"]

View File

@ -1,10 +1,13 @@
# masking
# Masking
Personal Identifiable Information protection.
Wrapper types and traits for secret management which help ensure they aren't accidentally copied, logged, or otherwise exposed (as much as possible), and also ensure secrets are securely wiped from memory when dropped.
Wrapper types and traits for secret management which help ensure they aren't
accidentally copied, logged, or otherwise exposed (as much as possible), and
also ensure secrets are securely wiped from memory when dropped.
Secret-keeping library inspired by `secrecy`.
This solution has such advantages over alternatives:
- alternatives have not implemented several traits from the box which are needed
- alternatives do not have WeakSecret and Secret differentiation
- alternatives do not support masking strategies
@ -35,18 +38,3 @@ Most fields are under `Option`. To simplify dealing with `Option`, use `expose_o
.unwrap_or_default(),
);
```
## Files Tree Layout
```bash
.
├── src # : source code
└── tests # : unit and integration tests
```
<!--
command to generate the tree `tree -L 3 -d`
-->

View File

@ -2,23 +2,22 @@
name = "redis_interface"
description = "A user-friendly interface to Redis"
version = "0.1.0"
edition = "2021"
rust-version = "1.65"
edition.workspace = true
rust-version.workspace = true
readme = "README.md"
license = "Apache-2.0"
license.workspace = true
[dependencies]
async-trait = "0.1.68"
error-stack = "0.3.1"
fred = { version = "6.3.0", features = ["metrics", "partial-tracing","subscriber-client"] }
futures = "0.3"
serde = { version = "1.0.160", features = ["derive"] }
serde = { version = "1.0.163", features = ["derive"] }
thiserror = "1.0.40"
tokio = "1.26.0"
tokio = "1.28.2"
# First party crates
common_utils = { version = "0.1.0", path = "../common_utils", features = ["async_ext"] }
router_env = { version = "0.1.0", path = "../router_env", features = ["log_extra_implicit_fields", "log_custom_entries_to_extra"] }
[dev-dependencies]
tokio = { version = "1.27.0", features = ["macros", "rt-multi-thread"] }
tokio = { version = "1.28.2", features = ["macros", "rt-multi-thread"] }

View File

@ -0,0 +1,3 @@
# Redis Interface
A user-friendly interface to Redis.

View File

@ -2,12 +2,11 @@
name = "router"
description = "Modern, fast and open payment router"
version = "0.2.0"
edition = "2021"
edition.workspace = true
default-run = "router"
rust-version = "1.65"
rust-version.workspace = true
readme = "README.md"
license = "Apache-2.0"
build = "src/build.rs"
license.workspace = true
[features]
default = ["kv_store", "stripe", "oltp", "olap", "accounts_cache", "dummy_connector"]
@ -21,7 +20,7 @@ olap = []
oltp = []
kv_store = []
accounts_cache = []
openapi = ["olap", "oltp", "dep:oas3"]
openapi = ["olap", "oltp"]
vergen = ["router_env/vergen"]
multiple_mca = ["api_models/multiple_mca"]
dummy_connector = ["api_models/dummy_connector"]
@ -32,15 +31,18 @@ detailed_errors = ["api_models/detailed_errors", "error-stack/serde"]
[dependencies]
actix = "0.13.0"
actix-cors = "0.6.4"
actix-multipart = "0.6.0"
actix-rt = "2.8.0"
actix-web = "4.3.1"
async-bb8-diesel = { git = "https://github.com/juspay/async-bb8-diesel", rev = "9a71d142726dbc33f41c1fd935ddaa79841c7be5" }
async-bb8-diesel = { git = "https://github.com/oxidecomputer/async-bb8-diesel", rev = "be3d9bce50051d8c0e0c06078e8066cc27db3001" }
async-trait = "0.1.68"
base64 = "0.21.0"
aws-config = { version = "0.55.3", optional = true }
aws-sdk-s3 = { version = "0.28.0", optional = true }
base64 = "0.21.2"
bb8 = "0.8"
blake3 = "1.3.3"
bytes = "1.4.0"
clap = { version = "4.2.2", default-features = false, features = ["std", "derive", "help", "usage"] }
clap = { version = "4.3.2", default-features = false, features = ["std", "derive", "help", "usage"] }
config = { version = "0.13.3", features = ["toml"] }
crc32fast = "1.3.2"
diesel = { version = "2.1.0", features = ["postgres"] }
@ -52,51 +54,47 @@ frunk_core = "0.4.1"
futures = "0.3.28"
hex = "0.4.3"
http = "0.2.9"
josekit = "0.8.2"
infer = "0.13.0"
josekit = "0.8.3"
jsonwebtoken = "8.3.0"
literally = "0.1.3"
maud = { version = "0.25", features = ["actix-web"] }
mimalloc = { version = "0.1", optional = true }
mime = "0.3.17"
moka = { version = "0.10", features = ["future"] }
moka = { version = "0.11", features = ["future"] }
nanoid = "0.4.0"
num_cpus = "1.15.0"
oas3 = { version = "0.2.1", optional = true }
once_cell = "1.17.1"
once_cell = "1.18.0"
rand = "0.8.5"
regex = "1.7.3"
reqwest = { version = "0.11.16", features = ["json", "native-tls", "gzip", "multipart"] }
regex = "1.8.4"
reqwest = { version = "0.11.18", features = ["json", "native-tls", "gzip", "multipart"] }
ring = "0.16.20"
serde = { version = "1.0.160", features = ["derive"] }
serde = { version = "1.0.163", features = ["derive"] }
serde_json = "1.0.96"
serde_path_to_error = "0.1.11"
serde_qs = { version = "0.12.0", optional = true }
serde_urlencoded = "0.7.1"
serde_with = "2.3.2"
serde_with = "3.0.0"
signal-hook = "0.3.15"
strum = { version = "0.24.1", features = ["derive"] }
thiserror = "1.0.40"
time = { version = "0.3.20", features = ["serde", "serde-well-known", "std"] }
tokio = { version = "1.27.0", features = ["macros", "rt-multi-thread"] }
url = { version = "2.3.1", features = ["serde"] }
time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] }
tokio = { version = "1.28.2", features = ["macros", "rt-multi-thread"] }
url = { version = "2.4.0", features = ["serde"] }
utoipa = { version = "3.3.0", features = ["preserve_order", "time"] }
utoipa-swagger-ui = { version = "3.1.3", features = ["actix-web"] }
uuid = { version = "1.3.1", features = ["serde", "v4"] }
uuid = { version = "1.3.3", features = ["serde", "v4"] }
# First party crates
api_models = { version = "0.1.0", path = "../api_models", features = ["errors"] }
common_utils = { version = "0.1.0", path = "../common_utils", features = ["signals", "async_ext"] }
cards = { version = "0.1.0", path = "../cards" }
common_utils = { version = "0.1.0", path = "../common_utils", features = ["signals", "async_ext"] }
external_services = { version = "0.1.0", path = "../external_services" }
masking = { version = "0.1.0", path = "../masking" }
redis_interface = { version = "0.1.0", path = "../redis_interface" }
router_derive = { version = "0.1.0", path = "../router_derive" }
router_env = { version = "0.1.0", path = "../router_env", features = ["log_extra_implicit_fields", "log_custom_entries_to_extra"] }
storage_models = { version = "0.1.0", path = "../storage_models", features = ["kv_store"] }
actix-multipart = "0.6.0"
aws-sdk-s3 = { version = "0.25.0", optional = true }
aws-config = {version = "0.55.1", optional = true }
infer = "0.13.0"
[target.'cfg(not(target_os = "windows"))'.dependencies]
signal-hook-tokio = { version = "0.3.1", features = ["futures-v0_3"] }
@ -110,11 +108,11 @@ awc = { version = "3.1.1", features = ["rustls"] }
derive_deref = "1.1.1"
rand = "0.8.5"
serial_test = "2.0.0"
time = { version = "0.3.20", features = ["macros"] }
tokio = "1.27.0"
toml = "0.7.3"
wiremock = "0.5"
thirtyfour = "0.31.0"
time = { version = "0.3.21", features = ["macros"] }
tokio = "1.28.2"
toml = "0.7.4"
wiremock = "0.5"
[[bin]]
name = "router"

View File

@ -1,11 +1,11 @@
[package]
name = "router_derive"
description = "Utility macros for the router crate"
description = "Utility macros for the `router` crate"
version = "0.1.0"
edition = "2021"
rust-version = "1.65"
edition.workspace = true
rust-version.workspace = true
readme = "README.md"
license = "Apache-2.0"
license.workspace = true
[lib]
proc-macro = true
@ -19,6 +19,6 @@ syn = { version = "1.0.109", features = ["full", "extra-traits"] } # the full fe
[dev-dependencies]
diesel = { version = "2.1.0", features = ["postgres"] }
serde = { version = "1.0.160", features = ["derive"] }
serde = { version = "1.0.163", features = ["derive"] }
serde_json = "1.0.96"
strum = { version = "0.24.1", features = ["derive"] }

View File

@ -1,8 +1,3 @@
# `router_derive`
Utility macros for the `router` crate.
This crate provides the following macros:
- `#[derive(DebugAsDisplay)]`: To use the `Debug` implementation of a type as its `Display` implementation.
- `#[derive(DieselEnum)]` and `#[diesel_enum]`: To derive the boilerplate code required to use enums with the `diesel` crate and a PostgreSQL database.

View File

@ -2,38 +2,38 @@
name = "router_env"
description = "Environment of payment router: logger, basic config, its environment awareness."
version = "0.1.0"
edition = "2021"
rust-version = "1.65"
edition.workspace = true
rust-version.workspace = true
readme = "README.md"
license = "Apache-2.0"
license.workspace = true
[dependencies]
config = { version = "0.13.3", features = ["toml"] }
gethostname = "0.4.2"
once_cell = "1.17.1"
gethostname = "0.4.3"
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.160", features = ["derive"] }
serde = { version = "1.0.163", features = ["derive"] }
serde_json = "1.0.96"
serde_path_to_error = "0.1.11"
strum = { version = "0.24.1", features = ["derive"] }
time = { version = "0.3.20", default-features = false, features = ["formatting"] }
tokio = { version = "1.27.0" }
time = { version = "0.3.21", default-features = false, features = ["formatting"] }
tokio = { version = "1.28.2" }
tracing = { version = "=0.1.36" }
tracing-actix-web = { version = "0.7.4", features = ["opentelemetry_0_19"], optional = true }
tracing-actix-web = { version = "0.7.5", features = ["opentelemetry_0_19"], optional = true }
tracing-appender = { version = "0.2.2" }
tracing-attributes = "=0.1.22"
tracing-opentelemetry = { version = "0.19.0" }
tracing-subscriber = { version = "0.3.16", default-features = true, features = ["env-filter", "json", "registry"] }
vergen = { version = "8.1.1", optional = true, features = ["cargo", "git", "git2", "rustc"] }
tracing-subscriber = { version = "0.3.17", default-features = true, features = ["env-filter", "json", "registry"] }
vergen = { version = "8.2.1", optional = true, features = ["cargo", "git", "git2", "rustc"] }
[dev-dependencies]
tokio = { version = "1.27.0", features = ["macros", "rt-multi-thread"] }
tokio = { version = "1.28.2", features = ["macros", "rt-multi-thread"] }
[build-dependencies]
cargo_metadata = "0.15.4"
vergen = { version = "8.1.1", features = ["cargo", "git", "git2", "rustc"], optional = true }
vergen = { version = "8.2.1", features = ["cargo", "git", "git2", "rustc"], optional = true }
[features]
default = ["actix_web"]

View File

@ -19,16 +19,3 @@ pub fn sample() -> () {
);
}
```
## Files Tree Layout
```text
├── src : source code
│ └── logger : logger
└── tests : unit and integration tests
└── test_module : unit and integration tests
```
<!--
command to generate the tree `tree -L 3 -d`
-->

View File

@ -1,31 +1,31 @@
[package]
name = "storage_models"
description = "Database types shared across `router` and other crates"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
edition.workspace = true
rust-version.workspace = true
readme = "README.md"
license.workspace = true
[features]
default = ["kv_store"]
kv_store = []
[dependencies]
async-bb8-diesel = { git = "https://github.com/juspay/async-bb8-diesel", rev = "9a71d142726dbc33f41c1fd935ddaa79841c7be5" }
async-trait = "0.1.68"
async-bb8-diesel = { git = "https://github.com/oxidecomputer/async-bb8-diesel", rev = "be3d9bce50051d8c0e0c06078e8066cc27db3001" }
diesel = { version = "2.1.0", features = ["postgres", "serde_json", "time", "64-column-tables"] }
error-stack = "0.3.1"
frunk = "0.4.1"
frunk_core = "0.4.1"
hex = "0.4.3"
serde = { version = "1.0.160", features = ["derive"] }
serde = { version = "1.0.163", features = ["derive"] }
serde_json = "1.0.96"
strum = { version = "0.24.1", features = ["derive"] }
thiserror = "1.0.40"
time = { version = "0.3.20", features = ["serde", "serde-well-known", "std"] }
time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] }
# First party crates
common_utils = { version = "0.1.0", path = "../common_utils" }
common_enums = { path = "../common_enums" }
common_utils = { version = "0.1.0", path = "../common_utils" }
masking = { version = "0.1.0", path = "../masking" }
router_derive = { version = "0.1.0", path = "../router_derive" }
router_env = { version = "0.1.0", path = "../router_env", features = ["log_extra_implicit_fields", "log_custom_entries_to_extra"] }

View File

@ -0,0 +1,3 @@
# Storage Models
Database models shared across `router` and other crates.

View File

@ -1,3 +0,0 @@
# Examples
Here should be list of samples.