use aws secret

pull/349/head
Pete Matsyburka 1 year ago
parent db22fe7518
commit e5b0a2355f

@ -6,6 +6,7 @@ ruby '3.3.3'
gem 'arabic-letter-connector', require: 'arabic-letter-connector/logic' gem 'arabic-letter-connector', require: 'arabic-letter-connector/logic'
gem 'aws-sdk-s3', require: false gem 'aws-sdk-s3', require: false
gem 'aws-sdk-secretsmanager', require: false
gem 'azure-storage-blob', require: false gem 'azure-storage-blob', require: false
gem 'bootsnap', require: false gem 'bootsnap', require: false
gem 'cancancan' gem 'cancancan'

@ -96,6 +96,9 @@ GEM
aws-sdk-core (~> 3, >= 3.191.0) aws-sdk-core (~> 3, >= 3.191.0)
aws-sdk-kms (~> 1) aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.8) aws-sigv4 (~> 1.8)
aws-sdk-secretsmanager (1.91.0)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.8.0) aws-sigv4 (1.8.0)
aws-eventstream (~> 1, >= 1.0.2) aws-eventstream (~> 1, >= 1.0.2)
azure-storage-blob (2.0.3) azure-storage-blob (2.0.3)
@ -563,6 +566,7 @@ DEPENDENCIES
annotate annotate
arabic-letter-connector arabic-letter-connector
aws-sdk-s3 aws-sdk-s3
aws-sdk-secretsmanager
azure-storage-blob azure-storage-blob
better_html better_html
bootsnap bootsnap

@ -1,25 +1,41 @@
# frozen_string_literal: true # frozen_string_literal: true
if ENV['RAILS_ENV'] == 'production' && ENV['SECRET_KEY_BASE'].to_s.empty? if ENV['RAILS_ENV'] == 'production'
require 'dotenv' if !ENV['AWS_SECRET_MANAGER_ID'].to_s.empty?
require 'securerandom' require 'aws-sdk-secretsmanager'
dotenv_path = "#{ENV.fetch('WORKDIR', '.')}/docuseal.env" client = Aws::SecretsManager::Client.new
unless File.exist?(dotenv_path) secret_id = ENV.fetch('AWS_SECRET_MANAGER_ID', '')
default_env = <<~TEXT
DATABASE_URL= # keep empty to use sqlite or specify postgresql database URL
SECRET_KEY_BASE=#{SecureRandom.hex(64)}
TEXT
File.write(dotenv_path, default_env) client.get_secret_value(secret_id:).secret_string.split("\n").each do |line|
end key, value = line.split('=', 2)
ENV[key] = value if !key.to_s.empty? && !value.to_s.empty?
end
RubyVM::YJIT.enable if ENV['RUBY_YJIT_ENABLE'] == 'true'
elsif ENV['SECRET_KEY_BASE'].to_s.empty?
require 'dotenv'
require 'securerandom'
dotenv_path = "#{ENV.fetch('WORKDIR', '.')}/docuseal.env"
database_url = ENV.fetch('DATABASE_URL', nil) unless File.exist?(dotenv_path)
default_env = <<~TEXT
DATABASE_URL= # keep empty to use sqlite or specify postgresql database URL
SECRET_KEY_BASE=#{SecureRandom.hex(64)}
TEXT
Dotenv.load(dotenv_path) File.write(dotenv_path, default_env)
end
ENV['DATABASE_URL'] = ENV['DATABASE_URL'].to_s.empty? ? database_url : ENV.fetch('DATABASE_URL', nil) database_url = ENV.fetch('DATABASE_URL', nil)
Dotenv.load(dotenv_path)
ENV['DATABASE_URL'] = ENV['DATABASE_URL'].to_s.empty? ? database_url : ENV.fetch('DATABASE_URL', nil)
end
end end
if ENV['DATABASE_URL'].to_s.split('@').last.to_s.split('/').first.to_s.include?('_') if ENV['DATABASE_URL'].to_s.split('@').last.to_s.split('/').first.to_s.include?('_')

Loading…
Cancel
Save