Classic confinement request for surfpool

name: surfpool

description: Surfpool is a command-line tool for working with Solana-based deployments and other blockchain runtimes. It integrates with the Solana CLI ecosystem and relies on shared configuration and keypair files managed by Solana tooling.

snapcraft: snapcraft-surfpool/snapcraft.yaml at main · txtx/snapcraft-surfpool · GitHub

upstream: https://github.com/txtxrun/surfpool

upstream-relation: I am the upstream developer and publisher of the snap.

supported-category: developer-tools

reasoning: Surfpool requires access to the user’s Solana CLI configuration located in ~/.config/solana/, which includes identity keypairs (id.json) and RPC endpoint settings. These paths are defined by the Solana CLI tooling. The personal-files interface cannot be reliably used here, as the app must read from and interoperate with these files without requiring users to manually connect plugs. Additionally, tools like solana-keygen, solana config get, and solana airdrop are invoked by or used alongside Surfpool, requiring shared access to the same non-sandboxed environment. For these reasons, classic confinement is necessary.

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.

Hey @txtx_svc

As far as I understood, the reasons provided do not quite fit classic confinement requirements

The personal-files interface cannot be reliably used here, as the app must read from and interoperate with these files without requiring users to manually connect plugs.

Create an auto-connection request for personal-files instead.

tools like solana-keygen, solana config get, and solana airdrop are invoked by or used alongside Surfpool, requiring shared access to the same non-sandboxed environment.

dependent software only available on host is explicitly unsupported as per Process for reviewing classic confinement snaps. You should instead ship this software with your snap (e.g. using stage-packages)

Let me know if there is any other thing I can help with (#askForInfo)

Thanks