Skip to content

[Feature Request] Process group #2076

Description

@f4uni

Summarize

Groups programs with similar purposes for finer control in route, like rule_set. This reduces the complexity in the rule.

Define in route

The following example on Windows:

{
  "route": {
    "process_group": [
      {
        "tag": "browser",
        "process_name": [
          "chrome.exe",
          "firefox.exe",
          "msedge.exe",
          "..."
        ]
      },
      {
        "tag": "devtools",
        "process_name": [
          "go.exe",
          "node.exe",
          "pip.exe",
          "..."
        ],
        "process_path": [
          "C:\\Program Files (x86)\\Microsoft Visual Studio\\Installer\\setup.exe"
        ]
      },
      {
        "tag": "downloader",
        "process_name": [
          "IDMan.exe",
          "xdm-app.exe",
          "..."
        ]
      }
    ]
  }
}

Usage in route

Using like:

{
  "route": {
    "rules": [
      {
        "process_group": ["browser"],
        "rule_set": ["dev_sites"],
        "outbound": "settled_proxy"
      },
      {
        "process_group": ["browser", "downloader", "devtools"],
        "rule_set": ["video_sites", "cdn_sites"],
        "outbound": "fast_proxy"
      }
    ]
  }
}

Use process_group instead of lots of process_name and process_path.

Especially effective when matching different rule_sets for the same process group.

{
  "route": {
    "rules": [
      {
        "process_group": "browser",
        "rule_set": "americas",
        "outbound": "proxy_americas"
      },
      {
        "process_group": "browser",
        "rule_set": "asia",
        "outbound": "proxy_asia"
      },
      {
        "process_group": "browser",
        "rule_set": "europe",
        "outbound": "proxy_europe"
      }
    ]
  }
}

process_group and process_name process_path should be or's when routing

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions