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/25 22:28:40 UTC

[42/51] [partial] incubator-usergrid git commit: Moving website from SVN to Git.

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c8b7d6c5/website/content/docs/folder.md
----------------------------------------------------------------------
diff --git a/website/content/docs/folder.md b/website/content/docs/folder.md
new file mode 100644
index 0000000..dfa831d
--- /dev/null
+++ b/website/content/docs/folder.md
@@ -0,0 +1,45 @@
+---
+title: Folder
+category: docs
+layout: docs
+---
+
+Folder
+======
+
+Folder entities are used primarily to organize content into a structure.
+For example, you can create a folders collection for media content, and
+within it have a ‘music’ folder for music content, and a ‘video’ folder
+for video content.
+
+Using Apache Usergrid APIs you can create, retrieve, update, delete, and
+query folder entities. See You do not have access to view this node for
+descriptions of these APIs.
+
+Folder properties
+-----------------
+
+The following are the system-defined properties for foldetr entities.
+You can create application-specific properties for a folder entity in
+addition to the system-defined properties. The system-defined properties
+are reserved. You cannot use these names to create other properties for
+a folder entity. In addition the folders name is reserved for the
+folders collection — you can't use it to name another collection.
+
+  Property   Type     Description
+  ---------- -------- ---------------------------------------------------------------------------------
+  uuid       UUID     the folder’s unique entity ID
+  type       string   "folder"
+  name       string   Folder name (mandatory)
+  created    long     [UNIX timestamp](http://en.wikipedia.org/wiki/Unix_time) of entity creation
+  modified   long     [UNIX timestamp](http://en.wikipedia.org/wiki/Unix_time) of entity modification
+  owner      UUID     UUID of the folder’s owner (mandatory)
+  path       string   Relative path to the folder (mandatory)
+
+Folders have the following set properties.
+
+  Set           Type     Description
+  ------------- -------- -----------------------------------
+  connections   string   set of connections for the folder
+
+ 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c8b7d6c5/website/content/docs/geolocation.md
----------------------------------------------------------------------
diff --git a/website/content/docs/geolocation.md b/website/content/docs/geolocation.md
new file mode 100644
index 0000000..e59a7fa
--- /dev/null
+++ b/website/content/docs/geolocation.md
@@ -0,0 +1,87 @@
+---
+title: Geolocation
+category: docs
+layout: docs
+---
+
+Geolocation
+===========
+
+Many of today's apps are enhanced by the use of *geolocation*, wireless
+detection of the physical location of a remote device. These apps are
+said to be *geolocation-aware* in that they query the device to
+determine the user's position and then use this data to further enhance
+the user's experience. For example, apps can capture the exact location
+where a picture was taken or a message was created.
+
+App services support geolocation on any entity, both built in (e.g.,
+users, groups) and user defined.
+
+Adding a location to an entity
+------------------------------
+
+To add a location to any entity, include the following member to the
+JSON in a POST or PUT call:
+
+    "location": {
+        "latitude": 37.779632,
+        "longitude": -122.395131  
+    } 
+
+For example, to store a listing of restaurants and their locations,
+start by creating a collection called restaurants:
+
+    POST https://api.usergrid.com/org_name/app_name/restaurants
+
+Next, add a new entity to the collection:
+
+    POST https://api.usergrid.com/org_name/app_name/restaurants
+    {
+      "name": "Rockadero",
+      "address": "21 Slate Street, Bedrock, CA",
+      "location": {
+        "latitude": 37.779632,
+        "longitude": -122.395131
+      }
+    }
+
+This creates a new restaurant entity called "Rockadero" with the
+longitude and latitude included as part of the object.
+
+You can also use geolocation to keep track of the location of a user. In
+this case, the user already exists, so you just need to update that user
+entity. Use POST and include the location member:
+
+    POST https://api.usergrid.com/org_name/app_name/users/fred
+    {
+      "location": {
+        "latitude": 37.779632,
+        "longitude": -122.395131
+      }
+    }
+
+This either adds or updates the location member of the user object for
+the user fred.
+
+Making queries against an entity's location
+-------------------------------------------
+
+When a location is added to an entity, it is easy to make queries
+against that data. For example, to see all restaurants within a 10 mile
+radius of the user's location, make a GET call against that entity, and
+include a search query in the following format:
+
+    location within <distance in meters> of <latitude>, <longitude>
+
+If we use the location of our user Fred, we first need to convert miles
+to meters. 1 mile is equivalent to 1609.344 meters, so 10 miles is about
+16093 meters. Thus, the API call looks like this:
+
+    GET https://api.usergrid.com/org_name/app_name/restaurants?ql=location within 16093 of 37.776753, -122.407846
+
+The url-encoded version looks like this:
+
+    https://api.usergrid.com/org_name/app_name/restaurants?ql=location%20within%2016093%20of%2037.776753%2C%20-122.407846&_=1337570474469
+
+In this case, the API call returns one entry for the Rockadero, which is
+exactly where Fred happens to be. Bon Appetit!

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c8b7d6c5/website/content/docs/getting-up-and-running-locally.md
----------------------------------------------------------------------
diff --git a/website/content/docs/getting-up-and-running-locally.md b/website/content/docs/getting-up-and-running-locally.md
new file mode 100644
index 0000000..a58ef0e
--- /dev/null
+++ b/website/content/docs/getting-up-and-running-locally.md
@@ -0,0 +1,74 @@
+---
+title: Getting Up & Running Locally
+category: docs
+layout: docs
+---
+
+## Requirements
+
+* [JDK 1.7](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
+* [Maven](http://maven.apache.org/)
+
+## Download
+
+Start by [downloading our latest code](https://github.com/apache/incubator-usergrid/archive/master.zip) and extract it.
+
+## Building
+
+From the command line, navigate to stack directory and type the following:
+
+    mvn clean install -DskipTests=true
+
+## Running
+
+Usergrid-core contains the persistence layer and shared utilities for powering the Usergrid service. The services layer is contained in usergrid-services and exposes a higher-level API that's used by the usergrid-rest web services tier.
+
+You can run Usergrid from the command-line from the
+jar in the usergrid/standalone project:
+
+    cd launcher; java -jar target/usergrid-launcher-*.jar
+
+After startup, your instance will be available on localhost, port 8080.
+To check it’s running properly, you can try loading our status page:
+
+    curl http://localhost:8080/status
+
+You can also run it as a webapp in Tomcat, by deploying the ROOT.war file generated in the usergrid/rest project.
+
+## Getting Started with the HTTP API
+
+Start by creating an Organization. It’s the top-level structure in Usergrid:
+all Apps and Administrators must belong to an Organization. Here’s how you create one:
+
+    curl -X POST  \
+         -d 'organization=myfirstorg&username=myadmin&name=Admin&email=admin@example.com&password=password' \
+         http://localhost:8080/management/organizations
+
+You can see that creating an Organization creates an Administrator in the process. Let’s authenticate as him:
+
+    curl 'http://localhost:8080/management/token?grant_type=password&username=myadmin&password=password'
+
+This will return an access\_token. We’ll use this to authenticate the next two calls.
+Next, let’s create an Application:
+
+    curl -H "Authorization: Bearer [the management token from above]" \
+         -H "Content-Type: application/json" \
+         -X POST -d '{ "name":"myapp" }' \
+         http://localhost:8080/management/orgs/myfirstorg/apps
+
+… And a User for the Application:
+
+    curl -H "Authorization: Bearer [the management token from above]" \
+         -X POST "http://localhost:8080/myfirstorg/myapp/users" \
+         -d '{ "username":"myuser", "password":"mypassword", "email":"user@example.com" }'
+
+Let’s now generate an access token for this Application User:
+
+    curl 'http://localhost:8080/myfirstorg/myapp/token?grant_type=password&username=myuser&password=mypassword'
+
+This will also send back an access\_token, but limited in scope.
+Let’s use it to create a collection with some data in it:
+
+    curl -H "Authorization: Bearer [the user token]" \
+         -X POST -d '[ { "cat":"fluffy" }, { "fish": { "gold":2, "oscar":1 } } ]' \
+         http://localhost:8080/myfirstorg/myapp/pets

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c8b7d6c5/website/content/docs/group 2.md
----------------------------------------------------------------------
diff --git a/website/content/docs/group 2.md b/website/content/docs/group 2.md
new file mode 100644
index 0000000..03f3242
--- /dev/null
+++ b/website/content/docs/group 2.md	
@@ -0,0 +1,936 @@
+---
+title: Group
+category: docs
+layout: docs
+---
+
+Group
+=====
+
+A group entity organizes users into a group. Using Apache Usergrid APIs you
+can create, retrieve, update, or delete a group. You can also add or
+delete a user to or from a group.
+
+See [Group entity properties](#group_properties) for a list of the
+system-defined properties for group entities. In addition, you can
+create group properties specific to your application.
+
+**Note:** Although not shown in the API examples below, you need to
+provide a valid access token with each API call. See [Authenticating
+users and application
+clients](/authenticating-users-and-application-clients) for details.
+
+Creating a new group
+--------------------
+
+Use the POST method to create a new group. Groups use paths to indicate
+their unique names. This allows you to create group hierarchies by using
+slashes. For this reason, you need to specify a path property for a new
+group.
+
+### Request URI
+
+POST /{org\_id}/{app\_id}/groups
+
+### Parameters
+
+  Parameter                 Description
+  ------------------------- ----------------------------------------
+  arg uuid|string org\_id   Organization UUID or organization name
+  arg uuid|string app\_id   Application UUID or application name
+
+### Example - Request
+
+-   [cURL](#curl_create_group)
+-   [JavaScript (HTML5)](#javascript_create_group)
+-   [Ruby](#ruby_create_group)
+-   [Node.js](#nodejs_create_group)
+
+<!-- -->
+
+    curl -X POST "https://api.usergrid.com/my-org/my-app/groups" -d '{"path":"mynewgroup"}'
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'POST',
+        endpoint:'groups',
+        body:{ path:'mynewgroup' }
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    app['groups'].post path: 'mynewgroup'
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'POST',
+        endpoint:'groups',
+        body:{ path:'mynewgroup' }
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+    "action": "post",
+    "application": "7fb8d891-477d-11e1-b2bd-22000a1c4e22",
+    "params": {},
+    "path": "/groups",
+    "uri": "https://api.usergrid.com/22000a1c4e22-7fb8d891-477d-11e1-b2bd/7fb8d891-477d-11e1-b2bd-22000a1c4e22/groups",
+
+    "entities": [
+        {
+          "uuid": "a668717b-67cb-11e1-8223-12313d14bde7",
+          "type": "group",
+          "created": 1331066016571,
+          "modified": 1331066016571,
+          "metadata": {
+            "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7",
+            "sets": {
+              "rolenames": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/rolenames",
+              "permissions": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/permissions"
+            },
+            "collections": {
+              "activities": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/activities",
+              "feed": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/feed",
+              "roles": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/roles",
+              "users": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users"
+            }
+          },
+          "path": "mynewgroup"
+        }
+     ],
+    "timestamp": 1331066016563,
+    "duration": 35,
+    "organization" : "my-org",
+    "applicationName": "my-app"
+    }
+
+Adding a user to a group
+------------------------
+
+Use the POST method to add a user to a group. If the named group does
+not yet exist, an error message is returned.
+
+### Request URI
+
+POST /{org\_id}/{app\_id}/groups/{uuid|groupname}/users/{uuid|username}
+
+### Parameters
+
+  Parameter                   Description
+  --------------------------- ----------------------------------------
+  arg uuid|string org\_id     Organization UUID or organization name
+  arg uuid|string app\_id     Application UUID or application name
+  arg uuid|string groupname   UUID or name of the group
+  arg uuid|string username    UUID or username of user
+
+### Example - Request
+
+-   [cURL](#curl_add_user)
+-   [JavaScript (HTML5)](#javascript_add_user)
+-   [Ruby](#ruby_add_user)
+-   [Node.js](#nodejs_add_user)
+
+<!-- -->
+
+    curl -X POST "https://api.usergrid.com/my-org/my-app/groups/mynewgroup/users/john.doe"
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'POST',
+        endpoint:'groups/mynewgroup/users/john.doe'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    app['groups/mynewgroup/users/john.doe'].post nil
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'POST',
+        endpoint:'groups/mynewgroup/users/john.doe'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+    "action": "post",
+    "application": "7fb8d891-477d-11e1-b2bd-22000a1c4e22",
+    "params": {},
+    "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users",
+    "uri": "https://api.usergrid.com/22000a1c4e22-7fb8d891-477d-11e1-b2bd/7fb8d891-477d-11e1-b2bd-22000a1c4e22/groups/a668717b-67cb-11e1-8223-12313d14bde7/users",
+
+    "entities": [
+          {
+            "uuid": "6fbc8157-4786-11e1-b2bd-22000a1c4e22",
+            "type": "user",
+            "nanme": "John Doe",
+            "created": 1327517852364015,
+            "modified": 1327517852364015,
+            "activated": true,
+            "email": "john.doe@mail.com",
+            "metadata": {
+              "connecting": {
+                "owners":   "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/connecting/owners"
+                 },
+              "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22",
+              "sets": {
+                "rolenames": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/rolenames",
+                "permissions": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/permissions"
+                 },
+              "collections": {
+                "activities": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/activities",
+                "devices": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/devices",
+                "feed": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/feed",
+                "groups": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/groups",
+                "roles": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/roles",
+                "following": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/following",
+                "followers": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/followers"
+                 }
+            },
+            "picture": "https://www.gravatar.com/avatar/90f823ba15655b8cc8e3b4d63377576f",
+            "username": "john.doe"
+          }
+       ],
+       "timestamp": 1331066031380,
+       "duration": 64,
+       "organization" : "my-org",
+       "applicationName": "my-app"
+    }
+
+Getting a group
+---------------
+
+Use the GET method to retrieve a group.
+
+### Request URI
+
+GET /{org\_id}/{app\_id}/groups/{uuid|groupname}
+
+### Parameters
+
+  Parameter                   Description
+  --------------------------- ----------------------------------------
+  arg uuid|string org\_id     Organization UUID or organization name
+  arg uuid|string app\_id     Application UUID or application name
+  arg uuid|string groupname   UUID or name of the group
+
+### Example - Request
+
+-   [cURL](#curl_get_group)
+-   [JavaScript (HTML5)](#javascript_get_group)
+-   [Ruby](#ruby_get_group)
+-   [Node.js](#nodejs_get_group)
+
+<!-- -->
+
+    curl -X GET "https://api.usergrid.com/my-org/my-app/groups/mynewgroup"
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'GET',
+        endpoint:'groups/mynewgroup'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    user = app['mynewgroup'].entity
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'GET',
+        endpoint:'groups/mynewgroup'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+    "action": "get",
+    "application": "7fb8d891-477d-11e1-b2bd-22000a1c4e22",
+    "params": {
+          "_": [
+            "1331066049869"
+          ]
+    },
+    "path": "/groups",
+    "uri": "https://api.usergrid.com/22000a1c4e22-7fb8d891-477d-11e1-b2bd/7fb8d891-477d-11e1-b2bd-22000a1c4e22/groups",
+
+    "entities": [
+        {
+          "uuid": "a668717b-67cb-11e1-8223-12313d14bde7",
+          "type": "group",
+          "created": 1331066016571,
+          "modified": 1331066016571,
+          "metadata": {
+            "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7",
+            "sets": {
+              "rolenames": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/rolenames",
+              "permissions": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/permissions"
+            },
+            "collections": {
+              "activities": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/activities",
+              "feed": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/feed",
+              "roles": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/roles",
+              "users": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users"
+            }
+          },
+          "path": "mynewgroup"
+        }
+    ],
+    "timestamp": 1331066050106,
+    "duration": 18,
+    "organization" : "my-org",
+    "applicationName": "my-app"
+    }
+
+Updating a group
+----------------
+
+Use the PUT method to update a group.
+
+### Request URI
+
+PUT /{org\_id}{app\_id}/groups/{uuid|groupname} {request body}
+
+### Parameters
+
+  Parameter                   Description
+  --------------------------- ----------------------------------------
+  arg uuid|string org\_id     Organization UUID or organization name
+  arg uuid|string app\_id     Application UUID or application name
+  arg uuid|string groupname   UUID or name of the group
+  request body                Set of entity properties
+
+### Example - Request
+
+-   [cURL](#curl_update_group)
+-   [JavaScript (HTML5)](#javascript_update_group)
+-   [Ruby](#ruby_update_group)
+-   [Node.js](#nodejs_update_group)
+
+<!-- -->
+
+    curl -X PUT "https://api.usergrid.com/my-org/my-app/groups/mynewgroup" -d '("foo":"bar"}'
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'PUT',
+        endpoint:'groups/mynewgroup',
+        body:{ foo:'bar' }
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    mynewgroup = app['groups/mynewgroup'].put foo: 'bar'
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'PUT',
+        endpoint:'groups/mynewgroup',
+        body:{ foo:'bar' }
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+    "action": "put",
+    "application": "7fb8d891-477d-11e1-b2bd-22000a1c4e22",
+    "params": {},
+    "path": "/groups",
+    "uri": "https://api.usergrid.com/22000a1c4e22-7fb8d891-477d-11e1-b2bd/7fb8d891-477d-11e1-b2bd-22000a1c4e22/groups",
+
+    "entities": [
+        {
+          "uuid": "a668717b-67cb-11e1-8223-12313d14bde7",
+          "type": "group",
+          "created": 1331066016571,
+          "modified": 1331066092191,
+          "foo": "bar",
+          "metadata": {
+            "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7",
+            "sets": {
+              "rolenames": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/rolenames",
+              "permissions": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/permissions"
+            },
+            "collections": {
+              "activities": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/activities",
+              "feed": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/feed",
+              "roles": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/roles",
+              "users": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users"
+            }
+          },
+          "path": "mynewgroup"
+        }
+    ],
+    "timestamp": 1331066092178,
+    "duration": 31,
+    "organization" : "my-org",
+    "applicationName": "my-app"
+    }
+
+Deleting a user from a group
+----------------------------
+
+Use the DELETE method to delete a user from the specified group.
+
+### Request URI
+
+DELETE
+/{org\_id}/{app\_id}/groups/{uuid|groupname}/users/{uuid|username}
+
+### Parameters
+
+  Parameter                   Description
+  --------------------------- ----------------------------------------
+  arg uuid|string org\_id     Organization UUID or organization name
+  arg uuid|string app\_id     Application UUID or application name
+  arg uuid|string groupname   UUID or name of the group
+  arg uuid|string username    UUID or username of user to be deleted
+
+### cURL Example - Request
+
+-   [cURL](#curl_delete_user_group)
+-   [JavaScript (HTML5)](#javascript_delete_user_group)
+-   [Ruby](#ruby_delete_user_group)
+-   [Node.js](#nodejs_delete_user_group)
+
+<!-- -->
+
+    curl -X DELETE "https://api.usergrid.com//my-org/my-app/groups/mynewgroup/users/john.doe"
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'DELETE',
+        endpoint:'groups/mynewgroup/users/john.doe'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    app['groups/mynewgroup/users/john.doe'].delete
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'DELETE',
+        endpoint:'groups/mynewgroup/users/john.doe'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+    "action": "delete",
+    "application": "7fb8d891-477d-11e1-b2bd-22000a1c4e22",
+    "params": {
+          "_": [
+            "1331066118009"
+          ]
+    },
+    "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users",
+    "uri": "https://api.usergrid.com/22000a1c4e22-7fb8d891-477d-11e1-b2bd/7fb8d891-477d-11e1-b2bd-22000a1c4e22/groups/a668717b-67cb-11e1-8223-12313d14bde7/users",
+
+    "entities": [
+          {
+            "uuid": "6fbc8157-4786-11e1-b2bd-22000a1c4e22",
+            "type": "user",
+            "name": "John Doe",
+            "created": 1327517852364015,
+            "modified": 1327517852364015,
+            "activated": true,
+            "email": "john.doe@mail.com",
+            "metadata": {
+              "connecting": {
+                "owners": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/connecting/owners"
+              },
+              "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22",
+              "sets": {
+                "rolenames": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/rolenames",
+                "permissions": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/permissions"
+              },
+              "collections": {
+                "activities": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/activities",
+                "devices": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/devices",
+                "feed": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/feed",
+                "groups": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/groups",
+                "roles": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/roles",
+                "following": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/following",
+                "followers": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/followers"
+              }
+            },
+            "picture": "https://www.gravatar.com/avatar/90f823ba15655b8cc8e3b4d63377576f",
+            "username": "john.doe"
+          }
+    ],
+    "timestamp": 1331066118193,
+    "duration": 236,
+    "organization" : "my-org",
+    "applicationName": "my-app"
+    }
+
+Deleting a group
+----------------
+
+Use the DELETE method to delete a group.
+
+### Request URI
+
+DELETE /{org\_id}/{app\_id}/groups/{uuid|groupname}
+
+### Parameters
+
+  Parameter                   Description
+  --------------------------- ----------------------------------------
+  arg uuid|string org\_id     Organization UUID or organization name
+  arg uuid|string app\_id     Application UUID or application name
+  arg uuid|string groupname   UUID or name of the group
+
+### Example - Request
+
+-   [cURL](#curl_delete_group)
+-   [JavaScript (HTML5)](#javascript_delete_group)
+-   [Ruby](#ruby_delete_group)
+-   [Node.js](#nodejs_delete_group)
+
+<!-- -->
+
+    curl -X DELETE "https://api.usergrid.com//my-org/my-app/groups/mynewgroup"
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'DELETE',
+        endpoint:'groups/mynewgroup'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    app['groups/mynewgroup'].delete
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'DELETE',
+        endpoint:'groups/mynewgroup'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+    "action": "delete",
+    "application": "7fb8d891-477d-11e1-b2bd-22000a1c4e22",
+    "params": {
+        "_": [
+          "1331066144280"
+        ]
+    },
+    "path": "/groups",
+    "uri": "https://api.usergrid.com/22000a1c4e22-7fb8d891-477d-11e1-b2bd/7fb8d891-477d-11e1-b2bd-22000a1c4e22/groups",
+
+    "entities": [
+        {
+          "uuid": "a668717b-67cb-11e1-8223-12313d14bde7",
+          "type": "group",
+          "created": 1331066016571,
+          "modified": 1331066092191,
+          "foo": "bar",
+          "metadata": {
+            "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7",
+            "sets": {
+              "rolenames": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/rolenames",
+              "permissions": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/permissions"
+            },
+            "collections": {
+              "activities": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/activities",
+              "feed": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/feed",
+              "roles": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/roles",
+              "users": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users"
+            }
+          },
+          "path": "mynewgroup"
+        }
+    ],
+    "timestamp": 1331066144462,
+    "duration": 302,
+    "organization" : "my-org",
+    "applicationName": "my-app"
+    }
+
+Getting a group’s feed
+----------------------
+
+Use the GET method to retrieve the feed for a group. This gets a list of
+all the activities that have been posted to this group, that is, the
+activities for which this group has a relationship (owns).
+
+### Request URI
+
+GET /{org\_id}/{app\_id}/groups/{uuid|groupname}/feed
+
+### Parameters
+
+  Parameter                   Description
+  --------------------------- ----------------------------------------
+  arg uuid|string org\_id     Organization UUID or organization name
+  arg uuid|string app\_id     Application UUID or application name
+  arg uuid|string groupname   UUID or name of the group
+
+### Example - Request
+
+-   [cURL](#curl_get_group_feed)
+-   [JavaScript (HTML5)](#javascript_get_group_feed)
+-   [Ruby](#ruby_get_group_feed)
+-   [Node.js](#nodejs_get_group_feed)
+
+<!-- -->
+
+    curl -X GET "https://api.usergrid.com/my-org/my-app/groups/mygroup/feed"
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'GET',
+        endpoint:'groups/mygroup/feed'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    activities = app['groups/mygroup/feed'].collection
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'GET',
+        endpoint:'groups/mygroup/feed'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+        "action": "get",
+        "application": "3400ba10-cd0c-11e1-bcf7-12313d1c4491",
+        "params":  {},
+        "path": "/groups/d87edec7-fc4d-11e1-9917-12313d1520f1/feed",
+        "uri": "https://api.usergrid.com/my-org/my-app/groups/d87edec7-fc4d-11e1-9917-12313d1520f1/feed",
+        "entities":  [
+           {
+            "uuid": "563f5d96-37f3-11e2-a0f7-02e81ae640dc",
+            "type": "activity",
+            "created": 1353952903811,
+            "modified": 1353952903811,
+            "actor":  {
+              "displayName": "John Doe",
+              "image":  {
+                "duration": 0,
+                "height": 80,
+                "url": "http://www.gravatar.com/avatar/",
+                "width": 80
+              },
+              "uuid": "1f3567aa-da83-11e1-afad-12313b01d5c1",
+              "email": "john.doe@gmail.com",
+            "username": "john.doe"
+            },
+            "content": "Hello World!",
+            "metadata":  {
+              "cursor": "gGkAAQMAgGkABgE7PeHCgwCAdQAQVj9dljfzEeKg9wLoGuZA3ACAdQAQVkVRCTfzEeKg9wLoGuZA3AA",
+              "path": "/groups/d87edec7-fc4d-11e1-9917-12313d1520f1/feed/563f5d96-37f3-11e2-a0f7-02e81ae640dc"
+            },
+            "published": 1353952903811,
+            "verb": "post"
+          }
+        ],
+      "timestamp": 1353953272756,
+      "duration": 29,
+      "organization": "my-org",
+      "applicationName": "my-app"
+
+Getting all users in a group
+----------------------------
+
+Use the GET method to retrieve all the users in a group.
+
+### Request URI
+
+GET /{org\_id}/{app\_id}/groups/{uuid|groupname}/users
+
+### Parameters
+
+  Parameter                   Description
+  --------------------------- ----------------------------------------
+  arg uuid|string org\_id     Organization UUID or organization name
+  arg uuid|string app\_id     Application UUID or application name
+  arg uuid|string groupname   UUID or name of the group
+
+### Example - Request
+
+-   [cURL](#curl_get_group_users)
+-   [JavaScript (HTML5)](#javascript_get_group_users)
+-   [Ruby](#ruby_get_group_users)
+-   [Node.js](#nodejs_get_group_users)
+
+<!-- -->
+
+    curl -X GET "https://api.usergrid.com/my-org/my-app/groups/mygroup/users"
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'GET',
+        endpoint:'groups/mygroup/users'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    activities = app['groups/mygroup/users'].collection
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'GET',
+        endpoint:'groups/mygroup/users'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+      "action" : "get",
+      "application" : "e7127751-6985-11e2-8078-02e81aeb2129",
+      "params" : { },
+      "path" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users",
+      "uri" : "http://api.usergrid.com/myorg/sandbox/groups/d20976ff-802f-11e2-b690-02e81ae61238/users",
+      "entities" : [ {
+        "uuid" : "cd789b00-698b-11e2-a6e3-02e81ae236e9",
+        "type" : "user",
+        "name" : "barney",
+        "created" : 1359405994314,
+        "modified" : 1361894320470,
+        "activated" : true,
+        "email" : "barney@apigee.com",
+        "metadata" : {
+          "path" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9",
+          "sets" : {
+            "rolenames" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/rolenames",
+            "permissions" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/permissions"
+          },
+          "collections" : {
+            "activities" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/activities",
+            "devices" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/devices",
+            "feed" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/feed",
+            "groups" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/groups",
+            "roles" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/roles",
+            "following" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/following",
+            "followers" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/followers"
+          }
+        },
+        "name" : "barney",
+        "picture" : "http://www.gravatar.com/avatar/00767101f6b4f2cf5d02ed510dbcf0b4",
+        "test" : "fred",
+        "username" : "barney"
+      } ],
+      "timestamp" : 1361903248398,
+      "duration" : 24,
+      "organization" : "myorg",
+      "applicationName" : "sandbox"
+    }
+
+Group properties
+----------------
+
+The following are the system-defined properties for group entities. The
+system-defined properties are reserved. You cannot use these names to
+create other properties for a group entity. In addition the groups name
+is reserved for the group collection — you can't use it to name another
+collection.
+
+The look-up properties for the entities of type group are UUID and path,
+that is, you can use the uuid or path property to reference a group in
+an API call. However, you can search on a group using any property of
+the group entity. See [Queries and parameters](/queries-and-parameters)
+for details on searching.
+
+### General properties
+
+Groups have the following general properties.
+
+  Property   Type     Description
+  ---------- -------- ---------------------------------------------------------------------------------
+  uuid       UUID     Group’s unique entity ID
+  type       string   Type of entity, in this case “user”
+  created    long     [UNIX timestamp](http://en.wikipedia.org/wiki/Unix_time) of entity creation
+  modified   long     [UNIX timestamp](http://en.wikipedia.org/wiki/Unix_time) of entity modification
+  path       string   Valid slash-delimited group path (mandatory)
+  title      string   Display name
+
+### Set properties
+
+Groups have the following set properties.
+
+  Set           Type     Description
+  ------------- -------- ---------------------------------------
+  connections   string   Set of connection types (e.g., likes)
+  rolenames     string   Set of roles assigned to a group
+  credentials   string   Set of group credentials
+
+### Collections
+
+Groups have the following collections.
+
+  Collection   Type       Description
+  ------------ ---------- ------------------------------------------------------
+  users        user       Collection of users in the group
+  activities   activity   Collection of activities a user has performed
+  feed         activity   Inbox of activity notifications a group has received
+  roles        role       Set of roles to which a group belongs
+
+ 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c8b7d6c5/website/content/docs/group.md
----------------------------------------------------------------------
diff --git a/website/content/docs/group.md b/website/content/docs/group.md
new file mode 100644
index 0000000..03f3242
--- /dev/null
+++ b/website/content/docs/group.md
@@ -0,0 +1,936 @@
+---
+title: Group
+category: docs
+layout: docs
+---
+
+Group
+=====
+
+A group entity organizes users into a group. Using Apache Usergrid APIs you
+can create, retrieve, update, or delete a group. You can also add or
+delete a user to or from a group.
+
+See [Group entity properties](#group_properties) for a list of the
+system-defined properties for group entities. In addition, you can
+create group properties specific to your application.
+
+**Note:** Although not shown in the API examples below, you need to
+provide a valid access token with each API call. See [Authenticating
+users and application
+clients](/authenticating-users-and-application-clients) for details.
+
+Creating a new group
+--------------------
+
+Use the POST method to create a new group. Groups use paths to indicate
+their unique names. This allows you to create group hierarchies by using
+slashes. For this reason, you need to specify a path property for a new
+group.
+
+### Request URI
+
+POST /{org\_id}/{app\_id}/groups
+
+### Parameters
+
+  Parameter                 Description
+  ------------------------- ----------------------------------------
+  arg uuid|string org\_id   Organization UUID or organization name
+  arg uuid|string app\_id   Application UUID or application name
+
+### Example - Request
+
+-   [cURL](#curl_create_group)
+-   [JavaScript (HTML5)](#javascript_create_group)
+-   [Ruby](#ruby_create_group)
+-   [Node.js](#nodejs_create_group)
+
+<!-- -->
+
+    curl -X POST "https://api.usergrid.com/my-org/my-app/groups" -d '{"path":"mynewgroup"}'
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'POST',
+        endpoint:'groups',
+        body:{ path:'mynewgroup' }
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    app['groups'].post path: 'mynewgroup'
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'POST',
+        endpoint:'groups',
+        body:{ path:'mynewgroup' }
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+    "action": "post",
+    "application": "7fb8d891-477d-11e1-b2bd-22000a1c4e22",
+    "params": {},
+    "path": "/groups",
+    "uri": "https://api.usergrid.com/22000a1c4e22-7fb8d891-477d-11e1-b2bd/7fb8d891-477d-11e1-b2bd-22000a1c4e22/groups",
+
+    "entities": [
+        {
+          "uuid": "a668717b-67cb-11e1-8223-12313d14bde7",
+          "type": "group",
+          "created": 1331066016571,
+          "modified": 1331066016571,
+          "metadata": {
+            "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7",
+            "sets": {
+              "rolenames": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/rolenames",
+              "permissions": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/permissions"
+            },
+            "collections": {
+              "activities": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/activities",
+              "feed": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/feed",
+              "roles": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/roles",
+              "users": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users"
+            }
+          },
+          "path": "mynewgroup"
+        }
+     ],
+    "timestamp": 1331066016563,
+    "duration": 35,
+    "organization" : "my-org",
+    "applicationName": "my-app"
+    }
+
+Adding a user to a group
+------------------------
+
+Use the POST method to add a user to a group. If the named group does
+not yet exist, an error message is returned.
+
+### Request URI
+
+POST /{org\_id}/{app\_id}/groups/{uuid|groupname}/users/{uuid|username}
+
+### Parameters
+
+  Parameter                   Description
+  --------------------------- ----------------------------------------
+  arg uuid|string org\_id     Organization UUID or organization name
+  arg uuid|string app\_id     Application UUID or application name
+  arg uuid|string groupname   UUID or name of the group
+  arg uuid|string username    UUID or username of user
+
+### Example - Request
+
+-   [cURL](#curl_add_user)
+-   [JavaScript (HTML5)](#javascript_add_user)
+-   [Ruby](#ruby_add_user)
+-   [Node.js](#nodejs_add_user)
+
+<!-- -->
+
+    curl -X POST "https://api.usergrid.com/my-org/my-app/groups/mynewgroup/users/john.doe"
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'POST',
+        endpoint:'groups/mynewgroup/users/john.doe'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    app['groups/mynewgroup/users/john.doe'].post nil
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'POST',
+        endpoint:'groups/mynewgroup/users/john.doe'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+    "action": "post",
+    "application": "7fb8d891-477d-11e1-b2bd-22000a1c4e22",
+    "params": {},
+    "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users",
+    "uri": "https://api.usergrid.com/22000a1c4e22-7fb8d891-477d-11e1-b2bd/7fb8d891-477d-11e1-b2bd-22000a1c4e22/groups/a668717b-67cb-11e1-8223-12313d14bde7/users",
+
+    "entities": [
+          {
+            "uuid": "6fbc8157-4786-11e1-b2bd-22000a1c4e22",
+            "type": "user",
+            "nanme": "John Doe",
+            "created": 1327517852364015,
+            "modified": 1327517852364015,
+            "activated": true,
+            "email": "john.doe@mail.com",
+            "metadata": {
+              "connecting": {
+                "owners":   "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/connecting/owners"
+                 },
+              "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22",
+              "sets": {
+                "rolenames": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/rolenames",
+                "permissions": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/permissions"
+                 },
+              "collections": {
+                "activities": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/activities",
+                "devices": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/devices",
+                "feed": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/feed",
+                "groups": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/groups",
+                "roles": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/roles",
+                "following": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/following",
+                "followers": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/followers"
+                 }
+            },
+            "picture": "https://www.gravatar.com/avatar/90f823ba15655b8cc8e3b4d63377576f",
+            "username": "john.doe"
+          }
+       ],
+       "timestamp": 1331066031380,
+       "duration": 64,
+       "organization" : "my-org",
+       "applicationName": "my-app"
+    }
+
+Getting a group
+---------------
+
+Use the GET method to retrieve a group.
+
+### Request URI
+
+GET /{org\_id}/{app\_id}/groups/{uuid|groupname}
+
+### Parameters
+
+  Parameter                   Description
+  --------------------------- ----------------------------------------
+  arg uuid|string org\_id     Organization UUID or organization name
+  arg uuid|string app\_id     Application UUID or application name
+  arg uuid|string groupname   UUID or name of the group
+
+### Example - Request
+
+-   [cURL](#curl_get_group)
+-   [JavaScript (HTML5)](#javascript_get_group)
+-   [Ruby](#ruby_get_group)
+-   [Node.js](#nodejs_get_group)
+
+<!-- -->
+
+    curl -X GET "https://api.usergrid.com/my-org/my-app/groups/mynewgroup"
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'GET',
+        endpoint:'groups/mynewgroup'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    user = app['mynewgroup'].entity
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'GET',
+        endpoint:'groups/mynewgroup'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+    "action": "get",
+    "application": "7fb8d891-477d-11e1-b2bd-22000a1c4e22",
+    "params": {
+          "_": [
+            "1331066049869"
+          ]
+    },
+    "path": "/groups",
+    "uri": "https://api.usergrid.com/22000a1c4e22-7fb8d891-477d-11e1-b2bd/7fb8d891-477d-11e1-b2bd-22000a1c4e22/groups",
+
+    "entities": [
+        {
+          "uuid": "a668717b-67cb-11e1-8223-12313d14bde7",
+          "type": "group",
+          "created": 1331066016571,
+          "modified": 1331066016571,
+          "metadata": {
+            "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7",
+            "sets": {
+              "rolenames": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/rolenames",
+              "permissions": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/permissions"
+            },
+            "collections": {
+              "activities": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/activities",
+              "feed": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/feed",
+              "roles": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/roles",
+              "users": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users"
+            }
+          },
+          "path": "mynewgroup"
+        }
+    ],
+    "timestamp": 1331066050106,
+    "duration": 18,
+    "organization" : "my-org",
+    "applicationName": "my-app"
+    }
+
+Updating a group
+----------------
+
+Use the PUT method to update a group.
+
+### Request URI
+
+PUT /{org\_id}{app\_id}/groups/{uuid|groupname} {request body}
+
+### Parameters
+
+  Parameter                   Description
+  --------------------------- ----------------------------------------
+  arg uuid|string org\_id     Organization UUID or organization name
+  arg uuid|string app\_id     Application UUID or application name
+  arg uuid|string groupname   UUID or name of the group
+  request body                Set of entity properties
+
+### Example - Request
+
+-   [cURL](#curl_update_group)
+-   [JavaScript (HTML5)](#javascript_update_group)
+-   [Ruby](#ruby_update_group)
+-   [Node.js](#nodejs_update_group)
+
+<!-- -->
+
+    curl -X PUT "https://api.usergrid.com/my-org/my-app/groups/mynewgroup" -d '("foo":"bar"}'
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'PUT',
+        endpoint:'groups/mynewgroup',
+        body:{ foo:'bar' }
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    mynewgroup = app['groups/mynewgroup'].put foo: 'bar'
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'PUT',
+        endpoint:'groups/mynewgroup',
+        body:{ foo:'bar' }
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+    "action": "put",
+    "application": "7fb8d891-477d-11e1-b2bd-22000a1c4e22",
+    "params": {},
+    "path": "/groups",
+    "uri": "https://api.usergrid.com/22000a1c4e22-7fb8d891-477d-11e1-b2bd/7fb8d891-477d-11e1-b2bd-22000a1c4e22/groups",
+
+    "entities": [
+        {
+          "uuid": "a668717b-67cb-11e1-8223-12313d14bde7",
+          "type": "group",
+          "created": 1331066016571,
+          "modified": 1331066092191,
+          "foo": "bar",
+          "metadata": {
+            "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7",
+            "sets": {
+              "rolenames": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/rolenames",
+              "permissions": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/permissions"
+            },
+            "collections": {
+              "activities": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/activities",
+              "feed": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/feed",
+              "roles": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/roles",
+              "users": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users"
+            }
+          },
+          "path": "mynewgroup"
+        }
+    ],
+    "timestamp": 1331066092178,
+    "duration": 31,
+    "organization" : "my-org",
+    "applicationName": "my-app"
+    }
+
+Deleting a user from a group
+----------------------------
+
+Use the DELETE method to delete a user from the specified group.
+
+### Request URI
+
+DELETE
+/{org\_id}/{app\_id}/groups/{uuid|groupname}/users/{uuid|username}
+
+### Parameters
+
+  Parameter                   Description
+  --------------------------- ----------------------------------------
+  arg uuid|string org\_id     Organization UUID or organization name
+  arg uuid|string app\_id     Application UUID or application name
+  arg uuid|string groupname   UUID or name of the group
+  arg uuid|string username    UUID or username of user to be deleted
+
+### cURL Example - Request
+
+-   [cURL](#curl_delete_user_group)
+-   [JavaScript (HTML5)](#javascript_delete_user_group)
+-   [Ruby](#ruby_delete_user_group)
+-   [Node.js](#nodejs_delete_user_group)
+
+<!-- -->
+
+    curl -X DELETE "https://api.usergrid.com//my-org/my-app/groups/mynewgroup/users/john.doe"
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'DELETE',
+        endpoint:'groups/mynewgroup/users/john.doe'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    app['groups/mynewgroup/users/john.doe'].delete
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'DELETE',
+        endpoint:'groups/mynewgroup/users/john.doe'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+    "action": "delete",
+    "application": "7fb8d891-477d-11e1-b2bd-22000a1c4e22",
+    "params": {
+          "_": [
+            "1331066118009"
+          ]
+    },
+    "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users",
+    "uri": "https://api.usergrid.com/22000a1c4e22-7fb8d891-477d-11e1-b2bd/7fb8d891-477d-11e1-b2bd-22000a1c4e22/groups/a668717b-67cb-11e1-8223-12313d14bde7/users",
+
+    "entities": [
+          {
+            "uuid": "6fbc8157-4786-11e1-b2bd-22000a1c4e22",
+            "type": "user",
+            "name": "John Doe",
+            "created": 1327517852364015,
+            "modified": 1327517852364015,
+            "activated": true,
+            "email": "john.doe@mail.com",
+            "metadata": {
+              "connecting": {
+                "owners": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/connecting/owners"
+              },
+              "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22",
+              "sets": {
+                "rolenames": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/rolenames",
+                "permissions": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/permissions"
+              },
+              "collections": {
+                "activities": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/activities",
+                "devices": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/devices",
+                "feed": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/feed",
+                "groups": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/groups",
+                "roles": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/roles",
+                "following": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/following",
+                "followers": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users/6fbc8157-4786-11e1-b2bd-22000a1c4e22/followers"
+              }
+            },
+            "picture": "https://www.gravatar.com/avatar/90f823ba15655b8cc8e3b4d63377576f",
+            "username": "john.doe"
+          }
+    ],
+    "timestamp": 1331066118193,
+    "duration": 236,
+    "organization" : "my-org",
+    "applicationName": "my-app"
+    }
+
+Deleting a group
+----------------
+
+Use the DELETE method to delete a group.
+
+### Request URI
+
+DELETE /{org\_id}/{app\_id}/groups/{uuid|groupname}
+
+### Parameters
+
+  Parameter                   Description
+  --------------------------- ----------------------------------------
+  arg uuid|string org\_id     Organization UUID or organization name
+  arg uuid|string app\_id     Application UUID or application name
+  arg uuid|string groupname   UUID or name of the group
+
+### Example - Request
+
+-   [cURL](#curl_delete_group)
+-   [JavaScript (HTML5)](#javascript_delete_group)
+-   [Ruby](#ruby_delete_group)
+-   [Node.js](#nodejs_delete_group)
+
+<!-- -->
+
+    curl -X DELETE "https://api.usergrid.com//my-org/my-app/groups/mynewgroup"
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'DELETE',
+        endpoint:'groups/mynewgroup'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    app['groups/mynewgroup'].delete
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'DELETE',
+        endpoint:'groups/mynewgroup'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+    "action": "delete",
+    "application": "7fb8d891-477d-11e1-b2bd-22000a1c4e22",
+    "params": {
+        "_": [
+          "1331066144280"
+        ]
+    },
+    "path": "/groups",
+    "uri": "https://api.usergrid.com/22000a1c4e22-7fb8d891-477d-11e1-b2bd/7fb8d891-477d-11e1-b2bd-22000a1c4e22/groups",
+
+    "entities": [
+        {
+          "uuid": "a668717b-67cb-11e1-8223-12313d14bde7",
+          "type": "group",
+          "created": 1331066016571,
+          "modified": 1331066092191,
+          "foo": "bar",
+          "metadata": {
+            "path": "/groups/a668717b-67cb-11e1-8223-12313d14bde7",
+            "sets": {
+              "rolenames": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/rolenames",
+              "permissions": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/permissions"
+            },
+            "collections": {
+              "activities": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/activities",
+              "feed": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/feed",
+              "roles": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/roles",
+              "users": "/groups/a668717b-67cb-11e1-8223-12313d14bde7/users"
+            }
+          },
+          "path": "mynewgroup"
+        }
+    ],
+    "timestamp": 1331066144462,
+    "duration": 302,
+    "organization" : "my-org",
+    "applicationName": "my-app"
+    }
+
+Getting a group’s feed
+----------------------
+
+Use the GET method to retrieve the feed for a group. This gets a list of
+all the activities that have been posted to this group, that is, the
+activities for which this group has a relationship (owns).
+
+### Request URI
+
+GET /{org\_id}/{app\_id}/groups/{uuid|groupname}/feed
+
+### Parameters
+
+  Parameter                   Description
+  --------------------------- ----------------------------------------
+  arg uuid|string org\_id     Organization UUID or organization name
+  arg uuid|string app\_id     Application UUID or application name
+  arg uuid|string groupname   UUID or name of the group
+
+### Example - Request
+
+-   [cURL](#curl_get_group_feed)
+-   [JavaScript (HTML5)](#javascript_get_group_feed)
+-   [Ruby](#ruby_get_group_feed)
+-   [Node.js](#nodejs_get_group_feed)
+
+<!-- -->
+
+    curl -X GET "https://api.usergrid.com/my-org/my-app/groups/mygroup/feed"
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'GET',
+        endpoint:'groups/mygroup/feed'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    activities = app['groups/mygroup/feed'].collection
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'GET',
+        endpoint:'groups/mygroup/feed'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+        "action": "get",
+        "application": "3400ba10-cd0c-11e1-bcf7-12313d1c4491",
+        "params":  {},
+        "path": "/groups/d87edec7-fc4d-11e1-9917-12313d1520f1/feed",
+        "uri": "https://api.usergrid.com/my-org/my-app/groups/d87edec7-fc4d-11e1-9917-12313d1520f1/feed",
+        "entities":  [
+           {
+            "uuid": "563f5d96-37f3-11e2-a0f7-02e81ae640dc",
+            "type": "activity",
+            "created": 1353952903811,
+            "modified": 1353952903811,
+            "actor":  {
+              "displayName": "John Doe",
+              "image":  {
+                "duration": 0,
+                "height": 80,
+                "url": "http://www.gravatar.com/avatar/",
+                "width": 80
+              },
+              "uuid": "1f3567aa-da83-11e1-afad-12313b01d5c1",
+              "email": "john.doe@gmail.com",
+            "username": "john.doe"
+            },
+            "content": "Hello World!",
+            "metadata":  {
+              "cursor": "gGkAAQMAgGkABgE7PeHCgwCAdQAQVj9dljfzEeKg9wLoGuZA3ACAdQAQVkVRCTfzEeKg9wLoGuZA3AA",
+              "path": "/groups/d87edec7-fc4d-11e1-9917-12313d1520f1/feed/563f5d96-37f3-11e2-a0f7-02e81ae640dc"
+            },
+            "published": 1353952903811,
+            "verb": "post"
+          }
+        ],
+      "timestamp": 1353953272756,
+      "duration": 29,
+      "organization": "my-org",
+      "applicationName": "my-app"
+
+Getting all users in a group
+----------------------------
+
+Use the GET method to retrieve all the users in a group.
+
+### Request URI
+
+GET /{org\_id}/{app\_id}/groups/{uuid|groupname}/users
+
+### Parameters
+
+  Parameter                   Description
+  --------------------------- ----------------------------------------
+  arg uuid|string org\_id     Organization UUID or organization name
+  arg uuid|string app\_id     Application UUID or application name
+  arg uuid|string groupname   UUID or name of the group
+
+### Example - Request
+
+-   [cURL](#curl_get_group_users)
+-   [JavaScript (HTML5)](#javascript_get_group_users)
+-   [Ruby](#ruby_get_group_users)
+-   [Node.js](#nodejs_get_group_users)
+
+<!-- -->
+
+    curl -X GET "https://api.usergrid.com/my-org/my-app/groups/mygroup/users"
+
+The example assumes use of the [JavaScript (HTML5)
+SDK](https://github.com/apigee/usergrid-javascript-sdk).
+
+    var options = {
+        method:'GET',
+        endpoint:'groups/mygroup/users'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+The example assumes use of the [Ruby
+SDK](https://github.com/scottganyo/usergrid_iron).
+
+    app = Usergrid::Application.new 'https://api.usergrid.com/my-org/my-app/'
+    activities = app['groups/mygroup/users'].collection
+
+The example assumes use of the [Node.js
+module](https://github.com/apigee/usergrid-node-module).
+
+    var options = {
+        method:'GET',
+        endpoint:'groups/mygroup/users'
+    };
+    client.request(options, function (err, data) {
+        if (err) {
+            //error
+        } else {
+            //success - data will contain raw results from API call
+        }
+    });
+
+### Example - Response
+
+    {
+      "action" : "get",
+      "application" : "e7127751-6985-11e2-8078-02e81aeb2129",
+      "params" : { },
+      "path" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users",
+      "uri" : "http://api.usergrid.com/myorg/sandbox/groups/d20976ff-802f-11e2-b690-02e81ae61238/users",
+      "entities" : [ {
+        "uuid" : "cd789b00-698b-11e2-a6e3-02e81ae236e9",
+        "type" : "user",
+        "name" : "barney",
+        "created" : 1359405994314,
+        "modified" : 1361894320470,
+        "activated" : true,
+        "email" : "barney@apigee.com",
+        "metadata" : {
+          "path" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9",
+          "sets" : {
+            "rolenames" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/rolenames",
+            "permissions" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/permissions"
+          },
+          "collections" : {
+            "activities" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/activities",
+            "devices" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/devices",
+            "feed" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/feed",
+            "groups" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/groups",
+            "roles" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/roles",
+            "following" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/following",
+            "followers" : "/groups/d20976ff-802f-11e2-b690-02e81ae66238/users/cd789b00-698b-11e2-a6e3-02e81aeb26e9/followers"
+          }
+        },
+        "name" : "barney",
+        "picture" : "http://www.gravatar.com/avatar/00767101f6b4f2cf5d02ed510dbcf0b4",
+        "test" : "fred",
+        "username" : "barney"
+      } ],
+      "timestamp" : 1361903248398,
+      "duration" : 24,
+      "organization" : "myorg",
+      "applicationName" : "sandbox"
+    }
+
+Group properties
+----------------
+
+The following are the system-defined properties for group entities. The
+system-defined properties are reserved. You cannot use these names to
+create other properties for a group entity. In addition the groups name
+is reserved for the group collection — you can't use it to name another
+collection.
+
+The look-up properties for the entities of type group are UUID and path,
+that is, you can use the uuid or path property to reference a group in
+an API call. However, you can search on a group using any property of
+the group entity. See [Queries and parameters](/queries-and-parameters)
+for details on searching.
+
+### General properties
+
+Groups have the following general properties.
+
+  Property   Type     Description
+  ---------- -------- ---------------------------------------------------------------------------------
+  uuid       UUID     Group’s unique entity ID
+  type       string   Type of entity, in this case “user”
+  created    long     [UNIX timestamp](http://en.wikipedia.org/wiki/Unix_time) of entity creation
+  modified   long     [UNIX timestamp](http://en.wikipedia.org/wiki/Unix_time) of entity modification
+  path       string   Valid slash-delimited group path (mandatory)
+  title      string   Display name
+
+### Set properties
+
+Groups have the following set properties.
+
+  Set           Type     Description
+  ------------- -------- ---------------------------------------
+  connections   string   Set of connection types (e.g., likes)
+  rolenames     string   Set of roles assigned to a group
+  credentials   string   Set of group credentials
+
+### Collections
+
+Groups have the following collections.
+
+  Collection   Type       Description
+  ------------ ---------- ------------------------------------------------------
+  users        user       Collection of users in the group
+  activities   activity   Collection of activities a user has performed
+  feed         activity   Inbox of activity notifications a group has received
+  roles        role       Set of roles to which a group belongs
+
+ 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c8b7d6c5/website/content/docs/groups.md
----------------------------------------------------------------------
diff --git a/website/content/docs/groups.md b/website/content/docs/groups.md
new file mode 100644
index 0000000..bfe466b
--- /dev/null
+++ b/website/content/docs/groups.md
@@ -0,0 +1,42 @@
+---
+title: Groups
+category: docs
+layout: docs
+---
+
+You can organize app users into groups. Groups have their own Activity Feed, their own permissions and be a useful alternative to Roles, depending on how you model your data. Groups were originaly designed to emulate Facebook Groups, so they will tend to function about the same way Facebook Groups would.
+
+Groups are hierarchical. Every member of the group /groups/california/san-francisco is also a member of the group /groups/california.
+
+Groups are also a great way to model things such a topic subscriptions. For example, you could allow people to subscribe (i.e. become a member of the group and be alerted via Activities) to /groups/memes/dogs/doge or subscribe to all /groups/memes/dogs
+
+
+### General properties
+
+  Property   Type     Description
+  ---------- -------- ---------------------------------------------------------------------------------
+  uuid       UUID     Group’s unique entity ID
+  type       string   Type of entity, in this case “user”
+  created    long     [UNIX timestamp](http://en.wikipedia.org/wiki/Unix_time) of entity creation
+  modified   long     [UNIX timestamp](http://en.wikipedia.org/wiki/Unix_time) of entity modification
+  path       string   Valid slash-delimited group path (mandatory)
+  title      string   Display name
+
+### Set properties
+
+  Set           Type     Description
+  ------------- -------- ---------------------------------------
+  connections   string   Set of connection types (e.g., likes)
+  rolenames     string   Set of roles assigned to a group
+  credentials   string   Set of group credentials
+
+### Collections
+
+  Collection   Type       Description
+  ------------ ---------- ------------------------------------------------------
+  users        user       Collection of users in the group
+  activities   activity   Collection of activities a user has performed
+  feed         activity   Inbox of activity notifications a group has received
+  roles        role       Set of roles to which a group belongs
+
+ 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c8b7d6c5/website/content/docs/html-5-example-messagee.md
----------------------------------------------------------------------
diff --git a/website/content/docs/html-5-example-messagee.md b/website/content/docs/html-5-example-messagee.md
new file mode 100644
index 0000000..e9ec380
--- /dev/null
+++ b/website/content/docs/html-5-example-messagee.md
@@ -0,0 +1,192 @@
+---
+title: Messagee Example
+category: docs
+layout: docs
+---
+
+Messagee Example
+================
+
+*Messagee* is a simple Twitter-style messaging application that
+leverages the extensive functionality of App services. This section
+describes some of the features of Messagee.
+
+There are three client versions of Messagee:
+
+-   An [iOS client](#iOS_client)
+-   An [Android client](#android_client)
+-   An [HTML5 client](#html5_client)
+
+The sections below describe how to create a new app, enter some test
+users, and run the app. You also learn how to use the App services admin
+portal, a user interface that streamlines data and application
+management in the App services system. The portal is also a reference
+application that shows how to incorporate App services APIs with
+JavaScript. For a more detailed discussion of the portal's
+functionality, see [Admin portal](/admin-portal).
+
+Creating a user account in App services
+---------------------------------------
+
+Go to [https://apigee.com/usergrid/](https://apigee.com/usergrid/) to
+access the login screen for the App services admin portal. If you are
+new to App services, sign up for an account to access the portal,
+specifying an organization (e.g., the name of your company or project
+team) and a username and password that you can use to authenticate.
+Because App services are designed for use by development teams, the same
+username can be associated with one or more organizations.
+
+If you create a new account, you receive a confirmation email that
+contains a URL that you must click to activate the account. After this,
+simply log in to the portal with your username and password.
+
+![](/docs/sites/docs/files/styles/large/public/login.png?itok=ws5DhLDI)
+
+Creating an app and users
+-------------------------
+
+When you have logged in, you need to create a new application.
+
+![](/docs/sites/docs/files/styles/large/public/portal-1.png?itok=4o63Ia-y)
+
+1.  2.  Enter a unique application name. The name must be unique to
+    avoid a conflict with another user running the same application.
+
+    ![](/docs/sites/docs/files/styles/large/public/portal-2.png?itok=yz8QznI7)
+
+3.  4.  Make sure that the portal shows the application name you entered
+    as the active application beneath the Applications menu **(1)**.
+
+    If the correct name is not displayed, click the menu and select your
+    application.
+
+    Next, you need to populate a test user *user-test-1* that is going
+    to log in to your copy of the server-side Messagee app.
+
+5.  6.  Click the Users box on the left side of the console **(2)**.
+
+    ![](/docs/sites/docs/files/styles/large/public/portal-3.png?itok=ncRlqPGQ)
+
+7.  8.  Click the Add button and enter the user information for your
+    application in the pop-up window (be sure to create a password you
+    can remember), and then click the Create button. Repeat these steps
+    to create a second username *test-user-2*.
+
+    ![](/docs/sites/docs/files/styles/large/public/portal-4.png?itok=X_kKe5Ke)
+
+9.  
+
+When you have finished all these steps, you have a new application and
+two new users.
+
+![](/docs/sites/docs/files/styles/large/public/portal-5.png?itok=jSmAcwc3)
+
+Now that you have created a uniquely named copy of the Messagee
+application as well as two user accounts (*test-user-1* and
+*test-user-2*), you are ready to test out the Messagee app. Use
+test-user-1 to log in to the app, and test-user-2 as the user to follow.
+
+To continue with the example, follow the instructions for a client app
+([iOS client](#iOS_client), [Android client](#android_client), or [HTML5
+client](#html5_client)).
+
+iOS client
+----------
+
+Messagee is available as an iPhone app that uses Apache Usergrid and
+RestKit. The source for the iOS version of Messagee is available in the
+/samples/messagee directory of the [Apache Usergrid iOS SDK](#ios_sdk)
+
+Here are the steps to run the Messagee app on iOS:
+
+1.  2.  Run Steps 1-6 under [Creating an app and users](#app_user).
+
+    These steps create a unique instance of the Messagee app on the
+    server and two test users, *test-user-1* and *test-user-2*.
+
+3.  4.  Access the Messagee server app by typing a URL similar to the
+    following into your iOS mobile client (replace \<Messagee\> with the
+    unique name of your application):
+
+    [https://api.usergrid.com](https://api.usergrid.com)/\<Messagee\>/index.html
+
+    ![](/docs/sites/docs/files/styles/large/public/iOS-1-chooseapp.jpg?itok=NSQcdJrj)
+
+5.  6.  On the mobile client, complete the registration information and
+    click Register.
+
+    ![](/docs/sites/docs/files/styles/large/public/iOS-2-register.jpg?itok=Xzqe7mXV)
+
+7.  8.  Log in to the Messagee app by entering the *test-user-1* account
+    information created previously, and click the Sign in button.
+
+    ![](/docs/sites/docs/files/styles/large/public/iOS-4-signin.jpg?itok=0M9QYU7b)
+
+    At this point, the message board is empty:
+
+    ![](/docs/sites/docs/files/styles/large/public/iOS-5-emptyfeed.jpg?itok=EWcUVMQN)
+
+9.  10. To post a message using the app, click the top-right icon in the
+    message board to create a message, write the message text, and send
+    it by clicking Post.
+
+    ![](/docs/sites/docs/files/styles/large/public/iOS-6-newmsg.jpg?itok=Wj16l_5V)
+
+    **Note:** The posted message should appear in the message board
+    within few seconds.
+
+    ![](/docs/sites/docs/files/styles/large/public/iOS-7-feed1msg.jpg?itok=RclSnHuU)
+
+    For your instance of the Messagee application to act like Twitter,
+    you need to "follow" another user.
+
+11. 12. In the message board, click Add People and add *test-user-2* as
+    a person that *test-user-1* follows.
+
+    ![](/docs/sites/docs/files/styles/large/public/iOS-9-follow.jpg?itok=yJeaYnEj)
+
+13. 14. Log in as *test-user-2* and post a message as this user to the
+    message board.
+15. 16. Go back and log in as user *test-user-1*.
+
+    Because *test-user-1* follows *test-user-2*, you should see the
+    message sent by *test-user-2* in the message board.
+
+    ![](/docs/sites/docs/files/styles/large/public/iOS-10-seeusermsg.jpg?itok=Wcd7avBh)
+
+17. 
+
+iOS SDK
+-------
+
+If you want to write iOS applications that connect to App services,
+[download the Apache Usergrid iOS
+SDK](http://www.apigee.com/docs/content/ios-sdk-redirect)
+
+**Note:** The Messagee iOS application uses RestKit, a popular REST
+framework for iOS, to communicate with App services. Because App
+services use a REST API, you can use any REST framework to talk with the
+service. However, the official App services iOS SDK provides a more
+convenient communication mechanism that you should use unless you're
+already using RestKit or some other framework in your project.
+
+Android client and SDK
+----------------------
+
+Messagee is available as a sample Android app that acts as a App
+services client. The source for the Android version is packaged with the
+Apache Usergrid Android SDK in the /samples/messagee directory.
+
+[Download the Apache Usergrid Android
+SDK](http://www.apigee.com/docs/content/android-sdk-redirect).
+
+Javascript/HTML5 client and SDK
+-------------------------------
+
+Messagee is also available as a sample HTML5 app that behaves in much
+the same way as the two previous examples. The source for the HTML5
+version is packaged with the Apache Usergrid Javascript/HTML5 SDK in the
+/samples/messagee directory.
+
+[Download the Apache Usergrid Javascript/HTML5
+SDK](http://www.apigee.com/docs/content/javascript-sdk-redirect).

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c8b7d6c5/website/content/docs/index.html
----------------------------------------------------------------------
diff --git a/website/content/docs/index.html b/website/content/docs/index.html
new file mode 100644
index 0000000..ec5bf46
--- /dev/null
+++ b/website/content/docs/index.html
@@ -0,0 +1,9 @@
+---
+title: Overview
+---
+
+<p>Usergrid is an open-source Backend-as-a-Service (“BaaS” or “mBaaS”) composed of an integrated distributed NoSQL database, application layer and client tier with SDKs for developers looking to rapidly build web and/or mobile applications. It provides elementary services (user registration & management, data storage, file storage, queues) and retrieval features (full text search, geolocation search, joins) to power common app features.</p>
+
+<p>It is a multi-tenant system designed for deployment to public cloud environments (such as Amazon Web Services, Rackspace, etc.) or to run on traditional server infrastructures so that anyone can run their own private BaaS deployment.</p>
+
+<p>For architects and back-end teams, it aims to provide a distributed, easily extendable, operationally predictable and highly scalable solution. For front-end developers, it aims to simplify the development process by enabling them to rapidly build and operate mobile and web applications without requiring backend expertise.</p>
\ No newline at end of file