Wonder Credentials
Helpers para Rails Credentials API.
Instalação
Adicione essa linha ao Gemfile:
gem 'wonder_credentials'
Então execute:
$ bundle
Uso
Altere as credenciais do Rails, organizando-a por ambientes:
$ rails credentials:edit
# config/credentials.yml.enc
default: &default
AWS:
ACCESS_KEY_ID: &default_aws_access_key_id
"shared_access_key_value"
SECRET_ACCESS_KEY: &default_aws_secret_access_key
"shared_secrets"
REGION: &default_aws_region
"sa-east-1"
SQS_REGION: *default_aws_region
SNS_REGION: *default_aws_region
development:
<<: *default
test:
<<: *default
production:
<<: *default
AWS:
ACCESS_KEY_ID: "real_access_key"
SECRET_ACCESS_KEY: "real_secrets"
Em development/test:
WonderCredentials.get('AWS.ACCESS_KEY_ID')
# => "shared_access_key_value"
Em production:
WonderCredentials.get('AWS.ACCESS_KEY_ID')
# => "real_access_key"
Hash
credentials = WonderCredentials.get(
access_key_id: 'AWS.ACCESS_KEY_ID',
secret_access_key: 'AWS.SECRET_ACCESS_KEY',
region: 'AWS.REGION'
)
# => { access_key_id: 'shared_access_key_value', secret_access_key: 'shared_secrets', region: 'sa-east-1' }
Aws.configure(credentials)
Também funciona em qualquer nível do hash.
WonderCredentials.get({ a: { b: { c: 'AWS.ACCESS_KEY_ID ' } } })
# => { a: { b: { c: 'shared_access_key_value' } } }
Aws.configure(credentials)
Array
WonderCredentials.get(['AWS.ACCESS_KEY_ID', 'AWS.SECRET_ACCESS_KEY'])
# => ['shared_access_key_value', 'shared_secrets']
Fallback
Environment
WonderCredentials.get('AWS.SQS_ACCESS_KEY_ID', env: true)
# => Credentials['AWS.SQS_ACCESS_KEY_ID'] ou ENV['AWS.SQS_ACCESS_KEY_ID'] ou null
Default Value
WonderCredentials.get('AWS.SQS_ACCESS_KEY_ID', env: true, default: 'key not found')
# => Credentials['AWS.SQS_ACCESS_KEY_ID'] ou ENV['AWS.SQS_ACCESS_KEY_ID'] ou 'key not found'