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 v1.0.60 #584

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.60

Release Notes

dtolnay/thiserror (thiserror) ### [`v1.0.60`](https://togithub.com/dtolnay/thiserror/releases/tag/1.0.60) [Compare Source](https://togithub.com/dtolnay/thiserror/compare/1.0.59...1.0.60) - Resolve unexpected_cfgs warning ([#​298](https://togithub.com/dtolnay/thiserror/issues/298)) ### [`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: 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: 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: 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: 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: 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`

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`
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": "83101f6985c93e1e6501b3375de188ee3d2cbb89968bcc91611591f9f447bd42" } } ], "invocation": { "configSource": { "entryPoint": "Dockerfile" }, "parameters": { "frontend": "dockerfile.v0", "args": { "label:org.opencontainers.image.authors": "The Guild ", "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": "eb4d78256b6593c45f4a5476d5ba85f11aee9113", "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-2be562db-5f5d-4ab0-8b89-d6cae85c53d1/builder-2be562db-5f5d-4ab0-8b89-d6cae85c53d10/um0ylnlpjow974mcrfwvcjsa1", "containerimage.config.digest": "sha256:2180b450e73f41dee248cf96f2e76b75fddf7dcdc73bc05591937372e35665f8", "containerimage.descriptor": { "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "digest": "sha256:3355bda55ac1c9f28f81506d896b6aaa2eda887c0b01f9e639fcc28e84c6e04c", "size": 902, "platform": { "architecture": "amd64", "os": "linux" } }, "containerimage.digest": "sha256:3355bda55ac1c9f28f81506d896b6aaa2eda887c0b01f9e639fcc28e84c6e04c", "image.name": "ghcr.io/the-guild-org/conductor/conductor:eb4d78256b6593c45f4a5476d5ba85f11aee9113" } } ```
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=752ns    avg=2.79Β΅s   med=2.06Β΅s   max=1.46ms  p(95)=2.96Β΅s   p(99)=9.65Β΅s  
     http_req_connecting............: min=0s       avg=412ns    med=0s       max=1.42ms  p(95)=0s       p(99)=0s      
     http_req_duration..............: min=307.35Β΅s avg=403.82Β΅s med=381.65Β΅s max=19.07ms p(95)=461.12Β΅s p(99)=533.8Β΅s 
       { expected_response:true }...: min=307.35Β΅s avg=403.82Β΅s med=381.65Β΅s max=19.07ms p(95)=461.12Β΅s p(99)=533.8Β΅s 
     βœ“ { scenario:rps_1000 }........: min=307.35Β΅s avg=403.82Β΅s med=381.65Β΅s max=19.07ms p(95)=461.12Β΅s p(99)=533.8Β΅s 
     http_req_failed................: 0.00%   βœ“ 0          βœ— 60001
     βœ“ { scenario:rps_1000 }........: 0.00%   βœ“ 0          βœ— 60001
     http_req_receiving.............: min=10.12Β΅s  avg=25.7Β΅s   med=25.29Β΅s  max=4.33ms  p(95)=32.75Β΅s  p(99)=38.15Β΅s 
     http_req_sending...............: min=6.33Β΅s   avg=15.13Β΅s  med=13.8Β΅s   max=2.42ms  p(95)=24.14Β΅s  p(99)=32.48Β΅s 
     http_req_tls_handshaking.......: min=0s       avg=0s       med=0s       max=0s      p(95)=0s       p(99)=0s      
     http_req_waiting...............: min=273.69Β΅s avg=362.98Β΅s med=341.48Β΅s max=19.01ms p(95)=421.49Β΅s p(99)=489.01Β΅s
     http_reqs......................: 60001   1000.00646/s
     βœ“ { scenario:rps_1000 }........: 60001   1000.00646/s
     iteration_duration.............: min=385.04Β΅s avg=489.03Β΅s med=465.32Β΅s max=19.31ms p(95)=549.58Β΅s p(99)=675.27Β΅s
     iterations.....................: 60001   1000.00646/s
     βœ“ { scenario:rps_1000 }........: 60001   1000.00646/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............................: 0       min=0        max=2  
     vus_max........................: 200     min=200      max=200