You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by ti...@apache.org on 2013/11/18 07:09:27 UTC

svn commit: r1542910 [14/36] - in /incubator/usergrid/site/publish: ./ bootstrap/ bootstrap/bootstrap/ community/ css/ css/bootflat-extensions/ css/bootflat-square/ css/bootflat/ css/font-awesome/ css/usergrid-site/ docs/ docs/access-token/ docs/activi...

Added: incubator/usergrid/site/publish/docs/events-and-counters/index.html
URL: http://svn.apache.org/viewvc/incubator/usergrid/site/publish/docs/events-and-counters/index.html?rev=1542910&view=auto
==============================================================================
--- incubator/usergrid/site/publish/docs/events-and-counters/index.html (added)
+++ incubator/usergrid/site/publish/docs/events-and-counters/index.html Mon Nov 18 06:09:23 2013
@@ -0,0 +1,578 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <title>Apache Usergrid (incubating) — Events and counters</title>
+    <meta http-equiv="x-ua-compatible" content="ie=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" />
+    <meta name="keywords" content="Apache Usergrid, Usergrid, BaaS, Backend-as-a-Service">
+    <meta name="description" content="An open-source Backend-as-a-Service stack for web & mobile applications, based on RESTful APIs." />
+    <meta property="og:title" content="Apache Usergrid" />
+    <meta property="og:description" content="An open-source Backend-as-a-Service stack for web & mobile applications, based on RESTful APIs." />
+    <!-- Loading Typekit -->
+    <script type="text/javascript" src="//use.typekit.net/ddl7izx.js"></script>
+    <script type="text/javascript">try{Typekit.load();}catch(e){}</script>
+    <!-- Loading Bootstrap -->
+    <link href="/bootstrap/bootstrap.min.css" rel="stylesheet" type='text/css'>
+    <link href="/css/bootflat.css" rel="stylesheet" type='text/css'>
+    <link href="/css/usergrid-site.css" rel="stylesheet" type='text/css'>
+    <link href="http://fonts.googleapis.com/css?family=Open+Sans:200,400,500,300,600,800,700,400italic,600italic,700italic,800italic,300italic" rel="stylesheet" type="text/css">
+    <link href="/css/font-awesome.min.css" rel="stylesheet" type='text/css'>
+
+    
+
+    <!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. -->
+    <!--[if lt IE 9]>
+      <script src="js/html5shiv.js"></script>
+      <script src="js/respond.min.js"></script>
+    <![endif]-->
+</head>
+<body>
+
+    <header class="navbar navbar-inverse navbar-fixed-top bf-docs-nav secondary" role="banner">
+    <div class="container">
+        <div class="navbar-header">
+            <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bf-navbar-collapse">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a href="/" class="navbar-brand">
+                <img id="home-logo" src="/img/apache_usergrid_logo_white_small.png" />
+            </a>
+        </div>
+        <nav class="collapse navbar-collapse bf-navbar-collapse" role="navigation">
+            <ul class="nav navbar-nav navbar-right">
+                <!--<li class="active"><a href="/docs/"><span class="icns icon-book"></span></a></li>-->
+                <li class=""><a href="/community/"><span class="icns icon-group"></span></a></li>
+                <li><a href="http://github.com/usergrid/usergrid" target="_blank"><span class="icns icon-github-sign"></span></a></li>
+                <!--<li><a href="https://trello.com/b/exQmJIOn/usergrid" target="_blank"><span class="icns icon-trello"></span></a></li>-->
+                <li><a href="https://issues.apache.org/jira/browse/USERGRID" target="_blank"><span class="icns icon-bug"></span></a></li>
+                <li><a href="http://stackoverflow.com/search?q=usergrid" target="_blank"><span class="icns icon-stackexchange"></span></a></li>
+                <li><a href="http://webchat.freenode.net/?channels=%23usergrid&uio=d4" target="_blank"><span class="icns icon-comments"></span></a></li>
+                <!--<li><a href="https://groups.google.com/forum/#!forum/usergrid" target="_blank"><span class="icns icon-envelope"></span></a></li>-->
+                <li><a href="https://twitter.com/usergrid" target="_blank"><span class="icns icon-twitter"></span></a></li>
+            </ul>
+        </nav>
+    </div>
+    </header>
+
+
+<div class="container bf-docs-container">    
+    <div class="row">
+        <div class="col-md-3">
+            <div class="bf-sidebar hidden-print" role="complementary">
+                <ul class="nav nav-list">
+                    <li><a href="#">Getting Up & Running Locally</a></li>
+                    <li><a href="#"><code>ugc</code> — the Command-line Client</a></li>
+
+                    <li class="nav-header"><span>Concepts</span></li>
+                    <li>
+                        <a href="/docs/organizations-admins/">Organizations & Admins</a>
+                        <ul>
+                            <li>
+                                <a href="/docs/applications">Applications</a>
+                                <ul>
+                                    <li><a href="#">Roles & Permissions</a></li>
+                                    <li><a href="#">Queues</a></li>
+                                    <li><a href="#">Events & Counters</a></li>
+                                    <li>
+                                        <a href="#">Collections</a>
+                                        <ul>
+                                            <li><a href="#">Query Language</a></li>
+                                            <li><a href="#">Users & Devices</a></li>
+                                            <li><a href="#">Groups</a></li>
+                                            <li><a href="#">Activities</a></li>
+                                            <li><a href="#">Assets</a></li>
+                                        </ul>
+                                    </li>
+                                </ul>
+                            </li>
+                        </ul>
+                    </li>
+
+
+                    <li class="nav-header"><span>Usage</span></li>
+                    <li><a href="/docs/rest-api">REST API</a></li>
+                    <li><a class="icns-apple" href="#">iOS SDK</a></li>
+                    <li><a class="icns-android" href="#">Android SDK</a></li>
+                    <li><a class="icns-html5" href="/docs/html5-javascript-sdk">HTML5 / JavaScript SDK</a></li>
+                    <li><a class="icns-windows" href="#">Windows 8 / Windows Phone / .net SDK</a></li>
+                    <li><a href="/docs/nodejs-module">Node.js module</a></li>
+                    <li><a href="/docs/ruby-gem">Ruby gem</a></li>
+                    <li><a href="#">Ruby on Rails gem</a></li>
+                    <li><a href="#">PHP library</a></li>
+
+                    <li class="nav-header"><span>Internals</span></li>
+                    <li><a href="#">Design & Goals</a></li>
+                    <li><a href="#">Java Architecture</a></li>
+                    <li><a href="#">Cassandra Schema</a></li>
+                    <li><a href="#">Contributing</a></li>
+
+                    <li class="nav-header"><span>Operations</span></li>
+                    <li><a href="#">Deploying</a></li>
+                    <li><a href="#">Monitoring</a></li>
+                    <li><a href="#">Upgrading</a></li>
+                    <li><a href="#">Security</a></li>
+                </ul>
+            </div>
+        </div>
+
+        <div class="col-md-9 main-article" role="main">
+            <div class="page-article">
+                <div class="page-header">
+                    <h1>Events and counters</h1>
+                  <small><a href="https://github.com/timanglade/usergrid-site/blob/master/content/docs/events-and-counters/">contribute to this article on github</a></small>
+                </div>
+                <div class="toc">
+	<ul>
+<li>
+<a href="#events-and-counters">Events and counters</a><ul>
+<li>
+<a href="#creating-a-new-event">Creating a new event</a><ul>
+<li><a href="#request-uri">Request URI</a></li>
+<li><a href="#parameters">Parameters</a></li>
+<li><a href="#example---request">Example - Request</a></li>
+<li><a href="#example---response">Example - Response</a></li>
+</ul>
+</li>
+<li>
+<a href="#event-properties">Event properties</a><ul>
+<li><a href="#categorizing-events">Categorizing events</a></li>
+</ul>
+</li>
+<li>
+<a href="#counters">Counters</a><ul>
+<li><a href="#user-defined-counters">User-Defined Counters</a></li>
+<li><a href="#counter-hierarchy">Counter hierarchy</a></li>
+<li><a href="#using-counters-in-time-series-queries">Using counters in time series queries</a></li>
+<li><a href="#retrieving-counter-data">Retrieving counter data</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<h1 id="events-and-counters"><a href="#events-and-counters">Events and counters</a></h1>
+<p><strong>Beta Feature</strong><br><br> Please note that this is currently a beta feature. As a result, some functionality may not work as expected.</p>
+<p>Events are typically used for application logging. For example, they could be used to log error messages that a system administrator might review at a later time. The event mechanism is optimized to handle large numbers of events, so it is an ideal mechanism for logging in your application.</p>
+<p>You can link events to specific users, groups, or custom-defined categories. When created with these links, events offer a powerful tool for running highly targeted, custom reports.</p>
+<p>Events are also the primary way to store custom counter data for analytics. See Counters (below) for further details.</p>
+<p><strong>Note:</strong> Although not shown in the API examples below, you need to provide a valid access token with each API call. See <a href="/authenticating-users-and-application-clients">Authenticating users and application clients</a> for details.</p>
+<p>Using App services APIs you can create an event.</p>
+<h2 id="creating-a-new-event"><a href="#creating-a-new-event">Creating a new event</a></h2>
+<p>Use the POST method to create a new event in the events collection.</p>
+<h3 id="request-uri"><a href="#request-uri">Request URI</a></h3>
+<p>POST /{org_id}/{app_id}/events {request body}</p>
+<h3 id="parameters"><a href="#parameters">Parameters</a></h3>
+<table>
+<col width="50%">
+<col width="50%">
+<thead><tr class="header">
+<th align="left">Parameter</th>
+<th align="left">Description</th>
+</tr></thead>
+<tbody>
+<tr class="odd">
+<td align="left"><p>arg uuid|string org_id</p></td>
+<td align="left"><p>Organization UUID or organization name</p></td>
+</tr>
+<tr class="even">
+<td align="left"><p>arg uuid|string app_id</p></td>
+<td align="left"><p>Application UUID or application name</p></td>
+</tr>
+<tr class="odd">
+<td align="left"><p>request body</p></td>
+<td align="left">
+<p>One or more sets of event properties. You must provide a timestamp property, but if you set it to 0 it is assigned by the system.</p>
+<pre><code>{
+  "timestamp":0,
+  "category" : "advertising",
+  "counters" : {
+    "ad_clicks" : 5
+  }
+}</code></pre>
+</td>
+</tr>
+</tbody>
+</table><h3 id="example---request"><a href="#example---request">Example - Request</a></h3>
+<ul>
+<li><a href="#curl_create_event">cURL</a></li>
+<li><a href="#javascript_create_event">JavaScript (HTML5)</a></li>
+<li><a href="#ruby_create_event">Ruby</a></li>
+<li><a href="#nodejs_create_event">Node.js</a></li>
+</ul><!-- --><pre><code>curl -X POST "https://api.usergrid.com/my-org/my-app/events" -d '{"timestamp":0, "category" : "advertising", "counters" : {"ad_clicks" : 5}}'</code></pre>
+<p>The example assumes use of the <a href="https://github.com/apigee/usergrid-javascript-sdk">JavaScript (HTML5) SDK</a>.</p>
+<pre><code>var options = {
+    method:'POST',
+    endpoint:'events',
+    body:{timestamp:0, category:'advertising', counters:{ad_clicks : 5}}
+};
+client.request(options, function (err, data) {
+    if (err) {
+        //error
+    } else {
+        //success - data will contain raw results from API call
+    }
+});</code></pre>
+<p>The example assumes use of the <a href="https://github.com/scottganyo/usergrid_iron">Ruby SDK</a>.</p>
+<pre><code>app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+result = app.create_event timestamp: '0', category: 'advertising', counters: { ad_clicks: 5 }
+mynewevent = result.entity   </code></pre>
+<p>The example assumes use of the <a href="https://github.com/apigee/usergrid-node-module">Node.js module</a>.</p>
+<pre><code>var options = {
+    method:'POST',
+    endpoint:'events',
+    body:{timestamp:0, category:'advertising', counters:{ad_clicks : 5}}
+};
+client.request(options, function (err, data) {
+    if (err) {
+        //error
+    } else {
+        //success - data will contain raw results from API call
+    }
+});</code></pre>
+<h3 id="example---response"><a href="#example---response">Example - Response</a></h3>
+<pre><code>{
+      "action": "post",
+      "application": "7fb8d891-477d-11e1-b2bd-22000a1c4e22",
+      "params": {},
+      "path": "/events",
+      "uri": "https://api.usergrid.com/22000a1c4e22-7fb8d891-477d-11e1-b2bd/7fb8d891-477d-11e1-b2bd-22000a1c4e22/events",
+      "entities": [
+        {
+          "uuid": "ce07ea3c-68b5-11e1-a586-9227e40e3559",
+          "type": "event",
+          "created": 1331166585282,
+          "modified": 1331166585282,
+          "counters": {
+            "ad_clicks": 5
+          },
+          "metadata": {
+            "path": "/events/ce07ea3c-68b5-11e1-a586-9227e40e3559"
+          },
+          "timestamp": 1331166585282
+        }
+      ],
+      "timestamp": 1331166585018,
+      "duration": 919,
+      "organization": "my-org",
+      "applicationName": "my-app"
+}</code></pre>
+<h2 id="event-properties"><a href="#event-properties">Event properties</a></h2>
+<p>You can pass various system-defined properties for an event. For example, you can specify a user property, with a uuid as its value. This will link the event to the user and can be used to query against the events queue (see Categorization below). The same is true for the group property. Pass it with a uuid as the value and the event will be linked to the group. To include a uuid of a user or group, add the uuid to the request body, for example:</p>
+<pre><code>POST https://api.usergrid.com/my-org/my-app/events {"timestamp":0, "category" : "advertising", "counters" :  {"ad_clicks" : 5},"user" : "1234891-477d-11e1-b2bd-22005a1c4e22", "group" : "75577d891-347d-2231-b5bd-23400a1c4e22"}</code></pre>
+<p>The response body would look something like this:</p>
+<pre><code>{
+ "action": "post",
+ "application": "7fb8d891-477d-11e1-b2bd-22000a1c4e22",
+ "params": {},
+ "path": "/events",
+ "uri": "https://api.usergrid.com/22000a1c4e22-7fb8d891-477d-11e1-b2bd/7fb8d891-477d-11e1-b2bd-22000a1c4e22/events",
+ "entities": [
+   {
+     "uuid": "ce07ea3c-68b5-11e1-a586-9227e40e3559",
+     "user": "1234891-477d-11e1-b2bd-22005a1c4e22",
+     "group": "75577d891-347d-2231-b5bd-23400a1c4e22",
+     "type": "event",
+     "created": 1331166585282,
+     "modified": 1331166585282,
+     "counters": {
+       "ad_clicks": 5
+     },
+     "metadata": {
+       "path": "/events/ce07ea3c-68b5-11e1-a586-9227e40e3559"
+     },
+     "timestamp": 1331166585282
+   }
+ ],
+ "timestamp": 1331166585018,
+ "duration": 919,
+ "organization": "my-org",
+ "applicationName": "my-app"
+}</code></pre>
+<p>You can also create application-specific event properties in addition to these predefined properties. The system-defined properties are reserved. You cannot use these names to create other properties for an event entity. In addition the events name is reserved for the events collection — you can’t use it to name another collection.</p>
+<p>The System-defined properties are as follows:</p>
+<table>
+<thead><tr class="header">
+<th align="left">Property</th>
+<th align="left">Type</th>
+<th align="left">Description</th>
+</tr></thead>
+<tbody>
+<tr class="odd">
+<td align="left">uuid</td>
+<td align="left">UUID</td>
+<td align="left">Event’s unique entity ID</td>
+</tr>
+<tr class="even">
+<td align="left">type</td>
+<td align="left">String</td>
+<td align="left">“event”</td>
+</tr>
+<tr class="odd">
+<td align="left">created</td>
+<td align="left">long</td>
+<td align="left">
+<a href="http://en.wikipedia.org/wiki/Unix_time">UNIX timestamp</a> of entity creation</td>
+</tr>
+<tr class="even">
+<td align="left">modified</td>
+<td align="left">long</td>
+<td align="left">
+<a href="http://en.wikipedia.org/wiki/Unix_time">UNIX timestamp</a> of entity modification</td>
+</tr>
+<tr class="odd">
+<td align="left">timestamp</td>
+<td align="left">long</td>
+<td align="left">
+<a href="http://en.wikipedia.org/wiki/Unix_time">UNIX timestamp</a> of application event (mandatory)</td>
+</tr>
+<tr class="even">
+<td align="left">user</td>
+<td align="left">UUID</td>
+<td align="left">UUID of application user that posted the event</td>
+</tr>
+<tr class="odd">
+<td align="left">group</td>
+<td align="left">UUID</td>
+<td align="left">UUID of application group that posted the event</td>
+</tr>
+<tr class="even">
+<td align="left">category</td>
+<td align="left">string</td>
+<td align="left">Category used for organizing similar events</td>
+</tr>
+<tr class="odd">
+<td align="left">counters</td>
+<td align="left">map</td>
+<td align="left">Counter used for tracking number of similar events</td>
+</tr>
+<tr class="even">
+<td align="left">message</td>
+<td align="left">string</td>
+<td align="left">Message describing event</td>
+</tr>
+</tbody>
+</table><h3 id="categorizing-events"><a href="#categorizing-events">Categorizing events</a></h3>
+<p>As mentioned previously, you can link an event to a user or a group. This enables you to categorize and qualify event data for use in tracking and analysis. For example, linking events to users and groups, enables you to track how often people use a feature. Not only can you determine the total number of users that used the feature, but also which groups contain users that made the most use of the feature. Or, you could provide a location with the event, so you could see how often a feature was used by people in San Francisco versus Los Angeles.</p>
+<h2 id="counters"><a href="#counters">Counters</a></h2>
+<p>User-defined counters are used in conjunction with events to keep statistics on many aspects of an application. User-defined counters are JSON objects that are added to events when they are posted. The act of posting an event increments the counter. Once created, user-defined counters can be used to get reports.</p>
+<p><strong>Note:</strong> It may take up to 30 seconds for a counter to be updated.</p>
+<h3 id="user-defined-counters"><a href="#user-defined-counters">User-Defined Counters</a></h3>
+<p>With Apache Usergrid, you can define your own counters. Some of the things that you might track with a user-defined counter are:</p>
+<ul>
+<li>How many times people click on the help button in your application.</li>
+<li>How many times your game is played each day.</li>
+<li>How many times your banner ads are clicked each day.</li>
+</ul><p>You can choose any name for a user-defined counter. For example, the counter for the help button might be named “help_button” or “help_button_clicks”.</p>
+<p>To create a user-defined counter, you post to the events collection and specify the name and increment value of the counter in the request body. The increment value is the value that the counter is incremented by for each tracked event. An increment value of 1, means that the counter is increment by 1 for each tracked event. You could also specify a higher increment value, such as 15, which would increment the value by that number, or a negative number, which would decrement the value.  You can also reset the value of the counter, by specifying an increment value of 0.</p>
+<p>When a counter is incremented by an event, there will be a 20-30 second delay between when the event is posted and when the counter is incremented. </p>
+<p>As an example, here’s how to create a user-defined counter named “button_clicks” with an increment value of 1:</p>
+<pre><code>POST https://api.usergrid.com/my-org/my-app/events {"counters" : {"button_clicks" : 1},"timestamp" : "0"}</code></pre>
+<p>The response body would look something like this:</p>
+<pre><code>{
+   "action": "post",
+   "path": "/events",
+   "uri": "http://api.usergrid.com/438a1ca1-cf9b-11e0-bcc1-12313f0204bb/events",
+   "entities": [
+       {
+           "uuid": "39d41c46-d8e4-11e0-bcc1-12313f0204bb",
+           "type": "event",
+           "timestamp": 1315353555546016,
+           "category":"advertising",
+           "counters": {
+               "button_clicks": 1
+           },
+           "created": 1315353555546016,
+           "modified": 1315353555546016,
+           "metadata": {
+           "path": "/events/39d41c46-d8e4-11e0-bcc1-12313f0204bb"
+           }
+       }
+   ],
+   "timestamp": 1315353555537,
+   "duration": 110,
+   "organization": "my-org",
+   "applicationName": "my-app"
+}</code></pre>
+<h3 id="counter-hierarchy"><a href="#counter-hierarchy">Counter hierarchy</a></h3>
+<p>Counters are hierarchical in their structure and in the way they are incremented. Each level of the hierarchy is separated by the dot “.” operator. The hierarchical structure can be useful if you want to store or view statistics in a hierarchical way. For example, suppose you want to log errors that your app generates. One way to do this, is to fire an event every time an error occurs, by creating a counter called “errors”. However, you can get more detail by adding additional parameters to the counter. Imagine that you want to track errors in a specific module and function within that module, say module_1, function_1, you could use a counter like this:</p>
+<p>errors.module_1.function_1</p>
+<p>And then for a different function in the same module:</p>
+<p>errors.module_1.function_2</p>
+<p>And then for a different function in a different module:</p>
+<p>errors.module_2.function_3</p>
+<p>If each of the preceding examples were called once, the resulting values would be:</p>
+<p>errors = 3<br><br> errors.module_1 = 2<br><br> errors.module_1.function_1 = 1<br><br> errors.module_1.function_2 = 1<br><br> errors.module_2 = 1<br><br> errors.module_2.function_3 = 1</p>
+<p>This tells you that there were 3 errors in the application, with 2 of those errors in module_1. You can then drill down further to see errors in specific functions.</p>
+<h3 id="using-counters-in-time-series-queries"><a href="#using-counters-in-time-series-queries">Using counters in time series queries</a></h3>
+<p>Knowing the value of a counter is useful. However, you often need to know how the value varies over time. Fortunately, the API provides a method for you to view this data over any time interval or level of granularity.</p>
+<p>For example, let’s say you’re incrementing a counter every time someone launches your application. You might be interested in which days of the week the application sees the most usage. Using the API, you can examine the counter over a set of weeks, with the data split into daily intervals. Using this information, you can see which are your peak days of usage. You can also view usage across a single day, so you can see if your application is used more in the mornings or the evenings. For business reporting, you may be more interested in monthly reporting.</p>
+<p>Note that the system is able to provide you with the report data as you need it. The data is maintained in real-time so it can be viewed instantly.</p>
+<h3 id="retrieving-counter-data"><a href="#retrieving-counter-data">Retrieving counter data</a></h3>
+<p>To retrieve counter data, you issue a GET request to the /counters endpoint. This is a special, built-in collection that gives you access to all the counters currently in the system. The API also provides a number of parameters that you can use to search for counter data, as follows:</p>
+<table>
+<thead><tr class="header">
+<th align="left">Parameter</th>
+<th align="left">Type</th>
+<th align="left">Description</th>
+</tr></thead>
+<tbody>
+<tr class="odd">
+<td align="left">start_time</td>
+<td align="left">An <a href="http://en.wikipedia.org/wiki/Unix_time">Epoch(Unix)</a> timestamp in milliseconds</td>
+<td align="left">The beginning of the time period to search</td>
+</tr>
+<tr class="even">
+<td align="left">end_time</td>
+<td align="left">An <a href="http://en.wikipedia.org/wiki/Unix_time">Epoch(Unix)</a> timestamp in milliseconds</td>
+<td align="left">The end of the time period to search</td>
+</tr>
+<tr class="odd">
+<td align="left">counter</td>
+<td align="left">string</td>
+<td align="left">The name of a specific counter to search. You can specify more than one counter in a query (for example, counter=counter1&amp;counter=counter2…)</td>
+</tr>
+<tr class="even">
+<td align="left">resolution</td>
+<td align="left">string</td>
+<td align="left">The interval at which counters are displayed. For example, if the interval is day, and the start time and end time values span 4 days, you will get aggregate counts for each of the 4 days. Possible values are all, minute, five_minutes, half_hour, hour, six_day, day, week, and month.</td>
+</tr>
+</tbody>
+</table><p>For example, to retrieve a time range of values, with a granularity of “day”, for a counter called “button_clicks”, the GET request would look like this:</p>
+<pre><code>GET /my-org/my-app/counters?start_time=1315119600000&amp;end_time=1315724400000&amp;resolution=day&amp;counter=button_clicks</code></pre>
+<p>The response body would look something like this:</p>
+<pre><code>{
+ action: "get",
+    uri: "http://api.usergrid.com/438a1ca1-cf9b-11e0-bcc1-12313f0204bb/counters",
+    timestamp: 1315354369272,
+    duration: 28,
+    counters: [
+        {
+            name: "button_clicks",
+            values: [
+                {
+                    value: 2
+                    timestamp: 1315180800000
+                },
+                {
+                    value: 1
+                    timestamp: 1315267200000
+                },
+                {
+                    value: 1
+                    timestamp: 1315353600000
+                }
+            ]
+        }
+    ]
+}</code></pre>
+            </div>
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-md-3"></div>
+        <div class="col-md-9">
+            <div class="github-callout">
+                <strong>Questions?</strong> Please do <a href="https://groups.google.com/forum/#!forum/usergrid">ask on the mailing-list</a>!<br/>
+                <strong>Found an error?</strong> We’d greatly appreciate a pull request about <a href="https://github.com/timanglade/usergrid-site/blob/master/content/docs/events-and-counters/">this article on github</a>.</div>
+        </div>
+    </div>
+</div>
+
+
+<footer class="bf-footer" role="contentinfo">
+    <div class="container">
+        <div class="row">
+            <div class="col-md-2">
+                <ul class="nav nav-list">
+                    <li class="nav-header"><a href="/">Home</a></li>
+                    <li class="nav-header"><a href="/community/">Community</a></li>
+                        <!-- <li><a href="/community#events">Events</a></li> -->
+                        <li><a href="/community/#mailing-lists">Mailing Lists</a></li>
+                        <li><a href="/community/#deployments">Deployments</a></li>
+                        <li><a href="/community/#committers">Commiters</a></li>
+                    <!-- <li class="nav-header"><a href="#">Docs</a></li> -->
+                </ul>
+            </div>
+            <div class="col-md-2">
+                <ul class="nav nav-list">
+                    <li class="nav-header"><a href="https://github.com/usergrid/usergrid/" target="_blank">Code</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/stack" target="_blank">Server Stack</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/portal" target="_blank">Admin Portal</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/ugc" target="_blank">ugc command line</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/ios" target="_blank">iOS SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/android" target="_blank">Android SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/html5-javascript" target="_blank">HTML5/JS SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/nodejs" target="_blank">node.js module</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/ruby-on-rails" target="_blank">Ruby on Rails gem</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/ruby" target="_blank">Ruby gem</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/php" target="_blank">PHP SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/java" target="_blank">Java SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/dotnet" target="_blank">.NET / Windows SDK</a></li>
+                </ul>
+            </div>
+            <div class="col-md-2">
+                <ul class="nav nav-list">
+                    <li class="nav-header">Resources</li>
+                        <li><a href="http://github.com/usergrid/usergrid" target="_blank">GitHub Code</a></li>
+                        <li><a href="https://issues.apache.org/jira/browse/USERGRID" target="_blank">JIRA Bug Tracker</a></li>
+                        <li><a href="http://stackoverflow.com/search?q=usergrid" target="_blank">StackOverflow</a></li>
+                        <li><a href="http://webchat.freenode.net/?channels=%23usergrid&uio=d4">IRC</a></li>
+                        <li><a href="https://twitter.com/usergrid" target="_blank">Twitter</a></li>
+                        <li><a href="http://incubator.apache.org/projects/usergrid.html" target="_blank">Podling Listing</a></li>
+                        <li><a href="https://github.com/usergrid/usergrid/blob/master/LICENSE" target="_blank">License</a></li>
+                        <li><a href="https://github.com/usergrid/usergrid/blob/master/stack#requirements" target="_blank">Getting Started</a></li>
+                        <li><a href="https://github.com/usergrid/usergrid/blob/master/stack#contributing" target="_blank">Contribution Guidelines</a></li>
+                </ul>
+            </div>
+            <div class="col-md-2"></div>
+            <div class="col-md-4">
+                <a class="twitter-timeline" href="https://twitter.com/search?q=%23usergrid" data-widget-id="401499136807038976"  data-related="usergrid" height="400px" style="overflow:hidden">Tweets about "usergrid"</a>
+                <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+            </div> 
+        <!--
+            <div class="col-md-4">
+                <div class="input-group form-search">
+                    <input type="text" class="form-control search-query">
+                    <span class="input-group-btn">
+                        <button type="submit" class="btn btn-primary" data-type="last">Search</button>
+                    </span>
+                </div>
+            </div> -->
+        </div> 
+        <div class="row">
+            <div id="copyright">
+                <img src="/img/egg-logo.png" /><br/><br/>
+                <p>Apache Usergrid is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the name of Apache TLP sponsor. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.</p>
+                <p>Copyright © 2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
+                Apache and the Apache feather logos are trademarks of The Apache Software Foundation.</p>
+                <p class="credits">Site designed & assembled with love by <a href="https://github.com/ryuneeee">@ryuneeee</a> + <a href="https://github.com/realbeast">@realbeast</a> + <a href="https://twitter.com/timanglade">@timanglade</a>.</p>
+            </div>
+        </div>
+    </div>
+</footer>
+
+<script type="text/javascript" src="/js/head.js"></script>
+<script type="text/javascript">
+    head.js("/js/jquery-1.10.1.min.js", "/js/bootstrap.min.js", "/js/usergrid-site.js");
+</script>
+<script type="text/javascript">
+    //IE outdate friendly warning if you don't want remove it
+    var $buoop = {vs:{i:8,f:3.6,o:10.6,s:3.2,n:9}}
+    $buoop.ol = window.onload;
+    window.onload=function(){
+        try {if ($buoop.ol) $buoop.ol();}catch (e) {}
+        var e = document.createElement("script");
+        e.setAttribute("type", "text/javascript");
+        e.setAttribute("src", "http://browser-update.org/update.js");
+        document.body.appendChild(e);
+    }
+</script>
+
+
+</body>
+</html>
\ No newline at end of file

Added: incubator/usergrid/site/publish/docs/facebook-sign/index.html
URL: http://svn.apache.org/viewvc/incubator/usergrid/site/publish/docs/facebook-sign/index.html?rev=1542910&view=auto
==============================================================================
--- incubator/usergrid/site/publish/docs/facebook-sign/index.html (added)
+++ incubator/usergrid/site/publish/docs/facebook-sign/index.html Mon Nov 18 06:09:23 2013
@@ -0,0 +1,372 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <title>Apache Usergrid (incubating) — Facebook sign in</title>
+    <meta http-equiv="x-ua-compatible" content="ie=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" />
+    <meta name="keywords" content="Apache Usergrid, Usergrid, BaaS, Backend-as-a-Service">
+    <meta name="description" content="An open-source Backend-as-a-Service stack for web & mobile applications, based on RESTful APIs." />
+    <meta property="og:title" content="Apache Usergrid" />
+    <meta property="og:description" content="An open-source Backend-as-a-Service stack for web & mobile applications, based on RESTful APIs." />
+    <!-- Loading Typekit -->
+    <script type="text/javascript" src="//use.typekit.net/ddl7izx.js"></script>
+    <script type="text/javascript">try{Typekit.load();}catch(e){}</script>
+    <!-- Loading Bootstrap -->
+    <link href="/bootstrap/bootstrap.min.css" rel="stylesheet" type='text/css'>
+    <link href="/css/bootflat.css" rel="stylesheet" type='text/css'>
+    <link href="/css/usergrid-site.css" rel="stylesheet" type='text/css'>
+    <link href="http://fonts.googleapis.com/css?family=Open+Sans:200,400,500,300,600,800,700,400italic,600italic,700italic,800italic,300italic" rel="stylesheet" type="text/css">
+    <link href="/css/font-awesome.min.css" rel="stylesheet" type='text/css'>
+
+    
+
+    <!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. -->
+    <!--[if lt IE 9]>
+      <script src="js/html5shiv.js"></script>
+      <script src="js/respond.min.js"></script>
+    <![endif]-->
+</head>
+<body>
+
+    <header class="navbar navbar-inverse navbar-fixed-top bf-docs-nav secondary" role="banner">
+    <div class="container">
+        <div class="navbar-header">
+            <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bf-navbar-collapse">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a href="/" class="navbar-brand">
+                <img id="home-logo" src="/img/apache_usergrid_logo_white_small.png" />
+            </a>
+        </div>
+        <nav class="collapse navbar-collapse bf-navbar-collapse" role="navigation">
+            <ul class="nav navbar-nav navbar-right">
+                <!--<li class="active"><a href="/docs/"><span class="icns icon-book"></span></a></li>-->
+                <li class=""><a href="/community/"><span class="icns icon-group"></span></a></li>
+                <li><a href="http://github.com/usergrid/usergrid" target="_blank"><span class="icns icon-github-sign"></span></a></li>
+                <!--<li><a href="https://trello.com/b/exQmJIOn/usergrid" target="_blank"><span class="icns icon-trello"></span></a></li>-->
+                <li><a href="https://issues.apache.org/jira/browse/USERGRID" target="_blank"><span class="icns icon-bug"></span></a></li>
+                <li><a href="http://stackoverflow.com/search?q=usergrid" target="_blank"><span class="icns icon-stackexchange"></span></a></li>
+                <li><a href="http://webchat.freenode.net/?channels=%23usergrid&uio=d4" target="_blank"><span class="icns icon-comments"></span></a></li>
+                <!--<li><a href="https://groups.google.com/forum/#!forum/usergrid" target="_blank"><span class="icns icon-envelope"></span></a></li>-->
+                <li><a href="https://twitter.com/usergrid" target="_blank"><span class="icns icon-twitter"></span></a></li>
+            </ul>
+        </nav>
+    </div>
+    </header>
+
+
+<div class="container bf-docs-container">    
+    <div class="row">
+        <div class="col-md-3">
+            <div class="bf-sidebar hidden-print" role="complementary">
+                <ul class="nav nav-list">
+                    <li><a href="#">Getting Up & Running Locally</a></li>
+                    <li><a href="#"><code>ugc</code> — the Command-line Client</a></li>
+
+                    <li class="nav-header"><span>Concepts</span></li>
+                    <li>
+                        <a href="/docs/organizations-admins/">Organizations & Admins</a>
+                        <ul>
+                            <li>
+                                <a href="/docs/applications">Applications</a>
+                                <ul>
+                                    <li><a href="#">Roles & Permissions</a></li>
+                                    <li><a href="#">Queues</a></li>
+                                    <li><a href="#">Events & Counters</a></li>
+                                    <li>
+                                        <a href="#">Collections</a>
+                                        <ul>
+                                            <li><a href="#">Query Language</a></li>
+                                            <li><a href="#">Users & Devices</a></li>
+                                            <li><a href="#">Groups</a></li>
+                                            <li><a href="#">Activities</a></li>
+                                            <li><a href="#">Assets</a></li>
+                                        </ul>
+                                    </li>
+                                </ul>
+                            </li>
+                        </ul>
+                    </li>
+
+
+                    <li class="nav-header"><span>Usage</span></li>
+                    <li><a href="/docs/rest-api">REST API</a></li>
+                    <li><a class="icns-apple" href="#">iOS SDK</a></li>
+                    <li><a class="icns-android" href="#">Android SDK</a></li>
+                    <li><a class="icns-html5" href="/docs/html5-javascript-sdk">HTML5 / JavaScript SDK</a></li>
+                    <li><a class="icns-windows" href="#">Windows 8 / Windows Phone / .net SDK</a></li>
+                    <li><a href="/docs/nodejs-module">Node.js module</a></li>
+                    <li><a href="/docs/ruby-gem">Ruby gem</a></li>
+                    <li><a href="#">Ruby on Rails gem</a></li>
+                    <li><a href="#">PHP library</a></li>
+
+                    <li class="nav-header"><span>Internals</span></li>
+                    <li><a href="#">Design & Goals</a></li>
+                    <li><a href="#">Java Architecture</a></li>
+                    <li><a href="#">Cassandra Schema</a></li>
+                    <li><a href="#">Contributing</a></li>
+
+                    <li class="nav-header"><span>Operations</span></li>
+                    <li><a href="#">Deploying</a></li>
+                    <li><a href="#">Monitoring</a></li>
+                    <li><a href="#">Upgrading</a></li>
+                    <li><a href="#">Security</a></li>
+                </ul>
+            </div>
+        </div>
+
+        <div class="col-md-9 main-article" role="main">
+            <div class="page-article">
+                <div class="page-header">
+                    <h1>Facebook sign in</h1>
+                  <small><a href="https://github.com/timanglade/usergrid-site/blob/master/content/docs/facebook-sign/">contribute to this article on github</a></small>
+                </div>
+                <div class="toc">
+	<ul>
+<li>
+<a href="#facebook-sign-in">Facebook sign in</a><ul>
+<li>
+<a href="#facebook-login-example">Facebook login example</a><ul>
+<li><a href="#step-1-create-a-facebook-app">Step 1: Create a Facebook app</a></li>
+<li><a href="#step-2-invoke-the-facebook-oauth-dialog">Step 2: Invoke the Facebook OAuth dialog</a></li>
+<li><a href="#step-3-add-the-javascript-sdk-for-facebook">Step 3: Add the JavaScript SDK for Facebook</a></li>
+<li><a href="#step-4.-setup-fb.login">Step 4. Setup FB.login</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<h1 id="facebook-sign-in"><a href="#facebook-sign-in">Facebook sign in</a></h1>
+<p>You can authenticate your Apache Usergrid requests by logging into Facebook. To access Apache Usergrid resources, you need to provide an access token with each request (unless you use the sandbox app). You can get an access token by connecting to an appropriate web service endpoint and providing the correct client credentials — this is further described in <a href="/authenticating-users-and-application-clients">Authenticating users and application clients</a>. However, you can also obtain an access token by logging into Facebook.</p>
+<p>To enable authentication to Apache Usergrid through Facebook, do the following in your app:</p>
+<ol style="list-style-type: decimal">
+<li>Make a login call to the Facebook API (do this using the <a href="https://developers.facebook.com/docs/sdks/">Facebook SDK</a> or <a href="https://developers.facebook.com/docs/facebook-login/">API</a>). If the login succeeds, a Facebook access token is returned.</li>
+<li>
+<p>Send the Facebook access token to Apache Usergrid. If the Facebook access token is valid and the user does not already exist in App Services, Apache Usergrid provisions a new Apache Usergrid user. It also returns an Apache Usergrid access token, which you can use for subsequent Apache Usergrid API calls. Behind the scenes, Apache Usergrid uses the Facebook access token to retrieve the user’s profile information from Facebook.</p>
+<p>If the Facebook access token is invalid, Facebook returns an OAuth authentication error, and the login does not succeed.</p>
+</li>
+</ol><p>The request to authenticate to Apache Usergrid using a Facebook access token is:</p>
+<pre><code>GET https://api.usergrid.com/{my_org}/{my_app}/auth/facebook?fb_access_token={fb_access_token}</code></pre>
+<p>where:</p>
+<p>{my_org} is the organization UUID or organization name.<br>{my_app} is the application UUID or application name.<br>{fb_access_token} is the Facebook access token.</p>
+<h2 id="facebook-login-example"><a href="#facebook-login-example">Facebook login example</a></h2>
+<p>The <a href="https://developers.facebook.com/docs/technical-guides/login/">Facebook technical guides for login</a> present detailed information on how to add Facebook login to your app. Instructions are provided for JavaScript, iOS, and Android.</p>
+<p>In brief, here are the steps for JavaScript. You can see these steps implemented in the Facebook login example packaged with the JavaScript SDK for Apache Usergrid (which you can download in <a href="https://github.com/apigee/usergrid-javascript-sdk/archive/master.zip">ZIP</a> format or <a href="https://github.com/apigee/usergrid-javascript-sdk/archive/master.tar.gz">tar.gz</a> format). The Facebook login example is in the /examples/facebook directory of the extracted download. The code example snippets shown below are taken from the Facebook login example.</p>
+<h3 id="step-1-create-a-facebook-app"><a href="#step-1-create-a-facebook-app">Step 1: Create a Facebook app</a></h3>
+<p>Create a new app on the <a href="https://developers.facebook.com/apps/">Facebook App Dashboard</a>. Enter your app’s basic information. Once created, note the app ID shown at the top of the dashboard page.</p>
+<h3 id="step-2-invoke-the-facebook-oauth-dialog"><a href="#step-2-invoke-the-facebook-oauth-dialog">Step 2: Invoke the Facebook OAuth dialog</a></h3>
+<p>Invoke the Facebook OAuth Dialog. To do that, redirect the user’s browser to a URL by inserting the following Javascript code after the opening &lt;body&gt; tag in your app’s HTML file:</p>
+<pre><code>https://www.facebook.com/dialog/oauth/?
+    client_id={YOUR_APP_ID}
+    &amp;redirect_uri={YOUR_REDIRECT_URL}
+    &amp;state={YOUR_STATE_VALUE}
+    &amp;scope={COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES}
+    &amp;response_type={YOUR_RESPONSE_TYPE}</code></pre>
+<p>where:</p>
+<p>{YOUR_APP_ID} is the app ID.<br>{YOUR_REDIRECT_URL} is the application UUID or application name.<br>{YOUR_STATE_VALUE} is a unique string used to maintain application state between the request and callback.<br>{COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES} is a comma separated list of permission names which you would like the user to grant your application.<br>{YOUR_RESPONSE_TYPE}is the requested response type, either code or token. Defaults to code. Set the response type to token. With the response type set to token, the Dialog’s response will include an OAuth user access token in the fragment of the URL the user is redirected to, as per the client-side authentication flow.</p>
+<p>Here is how it’s done in the Facebook login example:</p>
+<pre><code>var apiKey = $("#api-key").val();
+var location = window.location.protocol + '//' + window.location.host;
+var path = window.location.pathname;
+
+var link = "https://www.facebook.com/dialog/oauth?client_id=";
+link += apiKey;
+link += "&amp;redirect_uri=";
+link += location+path
+link += "&amp;scope&amp;COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES&amp;response_type=token";
+
+//now forward the user to facebook
+window.location = link;</code></pre>
+<p>Notice that the response type is set to token. As a result, a Facebook access token will be appended to the URL to which the user is redirected.</p>
+<h3 id="step-3-add-the-javascript-sdk-for-facebook"><a href="#step-3-add-the-javascript-sdk-for-facebook">Step 3: Add the JavaScript SDK for Facebook</a></h3>
+<p>Add the following Javascript SDK initialization code after the code that invokes the Facebook OAuth Dialog. The code will load and initialize the JavaScript SDK in your HTML page. Replace YOUR_APP_ID with the App ID noted in Step 1, and WWW.YOUR_DOMAIN.COM with your own domain.</p>
+<pre><code>window.fbAsyncInit = function() {
+    FB.init({
+      appId      : 'YOUR_APP_ID', // App ID
+      channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
+      status     : true, // check login status
+      cookie     : true, // enable cookies to allow the server to access the session
+      xfbml      : true  // parse XFBML
+    });</code></pre>
+<p>Here is how the window.fbAsynchInit() function is implemented in the Facebook login example:</p>
+<pre><code>//load up the facebook api sdk
+  window.fbAsyncInit = function() {
+    FB.init({
+      appId      : '308790195893570', // App ID
+      channelUrl : '//usergridsdk.dev//examples/channel.html', // Channel File
+      status     : true, // check login status
+      cookie     : true, // enable cookies to allow the server to access the session
+      xfbml      : true  // parse XFBML
+    });
+  };</code></pre>
+<h3 id="step-4.-setup-fb.login"><a href="#step-4.-setup-fb.login">Step 4. Setup FB.login</a></h3>
+<p>Whenever a user is either not logged into Facebook or not authorized for an app, it is useful to prompt them with the relevant dialog. The FB.login() Javascript SDK function automatically displays the correct one to the user.</p>
+<p>To integrate FB.login()Fwindow.fbAsyncInit() function in your existing code:</p>
+<pre><code>function login() {
+    FB.login(function(response) {
+        if (response.authResponse) {
+            // connected
+        } else {
+            // cancelled
+        }
+    });
+}</code></pre>
+<p>Here is how window.fbAsynchInit()FB.login() is implemented in the Facebook login example:</p>
+<pre><code>function login(facebookAccessToken) {
+    client.loginFacebook(facebookAccessToken, function(err, response){
+      var output = JSON.stringify(response, null, 2);
+      if (err) {
+        var html = '&lt;pre&gt;Oops!  There was an error logging you in. \r\n\r\n';
+        html += 'Error: \r\n' + output+'&lt;/pre&gt;';
+      } else {
+        var html = '&lt;pre&gt;Hurray!  You have been logged in. \r\n\r\n';
+        html += 'Facebook Token: ' + '\r\n' + facebookAccessToken + '\r\n\r\n';
+        html += 'Facebook Profile data stored in Usergrid: \r\n' + output+'&lt;/pre&gt;';
+      }
+      $('#facebook-status').html(html);
+    })
+  }</code></pre>
+<p>The client.loginFacebook() function is provided by the Apache Usergrid JavaScript SDK. It uses the Facebook auth token to obtain an App Services auth token. If the Facebook access token is valid and the user does not already exist in Apache Usergrid, the function creates a user entity for the user. It also uses the Facebook access token to retrieve the user’s profile information from Facebook.</p>
+<p>Here is what the client.loginFacebook() function looks like:</p>
+<pre><code>Usergrid.Client.prototype.loginFacebook = function (facebookToken, callback) {
+  var self = this;
+  var options = {
+    method:'GET',
+    endpoint:'auth/facebook',
+    qs:{
+      fb_access_token: facebookToken
+    }
+  };
+  this.request(options, function(err, data) {
+    var user = {};
+    if (err &amp;&amp; self.logging) {
+      console.log('error trying to log user in');
+    } else {
+      user = new Usergrid.Entity('users', data.user);
+      self.setToken(data.access_token);
+    }
+    if (typeof(callback) === 'function') {
+      callback(err, data, user);
+    }
+  });
+}</code></pre>
+<p>Notice that the function also returns an Apache Usergrid access token, which you can use for subsequent Apache Usergrid API calls.</p>
+<p>Remember to create a client for your app, which is the main entry point to the JavaScript SDK for Apache Usergrid. You need to do this before you can use the SDK. Here’s the code to create a client:</p>
+<pre><code>var client = new Usergrid.Client({
+    orgName:'yourorgname',
+    appName:'yourappname',
+    logging: true, //optional - turn on logging, off by default
+    buildCurl: true //optional - turn on curl commands, off by default
+});</code></pre>
+            </div>
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-md-3"></div>
+        <div class="col-md-9">
+            <div class="github-callout">
+                <strong>Questions?</strong> Please do <a href="https://groups.google.com/forum/#!forum/usergrid">ask on the mailing-list</a>!<br/>
+                <strong>Found an error?</strong> We’d greatly appreciate a pull request about <a href="https://github.com/timanglade/usergrid-site/blob/master/content/docs/facebook-sign/">this article on github</a>.</div>
+        </div>
+    </div>
+</div>
+
+
+<footer class="bf-footer" role="contentinfo">
+    <div class="container">
+        <div class="row">
+            <div class="col-md-2">
+                <ul class="nav nav-list">
+                    <li class="nav-header"><a href="/">Home</a></li>
+                    <li class="nav-header"><a href="/community/">Community</a></li>
+                        <!-- <li><a href="/community#events">Events</a></li> -->
+                        <li><a href="/community/#mailing-lists">Mailing Lists</a></li>
+                        <li><a href="/community/#deployments">Deployments</a></li>
+                        <li><a href="/community/#committers">Commiters</a></li>
+                    <!-- <li class="nav-header"><a href="#">Docs</a></li> -->
+                </ul>
+            </div>
+            <div class="col-md-2">
+                <ul class="nav nav-list">
+                    <li class="nav-header"><a href="https://github.com/usergrid/usergrid/" target="_blank">Code</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/stack" target="_blank">Server Stack</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/portal" target="_blank">Admin Portal</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/ugc" target="_blank">ugc command line</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/ios" target="_blank">iOS SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/android" target="_blank">Android SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/html5-javascript" target="_blank">HTML5/JS SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/nodejs" target="_blank">node.js module</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/ruby-on-rails" target="_blank">Ruby on Rails gem</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/ruby" target="_blank">Ruby gem</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/php" target="_blank">PHP SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/java" target="_blank">Java SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/dotnet" target="_blank">.NET / Windows SDK</a></li>
+                </ul>
+            </div>
+            <div class="col-md-2">
+                <ul class="nav nav-list">
+                    <li class="nav-header">Resources</li>
+                        <li><a href="http://github.com/usergrid/usergrid" target="_blank">GitHub Code</a></li>
+                        <li><a href="https://issues.apache.org/jira/browse/USERGRID" target="_blank">JIRA Bug Tracker</a></li>
+                        <li><a href="http://stackoverflow.com/search?q=usergrid" target="_blank">StackOverflow</a></li>
+                        <li><a href="http://webchat.freenode.net/?channels=%23usergrid&uio=d4">IRC</a></li>
+                        <li><a href="https://twitter.com/usergrid" target="_blank">Twitter</a></li>
+                        <li><a href="http://incubator.apache.org/projects/usergrid.html" target="_blank">Podling Listing</a></li>
+                        <li><a href="https://github.com/usergrid/usergrid/blob/master/LICENSE" target="_blank">License</a></li>
+                        <li><a href="https://github.com/usergrid/usergrid/blob/master/stack#requirements" target="_blank">Getting Started</a></li>
+                        <li><a href="https://github.com/usergrid/usergrid/blob/master/stack#contributing" target="_blank">Contribution Guidelines</a></li>
+                </ul>
+            </div>
+            <div class="col-md-2"></div>
+            <div class="col-md-4">
+                <a class="twitter-timeline" href="https://twitter.com/search?q=%23usergrid" data-widget-id="401499136807038976"  data-related="usergrid" height="400px" style="overflow:hidden">Tweets about "usergrid"</a>
+                <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+            </div> 
+        <!--
+            <div class="col-md-4">
+                <div class="input-group form-search">
+                    <input type="text" class="form-control search-query">
+                    <span class="input-group-btn">
+                        <button type="submit" class="btn btn-primary" data-type="last">Search</button>
+                    </span>
+                </div>
+            </div> -->
+        </div> 
+        <div class="row">
+            <div id="copyright">
+                <img src="/img/egg-logo.png" /><br/><br/>
+                <p>Apache Usergrid is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the name of Apache TLP sponsor. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.</p>
+                <p>Copyright © 2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
+                Apache and the Apache feather logos are trademarks of The Apache Software Foundation.</p>
+                <p class="credits">Site designed & assembled with love by <a href="https://github.com/ryuneeee">@ryuneeee</a> + <a href="https://github.com/realbeast">@realbeast</a> + <a href="https://twitter.com/timanglade">@timanglade</a>.</p>
+            </div>
+        </div>
+    </div>
+</footer>
+
+<script type="text/javascript" src="/js/head.js"></script>
+<script type="text/javascript">
+    head.js("/js/jquery-1.10.1.min.js", "/js/bootstrap.min.js", "/js/usergrid-site.js");
+</script>
+<script type="text/javascript">
+    //IE outdate friendly warning if you don't want remove it
+    var $buoop = {vs:{i:8,f:3.6,o:10.6,s:3.2,n:9}}
+    $buoop.ol = window.onload;
+    window.onload=function(){
+        try {if ($buoop.ol) $buoop.ol();}catch (e) {}
+        var e = document.createElement("script");
+        e.setAttribute("type", "text/javascript");
+        e.setAttribute("src", "http://browser-update.org/update.js");
+        document.body.appendChild(e);
+    }
+</script>
+
+
+</body>
+</html>
\ No newline at end of file

Added: incubator/usergrid/site/publish/docs/features/index.html
URL: http://svn.apache.org/viewvc/incubator/usergrid/site/publish/docs/features/index.html?rev=1542910&view=auto
==============================================================================
--- incubator/usergrid/site/publish/docs/features/index.html (added)
+++ incubator/usergrid/site/publish/docs/features/index.html Mon Nov 18 06:09:23 2013
@@ -0,0 +1,315 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <title>Apache Usergrid (incubating) — Apache Usergrid Features</title>
+    <meta http-equiv="x-ua-compatible" content="ie=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" />
+    <meta name="keywords" content="Apache Usergrid, Usergrid, BaaS, Backend-as-a-Service">
+    <meta name="description" content="An open-source Backend-as-a-Service stack for web & mobile applications, based on RESTful APIs." />
+    <meta property="og:title" content="Apache Usergrid" />
+    <meta property="og:description" content="An open-source Backend-as-a-Service stack for web & mobile applications, based on RESTful APIs." />
+    <!-- Loading Typekit -->
+    <script type="text/javascript" src="//use.typekit.net/ddl7izx.js"></script>
+    <script type="text/javascript">try{Typekit.load();}catch(e){}</script>
+    <!-- Loading Bootstrap -->
+    <link href="/bootstrap/bootstrap.min.css" rel="stylesheet" type='text/css'>
+    <link href="/css/bootflat.css" rel="stylesheet" type='text/css'>
+    <link href="/css/usergrid-site.css" rel="stylesheet" type='text/css'>
+    <link href="http://fonts.googleapis.com/css?family=Open+Sans:200,400,500,300,600,800,700,400italic,600italic,700italic,800italic,300italic" rel="stylesheet" type="text/css">
+    <link href="/css/font-awesome.min.css" rel="stylesheet" type='text/css'>
+
+    
+
+    <!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. -->
+    <!--[if lt IE 9]>
+      <script src="js/html5shiv.js"></script>
+      <script src="js/respond.min.js"></script>
+    <![endif]-->
+</head>
+<body>
+
+    <header class="navbar navbar-inverse navbar-fixed-top bf-docs-nav secondary" role="banner">
+    <div class="container">
+        <div class="navbar-header">
+            <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bf-navbar-collapse">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a href="/" class="navbar-brand">
+                <img id="home-logo" src="/img/apache_usergrid_logo_white_small.png" />
+            </a>
+        </div>
+        <nav class="collapse navbar-collapse bf-navbar-collapse" role="navigation">
+            <ul class="nav navbar-nav navbar-right">
+                <!--<li class="active"><a href="/docs/"><span class="icns icon-book"></span></a></li>-->
+                <li class=""><a href="/community/"><span class="icns icon-group"></span></a></li>
+                <li><a href="http://github.com/usergrid/usergrid" target="_blank"><span class="icns icon-github-sign"></span></a></li>
+                <!--<li><a href="https://trello.com/b/exQmJIOn/usergrid" target="_blank"><span class="icns icon-trello"></span></a></li>-->
+                <li><a href="https://issues.apache.org/jira/browse/USERGRID" target="_blank"><span class="icns icon-bug"></span></a></li>
+                <li><a href="http://stackoverflow.com/search?q=usergrid" target="_blank"><span class="icns icon-stackexchange"></span></a></li>
+                <li><a href="http://webchat.freenode.net/?channels=%23usergrid&uio=d4" target="_blank"><span class="icns icon-comments"></span></a></li>
+                <!--<li><a href="https://groups.google.com/forum/#!forum/usergrid" target="_blank"><span class="icns icon-envelope"></span></a></li>-->
+                <li><a href="https://twitter.com/usergrid" target="_blank"><span class="icns icon-twitter"></span></a></li>
+            </ul>
+        </nav>
+    </div>
+    </header>
+
+
+<div class="container bf-docs-container">    
+    <div class="row">
+        <div class="col-md-3">
+            <div class="bf-sidebar hidden-print" role="complementary">
+                <ul class="nav nav-list">
+                    <li><a href="#">Getting Up & Running Locally</a></li>
+                    <li><a href="#"><code>ugc</code> — the Command-line Client</a></li>
+
+                    <li class="nav-header"><span>Concepts</span></li>
+                    <li>
+                        <a href="/docs/organizations-admins/">Organizations & Admins</a>
+                        <ul>
+                            <li>
+                                <a href="/docs/applications">Applications</a>
+                                <ul>
+                                    <li><a href="#">Roles & Permissions</a></li>
+                                    <li><a href="#">Queues</a></li>
+                                    <li><a href="#">Events & Counters</a></li>
+                                    <li>
+                                        <a href="#">Collections</a>
+                                        <ul>
+                                            <li><a href="#">Query Language</a></li>
+                                            <li><a href="#">Users & Devices</a></li>
+                                            <li><a href="#">Groups</a></li>
+                                            <li><a href="#">Activities</a></li>
+                                            <li><a href="#">Assets</a></li>
+                                        </ul>
+                                    </li>
+                                </ul>
+                            </li>
+                        </ul>
+                    </li>
+
+
+                    <li class="nav-header"><span>Usage</span></li>
+                    <li><a href="/docs/rest-api">REST API</a></li>
+                    <li><a class="icns-apple" href="#">iOS SDK</a></li>
+                    <li><a class="icns-android" href="#">Android SDK</a></li>
+                    <li><a class="icns-html5" href="/docs/html5-javascript-sdk">HTML5 / JavaScript SDK</a></li>
+                    <li><a class="icns-windows" href="#">Windows 8 / Windows Phone / .net SDK</a></li>
+                    <li><a href="/docs/nodejs-module">Node.js module</a></li>
+                    <li><a href="/docs/ruby-gem">Ruby gem</a></li>
+                    <li><a href="#">Ruby on Rails gem</a></li>
+                    <li><a href="#">PHP library</a></li>
+
+                    <li class="nav-header"><span>Internals</span></li>
+                    <li><a href="#">Design & Goals</a></li>
+                    <li><a href="#">Java Architecture</a></li>
+                    <li><a href="#">Cassandra Schema</a></li>
+                    <li><a href="#">Contributing</a></li>
+
+                    <li class="nav-header"><span>Operations</span></li>
+                    <li><a href="#">Deploying</a></li>
+                    <li><a href="#">Monitoring</a></li>
+                    <li><a href="#">Upgrading</a></li>
+                    <li><a href="#">Security</a></li>
+                </ul>
+            </div>
+        </div>
+
+        <div class="col-md-9 main-article" role="main">
+            <div class="page-article">
+                <div class="page-header">
+                    <h1>Apache Usergrid Features</h1>
+                  <small><a href="https://github.com/timanglade/usergrid-site/blob/master/content/docs/features/">contribute to this article on github</a></small>
+                </div>
+                <div class="toc">
+	<ul>
+<li>
+<a href="#apache-usergrid-features">Apache Usergrid Features</a><ul>
+<li>
+<a href="#data-storage-management">Data storage &amp; management</a><ul>
+<li><a href="#application-data">Application data</a></li>
+<li><a href="#files-assets">Files &amp; assets</a></li>
+<li><a href="#flexible-data-querying">Flexible data querying</a></li>
+</ul>
+</li>
+<li>
+<a href="#social">Social</a><ul>
+<li><a href="#entity-relationships">Entity relationships</a></li>
+<li><a href="#activity-streams">Activity streams</a></li>
+</ul>
+</li>
+<li>
+<a href="#user-management">User management</a><ul>
+<li><a href="#registration-and-login">Registration and login</a></li>
+<li><a href="#roles-permissions">Roles &amp; permissions</a></li>
+<li><a href="#groups">Groups</a></li>
+<li><a href="#third-party-authentication">Third-party authentication</a></li>
+</ul>
+</li>
+<li><a href="#geolocation">Geolocation</a></li>
+<li><a href="#push-notifications">Push notifications</a></li>
+<li><a href="#configuration-management">Configuration management</a></li>
+<li><a href="#error-performance-monitoring">Error &amp; performance monitoring</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<h1 id="apache-usergrid-features"><a href="#apache-usergrid-features">Apache Usergrid Features</a></h1>
+<p>Apache Usergrid is a backend-as-a-service (BaaS) solution that enables you to quickly integrate valuable features into your app, including social graphs, user management, data storage, push notifications, performance monitoring, and more.</p>
+<p>Using Apache Usergrid, you can set up your own cloud-based data platform in minutes instead of months – no server-side coding or back-end development needed. This allows your team to focus on developing the rich features and user experience that truly differentiate your app, rather than the time-consuming details of implementing core back-end services and infrastructure.</p>
+<h2 id="data-storage-management"><a href="#data-storage-management">Data storage &amp; management</a></h2>
+<h3 id="application-data"><a href="#application-data">Application data</a></h3>
+<p>At the core of Apache Usergrid is a flexible platform that can store any type of application data, from simple records like a catalog of books to complex associations like user relationships. No matter what type of data drives your app, you can store it in Apache Usergrid infrastructure as collections of data entities and immediately perform complex queries or full-text searches on any field. You can also create custom entities with custom properties, giving you the ability to store data and context in a way that makes sense for your app.</p>
+<p>To learn more about entities and collections, see <a href="/app-services-data-model-1">Apache Usergrid Data model</a>.</p>
+<p>For a complete list of default data entities available in Apache Usergrid, see <a href="/default-data-entities">Default Data Entities</a>.</p>
+<h3 id="files-assets"><a href="#files-assets">Files &amp; assets</a></h3>
+<p>Images, video, and audio are key components of a great app experience. With Apache Usergrid, you can upload and retrieve binary objects from the same data store as the rest of your application data, eliminating the need to set up content delivery networks (CDNs) and easing implementation. We handle all the back-end details that keep your content quickly accessible.</p>
+<p>To learn more about files and asset storage, see <a href="/uploading-files-and-assets">Uploading files and assets</a>.</p>
+<h3 id="flexible-data-querying"><a href="#flexible-data-querying">Flexible data querying</a></h3>
+<p>One of Apache Usergrid’ most powerful features is the ability to perform SQL-style queries and full-text searches on data entities, as well as their properties. This lets you quickly retrieve specific data entities based on multiple criteria, then utilize that data to power social features, target push notifications, perform user analysis, and more.</p>
+<p>Learn more about querying app data, see <a href="/app-services-data-query-overview">Apache Usergrid data query overview</a>.</p>
+<h2 id="social"><a href="#social">Social</a></h2>
+<h3 id="entity-relationships"><a href="#entity-relationships">Entity relationships</a></h3>
+<p>With Apache Usergrid you can create relationships between data entities to help build features, improve user experience, and contextualize data. For example, you might associate a user with their devices to capture valuable geolocation data, create relationships between users to build social graphs, or implement popular features such as activity streams.</p>
+<p>To learn more about entity relationships, see <a href="/entity-relationships">Entity relationships</a>.</p>
+<h3 id="activity-streams"><a href="#activity-streams">Activity streams</a></h3>
+<p>A key aspect of social networking apps is the ability to provide and publish data streams of user actions, such as ongoing lists of comments, activities, and tweets. Apache Usergrid simplifies management and routing of these data streams by providing an activity entity that is specifically designed to automatically create a relationship between activities and the user who created them.</p>
+<p>To learn more about activities and activity feeds, see <a href="/activity">Activity</a>.</p>
+<h2 id="user-management"><a href="#user-management">User management</a></h2>
+<h3 id="registration-and-login"><a href="#registration-and-login">Registration and login</a></h3>
+<p>Apache Usergrid makes it easy to add and manage users by providing the core services necessary to handle secure registration and log in, including OAuth 2.0-compliant client authentication. In addition, any number of default or custom data entities and properties can be associated with a user entity to create complete user profiles.</p>
+<p>To learn more about user management, see <a href="/user">User</a>.</p>
+<p>To learn more about authentication, see <a href="/authenticating-users-and-application-clients">Authenticating users and application clients</a>.</p>
+<h3 id="roles-permissions"><a href="#roles-permissions">Roles &amp; permissions</a></h3>
+<p>Applications often require the ability to configure fine-grain control of user access to data, features and functionality. Apache Usergrid solves the implementation details of user access with roles and permissions. Simply create roles that represent user types or access levels, such as Administrator, then assign the necessary permissions to that role. With a single API call, you can then associate your roles with any user or group of users.</p>
+<p>To learn more about user roles and permissions, see <a href="/managing-access-defining-permission-rules">Managing access by defining permission rules</a>.</p>
+<h3 id="groups"><a href="#groups">Groups</a></h3>
+<p>Groups are a flexible way to organize your users based on any number of criteria. For example, you might group users based on interests or location to more effectively deliver relevant content, target offers, or customize campaigns. You can also take advantage of the groups entity to enable group-based social networking activities, such as allowing your users to create private information feeds or circles of friends.</p>
+<p>To learn more about groups, see <a href="/group">Group</a>.</p>
+<h3 id="third-party-authentication"><a href="#third-party-authentication">Third-party authentication</a></h3>
+<p>In addition to supporting user management and OAuth-based login for your app, Apache Usergrid also makes it easy to integrate third-party authentication through such popular services as Facebook, Twitter and other OAuth-enabled accounts. Providing third-party sign-in can improve user experience, while increasing adoption, giving you access to valuable information from social networks and services.</p>
+<p>To learn more about using third-party sign-in, see <a href="/facebook-sign">Facebook sign in</a>.</p>
+<h2 id="geolocation"><a href="#geolocation">Geolocation</a></h2>
+<p>The Apache Usergrid device entity allows you to capture geolocation data from your users’ GPS-enabled devices to more effectively target campaigns, push notifications, offers and more. Geolocation also gives you an important data point for contextualizing and analyzing trends and user behavior.</p>
+<p>To learn more about geolocation, see <a href="/geolocation">Geolocation</a>.</p>
+<h2 id="push-notifications"><a href="#push-notifications">Push notifications</a></h2>
+<p>Push notifications are the most effective way to engage your users with relevant content, and thanks to Apache Usergrid, implementing them can be done in minutes. Simply register your app and your user’s devices with a notification provider, such as Apple Push Notification Service or Google Cloud Messaging, then use the Apache Usergrid notification entity to send millions of push notifications a month at no cost. When used in conjunction with queries of user and application data, push notifications become a powerful tool for leveraging user data, ensuring relevancy and driving engagement.</p>
+<p>To learn more about push notifications, see <a href="/push-notifications-overview">Push notifications overview</a>.</p>
+<h2 id="configuration-management"><a href="#configuration-management">Configuration management</a></h2>
+<p>By giving you the ability to push configuration changes directly to users’ devices, Apache Usergrid lets you test and deliver bug fixes and performance improvements in real time. Remote configuration management can even be used to push changes to a subset of all users, enabling A/B testing of fixes, so that you can monitor and collect data to ensure your updates perform as intended before they are pushed to your entire user base.</p>
+<p>To learn more about configuration management, see <a href="/configure-your-app">Configure your app</a>.</p>
+<h2 id="error-performance-monitoring"><a href="#error-performance-monitoring">Error &amp; performance monitoring</a></h2>
+<p>One of the largest barriers to the success of an app can be the ability of developers to respond quickly and precisely to performance issues and bugs. Apache Usergrid includes data logging and visualization tools that let you monitor and analyze network performance, usage patterns, crash statistics and other key metrics, giving you the data necessary to quickly manage performance issues as they arise.</p>
+<p>To learn more about usage monitoring, see <a href="/monitor-your-app%E2%80%99s-use">Monitor your app’s use</a></p>
+<p>To learn more about error monitoring, see <a href="/get-alerted-crashes-and-critical-errors">Get alerted to crashes and critical errors</a></p>
+            </div>
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-md-3"></div>
+        <div class="col-md-9">
+            <div class="github-callout">
+                <strong>Questions?</strong> Please do <a href="https://groups.google.com/forum/#!forum/usergrid">ask on the mailing-list</a>!<br/>
+                <strong>Found an error?</strong> We’d greatly appreciate a pull request about <a href="https://github.com/timanglade/usergrid-site/blob/master/content/docs/features/">this article on github</a>.</div>
+        </div>
+    </div>
+</div>
+
+
+<footer class="bf-footer" role="contentinfo">
+    <div class="container">
+        <div class="row">
+            <div class="col-md-2">
+                <ul class="nav nav-list">
+                    <li class="nav-header"><a href="/">Home</a></li>
+                    <li class="nav-header"><a href="/community/">Community</a></li>
+                        <!-- <li><a href="/community#events">Events</a></li> -->
+                        <li><a href="/community/#mailing-lists">Mailing Lists</a></li>
+                        <li><a href="/community/#deployments">Deployments</a></li>
+                        <li><a href="/community/#committers">Commiters</a></li>
+                    <!-- <li class="nav-header"><a href="#">Docs</a></li> -->
+                </ul>
+            </div>
+            <div class="col-md-2">
+                <ul class="nav nav-list">
+                    <li class="nav-header"><a href="https://github.com/usergrid/usergrid/" target="_blank">Code</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/stack" target="_blank">Server Stack</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/portal" target="_blank">Admin Portal</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/ugc" target="_blank">ugc command line</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/ios" target="_blank">iOS SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/android" target="_blank">Android SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/html5-javascript" target="_blank">HTML5/JS SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/nodejs" target="_blank">node.js module</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/ruby-on-rails" target="_blank">Ruby on Rails gem</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/ruby" target="_blank">Ruby gem</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/php" target="_blank">PHP SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/java" target="_blank">Java SDK</a></li>
+                    <li><a href="https://github.com/usergrid/usergrid/blob/master/sdks/dotnet" target="_blank">.NET / Windows SDK</a></li>
+                </ul>
+            </div>
+            <div class="col-md-2">
+                <ul class="nav nav-list">
+                    <li class="nav-header">Resources</li>
+                        <li><a href="http://github.com/usergrid/usergrid" target="_blank">GitHub Code</a></li>
+                        <li><a href="https://issues.apache.org/jira/browse/USERGRID" target="_blank">JIRA Bug Tracker</a></li>
+                        <li><a href="http://stackoverflow.com/search?q=usergrid" target="_blank">StackOverflow</a></li>
+                        <li><a href="http://webchat.freenode.net/?channels=%23usergrid&uio=d4">IRC</a></li>
+                        <li><a href="https://twitter.com/usergrid" target="_blank">Twitter</a></li>
+                        <li><a href="http://incubator.apache.org/projects/usergrid.html" target="_blank">Podling Listing</a></li>
+                        <li><a href="https://github.com/usergrid/usergrid/blob/master/LICENSE" target="_blank">License</a></li>
+                        <li><a href="https://github.com/usergrid/usergrid/blob/master/stack#requirements" target="_blank">Getting Started</a></li>
+                        <li><a href="https://github.com/usergrid/usergrid/blob/master/stack#contributing" target="_blank">Contribution Guidelines</a></li>
+                </ul>
+            </div>
+            <div class="col-md-2"></div>
+            <div class="col-md-4">
+                <a class="twitter-timeline" href="https://twitter.com/search?q=%23usergrid" data-widget-id="401499136807038976"  data-related="usergrid" height="400px" style="overflow:hidden">Tweets about "usergrid"</a>
+                <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+            </div> 
+        <!--
+            <div class="col-md-4">
+                <div class="input-group form-search">
+                    <input type="text" class="form-control search-query">
+                    <span class="input-group-btn">
+                        <button type="submit" class="btn btn-primary" data-type="last">Search</button>
+                    </span>
+                </div>
+            </div> -->
+        </div> 
+        <div class="row">
+            <div id="copyright">
+                <img src="/img/egg-logo.png" /><br/><br/>
+                <p>Apache Usergrid is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the name of Apache TLP sponsor. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.</p>
+                <p>Copyright © 2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
+                Apache and the Apache feather logos are trademarks of The Apache Software Foundation.</p>
+                <p class="credits">Site designed & assembled with love by <a href="https://github.com/ryuneeee">@ryuneeee</a> + <a href="https://github.com/realbeast">@realbeast</a> + <a href="https://twitter.com/timanglade">@timanglade</a>.</p>
+            </div>
+        </div>
+    </div>
+</footer>
+
+<script type="text/javascript" src="/js/head.js"></script>
+<script type="text/javascript">
+    head.js("/js/jquery-1.10.1.min.js", "/js/bootstrap.min.js", "/js/usergrid-site.js");
+</script>
+<script type="text/javascript">
+    //IE outdate friendly warning if you don't want remove it
+    var $buoop = {vs:{i:8,f:3.6,o:10.6,s:3.2,n:9}}
+    $buoop.ol = window.onload;
+    window.onload=function(){
+        try {if ($buoop.ol) $buoop.ol();}catch (e) {}
+        var e = document.createElement("script");
+        e.setAttribute("type", "text/javascript");
+        e.setAttribute("src", "http://browser-update.org/update.js");
+        document.body.appendChild(e);
+    }
+</script>
+
+
+</body>
+</html>
\ No newline at end of file