The Store automatic review failed. Please i'm requesting for a manual review for my app called "whoshares"

A human will soon review your snap, but if you can’t wait please write in the snapcraft forum asking for the manual review explicitly. If you need to disable confinement, please consider using devmode, but note that devmode revision will only be allowed to be released in edge and beta channels. Please check the errors and some hints below:

  • human review required due to ‘deny-connection’ constraint (interface attributes)

Thanks, I have now granted this request (for dbus slot access to your snap) and it now passes automated review.

Thanks for the quick action @alexmurray. it worked

The Store automatic review failed. A human will soon review your snap, but if you can’t wait please write in the snapcraft forum asking for the manual review explicitly. If you need to disable confinement, please consider using devmode, but note that devmode revision will only be allowed to be released in edge and beta channels. Please check the errors and some hints below:

  • human review required due to ‘allow-installation’ constraint (bool).

Here is what i did: added this new interface: classic-support

The classic-support interface is not intended to be used by regular snaps - this is specifically for the https://snapcraft.io/classic snap on Ubuntu Core (cc @degville can we please clarify this in the documentation for classic-support - https://snapcraft.io/docs/classic-support-interface ?)

Please remove this from your snap’s interfaces and it should pass automated review. If you believe your snap requires confinement: classic then please review the process / guidelines at https://snapcraft.io/docs/reviewing-classic-confinement-snaps - however, given my understanding of the whoshares snap I am not sure it would fit this criteria.

yeah you are right @alexmurray, i don’t have any other choice but to remove the classic-support interface because flutter doesn’t supports the confinement: classic.

my issue is with the home interface i only have access to files found in /home/username/ location and not hidden files like .config for my app config settings. and also since my app has a set download location button i may have some access / permission issues if another location other than other than a location found in the /home/username/ directory is set.

Thanks for letting me know. I’ve updated The classic-support interface to hopefully make this clearer.

1 Like

When a snap runs under strict confinement, the HOME environment variable is set to /home/$USER/snap/$SNAP_NAME/$SNAP_REVISION/ - this essentially serves as a private home directory for the snap. The snap has full access to files in this location so you can use this to store config files etc even named .config etc.

By then plugging the home interface your snap can access non-hidden files within /home/$USER as you have seen.

Finally, the personal-files interface exists to allow snaps to read (and perhaps write) hidden files within /home/$USER on a case-by-case basis. As such you could use this to specify access to a file like /home/$USER/.$SNAP_NAME/config or similar - use of personal-files requires a store assertion and hence review by the reviewers team as well.

So in summary, you should be able to use the private per-snap $HOME but if needed personal-files may also suit the needs of your snap for this.

Finally, regarding downloads, it is common for these to be stored in /home/$USER/Downloads and this is granted via the existing home interface so you should not be concerned about strict confinement for your snap.

thanks @alexmurray. firstly i tested this /home/$USER/snap/$SNAP_NAME/$SNAP_REVISION/ and it works fine. secondly please what happens when a user updates the app ? do he looses all the previews config settings since the $SNAP_REVISION will change or i will be automatically transferred to the new $SNAP_REVISION. thirdly i understand that if the app is completely removed all the settings in /home/$USER/snap/$SNAP_NAME/$SNAP_REVISION/ will be lost.

When a snap is updated, the old data in /home/$USER/snap/$SNAP_NAME/$SNAP_REVISION/ are transferred to the new /home/$USER/snap/$SNAP_NAME/$SNAP_REVISION/.

When a user uninstalls a snap, snapd will retain a snapshot of the current state of the snap including this data from /home/$USER/snap/$SNAP_NAME - so then if they reinstall the snap it should have their old configuration. Note by default snapshots are retained for 31 days and then purged so if a user reinstalls the snap after 31 days then their snapshot will be gone and so will their previous settings.

If you feel this is likely to cause issues for users of your snap (although I would suggest that folks who are uninstalling a snap probably don’t care for their old settings and would be glad they get cleaned up after some time to retain their disk space) then you could use personal-files to store then more permanently within /home/$USER/

Okay Thanks @alexmurray, i will go for the first solution with the 31 days snapshot retained. but just tested it and the previous setting wasn’t retained (release is in Beta Channel), so is his snapshot retaining functionality for some specific release channels ?

again thanks for your help and excellent explanations.