Request system-files interface (read/write) for rob-cos-demo-configuration

Hello, I’d like to request a system-files interface with read/write access for the rob-cos-demo-configuration snap, using manual connection (no auto-connect requested).


  • name: rob-cos-demo-configuration
  • description: A device-configuration snap for the “cos for devices” observability ecosystem. It ships default configuration for the companion rob-cos snaps (e.g. ros2-exporter-agent).
  • snapcraft: link to snapcraft.yaml
  • upstream: link to the upstream repository
  • upstream-relation: Publisher and maintainer
  • interfaces:
    • system-files (ros2-exporter-agent-config)::
      • request-type: either installation, connection
      • reasoning: Read/write access is requested to a single directory: /var/snap/ros2-exporter-agent/common/configuration
      • The ros2-exporter-agent snap reads its configuration from its own writable data directory rather than via a mounted content slot. To configure it on the device, rob-cos-demo-configuration needs to place the configuration files directly into that directory. The content interface can’t satisfy this because it require the configurable snap to declare it in advance and in the future we will configure also snaps that we do not maintain. So we want a “universal” way to configure the snaps. The write target is scoped to one specific directory. The operation is triggered at connection and then after every boot via a one-shot daemon. Before writing it backs up every existing file to a “.bak” suffix so no pre-existing configuration is lost or silently overwritten. Only the files shipped by this snap are placed; it does not recurse outside the requested directory.

Thank you.

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

Hello @RoboticsCommunity :slight_smile:

Given the justification provided and tha fact that the target files are within the same publisher’s ecosystem (both rob-cos-demo-configuration and ros2-exporter-agent are Canonical snaps, and the configuration snap’s explicit purpose is to manage the companion snap’s config), I think this is a reasonable request.

Hence +1 from my side to auto-connect the system-files interface to the ros2-exporter-agent-config snap.

Hey folks!

I believe that allowing one snap to read/write other snaps private directories is a bad practice tbh. It can break the “configured” snap in unforeseeable ways.

The content interface can’t satisfy this because it require the configurable snap to declare it in advance and in the future we will configure also snaps that we do not maintain.

I could be somehow open for discussion if we would only be talking about the ros2-exporter-agent, but I think it is unacceptable for other snaps you don’t maintain.

So we want a “universal” way to configure the snaps.

I think confdb is intended to address this challenge. Is there any reason why this does not suffice your use case? This feature is still experimental, possibly you should discuss with snapd folks about the roadmap for it