diff --git a/.changesets/docs_garypen_fix_rhai_subgraph_docs.md b/.changesets/docs_garypen_fix_rhai_subgraph_docs.md deleted file mode 100644 index d08bf3f967..0000000000 --- a/.changesets/docs_garypen_fix_rhai_subgraph_docs.md +++ /dev/null @@ -1,5 +0,0 @@ -### Rhai documentation: remove incorrect statement about request.subgraph fields ([PR #3808](https://github.com/apollographql/router/pull/3808)) - -It is possible to modify `request.subgraph` fields from a Rhai script, which is now correctly reflected in [Rhai documentation](https://www.apollographql.com/docs/router/customizations/rhai-api/#request-interface). - -By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/3808 \ No newline at end of file diff --git a/.changesets/feat_bnjjj_fix_3621.md b/.changesets/feat_bnjjj_fix_3621.md deleted file mode 100644 index dacac24f7d..0000000000 --- a/.changesets/feat_bnjjj_fix_3621.md +++ /dev/null @@ -1,15 +0,0 @@ -### Added configuration to set redis request timeout ([Issue #3621](https://github.com/apollographql/router/issues/3621)) - -We added configuration to override default timeout for Redis requests. Default timeout was also changed from 1ms to **2ms**. - -Here is an example to change the timeout for [Distributed APQ](https://www.apollographql.com/docs/router/configuration/distributed-caching#distributed-apq-caching) (an Enterprise Feature): -```yaml -apq: - router: - cache: - redis: - urls: ["redis://..."] - timeout: 5ms -``` - -By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/3817 \ No newline at end of file diff --git a/.changesets/feat_geal_h2c.md b/.changesets/feat_geal_h2c.md deleted file mode 100644 index b6874069a0..0000000000 --- a/.changesets/feat_geal_h2c.md +++ /dev/null @@ -1,5 +0,0 @@ -### HTTP/2 Cleartext protocol (H2C) support for subgraph connections ([Issue #3535](https://github.com/apollographql/router/issues/3535)) - -The router can now connect to subgraphs over HTTP/2 Cleartext (H2C), which uses the HTTP/2 binary protocol directly over TCP **without TLS**, which is a mode of operation desired with some service mesh configurations (e.g., Istio, Envoy) where the value of added encryption is unnecessary. To activate it, set the `experimental_http2` option to `http2_only`. - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/3852 \ No newline at end of file diff --git a/.changesets/feat_geal_plan_cache_warmup_doc.md b/.changesets/feat_geal_plan_cache_warmup_doc.md deleted file mode 100644 index 8eb3e1dee1..0000000000 --- a/.changesets/feat_geal_plan_cache_warmup_doc.md +++ /dev/null @@ -1,35 +0,0 @@ -### Query plan cache warm-up improvements ([Issue #3704](https://github.com/apollographql/router/issues/3704), [Issue #3767](https://github.com/apollographql/router/issues/3767)) - -The `warm_up_queries` option enables quicker schema updates by precomputing query plans for your most used cached queries and your persisted queries. When a new schema is loaded, a precomputed query plan for it may already be in the in-memory cache. - -We made a series of improvements to this feature to make it easier to use: -* It is now active by default. -* It warms up the cache with the 30% most used queries from previous cache. -* The query cache percentage continues to be configurable, and it can be deactivated by setting it to 0. -* The warm-up will now plan queries in random order to make sure that the work can be shared by multiple router instances using distributed caching. -* Persisted queries are part of the warmed up queries. - -We also added histogram metrics for `apollo_router_query_planning_warmup_duration` and `apollo_router_schema_load_duration`. These metrics make it easier to track the time spent loading a new schema and planning queries in the warm-up phase. You can measure the query plan cache usage for both the in-memory-cache and distributed cache. This makes it easier to know how many entries are used as well as the cache hit rate. - -Here is what these metrics would look like in Prometheus: - -``` -# HELP apollo_router_query_planning_warmup_duration apollo_router_query_planning_warmup_duration -# TYPE apollo_router_query_planning_warmup_duration histogram -apollo_router_query_planning_warmup_duration_bucket{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version="",le="0.05"} 1 -apollo_router_query_planning_warmup_duration_bucket{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version="",le="0.1"} 1 -apollo_router_query_planning_warmup_duration_bucket{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version="",le="0.25"} 1 -apollo_router_query_planning_warmup_duration_sum{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version=""} 0.022390619 -apollo_router_query_planning_warmup_duration_count{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version=""} 1 -# HELP apollo_router_schema_load_duration apollo_router_schema_load_duration -# TYPE apollo_router_schema_load_duration histogram -apollo_router_schema_load_duration_bucket{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version="",le="0.05"} 8 -apollo_router_schema_load_duration_bucket{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version="",le="0.1"} 8 -apollo_router_schema_load_duration_bucket{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version="",le="0.25"} 8 -``` - -You can get more information about operating the query plan cache and its warm-up phase in the [documentation](https://www.apollographql.com/docs/router/configuration/in-memory-caching#cache-warm-up) - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/3815 https://github.com/apollographql/router/pull/3801 https://github.com/apollographql/router/pull/3767 https://github.com/apollographql/router/pull/3769 https://github.com/apollographql/router/pull/3770 - -By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/3807 \ No newline at end of file diff --git a/.changesets/feat_geal_reintroduce_rhai_json.md b/.changesets/feat_geal_reintroduce_rhai_json.md deleted file mode 100644 index 7f960707db..0000000000 --- a/.changesets/feat_geal_reintroduce_rhai_json.md +++ /dev/null @@ -1,5 +0,0 @@ -### JSON encoding and decoding in Rhai ([PR #3785](https://github.com/apollographql/router/pull/3785)) - -It is now possible to encode or decode JSON from Rhai scripts using `json::encode` and `json::decode`. - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/3785 \ No newline at end of file diff --git a/.changesets/feat_geal_subgraph_mtls.md b/.changesets/feat_geal_subgraph_mtls.md deleted file mode 100644 index 9ab4698a1a..0000000000 --- a/.changesets/feat_geal_subgraph_mtls.md +++ /dev/null @@ -1,23 +0,0 @@ -### TLS client authentication for subgraph requests ([Issue #3414](https://github.com/apollographql/router/issues/3414)) - -The router now supports TLS client authentication when connecting to subgraphs. It can be configured as follows: - -```yaml -tls: - subgraph: - all: - client_authentication: - certificate_chain: ${file./path/to/certificate_chain.pem} - key: ${file./path/to/key.pem} - # if configuring for a specific subgraph: - subgraphs: - # subgraph name - products: - client_authentication: - certificate_chain: ${file./path/to/certificate_chain.pem} - key: ${file./path/to/key.pem} -``` - -Details on TLS client authentication can be found in the [documentation](https://www.apollographql.com/docs/router/configuration/overview#tls-client-authentication-for-subgraph-requests) - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/3794 \ No newline at end of file diff --git a/.changesets/feat_geal_supergraph_coprocessor2.md b/.changesets/feat_geal_supergraph_coprocessor2.md deleted file mode 100644 index ead15c859c..0000000000 --- a/.changesets/feat_geal_supergraph_coprocessor2.md +++ /dev/null @@ -1,33 +0,0 @@ -### Supergraph coprocessor implementation ([PR #3647](https://github.com/apollographql/router/pull/3647)) - -Coprocessors now support supergraph service interception. - -On the request side, the coprocessor payload can contain: -- method -- headers -- body -- context -- sdl - -On the response side, the payload can contain: -- status_code -- headers -- body -- context -- sdl - -The supergraph request body contains: -- query -- operation name -- variables -- extensions - -The supergraph response body contains: -- label -- data -- errors -- extensions - -When using `@defer` or subscriptions a supergraph response may contain multiple GraphQL responses. The coprocessor will be called for each response. Please refer to our [coprocessor documentation](https://www.apollographql.com/docs/router/customizations/coprocessor) for more information. - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/3647 \ No newline at end of file diff --git a/.changesets/feat_sm_add_awsxray_propagator.md b/.changesets/feat_sm_add_awsxray_propagator.md deleted file mode 100644 index fbe21cd136..0000000000 --- a/.changesets/feat_sm_add_awsxray_propagator.md +++ /dev/null @@ -1,5 +0,0 @@ -### Adds support for the OpenTelemetry AWS X-Ray tracing propagator ([PR #3580](https://github.com/apollographql/router/pull/3580)) - -This propagator helps propagate tracing information from upstream services (such as AWS load balancers) to downstream services. It also handles conversion between the X-Ray trace id format and OpenTelemetry span contexts. - -By [@scottmace](https://github.com/scottmace) in https://github.com/apollographql/router/pull/3580 diff --git a/.changesets/fix_garypen_helm_extra_labels.md b/.changesets/fix_garypen_helm_extra_labels.md deleted file mode 100644 index d8439dad01..0000000000 --- a/.changesets/fix_garypen_helm_extra_labels.md +++ /dev/null @@ -1,7 +0,0 @@ -### Helm: If there are `extraLabels` add them to all resources ([PR #3622](https://github.com/apollographql/router/pull/3622)) - -This extends the functionality of `extraLabels` so that, if they are defined, they will be templated for all resources created by the chart. - -Previously, they were only templated onto the `Deployment` resource. - -By [@garypen](https://github.com/garypen) and [@bjoernw](https://github.com/bjoernw) in https://github.com/apollographql/router/pull/3622 diff --git a/.changesets/fix_igni_coprocessors_discard_content_length.md b/.changesets/fix_igni_coprocessors_discard_content_length.md deleted file mode 100644 index 16c02d3494..0000000000 --- a/.changesets/fix_igni_coprocessors_discard_content_length.md +++ /dev/null @@ -1,6 +0,0 @@ -### Coprocessors: Discard content-length sent by coprocessors ([PR #3802](https://github.com/apollographql/router/pull/3802)) - -The `content-length` of an HTTP response can only be computed when a router response is being sent. -We now discard coprocessors `content-length` header to make sure the value is computed correctly. - -By [@o0Ignition0o](https://github.com/o0Ignition0o) in https://github.com/apollographql/router/pull/3802 diff --git a/.changesets/fix_persisted_queries_failover_and_error_handling.md b/.changesets/fix_persisted_queries_failover_and_error_handling.md deleted file mode 100644 index 26ed4644ad..0000000000 --- a/.changesets/fix_persisted_queries_failover_and_error_handling.md +++ /dev/null @@ -1,5 +0,0 @@ -### Improve multi-cloud failover and error handling for Persisted Queries ([PR #3863](https://github.com/apollographql/router/pull/3863)) - -Improves the resilience of the Persisted Queries feature to Uplink outages. This makes errors while fetching persisted query manifests from Uplink more visible. - -By [@glasser](https://github.com/glasser) in https://github.com/apollographql/router/pull/3863 \ No newline at end of file diff --git a/.changesets/fix_renee_fix_large_ints.md b/.changesets/fix_renee_fix_large_ints.md deleted file mode 100644 index 1ab697866d..0000000000 --- a/.changesets/fix_renee_fix_large_ints.md +++ /dev/null @@ -1,18 +0,0 @@ -### Fix error response on large number types in query transformations ([PR #3820](https://github.com/apollographql/router/pull/3820)) - -This bug caused the router to reject operations where a large hardcoded integer was used as input for a Float field: - -```graphql -# Schema -type Query { - field(argument: Float): Int! -} -# Operation -{ - field(argument: 123456789123) -} -``` - -This number is now correctly interpreted as a `Float`. This bug only affected hardcoded numbers, not numbers provided through variables. - -By [@goto-bus-stop](https://github.com/goto-bus-stop) in https://github.com/apollographql/router/pull/3820 \ No newline at end of file diff --git a/.changesets/fix_simon_large_id.md b/.changesets/fix_simon_large_id.md deleted file mode 100644 index d2d0a28733..0000000000 --- a/.changesets/fix_simon_large_id.md +++ /dev/null @@ -1,5 +0,0 @@ -### Fix validation error with `ID` variable values overflowing 32-bit integers ([Issue #3873](https://github.com/apollographql/router/issues/3873)) - -Input values for variables of type `ID` were previously validated as "either like a GraphQL `Int` or like a GraphQL `String`". GraphQL `Int` is specified as a signed 32-bit integer, such that values that overflow fail validation. Applying this range restriction to `ID` values was incorrect. Instead, validation for `ID` now accepts any JSON integer or JSON string value, so that IDs larger than 32 bits can be used. - -By [@SimonSapin](https://github.com/SimonSapin) in https://github.com/apollographql/router/pull/3896 diff --git a/CHANGELOG.md b/CHANGELOG.md index ea9deb23a7..dfacf73f40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,196 @@ 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.31.0] - 2023-09-27 + +## 🚀 Features + +### TLS client authentication for subgraph requests ([Issue #3414](https://github.com/apollographql/router/issues/3414)) + +The router now supports TLS client authentication when connecting to subgraphs. It can be configured as follows: + +```yaml +tls: + subgraph: + all: + client_authentication: + certificate_chain: + key: + # if configuring for a specific subgraph: + subgraphs: + # subgraph name + products: + client_authentication: + certificate_chain: + key: +``` + +Details on TLS client authentication can be found in the [documentation](https://www.apollographql.com/docs/router/configuration/overview#tls-client-authentication-for-subgraph-requests) + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/3794 + +### Added configuration to set redis request timeout ([Issue #3621](https://github.com/apollographql/router/issues/3621)) + +We added configuration to override default timeout for Redis requests. Default timeout was also changed from 1ms to **2ms**. + +Here is an example to change the timeout for [Distributed APQ](https://www.apollographql.com/docs/router/configuration/distributed-caching#distributed-apq-caching) (an Enterprise Feature): +```yaml +apq: + router: + cache: + redis: + urls: ["redis://..."] + timeout: 5ms +``` + +By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/3817 + +### JSON encoding and decoding in Rhai ([PR #3785](https://github.com/apollographql/router/pull/3785)) + +It is now possible to encode or decode JSON from Rhai scripts using `json::encode` and `json::decode`. + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/3785 + +### Supergraph coprocessor implementation ([PR #3647](https://github.com/apollographql/router/pull/3647)) + +Coprocessors now support supergraph service interception. + +On the request side, the coprocessor payload can contain: +- method +- headers +- body +- context +- sdl + +On the response side, the payload can contain: +- status_code +- headers +- body +- context +- sdl + +The supergraph request body contains: +- query +- operation name +- variables +- extensions + +The supergraph response body contains: +- label +- data +- errors +- extensions + +When using `@defer` or subscriptions a supergraph response may contain multiple GraphQL responses. The coprocessor will be called for each response. Please refer to our [coprocessor documentation](https://www.apollographql.com/docs/router/customizations/coprocessor) for more information. + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/3647 + +### Adds support for the OpenTelemetry AWS X-Ray tracing propagator ([PR #3580](https://github.com/apollographql/router/pull/3580)) + +This propagator helps propagate tracing information from upstream services (such as AWS load balancers) to downstream services. It also handles conversion between the X-Ray trace id format and OpenTelemetry span contexts. + +By [@scottmace](https://github.com/scottmace) in https://github.com/apollographql/router/pull/3580 + +### HTTP/2 Cleartext protocol (H2C) support for subgraph connections ([Issue #3535](https://github.com/apollographql/router/issues/3535)) + +The router can now connect to subgraphs over HTTP/2 Cleartext (H2C), which uses the HTTP/2 binary protocol directly over TCP **without TLS**, which is a mode of operation desired with some service mesh configurations (e.g., Istio, Envoy) where the value of added encryption is unnecessary. To activate it, set the `experimental_http2` option to `http2_only`. + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/3852 + +### Query plan cache warm-up improvements ([Issue #3704](https://github.com/apollographql/router/issues/3704), [Issue #3767](https://github.com/apollographql/router/issues/3767)) + +The `warm_up_queries` option enables quicker schema updates by precomputing query plans for your most used cached queries and your persisted queries. When a new schema is loaded, a precomputed query plan for it may already be in the in-memory cache. + +We made a series of improvements to this feature to make it easier to use: +* It is now active by default. +* It warms up the cache with the 30% most used queries from previous cache. +* The query cache percentage continues to be configurable, and it can be deactivated by setting it to 0. +* The warm-up will now plan queries in random order to make sure that the work can be shared by multiple router instances using distributed caching. +* Persisted queries are part of the warmed up queries. + +We also added histogram metrics for `apollo_router_query_planning_warmup_duration` and `apollo_router_schema_load_duration`. These metrics make it easier to track the time spent loading a new schema and planning queries in the warm-up phase. You can measure the query plan cache usage for both the in-memory-cache and distributed cache. This makes it easier to know how many entries are used as well as the cache hit rate. + +Here is what these metrics would look like in Prometheus: + +``` +# HELP apollo_router_query_planning_warmup_duration apollo_router_query_planning_warmup_duration +# TYPE apollo_router_query_planning_warmup_duration histogram +apollo_router_query_planning_warmup_duration_bucket{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version="",le="0.05"} 1 +apollo_router_query_planning_warmup_duration_bucket{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version="",le="0.1"} 1 +apollo_router_query_planning_warmup_duration_bucket{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version="",le="0.25"} 1 +apollo_router_query_planning_warmup_duration_sum{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version=""} 0.022390619 +apollo_router_query_planning_warmup_duration_count{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version=""} 1 +# HELP apollo_router_schema_load_duration apollo_router_schema_load_duration +# TYPE apollo_router_schema_load_duration histogram +apollo_router_schema_load_duration_bucket{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version="",le="0.05"} 8 +apollo_router_schema_load_duration_bucket{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version="",le="0.1"} 8 +apollo_router_schema_load_duration_bucket{service_name="apollo-router",otel_scope_name="apollo/router",otel_scope_version="",le="0.25"} 8 +``` + +You can get more information about operating the query plan cache and its warm-up phase in the [documentation](https://www.apollographql.com/docs/router/configuration/in-memory-caching#cache-warm-up) + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/3815 https://github.com/apollographql/router/pull/3801 https://github.com/apollographql/router/pull/3767 https://github.com/apollographql/router/pull/3769 https://github.com/apollographql/router/pull/3770 + +By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/3807 + +## 🐛 Fixes + +### Fix error response on large number types in query transformations ([PR #3820](https://github.com/apollographql/router/pull/3820)) + +This bug caused the router to reject operations where a large hardcoded integer was used as input for a Float field: + +```graphql +# Schema +type Query { + field(argument: Float): Int! +} +# Operation +{ + field(argument: 123456789123) +} +``` + +This number is now correctly interpreted as a `Float`. This bug only affected hardcoded numbers, not numbers provided through variables. + +By [@goto-bus-stop](https://github.com/goto-bus-stop) in https://github.com/apollographql/router/pull/3820 + +### Fix validation error with `ID` variable values overflowing 32-bit integers ([Issue #3873](https://github.com/apollographql/router/issues/3873)) + +Input values for variables of type `ID` were previously validated as "either like a GraphQL `Int` or like a GraphQL `String`". GraphQL `Int` is specified as a signed 32-bit integer, such that values that overflow fail validation. Applying this range restriction to `ID` values was incorrect. Instead, validation for `ID` now accepts any JSON integer or JSON string value, so that IDs larger than 32 bits can be used. + +By [@SimonSapin](https://github.com/SimonSapin) in https://github.com/apollographql/router/pull/3896 + +### Improve multi-cloud failover and error handling for Persisted Queries ([PR #3863](https://github.com/apollographql/router/pull/3863)) + +Improves the resilience of the Persisted Queries feature to Uplink outages. This makes errors while fetching persisted query manifests from Uplink more visible. + +By [@glasser](https://github.com/glasser) in https://github.com/apollographql/router/pull/3863 + +### Coprocessors: Discard content-length sent by coprocessors ([PR #3802](https://github.com/apollographql/router/pull/3802)) + +The `content-length` of an HTTP response can only be computed when a router response is being sent. +We now discard coprocessors `content-length` header to make sure the value is computed correctly. + +By [@o0Ignition0o](https://github.com/o0Ignition0o) in https://github.com/apollographql/router/pull/3802 + +### Helm: If there are `extraLabels` add them to all resources ([PR #3622](https://github.com/apollographql/router/pull/3622)) + +This extends the functionality of `extraLabels` so that, if they are defined, they will be templated for all resources created by the chart. + +Previously, they were only templated onto the `Deployment` resource. + +By [@garypen](https://github.com/garypen) and [@bjoernw](https://github.com/bjoernw) in https://github.com/apollographql/router/pull/3622 + +## 📚 Documentation + +### Rhai documentation: remove incorrect statement about request.subgraph fields ([PR #3808](https://github.com/apollographql/router/pull/3808)) + +It is possible to modify `request.subgraph` fields from a Rhai script, which is now correctly reflected in [Rhai documentation](https://www.apollographql.com/docs/router/customizations/rhai-api/#request-interface). + +By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/3808 + + + # [1.30.1] - 2023-09-22 ## 🐛 Fixes diff --git a/Cargo.lock b/Cargo.lock index 113b86a69d..165dab1f22 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -264,7 +264,7 @@ dependencies = [ [[package]] name = "apollo-router" -version = "1.31.0-alpha.4" +version = "1.31.0" dependencies = [ "access-json", "anyhow", @@ -411,7 +411,7 @@ dependencies = [ [[package]] name = "apollo-router-benchmarks" -version = "1.31.0-alpha.4" +version = "1.31.0" dependencies = [ "apollo-parser 0.6.2", "apollo-router", @@ -427,7 +427,7 @@ dependencies = [ [[package]] name = "apollo-router-scaffold" -version = "1.31.0-alpha.4" +version = "1.31.0" dependencies = [ "anyhow", "cargo-scaffold", diff --git a/apollo-router-benchmarks/Cargo.toml b/apollo-router-benchmarks/Cargo.toml index 65e513ba80..8c03e279d0 100644 --- a/apollo-router-benchmarks/Cargo.toml +++ b/apollo-router-benchmarks/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-benchmarks" -version = "1.31.0-alpha.4" +version = "1.31.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 afab3bfe16..f6f2f3397c 100644 --- a/apollo-router-scaffold/Cargo.toml +++ b/apollo-router-scaffold/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-scaffold" -version = "1.31.0-alpha.4" +version = "1.31.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 8e00a942bf..205692c26c 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.31.0-alpha.4" +apollo-router = "1.31.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 30bc08f644..b731ddadeb 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.31.0-alpha.4" } +apollo-router-scaffold = { git = "https://github.com/apollographql/router.git", tag = "v1.31.0" } {{/if}} {{/if}} anyhow = "1.0.58" diff --git a/apollo-router/Cargo.toml b/apollo-router/Cargo.toml index b6dfc7ce39..1ff73d7563 100644 --- a/apollo-router/Cargo.toml +++ b/apollo-router/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router" -version = "1.31.0-alpha.4" +version = "1.31.0" authors = ["Apollo Graph, Inc. "] repository = "https://github.com/apollographql/router/" documentation = "https://docs.rs/apollo-router" diff --git a/dockerfiles/tracing/docker-compose.datadog.yml b/dockerfiles/tracing/docker-compose.datadog.yml index 5f12f785af..79d853c75c 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.31.0-alpha.4 + image: ghcr.io/apollographql/router:v1.31.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 19c83e15cd..9a6e59f1f8 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.31.0-alpha.4 + image: ghcr.io/apollographql/router:v1.31.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 c6122bd9a7..8c95c95183 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.31.0-alpha.4 + image: ghcr.io/apollographql/router:v1.31.0 volumes: - ./supergraph.graphql:/etc/config/supergraph.graphql - ./router/zipkin.router.yaml:/etc/config/configuration.yaml diff --git a/docs/source/containerization/docker.mdx b/docs/source/containerization/docker.mdx index b0e93b2897..15add92d7d 100644 --- a/docs/source/containerization/docker.mdx +++ b/docs/source/containerization/docker.mdx @@ -11,7 +11,7 @@ The default behaviour of the router images is suitable for a quickstart or devel Note: The [docker documentation](https://docs.docker.com/engine/reference/run/) for the run command may be helpful when reading through the examples. -Note: The exact image version to use is your choice depending on which release you wish to use. In the following examples, replace `` with your chosen version. e.g.: `v1.31.0-alpha.4` +Note: The exact image version to use is your choice depending on which release you wish to use. In the following examples, replace `` with your chosen version. e.g.: `v1.31.0` ## Override the configuration diff --git a/docs/source/containerization/kubernetes.mdx b/docs/source/containerization/kubernetes.mdx index 644eb6d9fa..eed4c546ff 100644 --- a/docs/source/containerization/kubernetes.mdx +++ b/docs/source/containerization/kubernetes.mdx @@ -13,7 +13,7 @@ import { Link } from 'gatsby'; [Helm](https://helm.sh) is the package manager for kubernetes. -There is a complete [helm chart definition](https://github.com/apollographql/router/tree/v1.31.0-alpha.4/helm/chart/router) in the repo which illustrates how to use helm to deploy the router in kubernetes. +There is a complete [helm chart definition](https://github.com/apollographql/router/tree/v1.31.0/helm/chart/router) in the repo which illustrates how to use helm to deploy the router in kubernetes. In both the following examples, we are using helm to install the router: - into namespace "router-deploy" (create namespace if it doesn't exist) @@ -64,10 +64,10 @@ kind: ServiceAccount metadata: name: release-name-router labels: - helm.sh/chart: router-1.31.0-alpha.4 + helm.sh/chart: router-1.31.0 app.kubernetes.io/name: router app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "v1.31.0-alpha.4" + app.kubernetes.io/version: "v1.31.0" app.kubernetes.io/managed-by: Helm --- # Source: router/templates/secret.yaml @@ -76,10 +76,10 @@ kind: Secret metadata: name: "release-name-router" labels: - helm.sh/chart: router-1.31.0-alpha.4 + helm.sh/chart: router-1.31.0 app.kubernetes.io/name: router app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "v1.31.0-alpha.4" + app.kubernetes.io/version: "v1.31.0" app.kubernetes.io/managed-by: Helm data: managedFederationApiKey: "UkVEQUNURUQ=" @@ -90,10 +90,10 @@ kind: ConfigMap metadata: name: release-name-router labels: - helm.sh/chart: router-1.31.0-alpha.4 + helm.sh/chart: router-1.31.0 app.kubernetes.io/name: router app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "v1.31.0-alpha.4" + app.kubernetes.io/version: "v1.31.0" app.kubernetes.io/managed-by: Helm data: configuration.yaml: | @@ -117,10 +117,10 @@ kind: Service metadata: name: release-name-router labels: - helm.sh/chart: router-1.31.0-alpha.4 + helm.sh/chart: router-1.31.0 app.kubernetes.io/name: router app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "v1.31.0-alpha.4" + app.kubernetes.io/version: "v1.31.0" app.kubernetes.io/managed-by: Helm spec: type: ClusterIP @@ -143,10 +143,10 @@ kind: Deployment metadata: name: release-name-router labels: - helm.sh/chart: router-1.31.0-alpha.4 + helm.sh/chart: router-1.31.0 app.kubernetes.io/name: router app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "v1.31.0-alpha.4" + app.kubernetes.io/version: "v1.31.0" app.kubernetes.io/managed-by: Helm annotations: @@ -174,7 +174,7 @@ spec: - name: router securityContext: {} - image: "ghcr.io/apollographql/router:v1.31.0-alpha.4" + image: "ghcr.io/apollographql/router:v1.31.0" imagePullPolicy: IfNotPresent args: - --hot-reload @@ -226,10 +226,10 @@ kind: Pod metadata: name: "release-name-router-test-connection" labels: - helm.sh/chart: router-1.31.0-alpha.4 + helm.sh/chart: router-1.31.0 app.kubernetes.io/name: router app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "v1.31.0-alpha.4" + app.kubernetes.io/version: "v1.31.0" app.kubernetes.io/managed-by: Helm annotations: "helm.sh/hook": test diff --git a/docs/source/federation-version-support.mdx b/docs/source/federation-version-support.mdx index a44f7f12ef..f72855fb1f 100644 --- a/docs/source/federation-version-support.mdx +++ b/docs/source/federation-version-support.mdx @@ -27,7 +27,15 @@ The table below shows which version of federation each router release is compile - v1.29.1 and later (see latest releases) + v1.30.0 and later (see latest releases) + + + 2.5.4 + + + + + ️v1.29.1 2.5.3 diff --git a/helm/chart/router/Chart.yaml b/helm/chart/router/Chart.yaml index 1c70ef5a8a..eddbddcde9 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.31.0-alpha.4 +version: 1.31.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.31.0-alpha.4" +appVersion: "v1.31.0" diff --git a/helm/chart/router/README.md b/helm/chart/router/README.md index 939ce9ec39..7aec5b87f5 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.31.0-alpha.4](https://img.shields.io/badge/Version-1.31.0--alpha.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.31.0-alpha.4](https://img.shields.io/badge/AppVersion-v1.31.0--alpha.4-informational?style=flat-square) +![Version: 1.31.0](https://img.shields.io/badge/Version-1.31.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.31.0](https://img.shields.io/badge/AppVersion-v1.31.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.31.0-alpha.4 +helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.31.0 ``` ## Install Chart @@ -19,7 +19,7 @@ helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.31.0-alpha. **Important:** only helm3 is supported ```console -helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.31.0-alpha.4 --values my-values.yaml +helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.31.0 --values my-values.yaml ``` _See [configuration](#configuration) below._ @@ -94,4 +94,4 @@ helm show values oci://ghcr.io/apollographql/helm-charts/router | virtualservice.enabled | bool | `false` | | ---------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0) +Autogenerated from chart metadata using [helm-docs v1.11.2](https://github.com/norwoodj/helm-docs/releases/v1.11.2) diff --git a/licenses.html b/licenses.html index a77c5f6ba3..e889944a23 100644 --- a/licenses.html +++ b/licenses.html @@ -12058,9 +12058,9 @@

Used by:

-
Copyright 2021 Apollo Graph, Inc.
+                
Elastic License 2.0
 
-Elastic License 2.0
+URL: https://www.elastic.co/licensing/elastic-license
 
 ## Acceptance
 
@@ -12151,8 +12151,6 @@ 

Used by:

**use** means anything you do with the software requiring one of your licenses. **trademark** means trademarks, service marks, and similar rights. - ---------------------------------------------------------------------------------
  • diff --git a/scripts/install.sh b/scripts/install.sh index 743f1ee55f..ec5ed276b2 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.31.0-alpha.4" +PACKAGE_VERSION="v1.31.0" download_binary() { downloader --check