the-guild-org / conductor

Conductor is a cutting-edge, open-source GraphQL Gateway, fully compliant with the GraphQL specification and designed to supercharge any API with powerful features and proxy flows.
https://the-guild.dev/graphql/gateway
MIT License
98 stars 3 forks source link

chore(deps): update rust crate thiserror to 1.0.59 - autoclosed #579

Closed renovate[bot] closed 6 months ago

renovate[bot] commented 6 months ago

Mend Renovate

This PR contains the following updates:

Package Type Update Change
thiserror workspace.dependencies patch 1.0.58 -> 1.0.59

Release Notes

dtolnay/thiserror (thiserror) ### [`v1.0.59`](https://togithub.com/dtolnay/thiserror/releases/tag/1.0.59) [Compare Source](https://togithub.com/dtolnay/thiserror/compare/1.0.58...1.0.59) - Unblock testing of rustc `debug-fmt-detail` option ([#​297](https://togithub.com/dtolnay/thiserror/issues/297))

Configuration

๐Ÿ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

๐Ÿšฆ Automerge: Disabled by config. Please merge this manually once you are satisfied.

โ™ป Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

๐Ÿ”• Ignore: Close this PR and you won't be reminded about this update again.



This PR has been generated by Mend Renovate. View repository job log here.

github-actions[bot] commented 6 months ago

๐Ÿšจ Rust Panic Audit: 102 Potential Panic Points Detected ๐Ÿšจ

Crate: federation_query_planner

๐Ÿ“Š Total Usages: 53

๐Ÿ“Œ Expected Annotations

Crate: common

๐Ÿ“Š Total Expected Usages: 1

expand details 1. Reason: "we're parsing a statically defined constant, we know it works ;)" - Code: `.unwrap()` - Location: `./libs/common/src/graphql.rs:31`

Crate: napi

๐Ÿ“Š Total Expected Usages: 1

expand details 1. Reason: "we need this" - Code: `panic!("Exited process!")` - Location: `./libs/napi/src/lib.rs:18`

Crate: jwt_auth

๐Ÿ“Š Total Expected Usages: 1

expand details 1. Reason: "if initiating an http client fails, then we have to exit." - Code: `let client = wasm_polyfills::create_http_client().build().unwrap();` - Location: `./plugins/jwt_auth/src/jwks_provider.rs:49`

Crate: cloudflare_worker

๐Ÿ“Š Total Expected Usages: 4

expand details 1. Reason: "it panics only if the header name is not valid, and we know it is." - Code: `.unwrap()` - Location: `./bin/cloudflare_worker/src/http_tracing.rs:20` 2. Reason: "it panics only if the URL source is not valid, and it's already validated before." - Code: `let url = req.url().unwrap();` - Location: `./bin/cloudflare_worker/src/http_tracing.rs:23` 3. Reason: "it only panics if we are not running in a CF context, should be safe." - Code: `let cf_info = req.cf().unwrap();` - Location: `./bin/cloudflare_worker/src/http_tracing.rs:27` 4. Reason: "unwraps only in special cases where "data:text" is used." - Code: `let http_host = url.host().unwrap().to_string();` - Location: `./bin/cloudflare_worker/src/http_tracing.rs:36`

Crate: vrl

๐Ÿ“Š Total Expected Usages: 2

expand details 1. Reason: "if the provided VRL code in the config file can't compile, we have to exit." - Code: `panic!("failed to compile vrl program");` - Location: `./plugins/vrl/src/plugin.rs:129` 2. Reason: "`states` is a non-user provided variable" - Code: `.expect("can't merge states when `states` is an empty vector!")` - Location: `./plugins/vrl/src/plugin.rs:146`

Crate: conductor

๐Ÿ“Š Total Expected Usages: 2

expand details 1. Reason: "we need to exit the process, if the logger can't be correctly set." - Code: `let _guard = tracing::subscriber::set_default(subscriber);` - Location: `./bin/conductor/src/lib.rs:37` 2. Reason: "we need to exit the process, if the provided configuration file is incorrect." - Code: `panic!("Failed to initialize gateway: {:?}", e);` - Location: `./bin/conductor/src/lib.rs:76`

Crate: config

๐Ÿ“Š Total Expected Usages: 9

expand details 1. Reason: "statically defined regex pattern, we know it works ;)" - Code: `.unwrap();` - Location: `./libs/config/src/interpolate.rs:18` 2. Reason: "part of development docgen CLI" - Code: `.expect("Failed to serialize json schema for config file!");` - Location: `./libs/config/src/generate-json-schema.rs:50` 3. Reason: "part of development docgen CLI" - Code: `.expect("Failed to write the json schema to the file system!");` - Location: `./libs/config/src/generate-json-schema.rs:54` 4. Reason: "๐Ÿ‘‡" - Code: `let raw_contents = read_to_string(file_path)` - Location: `./libs/config/src/lib.rs:815` 5. Reason: "๐Ÿ‘‡" - Code: `panic!("Failed to interpolate config file, please resolve the above errors");` - Location: `./libs/config/src/lib.rs:847` 6. Reason: "๐Ÿ‘‡" - Code: `parse_config_from_json(&config_string).expect("Failed to parse JSON config file")` - Location: `./libs/config/src/lib.rs:854` 7. Reason: "๐Ÿ‘‡" - Code: `parse_config_from_yaml(&config_string).expect("Failed to parse YAML config file")` - Location: `./libs/config/src/lib.rs:858` 8. Reason: "๐Ÿ‘‡" - Code: `_ => panic!("Unsupported config file extension"),` - Location: `./libs/config/src/lib.rs:875` 9. Reason: "๐Ÿ‘‡" - Code: `None => panic!("Config file has no extension"),` - Location: `./libs/config/src/lib.rs:878`

Crate: engine

๐Ÿ“Š Total Expected Usages: 2

expand details 1. Reason: "if we are unable to construct the endpoints and attach them onto the gateway's http server, we have to exit" - Code: `Err(e) => panic!("failed to construct endpoint: {:?}", e),` - Location: `./libs/engine/src/gateway.rs:158` 2. Reason: "we can safely index here, it's inside a test with constant defined fixtures." - Code: `ConductorGateway::execute(request, &gw.routes[0].route_data).await` - Location: `./libs/engine/src/gateway.rs:190`
github-actions[bot] commented 6 months ago

๐Ÿ‹ This PR was built and pushed to the following Docker images:

Docker Bake metadata ```json { "conductor": { "buildx.build.provenance": { "buildType": "https://mobyproject.org/buildkit@v1", "materials": [ { "uri": "pkg:docker/debian@12.5?platform=linux%2Famd64", "digest": { "sha256": "1aadfee8d292f64b045adb830f8a58bfacc15789ae5f489a0fedcd517a862cb9" } }, { "uri": "pkg:docker/rust@1.77.2?platform=linux%2Famd64", "digest": { "sha256": "491c4b70ec4c86a5a32a76b35c42f1924745d7587c79a39b9534330a1e304e71" } } ], "invocation": { "configSource": { "entryPoint": "Dockerfile" }, "parameters": { "frontend": "dockerfile.v0", "args": { "label:org.opencontainers.image.authors": "The Guild \u003ccontact@the-guild.dev\u003e", "label:org.opencontainers.image.description": "Conductor is a robust GraphQL Gateway.", "label:org.opencontainers.image.docs": "https://the-guild.dev/graphql/gateway", "label:org.opencontainers.image.licenses": "MIT", "label:org.opencontainers.image.revision": "5cd7210639bc0a6d62acb6f52e629e012c2e0b18", "label:org.opencontainers.image.source": "https://github.com/the-guild-org/conductor", "label:org.opencontainers.image.title": "Conductor", "label:org.opencontainers.image.url": "https://the-guild.dev/graphql/gateway", "label:org.opencontainers.image.vendor": "The Guild", "label:org.opencontainers.image.version": "" }, "locals": [ { "name": "context" }, { "name": "dockerfile" } ] }, "environment": { "platform": "linux/amd64" } } }, "buildx.build.ref": "builder-28e79b7c-03be-485e-9969-d69b04d694b3/builder-28e79b7c-03be-485e-9969-d69b04d694b30/xlrayveecs505gxqpdqzm1jct", "containerimage.config.digest": "sha256:2a7e82c0649c6759328d32fd4b19294855fab011c585d32e6eff5344c79f6f61", "containerimage.descriptor": { "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "digest": "sha256:7ccbc66272df1b631586349e1bb43048615b27288fccb8a0976a228bed239002", "size": 902, "platform": { "architecture": "amd64", "os": "linux" } }, "containerimage.digest": "sha256:7ccbc66272df1b631586349e1bb43048615b27288fccb8a0976a228bed239002", "image.name": "ghcr.io/the-guild-org/conductor/conductor:5cd7210639bc0a6d62acb6f52e629e012c2e0b18" } } ```
github-actions[bot] commented 6 months ago

โœ… Benchmark Results

     data_received..................: 13 MB   221 kB/s
     data_sent......................: 22 MB   363 kB/s
     http_req_blocked...............: min=1.08ยตs   avg=2.9ยตs    med=2.23ยตs   max=660.98ยตs p(95)=3.22ยตs   p(99)=10.67ยตs 
     http_req_connecting............: min=0s       avg=325ns    med=0s       max=626.67ยตs p(95)=0s       p(99)=0s      
     http_req_duration..............: min=316.29ยตs avg=409.81ยตs med=380.21ยตs max=25.22ms  p(95)=480.07ยตs p(99)=705.11ยตs
       { expected_response:true }...: min=316.29ยตs avg=409.81ยตs med=380.21ยตs max=25.22ms  p(95)=480.07ยตs p(99)=705.11ยตs
     โœ“ { scenario:rps_1000 }........: min=316.29ยตs avg=409.81ยตs med=380.21ยตs max=25.22ms  p(95)=480.07ยตs p(99)=705.11ยตs
     http_req_failed................: 0.00%   โœ“ 0          โœ— 60001
     โœ“ { scenario:rps_1000 }........: 0.00%   โœ“ 0          โœ— 60001
     http_req_receiving.............: min=10ยตs     avg=26.13ยตs  med=25.39ยตs  max=1.51ms   p(95)=33.97ยตs  p(99)=42.98ยตs 
     http_req_sending...............: min=6.81ยตs   avg=15.35ยตs  med=14.03ยตs  max=1.52ms   p(95)=23.51ยตs  p(99)=37.67ยตs 
     http_req_tls_handshaking.......: min=0s       avg=0s       med=0s       max=0s       p(95)=0s       p(99)=0s      
     http_req_waiting...............: min=279.37ยตs avg=368.31ยตs med=339.45ยตs max=25.19ms  p(95)=439.04ยตs p(99)=630.22ยตs
     http_reqs......................: 60001   999.998036/s
     โœ“ { scenario:rps_1000 }........: 60001   999.998036/s
     iteration_duration.............: min=388.83ยตs avg=499.44ยตs med=468.32ยตs max=25.49ms  p(95)=574.17ยตs p(99)=850.18ยตs
     iterations.....................: 60001   999.998036/s
     โœ“ { scenario:rps_1000 }........: 60001   999.998036/s
     valid_graphql_response.........: 100.00% โœ“ 60001      โœ— 0    
     โœ“ { scenario:rps_1000 }........: 100.00% โœ“ 60001      โœ— 0    
     valid_http_code................: 100.00% โœ“ 60001      โœ— 0    
     โœ“ { scenario:rps_1000 }........: 100.00% โœ“ 60001      โœ— 0    
     vus............................: 1       min=0        max=2  
     vus_max........................: 200     min=200      max=200