# salt.pillar.http_json

A module that adds data to the Pillar structure retrieved by an http request

## Configuring the HTTP_JSON ext_pillar

Set the following Salt config to setup http json result as external pillar source:

    ext_pillar:
      - http_json:
          url: http://example.com/api/minion_id
          namespace: 'subkey'
          username: username
          password: password
          header_dict: None
          auth: None

You can pass additional parameters, they will be added to the http.query call `utils.http.query function`:

Changed in version 3006.0: If namespace is defined, the data will be added under the specified subkeys in the Pillar structure.

If the with_grains parameter is set, grain keys wrapped in can be provided (wrapped in <> brackets) in the url in order to populate pillar data based on the grain value.

    ext_pillar:
      - http_json:
          url: http://example.com/api/<nodename>
          with_grains: True

Changed in version 2018.3.0: If %s is present in the url, it will be automatically replaced by the minion_id:

    ext_pillar:
      - http_json:
          url: http://example.com/api/%s

## Module Documentation

salt.pillar.http_json.ext_pillar(minion_id, pillar, url, with_grains=False, header_dict=None, auth=None, username=None, password=None, namespace=None)

  Read pillar data from HTTP response.

  Parameters:

    - url (str) -- Url to request.

    - with_grains (bool) -- Whether to substitute strings in the url with their grain values.

    - header_dict (dict) -- Extra headers to send

    - auth -- special auth if needed

    - username (str) -- username for auth

    - pasword (str) -- password for auth

    - namespace (str) -- (Optional) A pillar key to namespace the values under. .. versionadded:: 3006.0

  Returns:

    A dictionary of the pillar data to add.

  Return type:

    dict