Json-fact-format

how to send facts

  • Foreman reports need to be sent to /api/hosts/facts
  • Following headers needs to be present:
      "Accept: application/json,version=2" 
      "Content-Type: application/json" 
    

facts JSON format

{
  "name"     : "fqdn.example.com",
  "certname" : "optional.certname.for.this.host",
  "facts"    : {
                  "fact1"                  : "value",
                  "fact2"                  : "value",
                  "fact2::nested::fact"    : "value",
                  "_timestamp"             : "2013-10-18 07:47:45 +0000",
                  "_type"                  : "puppet",
                  "operatingsystem"        : "Debian",
                  "operatingsystemrelease" : "7.0" 
               }
}

Note that _timestamp, operatingsystem and operatingsystemrelease are mandatory. Certname is optional, but if provided it will be preferred over name to identify the host object in the db. _type identifies source of fact, currently only puppet is supported by Foreman core and is also a default value if unspecified. If you want to add another fact type, you can register your importer class in FactImporter.register_fact_importer. For more info and example see https://github.com/ares/foreman_chef