grpc / grpc/grpc-node

Support wildcard domains in no_grpc_proxy/no_proxy proxy configurations.

Open
#1,293 1 comment 3 reactions 0 assignees View on GitHub
feature request package: @grpc/grpc-js
Dominant language
TypeScript
Stars
4.8k
Forks
716
Avg merge
2d 3h
Merged PRs (30d)
10

Description

PR #1243 introduced proxy support, and preemptively both the `no_grpc_proxy` and `no_proxy` configurations which dictate what hosts/domains should _not_ be proxied. Currently, only strict equality is used to test if a host should not be proxied. See https://github.com/grpc/grpc-node/blob/%40grpc/grpc-js%400.7.0/packages/grpc-js/src/http_proxy.ts#L119

This is great for applications that require mixed proxy usage (requests both internal and external). However, within an organization having an abundance of internal sub-domains (e.g. foo.example.com, bar.example.com, etc), every single known sub-domain must be included in the `no_grpc_proxy`/`no_proxy` list.

### Solution
Support conventional wildcard entries within `no_grpc_proxy`/`no_proxy`. There are two ways to obtain multi-level sub-domain matching, whereby both have the same effect:

- `*.example.com`: use `*`, although less common
- `.example.com`: just prefix the domain with a `.`, most common

In both of these cases, `foo.example.com`, `bar.qux.example.com`, and `example.com` would match.

Secondarily, using `no_proxy='*'` effectively disables any and all proxy configurations. This is seen in `request` (linked below).

### Additional references
request: https://github.com/request/request/pull/1096
curl: https://github.com/curl/curl/issues/1208#issuecomment-272837735
GNU Emacs: https://www.gnu.org/software/emacs/manual/html_node/url/Proxies.html

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.