@jumpgroup/secret-fetcher
v2.0.0
Published
A script to fetch secrets from Passwd Manager and inject them into a file or a group of files.
Downloads
228
Keywords
Readme
Secrets Fetcher
This is a Node.js package that replaces secrets in configuration files. It works by fetching variables from a remote server, merging them with any additional variables provided, and then replacing placeholders in configuration files with the merged variables. The resulting files are then saved to a specified output directory.
Installation
To install this package, run the following command:
npm install @jumpgroup/secret-fetcher
Usage
To use this package you can import the:
- 'replaceSecrets',
- 'replaceFiles'
- 'addUpdateSecret'
functions from the package and call it with the necessary parameters or you can use this functions like a command.
Include as a functions
If you want to use this like a functions has the following signature:
replaceSecrets
replaceSecrets(groupKey, groupSecret, input, output, addVariables = {})
Here is an explanation of the parameters:
replaceFiles
replaceFiles(input, output, addVariables = {})
Here is an explanation of the parameters:
addUpdateSecret
addUpdateSecret(groupKey, groupSecret, note, env)
Here is an explanation of the parameters:
Include as a command
If you want to use this like a command you can use the following commands:
replaceSecrets
To replace secrets in configuration files, use the following command:
secret-fetcher replace-secrets --groupKey myGroup --groupSecret mySecret --input config/**/* --output .config --addVariables '{"myVariable": "myValue"}'
The following options are available:
replaceFiles
To replace secrets in configuration files, use the following command:
secret-fetcher replace-files --input config/**/* --output .config --variables '{"myVariable": "myValue"}'
The following options are available:
addUpdateSecret
To add or update a secret, use the following command:
secret-fetcher add-update-secret --groupKey myGroup --groupSecret mySecret --note myNote --env site
The following options are available:
Example Usage
Include as a functions
replaceSecrets
import { replaceSecrets } from '@jumpgroup/secret-fetcher';
replaceSecrets('myGroup', 'mySecret', 'config/**/*', '.config');
This will replace secrets in all files in the config directory and its subdirectories and save the resulting files in a directory called ".config".
replaceFiles
import { replaceFiles } from '@jumpgroup/secret-fetcher';
replaceFiles('config/**/*', '.config');
This will replace secrets in all files in the config directory and its subdirectories and save the resulting files in a directory called ".config".
addUpdateSecret
import { addUpdateSecret } from '@jumpgroup/secret-fetcher';
addUpdateSecret('myGroup', 'mySecret', 'myNote', 'site');
This will create or update a secret with the note "myNote" using tag and name like "myGroup-site".
Include as a command
replaceSecrets
secret-fetcher replace-secrets --groupKey myGroup --groupSecret mySecret --input config/**/* --output .config --addVariables '{"myVariable": "myValue"}'
This will replace secrets in all files in the config directory and its subdirectories and save the resulting files in a directory called ".config".
replaceFiles
secret-fetcher replace-files --input config/**/* --output .config --variables '{"myVariable": "myValue"}'
This will replace secrets in all files in the config directory and its subdirectories and save the resulting files in a directory called ".config".
addUpdateSecret
secret-fetcher add-update-secret --groupKey myGroup --groupSecret mySecret --note myNote --env site
This will create or update a secret with the note "myNote" using tag and name like "myGroup-site".
License
This package is licensed under the MIT License.