Skip to content

route level http filter chain #20867

@wbpcode

Description

@wbpcode

Title: route level http filter chain

Description:
Now, http filter chain is defined in the HCM. We will iterate every filter in the chain for every request. But in some scenes, we may need different filters for different routes. For example, the route A may need buffer filter to be enabled, and the route B may only need cache filter to be enabled.

Although we provide composite filter as a delegator to enable/disable filter according to the headers matching, we need wrapper every filter by the composite filter and do the repeat matching.

May be we could add some new API (as followed) in the proto Route to enable or disable some filters in specificed route entry.

  message EnabledOrDisabledFilters {
    // Multiple filter names. Any name in the list MUST be one of :ref:`http filter names
    // <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.http_filters>`.
    repeated string filters = 1;
    // If set to true, then all the filters referenced by the name in the ``filters`` will disabled in current route.
    bool disabled = 2;
  }

  EnabledOrDisabledFilters enabled_or_disabled_filters = 37;

[optional Relevant Links:]

Any extra documentation required to understand the issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/http_filterenhancementFeature requests. Not bugs or questions.no stalebotDisables stalebot from closing an issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions