honey icon indicating copy to clipboard operation
honey copied to clipboard

[Suggesting new features] Subnet rules, search engine field, sorting...

Open nothing-fr opened this issue 1 year ago • 2 comments

Hello, First of all, this is just a feature suggestion, so please don't take it the wrong way as I really like Honey.

However, do you think it's possible to consider the following feature requests:

  • The possibility of filtering the display according to a local subnet or not. For example, an entry will only be displayed if the user is on a local network, but not if it's viewed with a public ip (using X-Forwarded-For and X-Real-IP headers, for example).
  • The addition of a web search field (with the option of choosing the search engine used)?
  • The ability to sort services by name (although this can be done manually in the configuration file) or a sorting system by category.
  • The ability to choose whether to display services directly on the home page or in the services section.
  • The ability to choose number of columns / items per page for services (If you have a lot of services)

It might also be useful to be able to choose which criteria 3rd party verification is based on, for example, I have several sub-domains for my applications and they are considered 3rd party. At present, validation seems to be carried out for applications in a sub-path of the site.

I had to modify the compiled .js to change the behavior so that the verification is based on the domain name.

Before modification :

  • door.domain.org > honey
  • chair.domain.org > seen as 3rd party app, but in fact it's not.
  • table.domain.org > seen as 3rd party app, but in fact it's not.

After modification:

  • door.domain.org > honey
  • chair.domain.org > not seen as 3rd party app anymore
  • table.domain.org > not seen as 3rd party app anymore

Original code (from compiled js):

function P(s){let e=window.location.protocol=="https:"||window.location.hostname=="localhost",t=window.location.hostname,n=!1,i=!0;if(s.startsWith("https://")?n=!0:["http","https"].includes(s.split("://")[0])||(n=e),i){let o=s.split("://");o.length>1?(o=o[1],o=o.split("/")[0],o=o.split(":")[0],i=!o.includes(t)):i=!1}return{isSecure:n,isThirdParty:i}}

The modified code :

function P(s){let e=window.location.protocol=="https:"||window.location.hostname=="localhost",t = new URL(window.location.href).hostname.split('.').slice(-2).join('.'),n=!1,i=!0;if(s.startsWith("https://")?n=!0:["http","https"].includes(s.split("://")[0])||(n=e),i){let o=s.split("://");o.length>1?(o=o[1],o=o.split("/")[0],o=o.split(":")[0],i=!o.includes(t)):i=!1}return{isSecure:n,isThirdParty:i}}

Thanks for reading, have a nice day!

nothing-fr avatar Apr 04 '24 16:04 nothing-fr

Hey, thanks for checking out my project :>

All features and improvements sound cool. When it comes to search engines, I'm not a big fan of linking them to our SkyNets, but it always can be made configurable. Oh, and the first feature would require a backend (as for now, honey does not), but I'm thinking to provide one for easier bare-metal deployment (in Go ofc)

I will bring honey back to life later coz I just dropped out of university :~P

Please don't close this issue, those improvements are going to be added sooner or later

dani3l0 avatar Apr 04 '24 17:04 dani3l0

Nice :+1: I saw you'd already redone the status in Go too...

I'm using Honey as is for now, no worries, you've got time!

Thanks for taking my suggestions into account.

nothing-fr avatar Apr 04 '24 18:04 nothing-fr