Classic Confinement Request for Xcasca

name: xcasca

description: Xcasca is a lightweight cross-platform SSH & SFTP Client. With a simple but comprehensive UI, Xcasca gives you a pure terminal emulation experience.

snapcraft: The app uses electron-builder to automatically generate the yaml file. The rest of the information is manually edited in the snapcraft console.

upstream: Private

upstream-relation: The requestor and the author of this app are the same person.

supported-category: Terminal emulators, multiplexers and shells

reasoning: Our app accesses external processes to use Agent forwarding during SSH/SFTP connections, or accesses local directories to read/write files after SFTP connections, so we need to access files outside of the sandbox.

I understand that strict confinement is generally preferred over classic.

I’ve tried the existing interfaces to make the snap to work under strict confinement.

This request has been added to the queue for review by the @reviewers team.

Classic confinement is usually not just achieved by flicking the switch in your snapcraft.yaml and be done, usually it takes weeks if not months of snapcraft.yaml fine tuning, (binary) patching the libraries you use and applying the correct layouts to make sure the two environments (inside and outside of the snap) do not leak into each other.

Given the history of electron-builder (it is great for very simple projects that do not require any tweaks of the snapcraft.yaml but badly fails as soon as you need to change something when you have to do any adjustments), I wonder how you managed to make sure classic confinement really works safely …

Have you read and followed the hints in the developer documentation ?:

If you did not, how exactly do you make sure your snap runs the very same way on all distros you install it on ? (even classic snaps need to behave the same when installed on gentoo as well as on OpenSuse, debian, fedora, Arch … that requires to make sure no libs from the outside are being used at runtime to spawn your app)

While your snap seems to match the proper category, I simply can not imagine that electron-builder is a suitable way of getting all the bits and pieces sorted for a classic snap unless your app is 100% static and does not ship any stage libraries …