Currently a "hab config apply" command takes a .toml file which contains (x) number of settings. This set of settings acts as a fourth config layer (default, ring, user.toml, hab config apply). In order to edit or add multiple of the lower-layer-settings, the .toml file must contain all of them - they cannot be changed one at a time.
Top 3 layers contain settings named s1 through s4
hab config apply's toml contains setting s5 - end result s1 through s5 are in census
hab config apply's toml now only contains s7 and s9 - end result settings s1-s4, s7, s9 are in census with the previously added s5 gone.
Device gets settings from an API call that need to be layered on top of existing config (e.g. timezone, merchant ID from an internal database, determined by host name). These API calls are staggered and updated one at a time.
We've written a workaround where this "hab config apply" layer is handled as a complete list of settings and applied as an entire set when any are changed.