Skip to content

Patterns should declare runtime package and sandbox capability dependencies #4

@azide0x37

Description

@azide0x37

Porchlight exposed two dependency classes that Muster patterns should make explicit instead of leaving to downstream appliance debugging.

Observed cases:

  • T2R6/Home Assistant MQTT bridge needed the real broker adapter package (mosquitto-clients for mosquitto_pub) installed and doctor-verified when real publishing is enabled.
  • LAN scanner services needed scanner packages (nmap, arp-scan) installed by the lifecycle capsule.
  • Scanner unit hardening also needed protocol-family capability guidance: ip -j route/addr/neigh requires AF_NETLINK under systemd RestrictAddressFamilies; ARP discovery needs AF_PACKET; raw scanner paths may need CAP_NET_RAW/CAP_NET_ADMIN.

Pattern takeaway:

Muster patterns should include a machine-checkable dependency/capability contract, not just service/timer shapes. For each pattern or composed appliance bundle, declare:

  • required packages by distro family,
  • optional package gates,
  • doctor checks for enabled adapters,
  • systemd sandbox/capability requirements,
  • failure wording for missing dependencies or blocked capabilities.

This would have prevented Porchlight from reaching a state where MQTT autodiscovery or LAN observation looked like application bugs but were actually undeclared package/sandbox dependencies.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions