diff --git a/.changesets/config_bryn_transmit_query_planning_metrics.md b/.changesets/config_bryn_transmit_query_planning_metrics.md deleted file mode 100644 index 6f68d54361..0000000000 --- a/.changesets/config_bryn_transmit_query_planning_metrics.md +++ /dev/null @@ -1,9 +0,0 @@ -### Sending query planner metrics to Apollo ([PR #5267](https://github.com/apollographql/router/pull/5267)) - -To allow us to measure how much of an improvement the new query planner implementation makes, we are now transmitting metrics that start with: - -`apollo.router.query_planning.*` to Apollo. - -These metrics do not leak any sensitive information, but will greatly help us to improve query planning in the Router. - -By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/5267 diff --git a/.changesets/exp_experimental_graphql_instruments.md b/.changesets/exp_experimental_graphql_instruments.md deleted file mode 100644 index a8714083a3..0000000000 --- a/.changesets/exp_experimental_graphql_instruments.md +++ /dev/null @@ -1,55 +0,0 @@ -### Add graphql instruments ([PR #5215](https://github.com/apollographql/router/pull/5215), [PR #5257](https://github.com/apollographql/router/pull/5257)) - -This PR adds experimental GraphQL instruments to telemetry. - -It makes the following possible: -``` -telemetry: - instrumentation: - instruments: - graphql: - # The number of times a field was executed (counter) - field.execution: true - - # The length of list fields (histogram) - list.length: true - - # Custom counter of field execution where field name = name - "custom_counter": - description: "count of name field" - type: counter - unit: "unit" - value: field_unit - attributes: - graphql.type.name: true - graphql.field.type: true - graphql.field.name: true - condition: - eq: - - field_name: string - - "name" - - # Custom histogram of list lengths for topProducts - "custom_histogram": - description: "histogram of review length" - type: histogram - unit: "unit" - attributes: - graphql.type.name: true - graphql.field.type: true - graphql.field.name: true - value: - field_custom: - list_length: value - condition: - eq: - - field_name: string - - "topProducts" -``` - -Note that this will have a significant performance impact which will be addressed in a following release. -Users should also be aware that large numbers of excessive metrics may be generated, and they should take care not to run up a large APM bill. - -For now, do not use these metrics in production. - -By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/5215 and https://github.com/apollographql/router/pull/5257 diff --git a/.changesets/feat_bnjjj_add_studio_trace_id_selector.md b/.changesets/feat_bnjjj_add_studio_trace_id_selector.md deleted file mode 100644 index ee70dd4c8d..0000000000 --- a/.changesets/feat_bnjjj_add_studio_trace_id_selector.md +++ /dev/null @@ -1,18 +0,0 @@ -### Add support for studio trace id in selectors and document context entry ([Issue #3803](https://github.com/apollographql/router/issues/3803)), ([Issue #5172](https://github.com/apollographql/router/issues/5172)) - -Add support for a new trace ID selector kind, the `apollo` trace ID, which represents the trace ID on [Apollo GraphOS Studio](https://studio.apollographql.com/). - -An example configuration using `trace_id: apollo`: - -```yaml -telemetry: - instrumentation: - spans: - router: - "studio.trace.id": - trace_id:: apollo -``` - -Also, router documentation has been updated with constants that are available in Rhai. - -By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/5189 diff --git a/.changesets/feat_clenfest_set_context.md b/.changesets/feat_clenfest_set_context.md deleted file mode 100644 index 9b93881772..0000000000 --- a/.changesets/feat_clenfest_set_context.md +++ /dev/null @@ -1,7 +0,0 @@ -### Add ability for router to deal with query plans with contextual rewrites ([PR #5097](https://github.com/apollographql/router/pull/5097)) - -Adds the ability for the router to execute query plans with context rewrites on them. These are generated by the @fromContext directive and are used to map a Value in the collected data JSON onto a variable which will in turn be used as an argument to a field resolver. - -โš ๏ธ This ships with a new version of federation, 2.8.0, which means distributed caches will be repopulated. - -By [@clenfest](https://github.com/clenfest) in https://github.com/apollographql/router/pull/5097 \ No newline at end of file diff --git a/.changesets/fix_bnjjj_fix_advanced_telemetry_spans.md b/.changesets/fix_bnjjj_fix_advanced_telemetry_spans.md deleted file mode 100644 index b529856928..0000000000 --- a/.changesets/fix_bnjjj_fix_advanced_telemetry_spans.md +++ /dev/null @@ -1,36 +0,0 @@ -### Fix custom attributes for spans and histogram when used with response_event ([PR #5221](https://github.com/apollographql/router/pull/5221)) - -It will fix several issues found: - -+ Custom attributes based on response_event in spans were not added properly -+ Histograms using response_event selectors were not updated properly -+ Static selector to set a static value is now able to take a Value instead of just a string -+ Static selector to set a static value is now set at every stages -+ New `on_graphql_error` selector also available on supergraph -+ You can now override the status of a span using `otel.status_code` attribute to change the status of a span - -For example, by default spans are marked in error if you have a critical error or http status code != 200, now if you want to mark your span in error if you have a graphql error in response body for example then you can have this kind of configuration: - -```yaml -telemetry: - instrumentation: - spans: - router: - attributes: - otel.status_code: - static: error - condition: - eq: - - true - - on_graphql_error: true - supergraph: - attributes: - otel.status_code: - static: error - condition: - eq: - - true - - on_graphql_error: true -``` - -By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/5221 \ No newline at end of file diff --git a/.changesets/fix_instrument_drop_condition.md b/.changesets/fix_instrument_drop_condition.md deleted file mode 100644 index ac6080f0ee..0000000000 --- a/.changesets/fix_instrument_drop_condition.md +++ /dev/null @@ -1,29 +0,0 @@ -### Instrument incremented on aborted request when condition is not fulfilled ([PR #5215](https://github.com/apollographql/router/pull/5215)) - -Previously when a telemetry instrument was dropped it would be incremented even if the associated condition was not fulfilled. For instance: - -```yaml -telemetry: - instrumentation: - instruments: - router: - http.server.active_requests: false - http.server.request.duration: false - "custom_counter": - description: "count of requests" - type: counter - unit: "unit" - value: unit - # This instrument should not be triggered as the condition is never true - condition: - eq: - - response_header: "never-received" - - static: "true" -``` - -In the case where a request was started, but the client aborted the request before the response was sent, the `response_header` would never be set to `"never-received"`, -and the instrument would not be triggered. However, the instrument would still be incremented. - -Conditions are now checked for aborted requests, and the instrument is only incremented if the condition is fulfilled. - -By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/5215 diff --git a/.changesets/fix_renee_lifecycle_metric.md b/.changesets/fix_renee_lifecycle_metric.md deleted file mode 100644 index f4f3ef00bd..0000000000 --- a/.changesets/fix_renee_lifecycle_metric.md +++ /dev/null @@ -1,5 +0,0 @@ -### Submit new metrics to Apollo ([PR #5270](https://github.com/apollographql/router/pull/5270)) - -The router submits two new metrics to Apollo: -- `apollo.router.lifecycle.api_schema` provides us feedback on the experimental Rust-based API schema generation. -- `apollo.router.lifecycle.license` provides metrics on license expiration. We use this to improve the reliability of the license check mechanism. diff --git a/CHANGELOG.md b/CHANGELOG.md index b8b6339055..49e3553c40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,216 @@ 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.48.0] - 2024-05-29 + +## ๐Ÿš€ Features + +### Demand control preview ([PR #5317](https://github.com/apollographql/router/pull/5317)) + +> โš ๏ธ This is a preview for an [Enterprise feature](https://www.apollographql.com/blog/platform/evaluating-apollo-router-understanding-free-and-open-vs-commercial-features/) of the Apollo Router. It requires an organization with a [GraphOS Enterprise plan](https://www.apollographql.com/pricing/). If your organization doesn't currently have an Enterprise plan, you can test out this functionality with a [free Enterprise trial](https://studio.apollographql.com/signup?type=enterprise-trial). +> +> As a preview feature, it's subject to our [Preview launch stage](https://www.apollographql.com/docs/resources/product-launch-stages/#preview) expectations and configuration and performance may change in future releases. + +Demand control allows you to control the cost of operations in the router, potentially rejecting requests that are too expensive that could bring down the Router or subgraphs. + +```yaml +# Demand control enabled, but in measure mode. +preview_demand_control: + enabled: true + # `measure` or `enforce` mode. Measure mode will analyze cost of operations but not reject them. + mode: measure + + strategy: + # Static estimated strategy has a fixed cost for elements and when set to enforce will reject + # requests that are estimated as too high before any execution takes place. + static_estimated: + # The assumed returned list size for operations. This should be set to the maximum number of items in graphql list + list_size: 10 + # The maximum cost of a single operation. + max: 1000 +``` + +Telemetry is emitted for demand control, including the estimated cost of operations and whether they were rejected or not. +Full details will be included in the documentation for demand control which will be finalized before the next release. + +By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/5317 + +### Ability to include Apollo Studio trace ID on tracing spans ([Issue #3803](https://github.com/apollographql/router/issues/3803)), ([Issue #5172](https://github.com/apollographql/router/issues/5172)) + +Add support for a new trace ID selector kind, the `apollo` trace ID, which represents the trace ID on [Apollo GraphOS Studio](https://studio.apollographql.com/). + +An example configuration using `trace_id: apollo`: + +```yaml +telemetry: + instrumentation: + spans: + router: + "studio.trace.id": + trace_id: apollo +``` + + +By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/5189 + +### Add ability for router to deal with query plans with contextual rewrites ([PR #5097](https://github.com/apollographql/router/pull/5097)) + +Adds the ability for the router to execute query plans with context rewrites. A context is generated by the `@fromContext` directive, and each context maps values in the collected data JSON onto a variable that's used as an argument to a field resolver. To learn more, see [Saving and referencing data with contexts](https://www.apollographql.com/docs/federation/federated-types/federated-directives#saving-and-referencing-data-with-contexts). + +โš ๏ธ Because this feature requires a new version of federation, v2.8.0, distributed caches will need to be repopulated. + +By [@clenfest](https://github.com/clenfest) in https://github.com/apollographql/router/pull/5097 + +## ๐Ÿ› Fixes + +### Fix custom attributes for spans and histogram when used with `response_event` ([PR #5221](https://github.com/apollographql/router/pull/5221)) + +This release fixes multiple issues related to spans and selectors: + +- Custom attributes based on response_event in spans are properly added. +- Histograms using response_event selectors are properly updated. +- Static selectors that set a static value are now able to take a Value. +- Static selectors that set a static value are now set at every stage. +- The `on_graphql_error` selector is available on the supergraph stage. +- The status of a span can be overridden with the `otel.status_code` attribute. + +As an example of using these fixes, the configuration below uses spans with static selectors to mark spans as errors when GraphQL errors occur: + +```yaml +telemetry: + instrumentation: + spans: + router: + attributes: + otel.status_code: + static: error + condition: + eq: + - true + - on_graphql_error: true + supergraph: + attributes: + otel.status_code: + static: error + condition: + eq: + - true + - on_graphql_error: true +``` + +By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/5221 + +### Fix instrument incrementing on aborted request when condition is not fulfilled ([PR #5215](https://github.com/apollographql/router/pull/5215)) + +Previously when a telemetry instrument was dropped it would be incremented even if the associated condition was not fulfilled. For instance: + +```yaml +telemetry: + instrumentation: + instruments: + router: + http.server.active_requests: false + http.server.request.duration: false + "custom_counter": + description: "count of requests" + type: counter + unit: "unit" + value: unit + # This instrument should not be triggered as the condition is never true + condition: + eq: + - response_header: "never-received" + - static: "true" +``` + +In the case where a request was started, but the client aborted the request before the response was sent, the `response_header` would never be set to `"never-received"`, +and the instrument would not be triggered. However, the instrument would still be incremented. + +Conditions are now checked for aborted requests, and the instrument is only incremented if the condition is fulfilled. + +By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/5215 + +## ๐Ÿ›  Maintenance + +### Send query planner and lifecycle metrics to Apollo ([PR #5267](https://github.com/apollographql/router/pull/5267), [PR #5270](https://github.com/apollographql/router/pull/5270)) + +To enable the performance measurement of the router's new query planner implementation, the router transmits to Apollo the following new metrics: +- `apollo.router.query_planning.*` provides metrics on the query planner that help improve the query planning implementation. +- `apollo.router.lifecycle.api_schema` provides feedback on the experimental Rust-based API schema generation. +- `apollo.router.lifecycle.license` provides metrics on license expiration that help improve the reliability of the license check mechanism. + +These metrics don't leak any sensitive data. + +By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/5267, [@goto-bus-stop](https://github.com/goto-bus-stop) + +## ๐Ÿ“š Documentation + +### Add Rhai API constants reference + +The Rhai API documentation now includes [a list of available constants](https://www.apollographql.com/docs/router/customizations/rhai-api/#available-constants) that are available in the Rhai runtime. + +By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/5189 +## ๐Ÿงช Experimental + +### GraphQL instruments ([PR #5215](https://github.com/apollographql/router/pull/5215), [PR #5257](https://github.com/apollographql/router/pull/5257)) + +This PR adds experimental GraphQL instruments to telemetry. + +The new instruments are configured in the following: +``` +telemetry: + instrumentation: + instruments: + graphql: + # The number of times a field was executed (counter) + field.execution: true + + # The length of list fields (histogram) + list.length: true + + # Custom counter of field execution where field name = name + "custom_counter": + description: "count of name field" + type: counter + unit: "unit" + value: field_unit + attributes: + graphql.type.name: true + graphql.field.type: true + graphql.field.name: true + condition: + eq: + - field_name: string + - "name" + + # Custom histogram of list lengths for topProducts + "custom_histogram": + description: "histogram of review length" + type: histogram + unit: "unit" + attributes: + graphql.type.name: true + graphql.field.type: true + graphql.field.name: true + value: + field_custom: + list_length: value + condition: + eq: + - field_name: string + - "topProducts" +``` + +Using the new instruments consumes significant performance resources from the router. Their performance will be improved in a future release. + +Large numbers of metrics may also be generated by using the instruments, so make sure to not incur excessively large APM costs. + +โš  Use these instruments only in development. Don't use them in production. + +By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/5215 and https://github.com/apollographql/router/pull/5257 + + + # [1.47.0] - 2024-05-21 ## ๐Ÿš€ Features diff --git a/Cargo.lock b/Cargo.lock index 64f904cf22..17e6a28d16 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -220,7 +220,7 @@ dependencies = [ [[package]] name = "apollo-federation" -version = "1.48.0-rc.0" +version = "1.48.0" dependencies = [ "apollo-compiler", "derive_more", @@ -262,7 +262,7 @@ dependencies = [ [[package]] name = "apollo-router" -version = "1.48.0-rc.0" +version = "1.48.0" dependencies = [ "access-json", "anyhow", @@ -425,7 +425,7 @@ dependencies = [ [[package]] name = "apollo-router-benchmarks" -version = "1.48.0-rc.0" +version = "1.48.0" dependencies = [ "apollo-parser", "apollo-router", @@ -441,7 +441,7 @@ dependencies = [ [[package]] name = "apollo-router-scaffold" -version = "1.48.0-rc.0" +version = "1.48.0" dependencies = [ "anyhow", "cargo-scaffold", diff --git a/apollo-federation/Cargo.toml b/apollo-federation/Cargo.toml index 2322c0d351..8b5680694d 100644 --- a/apollo-federation/Cargo.toml +++ b/apollo-federation/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-federation" -version = "1.48.0-rc.0" +version = "1.48.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 c2cb6ac49a..6bd5ca1fd5 100644 --- a/apollo-router-benchmarks/Cargo.toml +++ b/apollo-router-benchmarks/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-benchmarks" -version = "1.48.0-rc.0" +version = "1.48.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 dfc02bb4ac..289c06fc2e 100644 --- a/apollo-router-scaffold/Cargo.toml +++ b/apollo-router-scaffold/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-scaffold" -version = "1.48.0-rc.0" +version = "1.48.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 a21a16db09..054b77f5bf 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.48.0-rc.0" +apollo-router = "1.48.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 3fd1995061..b8225d2ea8 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.48.0-rc.0" } +apollo-router-scaffold = { git = "https://github.com/apollographql/router.git", tag = "v1.48.0" } {{/if}} {{/if}} anyhow = "1.0.58" diff --git a/apollo-router/Cargo.toml b/apollo-router/Cargo.toml index b53861ed0b..c129c3ef37 100644 --- a/apollo-router/Cargo.toml +++ b/apollo-router/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router" -version = "1.48.0-rc.0" +version = "1.48.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.48.0-rc.0"} +apollo-federation = { path = "../apollo-federation", version = "=1.48.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 f2c9bc8797..64047bf2d6 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.48.0-rc.0 + image: ghcr.io/apollographql/router:v1.48.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 4a5e03390b..11b98eb021 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.48.0-rc.0 + image: ghcr.io/apollographql/router:v1.48.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 9059841917..a0f0c530b7 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.48.0-rc.0 + image: ghcr.io/apollographql/router:v1.48.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 de1531d005..1774ed688d 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.48.0-rc.0 +version: 1.48.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.48.0-rc.0" +appVersion: "v1.48.0" diff --git a/helm/chart/router/README.md b/helm/chart/router/README.md index 70a5c027ab..8f415c7ac9 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.48.0-rc.0](https://img.shields.io/badge/Version-1.48.0--rc.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.48.0-rc.0](https://img.shields.io/badge/AppVersion-v1.48.0--rc.0-informational?style=flat-square) +![Version: 1.48.0](https://img.shields.io/badge/Version-1.48.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.48.0](https://img.shields.io/badge/AppVersion-v1.48.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.48.0-rc.0 +helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.48.0 ``` ## Install Chart @@ -19,7 +19,7 @@ helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.48.0-rc.0 **Important:** only helm3 is supported ```console -helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.48.0-rc.0 --values my-values.yaml +helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.48.0 --values my-values.yaml ``` _See [configuration](#configuration) below._ diff --git a/scripts/install.sh b/scripts/install.sh index 935f4e2f7b..c031121259 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.48.0-rc.0" +PACKAGE_VERSION="v1.48.0" download_binary() { downloader --check