External_nodes_with_fact is a project mainly written in Ruby, it's free.
Puppet Plugin to execute external nodes with arbitrary fact values
This plugin provides a custom ENC terminus to allow passing of fact information through to the ENC script, other than the certificate name.
Requires Puppet 2.6.?
This is a work in progress (2011-04-13)