Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions docs/Templates.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,5 +73,33 @@ Additionally, the result is piped through the built-in Go template function `js`

```

## Template Functions

In addition to the [built-in Go template functions and features][tt], `webhook` provides the following functions:

### `getenv`

The `getenv` template function can be used for inserting environment variables into a templated configuration file.

### `cat`

The `cat` template function can be used to read a file from the local filesystem. This is useful for reading secrets from files. If the file doesn't exist, it returns an empty string.

Example:
```json
"secret": "{{ cat "/run/secrets/my-secret" | js }}"
```

### `credential`

The `credential` template function provides a way to retrieve secrets using [systemd's LoadCredential mechanism](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Credentials). It reads the file specified by the given name from the directory specified in the `CREDENTIALS_DIRECTORY` environment variable.

If `CREDENTIALS_DIRECTORY` is not set, it will fall back to using `getenv` to read the secret from an environment variable of the given name.

Example:
```json
"secret": "{{ credential "my-secret" | js }}"
```

[w]: https://github.com/adnanh/webhook
[tt]: https://golang.org/pkg/text/template/