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



328
329
330
331
332
333
334
335
336
337
338
339
340
341
# File 'lib/globiguard.rb', line 328

def install_registration(profile, package_name:, package_version:, integration_kind:, runtime_kind:)
  validate_profile(profile)
  {
    packageName: package_name,
    packageVersion: package_version,
    integrationKind: integration_kind,
    runtimeKind: runtime_kind,
    environment: profile.fetch(:environment),
    deploymentMode: profile.fetch(:deploymentMode),
    issuerMode: profile.fetch(:issuerMode),
    installReporting: profile.fetch(:installReporting),
    installLabel: profile[:installLabel]
  }
end

.validate_profile(profile) ⇒ Object

Raises:

  • (ArgumentError)


343
344
345
346
347
348
349
350
351
352
# File 'lib/globiguard.rb', line 343

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