You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2015/06/29 19:40:25 UTC

[13/50] [abbrv] incubator-usergrid git commit: Re-organize usergrid-default properties, providing more information and defaults for each property. Update figs with consistent comments around the properties and defaults.

Re-organize usergrid-default properties, providing more information and defaults for each property.  Update figs with consistent comments around the properties and defaults.


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/851fa4a3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/851fa4a3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/851fa4a3

Branch: refs/heads/USERGRID-703
Commit: 851fa4a31cb1407f3741f3d5ca6df34911808245
Parents: 4b9a310
Author: Michael Russo <mr...@apigee.com>
Authored: Tue Jun 16 22:04:23 2015 -0700
Committer: Michael Russo <mr...@apigee.com>
Committed: Tue Jun 16 22:04:23 2015 -0700

----------------------------------------------------------------------
 .../main/resources/usergrid-default.properties  | 769 +++++++++++++------
 .../asyncevents/AsyncIndexProvider.java         |   2 +-
 .../index/IndexProcessorFig.java                |  46 +-
 .../persistence/core/metrics/MetricsFig.java    |   5 +-
 .../usergrid/persistence/index/IndexFig.java    |  96 +--
 .../usergrid/persistence/queue/QueueFig.java    |  32 +-
 6 files changed, 630 insertions(+), 320 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/851fa4a3/stack/config/src/main/resources/usergrid-default.properties
----------------------------------------------------------------------
diff --git a/stack/config/src/main/resources/usergrid-default.properties b/stack/config/src/main/resources/usergrid-default.properties
index 6dab7a8..016bf15 100644
--- a/stack/config/src/main/resources/usergrid-default.properties
+++ b/stack/config/src/main/resources/usergrid-default.properties
@@ -13,66 +13,363 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-# Usergrid configuration properties
-# Loaded by Spring PropertyPlaceholderConfigurer
-#
 
+
+###############################################################################
+#                       USERGRID DEPLOYMENT PROPERTIES
+###############################################################################
+#
+# Contained below are properties used to configure the Usergrid application.
+# Some of the core settings depend on the specific Usergrid deployment architecture.
+# For more info, check the docs at:
+#     <http://usergrid.readthedocs.org/en/two-dot-o-instructions/index.html>
+#
+# All properties below will follow the below format:
 #
-# Do not put installation-specific or confidential
-# configuration settings here if you plan to push
-# this to GitHub
+#     # Property Description
+#     #property=defaultValue
 #
-# Put your settings in usergrid-deployment.properties
-# instead.
+# DO NOT PUT INSTALLATION SPECIFIC OR CONFIDENTIAL SETTINGS HERE IF YOU PLAN
+# TO COMMIT/PUSH THIS TO GIT.
 #
 
-# EM for old Entity Manager, CP for new Core Persistence
+
+
+
+###################  Usergrid Persistence Implementation  ####################
+#
+# Set the persistence implementation to use.  For 2.1+, this should be CP
+#
+# Valid values: CP or EM
+#
 usergrid.persistence=CP
 
 
-###############################################################################
+
+
+###########################  Datastore (Cassandra)  ###########################
+#
+# These settings will configure how Usergrid interacts with with Cassandra.
 #
-# Corepersistence properties
 
-# These will be set automatically bp CpSetup
-#cassandra.hosts=
-#cassandra.port=
-#cassandra.cluster_name=
-#collections.keyspace.strategy.class=
-#collections.keyspace.strategy.options=replication_factor:1
+# Tell Usergrid which version of cassandra is being used.
+#cassandra.version=1.2
 
-collections.keyspace=Usergrid_Applications
-cassandra.embedded=false
-cassandra.version=1.2
-cassandra.timeout=2000
+# Set the hosts and port used for connecting to Cassandra.
+#
+#cassandra.hosts=localhost
+#cassandra.port=9160
 
-# Max Cassandra connections, applies to both CP and EM
+# Set the maximum number of connections to Cassandra
+#
+#cassandra.connections=100
 cassandra.connections=600
 
-collection.stage.transient.timeout=60
+# Read timeout for an individual request (in millseconds)
+#
+#cassandra.timeout=5000
+
+# The name of the cassandra cluster to use.  Helpful is running Usergrid in a
+# multi-tenant environment and sharing clusters.
+#
+#cassandra.cluster=Usergrid
+
+# Set the credentials used for Cassandra, if any.
+#
+cassandra.username=
+cassandra.password=
+
+# Configure specific keyspace that Usergrid will use.  If deploying multiple
+# instances of Usergrid in a single deployment, ensure that that the keyspace
+# name used is the same so data is not segmented.
+#
+#cassandra.system.keyspace=Usergrid
+#cassandra.keyspace.application=Usergrid_Applications
+#cassandra.keyspace.strategy=org.apache.cassandra.locator.SimpleStrategy
+#cassandra.keyspace.replication=replication_factor:1
+
+
+# Cassandra Consistency levels for use in the cluster.  With large clusters, > 3
+# nodes, these settings could impact read and write performance.  For balanced
+# data consistency and performance, choose LOCAL_QUORUM.  For more info on data
+# consistency, check the Cassandra docs at:
+# <http://docs.datastax.com/en/cassandra/2.0/cassandra/dml/dml_config_consistency_c.html>
+#
+
+# Read consistency level.  This is the default Usergrid read consistency.
+#
+#usergrid.read.cl=CL_LOCAL_ONE
+
+# When choosing to perform a consistent read from Usergrid, this is the
+# consistency level used when reading from Cassandra.
+#
+#usergrid.consistent.read.cl=CL_LOCAL_QUORUM
+
+# Write consistency level
+#
+#usergrid.write.cl=CL_QUORUM
+
+
+# Timeout used when writing unique values and logs to the datastore. (in seconds).
+# If the datastore becomes unavailable before the timeout, the column will expire and
+# not be left around in the application.
+#
+#collection.stage.transient.timeout=5
+
+# Set the maximum number of pending mutations allowed in ram before it is flushed
+# to cassandra.
+#
+#cassandra.mutation.flushsize=2000
+
+# Set the cache size and timeout for entities
+#
+#usergrid.entity_cache_size=200
+#usergrid.entity_cache_timeout_ms=500
+
+
 
-hystrix.threadpool.graph_user.coreSize=40
-hystrix.threadpool.graph_async.coreSize=40
 
+#####################  Elasticsearch (Indexing/Querying)  #####################
+#
+# Elasticsearch is used for indexing in Usergrid 2.x.  The settings below are
+# used to configure how Usergrid interacts with Elasticsearch, including basic
+# host and port configuration.
+#
+
+# Set a comma-separated list of one or more Elasticsearch hosts.
+#
+#elasticsearch.hosts=127.0.0.1
+
+# Set the port used when connecting to Elasticsearch.
+#
+#elasticsearch.port=9300
+
+# Set the Elasticsearch cluster name
+#
 elasticsearch.cluster_name=elasticsearch
+
+# Set the Elasticsearch client node name
+#
+elasticsearch.node_name=default
+
+# Set the Elasticsearch index prefix
+#
 elasticsearch.index_prefix=elasticsearch
-elasticsearch.hosts=127.0.0.1
-elasticsearch.port=9300
-#We don't want to overwrite, let the defaults be used
+
+# Set how Elasticsearch should be started.  Valid values: embedded, forked or remote
+#
+#elasticsearch.startup=remote
+
+
+# Set the number of shards and replicas to use for the Elasticsearch index.
+# Depending on the use case for Usergrid, these numbers may vary.  A single running
+# instance of Usergrid will always use only 1 index, and you can choose how it's
+# sharded in Elastic search to reach optimal indexing for your dataset.  For more
+# info about sharding, here is a good starting point:
+#  <https://www.elastic.co/guide/en/elasticsearch/guide/current/routing-value.html>
+#
 #elasticsearch.number_shards=1
 #elasticsearch.number_replicas=1
 
-index.query.limit.default=1000
 
-usergrid.entity_cache_size=200
-usergrid.entity_cache_timeout_ms=500
+# Set an alias used for this running instance of Usergrid.  This allows you to
+# configure multiple Usergrid instances pointing to the same Elasticsearch cluster,
+# but have data indexed separately for optimal querying. (Multi-tenacy use.)
+#
+#elasticsearch.alias_postfix=alias
+
+# Set a timeout for the cursor returned with query responses.
+#
+#elasticsearch.cursor_timeout.minutes=2
+
+# Set the number of failures that occur before refreshing an Elasticsearch client.
+#
+#elasticsearch.fail_refresh=20
+
+# Set a flag to force refresh the index after every write into the index. This
+# setting is not advised to be set to TRUE as it will have a tremendous impact
+# negatively on performance.  USE THIS ONLY FOR TESTING
+#elasticsearch.force_refresh=false
+
+# Set the maximum buffer size to use before sending index write requests to Elasticsearch.
+#
+#elasticsearch.buffer_size=1000
+
+# Set the batch size to use when sending batched index write requests to Elasticsearch.
+#
+#elasticsearch.batch_size=1000
+
+# Set the maximum time to wait before the Usergrid buffer flushes and sends index
+# write requests to Elasticsearch. This is used so the application doesn't wait
+# forever for the buffer to reach its size before writing data to Elasticsearch.
+#
+#elasticsearch.buffer_timeout=250
+
+# Set the write consistency level for writing into the Elasticsearch index.  The
+# default value is 'one', and you can configure 'all' and 'quorum'.
+#
+#elasticsearch.write_consistency_level=one
+
+
+# Set the timeout used when writing into the Elasticsearch index. (in milliseconds)
+#
+#elasticsearch.write.timeout=5000
+
+# Set the type of client that Usergrid uses for Elasticsearch.  Default is NODE
+# and should be left in this configuration.  For more info, check the Elasticsearch
+# docs at:
+#  <https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/client.html>
+#
+#elasticsearch.client.type=NODE
+
+# Set the maximum number of searches that are allowed during a refresh.
+#
+#elasticsearch.refresh_search_max=10
+
+# Set the amount of time to wait when Elasticsearch rejects a requests before
+# retrying.  This provides simple backpressure. (in milliseconds)
+#
+#elasticsearch.rejected_retry_wait
+
 
 # Once you've run once with migration true, it is safe to disable this
+#
 usergrid.twodoto.appinfo.migration=true
 
-###############################################################################
+# Properties to control the number of buckets in the index.
+#
+#usergrid.index.defaultbucketsize=20
+
+
+
+
+############################ Usergrid Queuing  ##########################
+#
+# Usergrid implements queueing to help provide optimal read/write performance.
+# The below properties are used to change queue providers and tune Usergrid
+# for reading and processing data from the queues.
+#
+#
+
+# Flag to override Usergrid and force use default built-in queue implementation
+# and not to use any 3rd party queue services like Amazon SNS and SQS
+#
+#usergrid.use.default.queue=false
+
+# The number of worker threads used to read index write requests from the queue.
+#
+#elasticsearch.worker_count=1
+
+# Set the number of worker threads used for processing index write requests to
+# Elasticsearch from the buffer.
+#
+#index.flush.workers=10
+
+# Set the implementation to use for queuing in Usergrid.
+# Valid values: TEST, LOCAL, SQS, SNS
+# NOTE: SQS and SNS equate to the same implementation of Amazon queue services.
+#
+#elasticsearch.queue_impl=LOCAL
+
+# Sets a flag to resolve the LOCAL queue implementation service synchronously.
+# Use only when elasticsearch.queue_impl=LOCAL
+#
+#elasticsearch.queue_impl.resolution=false
+
+# Set the read timeout for processing messages in the queue. (in milliseconds)
+#
+#
+#elasticsearch.queue_read_timeout=10000
+
+# Set the visibility timeout for messages created in the queue. (in milliseconds)
+#
+#
+#elasticsearch.queue_visibility_timeout=12000000
+
+
+
+
+#################### Amazon Queue Implementation Properties ###################
+#
+# The below settings are specific to the Amazon queue implementation.  Keep in
+# mind that any region values must exactly match the regions specified on this
+# page:
+#  <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html>
+#
+
+# Set the primary region to use for amazon queues.
+#
+#usergrid.queue.region=us-east-1
+
+# Set a flag to determine if Usergrid should use a multi-region Amazon queue
+# implementation.
+#
+#usergrid.queue.multiregion=false
+
+# Set a comma-separated list of one or more Amazon regions to use if multiregion
+# is set to true.
+#
+#usergrid.queue.regionList=us-east-1
+
+# Set the amount of time (in minutes) to retain messages in a queue.
+# 1209600 = 14 days (maximum retention period)
+#
+#usergrid.queue.retention=1209600
+
+# Set the amount of time (in minutes) to retain messages in a dead letter queue.
+# 1209600 = 14 days (maximum retention period)
+#
+#usergrid.queue.deadletter.retention=1209600
+
+# Set the maximum number of messages to deliver to a dead letter queue.
+#
+#usergrid.queue.deliveryLimit=5
+
+
+
+
+##############################  Usergrid Scheduler  ###########################
+#
+# Usergrid uses a scheduler for some functions such as scheduled push notificatins.
+# Use the below settings to configure the scheduler.
+#
+
+# Enable the scheduler
+#
+usergrid.scheduler.enabled=true
+
+# Time in milliseconds that a job can be started without a heartbeat before being
+# considered dead.
+#
+# NOTE:  This must be high enough so jobs that are iteration based can finish an
+#        iteration and update the heartbeat.
+#
+usergrid.scheduler.job.timeout=120000
+
+# Set the scheduler poll interval to check for new jobs. (in millseconds)
+#
+usergrid.scheduler.job.interval=5000
+
+# Set the max number of times a job can fail before removing it permanently.
+#
+usergrid.scheduler.job.maxfail=10
+
+# Set the number of workers for the scheduler jobs.
+#
+usergrid.scheduler.job.workers=4
+
+# Set the path to the queue in the managment app to get jobs from
+#
+usergrid.scheduler.job.queueName=/jobs
+
+
+
+
+###################  Usergrid Classic Entity Manager Settings  ################
+#
+# Usergrid tests still include pre Core Persistence confgiurations.  The settings below are
+# used for the classic Entity Manager implementation -> usergrid.persistence=EM
 #
-# Classic Entity Manager properties
 
 # URL for local testing Cassandra cluster
 cassandra.url=localhost:9160
@@ -81,18 +378,15 @@ cassandra.url=localhost:9160
 cassandra.cluster=Test Cluster
 
 # Keyspace names to be used (see also the locks keyspace below)
-cassandra.system.keyspace=Usergrid
-cassandra.application.keyspace=Usergrid_Applications
+#cassandra.system.keyspace=Usergrid
+#cassandra.application.keyspace=Usergrid_Applications
 
-cassandra.keyspace.strategy=org.apache.cassandra.locator.SimpleStrategy
+#cassandra.keyspace.strategy=org.apache.cassandra.locator.SimpleStrategy
 #cassandra.keyspace.strategy=org.apache.cassandra.locator.NetworkTopologyStrategy
 
-cassandra.keyspace.replication=replication_factor:1
+#cassandra.keyspace.replication=replication_factor:1
 #cassandra.keyspace.replication=us-east:3
 
-cassandra.username=
-cassandra.password=
-
 # Read consistency level for the cassandra cluster
 cassandra.readcl=QUORUM
 
@@ -100,13 +394,14 @@ cassandra.readcl=QUORUM
 cassandra.writecl=QUORUM
 
 # The maximum number of pending mutations allowed in ram before it is flushed to cassandra
-cassandra.mutation.flushsize=2000
+#cassandra.mutation.flushsize=2000
 
 # Keyspace to use for locking
 # Note that if this is deployed in a production cluster, the RF on the keyspace
 # MUST be updated to use an odd number for it's replication Factor. Even numbers
 # for RF can potentially case the locks to fail, via "split brain" when read at
 # QUORUM on lock verification
+#
 cassandra.lock.keyspace=Locks
 
 # locking read & write policies
@@ -114,170 +409,157 @@ cassandra.lock.readcl=LOCAL_QUORUM
 cassandra.lock.writecl=LOCAL_QUORUM
 
 # Timeout in ms before hector considers a thrift socket dead
-cassandra.thriftSocketTimeout=0
+#cassandra.thriftSocketTimeout=0
 # If hector should use host TCP keep alive settings
-cassandra.useSocketKeepalive=false
-
-
+#cassandra.useSocketKeepalive=false
 
-###############################################################################
+# Set the timeout in locks from reading messages transitionally from a queue. (in seconds)
 #
-# General properties
+usergrid.queue.lock.timeout=5
 
-# false to disable test features
-usergrid.test=false
 
-# Properties to control the number of buckets in the index.
-usergrid.index.defaultbucketsize=20
-usergrid.counter.skipAggregate=false
-usergrid.version.database=1.0.0
-usergrid.version.schema=1.0.0
-usergrid.version.properties=1.0.0
 
-# build number for display
-usergrid.version.build=${version}
 
-usergird.service.packages=org.apache.usergrid.services
+###############################  Usergrid Central SSO  #############################
+#
+# Usergrid has a feature to provide a distributing SSO system.  The below configurations
+# allow you to configure the central Usergrid SSO server.
+#
 
-# Batch submit counters ever 1000 updates
-usergrid.counter.batch.size=1000
+# Set the base URL of the central Usergrid SSO server.  This will enable
+# External Token Validation for Admin Users and will configure this Usergrid
+# instance to delegate all Admin User authentication to the central Usegrid SSO
+# server. See also: https://issues.apache.org/jira/browse/USERGRID-567
+usergrid.central.url=
 
-# Submit batcher every 30 seconds
-usergrid.counter.batch.interval=30
+# Set the HTTP Client connection pool for connections to the SSO central server.
+#
+usergrid.central.connection.pool.size=40
+usergrid.central.connection.timeout=10000
+usergrid.central.read.timeout=10000
 
-AWS_ACCESS_KEY_ID=
-AWS_SECRET_KEY=
-usergrid.binary.bucketname=usergrid-test
-usergrid.test.sample_data_url=
-usergrid.binary.max-size-mb=50
-usergrid.binary.upload-workers=40
 
-# Disable Mongo API Server
-usergrid.mongo.disable=true
 
-# Disable WebSocket Server
-usergrid.websocket.disable=true
 
+###############################  Usergrid Assets  #############################
+#
+# Usergrid provides the ability to store assets (images, binary data,etc.).  The
+# configurations for where to store this information are below.
+#
+
+# Set the bucket name used for storing assets.
+#
+usergrid.binary.bucketname=usergrid-test
 
-###############################################################################
+# Set the maximum size for a single asset (in MB).
 #
-# Authentication properties
+#usergrid.binary.max-size-mb=50
 
-#usergrid.auth.token_secret_salt=super secret token value
-#usergrid.auth.token_expires_from_last_use=false
-#usergrid.auth.token_refresh_reuses_id=false
+# Set the number of worker threads available for uploading assets to a remote
+# storage provider.  (Amazon S3 currently supported)
+#usergrid.binary.upload-workers=40
 
-# max time to persist tokens for (milliseconds)
-#usergrid.auth.token.persist.expires=0
+# Set the location for storing and temporary files.
+#
+#usergrid.temp.files=/tmp/usergrid
 
-# expiration age for oauth access tokens (milliseconds)
-#usergrid.auth.token.access.expires=0
 
-# expiration age for oauth refresh tokens (milliseconds)
-#usergrid.auth.token.refresh.expires=0
 
-# max age for offline tokens (milliseconds)
-#usergrid.auth.token.offline.expires=0
 
-# max age for email tokens (milliseconds)
-#usergrid.auth.token.email.expires=0
+###############################  Usergrid Admin  ##############################
+#
+# Usergrid has a sysadmin user which has access to the complete Usergrid system
+# and all data.  Below are settings for this user and other administrative functions.
+#
+#
 
-# SysAdmin login
+# Set the sysadmin login details.
+#
 usergrid.sysadmin.login.name=
 usergrid.sysadmin.login.email=
 usergrid.sysadmin.login.password=
 usergrid.sysadmin.login.allowed=false
 
+# Set the sysadmin permissions for approving new users and organizations
+#
 usergrid.sysadmin.approve.users=false
 usergrid.sysadmin.approve.organizations=false
 
-# Base URL of central Usergrid SSO server:
-# Setting this will enable External Token Validation for Admin Users and will configure
-# this Usergrid instance delegate all Admin User authentication to the central  Usegrid SSO
-# server. See also: https://issues.apache.org/jira/browse/USERGRID-567
-usergrid.central.url=
-
-# HTTP Client connection pool for connections from SSO client system `to SSO central
-usergrid.central.connection.pool.size=40
-usergrid.central.connection.timeout=10000
-usergrid.central.read.timeout=10000
+# Set a legacy sysadmin email configuration.
+#
+usergrid.sysadmin.email=
 
-# Where to store temporary files
-usergrid.temp.files=/tmp/usergrid
 
 
-#The timeout in locks from reading messages transitionally from a queue.  Number of seconds to wait
-usergrid.queue.lock.timeout=5
 
-
-###############################################################################
+##############################  Usergrid Server  #############################
+#
+# Below settings are general server configuration properties for Usergrid.  Here
+# you will configure things like SMTP, redirect urls, etc.
 #
-# Scheduler setup
-
-# Time in milliseconds that a job can be started without a heartbeat before being considered dead.
-# Note that this must be high enough so that jobs that are iteration based can run an iteration and update the heartbeat
-usergrid.scheduler.job.timeout=120000
 
-# The path to the queue in the managment app to get jobs from
-usergrid.scheduler.job.queueName=/jobs
+# Set SMTP server configuration details.
+#
+mail.transport.protocol=
+mail.smtps.host=
+mail.smtps.port=
+mail.smtps.auth=
+mail.smtps.username=
+mail.smtps.password=
 
-# The number of executor threads to allow
-usergrid.scheduler.job.workers=4
+# Set the sender email info for emails sent by Usergrid
+#
+usergrid.management.mailer=Usergrid Mailer <ma...@usergrid.com>
 
-# Poll interval to check for new jobs in millseconds.  5 seconds is the default.
-# It will run all jobs up to current so this won't limit throughput
-usergrid.scheduler.job.interval=5000
+# Set the URL to redirect any HTTP requests sent to the root of the server /
+#
+usergrid.redirect_root=
 
-# The max number of times a job can fail before removing it permanently. Note that this count is INCLUSIVE.
-# If the value is 10, the 11th fail will mark the job as dead
-usergrid.scheduler.job.maxfail=10
+# Set the graphite host that Usergrid should send metrics to.
+#
+#usergrid.metrics.graphite.host=false
 
-# Zookeeper instances
-zookeeper.hosts=localhost:2180
-zookeeper.sessionTimeout = 3000
-zookeeper.maxAttempts = 3
+# Set a flag for public/private recaptcha url.  For example, this is used to display
+# recaptcha when resetting passwords.  If both are false, recaptcha will not be
+# used
+#
+#usergrid.recaptcha.public=false
+#usergrid.recaptcha.private=false
 
+# Set a basepath location for Swagger
+#
 swagger.basepath=http://localhost:8080
 
+# Set the flag to disable the Usergrid Mongo Emulation Server
+#
+usergrid.mongo.disable=true
 
-###############################################################################
+# Set the flag to disable WebSocket support
 #
-# Mail and activation setup
+usergrid.websocket.disable=true
 
-mail.transport.protocol=
-mail.smtps.host=
-mail.smtps.port=
-mail.smtps.auth=
-mail.smtps.username=
-mail.smtps.password=
-mail.smtps.quitwait=
+# Set batch size for when to submit counter batches.
+#
+#usergrid.counter.batch.size=1000
 
-zk.connect=127.0.0.1:2181
-serializer.class=kafka.serializer.StringEncoder
-zk.connectiontimeout.ms=1000000
-groupid=counter_group
-autooffset.reset=smallest
+# Set the time interval for when to submit counter batches.
+#
+#usergrid.counter.batch.interval=30
 
-usergrid.organization.activation.url=http://localhost:8080/ROOT/management/organizations/%s/activate
-usergrid.admin.activation.url=http://localhost:8080/ROOT/management/users/%s/activate
-usergrid.admin.confirmation.url=http://localhost:8080/ROOT/management/users/%s/confirm
-usergrid.admin.resetpw.url=http://localhost:8080/ROOT/management/users/%s/resetpw
-usergrid.user.activation.url=http://localhost:8080/ROOT/%s/%s/users/%s/activate
-usergrid.user.confirmation.url=http://localhost:8080/ROOT/%s/%s/users/%s/confirm
-usergrid.user.resetpw.url=http://localhost:8080/ROOT/%s/%s/users/%s/resetpw
+# Set build number for display
+# Note: ${version is obtained from the pom.xml <version>}
+#
+usergrid.version.build=${version}
 
-usergrid.recaptcha.public=
-usergrid.recaptcha.private=
 
-usergrid.sysadmin.email=
 
-usergrid.management.admin_users_require_confirmation=false
-usergrid.management.admin_users_require_activation=false
-usergrid.management.notify_admin_of_activation=false
-usergrid.management.organizations_require_confirmation=false
-usergrid.management.organizations_require_activation=false
-usergrid.management.notify_sysadmin_of_new_organizations=false
-usergrid.management.notify_sysadmin_of_new_admin_users=false
+
+##############################  Usergrid Testing  #############################
+#
+# Below properties are used if wanting to set up a Usergrid organization, app,
+# user for the purposes of testing.  If these properties are null or missing,
+# the test account creation is ignored.
+#
 
 usergrid.setup-test-account=true
 usergrid.test-account.app=test-app
@@ -287,174 +569,171 @@ usergrid.test-account.admin-user.name=Test User
 usergrid.test-account.admin-user.email=test@usergrid.com
 usergrid.test-account.admin-user.password=test
 
-usergrid.redirect_root=
+# Set a flag to disable test features.
+#
+usergrid.test=false
 
-usergrid.management.mailer=Usergrid Mailer <ma...@usergrid.com>
+# Set some test properties
+#
+#usergrid.version.database=1.0.0
+#usergrid.version.schema=1.0.0
+#usergrid.version.properties=1.0.0
 
-# email footer
-usergrid.management.email.footer=\
-    <p></p>\n
 
-###############################################################################
+
+
+#########################  Usergrid Activation/Confirmation  ##################
+#
+# Usergrid will send emails for activation and provide links for users to visit
+# for activiation.  In the event that Usergrid is behind a proxy or public endpoint,
+# the below properties allow the system to use a different URL and control the
+# activation behavior.
+#
+#
+
+# Set the requirements for activiation and confirmations
+usergrid.management.admin_users_require_confirmation=false
+usergrid.management.notify_admin_of_activation=false
+usergrid.management.organizations_require_confirmation=false
+usergrid.management.notify_sysadmin_of_new_organizations=false
+usergrid.management.notify_sysadmin_of_new_admin_users=false
+
+# Set the different activation/reset URLS
 #
-# Sysadmin notifications
+# Note: %s is used by the system to substitute values (user, organization, app,
+# etc.).  If you need to update these property, you should only need to replace the
+# following from each of the values:
+#
+#  http://localhost:8080/ROOT
 #
 
-# email to sysadmin to notify new organization has been activated
+usergrid.organization.activation.url=http://localhost:8080/ROOT/management/organizations/%s/activate
+usergrid.admin.activation.url=http://localhost:8080/ROOT/management/users/%s/activate
+usergrid.admin.confirmation.url=http://localhost:8080/ROOT/management/users/%s/confirm
+usergrid.admin.resetpw.url=http://localhost:8080/ROOT/management/users/%s/resetpw
+usergrid.user.activation.url=http://localhost:8080/ROOT/%s/%s/users/%s/activate
+usergrid.user.confirmation.url=http://localhost:8080/ROOT/%s/%s/users/%s/confirm
+usergrid.user.resetpw.url=http://localhost:8080/ROOT/%s/%s/users/%s/resetpw
+
+
+
+
+###########################  Usergrid Email Templates  ########################
+#
+# During Usergrid account and application registration workflows, the system will
+# email the user and/or admin for activations and notifications.  The below
+# properties configure the language used in email templates sent by Usergrid.
+#
+
+
+# Email to sysadmin to notify that a new organization has been activated.
+#
 usergrid.management.email.sysadmin-organization-activated=\
     <p>Organization account for ${organization_name}, owned by ${organization_owners}, \
     has been successfully activated.</p>
 
-# email to sysadmin to notify new admin has been activated
+# Email to sysadmin to notify that a new admin user has been activated.
+#
 usergrid.management.email.sysadmin-admin-activated=\
     <p>Admin user account for ${user_email}has been successfully activated.</p>
 
-
-###############################################################################
+# Email to sysadmin to approve and activate new organizations.
 #
-# Organization approval flow
-
-# email to sysadmin to approve and activate new organization
 usergrid.management.email.sysadmin-organization-activation=\
     <p>To activate the organization account for ${organization_name}, owned by ${organization_owners}, \
     click here:</p>\n<p><a href="${activation_url}">${activation_url}</a></p>
 
-# email to organization owner to request confirmation
+# Email to organization owner to request confirmation.
+#
 usergrid.management.email.organization-confirmation=\
     <p>To confirm your organization account, click here:</p>\n\
     <p><a href="${confirmation_url}">${confirmation_url}</a></p>
 
-# email to organization owner to notify approval is pending
+# Email to organization owner to notify approval is pending
+#
 usergrid.management.email.organization-activation-pending=\
     <p>Your organization account ${organization_name} is awaiting approval.</p>
 
-# email to organization owner to notify organization is active
+# Email to organization owner to notify organization is active
+#
 usergrid.management.email.organization-activated=\
     <p>Your organization account ${organization_name} has been successfully activated.</p>
 
-###############################################################################
-#
-# Admin approval flow
+# Email to sysadmin to approve and activate new admin
 #
-
-# email to sysadmin to approve and activate new admin
 usergrid.management.email.sysadmin-admin-activation=\
     <p>To activate the user account for ${user_email}, click here:</p>\n\
     <p><a href="${activation_url}">${activation_url}</a></p>
 
-# email to admin user to confirm email
+# Email to admin user to confirm email
+#
 usergrid.management.email.admin-confirmation=\
     <p>To confirm your email address ${confirm_email}, click here:</p>\n\
     <p><a href="${confirmation_url}">${confirmation_url}</a></p>
 
-# email to admin user to notify email has been confirmed
+# Email to admin user to notify email has been confirmed
+#
 usergrid.management.email.admin-confirmed=\
     <p>Your email address ${confirmed_email} has been confirmed.</p>\n\
     <p>You will receive another email with your account has been activated.</p>
 
-# email to admin to notify account is active
+# Email to admin to notify account is active
+#
 usergrid.management.email.admin-activated=\
     <p>Your user account has been successfully activated.</p>
 
-# email to admin to notify account has been added to an organization
+# Email to admin to notify account has been added to an organization
+#
 usergrid.management.email.admin-invited=\
     <p>Your user account has been added to the organization ${organization_name}.</p>
 
-# email to admin for password reset
+# Email to admin for password reset
+#
 usergrid.management.email.admin-password-reset=\
     <p>To reset your password, click here:</p>\n\
     <p><a href="${reset_url}">${reset_url}</a></p>
 
-
-###############################################################################
+# Email to admin to approve and activate new app user
 #
-# User approval flow
-#
-
-# email to admin to approve and activate new app user
 usergrid.management.email.admin-user-activation=\
     <p>To activate the user account for ${user_email}, click here:</p>\n\
     <p><a href="${activation_url}">${activation_url}</a></p>
 
-# email to user to request activation
+# Email to user to request activation
+#
 usergrid.management.email.user-confirmation=\
     <p>To confirm your user account, click here:</p>\n\
     <p><a href="${confirmation_url}">${confirmation_url}</a></p>
 
-# email to user to notify account is confirmed
+# Email to user to notify account is confirmed
+#
 usergrid.management.email.user-confirmed=\
     <p>Your user account has been successfully confirmed.</p>\n\
     <p>You will receive another email with your account has been activated.</p>
 
-# email to user to notify account is active
+# Email to user to notify account is active
+#
 usergrid.management.email.user-activated=\
     <p>Your user account has been successfully activated.</p>
 
-# email to user to reset password
+# Email to user to reset password
+#
 usergrid.management.email.user-password-reset=\
     <p>To reset your password, click here:</p>\n\
     <p><a href="${reset_url}">${reset_url}</a></p>
 
-# email to admin to notify new app user has been successfully activated
+# Email to admin to notify new app user has been successfully activated
+#
 usergrid.management.email.admin-user-activated=\
     <p>User account for ${user_email} has been successfully activated</p>
 
-
-###############################################################################
+# Email to user to recover pin
 #
-
-# email to user to recover pin
 usergrid.management.email.user-pin=\
     <p>Your application pin is:</p>\n\
     <p>${pin}</p>
 
-
-# graphite server
-usergrid.metrics.graphite.host=false
-
-###############################################################################
-#
-# Redirect urls to use instead of internal JSPs.  Not all of these should be
-# overridden since many of them need to have parameters set
+# Email footer
 #
-
-#usergrid.view.applications.users.user.error=
-#usergrid.view.applications.users.user.resetpw_email_form=
-#usergrid.view.applications.users.user.resetpw_set_form=
-#usergrid.view.applications.users.user.resetpw_set_success=
-#usergrid.view.applications.users.user.activate=
-#usergrid.view.applications.users.user.bad_activation_token=
-#usergrid.view.applications.users.user.confirm=
-#usergrid.view.applications.users.user.bad_confirmation_token=
-
-#usergrid.view.applications.users.users.error=
-#usergrid.view.applications.users.users.resetpw_email_form=
-#usergrid.view.applications.users.users.resetpw_email_success=
-
-#usergrid.view.applications.application.error=
-#usergrid.view.applications.application.authorize_form=
-
-#usergrid.view.management.management.error=
-#usergrid.view.management.management.authorize_form=
-
-#usergrid.view.management.organizations.organization.error=
-#usergrid.view.management.organizations.organization.activate=
-#usergrid.view.management.organizations.organization.bad_activation_token=
-#usergrid.view.management.organizations.organization.confirm=
-
-#usergrid.view.management.users.user.error=
-#usergrid.view.management.users.user.resetpw_email_form=
-#usergrid.view.management.users.user.resetpw_set_form=
-#usergrid.view.management.users.user.resetpw_set_success=
-#usergrid.view.management.users.user.activate=
-#usergrid.view.management.users.user.bad_activation_token=
-#usergrid.view.management.users.user.confirm=
-#usergrid.view.management.users.user.bad_confirmation_token=
-
-#usergrid.view.management.users.users.resetpw_email_form=
-#usergrid.view.management.users.users.resetpw_email_success=
-#usergrid.view.management.users.users.error=
-
-#usergrid.view.test.test=
-
-
+usergrid.management.email.footer=\
+    <p></p>\n

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/851fa4a3/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AsyncIndexProvider.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AsyncIndexProvider.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AsyncIndexProvider.java
index 6484421..f455f9c 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AsyncIndexProvider.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AsyncIndexProvider.java
@@ -116,7 +116,7 @@ public class AsyncIndexProvider implements Provider<AsyncEventService> {
     /**
      * Different implementations
      */
-    public static enum Implementations {
+    public static enum Implementations { //TODO see about removing SNS and SQS and use AMZN? - michaelarusso
         TEST,
         LOCAL,
         SQS,

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/851fa4a3/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexProcessorFig.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexProcessorFig.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexProcessorFig.java
index f6fe863..c3942cc 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexProcessorFig.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexProcessorFig.java
@@ -30,58 +30,51 @@ import org.safehaus.guicyfig.Key;
 public interface IndexProcessorFig extends GuicyFig {
 
 
-    /**
-     * Amount of time in milliseconds to wait when ES rejects our request before retrying.  Provides simple
-     * backpressure
-     */
     String FAILURE_REJECTED_RETRY_WAIT_TIME = "elasticsearch.rejected_retry_wait";
 
-    /**
-     * The number of worker threads to consume from the queue
-     */
     String ELASTICSEARCH_WORKER_COUNT = "elasticsearch.worker_count";
 
-
-    /**
-     * The queue implementation to use.  Values come from <class>QueueProvider.Implementations</class>
-     */
     String ELASTICSEARCH_QUEUE_IMPL = "elasticsearch.queue_impl";
 
-
-    /**
-     * The queue implementation to use.  Values come from <class>QueueProvider.Implementations</class>
-     */
-    String ELASTICSEARCH_QUEUE_OFFER_TIMEOUT = "elasticsearch.queue.offer_timeout";
-
-    /**
-     * Amount of time to wait when reading from the queue
-     */
     String INDEX_QUEUE_READ_TIMEOUT = "elasticsearch.queue_read_timeout";
 
-    /**
-     * Amount of time to wait when reading from the queue
-     */
     String INDEX_QUEUE_VISIBILITY_TIMEOUT = "elasticsearch.queue_visibility_timeout";
 
 
+    /**
+     * Set the amount of time to wait when Elasticsearch rejects a requests before
+     * retrying.  This provides simple back pressure. (in milliseconds)
+     */
     @Default( "1000" )
     @Key( FAILURE_REJECTED_RETRY_WAIT_TIME )
     long getFailureRetryTime();
 
-    //give us 60 seconds to process the message
+    /**
+     * Set the read timeout for processing messages in the queue. (in milliseconds)
+     */
     @Default( "10000" )
     @Key( INDEX_QUEUE_READ_TIMEOUT )
     int getIndexQueueTimeout();
 
-    //give us 60 seconds to process the message
+    /**
+     * Set the visibility timeout for messages created in the queue. (in milliseconds)
+     */
     @Default( "12000000" )
     @Key( INDEX_QUEUE_VISIBILITY_TIMEOUT )
     int getIndexQueueVisibilityTimeout();
 
+    /**
+     * The number of worker threads used to read index write requests from the queue.
+     */
     @Default( "1" )
     @Key( ELASTICSEARCH_WORKER_COUNT )
     int getWorkerCount();
 
+    /**
+     * Set the implementation to use for queuing.
+     * Valid values: TEST, LOCAL, SQS, SNS
+     * NOTE: SQS and SNS equate to the same implementation of Amazon queue services.
+     */
     @Default( "LOCAL" )
     @Key( ELASTICSEARCH_QUEUE_IMPL )
     String getQueueImplementation();
@@ -90,6 +83,9 @@ public interface IndexProcessorFig extends GuicyFig {
     @Key("elasticsearch.reindex.flush.interval")
     int getUpdateInterval();
 
+    /**
+     * Flag to resolve the LOCAL queue implementation service synchronously.
+     */
     @Default("false")
     @Key("elasticsearch.queue_impl.resolution")
     boolean resolveSynchronously();

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/851fa4a3/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/metrics/MetricsFig.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/metrics/MetricsFig.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/metrics/MetricsFig.java
index c21a78d..53d2f0c 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/metrics/MetricsFig.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/metrics/MetricsFig.java
@@ -27,7 +27,10 @@ import org.safehaus.guicyfig.Key;
 @FigSingleton
 public interface MetricsFig extends GuicyFig {
 
+    /**
+     * The graphite host for sending metrics to.
+     */
     @Default("false")
     @Key( "usergrid.metrics.graphite.host" )
     String getHost();
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/851fa4a3/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/IndexFig.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/IndexFig.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/IndexFig.java
index 41cb5de..aa9cad4 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/IndexFig.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/IndexFig.java
@@ -24,8 +24,6 @@ import org.safehaus.guicyfig.FigSingleton;
 import org.safehaus.guicyfig.GuicyFig;
 import org.safehaus.guicyfig.Key;
 
-import org.apache.usergrid.persistence.index.impl.EsProvider;
-
 
 @FigSingleton
 public interface IndexFig extends GuicyFig {
@@ -38,7 +36,6 @@ public interface IndexFig extends GuicyFig {
 
     String ELASTICSEARCH_NODENAME = "elasticsearch.node_name";
 
-
     String ELASTICSEARCH_ALIAS_POSTFIX = "elasticsearch.alias_postfix";
 
     String ELASTICSEARCH_STARTUP = "elasticsearch.startup";
@@ -59,84 +56,89 @@ public interface IndexFig extends GuicyFig {
 
     String INDEX_WRITE_CONSISTENCY_LEVEL = "elasticsearch.write_consistency_level";
 
-    /**
-     * The number of worker threads to flush collapsed batches
-     */
     String INDEX_FLUSH_WORKER_COUNT = "index.flush.workers";
 
-    /**
-     * the number of times we can fail before we refresh the client
-     */
     String ELASTICSEARCH_FAIL_REFRESH = "elasticsearch.fail_refresh";
 
-    String QUERY_LIMIT_DEFAULT = "index.query.limit.default";
-
-
-
-
-    /**
-     * Timeout calls to elasticsearch.
-     * @return
-     */
-    String ELASTICSEARCH_QUERY_TIMEOUT = "elasticsearch.query.timeout";
-
     String ELASTICSEARCH_WRITE_TIMEOUT= "elasticsearch.write.timeout";
 
-    /**
-     * The client type to use.  Valid values are NODE or TRANSPORT
-     */
     String ELASTICSEARCH_CLIENT_TYPE = "elasticsearch.client.type";
 
 
-
+    /**
+     * Comma-separated list of Elasticsearch hosts.
+     */
     @Default( "127.0.0.1" )
     @Key( ELASTICSEARCH_HOSTS )
     String getHosts();
 
+    /**
+     * The port used when connecting to Elasticsearch.
+     */
     @Default( "9300" )
     @Key( ELASTICSEARCH_PORT )
     int getPort();
 
+    /**
+     * The Elasticsearch cluster name.
+     */
     @Default( "usergrid" )
     @Key( ELASTICSEARCH_CLUSTER_NAME )
     String getClusterName();
 
+    /**
+     * Configurable alias name used for the Elasticsearch index.
+     */
     @Default( "alias" ) // no underbars allowed
     @Key( ELASTICSEARCH_ALIAS_POSTFIX )
     String getAliasPostfix();
 
+    /**
+     * Timeout for the cursor returned with query responses.
+     */
     @Default( "2" ) // TODO: does this timeout get extended on each query?
     @Key( QUERY_CURSOR_TIMEOUT_MINUTES )
     int getQueryCursorTimeout();
 
-    /** How to start ElasticSearch, may be embedded, forked or remote. */
+    /**
+     * How Elasticsearch should be started.  Valid values: embedded, forked, or remote
+     */
     @Default( "remote" )
     @Key( ELASTICSEARCH_STARTUP )
     String getStartUp();
 
-    @Default( "10" )
-    @Key( QUERY_LIMIT_DEFAULT )
-    int getQueryLimitDefault();
-
+    /**
+     * Force an index refresh after every write. Should only be TRUE for testing purposes.
+     */
     @Default( "false" )
     @Key( ELASTICSEARCH_FORCE_REFRESH )
     boolean isForcedRefresh();
 
-    /** Identify the client node with a unique name. */
+    /**
+     * Identify the Elasticsearch client node with a unique name.
+     */
     @Default( "default" )
     @Key( ELASTICSEARCH_NODENAME )
     String getNodeName();
 
+    /**
+     * The number of primary shards to use for the index in Elasticsearch.
+     */
     @Default( "6" )
     @Key( ELASTICSEARCH_NUMBER_OF_SHARDS )
     int getNumberOfShards();
 
+    /**
+     * The number of replicas to use for the index in Elasticsearch.
+     */
     @Default( "1" )
     @Key( ELASTICSEARCH_NUMBER_OF_REPLICAS )
     int getNumberOfReplicas();
 
 
-
+    /**
+     * The number of failures that occur before refreshing an Elasticsearch client.
+     */
     @Default( "20" )
     @Key( ELASTICSEARCH_FAIL_REFRESH )
     int getFailRefreshCount();
@@ -145,53 +147,61 @@ public interface IndexFig extends GuicyFig {
     int getIndexCacheMaxWorkers();
 
     /**
-     * how long to wait before the buffer flushes to send
+     * The maximum time to wait before the buffer flushes and sends index write requests to Elasticsearch.
+     * This is used so the application doesn't wait forever for the buffer to reach its size before writing
+     * data to Elasticsearch.
      */
     @Default( "250" )
     @Key( INDEX_BUFFER_TIMEOUT )
     long getIndexBufferTimeout();
 
     /**
-     * size of the buffer to build up before you send results
+     * The maximum buffer size to use before sending index write requests to Elasticsearch.
      */
     @Default( "1000" )
     @Key( INDEX_BUFFER_SIZE )
     int getIndexBufferSize();
 
+    /**
+     * The number of worker threads used for flushing batches of index write requests
+     * in the buffer for Elasticsearch.
+     */
     @Default("10")
     @Key(INDEX_FLUSH_WORKER_COUNT)
     int getIndexFlushWorkerCount();
 
-
-
     /**
-     * Request batch size for ES
+     * The batch size to use when sending batched index write requests to Elasticsearch.
      */
     @Default( "1000" )
     @Key( INDEX_BATCH_SIZE )
     int getIndexBatchSize();
 
+    /**
+     * The write consistency level for writing into the Elasticsearch index.  The
+     * default value is 'one', and you can configure 'all' and 'quorum'.
+     */
     @Default( "one" )
     @Key( INDEX_WRITE_CONSISTENCY_LEVEL )
     String getWriteConsistencyLevel();
 
     /**
-     * Return the type of client.  Valid values or NODE or TRANSPORT
-     * @return
+     * Return the type of Elasticsearch client.  Valid values are NODE or TRANSPORT.
      */
     @Key( ELASTICSEARCH_CLIENT_TYPE )
     @Default( "NODE")
     String getClientType();
 
+    /**
+     * The maximum number of searches that are allowed during a refresh.
+     */
     @Key("elasticsearch.refresh_search_max")
     @Default("10")
     int maxRefreshSearches();
 
-    @Key("elasticsearch.refresh_wait_ms")
-    @Default("5000")
-    long refreshWaitTime();
-
-
+    /**
+     * The timeout used when writing into the Elasticsearch index. (in milliseconds)
+     */
     @Default( "5000" )
     @Key( ELASTICSEARCH_WRITE_TIMEOUT )
     long getWriteTimeout();

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/851fa4a3/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/QueueFig.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/QueueFig.java b/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/QueueFig.java
index 0f572af..980163b 100644
--- a/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/QueueFig.java
+++ b/stack/corepersistence/queue/src/main/java/org/apache/usergrid/persistence/queue/QueueFig.java
@@ -9,37 +9,59 @@ import org.safehaus.guicyfig.Key;
 public interface QueueFig extends GuicyFig {
 
     /**
-     * This value comes from this page
+     * Any region value string must exactly match the region names specified on this page:
      *
-     * http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
-     *
-     * The string here must match the region on this documentation page
-     * @return
+     * http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html*
+     */
+
+
+    /**
+     * Primary region to use for Amazon queues.
      */
     @Key( "usergrid.queue.region" )
     @Default("us-east-1")
     public String getRegion();
 
+    /**
+     * Flag to determine if Usergrid should use a multi-region Amazon queue
+     * implementation.
+     */
     @Key( "usergrid.queue.multiregion" )
     @Default("false")
     public boolean isMultiRegion();
 
+    /**
+     * Comma-separated list of one or more Amazon regions to use if multiregion
+     * is set to true.
+     */
     @Key( "usergrid.queue.regionList" )
     @Default("us-east-1")
     public String getRegionList();
 
+
     @Key( "usergrid.queue.prefix" )
     @Default("usergrid")
     public String getPrefix();
 
+    /**
+     * Set the amount of time (in minutes) to retain messages in a queue.
+     * 1209600 = 14 days (maximum retention period)
+     */
     @Key( "usergrid.queue.retention" )
     @Default("1209600")
     public String getRetentionPeriod();
 
+    /**
+     * Set the amount of time (in minutes) to retain messages in a dead letter queue.
+     * 1209600 = 14 days (maximum retention period)
+     */
     @Key( "usergrid.queue.deadletter.retention" )
     @Default("1209600")
     public String getDeadletterRetentionPeriod();
 
+    /**
+     * The maximum number of messages to deliver to a dead letter queue.
+     */
     @Key( "usergrid.queue.deliveryLimit" )
     @Default("5")
     public String getQueueDeliveryLimit();