envsecrets
"envsecrets" is a meta framework for environment variable loader. It is designed to load environment variables from various sources.
Installation
$ go get github.com/mackee/envsecrets
Usage
If you want set from AWS Secrets Manager, you should set environment variable like below.
export <SECRET_ENVNAME>=secretfrom:aws_secretsmanager:<secret-name>
If set a json value to the secret, you can access the value by specifying the key.
export <SECRET_ENVNAME>=secretfrom:aws_secretsmanager:<secret-name>.<key>
Load environment variables
import (
"github.com/mackee/envsecrets/dist/aws"
)
func main() {
ctx := context.Background()
if err := awsenvsecrets.Load(ctx); err != nil {
log.Fatalf("failed to load environment variables: %v", err)
}
}
Supported sources
✅: Implemented
🔍: Not implemented yet
| Source |
Type |
Description |
Format |
Status |
| AWS Secrets Manager |
aws_secretsmanager |
Load secret from AWS Secrets Manager |
secretfrom:aws_secretsmanager:<id>[.<key>] |
✅ |
| AWS Systems Manager ParameterStore |
aws_ssm |
Load secret from AWS Systems Manager ParameterStore |
secretfrom:aws_ssm:<name>[.<key>] |
✅ |
| Amazon S3 |
aws_s3 |
Load secret from Amazon S3 |
secretfrom:aws_s3:s3://<bucket-name>/<object-key>[.<key>] |
✅ |
| Google Cloud Secret Manager |
google_secretmanager |
Load secret from Google Cloud Secret Manager |
secretfrom:google_secretmanager:projects/<project>/secrets/<name>/versions/<version>[.<key>] |
✅ |
| 1Password |
onepassword |
Load secret from 1Password |
|
🔍 |
License
Copyright (c) 2024- mackee
Licensed under MIT License.