# Be sure to restart your server when you modify this file.

# Define an application-wide content security policy
# For further information see the following documentation
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy

Rails.application.config.content_security_policy do |policy|
  policy.default_src :self, :https
  policy.font_src :self, :https, :data
  policy.img_src :self, 'www.google-analytics.com', 'www.gstatic.com', :https, :data
  policy.object_src :none
  policy.script_src(
    :self,
    'maps.googleapis.com',
    'www.google-analytics.com',
    :https
  )
  policy.style_src :self, :unsafe_inline, 'maps.googleapis.com', :https

  # Specify URI for violation reports
  # policy.report_uri "/csp-violation-report-endpoint"
  if Rails.env.development?
    policy.connect_src :self, :https, 'http://localhost:3035',
                       'ws://localhost:3035'
  end
end

# If you are using UJS then enable automatic nonce generation
Rails.application.config.content_security_policy_nonce_generator = lambda do |_request|
  SecureRandom.base64(16)
end

# Set the nonce only to specific directives
Rails.application.config.content_security_policy_nonce_directives = %w[script-src]

# Report CSP violations to a specified URI
# For further information see the following documentation:
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
# Rails.application.config.content_security_policy_report_only = true
