Though for the first pass, we may or may not need all of these.
One storage option would be a new catalog_inputs table recording [certname_id type name] for each input. There may also be some details to work out regarding timestamps ([~zachary.kent] and/or [~rob.browning] have been discussing the issues).
As far as lifetime goes, the inputs should be tied to the certname, not to a given catalog, and should behave like facts (expiring, etc. with the certname).