<commit_before>Consul Template Changelog
=========================

## v0.17.0.dev (Unreleased)

NEW FEATURES:

  * Add new template function `key_exists` for determining if a key is present.
      See the breaking change notice before for more information about the
      motivation for this change.

BREAKING CHANGES:

  * Consul Template now **blocks on `key` queries**. The previous behavior was
      to always pass through, allowing users to use the existence of a key as
      a source of control flow. This caused confusion among many users, so we
      have restored the expected behavior of blocking on a `key` query, but have
      added `key_exists` to check for the existence of a key. Note that the
      `key_or_default` function remains unchanged and will not block if the
      value is nil, as expected.

IMPROVEMENTS:

  * Add CLI support for all SSL configuration options for both Consul and Vault.
    Vault options are identical to Consul but with `vault-` prefix. Includes
    the addition of `ssl-ca-path` to be consistent with file-based configuration
    options.

    * `ssl` `vault-ssl` (Enable)
    * `ssl-verify` `vault-ssl-verify`
    * `ssl-cert` `vault-ssl-cert`
    * `ssl-key` `vault-ssl-key`
    * `ssl-ca-cert` `vault-ssl-ca-cert`
    * `ssl-ca-path` `vault-ssl-ca-path`
    * `ssl-server-name` `vault-ssl-server-name`

  * Add support for `server_name` option for TLS configurations to allow
      specification of the expected certificate common name.
  * Add `-vault-addr` CLI option for specifying the Vault server address
      [GH-740, GH-747]
  * Add tagged addresses to Node structs
  * Add support for multiple `-config` flags [GH-773, GH-751]
<commit_msg>Update CHANGELOG<commit_after>Consul Template Changelog
=========================

## v0.17.0.dev (Unreleased)

NEW FEATURES:

  * Add new template function `keyExists` for determining if a key is present.
      See the breaking change notice before for more information about the
      motivation for this change.

BREAKING CHANGES:

  * Consul Template now **blocks on `key` queries**. The previous behavior was
      to always pass through, allowing users to use the existence of a key as
      a source of control flow. This caused confusion among many users, so we
      have restored the expected behavior of blocking on a `key` query, but have
      added `keyExists` to check for the existence of a key. Note that the
      `keyOrDefault` function remains unchanged and will not block if the value
      is nil, as expected.

  * The `vault` template function has been removed. This has been deprecated
      with a warning since v0.14.0.

  * A shell is no longer assumed for Template commands. Previous versions of
      Consul Template assumed `/bin/sh` (`cmd` on Windows) as the parent
      process for the template command. Due to user requests and a desire to
      customize the shell, Consul Template no longer wraps the command in a
      shell. For most commands, this change will be transparent. If you were
      utilizing shell-specific functions like `&&`, `||`, or conditionals, you
      will need to wrap you command in a shell, for example:

    ```shell
    -template "in.tpl:out.tpl:/bin/bash -c 'echo a || b'"
    ```

    or

    ```hcl
    template {
      command = "/bin/bash -c 'echo a || b'"
    }
    ```

DEPRECATIONS:

  * `.Tags.Contains` is deprecated. Templates should make use of the built-in
      `in` and `contains` functions instead. For example:

    ```liquid
    {{ if .Tags.Contains "foo" }}
    ```

    becomes:

    ```liquid
    {{ if .Tags | contains "foo" }}
    ```

    or:

    ```liquid
    {{ if "foo" | in .Tags }}
    ```

IMPROVEMENTS:

  * Add CLI support for all SSL configuration options for both Consul and Vault.
    Vault options are identical to Consul but with `vault-` prefix. Includes
    the addition of `ssl-ca-path` to be consistent with file-based configuration
    options.

    * `ssl` `vault-ssl` (Enable)
    * `ssl-verify` `vault-ssl-verify`
    * `ssl-cert` `vault-ssl-cert`
    * `ssl-key` `vault-ssl-key`
    * `ssl-ca-cert` `vault-ssl-ca-cert`
    * `ssl-ca-path` `vault-ssl-ca-path`
    * `ssl-server-name` `vault-ssl-server-name`

  * Add support for `server_name` option for TLS configurations to allow
      specification of the expected certificate common name.
  * Add `-vault-addr` CLI option for specifying the Vault server address
      [GH-740, GH-747]
  * Add tagged addresses to Node structs
  * Add support for multiple `-config` flags [GH-773, GH-751]

{'fraction_non_alphanumeric': 0.10008779631255488, 'fraction_numerical': 0.007901668129938543, 'mean_word_length': 3.0008779631255487, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7075295', 'n_tokens_mistral': 1392, 'n_tokens_neox': 1316, 'n_words': 562}