This looks good, but I would be more comfortable if we did this in a way that's compatible with all CFEngine versions, because this may be used for other things in the future (not just rudder-agent).

For example:
any::
  "cf_lock_filename" string => "cf_lock.tcdb";
cfengine_3_0|cfengine_3_1|cfengine_3_2::
   "cf_lock_filename" string => "cf_lock.db";