X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/74aa6539fccff9b135f3edec58801976b9a51538..0df5f0feeced5bff0adfb806dae2d3811257827f:/services/api/config/initializers/load_config.rb diff --git a/services/api/config/initializers/load_config.rb b/services/api/config/initializers/load_config.rb index f56bb2db41..16059cad76 100644 --- a/services/api/config/initializers/load_config.rb +++ b/services/api/config/initializers/load_config.rb @@ -1,17 +1,48 @@ -conf = {} -%w(config.defaults config).each do |cfgfile| +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + +begin + # If secret_token.rb exists here, we need to load it first. + require_relative 'secret_token.rb' +rescue LoadError + # Normally secret_token.rb is missing and the secret token is + # configured by application.yml (i.e., here!) instead. +end + +if (File.exist?(File.expand_path '../omniauth.rb', __FILE__) and + not defined? WARNED_OMNIAUTH_CONFIG) + Rails.logger.warn <<-EOS +DEPRECATED CONFIGURATION: + Please move your SSO provider config into config/application.yml + and delete config/initializers/omniauth.rb. +EOS + # Real values will be copied from globals by omniauth_init.rb. For + # now, assign some strings so the generic *.yml config loader + # doesn't overwrite them or complain that they're missing. + Rails.configuration.sso_app_id = 'xxx' + Rails.configuration.sso_app_secret = 'xxx' + Rails.configuration.sso_provider_url = '//xxx' + WARNED_OMNIAUTH_CONFIG = true +end + +$application_config = {} + +%w(application.default application).each do |cfgfile| path = "#{::Rails.root.to_s}/config/#{cfgfile}.yml" - if File.exists? path + if File.exist? path yaml = ERB.new(IO.read path).result(binding) - confs = YAML.load(yaml) - conf.merge!(confs['common'] || {}) - conf.merge!(confs[::Rails.env.to_s] || {}) + confs = YAML.load(yaml, deserialize_symbols: true) + # Ignore empty YAML file: + next if confs == false + $application_config.merge!(confs['common'] || {}) + $application_config.merge!(confs[::Rails.env.to_s] || {}) end end Server::Application.configure do nils = [] - conf.each do |k, v| + $application_config.each do |k, v| # "foo.bar: baz" --> { config.foo.bar = baz } cfg = config ks = k.split '.' @@ -36,9 +67,11 @@ Server::Application.configure do raise <