Skip to content

Release 1.6.0#2260

Merged
BrynCooke merged 35 commits intomainfrom
1.6.0
Dec 13, 2022
Merged

Release 1.6.0#2260
BrynCooke merged 35 commits intomainfrom
1.6.0

Conversation

@BrynCooke
Copy link
Contributor

Release 1.6.0

renovate bot and others added 30 commits December 5, 2022 21:09
<!--
First, 🌠 thank you 🌠 for considering a contribution to Apollo!

Some of this information is also included in the /CONTRIBUTING.md file
at the
root of this repository.  We suggest you read it!

  https://github.com/apollographql/router/blob/HEAD/CONTRIBUTING.md

Here are some important details to keep in mind:

* ⏰ Your time is important
To save your precious time, if the contribution you are making will
take more than an hour, please make sure it has been discussed in an
        issue first. This is especially true for feature requests!

* 💡 Features
Feature requests can be created and discussed within a GitHub Issue.
Be sure to search for existing feature requests (and related issues!)
prior to opening a new request. If an existing issue covers the need,
please upvote that issue by using the 👍 emote, rather than opening a
        new issue.

* 🕷 Bug fixes
These can be created and discussed in this repository. When fixing a
bug,
please _try_ to add a test which verifies the fix. If you cannot, you
should
still submit the PR but we may still ask you (and help you!) to create a
test.

* 📖 Contribution guidelines
Follow https://github.com/apollographql/router/blob/HEAD/CONTRIBUTING.md
when submitting a pull request. Make sure existing tests still pass, and
add
        tests for all new behavior.

* ✏️ Explain your pull request
Describe the big picture of your changes here to communicate to what
        your pull request is meant to accomplish. Provide 🔗 links 🔗 to
associated issues! Documentation in the docs/ directory should be
updated
        as necessary.  Finally, a /CHANGELOG.md entry should be added.

We hope you will find this to be a positive experience! Contribution can
be
intimidating and we hope to alleviate that pain as much as possible.
Without
following these guidelines, you may be missing context that can help you
succeed
with your contribution, which is why we encourage discussion first.
Ultimately,
there is no guarantee that we will be able to merge your pull-request,
but by
following these guidelines we can try to avoid disappointment.

-->
Fixes #2213

Ran in a tight loop 1000 times would fail pretty much immediately on the single threaded runtime.
Completed 1000 runs successfully when changed to multithreaded.
#2218)

Fixes #2213

Ran in a tight loop 1000 times would fail pretty much immediately on the
single threaded runtime. Completed 1000 runs successfully when changed
to multithreaded.

<!--
First, 🌠 thank you 🌠 for considering a contribution to Apollo!

Some of this information is also included in the /CONTRIBUTING.md file
at the
root of this repository.  We suggest you read it!

  https://github.com/apollographql/router/blob/HEAD/CONTRIBUTING.md

Here are some important details to keep in mind:

* ⏰ Your time is important
To save your precious time, if the contribution you are making will
take more than an hour, please make sure it has been discussed in an
        issue first. This is especially true for feature requests!

* 💡 Features
Feature requests can be created and discussed within a GitHub Issue.
Be sure to search for existing feature requests (and related issues!)
prior to opening a new request. If an existing issue covers the need,
please upvote that issue by using the 👍 emote, rather than opening a
        new issue.

* 🕷 Bug fixes
These can be created and discussed in this repository. When fixing a
bug,
please _try_ to add a test which verifies the fix. If you cannot, you
should
still submit the PR but we may still ask you (and help you!) to create a
test.

* 📖 Contribution guidelines
Follow https://github.com/apollographql/router/blob/HEAD/CONTRIBUTING.md
when submitting a pull request. Make sure existing tests still pass, and
add
        tests for all new behavior.

* ✏️ Explain your pull request
Describe the big picture of your changes here to communicate to what
        your pull request is meant to accomplish. Provide 🔗 links 🔗 to
associated issues! Documentation in the docs/ directory should be
updated
        as necessary.  Finally, a /CHANGELOG.md entry should be added.

We hope you will find this to be a positive experience! Contribution can
be
intimidating and we hope to alleviate that pain as much as possible.
Without
following these guidelines, you may be missing context that can help you
succeed
with your contribution, which is why we encourage discussion first.
Ultimately,
there is no guarantee that we will be able to merge your pull-request,
but by
following these guidelines we can try to avoid disappointment.

-->
`@defer` spec updates mandate that a deferred response should not be sent if its path points to an element of the response that was nullified. It is also possible to cancel the execution of those deferred tasks
[ctor](https://crates.io/crates/ctor) is completely replaced with
[linkme](https://crates.io/crates/linkme).

pros:
 - no code executes before main.
 - simplified plugin registration/management

cons:
 - increased public footprint by exposing PLUGINS, etc...

This gives us a more stable foundation for plugin loading/registration
and we could (in future, not this PR) add mechanisms to exclude plugins
or re-order them or ... The main benefit is in reducing the risk of UB
creeping in to the codebase in future via plugin registration.

I believe the change is fundamentally a compatible change.
…2191)

We spawn a detached thread currently. That's probably not a good idea
since the router may terminate before the thread terminates and that
will likely cause spans to be lost.

Let's wait for the shutdown for up to 5 seconds in the `drop` and then
print a warning message if there is an issue.

The figure of 5 seconds is not configurable, but could be made so in
future if required.
The router can now be talked about as a first-class way to operationalize supergraph runtime -- we no longer need to compare it to the legacy Gateway. We also don't need people worrying about what language the router is implemented in as part of their initial exploration.
Fixes #2158

<!--
First, 🌠 thank you 🌠 for considering a contribution to Apollo!

Some of this information is also included in the /CONTRIBUTING.md file
at the
root of this repository.  We suggest you read it!

  https://github.com/apollographql/router/blob/HEAD/CONTRIBUTING.md

Here are some important details to keep in mind:

* ⏰ Your time is important
To save your precious time, if the contribution you are making will
take more than an hour, please make sure it has been discussed in an
        issue first. This is especially true for feature requests!

* 💡 Features
Feature requests can be created and discussed within a GitHub Issue.
Be sure to search for existing feature requests (and related issues!)
prior to opening a new request. If an existing issue covers the need,
please upvote that issue by using the 👍 emote, rather than opening a
        new issue.

* 🕷 Bug fixes
These can be created and discussed in this repository. When fixing a
bug,
please _try_ to add a test which verifies the fix. If you cannot, you
should
still submit the PR but we may still ask you (and help you!) to create a
test.

* 📖 Contribution guidelines
Follow https://github.com/apollographql/router/blob/HEAD/CONTRIBUTING.md
when submitting a pull request. Make sure existing tests still pass, and
add
        tests for all new behavior.

* ✏️ Explain your pull request
Describe the big picture of your changes here to communicate to what
        your pull request is meant to accomplish. Provide 🔗 links 🔗 to
associated issues! Documentation in the docs/ directory should be
updated
        as necessary.  Finally, a /CHANGELOG.md entry should be added.

We hope you will find this to be a positive experience! Contribution can
be
intimidating and we hope to alleviate that pain as much as possible.
Without
following these guidelines, you may be missing context that can help you
succeed
with your contribution, which is why we encourage discussion first.
Ultimately,
there is no guarantee that we will be able to merge your pull-request,
but by
following these guidelines we can try to avoid disappointment.

-->

Co-authored-by: bryn <bryn@apollographql.com>
Co-authored-by: Geoffroy Couprie <geoffroy@apollographql.com>
Co-authored-by: Jeremy Lempereur <jeremy.lempereur@iomentum.com>
This adds support for setting a header map key with an array. This
causes the HeaderMap key/values to be appended() to the map, rather than
inserted().

Useful when setting cookies with multiple "set-cookie" for example.

fixes: #2211
Fix expected content-type error message that had hard-coded content type
'application/graphql+json', instead of
'application/graphql-response+json' that is actually expected.
Fixes #2220

<!--
First, 🌠 thank you 🌠 for considering a contribution to Apollo!

Some of this information is also included in the /CONTRIBUTING.md file
at the
root of this repository.  We suggest you read it!

  https://github.com/apollographql/router/blob/HEAD/CONTRIBUTING.md

Here are some important details to keep in mind:

* ⏰ Your time is important
To save your precious time, if the contribution you are making will
take more than an hour, please make sure it has been discussed in an
        issue first. This is especially true for feature requests!

* 💡 Features
Feature requests can be created and discussed within a GitHub Issue.
Be sure to search for existing feature requests (and related issues!)
prior to opening a new request. If an existing issue covers the need,
please upvote that issue by using the 👍 emote, rather than opening a
        new issue.

* 🕷 Bug fixes
These can be created and discussed in this repository. When fixing a
bug,
please _try_ to add a test which verifies the fix. If you cannot, you
should
still submit the PR but we may still ask you (and help you!) to create a
test.

* 📖 Contribution guidelines
Follow https://github.com/apollographql/router/blob/HEAD/CONTRIBUTING.md
when submitting a pull request. Make sure existing tests still pass, and
add
        tests for all new behavior.

* ✏️ Explain your pull request
Describe the big picture of your changes here to communicate to what
        your pull request is meant to accomplish. Provide 🔗 links 🔗 to
associated issues! Documentation in the docs/ directory should be
updated
        as necessary.  Finally, a /CHANGELOG.md entry should be added.

We hope you will find this to be a positive experience! Contribution can
be
intimidating and we hope to alleviate that pain as much as possible.
Without
following these guidelines, you may be missing context that can help you
succeed
with your contribution, which is why we encourage discussion first.
Ultimately,
there is no guarantee that we will be able to merge your pull-request,
but by
following these guidelines we can try to avoid disappointment.

-->

Co-authored-by: bryn <bryn@apollographql.com>
Docs-only change to remove talking about Rust at the top of router docs.

The router can now be talked about as a first-class way to
operationalize supergraph runtime -- we no longer need to compare it to
the legacy Gateway. We also don't need people worrying about what
language the router is implemented in as part of their initial
exploration.
Deal with all the changes in APIs from the OtelUpgrade and other
miscellaneous improvements.

Closes #1948

- [x] Update opentelemetry
- [x] Refactor metrics
- [x] Remove spaceport
- [x] Otel config errors are only logged once.
- [x] Otel traces are not sent if `tracesIgnored` is detected.

Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
Co-authored-by: bryn <bryn@apollographql.com>
Co-authored-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
…pletely disabling metrics. (#2236)

It is set here:
https://github.com/apollographql/router/pull/2236/files#diff-37adf9e170c9b384f17336e5b5e5bf9cd94fd1d618b8969996a5ad56b635ace6R430

<!--
First, 🌠 thank you 🌠 for considering a contribution to Apollo!

Some of this information is also included in the /CONTRIBUTING.md file
at the
root of this repository.  We suggest you read it!

  https://github.com/apollographql/router/blob/HEAD/CONTRIBUTING.md

Here are some important details to keep in mind:

* ⏰ Your time is important
To save your precious time, if the contribution you are making will
take more than an hour, please make sure it has been discussed in an
        issue first. This is especially true for feature requests!

* 💡 Features
Feature requests can be created and discussed within a GitHub Issue.
Be sure to search for existing feature requests (and related issues!)
prior to opening a new request. If an existing issue covers the need,
please upvote that issue by using the 👍 emote, rather than opening a
        new issue.

* 🕷 Bug fixes
These can be created and discussed in this repository. When fixing a
bug,
please _try_ to add a test which verifies the fix. If you cannot, you
should
still submit the PR but we may still ask you (and help you!) to create a
test.

* 📖 Contribution guidelines
Follow https://github.com/apollographql/router/blob/HEAD/CONTRIBUTING.md
when submitting a pull request. Make sure existing tests still pass, and
add
        tests for all new behavior.

* ✏️ Explain your pull request
Describe the big picture of your changes here to communicate to what
        your pull request is meant to accomplish. Provide 🔗 links 🔗 to
associated issues! Documentation in the docs/ directory should be
updated
        as necessary.  Finally, a /CHANGELOG.md entry should be added.

We hope you will find this to be a positive experience! Contribution can
be
intimidating and we hope to alleviate that pain as much as possible.
Without
following these guidelines, you may be missing context that can help you
succeed
with your contribution, which is why we encourage discussion first.
Ultimately,
there is no guarantee that we will be able to merge your pull-request,
but by
following these guidelines we can try to avoid disappointment.

-->

Co-authored-by: bryn <bryn@apollographql.com>
<!--
First, 🌠 thank you 🌠 for considering a contribution to Apollo!

Some of this information is also included in the /CONTRIBUTING.md file
at the
root of this repository.  We suggest you read it!

  https://github.com/apollographql/router/blob/HEAD/CONTRIBUTING.md

Here are some important details to keep in mind:

* ⏰ Your time is important
To save your precious time, if the contribution you are making will
take more than an hour, please make sure it has been discussed in an
        issue first. This is especially true for feature requests!

* 💡 Features
Feature requests can be created and discussed within a GitHub Issue.
Be sure to search for existing feature requests (and related issues!)
prior to opening a new request. If an existing issue covers the need,
please upvote that issue by using the 👍 emote, rather than opening a
        new issue.

* 🕷 Bug fixes
These can be created and discussed in this repository. When fixing a
bug,
please _try_ to add a test which verifies the fix. If you cannot, you
should
still submit the PR but we may still ask you (and help you!) to create a
test.

* 📖 Contribution guidelines
Follow https://github.com/apollographql/router/blob/HEAD/CONTRIBUTING.md
when submitting a pull request. Make sure existing tests still pass, and
add
        tests for all new behavior.

* ✏️ Explain your pull request
Describe the big picture of your changes here to communicate to what
        your pull request is meant to accomplish. Provide 🔗 links 🔗 to
associated issues! Documentation in the docs/ directory should be
updated
        as necessary.  Finally, a /CHANGELOG.md entry should be added.

We hope you will find this to be a positive experience! Contribution can
be
intimidating and we hope to alleviate that pain as much as possible.
Without
following these guidelines, you may be missing context that can help you
succeed
with your contribution, which is why we encourage discussion first.
Ultimately,
there is no guarantee that we will be able to merge your pull-request,
but by
following these guidelines we can try to avoid disappointment.

-->

Co-authored-by: bryn <bryn@apollographql.com>
Update the reports.proto file, and change the prompt to update the file
with the correct new location.
Building off of @garypen's PR #2119, if the supergraphFile is set, add a
label to the pods with a hash of its contents. This will force new pods
to be spun up if the supergraphFile is changed so the new file will be
loaded.

Co-authored-by: Thomas O'Neill <toneill@new-innov.com>
Co-authored-by: Gary Pennington <gary@apollographql.com>
Fix #2105 
Fix #2099 

When we are using `@defer`, response formatting must apply on a subset
of the query (primary or deferred), that is reconstructed from
information provided by the query planner: a path into the response and
a subselection. Previously, the query planner did not add fragments to
that path, which resulted in reconstruction issues for queries like:

```graphql
query {
  me {
    ... on User {
      id
      fullName
      memberships {
        permission
        account {
          ... on Account @defer {
            name
          }
        }
      }
    }
  }
}
```

we would get a deferred part with the path `/me/memberships/account` and
the subselection `{ name }`. The path does not give enough information
to reconstruct the query when `me` returns an interface: we cannot know
which type is used.

The query planner 2.2.2 introduces a fragment in the path to solve that,
like `/me/... on User/memberships/account`. It also removes the
'flatten' element from deferred nodes paths, so the code has to be
adapted a bit.
Fix #1818 
Fix #2185
Blocked by #2109 (waiting for the router-bridge update)

When errors are generated during the primary execution, some of them can
be affected to
deferred responses.

To handle that, we need to:
- transmit errors from the primary query to deferred node execution
along with the primary fetches
- be able to check if an error path belongs to a deferred query

Since the error path may belong to a part of the response that was
nullified, we need to follow the error path through the primary or
deferred queries

Co-authored-by: Jeremy Lempereur <jeremy.lempereur@iomentum.com>
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
| [@apollo/gateway](https://github.com/apollographql/federation) |
[`2.2.1` ->
`2.2.2`](https://renovatebot.com/diffs/npm/@apollo%2fgateway/2.2.1/2.2.2)
|
[![age](https://badges.renovateapi.com/packages/npm/@apollo%2fgateway/2.2.2/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@apollo%2fgateway/2.2.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@apollo%2fgateway/2.2.2/compatibility-slim/2.2.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@apollo%2fgateway/2.2.2/confidence-slim/2.2.1)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [insta](https://insta.rs/)
([source](https://github.com/mitsuhiko/insta)) | `1.22.0` -> `1.23.0`
|
[![age](https://badges.renovateapi.com/packages/crate/insta/1.23.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/crate/insta/1.23.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/crate/insta/1.23.0/compatibility-slim/1.22.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/crate/insta/1.23.0/confidence-slim/1.22.0)](https://docs.renovatebot.com/merge-confidence/)
| dev-dependencies | minor |
| [serde](https://serde.rs)
([source](https://github.com/serde-rs/serde)) | `1.0.149` -> `1.0.150`
|
[![age](https://badges.renovateapi.com/packages/crate/serde/1.0.150/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/crate/serde/1.0.150/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/crate/serde/1.0.150/compatibility-slim/1.0.149)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/crate/serde/1.0.150/confidence-slim/1.0.149)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |

---

### Release Notes

<details>
<summary>apollographql/federation</summary>

###
[`v2.2.2`](https://github.com/apollographql/federation/blob/HEAD/gateway-js/CHANGELOG.md#&#8203;222)

[Compare
Source](https://github.com/apollographql/federation/compare/@apollo/gateway@2.2.1...@apollo/gateway@2.2.2)

- Fix issue with path in query plan's deferred nodes [PR
#&#8203;2281](https://github.com/apollographql/federation/pull/2281).

</details>

<details>
<summary>mitsuhiko/insta</summary>

###
[`v1.23.0`](https://github.com/mitsuhiko/insta/blob/HEAD/CHANGELOG.md#&#8203;1230)

[Compare
Source](https://github.com/mitsuhiko/insta/compare/1.22.0...1.23.0)

- Add a hint if snapshots might be skipped.
([#&#8203;314](https://github.com/mitsuhiko/insta/issues/314))
- Avoid extra newline in YAML snapshots.
([#&#8203;311](https://github.com/mitsuhiko/insta/issues/311))

</details>

<details>
<summary>serde-rs/serde</summary>

###
[`v1.0.150`](https://github.com/serde-rs/serde/releases/tag/v1.0.150)

[Compare
Source](https://github.com/serde-rs/serde/compare/v1.0.149...v1.0.150)

- Relax some trait bounds from the `Serialize` impl of `HashMap` and
`BTreeMap`
([#&#8203;2334](https://github.com/serde-rs/serde/issues/2334))
- Enable `Serialize` and `Deserialize` impls of `std::sync::atomic`
types on more platforms
([#&#8203;2337](https://github.com/serde-rs/serde/issues/2337), thanks
[@&#8203;badboy](https://github.com/badboy))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/apollographql/router).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC41MS4wIiwidXBkYXRlZEluVmVyIjoiMzQuNTQuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fixes typo in word: subgraphs

Co-authored-by: Coenen Benjamin <benjamin.coenen@hotmail.com>
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@apollo/federation](https://github.com/apollographql/federation) |
[`^0.37.0` ->
`^0.38.0`](https://renovatebot.com/diffs/npm/@apollo%2ffederation/0.37.1/0.38.1)
|
[![age](https://badges.renovateapi.com/packages/npm/@apollo%2ffederation/0.38.1/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@apollo%2ffederation/0.38.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@apollo%2ffederation/0.38.1/compatibility-slim/0.37.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@apollo%2ffederation/0.38.1/confidence-slim/0.37.1)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>apollographql/federation</summary>

###
[`v0.38.1`](https://github.com/apollographql/federation/compare/@apollo/federation@0.37.1...@apollo/federation@0.38.1)

[Compare
Source](https://github.com/apollographql/federation/compare/@apollo/federation@0.37.1...@apollo/federation@0.38.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/apollographql/router).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yMS42IiwidXBkYXRlZEluVmVyIjoiMzQuMjYuMiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
Co-authored-by: Geoffroy Couprie <geoffroy@apollographql.com>
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
| [@apollo/server](https://github.com/apollographql/apollo-server) |
[`4.2.2` ->
`4.3.0`](https://renovatebot.com/diffs/npm/@apollo%2fserver/4.2.2/4.3.0)
|
[![age](https://badges.renovateapi.com/packages/npm/@apollo%2fserver/4.3.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@apollo%2fserver/4.3.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@apollo%2fserver/4.3.0/compatibility-slim/4.2.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@apollo%2fserver/4.3.0/confidence-slim/4.2.2)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [paste](https://github.com/dtolnay/paste) | `1.0.9` -> `1.0.10` |
[![age](https://badges.renovateapi.com/packages/crate/paste/1.0.10/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/crate/paste/1.0.10/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/crate/paste/1.0.10/compatibility-slim/1.0.9)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/crate/paste/1.0.10/confidence-slim/1.0.9)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |

---

### Release Notes

<details>
<summary>apollographql/apollo-server</summary>

###
[`v4.3.0`](https://github.com/apollographql/apollo-server/blob/HEAD/packages/server/CHANGELOG.md#&#8203;430)

[Compare
Source](https://github.com/apollographql/apollo-server/compare/c27c2a90b92a3ffb8a12b68203ab50f552126c55...4be6c463140b4a1bc63a88c040f59925bad733bb)

##### Minor Changes

-
[#&#8203;7241](https://github.com/apollographql/apollo-server/pull/7241)
[`d7e9b9759`](https://github.com/apollographql/apollo-server/commit/d7e9b97595b063f1e796ec4449850a16d19e8b18)
Thanks [@&#8203;glasser](https://github.com/glasser)! - If the cache
you provide to the `persistedQueries.cache` option is created with
`PrefixingKeyValueCache.cacheDangerouslyDoesNotNeedPrefixesForIsolation`
(new in `@apollo/utils.keyvaluecache@2.1.0`), the `apq:` prefix will not
be added to cache keys. Providing such a cache to `new ApolloServer()`
throws an error.

##### Patch Changes

-
[#&#8203;7232](https://github.com/apollographql/apollo-server/pull/7232)
[`3a4823e0d`](https://github.com/apollographql/apollo-server/commit/3a4823e0d85afb51b7fb82a9f3a525c1957eab5d)
Thanks [@&#8203;glasser](https://github.com/glasser)! - Refactor the
implementation of `ApolloServerPluginDrainHttpServer`'s grace period.
This is intended to be a no-op.

-
[#&#8203;7229](https://github.com/apollographql/apollo-server/pull/7229)
[`d057e2ffc`](https://github.com/apollographql/apollo-server/commit/d057e2ffccac2afc9c3e102db64d74d895157c3d)
Thanks [@&#8203;dnalborczyk](https://github.com/dnalborczyk)! -
Improve compatibility with Cloudflare workers by avoiding the use of the
Node `util` package. This change is intended to be a no-op.

-
[#&#8203;7228](https://github.com/apollographql/apollo-server/pull/7228)
[`f97e55304`](https://github.com/apollographql/apollo-server/commit/f97e55304ceacc5f1586131ad3eb6a99912bc821)
Thanks [@&#8203;dnalborczyk](https://github.com/dnalborczyk)! -
Improve compatibility with Cloudflare workers by avoiding the use of the
Node `url` package. This change is intended to be a no-op.

-
[#&#8203;7241](https://github.com/apollographql/apollo-server/pull/7241)
[`d7e9b9759`](https://github.com/apollographql/apollo-server/commit/d7e9b97595b063f1e796ec4449850a16d19e8b18)
Thanks [@&#8203;glasser](https://github.com/glasser)! - For ease of
upgrade from the recommended configuration of Apollo Server v3.9+, you
can now pass `new ApolloServer({ cache: 'bounded' })`, which is
equivalent to not providing the `cache` option (as a bounded cache is
now the default in AS4).

</details>

<details>
<summary>dtolnay/paste</summary>

### [`v1.0.10`](https://github.com/dtolnay/paste/releases/tag/1.0.10)

[Compare
Source](https://github.com/dtolnay/paste/compare/1.0.9...1.0.10)

- Support Literal as result of paste, as in `[<1_u $bit>]` producing
`1_u32` etc.
([#&#8203;92](https://github.com/dtolnay/paste/issues/92))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/apollographql/router).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC41NC4yIiwidXBkYXRlZEluVmVyIjoiMzQuNTQuMiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Now that the Elastic-2.0 spdx is a valid identifier in the rust ecosystem, we can update the router references.
fixes: #1071 

Enough functionality to perform hot-reload on rhai scripts. It works,
but some improvements are still required:
- [x] reduce the quantity of reloads (too many events are processed
currently)
- [x] figure out the configuration story (only enable if --hot-reload is
active? always enabled?)
- [x] investigate if we can be "better" at detecting script compilation
errors
 - [x] write some documentation
 - [x] tests
 
---
configuration: no configuration. It's always enabled.
investigate: better script error detection. defer for future
enhancements.
testing: all testing was manual and involved creating/removing/modifying
scripts and visually observing changes in behaviour and logging.
BrynCooke and others added 4 commits December 13, 2022 11:04
The scaffold files were not being updated as part of the automated
release

Co-authored-by: bryn <bryn@apollographql.com>
close #2136

Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
Co-authored-by: Bryn Cooke <BrynCooke@gmail.com>
<!--
First, 🌠 thank you 🌠 for considering a contribution to Apollo!

Some of this information is also included in the /CONTRIBUTING.md file
at the
root of this repository.  We suggest you read it!

  https://github.com/apollographql/router/blob/HEAD/CONTRIBUTING.md

Here are some important details to keep in mind:

* ⏰ Your time is important
To save your precious time, if the contribution you are making will
take more than an hour, please make sure it has been discussed in an
        issue first. This is especially true for feature requests!

* 💡 Features
Feature requests can be created and discussed within a GitHub Issue.
Be sure to search for existing feature requests (and related issues!)
prior to opening a new request. If an existing issue covers the need,
please upvote that issue by using the 👍 emote, rather than opening a
        new issue.

* 🕷 Bug fixes
These can be created and discussed in this repository. When fixing a
bug,
please _try_ to add a test which verifies the fix. If you cannot, you
should
still submit the PR but we may still ask you (and help you!) to create a
test.

* 📖 Contribution guidelines
Follow https://github.com/apollographql/router/blob/HEAD/CONTRIBUTING.md
when submitting a pull request. Make sure existing tests still pass, and
add
        tests for all new behavior.

* ✏️ Explain your pull request
Describe the big picture of your changes here to communicate to what
        your pull request is meant to accomplish. Provide 🔗 links 🔗 to
associated issues! Documentation in the docs/ directory should be
updated
        as necessary.  Finally, a /CHANGELOG.md entry should be added.

We hope you will find this to be a positive experience! Contribution can
be
intimidating and we hope to alleviate that pain as much as possible.
Without
following these guidelines, you may be missing context that can help you
succeed
with your contribution, which is why we encourage discussion first.
Ultimately,
there is no guarantee that we will be able to merge your pull-request,
but by
following these guidelines we can try to avoid disappointment.

-->

Co-authored-by: bryn <bryn@apollographql.com>
fixes: #2255

We can't update the indexer until we release router 2.0, since that
would be an incompatible change, but we can add a new function which
provides access to multiple values.

Here's an illustrative snippet:

```
// Create some headers to work with:
response.headers["scalar"] = "value 1";
response.headers["array"] = ["value 1", "value 2", "value 3"];

// We still see scalar header keys as a single string
print(`scalar: ${response.headers["scalar"]}`);

// If we know we have an array use the `values` fn
print(`array: ${response.headers.values("array")}`);
print(`array[2]: ${response.headers.values("array")[2]}`);

// If we access a multi-value header using the indexer, then:
print(`array: ${response.headers["array"]}`);
// we get the existing behaviour, the first value as a string
```
@BrynCooke BrynCooke changed the base branch from main to dev December 13, 2022 12:38
Copy link
Contributor

@garypen garypen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainly looks good. Issues around versioning the helm/docker/k8s bits though.

@BrynCooke BrynCooke requested a review from garypen December 13, 2022 14:22
@BrynCooke BrynCooke changed the base branch from dev to main December 13, 2022 14:53
@BrynCooke BrynCooke enabled auto-merge December 13, 2022 14:54
@BrynCooke BrynCooke merged commit 179a746 into main Dec 13, 2022
@BrynCooke BrynCooke deleted the 1.6.0 branch December 13, 2022 15:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants