I think this solution seems the most Rails 5.2 friendly, but ideally isn't the 
perfect solution as ideally you could in fact (one day, in Rails 6, say), 
separate the 3 files themselves, so you could, say, give junior developers 
access to only development+staging credentials by giving the only the keys for 
the development + staging master keys (but continuing to check-in all 3 
.yml.enc files into source-code. the 3 keys are of course, not checked-in)

But if you have a team where you don't care if all the devs have the same 
(full) credentials then I like this solution best.

-Jason





> On Jun 10, 2019, at 8:40 PM, Sampson Crowley <sampsonsproje...@gmail.com> 
> wrote:
> 
> for rails 5, just nest environment specific credentials under a key for said 
> environment
> 
> then all you have to do when accessing said config is add the environment to 
> the party that pulls in config, e.g.:
> 
> credentials.yml.enc:
> 
> main_key:
>   development:
>     sub_key:
>       value_key: 'development'
>   production:
>     sub_key:
>       value_key: 'production'
>   test:
>     sub_key:
>       value_key: 'test'
> 
> code:
> 
> 
> my_credential = Rails.application.credentials.dig(:main_key, 
> Rails.env.to_sym, :sub_key, :value_key)
> ```
> 
> On Sunday, June 9, 2019 at 7:40:05 PM UTC-6, Jason Fleetwood-Boldt wrote:
> In some apps I've worked on Rails 5.1 and prior, environment variables, saved 
> directly into the source code.
> 
> In rails 5.2 Custom credentials encourages us to check-in only the encrypted 
> version of our configuration, and keep our master.key keyfile outside of our 
> repository. 
> 
> My question is this: Is there a way to segregate by environment? (i.e., 
> development, staging, production?)
> 
> seems like the instructions for setting up AWS keys, for example, would have 
> the dev, staging + production all pointing to & using the same AWS bucket, 
> access key, and secret. But it seems like for many services I'd want to have 
> different credentials for different environments. 
> 
> I found this SO post that discusses this question, but unfortunately it 
> doesn't present a very good answer IMHO because the there are only two 
> answers: 1) I don't quite understand and 2) a suggestion to basically check 
> all your ENV variables against each of your environments, which seems like it 
> could encourage a messy setup. I much like answer #1 from this SO post, but I 
> don't understand how to implement it practically. 
> 
> https://stackoverflow.com/questions/53642152/how-to-manage-credentials-for-different-environments-in-rails-5-2
>  
> <https://stackoverflow.com/questions/53642152/how-to-manage-credentials-for-different-environments-in-rails-5-2>
> 
> any tip appreciated. 
> Thanks,
> Jason
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to rubyonrails-talk+unsubscr...@googlegroups.com 
> <mailto:rubyonrails-talk+unsubscr...@googlegroups.com>.
> To post to this group, send email to rubyonrails-talk@googlegroups.com 
> <mailto:rubyonrails-talk@googlegroups.com>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/rubyonrails-talk/01fa12ca-06f5-4246-bead-503af4bf1a5c%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/rubyonrails-talk/01fa12ca-06f5-4246-bead-503af4bf1a5c%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/C2DFCFDD-69CD-4A7C-A7C3-1898210E9B42%40datatravels.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to