diff --git a/.changesets/feat_bnjjj_feat_chunk_resp_selector.md b/.changesets/feat_bnjjj_feat_chunk_resp_selector.md deleted file mode 100644 index b0fbb3e87c..0000000000 --- a/.changesets/feat_bnjjj_feat_chunk_resp_selector.md +++ /dev/null @@ -1,45 +0,0 @@ -### Add support of event responses and critical errors for selectors and instrument in telemetry ([Issue #5027](https://github.com/apollographql/router/issues/5027)) - -Giving the ability to compute new attributes everytime we receive a new event in supergraph response. Would be really helpful to create observability for subscriptions and defer. - -I also added the support of `on_error` for selectors and especially `error` selector I added for every services. Which will let you create some metrics,events or span attributes containing error message. By adding this we will now have to ability to create a counter of request timed out for subgraphs for example: - -```yaml -telemetry: - instrumentation: - instruments: - subgraph: - requests.timeout: - value: unit - type: counter - unit: request - description: "subgraph requests containing subgraph timeout" - attributes: - subgraph.name: true - condition: - eq: - - "request timed out" - - error: reason -``` - -And thanks to the event support for selectors you'll be able to fetch data directly from the supergraph response body: - -```yaml -telemetry: - instrumentation: - instruments: - acme.request.on_graphql_error: - value: event_unit - type: counter - unit: error - description: my description - condition: - eq: - - MY_ERROR_CODE - - response_errors: "$.[0].extensions.code" - attributes: - response_errors: - response_errors: "$.*" -``` - -By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/5022 \ No newline at end of file diff --git a/.changesets/feat_bnjjj_fix_5042.md b/.changesets/feat_bnjjj_fix_5042.md deleted file mode 100644 index 88de555577..0000000000 --- a/.changesets/feat_bnjjj_fix_5042.md +++ /dev/null @@ -1,21 +0,0 @@ -### Add support for response status_code to rhai ([Issue #5042](https://github.com/apollographql/router/issues/5042)) - -Added support for `response.status_code` on `Response` interface in rhai. - -Convert response status code to a string. - -```rhai -if response.status_code.to_string() == "200" { - print(`ok`); -} -``` - -Also useful if you want to convert response status code to a number - -```rhai -if parse_int(response.status_code.to_string()) == 200 { - print(`ok`); -} -``` - -By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/5045 \ No newline at end of file diff --git a/.changesets/feat_geal_open_busy_timer.md b/.changesets/feat_geal_open_busy_timer.md deleted file mode 100644 index 30d052bc45..0000000000 --- a/.changesets/feat_geal_open_busy_timer.md +++ /dev/null @@ -1,6 +0,0 @@ -### Make the busy timer public ([PR #4989](https://github.com/apollographql/router/pull/4989)) - -the busy timer is used to measure the time spent working on a request outside of waiting for external calls like coprocessors and subgraph calls. It still includes the time spent waiting for other concurrent requests to be handled (wait time in the executor) to show the actual router overhead in the request handling. -This makes the busy timer API public to let native plugins use it when they do their own network calls. The affected methods are `Context::enter_active_request` and `Context::busy_time`. - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4989 \ No newline at end of file diff --git a/.changesets/feat_tninesling_telemetry_range_operators.md b/.changesets/feat_tninesling_telemetry_range_operators.md deleted file mode 100644 index a201a65913..0000000000 --- a/.changesets/feat_tninesling_telemetry_range_operators.md +++ /dev/null @@ -1,30 +0,0 @@ -### Add gt and lt operators for telemetry conditions ([PR #5048](https://github.com/apollographql/router/pull/5048)) - -Adds greater than and less than operators for telemetry conditions called `gt` and `lt`, respectively. The configuration for both takes two arguments as a list, similar to `eq`. The `gt` operator checks that the first argument is greater than the second, and, similarly, the `lt` operator checks that the first argument is less than the second.. Other conditions such as `gte`, `lte`, and `range` can all be made from combinations of `gt`, `lt`, `eq`, and `all`. - - ---- - -**Checklist** - -Complete the checklist (and note appropriate exceptions) before the PR is marked ready-for-review. - -- [X] Changes are compatible[^1] -- [ ] Documentation[^2] completed -- [ ] Performance impact assessed and acceptable -- Tests added and passing[^3] - - [X] Unit Tests - - [ ] Integration Tests - - [ ] Manual Tests - -**Exceptions** - -*Note any exceptions here* - -**Notes** - -[^1]: It may be appropriate to bring upcoming changes to the attention of other (impacted) groups. Please endeavour to do this before seeking PR approval. The mechanism for doing this will vary considerably, so use your judgement as to how and when to do this. -[^2]: Configuration is an important part of many changes. Where applicable please try to document configuration examples. -[^3]: Tick whichever testing boxes are applicable. If you are adding Manual Tests, please document the manual testing (extensively) in the Exceptions. - -By [@tninesling](https://github.com/tninesling) in https://github.com/apollographql/router/pull/5048 diff --git a/.changesets/fix_bnjjj_fix_custom_events_off.md b/.changesets/fix_bnjjj_fix_custom_events_off.md deleted file mode 100644 index 8f12757a7c..0000000000 --- a/.changesets/fix_bnjjj_fix_custom_events_off.md +++ /dev/null @@ -1,26 +0,0 @@ -### Do not create custom events in telemetry if level is off ([PR #5165](https://github.com/apollographql/router/pull/5165)) - -Don't create custom events and attributes if you set the level to `off` - -example of configuration: - -```yaml -telemetry: - instrumentation: - events: - router: - # Standard events - request: info - response: info - error: info - - # Custom events - my.disabled_request_event: - message: "my event message" - level: off # Disabled because we set the level to off - on: request - attributes: - http.request.body.size: true -``` - -By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/5165 \ No newline at end of file diff --git a/.changesets/fix_bryn_internal_server_error.md b/.changesets/fix_bryn_internal_server_error.md deleted file mode 100644 index cdd7ddcba1..0000000000 --- a/.changesets/fix_bryn_internal_server_error.md +++ /dev/null @@ -1,6 +0,0 @@ -### 5xx Internal server error responses are structured errors ([PR #5159](https://github.com/apollographql/router/pull/5159)) - -An internal server error (5xx class) which occurs as a result of an unexpected/unrecoverable disruption to the GraphQL request lifecycle execution (e.g., a coprocessor failure, etc.) will now result in a structured GraphQL error (i.e., `{"errors": [...]}`) being returned to the client rather than a plain-text error as was the case previously. - -When these circumstances occur, the underling error message — which may be any number of internal disruptions — will still be logged at an `ERROR` level to the router logs for the administrator of the router to monitor and use for debugging purposes. -By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/5159 diff --git a/.changesets/fix_bryn_json_schema.md b/.changesets/fix_bryn_json_schema.md deleted file mode 100644 index efe8b62ff2..0000000000 --- a/.changesets/fix_bryn_json_schema.md +++ /dev/null @@ -1,7 +0,0 @@ -### Make json schema small ([PR #5061](https://github.com/apollographql/router/pull/5061)) - -The json schema for the router.yaml is reduced in size from approx 100k lines to just over 7k. - -This reduces the startup time of the Router and a smaller schema is more friendly for code editors. - -By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/5061 diff --git a/.changesets/fix_garypen_router_274_preserve_batch_contexts.md b/.changesets/fix_garypen_router_274_preserve_batch_contexts.md deleted file mode 100644 index c48c669e72..0000000000 --- a/.changesets/fix_garypen_router_274_preserve_batch_contexts.md +++ /dev/null @@ -1,7 +0,0 @@ -### Ensure that batch entry contexts are correctly preserved ([PR #5162](https://github.com/apollographql/router/pull/5162)) - -Batch processing was not using contexts correctly. A representative context was chosen, the first item in a batch of items, and used to provide context functionality for all the generated responses. - -The router now correctly preserves request contexts and uses them during response creation. - -By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/5162 \ No newline at end of file diff --git a/.changesets/fix_geal_cache_key_qp_options.md b/.changesets/fix_geal_cache_key_qp_options.md deleted file mode 100644 index 3a973f9d14..0000000000 --- a/.changesets/fix_geal_cache_key_qp_options.md +++ /dev/null @@ -1,23 +0,0 @@ -### Prevent query plan cache collision when planning options change ([Issue #5093](https://github.com/apollographql/router/issues/5093)) - -> [!IMPORTANT] -> If you have enabled [Distributed query plan caching](https://www.apollographql.com/docs/router/configuration/distributed-caching/#distributed-query-plan-caching), this release changes the hashing algorithm used for the cache keys. On account of this, you should anticipate additional cache regeneration cost when updating between these versions while the new hashing algorithm comes into service. - -When query planning takes place there are a number of options such as: -* `defer_support` -* `generate_query_fragments` -* `experimental_reuse_query_fragments` -* `experimental_type_conditioned_fetching` -* `experimental_query_planner_mode` - -that will affect the generated query plans. - -If distributed query plan caching is also enabled, then changing any of these will result in different query plans being generated and entering the cache. - -This could cause issue in the following scenarios: -1. The Router configuration changes and a query plan is loaded from cache which is incompatible with the new configuration. -2. Routers with differing configuration are sharing the same cache causing them to cache and load incompatible query plans. - -Now a hash for the entire query planner configuration is included in the cache key to prevent this from happening. - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/5100 diff --git a/.changesets/fix_geal_input_enum_validation.md b/.changesets/fix_geal_input_enum_validation.md deleted file mode 100644 index ebaf0beba1..0000000000 --- a/.changesets/fix_geal_input_enum_validation.md +++ /dev/null @@ -1,5 +0,0 @@ -### Validate enum values in input variables ([Issue #4633](https://github.com/apollographql/router/issues/4633)) - -The Router will now validate enum values provided in JSON variables. - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4753 \ No newline at end of file diff --git a/.changesets/fix_strip_dashes_from_trace_id_in_customtraceidpropagator.md b/.changesets/fix_strip_dashes_from_trace_id_in_customtraceidpropagator.md deleted file mode 100644 index 06177234f5..0000000000 --- a/.changesets/fix_strip_dashes_from_trace_id_in_customtraceidpropagator.md +++ /dev/null @@ -1,8 +0,0 @@ -### Strip dashes from trace_id in CustomTraceIdPropagator ([Issue #4892](https://github.com/apollographql/router/issues/4892)) - -Trace ID in opentelemetry is represented as a 128 bit number. This is usually represented as a hex string without dashes and is based on w3c trace id format. - -If for example, raw trace id from headers are represented by uuid4 and contains dashes, those dashes should be stripped so the raw trace id value can be parsed into a valid `trace_id`. - - -By [@kindermax](https://github.com/kindermax) in https://github.com/apollographql/router/pull/5071 \ No newline at end of file diff --git a/.changesets/fix_tninesling_undo_auth_changes.md b/.changesets/fix_tninesling_undo_auth_changes.md deleted file mode 100644 index df02b9a084..0000000000 --- a/.changesets/fix_tninesling_undo_auth_changes.md +++ /dev/null @@ -1,5 +0,0 @@ -### Use supergraph schema to extract auth info ([PR #5047](https://github.com/apollographql/router/pull/5047)) - -Use supergraph schema to extract auth info as auth information may not be available on the query planner's subgraph schemas. This undoes the auth changes made in #4975. - -By [@tninesling](https://github.com/tninesling) in https://github.com/apollographql/router/pull/5047 diff --git a/.changesets/maint_garypen_router_258_update_router_bridge.md b/.changesets/maint_garypen_router_258_update_router_bridge.md deleted file mode 100644 index 7c0d083f04..0000000000 --- a/.changesets/maint_garypen_router_258_update_router_bridge.md +++ /dev/null @@ -1,7 +0,0 @@ -### Update the version of the router-bridge ([PR #5064](https://github.com/apollographql/router/pull/5064)) - -Update our router-bridge version to pull in fixes. - -The router is now using: router-bridge = "=0.5.21+v2.7.5" - -By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/5064 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index c26398ac2e..b8b6339055 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,200 @@ All notable changes to Router will be documented in this file. This project adheres to [Semantic Versioning v2.0.0](https://semver.org/spec/v2.0.0.html). +# [1.47.0] - 2024-05-21 + +## 🚀 Features + +### Support telemetry selectors with errors ([Issue #5027](https://github.com/apollographql/router/issues/5027)) + +The router now supports telemetry selectors that take into account the occurrence of errors. This capability enables you to create metrics, events, or span attributes that contain error messages. + +For example, you can create a counter for the number of timed-out requests for subgraphs: + + +```yaml +telemetry: + instrumentation: + instruments: + subgraph: + requests.timeout: + value: unit + type: counter + unit: request + description: "subgraph requests containing subgraph timeout" + attributes: + subgraph.name: true + condition: + eq: + - "request timed out" + - error: reason +``` + +The router also can now compute new attributes upon receiving a new event in a supergraph response. With this capability, you can fetch data directly from the supergraph response body: + +```yaml +telemetry: + instrumentation: + instruments: + acme.request.on_graphql_error: + value: event_unit + type: counter + unit: error + description: my description + condition: + eq: + - MY_ERROR_CODE + - response_errors: "$.[0].extensions.code" + attributes: + response_errors: + response_errors: "$.*" +``` + +By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/5022 + +### Add support for `status_code` response to Rhai ([Issue #5042](https://github.com/apollographql/router/issues/5042)) + +The router now supports `response.status_code` on the `Response` interface in Rhai. + +Examples using the response status code: + +- Converting a response status code to a string: + +```rhai +if response.status_code.to_string() == "200" { + print(`ok`); +} +``` + +- Converting a response status code to a number: + +```rhai +if parse_int(response.status_code.to_string()) == 200 { + print(`ok`); +} +``` + +By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/5045 + +### Add gt and lt operators for telemetry conditions ([PR #5048](https://github.com/apollographql/router/pull/5048)) + +The router supports greater than (`gt`) and less than (`lt`) operators for telemetry conditions. Similar to the `eq` operator, the configuration for both `gt` and `lt` takes two arguments as a list. The `gt` operator checks that the first argument is greater than the second, and the `lt` operator checks that the first argument is less than the second. Other conditions such as `gte`, `lte`, and `range` can be made from combinations of `gt`, `lt`, `eq`, and `all`. + +By [@tninesling](https://github.com/tninesling) in https://github.com/apollographql/router/pull/5048 + +### Expose busy timer APIs ([PR #4989](https://github.com/apollographql/router/pull/4989)) + +The router supports public APIs that native plugins can use to control when the router's busy timer is run. + +The router's busy timer measures the time spent working on a request outside of waiting for external calls, like coprocessors and subgraph calls. It includes the time spent waiting for other concurrent requests to be handled (the wait time in the executor) to show the actual router overhead when handling requests. + +The public methods are `Context::enter_active_request` and `Context::busy_time`. The result is reported in the `apollo_router_processing_time` metric + +For details on using the APIs, see the documentation for [`enter_active_request`](https://www.apollographql.com/docs/router/customizations/native#enter_active_request). + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4989 + +## 🐛 Fixes + +### Reduce JSON schema size and Router memory footprint ([PR #5061](https://github.com/apollographql/router/pull/5061)) + +As we add more features to the Router the size of the JSON schema for the router configuration file continutes to grow. In particular, adding [conditionals to telemetry](https://github.com/apollographql/router/pull/4987) in v1.46.0 significantly increased this size of the schema. This has a noticeable impact on initial memory footprint, although it does not impact service of requests. + +The JSON schema for the router configuration file has been optimized from approximately 100k lines down to just over 7k. + +This reduces the startup time of the Router and a smaller schema is more friendly for code editors. + +By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/5061 + +### Prevent query plan cache collision when planning options change ([Issue #5093](https://github.com/apollographql/router/issues/5093)) + +The router's hashing algorithm has been updated to prevent cache collisions when the router's configuration changes. + +> [!IMPORTANT] +> If you have enabled [Distributed query plan caching](https://www.apollographql.com/docs/router/configuration/distributed-caching/#distributed-query-plan-caching), this release changes the hashing algorithm used for the cache keys. On account of this, you should anticipate additional cache regeneration cost when updating between these versions while the new hashing algorithm comes into service. + +The router supports multiple options that affect the generated query plans, including: +* `defer_support` +* `generate_query_fragments` +* `experimental_reuse_query_fragments` +* `experimental_type_conditioned_fetching` +* `experimental_query_planner_mode` + +If distributed query plan caching is enabled, changing any of these options results in different query plans being generated and cached. + +This could be problematic in the following scenarios: + +1. The router configuration changes and a query plan is loaded from cache which is incompatible with the new configuration. +2. Routers with different configurations share the same cache, which causes them to cache and load incompatible query plans. + +To prevent these from happening, the router now creates a hash for the entire query planner configuration and includes it in the cache key. + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/5100 + +### 5xx internal server error responses returned as GraphQL structured errors ([PR #5159](https://github.com/apollographql/router/pull/5159)) + +Previously, the router returned internal server errors (5xx class) as plaintext to clients. Now in this release, the router returns these 5xx errors as structured GraphQL (for example, `{"errors": [...]}`). + +Internal server errors are returned upon unexpected or unrecoverable disruptions to the GraphQL request lifecycle execution. When these occur, the underlying error messages are logged at an `ERROR` level to the router's logs. +By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/5159 + +### Custom telemetry events not created when logging is disabled ([PR #5165](https://github.com/apollographql/router/pull/5165)) + +The router has been fixed to not create custom telemetry events when the log level is set to `off`. + +An example configuration with `level` set to `off` for a custom event: + +```yaml +telemetry: + instrumentation: + events: + router: + # Standard events + request: info + response: info + error: info + + # Custom events + my.disabled_request_event: + message: "my event message" + level: off # Disabled because we set the level to off + on: request + attributes: + http.request.body.size: true +``` + +By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/5165 + +### Ensure that batch entry contexts are correctly preserved ([PR #5162](https://github.com/apollographql/router/pull/5162)) + +Previously, the router didn't use contexts correctly when processing batches. A representative context was chosen (the first item in a batch of items) and used to provide context functionality for all the generated responses. + +The router now correctly preserves request contexts and uses them during response creation. + +By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/5162 + +### Validate enum values in input variables ([Issue #4633](https://github.com/apollographql/router/issues/4633)) + +The router now validates enum values provided in JSON variables. Invalid enum values result in `GRAPHQL_VALIDATION_FAILED` errors. + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4753 + +### Strip dashes from `trace_id` in `CustomTraceIdPropagator` ([Issue #4892](https://github.com/apollographql/router/issues/4892)) + + +The router now strips dashes from trace IDs to ensure conformance with OpenTelemetry. + +In OpenTelemetry, trace IDs are 128-bit values represented as hex strings without dashes, and they're based on W3C's trace ID format. + +This has been applied within the router to `trace_id` in `CustomTraceIdPropagator`. + +Note, if raw trace IDs from headers are represented by uuid4 and contain dashes, the dashes should be stripped so that the raw trace ID value can be parsed into a valid `trace_id`. + + +By [@kindermax](https://github.com/kindermax) in https://github.com/apollographql/router/pull/5071 + + + # [1.46.0] - 2024-05-07 ## 🚀 Features diff --git a/Cargo.lock b/Cargo.lock index 25c47adfdf..170c319844 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -220,7 +220,7 @@ dependencies = [ [[package]] name = "apollo-federation" -version = "1.46.0" +version = "1.47.0" dependencies = [ "apollo-compiler", "derive_more", @@ -262,7 +262,7 @@ dependencies = [ [[package]] name = "apollo-router" -version = "1.46.0" +version = "1.47.0" dependencies = [ "access-json", "anyhow", @@ -425,7 +425,7 @@ dependencies = [ [[package]] name = "apollo-router-benchmarks" -version = "1.46.0" +version = "1.47.0" dependencies = [ "apollo-parser", "apollo-router", @@ -441,7 +441,7 @@ dependencies = [ [[package]] name = "apollo-router-scaffold" -version = "1.46.0" +version = "1.47.0" dependencies = [ "anyhow", "cargo-scaffold", diff --git a/apollo-federation/Cargo.toml b/apollo-federation/Cargo.toml index 570ceda815..48f1368180 100644 --- a/apollo-federation/Cargo.toml +++ b/apollo-federation/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-federation" -version = "1.46.0" +version = "1.47.0" authors = ["The Apollo GraphQL Contributors"] edition = "2021" description = "Apollo Federation" diff --git a/apollo-router-benchmarks/Cargo.toml b/apollo-router-benchmarks/Cargo.toml index 91086440e3..62e409a105 100644 --- a/apollo-router-benchmarks/Cargo.toml +++ b/apollo-router-benchmarks/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-benchmarks" -version = "1.46.0" +version = "1.47.0" authors = ["Apollo Graph, Inc. "] edition = "2021" license = "Elastic-2.0" diff --git a/apollo-router-scaffold/Cargo.toml b/apollo-router-scaffold/Cargo.toml index 52b903aea1..353837020b 100644 --- a/apollo-router-scaffold/Cargo.toml +++ b/apollo-router-scaffold/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-scaffold" -version = "1.46.0" +version = "1.47.0" authors = ["Apollo Graph, Inc. "] edition = "2021" license = "Elastic-2.0" diff --git a/apollo-router-scaffold/templates/base/Cargo.toml b/apollo-router-scaffold/templates/base/Cargo.toml index f91e353964..521a9198d7 100644 --- a/apollo-router-scaffold/templates/base/Cargo.toml +++ b/apollo-router-scaffold/templates/base/Cargo.toml @@ -22,7 +22,7 @@ apollo-router = { path ="{{integration_test}}apollo-router" } apollo-router = { git="https://github.com/apollographql/router.git", branch="{{branch}}" } {{else}} # Note if you update these dependencies then also update xtask/Cargo.toml -apollo-router = "1.46.0" +apollo-router = "1.47.0" {{/if}} {{/if}} async-trait = "0.1.52" diff --git a/apollo-router-scaffold/templates/base/xtask/Cargo.toml b/apollo-router-scaffold/templates/base/xtask/Cargo.toml index 4b855db8a5..39354e9139 100644 --- a/apollo-router-scaffold/templates/base/xtask/Cargo.toml +++ b/apollo-router-scaffold/templates/base/xtask/Cargo.toml @@ -13,7 +13,7 @@ apollo-router-scaffold = { path ="{{integration_test}}apollo-router-scaffold" } {{#if branch}} apollo-router-scaffold = { git="https://github.com/apollographql/router.git", branch="{{branch}}" } {{else}} -apollo-router-scaffold = { git = "https://github.com/apollographql/router.git", tag = "v1.46.0" } +apollo-router-scaffold = { git = "https://github.com/apollographql/router.git", tag = "v1.47.0" } {{/if}} {{/if}} anyhow = "1.0.58" diff --git a/apollo-router/Cargo.toml b/apollo-router/Cargo.toml index 5283633201..02c72d6e4e 100644 --- a/apollo-router/Cargo.toml +++ b/apollo-router/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router" -version = "1.46.0" +version = "1.47.0" authors = ["Apollo Graph, Inc. "] repository = "https://github.com/apollographql/router/" documentation = "https://docs.rs/apollo-router" @@ -68,7 +68,7 @@ askama = "0.12.1" access-json = "0.1.0" anyhow = "1.0.80" apollo-compiler.workspace = true -apollo-federation = { path = "../apollo-federation", version = "=1.46.0" } +apollo-federation = { path = "../apollo-federation", version = "=1.47.0" } arc-swap = "1.6.0" async-channel = "1.9.0" async-compression = { version = "0.4.6", features = [ diff --git a/dockerfiles/tracing/docker-compose.datadog.yml b/dockerfiles/tracing/docker-compose.datadog.yml index 79a6692a8a..f90fff4010 100644 --- a/dockerfiles/tracing/docker-compose.datadog.yml +++ b/dockerfiles/tracing/docker-compose.datadog.yml @@ -3,7 +3,7 @@ services: apollo-router: container_name: apollo-router - image: ghcr.io/apollographql/router:v1.46.0 + image: ghcr.io/apollographql/router:v1.47.0 volumes: - ./supergraph.graphql:/etc/config/supergraph.graphql - ./router/datadog.router.yaml:/etc/config/configuration.yaml diff --git a/dockerfiles/tracing/docker-compose.jaeger.yml b/dockerfiles/tracing/docker-compose.jaeger.yml index 8d047807cf..55605308eb 100644 --- a/dockerfiles/tracing/docker-compose.jaeger.yml +++ b/dockerfiles/tracing/docker-compose.jaeger.yml @@ -4,7 +4,7 @@ services: apollo-router: container_name: apollo-router #build: ./router - image: ghcr.io/apollographql/router:v1.46.0 + image: ghcr.io/apollographql/router:v1.47.0 volumes: - ./supergraph.graphql:/etc/config/supergraph.graphql - ./router/jaeger.router.yaml:/etc/config/configuration.yaml diff --git a/dockerfiles/tracing/docker-compose.zipkin.yml b/dockerfiles/tracing/docker-compose.zipkin.yml index 0e98fb085e..1689a4e9d4 100644 --- a/dockerfiles/tracing/docker-compose.zipkin.yml +++ b/dockerfiles/tracing/docker-compose.zipkin.yml @@ -4,7 +4,7 @@ services: apollo-router: container_name: apollo-router build: ./router - image: ghcr.io/apollographql/router:v1.46.0 + image: ghcr.io/apollographql/router:v1.47.0 volumes: - ./supergraph.graphql:/etc/config/supergraph.graphql - ./router/zipkin.router.yaml:/etc/config/configuration.yaml diff --git a/helm/chart/router/Chart.yaml b/helm/chart/router/Chart.yaml index 756c9b6baf..06b900da23 100644 --- a/helm/chart/router/Chart.yaml +++ b/helm/chart/router/Chart.yaml @@ -20,10 +20,10 @@ type: application # so it matches the shape of our release process and release automation. # By proxy of that decision, this version uses SemVer 2.0.0, though the prefix # of "v" is not included. -version: 1.46.0 +version: 1.47.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "v1.46.0" +appVersion: "v1.47.0" diff --git a/helm/chart/router/README.md b/helm/chart/router/README.md index 77956fb709..eed82179b9 100644 --- a/helm/chart/router/README.md +++ b/helm/chart/router/README.md @@ -2,7 +2,7 @@ [router](https://github.com/apollographql/router) Rust Graph Routing runtime for Apollo Federation -![Version: 1.46.0](https://img.shields.io/badge/Version-1.46.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.46.0](https://img.shields.io/badge/AppVersion-v1.46.0-informational?style=flat-square) +![Version: 1.47.0](https://img.shields.io/badge/Version-1.47.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.47.0](https://img.shields.io/badge/AppVersion-v1.47.0-informational?style=flat-square) ## Prerequisites @@ -11,7 +11,7 @@ ## Get Repo Info ```console -helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.46.0 +helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.47.0 ``` ## Install Chart @@ -19,7 +19,7 @@ helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.46.0 **Important:** only helm3 is supported ```console -helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.46.0 --values my-values.yaml +helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.47.0 --values my-values.yaml ``` _See [configuration](#configuration) below._ diff --git a/licenses.html b/licenses.html index 79f5e66beb..9461358688 100644 --- a/licenses.html +++ b/licenses.html @@ -48,8 +48,8 @@

Overview of licenses:

  • MIT License (152)
  • BSD 3-Clause "New" or "Revised" License (12)
  • ISC License (11)
  • +
  • Elastic License 2.0 (6)
  • BSD 2-Clause "Simplified" License (3)
  • -
  • Elastic License 2.0 (3)
  • Mozilla Public License 2.0 (3)
  • Creative Commons Zero v1.0 Universal (2)
  • OpenSSL License (2)
  • @@ -8242,7 +8242,6 @@

    Used by:

  • either
  • envmnt
  • equivalent
  • -
  • errno
  • event-listener
  • fastrand
  • fastrand
  • @@ -8294,6 +8293,7 @@

    Used by:

  • mockall_derive
  • multimap
  • multimap
  • +
  • multimap
  • num
  • num-bigint
  • num-bigint-dig
  • @@ -13163,6 +13163,9 @@

    Elastic License 2.0

    Used by:

    Copyright 2021 Apollo Graph, Inc.
     
    @@ -13265,11 +13268,15 @@ 

    Used by:

    Elastic License 2.0

    Used by:

    -
    Elastic License 2.0
    +                
    Copyright 2021 Apollo Graph, Inc.
    +
    +Source code in this repository is covered by (i) the Elastic License 2.0 or (ii) an MIT compatible license, in each case, as designated by a licensing file in a subdirectory or file header. The default throughout the repository is a license under the Elastic License 2.0, unless a file header or a licensing file in a subdirectory specifies another license.
     
    -URL: https://www.elastic.co/licensing/elastic-license
    +--------------------------------------------------------------------------------
    +
    +Elastic License 2.0
     
     ## Acceptance
     
    @@ -13360,7 +13367,8 @@ 

    Used by:

    **use** means anything you do with the software requiring one of your licenses. **trademark** means trademarks, service marks, and similar rights. -
    + +--------------------------------------------------------------------------------
  • ISC License

    diff --git a/scripts/install.sh b/scripts/install.sh index dad2182d10..3b509ebc6b 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -11,7 +11,7 @@ BINARY_DOWNLOAD_PREFIX="https://github.com/apollographql/router/releases/downloa # Router version defined in apollo-router's Cargo.toml # Note: Change this line manually during the release steps. -PACKAGE_VERSION="v1.46.0" +PACKAGE_VERSION="v1.47.0" download_binary() { downloader --check