# Do not use this file for site configuration. Create application.yml
# instead (see application.yml.example).

development:
  force_ssl: false
  cache_classes: false
  whiny_nils: true
  consider_all_requests_local: true
  action_controller.perform_caching: false
  action_mailer.raise_delivery_errors: false
  action_mailer.perform_deliveries: false
  active_support.deprecation: :log
  action_dispatch.best_standards_support: :builtin
  active_record.mass_assignment_sanitizer: :strict
  active_record.auto_explain_threshold_in_seconds: 0.5
  assets.compress: false
  assets.debug: true
  local_modified: <%= '-modified' if `git status -s` %>

production:
  force_ssl: true
  cache_classes: true
  consider_all_requests_local: false
  action_controller.perform_caching: true
  serve_static_assets: false
  assets.compress: true
  assets.compile: false
  assets.digest: true

test:
  force_ssl: false
  cache_classes: true
  serve_static_assets: true
  static_cache_control: public, max-age=3600
  whiny_nils: true
  consider_all_requests_local: true
  action_controller.perform_caching: false
  action_dispatch.show_exceptions: false
  action_controller.allow_forgery_protection: false
  action_mailer.delivery_method: :test
  active_support.deprecation: :stderr
  active_record.mass_assignment_sanitizer: :strict
  uuid_prefix: zzzzz
  secret_token: <%= rand(2**512).to_s(36) %>
  blob_signing_key: zfhgfenhffzltr9dixws36j1yhksjoll2grmku38mi7yxd66h5j4q9w4jzanezacp8s6q0ro3hxakfye02152hncy6zml2ed0uc
  user_profile_notification_address: arvados@example.com
  workbench_address: https://localhost:3001/
  websocket_address: ws://127.0.0.1:3333/websocket

common:
  uuid_prefix: <%= Digest::MD5.hexdigest(`hostname`).to_i(16).to_s(36)[0..4] %>

  # If not false, this is the hostname that will be used for root_url and
  # advertised in the discovery document.  By default, use the default Rails
  # logic for deciding on a hostname.
  host: false

  # If this is not false, HTML requests at the API server's root URL
  # are redirected to this location, and it is provided in the text of
  # user activation notification email messages to remind them where
  # to log in.
  workbench_address: false

  # Git repositories must be readable by api server, or you won't be
  # able to submit crunch jobs. To pass the test suites, put a clone
  # of the arvados tree in {git_repositories_dir}/arvados.git or
  # {git_repositories_dir}/arvados/.git
  git_repositories_dir: /var/lib/arvados/git

  # This is a (bare) repository that stores commits used in jobs.  When a job
  # runs, the source commits are first fetched into this repository, then this
  # repository is used to deploy to compute nodes.  This should NOT be a
  # subdirectory of {git_repositiories_dir}.
  git_internal_dir: /var/lib/arvados/internal.git

  # :none or :slurm_immediate
  crunch_job_wrapper: :none

  # username, or false = do not set uid when running jobs.
  crunch_job_user: crunch

  # The web service must be able to create/write this file, and
  # crunch-job must be able to stat() it.
  crunch_refresh_trigger: /tmp/crunch_refresh_trigger

  # These two settings control how frequently log events are flushed to the
  # database.  Log lines are buffered until either crunch_log_bytes_per_event
  # has been reached or crunch_log_seconds_between_events has elapsed since
  # the last flush.
  crunch_log_bytes_per_event: 4096
  crunch_log_seconds_between_events: 1

  # The sample period for throttling logs, in seconds.
  crunch_log_throttle_period: 60

  # Maximum number of bytes that job can log over crunch_log_throttle_period
  # before being silenced until the end of the period.
  crunch_log_throttle_bytes: 65536

  # Maximum number of lines that job can log over crunch_log_throttle_period
  # before being silenced until the end of the period.
  crunch_log_throttle_lines: 1024

  # Maximum bytes that may be logged by a single job.  Log bytes that are
  # silenced by throttling are not counted against this total.
  crunch_limit_log_bytes_per_job: 67108864

  # Path to dns server configuration directory (e.g. /etc/unbound.d/conf.d), 
  # or false = do not update dns server data.
  dns_server_conf_dir: false

  # Template for the dns server host snippets. See unbound.template in this directory for
  # an example. Set to false to disable.
  dns_server_conf_template: false

  # Dns server reload command, or false = do not reload dns server after data change
  dns_server_reload_command: false

  # Example for unbound
  #dns_server_conf_dir: /etc/unbound/conf.d
  #dns_server_conf_template: /path/to/your/api/server/config/unbound.template
  #dns_server_reload_command: /etc/init.d/unbound reload

  compute_node_domain: false
  compute_node_nameservers:
    - 192.168.1.1

  # The version below is suitable for AWS.
  # To use it, copy it to your application.yml, uncomment, and change <%# to <%=
  # compute_node_nameservers: <%#
  #   require 'net/http'
  #   ['local', 'public'].collect do |iface|
  #     Net::HTTP.get(URI("http://169.254.169.254/latest/meta-data/#{iface}-ipv4")).match(/^[\d\.]+$/)[0]
  #   end << '172.16.0.23'
  # %>

  accept_api_token: {}

  # When new_users_are_active is set to true, the user agreement check is skipped.
  new_users_are_active: false

  admin_notifier_email_from: arvados@example.com
  email_subject_prefix: "[ARVADOS] "
  user_notifier_email_from: arvados@example.com
  new_user_notification_recipients: [ ]
  new_inactive_user_notification_recipients: [ ]

  # The e-mail address of the user you would like to become marked as an admin
  # user on their first login.
  # In the default configuration, authentication happens through the Arvados SSO
  # server, which uses openid against Google's servers, so in that case this
  # should be an address associated with a Google account.
  auto_admin_user: false

  # If auto_admin_first_user is set to true, the first user to log in when no
  # other admin users exist will automatically become an admin user.
  auto_admin_first_user: false

  ## Set Time.zone default to the specified zone and make Active
  ## Record auto-convert to this zone.  Run "rake -D time" for a list
  ## of tasks for finding time zone names. Default is UTC.
  #time_zone: Central Time (US & Canada)

  ## Default encoding used in templates for Ruby 1.9.
  encoding: utf-8

  # Enable the asset pipeline
  assets.enabled: true

  # Version of your assets, change this if you want to expire all your assets
  assets.version: "1.0"

  arvados_theme: default

  # The ARVADOS_WEBSOCKETS environment variable determines whether to
  # serve http, websockets, or both.
  #
  # If ARVADOS_WEBSOCKETS="true", http and websockets are both served
  # from the same process.
  #
  # If ARVADOS_WEBSOCKETS="ws-only", only websockets is served.
  #
  # If ARVADOS_WEBSOCKETS="false" or not set at all, only http is
  # served. In this case, you should have a separate process serving
  # websockets, and the address of that service should be given here
  # as websocket_address.
  #
  # If websocket_address is false (which is the default), the
  # discovery document will tell clients to use the current server as
  # the websocket service, or (if the current server does not have
  # websockets enabled) not to use websockets at all.
  #
  # Example: Clients will connect to the specified endpoint.
  #websocket_address: wss://127.0.0.1:3333/websocket
  # Default: Clients will connect to this server if it's running
  # websockets, otherwise none at all.
  websocket_address: false

  # blob_signing_key is a string of alphanumeric characters used to
  # generate permission signatures for Keep locators. It must be
  # identical to the permission key given to Keep. IMPORTANT: This is
  # a site secret. It should be at least 50 characters.
  blob_signing_key: ~

  # Amount of time (in seconds) for which a blob permission signature
  # remains valid.  Default: 2 weeks (1209600 seconds)
  blob_signing_ttl: 1209600

  # Allow clients to create collections by providing a manifest with
  # unsigned data blob locators. IMPORTANT: This effectively disables
  # access controls for data stored in Keep: a client who knows a hash
  # can write a manifest that references the hash, pass it to
  # collections.create (which will create a permission link), use
  # collections.get to obtain a signature for that data locator, and
  # use that signed locator to retrieve the data from Keep. Therefore,
  # do not turn this on if your users expect to keep data private from
  # one another!
  permit_create_collection_with_unsigned_manifest: false

  # secret_token is a string of alphanumeric characters used by Rails
  # to sign session tokens. IMPORTANT: This is a site secret. It
  # should be at least 50 characters.
  secret_token: ~

  # email address to which mail should be sent when the user creates profile for the first time
  user_profile_notification_address: false

  default_openid_prefix: https://www.google.com/accounts/o8/id

  # Config parameters to automatically setup new users.
  # The params auto_setup_new_users_with_* are meaningful only when auto_setup_new_users is turned on.
  # auto_setup_name_blacklist is a list of usernames to be blacklisted for auto setup.
  auto_setup_new_users: false
  auto_setup_new_users_with_vm_uuid: false
  auto_setup_new_users_with_repository: false
  auto_setup_name_blacklist: [arvados, git, gitolite, gitolite-admin, root, syslog]

  # source_version
  source_version: "<%= `git log -n 1 --format=%h` %>"
  local_modified: false

  # Default lifetime for ephemeral collections: 2 weeks.
  default_trash_lifetime: 1209600