Sha256: 99c18fc4b9e80a66ebd6f397931dc56cdfbd547ff618999aa71576b43f4ca2db
Contents?: true
Size: 1.41 KB
Versions: 3
Compression:
Stored size: 1.41 KB
Contents
class Kamal::Secrets::Adapters::Doppler < Kamal::Secrets::Adapters::Base def requires_account? false end private def login(*) unless loggedin? `doppler login -y` raise RuntimeError, "Failed to login to Doppler" unless $?.success? end end def loggedin? `doppler me --json 2> /dev/null` $?.success? end def fetch_secrets(secrets, **) project_and_config_flags = "" unless service_token_set? project, config, _ = secrets.first.split("/") unless project && config raise RuntimeError, "Missing project or config from '--from=project/config' option" end project_and_config_flags = "-p #{project.shellescape} -c #{config.shellescape}" end secret_names = secrets.collect { |s| s.split("/").last } items = `doppler secrets get #{secret_names.map(&:shellescape).join(" ")} --json #{project_and_config_flags}` raise RuntimeError, "Could not read #{secrets} from Doppler" unless $?.success? items = JSON.parse(items) items.transform_values { |value| value["computed"] } end def service_token_set? ENV["DOPPLER_TOKEN"] && ENV["DOPPLER_TOKEN"][0, 5] == "dp.st" end def check_dependencies! raise RuntimeError, "Doppler CLI is not installed" unless cli_installed? end def cli_installed? `doppler --version 2> /dev/null` $?.success? end end
Version data entries
3 entries across 3 versions & 2 rubygems
Version | Path |
---|---|
kamal-2.4.0 | lib/kamal/secrets/adapters/doppler.rb |
nocoffee-kamal-2.3.0.3 | lib/kamal/secrets/adapters/doppler.rb |
nocoffee-kamal-2.3.0.2 | lib/kamal/secrets/adapters/doppler.rb |