Module: GlobiGuard::Bootstrap

Defined in:
lib/globiguard.rb

Class Method Summary collapse

Class Method Details

.install_registration(profile, package_name:, package_version:, integration_kind:, runtime_kind:) ⇒ Object



186
187
188
189
190
191
192
193
194
195
196
197
# File 'lib/globiguard.rb', line 186

def install_registration(profile, package_name:, package_version:, integration_kind:, runtime_kind:)
  validate_profile(profile)
  {
    environment: profile.fetch(:environment),
    deploymentMode: profile.fetch(:deploymentMode),
    issuerMode: profile.fetch(:issuerMode),
    installReporting: profile.fetch(:installReporting),
    installLabel: profile[:installLabel],
    package: { name: package_name, version: package_version },
    integration: { kind: integration_kind, runtime: runtime_kind }
  }
end

.validate_profile(profile) ⇒ Object

Raises:

  • (ArgumentError)


199
200
201
202
203
204
205
206
207
208
# File 'lib/globiguard.rb', line 199

def validate_profile(profile)
  raise ArgumentError, "Invalid environment." unless ENVIRONMENTS.include?(profile[:environment])
  if profile[:deploymentMode] == "hosted" && profile[:issuerMode] != "globiguard_issued"
    raise ArgumentError, "Hosted deployments require globiguard_issued issuer mode."
  end
  return unless %w[self_hosted sovereign].include?(profile[:deploymentMode])

  raise ArgumentError, "Self-hosted and sovereign deployments require customer_issued issuer mode." unless profile[:issuerMode] == "customer_issued"
  raise ArgumentError, "Self-hosted and sovereign install reporting must be opt_in or disabled." unless %w[opt_in disabled].include?(profile[:installReporting])
end