name: graft Snap ID: GSF8EWCHoTtL5iKTYWd4u2pbwjU1hdfq Publisher: Shahariar Munir (skssmd) description: Agentless deployment tool extending Docker Compose to cloud via SSH. snapcraft: Graft/.goreleaser.yaml at main · skssmd/Graft · GitHub (Managed via GoReleaser) upstream: https://github.com/skssmd/Graft upstream-relation: I am the author and maintainer of the Graft project. supported-category: compilers/architectures/IDEs/developer tools reasoning: Graft is a CLI deployment engine that requires classic confinement for the following technical reasons:
-
Global Registry & Configuration: Graft maintains a global registry of Cloudflare zones and server metadata in the user’s home directory (
~/.graft/). It needs to persistently read and write to this hidden directory to manage credentials and state across different projects. -
Arbitrary Project Access: Graft operates on
graft-compose.ymlanddocker-compose.ymlfiles located within the user’s project directories. These projects are often located outside the standard home folder (e.g., on external drives or custom development partitions), requiring unrestricted filesystem access. -
Local Git Metadata Inspection: The tool inspects the local
.gitdirectory to extract commit hashes and repository info. This allows for automated deployment tagging and version tracking without requiring manual user input or GitHub API tokens. -
Native Shell Integration: Graft invokes the host’s native shell and system
sshbinary to provide an interactive remote terminal experience. This allows Graft to leverage the user’s existing SSH environment and binary while establishing agentless connections to cloud infrastructure.
Given that Graft serves a similar purpose to tools like docker-compose, terraform, or ansible (which all typically require classic confinement), strict confinement would break the core functionality of agentless remote management.
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.