Documented cat and credential template functions in Templates.md

This commit is contained in:
DIGVIJAY 2025-10-04 12:03:55 +00:00
parent 7ea2a53bbb
commit 16c5478680

View file

@ -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/