Personal-files request for ngrok


#1

Dear @reviewers,

I would like request personal-files for ngrok to access to $HOME/.ngrok2 directory to use its configs.

Thanks in advance!
Khiem Doan


#2

I’m +1 for granting personal-files access to ~/.ngrok2 since it is a well known name specific to ngrok.


#3

+1 from me.

(aside, please update the store page to be as comprehensive as the web page (gif/video, long text). We’d love to feature this application, it looks like a super developer tool)


#4

While it appears that this snap is the clear owner of the ~/.ngrok2 directory, it isn’t clear to me why the default of $HOME (which is set to the snap-specific ~/snap/ngrok/<revision>) can’t be used. The personal-files interface is intended to be used for read access for migrating from a non-snap based install of an application to the snapped version of the application. As such, if requesting read/write access for ~/.ngrok2 can you please details first why the snap-specific version of $HOME above is not sufficient, and then whether ngrok installed as a snap would not conflict with ngrok installed as a native binary if both are sharing the same configuration (ie are the configuration formats backwards compatible etc)?


#5

If without specific, ngrok only reads config file in $HOME by default. And both native binary and snap version can share the same config without any problem.
Thank you.


#6

+1

This will allow for not using devmode.


#7

Do you expect users will want to install both the binary and snap versions of ngrok at the same time? I do not see this as a likely use-case - also if they both share the same config then you would have to ensure that there are never any backwards incompatible changes to that config file since users would most likely have different versions installed between the snap and binary version.

@popey @Wimpress we seem to disagree on whether it is expected that snaps should in general be granted access to the ‘real’ $HOME/.<snap> etc as a regular occurrence - in the past we have pushed back on this kind of request since in general the snap-specific $HOME is sufficient for most applications. Can you both outline your thinking on this a bit more so we can all agree on a coherent path forward for future similar requests?


#8

Regardless of the above outstanding question, the voting period has elapsed (including any possible extension to the voting period as per Process for aliases, auto-connections and tracks) and the votes stand at +2 for auto-connection so this request will be granted.

@khiemdoan note your current personal-files plug lists both read and write for ~/.ngrok2 but write is a superset of read so there is no need for listing read as well. Can you please remove read from this and upload a new version of the snap, then I can add the override to the store to grant this.


#9

2 votes for and 0 against for use of and auto-connect of personal-files for write access to $HOME/.ngrok2.

This is now live, as noted above you should remove the read attribute - so please adjust your snap to use:

plugs:
  ngrok-config:
    interface: personal-files
    write:
    - $HOME/.ngrok2

The review-tools need a corresponding update that waiting to be merged and so is not yet in production. Once it is, it will pass automated review. In the meantime, you can request a manual review.


#10

Thank you so much @alexmurray, your instructions are very detailed and clear. I will update this snap as soon as possible.


#11

@alexmurray - I see that write was granted to this snap but @khiemdoan seemed to indicate that only read was needed. Since personal-files is mostly intended for importing data from the non-snap version of the application, we don’t need to ask about forward/backward compatibility and only consider if the request makes sense for the snap (eg, if a clear owner, ‘use’ plus ‘auto-connect’ else deny or ‘use’ with manual connect). When ‘write’ is specified, then we ask about forward and backward compatibility since the snap could break non-snap and vice-versa.


#12

@alexmurray - you granted ngrok-config, which is fine, but we’ve lately been using dot-ngrok instead (or dot-ngrok2 for this).

I’ve made the corresponding update to the review-tools for ngrok-config, but it isn’t yet in production.


#13

and I’ve manually approved r19 and r20 just now.


#14

@jdstrand It sounds like we should make sure we are clear on the documentation for personal-files what conventions should be used for interface names - the current documentation at The personal-files interface uses config-foo to refer to $HOME/.config/foo - following convention, should this be dot-config-foo? Either way as long as it is clear to an end-user what is being granted via the interface I am not too fussed what they are called - but you are right that we should be consistent across snaps.