Getting started with 1Password for your growing team, or refining your setup? Our Secured Success quickstart guide is for you.
Forum Discussion
leonbooot
2 years agoNew Contributor
Feature request: basic filters for `op inject`
I've been having a go at injecting secrets into config files using the op inject
CLI command, which is nice, but I'm already running into some problems. What I'm running in to right now is a way to indent secrets that have multi-line values. For instance, I'd like to inject a Google Service Account JSON key into my YAML config:
my_config:
gcs:
service_account_key: |
{{ op://my-secret/gcs_service_account_key }}
This will result in malformed YAML:
my_config:
gcs:
service_account_key: |
{
"type": "service_account",
"project_id": "myproject-12345",
[...]
}
It would be really nice if the op inject
command would support basic filters, for instance to fix the indentation:
my_config:
gcs:
service_account_key: |
{{ op://my-secret/gcs_service_account_key | indent }} # autodetect indentation
or:
my_config:
gcs:
service_account_key: |
{{ op://my-secret/gcs_service_account_key | indent 6 }} # specify the exact indentation
I'm sure there are many other useful filters (like base64
for instance).
1Password Version: Not Provided
Extension Version: Not Provided
OS Version: Not Provided
Browser: Not Provided
2 Replies
- mmorejonNew Contributor
A workaround is to create a script adding the space needed at the beginning of each line.
```
!/bin/sh
the script read line by line adding two spaces when the line doesn't start with the value:
- vault_: for variables
- -----BEGIN: for certificates
while IFS= read -r line
do
if [[ "$line" == "vault_"* ]] || [[ "$line" == " -----BEGIN"* ]]
then
echo "$line" >> tmp.yml
else
echo " $line" >> tmp.yml
fi
done < "$1"replace current content with the new YAML file formatted
mv tmp.yml $1
``` - mmorejonNew Contributor
I'm facing the same issue. Do you have a workaround?