Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(35)

Unified Diff: appengine/monorail/settings.py

Issue 1868553004: Open Source Monorail (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Rebase Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « appengine/monorail/services/usergroup_svc.py ('k') | appengine/monorail/sitewide/__init__.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/monorail/settings.py
diff --git a/appengine/monorail/settings.py b/appengine/monorail/settings.py
new file mode 100644
index 0000000000000000000000000000000000000000..5a463faefe29d005080ceb61eaeeda8ca64e01e0
--- /dev/null
+++ b/appengine/monorail/settings.py
@@ -0,0 +1,297 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is govered by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
+"""Defines settings for monorail."""
+
+import os
+import re
+
+from google.appengine.api import app_identity
+
+from proto import project_pb2
+from proto import site_pb2
+
+
+# This file is divided into the following parts:
+# 1. Settings you must edit before deploying your site.
+# 2. Settings you would edit on certainoccasions while maintaining your site.
+# 3. Settings enable specific features.
+# 4. Settings that you can usually leave as-is.
+
+# TODO(jrobbins): Store these settings in the database and implement
+# servlets for domain admins to edit them without needing to redeploy the
+# app.
+
+
+####
+# Part 1: settings that you must edit before deploying your site.
+
+# Email address that is offered to users who might need help using the tool.
+feedback_email = 'jrobbins+monorail.feedback@chromium.org'
+
+# For debugging when running in staging: send all outbound
+# email to this address rather than to the actual address that
+# it would normally be sent to.
+send_all_email_to = 'jrobbins+all+%(user)s+%(domain)s@chromium.org'
+
+# For debugging when running the dev server locally: send all outbound
+# email to this address rather than to the actual address that
+# it would normally be sent to.
+send_dev_email_to = (send_all_email_to or
+ 'jrobbins+dev+%(user)s+%(domain)s@chromium.org')
+
+# User to send emails from Monorail as. The reply_to sections of emails will be
+# set to appspotmail addresses.
+# Note: If configuring a new monorail instance without DNS records and reserved
+# email addresses then setting these values to
+# 'reply@${app_id}.appspotmail.com' and 'noreply@{app_id}.appspotmail.com'
+# is likely the best option.
+send_email_as = 'monorail@chromium.org'
+send_noreply_email_as = 'monorail+noreply@chromium.org'
+
+# The default is to look for a database named "monorail" in replicas
+# named "replica-00" .. "replica-09"
+db_database_name = 'monorail'
+db_replica_prefix = 'replica-'
+
+# The number of logical database shards used. Each replica is complete copy
+# of the master, so any replica DB can answer queries about any logical shard.
+num_logical_shards = 10
+
+# "Learn more" link for the site home page
+# TODO(agable): Update this when we have publicly visible documentation.
+learn_more_link = None
+
+# Site name, displayed above the search box on the site home page.
+site_name = 'Monorail'
+
+# Who is allowed to create new projects? Set to ANYONE or ADMIN_ONLY.
+project_creation_restriction = site_pb2.UserTypeRestriction.ADMIN_ONLY
+
+# Default access level when creating a new project.
+default_access_level = project_pb2.ProjectAccess.ANYONE
+
+# Possible access levels to offer when creating a new project.
+allowed_access_levels = [
+ project_pb2.ProjectAccess.ANYONE,
+ project_pb2.ProjectAccess.MEMBERS_ONLY]
+
+# Who is allowed to create user groups? Set to ANYONE or ADMIN_ONLY.
+group_creation_restriction = site_pb2.UserTypeRestriction.ADMIN_ONLY
+
+####
+# Part 2: Settings you would edit on certain occasions.
+
+# Read-only mode prevents changes while we make server-side changes.
+read_only = False
+
+# Timestamp used to notify users when the read only mode or other status
+# described in the banner message takes effect. It is
+# expressed as a 5-tuple of ints: (year, month, day, hour, minute),
+# e.g. (2009, 3, 20, 21, 45) represents March 20 2009 9:45PM.
+banner_time = None
+
+# Display a site maintenance banner on every monorail page.
+banner_message = ''
+
+# User accounts with email addresses at these domains are all banned.
+banned_user_domains = []
+
+
+####
+# Part 3: Settings that enable specific features
+
+# Enables "My projects" drop down menu
+enable_my_projects_menu = True
+
+# Enables stars in the UI for projects
+enable_project_stars = True
+
+# Enables stars in the UI for users
+enable_user_stars = True
+
+# Enable quick edit mode in issue peek dialog and show dialog on hover
+enable_quick_edit = True
+
+
+####
+# Part 4: Settings that you can usually leave as-is.
+
+# dev_mode makes the server slower and more dynamic for easier debugging.
+# E.g., template files are reloaded on each request.
+dev_mode = os.environ['SERVER_SOFTWARE'].startswith('Development')
+unit_test_mode = os.environ['SERVER_SOFTWARE'].startswith('test')
+
+# If we assume 1KB each, then this would be 400 MB for this cache in frontends
+# that have only 1024 MB total.
+issue_cache_max_size = 400 * 1000
+
+# 150K users should be enough for all the frequent daily users plus the
+# occasional users that are mentioned on any popular pages.
+user_cache_max_size = 150 * 1000
+
+# Recompute derived issue fields via work items rather than while
+# the user is waiting for a page to load.
+recompute_derived_fields_in_worker = True
+
+# The issue search SQL queries have a LIMIT clause with this amount.
+search_limit_per_shard = 10 * 1000 # This is more than all open in chromium.
+
+# The GAE search feature is slow, so don't request too many results.
+fulltext_limit_per_shard = 1 * 1000
+
+# Retrieve at most this many issues from the DB when showing an issue grid.
+max_issues_in_grid = 6000
+# This is the most tiles that we show in grid view. If the number of results
+# is larger than this, we display IDs instead.
+max_tiles_in_grid = 1000
+
+# Maximum number of project results to display on a single pagination page
+max_project_search_results_per_page = 100
+
+# Maxium number of results per pagination page, regardless of what
+# the user specified in his/her request. This exists to prevent someone
+# from doing a DoS attack that makes our servers do a huge amount of work.
+max_artifact_search_results_per_page = 1000
+
+# Maximum number of comments to display on a single pagination page
+max_comments_per_page = 500
+
+# Max number of issue starrers to notify via email. Issues with more
+# that this many starrers will only notify the last N of them after a
+# comment from a project member.
+max_starrers_to_notify = 4000
+
+# In projects that have more than this many issues the next and prev
+# links on the issue detail page will not be shown when the user comes
+# directly to an issue without specifying any query terms.
+threshold_to_suppress_prev_next = 10000
+
+# Format string for the name of the FTS index shards for issues.
+search_index_name_format = 'issues%02d'
+
+# Name of the FTS index for projects (not sharded).
+project_search_index_name = 'projects'
+
+# Each backend has this many seconds to respond, otherwise frontend gives up
+# on that shard.
+backend_deadline = 45
+
+# If the initial call to a backend fails, try again this many times.
+# Initial backend calls are failfast, meaning that they fail immediately rather
+# than queue behind other requests. The last 2 retries will wait in queue.
+backend_retries = 3
+
+# Do various extra logging at INFO level.
+enable_profiler_logging = False
+
+# Mail sending domain. Normally set this to None and it will be computed
+# automatically from your AppEngine APP_ID. But, it can be overridden below.
+mail_domain = None
+
+# URL format to browse source code revisions. This can be overridden
+# in specific projects by setting project.revision_url_format.
+# The format string may include "{revnum}" for the revision number.
+revision_url_format = 'https://crrev.com/{revnum}'
+
+# Users with emails in the priviledged domains see unobscured email addresses.
+priviledged_user_domains = [
+ 'google.com', 'chromium.org', 'webrtc.org',
+ ]
+
+# Names of projects on code.google.com which we allow cross-linking to.
+recognized_codesite_projects = [
+ 'chromium-os',
+ 'chrome-os-partner',
+]
+
+###
+# Part 5: Instance-specific settings that override lines above.
+
+# We usually use a DB instance named "master" for writes.
+db_master_name = 'master'
+# This ID is for -staging and other misc deployments. Prod is defined below.
+analytics_id = 'UA-55762617-20'
+
+if unit_test_mode:
+ db_cloud_project = '' # No real database is used during unit testing.
+else:
+ app_id = app_identity.get_application_id()
+
+ if app_id == 'monorail-staging':
+ site_name = 'Monorail Staging'
+ banner_message = 'This staging site does not send emails.'
+ # The Google Cloud SQL databases to use.
+ db_cloud_project = app_id
+ db_replica_prefix = 'replica-7-'
+
+ elif app_id == 'monorail-prod':
+ send_all_email_to = None # Deliver it to the intended users.
+ # The Google Cloud SQL databases to use.
+ db_cloud_project = app_id
+ analytics_id = 'UA-55762617-14'
+
+if dev_mode:
+ site_name = 'Monorail Dev'
+ num_logical_shards = 10
+
+# Combine the customized info above to make the name of the master DB instance.
+db_instance = db_cloud_project + ':' + db_master_name
+
+# Format string for the name of the physical database replicas.
+physical_db_name_format = db_cloud_project + ':' + db_replica_prefix + '%02d'
+
+# preferred domains to display
+preferred_domains = {
+ 'monorail-prod.appspot.com': 'bugs.chromium.org',
+ 'monorail-staging.appspot.com': 'bugs-staging.chromium.org'}
+
+# Borg robot service account
+borg_service_account = 'chrome-infra-prod-borg@system.gserviceaccount.com'
+
+# Prediction API params.
+classifier_project_id = 'project-id-testing-only'
+
+# Necessary for tests.
+if 'APPLICATION_ID' not in os.environ:
+ os.environ['APPLICATION_ID'] = 'testing app'
+
+if dev_mode:
+ # This is monorail-staging. There is no local stub for Cloud Prediction.
+ classifier_project_id = '52759169022'
+else:
+ classifier_project_id = app_identity.get_application_id()
+
+classifier_model_id = 'spam'
+
+# Number of distinct users who have to flag an issue before it
+# is autmatically removed as spam.
+# 5 is an arbitrarily chosen value. Set it to something really high
+# to effectively disable spam flag threshhold checking.
+spam_flag_thresh = 5
+
+# If the classifier's confidence is less than this value, the
+# item will show up in the spam moderation queue for manual
+# review.
+classifier_moderation_thresh = 1.0
+
+# If the classifier's confidence is greater than this value,
+# and the label is 'spam', the item will automatically be created
+# with is_spam=True, and will be filtered out from search results.
+classifier_spam_thresh = 1.0
+
+ratelimiting_enabled = False
+
+# Enable cost-based rate limiting. This only applies if
+# ratelimiting_enabled = True
+ratelimiting_cost_enabled = True
+
+# Requests that take longer than this are hit with extra
+# counts added to their bucket at the end of the request.
+ratelimiting_cost_thresh_ms = 2000
+
+# Requests that hit ratelimiting_cost_thresh_sec get this
+# extra amount added to their bucket at the end of the request.
+ratelimiting_cost_penalty = 1
« no previous file with comments | « appengine/monorail/services/usergroup_svc.py ('k') | appengine/monorail/sitewide/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698