Skip to content

OS/Preference

Field Value
Purpose Declares preferred system tools per concern — package manager, firewall, network, cron, MAC
Repo AmadlaOrg/Entities/OS/Preference
Entity URI amadla.org/entity/os/preference@v1.0.0
Parent OS

Schema

Property Type Description
network string Preferred network tool: nmcli, netplan, ifupdown, systemd-networkd, networkmanager
firewall string Preferred firewall backend: ufw, iptables, nftables, firewalld
mac string Mandatory Access Control system: selinux, apparmor, none (default: none)
mac_mode string MAC enforcement mode: enforcing, permissive (SELinux) or enforce, complain (AppArmor) or disabled
package_managers object Package manager preferences
package_managers.default string Default package manager (e.g., dnf, apt, pacman, brew) — required within object
package_managers.additional array of strings Additional package managers available (e.g., snap, flatpak, nix)
cron string Preferred scheduling backend: crontab, systemd-timer
service_manager string Preferred service management: systemd, openrc, sysvinit

Example

_type: amadla.org/entity/os/preference@v1.0.0
_body:
  network: netplan
  firewall: nftables
  mac: apparmor
  mac_mode: enforce
  package_managers:
    default: apt
    additional:
      - snap
      - flatpak
  cron: systemd-timer
  service_manager: systemd

RHEL-family example

_type: amadla.org/entity/os/preference@v1.0.0
_body:
  network: nmcli
  firewall: firewalld
  mac: selinux
  mac_mode: enforcing
  package_managers:
    default: dnf
  cron: crontab
  service_manager: systemd

Consumers

Tool How It Uses OS/Preference
lay Selects package manager backend from package_managers.default
enjoin Selects firewall, network, cron, and service backends from preferences
enjoin-network Uses network preference to choose configuration tool
enjoin-selinux Reads mac and mac_mode to determine SELinux configuration