Skip to content

v0.1.0-alpha.10

Compare
Choose a tag to compare
@apollo-bot2 apollo-bot2 released this 21 Mar 11:43
· 4523 commits to main since this release
89fdbdc

❗ BREAKING ❗

  • Header propagation remove's name is now named (PR #674)

    This merely renames the remove options' name setting to be instead named to be a bit more intuitively named and consistent with its partner configuration, propagate.

    Previous configuration

      # Remove a named header
      - remove:
        name: "Remove" # Was: "name"

    New configuration

      # Remove a named header
      - remove:
        named: "Remove" # Now: "named"
  • Command-line flag vs Environment variable precedence changed (PR #693)

    For logging related verbosity overrides, the RUST_LOG environment variable no longer takes precedence over the command line argument. The full order of precedence is now command-line argument overrides environment variable overrides the default setting.

πŸš€ Features

  • Forbid mutations plugin (PR #641)

    The forbid mutations plugin allows you to configure the router so that it disallows mutations. Assuming none of your query requests are mutating data or changing state (they shouldn't!) this plugin can be used to effectively make your graph read-only. This can come in handy when testing the router, for example, if you are mirroring/shadowing traffic when trying to validate a Gateway to Router migration! 😸

  • ⚠️ Add experimental Rhai plugin (PR #484)

    Add an experimental core plugin to be able to extend Apollo Router functionality using Rhai script. This allows users to write their own *_service function similar to how as you would with a native Rust plugin but without needing to compile a custom router. Rhai scripts have access to the request context and headers directly and can make simple manipulations on them.

    See our Rhai script documentation for examples and details!

πŸ› Fixes

  • Correctly set the URL path of the HTTP request in RouterRequest (Issue #699)

    Previously, we were not setting the right HTTP path on the RouterRequest so when writing a plugin with router_service you always had an empty path / on RouterRequest.

πŸ“š Documentation

  • We have incorporated a substantial amount of documentation (via many, many PRs!)

    See our improved documentation on our website.