[GH-ISSUE #1408] Sorting request paths tree by hierarchy #1401

Open
opened 2026-03-03 19:51:08 +03:00 by kerem · 4 comments
Owner

Originally created by @neonfink on GitHub (Oct 21, 2022).
Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/1408

Description

Currently using Proxyman 3.11.0

Hi there! 🙂
Coming from being a long time Charles user and trying to convert myself to Proxyman, I find it a bit hard to get accustomed to how Proxyman sorts incoming requests in the tree view once you expand below the Domains level.

Proxyman seems to only allow Alphabetical sorting option for Domains and Apps but no sorting options for tree structure inside the domain name itself at the moment.
From my understanding, incoming requests tree is always sorted by the time of first request for each individual network path? At least I was not able to find any way to rearrange this in some way 🤔
Also, if your REST API path can represent an actual endpoint and have more nested endpoints inside, for example:

  • https://<my_host>/api/<path_1>
  • https://<my_host>/api/<path_1>/<path_2>

These are always grouped as one single > path_1 node, which could be a bit confusing with more complex APIs when you deal with a lot of requests. Attached a screenshot to hopefully explain better what I try to say 😅
Screenshot 2022-10-21 at 12 32 08

For comparison, Charles arranges the tree structure in a (subjectively) more intuitive way:

  • any nodes that have any children are grouped on top, separately from the nodes representing actual callable endpoints
  • any nodes that represent callable endpoints shown after all the nodes that have more nesting
  • if your REST API path segment can represent both: an actual endpoint and have more nested endpoints inside - they are also separated in the tree structure

This feels a bit more natural, similar to "sort by kind" in Finder, when your folders would come on top, before individual files. Likewise for Windows navigation style, I think.
Screenshot 2022-10-21 at 12 22 40

Why this feature/change is important?

Having more options to sort incoming traffic in a more structured way could really help and speed up inspecting the mobile app traffic during testing / debugging in more complex scenarios.

Originally created by @neonfink on GitHub (Oct 21, 2022). Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/1408 ## Description > Currently using **Proxyman 3.11.0** Hi there! 🙂 Coming from being a long time Charles user and trying to convert myself to Proxyman, I find it a bit hard to get accustomed to how Proxyman sorts incoming requests in the tree view once you expand below the Domains level. Proxyman seems to only allow Alphabetical sorting option for Domains and Apps but no sorting options for tree structure inside the domain name itself at the moment. From my understanding, incoming requests tree is always sorted by the time of first request for each individual network path? At least I was not able to find any way to rearrange this in some way 🤔 Also, if your REST API path can represent an actual endpoint and have more nested endpoints inside, for example: - `https://<my_host>/api/<path_1>` - `https://<my_host>/api/<path_1>/<path_2>` These are always grouped as one single `> path_1` node, which could be a bit confusing with more complex APIs when you deal with a lot of requests. Attached a screenshot to hopefully explain better what I try to say 😅 <img width="359" alt="Screenshot 2022-10-21 at 12 32 08" src="https://user-images.githubusercontent.com/15730721/197178620-c091784d-ccc6-464f-b4a9-b484a0d3e5cd.png"> For comparison, Charles arranges the tree structure in a (subjectively) more intuitive way: - any nodes that have any children are grouped on top, separately from the nodes representing actual callable endpoints - any nodes that represent callable endpoints shown after all the nodes that have more nesting - if your REST API path segment can represent both: an actual endpoint and have more nested endpoints inside - they are also separated in the tree structure This feels a bit more natural, similar to "sort by kind" in Finder, when your folders would come on top, before individual files. Likewise for Windows navigation style, I think. <img width="442" alt="Screenshot 2022-10-21 at 12 22 40" src="https://user-images.githubusercontent.com/15730721/197178660-405fd1dd-0ade-466d-b58f-668d3860e602.png"> ## Why this feature/change is important? Having more options to sort incoming traffic in a more structured way could really help and speed up inspecting the mobile app traffic during testing / debugging in more complex scenarios.
Author
Owner

@NghiaTranUIT commented on GitHub (Oct 21, 2022):

Thanks for the detailed suggestion @neonfink. I love it 👍

The difference between the Charles Proxy and Proxyman is:

  • Charles displays all request in the left panel.
  • Proxyman groups all request into a domain-tree. As soon as select a domain node, it displays all requests of this domain on the central Table View.

If Proxyman follows the same design as Charles Proxy (Left Panel), the left panel can be flooded with a large number of requests -> Hard to find a particular request -> It's also a problem why I'm trying to solve on Proxyman, to make it easier.


Proxyman seems to only allow Alphabetical sorting option for Domains and Apps but no sorting options for tree structure inside the domain name itself at the moment.

Do you think that if we support Alphabetical Sorting on the sub-tree, does it make easier to navigate around the request?

<!-- gh-comment-id:1287096820 --> @NghiaTranUIT commented on GitHub (Oct 21, 2022): Thanks for the detailed suggestion @neonfink. I love it 👍 The difference between the Charles Proxy and Proxyman is: - Charles displays all request in the left panel. - Proxyman groups all request into a domain-tree. As soon as select a domain node, it displays all requests of this domain on the central Table View. If Proxyman follows the same design as Charles Proxy (Left Panel), the left panel can be flooded with a large number of requests -> Hard to find a particular request -> It's also a problem why I'm trying to solve on Proxyman, to make it easier. ----------- > Proxyman seems to only allow Alphabetical sorting option for Domains and Apps but no sorting options for tree structure inside the domain name itself at the moment. Do you think that if we support Alphabetical Sorting on the sub-tree, does it make easier to navigate around the request?
Author
Owner

@neonfink commented on GitHub (Oct 21, 2022):

@NghiaTranUIT
Ah, no, I definitely did not mean populating the left panel with every occurrence of every endpoint like Charles does, don't like that either😅 Domain-tree model of Proxyman actually makes more sense to me!

Perhaps this got lost in all the details that I wrote down but to summarise - I tried to illustrate just the sorting itself, so simply splitting same level nodes like this could make it easier to navigate I think:

  1. Expandable nodes with nested children always sorted on top of the list (sorted by time of occurrence or alphabetically between each other)
  2. Same level nodes without children sorted in the lower part of the list (sorted by time of occurrence or alphabetically between each other)

Hope that's less confusing than my initial post :) Would you say something like this makes sense / is feasible?

<!-- gh-comment-id:1287121903 --> @neonfink commented on GitHub (Oct 21, 2022): @NghiaTranUIT Ah, no, I definitely did not mean populating the left panel with every occurrence of every endpoint like Charles does, don't like that either😅 Domain-tree model of Proxyman actually makes more sense to me! Perhaps this got lost in all the details that I wrote down but to summarise - I tried to illustrate just the sorting itself, so simply splitting same level nodes like this could make it easier to navigate I think: 1. Expandable nodes with nested children always sorted on top of the list (sorted by time of occurrence or alphabetically between each other) 2. Same level nodes without children sorted in the lower part of the list (sorted by time of occurrence or alphabetically between each other) Hope that's less confusing than my initial post :) Would you say something like this makes sense / is feasible?
Author
Owner

@NghiaTranUIT commented on GitHub (Oct 23, 2022):

Thanks for the explanation. I would consider this option and implement it soon 👍

<!-- gh-comment-id:1287983216 --> @NghiaTranUIT commented on GitHub (Oct 23, 2022): Thanks for the explanation. I would consider this option and implement it soon 👍
Author
Owner

@neonfink commented on GitHub (Oct 24, 2022):

Sounds splendid, thank you for considering it!

<!-- gh-comment-id:1288673885 --> @neonfink commented on GitHub (Oct 24, 2022): Sounds splendid, thank you for considering it!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Proxyman#1401
No description provided.