Regarding the reasoning for snap-refresh-observe, access to /apps endpoint should be granted by ros-snapd-support, should it? Moreover, snap-refresh-observe is intended to be used only to mark the existence of a refresh awareness client, according to the documentation (#askForInfo)
@jslarraz we used the refresh-observe to get access to /apps indeed. We could move the access to our ros-snapd-support interface, it’s a good suggestion.
But right now we would like to drop the snapd-control as soon as possible since we have a better and more secure solution even if not perfect.
After this change we will apply a new PR in our support interface and eventually when it reaches snapd stable we can also drop the refresh-observe.
What do you think?
So, it seems that there was a mistake in the initial post that carried throughout the discussion and made things a little obfuscated.
The request for the snap-refresh-observe is actually aiming to access both the /snaps and /changes endpoints, not/apps which is indeed provided by the specific ros-snapd-support interface. Sorry for the confusion.
This being said, @mirkoferrati reasoning still applies. We could be granted both the ros-snapd-support and the snap-refresh-observe in order to drop the much wider scope snapd-control which we currently have granted. Albeit the access to snap-refresh-observe could be only temporary until we go through another cycle of updating the ros-snapd-support to fully support our needs and seeing it released in snapd. The alternative to this is status quo and this snap keeps the current snapd-control access.
I’m certainly happy to grant both, ros-snapd-support and the snap-refresh-observe, to remove the need for snapd-control.
My only concern at this point is that snap-refresh-observedocumentation says that “it is intended to be used only to mark the existence of a refresh awareness client”. Thus, I would like to know if @pedronis is fine with it.
the correct thing is to expand ros-snapd-support to include the other permissions it needs, as ros-snapd it is not observing refreshes it’s confusing to give it snap-refresh-observe. The point of “support” interfaces is to cover the special requirements of the snap they are for, so from that point of view this is fine