diff --git a/.changesets/exp_geal_move_cacheability_metrics.md b/.changesets/exp_geal_move_cacheability_metrics.md deleted file mode 100644 index 7537ab5a6e..0000000000 --- a/.changesets/exp_geal_move_cacheability_metrics.md +++ /dev/null @@ -1,10 +0,0 @@ -### Move cacheability metrics to the entity cache plugin ([Issue #4253](https://github.com/apollographql/router/issues/4253)) - -The metric was generated in the telemetry plugin before, but it was not very convenient to keep it there. This adds more configuration: -- enable or disable the metrics -- set the metrics storage TTL (default is 60s) -- the metric's typename attribute is disabled by default. Activating it can greatly increase the cardinality - -This also includes some cleanup and performance improvements - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4469 \ No newline at end of file diff --git a/.changesets/feat_bnjjj_fix_4425.md b/.changesets/feat_bnjjj_fix_4425.md deleted file mode 100644 index a2f6546579..0000000000 --- a/.changesets/feat_bnjjj_fix_4425.md +++ /dev/null @@ -1,40 +0,0 @@ -### Add a new selector to get all baggage key values in span attributes ([Issue #4425](https://github.com/apollographql/router/issues/4425)) - -If you have several baggage items and would like to add all of them directly as span attributes, for example `baggage: my_item=test, my_second_item=bar` will add 2 span attributes `my_item=test` and `my_second_item=bar`. - -Example of configuration: - -```yaml -telemetry: - instrumentation: - spans: - router: - attributes: - baggage: true -``` - - - -**Checklist** - -Complete the checklist (and note appropriate exceptions) before the PR is marked ready-for-review. - -- [x] Changes are compatible[^1] -- [x] Documentation[^2] completed -- [x] Performance impact assessed and acceptable -- Tests added and passing[^3] - - [x] Unit Tests - - [x] Integration Tests - - [x] 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 [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/4537 \ No newline at end of file diff --git a/.changesets/feat_bnjjj_fix_4561.md b/.changesets/feat_bnjjj_fix_4561.md deleted file mode 100644 index 2c1690ffc9..0000000000 --- a/.changesets/feat_bnjjj_fix_4561.md +++ /dev/null @@ -1,20 +0,0 @@ -### Add static attribute on specific span in telemetry settings ([Issue #4561](https://github.com/apollographql/router/issues/4561)) - -Example of configuration: - -```yaml -telemetry: - instrumentation: - spans: - router: - attributes: - "my_attribute": "constant_value" - supergraph: - attributes: - "my_attribute": "constant_value" - subgraph: - attributes: - "my_attribute": "constant_value" -``` - -By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/4566 \ No newline at end of file diff --git a/.changesets/feat_geal_plugin_init_spans.md b/.changesets/feat_geal_plugin_init_spans.md deleted file mode 100644 index d501289e2f..0000000000 --- a/.changesets/feat_geal_plugin_init_spans.md +++ /dev/null @@ -1,5 +0,0 @@ -### Create a trace during router creation and plugin initialization ([Issue #4472](https://github.com/apollographql/router/issues/4472)) - -When the router starts or reload, it will now generate a trace with spans for query planner creation, schema parsing, plugin initialization and request pipeline creation. This will help in debugging any issue during startup, especially in plugins creation - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4480 \ No newline at end of file diff --git a/.changesets/feat_progressive_override.md b/.changesets/feat_progressive_override.md deleted file mode 100644 index cba0859c33..0000000000 --- a/.changesets/feat_progressive_override.md +++ /dev/null @@ -1,11 +0,0 @@ -### Introduce support for progressive @override ([PR #4521](https://github.com/apollographql/router/pull/4521)) - -The change brings support for progressive @override, which allows dynamically overriding root fields and entity fields in the schema. This feature is enterprise only and requires a license key to be used. - -A new `label` argument is added to the `@override` directive in order to indicate the field is dynamically overridden. Labels can come in two forms: -1) String matching the form `percent(x)`: The router resolves these labels based on the `x` value. For example, `percent(50)` will route 50% of requests to the overridden field and 50% of requests to the original field. -2) Arbitrary string matching the regex `^[a-zA-Z][a-zA-Z0-9_-:./]*$`: These labels are expected to be resolved externally via coprocessor. A coprocessor a supergraph request hook can inspect and modify the context of a request in order to inform the router which labels to use during query planning. - -Please consult the docs for more information on how to use this feature and how to implement a coprocessor for label resolution. - -By [@TrevorScheer](https://github.com/TrevorScheer) in https://github.com/apollographql/router/pull/4521 \ No newline at end of file diff --git a/.changesets/feat_telemetry_header_format.md b/.changesets/feat_telemetry_header_format.md deleted file mode 100644 index 7ff1f301e5..0000000000 --- a/.changesets/feat_telemetry_header_format.md +++ /dev/null @@ -1,21 +0,0 @@ -### Specify Trace ID Formatting ([PR #4530](https://github.com/apollographql/router/pull/4530)) - -This adds the ability to specify the format of the trace ID in the response headers of the supergraph service. - -An example configuration making use of this feature is shown below: -```yaml -telemetry: - apollo: - client_name_header: name_header - client_version_header: version_header - exporters: - tracing: - experimental_response_trace_id: - enabled: true - header_name: trace_id - format: decimal # Optional, defaults to hexadecimal -``` - -If the format is not specified, then the trace ID will continue to be in hexadecimal format. - -By [@nicholascioli](https://github.com/nicholascioli) in https://github.com/apollographql/router/pull/4530 diff --git a/.changesets/fix_crystal_yell_juggle_craft.md b/.changesets/fix_crystal_yell_juggle_craft.md deleted file mode 100644 index 49464265b7..0000000000 --- a/.changesets/fix_crystal_yell_juggle_craft.md +++ /dev/null @@ -1,8 +0,0 @@ -### Order HPA target so that kubernetes does not rewrite ([Issue #4435](https://github.com/apollographql/router/issues/4435)) - -This update addresses an OutOfSync issue in ArgoCD applications when Horizontal Pod Autoscaler (HPA) is configured with both memory and CPU limits. -Previously, the live and desired manifests within Kubernetes were not consistently sorted, leading to persistent OutOfSync states in ArgoCD. -This change implements a sorting mechanism for HPA targets within the Helm chart, ensuring alignment with Kubernetes' expected order. -This fix proactively resolves the sync discrepancies while using HPA, circumventing the need to wait for Kubernetes' issue resolution (kubernetes/kubernetes#74099). - -By [@cyberhck](https://github.com/cyberhck) in https://github.com/apollographql/router/pull/4436 diff --git a/.changesets/fix_geal_event_sampling.md b/.changesets/fix_geal_event_sampling.md deleted file mode 100644 index 1906554b5a..0000000000 --- a/.changesets/fix_geal_event_sampling.md +++ /dev/null @@ -1,5 +0,0 @@ -### Reactivate log events in traces ([PR #4486](https://github.com/apollographql/router/pull/4486)) - -This fixes a regression introduced in #2999, where events were not sent with traces anymore due to too aggressive sampling - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4486 \ No newline at end of file diff --git a/.changesets/fix_geal_headers_propagation_filter.md b/.changesets/fix_geal_headers_propagation_filter.md deleted file mode 100644 index 7d4b2a1bbf..0000000000 --- a/.changesets/fix_geal_headers_propagation_filter.md +++ /dev/null @@ -1,18 +0,0 @@ -### Fix header propagation issues ([Issue #4312](https://github.com/apollographql/router/issues/4312)), ([Issue #4398](https://github.com/apollographql/router/issues/4398)) - -This fixes two header propagation issues: -* if a client request header has already been added to a subgraph request due to another header propagation rule, then it is only added once -* `Accept`, `Accept-Encoding` and `Content-Encoding` were not in the list of reserved headers that cannot be propagated. They are now in that list because those headers are set explicitely by the Router in its subgraph requests - -There is a potential regression: if a router deployment was accidentally relying on header propagation to compress subgraph requests, then it will not work anymore because `Content-Encoding` is not propagated anymore. Instead it should be set up from the `traffic_shaping` section of the Router configuration: - -```yaml -traffic_shaping: - all: - compression: gzip - subgraphs: # Rules applied to requests from the router to individual subgraphs - products: - compression: identity -``` - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4535 \ No newline at end of file diff --git a/.changesets/fix_static_page_reduce_alloc.md b/.changesets/fix_static_page_reduce_alloc.md deleted file mode 100644 index a4bbfbe165..0000000000 --- a/.changesets/fix_static_page_reduce_alloc.md +++ /dev/null @@ -1,7 +0,0 @@ -### Store static pages in `Bytes` structure to avoid expensive allocation per request ([PR #4528](https://github.com/apollographql/router/pull/4528)) - -The `CheckpointService` created by the `StaticPageLayer` caused a non-insignificant amount of memory to be allocated on every request. The service stack gets cloned on every request, and so does the rendered template. - -The template is now stored in a `Bytes` struct instead which is cheap to clone. - -By [@xuorig](https://github.com/xuorig) in https://github.com/apollographql/router/pull/4528 \ No newline at end of file diff --git a/.changesets/fix_telemetry_env_var_inconsistency.md b/.changesets/fix_telemetry_env_var_inconsistency.md deleted file mode 100644 index d455a4c106..0000000000 --- a/.changesets/fix_telemetry_env_var_inconsistency.md +++ /dev/null @@ -1,6 +0,0 @@ -### Fix inconsistency in environment variable parsing for telemetry ([Issue #3203](https://github.com/apollographql/router/issues/ISSUE_NUMBER)) - -Previously, the router would complain when using the rover recommendation of `APOLLO_TELEMETRY_DISABLED=1` environment -variable. Now any non-falsey value can be used, such as 1, yes, on, etc.. - -By [@nicholascioli](https://github.com/nicholascioli) in https://github.com/apollographql/router/pull/4549 diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c10416337..22c4ae21b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,167 @@ 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.39.0] - 2024-02-05 + +## ๐Ÿš€ Features + +### Introduce support for progressive `@override` ([PR #4521](https://github.com/apollographql/router/pull/4521)) + +> โš ๏ธ This is 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 by signing up for a free Enterprise trial. + +The change brings support for progressive `@override`, which allows dynamically overriding root fields and entity fields in the schema. This feature is enterprise only and requires a license key to be used. + +A new `label` argument is added to the `@override` directive in order to indicate the field is dynamically overridden. Labels can come in two forms: +1) String matching the form `percent(x)`: The router resolves these labels based on the `x` value. For example, `percent(50)` will route 50% of requests to the overridden field and 50% of requests to the original field. +2) Arbitrary string matching the regex `^[a-zA-Z][a-zA-Z0-9_-:./]*$`: These labels are expected to be resolved externally via coprocessor. A supergraph request hook can inspect and modify the context of a request in order to inform the router which labels to use during query planning. + +Please consult the docs for more information on how to use this feature and how to implement a coprocessor for label resolution. + +By [@TrevorScheer](https://github.com/TrevorScheer) in https://github.com/apollographql/router/pull/4521 + +### Specify trace ID formatting ([PR #4530](https://github.com/apollographql/router/pull/4530)) + +You can specify the format of the trace ID in the response headers of the supergraph service. + +An example configuration using this feature: +```yaml +telemetry: + apollo: + client_name_header: name_header + client_version_header: version_header + exporters: + tracing: + experimental_response_trace_id: + enabled: true + header_name: trace_id + format: decimal # Optional, defaults to hexadecimal +``` + +If the format is not specified, then the trace ID will continue to be in hexadecimal format. + +By [@nicholascioli](https://github.com/nicholascioli) in https://github.com/apollographql/router/pull/4530 + +### Add selector to get all baggage key values in span attributes ([Issue #4425](https://github.com/apollographql/router/issues/4425)) + +Previously, baggage items were configured as standard attributes in `router.yaml`, and adding a new baggage item required a configuration update and router rerelease. + +This release supports a new configuration that enables baggage items to be added automatically as span attributes. + +If you have several baggage items and would like to add all of them directly as span attributes (for example, `baggage: my_item=test, my_second_item=bar`), setting `baggage: true` will add automatically add two span attributes, `my_item=test` and `my_second_item=bar`. + +An example configuration: + +```yaml +telemetry: + instrumentation: + spans: + router: + attributes: + baggage: true +``` + + +By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/4537 + +### Create a trace during router creation and plugin initialization ([Issue #4472](https://github.com/apollographql/router/issues/4472)) + +When the router starts or reloads, it will now generate a trace with spans for query planner creation, schema parsing, plugin initialisation and request pipeline creation. This will help debugging any issue during startup, especially during plugins creation. + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4480 + +### Allow adding static attributes on specific spans in telemetry settings ([Issue #4561](https://github.com/apollographql/router/issues/4561)) + +It is now possible to add static attributes to spans, defined in the configuration file. + +Example of configuration: + +```yaml +telemetry: + instrumentation: + spans: + router: + attributes: + "my_attribute": "constant_value" + supergraph: + attributes: + "my_attribute": "constant_value" + subgraph: + attributes: + "my_attribute": "constant_value" +``` + +By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/4566 + +## ๐Ÿ› Fixes + +### Order HPA targets to resolve OutOfSync states ([Issue #4435](https://github.com/apollographql/router/issues/4435)) + +This update addresses an `OutOfSync` issue in ArgoCD applications when Horizontal Pod Autoscaler (HPA) is configured with both memory and CPU limits. +Previously, the live and desired manifests within Kubernetes were not consistently sorted, leading to persistent `OutOfSync` states in ArgoCD. +This change implements a sorting mechanism for HPA targets within the Helm chart, ensuring alignment with Kubernetes' expected order. +This fix proactively resolves the sync discrepancies while using HPA, circumventing the need to wait for Kubernetes' issue resolution (kubernetes/kubernetes#74099). + +By [@cyberhck](https://github.com/cyberhck) in https://github.com/apollographql/router/pull/4436 + +### Reactivate log events in traces ([PR #4486](https://github.com/apollographql/router/pull/4486)) + +This fixes a regression introduced in #2999, where events were not sent with traces anymore due to too aggressive sampling + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4486 + +### Fix inconsistency in environment variable parsing for telemetry ([Issue #3203](https://github.com/apollographql/router/issues/ISSUE_NUMBER)) + +Previously, the router would complain when using the rover recommendation of `APOLLO_TELEMETRY_DISABLED=1` environment +variable. Now any non-falsey value can be used, such as 1, yes, on, etc.. + +By [@nicholascioli](https://github.com/nicholascioli) in https://github.com/apollographql/router/pull/4549 + +### Store static pages in `Bytes` structure to avoid expensive allocation per request ([PR #4528](https://github.com/apollographql/router/pull/4528)) + +The `CheckpointService` created by the `StaticPageLayer` caused a non-insignificant amount of memory to be allocated on every request. The service stack gets cloned on every request, and so does the rendered template. + +The template is now stored in a `Bytes` struct instead which is cheap to clone. + +By [@xuorig](https://github.com/xuorig) in https://github.com/apollographql/router/pull/4528 + +### Fix header propagation issues ([Issue #4312](https://github.com/apollographql/router/issues/4312)), ([Issue #4398](https://github.com/apollographql/router/issues/4398)) + +This fixes two header propagation issues: +* if a client request header has already been added to a subgraph request due to another header propagation rule, then it is only added once +* `Accept`, `Accept-Encoding` and `Content-Encoding` were not in the list of reserved headers that cannot be propagated. They are now in that list because those headers are set explicitely by the Router in its subgraph requests + +There is a potential change in behavior: if a router deployment was accidentally relying on header propagation to compress subgraph requests, then it will not work anymore because `Content-Encoding` is not propagated anymore. Instead it should be set up from the `traffic_shaping` section of the Router configuration: + +```yaml +traffic_shaping: + all: + compression: gzip + subgraphs: # Rules applied to requests from the router to individual subgraphs + products: + compression: identity +``` + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4535 + +## ๐Ÿงช Experimental + +### Move cacheability metrics to the entity cache plugin ([Issue #4253](https://github.com/apollographql/router/issues/4253)) + +Cacheability metrics have been moved from the telemetry plugin to the entity cache plugin. + +New configuration has been added: +- Enabling or disabling the metrics +- Setting the metrics storage TTL (default is 60s) +- Disabling the metric's typename attribute by default. (Activating it can greatly increase the cardinality.) + +Cleanup and performance improvements have also been implemented. + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4469 + + + # [1.38.0] - 2024-01-19 ## ๐Ÿš€ Features diff --git a/Cargo.lock b/Cargo.lock index 859b2461fa..85501c528f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -258,7 +258,7 @@ dependencies = [ [[package]] name = "apollo-router" -version = "1.38.0" +version = "1.39.0" dependencies = [ "access-json", "anyhow", @@ -413,7 +413,7 @@ dependencies = [ [[package]] name = "apollo-router-benchmarks" -version = "1.38.0" +version = "1.39.0" dependencies = [ "apollo-parser", "apollo-router", @@ -429,7 +429,7 @@ dependencies = [ [[package]] name = "apollo-router-scaffold" -version = "1.38.0" +version = "1.39.0" dependencies = [ "anyhow", "cargo-scaffold", diff --git a/apollo-router-benchmarks/Cargo.toml b/apollo-router-benchmarks/Cargo.toml index affbcf5781..e3a20d4e62 100644 --- a/apollo-router-benchmarks/Cargo.toml +++ b/apollo-router-benchmarks/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-benchmarks" -version = "1.38.0" +version = "1.39.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 71d88af1b4..5622ca124d 100644 --- a/apollo-router-scaffold/Cargo.toml +++ b/apollo-router-scaffold/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-scaffold" -version = "1.38.0" +version = "1.39.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 d14ea1662c..8f237b8cc0 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.38.0" +apollo-router = "1.39.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 619577525a..a0adb00fdb 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.38.0" } +apollo-router-scaffold = { git = "https://github.com/apollographql/router.git", tag = "v1.39.0" } {{/if}} {{/if}} anyhow = "1.0.58" diff --git a/apollo-router/Cargo.toml b/apollo-router/Cargo.toml index d0152845f9..befb57e8ee 100644 --- a/apollo-router/Cargo.toml +++ b/apollo-router/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router" -version = "1.38.0" +version = "1.39.0" authors = ["Apollo Graph, Inc. "] repository = "https://github.com/apollographql/router/" documentation = "https://docs.rs/apollo-router" diff --git a/apollo-router/src/plugins/progressive_override/mod.rs b/apollo-router/src/plugins/progressive_override/mod.rs index f29591ce93..a339e99d35 100644 --- a/apollo-router/src/plugins/progressive_override/mod.rs +++ b/apollo-router/src/plugins/progressive_override/mod.rs @@ -214,7 +214,7 @@ impl Plugin for ProgressiveOverridePlugin { if !relevant_labels.is_empty() { u64_counter!( - "apollo.router.schema.override.query", + "apollo.router.operations.override.query", "query with overridden fields", 1, query.label_count = relevant_labels.len() as i64 @@ -223,7 +223,7 @@ impl Plugin for ProgressiveOverridePlugin { if !externally_overridden_labels.is_empty() { u64_counter!( - "apollo.router.schema.override.external", + "apollo.router.operations.override.external", "override label(s) resolved by coprocessor/rhai", 1 ); diff --git a/apollo-router/src/plugins/progressive_override/tests.rs b/apollo-router/src/plugins/progressive_override/tests.rs index 42e31e2014..c8853a9c3f 100644 --- a/apollo-router/src/plugins/progressive_override/tests.rs +++ b/apollo-router/src/plugins/progressive_override/tests.rs @@ -314,7 +314,7 @@ async fn query_with_overridden_labels_metrics() { async { query_with_labels("{ percent100 { foo } }", vec![]).await; assert_counter!( - "apollo.router.schema.override.query", + "apollo.router.operations.override.query", 1, query.label_count = 2 ); @@ -328,11 +328,11 @@ async fn query_with_externally_resolved_labels_metrics() { async { query_with_labels("{ percent100 { foo } }", vec!["foo"]).await; assert_counter!( - "apollo.router.schema.override.query", + "apollo.router.operations.override.query", 1, query.label_count = 2 ); - assert_counter!("apollo.router.schema.override.external", 1); + assert_counter!("apollo.router.operations.override.external", 1); } .with_metrics() .await; diff --git a/dockerfiles/tracing/docker-compose.datadog.yml b/dockerfiles/tracing/docker-compose.datadog.yml index 5b7cd5cc53..81957da4e5 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.38.0 + image: ghcr.io/apollographql/router:v1.39.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 664169e364..f44b65d738 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.38.0 + image: ghcr.io/apollographql/router:v1.39.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 32fdded8ef..aec92e665a 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.38.0 + image: ghcr.io/apollographql/router:v1.39.0 volumes: - ./supergraph.graphql:/etc/config/supergraph.graphql - ./router/zipkin.router.yaml:/etc/config/configuration.yaml diff --git a/docs/source/federation-version-support.mdx b/docs/source/federation-version-support.mdx index 1d555e034e..dc40a79af5 100644 --- a/docs/source/federation-version-support.mdx +++ b/docs/source/federation-version-support.mdx @@ -35,7 +35,15 @@ The table below shows which version of federation each router release is compile - v1.38.0 and later (see latest releases) + v1.39.0 and later (see latest releases) + + + 2.7.1 + + + + + v1.38.0 2.6.3 diff --git a/helm/chart/router/Chart.yaml b/helm/chart/router/Chart.yaml index 3152cff521..4be417fc14 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.38.0 +version: 1.39.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.38.0" +appVersion: "v1.39.0" diff --git a/helm/chart/router/README.md b/helm/chart/router/README.md index 73b0df2fc0..38d4ecc530 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.38.0](https://img.shields.io/badge/Version-1.38.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.38.0](https://img.shields.io/badge/AppVersion-v1.38.0-informational?style=flat-square) +![Version: 1.39.0](https://img.shields.io/badge/Version-1.39.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.39.0](https://img.shields.io/badge/AppVersion-v1.39.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.38.0 +helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.39.0 ``` ## Install Chart @@ -19,7 +19,7 @@ helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.38.0 **Important:** only helm3 is supported ```console -helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.38.0 --values my-values.yaml +helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.39.0 --values my-values.yaml ``` _See [configuration](#configuration) below._ diff --git a/licenses.html b/licenses.html index 3de8bc3449..1a4886c3c4 100644 --- a/licenses.html +++ b/licenses.html @@ -44,13 +44,13 @@

Third Party Licenses

Overview of licenses:

    -
  • Apache License 2.0 (514)
  • -
  • MIT License (161)
  • -
  • BSD 3-Clause "New" or "Revised" License (12)
  • -
  • ISC License (11)
  • -
  • BSD 2-Clause "Simplified" License (3)
  • +
  • MIT License (97)
  • +
  • Apache License 2.0 (67)
  • +
  • BSD 3-Clause "New" or "Revised" License (10)
  • +
  • ISC License (7)
  • Elastic License 2.0 (3)
  • Mozilla Public License 2.0 (3)
  • +
  • BSD 2-Clause "Simplified" License (2)
  • Creative Commons Zero v1.0 Universal (2)
  • OpenSSL License (2)
  • Unicode License Agreement - Data Files and Software (2016) (1)
  • @@ -62,22 +62,18 @@

    All license text:

    Apache License 2.0

    Used by:

                                      Apache License
    @@ -874,6 +870,7 @@ 

    Used by:

    Apache License 2.0

    Used by:

      +
    • aws-sigv4
    • encode_unicode
    • encoding_rs
    • fragile
    • @@ -4228,6 +4225,7 @@

      Apache License 2.0

      Used by:

                                      Apache License
      @@ -7920,6 +7918,7 @@ 

      Used by:

    • quote
    • regex
    • regex-automata
    • +
    • regex-lite
    • regex-syntax
    • regex-syntax
    • rowan
    • @@ -12457,6 +12456,7 @@

      BSD 3-Clause "New" or "Revised" Licens

      Used by:

      Copyright (c) <year> <owner>. 
       
      @@ -12993,7 +12993,6 @@ 

      ISC License

      Used by:

         Copyright 2015-2016 Brian Smith.
       
      @@ -13014,7 +13013,6 @@ 

      ISC License

      Used by:

      /* Copyright (c) 2015, Google Inc.
        *
      @@ -13120,6 +13118,7 @@ 

      ISC License

      Used by:

      ISC License:
      @@ -13467,7 +13466,6 @@ 

      MIT License

      Used by:

      Copyright (c) 2015-2016 the fiat-crypto authors (see
       https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS).
      @@ -14941,6 +14939,7 @@ 

      Used by:

    • difflib
    • jsonschema
    • lazy-regex-proc_macros
    • +
    • ring
    • serde_v8
    • v8
    • valuable
    • @@ -16738,7 +16737,6 @@

      OpenSSL License

      Used by:

      /* ====================================================================
        * Copyright (c) 1998-2011 The OpenSSL Project.  All rights reserved.
      @@ -16793,6 +16791,62 @@ 

      Used by:

      * Hudson (tjh@cryptsoft.com). * */
      + +
    • +

      OpenSSL License

      +

      Used by:

      + +
      OpenSSL License
      +
      +Copyright (c) 1998-2008 The OpenSSL Project. All rights reserved.
      +
      +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
      +
      +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
      +
      +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
      +
      +3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
      +
      +4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org.
      +
      +5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project.
      +
      +6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)"
      +
      +THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      +
      +This product includes cryptographic software written by Eric Young (eay@cryptsoft.com). This product includes software written by Tim Hudson (tjh@cryptsoft.com).
      +
      +
      +Original SSLeay License
      +
      +Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) All rights reserved.
      +
      +This package is an SSL implementation written by Eric Young (eay@cryptsoft.com). The implementation was written so as to conform with Netscapes SSL.
      +
      +This library is free for commercial and non-commercial use as long as the following conditions are aheared to. The following conditions apply to all code found in this distribution, be it the RC4, RSA, lhash, DES, etc., code; not just the SSL code. The SSL documentation included with this distribution is covered by the same copyright terms except that the holder is Tim Hudson (tjh@cryptsoft.com).
      +
      +Copyright remains Eric Young's, and as such any Copyright notices in the code are not to be removed. If this package is used in a product, Eric Young should be given attribution as the author of the parts of the library used. This can be in the form of a textual message at program startup or in documentation (online or textual) provided with the package.
      +
      +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
      +
      +1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer.
      +
      +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
      +
      +3. All advertising materials mentioning features or use of this software must display the following acknowledgement:
      +"This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)"
      +The word 'cryptographic' can be left out if the rouines from the library being used are not cryptographic related :-).
      +
      +4. If you include any Windows specific code (or a derivative thereof) from the apps directory (application code) you must include an acknowledgement: "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
      +
      +THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      +
      +The licence and distribution terms for any publically available version or derivative of this code cannot be changed. i.e. this code cannot simply be copied and put under another distribution licence [including the GNU Public Licence.]
      +
    • Unicode License Agreement - Data Files and Software (2016)

      diff --git a/scripts/install.sh b/scripts/install.sh index 61e690338d..845eca391a 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.38.0" +PACKAGE_VERSION="v1.39.0" download_binary() { downloader --check