Skip to main content

Bug Fixes

  • lager box config apply no longer reports success while applying nothing. apply runs start_box.sh on the box as the login user, and its four box-config renderers create files in /etc/lager (box_config.docker.sh, user_requirements.txt, cargo_packages.txt, npm_packages.txt). Creating a file needs write permission on the directory, and lager install left /etc/lager owned by the container user only (33:33, mode 755) — so every render failed with EACCES. Renders are soft-failed by design (the container must always come up), which turned this into a silent no-op: the install steps read files that were never written, so apply skipped them, stamped the applied-hash, and printed “Applied box config”. Every pip/cargo/npm package, mount, volume, and env var added through lager box config was quietly dropped on any box whose last provisioning step was an install. /etc/lager is now owned 33:<box-user-group> mode 2775 (setgid), so the container (owner) and start_box.sh (group) can both write it.
  • /etc/lager is no longer world-writable. lager update previously granted the box user write access by running chmod 777 on the directory, which also gave it to every other local account — enough to replace box_config.json, saved_nets.json, or the org secrets. It now gets the same owner/group/setgid treatment as above: what the two writers actually need, and nothing more.
  • A box-config render failure is now loud, and no longer poisons the retry. A failed render used to print a one-line warning and a raw Python traceback, then let the run continue as if applied. It now reports which file could not be written, why, and how to fix it; start_box.sh exits 3 (“container up, config NOT applied”) and apply no longer stamps the applied-hash (which had sealed the bug shut on retry) or rolls back a healthy container.

Installation

To install this version:
To upgrade from a previous version:

Resources

View Release on PyPI