blob: f28297ac17b2fdb9eea0d152109ad200a14790e6 [file] [log] [blame]
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Usergrid Features &mdash; Apache Usergrid 2.x documentation</title>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="top" title="Apache Usergrid 2.x documentation" href="../index.html"/>
<link rel="next" title="Usergrid Data model" href="data-model.html"/>
<link rel="prev" title="Getting Started" href="overview.html"/>
<script src="../_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-nav-search">
<a href="../index.html" class="icon icon-home"> Apache Usergrid
</a>
<div class="version">
2.x
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">Getting Started</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="overview.html">Getting Started</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="">Usergrid Features</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#data-storage-management">Data storage &amp; management</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#application-data">Application data</a></li>
<li class="toctree-l3"><a class="reference internal" href="#files-assets">Files &amp; assets</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#flexible-data-querying">Flexible data querying</a></li>
<li class="toctree-l2"><a class="reference internal" href="#social">Social</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#entity-relationships">Entity relationships</a></li>
<li class="toctree-l3"><a class="reference internal" href="#activity-streams">Activity streams</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#user-management">User management</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#registration-and-login">Registration and login</a></li>
<li class="toctree-l3"><a class="reference internal" href="#roles-permissions">Roles &amp; permissions</a></li>
<li class="toctree-l3"><a class="reference internal" href="#groups">Groups</a></li>
<li class="toctree-l3"><a class="reference internal" href="#third-party-authentication">Third-party authentication</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#geolocation">Geolocation</a></li>
<li class="toctree-l2"><a class="reference internal" href="#push-notifications">Push notifications</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="data-model.html">Usergrid Data model</a></li>
<li class="toctree-l1"><a class="reference internal" href="async-vs-sync.html">Async vs. sync calls</a></li>
</ul>
<p class="caption"><span class="caption-text">Using Usergrid</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../using-usergrid/creating-account.html">Creating a Usergrid Account</a></li>
<li class="toctree-l1"><a class="reference internal" href="../using-usergrid/creating-a-new-application.html">Creating a new application</a></li>
<li class="toctree-l1"><a class="reference internal" href="../using-usergrid/using-a-sandbox-app.html">Using a Sandbox Application</a></li>
<li class="toctree-l1"><a class="reference internal" href="../using-usergrid/using-the-api.html">Using the API</a></li>
</ul>
<p class="caption"><span class="caption-text">Data Storage</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../data-storage/data-store-dbms.html">The Usergrid Data Store</a></li>
<li class="toctree-l1"><a class="reference internal" href="../data-storage/optimizing-access.html">Data Store Best Practices</a></li>
<li class="toctree-l1"><a class="reference internal" href="../data-storage/collections.html">Collections</a></li>
<li class="toctree-l1"><a class="reference internal" href="../data-storage/entities.html">Entities</a></li>
</ul>
<p class="caption"><span class="caption-text">Data Queries</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../data-queries/querying-your-data.html">Querying your data</a></li>
<li class="toctree-l1"><a class="reference internal" href="../data-queries/query-parameters.html">Query parameters &amp; clauses</a></li>
<li class="toctree-l1"><a class="reference internal" href="../data-queries/operators-and-types.html">Query operators &amp; data types</a></li>
<li class="toctree-l1"><a class="reference internal" href="../data-queries/advanced-query-usage.html">Advanced query usage</a></li>
</ul>
<p class="caption"><span class="caption-text">Entity Connections</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../entity-connections/connecting-entities.html">Connecting entities</a></li>
<li class="toctree-l1"><a class="reference internal" href="../entity-connections/retrieving-entities.html">Retrieving connections</a></li>
<li class="toctree-l1"><a class="reference internal" href="../entity-connections/disconnecting-entities.html">Disconnecting entities</a></li>
</ul>
<p class="caption"><span class="caption-text">Push Notifications</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../push-notifications/overview.html">Push notifications overview</a></li>
<li class="toctree-l1"><a class="reference internal" href="../push-notifications/adding-push-support.html">Adding push notifications support</a></li>
<li class="toctree-l1"><a class="reference internal" href="../push-notifications/getting-started.html">Getting started with push notifications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../push-notifications/tutorial.html">Tutorial: Push notifications sample app</a></li>
<li class="toctree-l1"><a class="reference internal" href="../push-notifications/registering.html">Registering with a notification service</a></li>
<li class="toctree-l1"><a class="reference internal" href="../push-notifications/creating-notifiers.html">Creating notifiers</a></li>
<li class="toctree-l1"><a class="reference internal" href="../push-notifications/managing-users-and-devices.html">Managing users and devices</a></li>
<li class="toctree-l1"><a class="reference internal" href="../push-notifications/creating-and-managing-notifications.html">Creating and managing notifications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../push-notifications/troubleshooting.html">Troubleshooting</a></li>
</ul>
<p class="caption"><span class="caption-text">Security &amp; Authentication</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../security-and-auth/app-security.html">Security &amp; token authentication</a></li>
<li class="toctree-l1"><a class="reference internal" href="../security-and-auth/using-permissions.html">Using permissions</a></li>
<li class="toctree-l1"><a class="reference internal" href="../security-and-auth/using-roles.html">Using roles</a></li>
<li class="toctree-l1"><a class="reference internal" href="../security-and-auth/authenticating-users-and-application-clients.html">Authenticating users &amp; app clients</a></li>
<li class="toctree-l1"><a class="reference internal" href="../security-and-auth/user-authentication-types.html">Authentication levels</a></li>
<li class="toctree-l1"><a class="reference internal" href="../security-and-auth/changing-token-time-live-ttl.html">Changing token expiration (time-to-live)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../security-and-auth/authenticating-api-requests.html">Authenticating API requests</a></li>
<li class="toctree-l1"><a class="reference internal" href="../security-and-auth/revoking-tokens-logout.html">Revoking tokens (logout)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../security-and-auth/facebook-sign.html">Facebook sign in</a></li>
<li class="toctree-l1"><a class="reference internal" href="../security-and-auth/securing-your-app.html">Security best practices</a></li>
</ul>
<p class="caption"><span class="caption-text">User Management &amp; Social Graph</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../user-management/user-management.html">User management &amp; social graph</a></li>
<li class="toctree-l1"><a class="reference internal" href="../user-management/working-user-data.html">Working with User Data</a></li>
<li class="toctree-l1"><a class="reference internal" href="../user-management/group.html">Working with group data</a></li>
<li class="toctree-l1"><a class="reference internal" href="../user-management/activity.html">Activity</a></li>
<li class="toctree-l1"><a class="reference internal" href="../user-management/user-connections.html">Social Graph Connections</a></li>
<li class="toctree-l1"><a class="reference internal" href="../user-management/user-connections.html#creating-other-connections">Creating other connections</a></li>
<li class="toctree-l1"><a class="reference internal" href="../user-management/messagee-example.html">App Example - Messagee</a></li>
</ul>
<p class="caption"><span class="caption-text">Geo-location</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../geolocation/geolocation.html">Geolocating your Entities</a></li>
</ul>
<p class="caption"><span class="caption-text">Assets &amp; Files</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../assets-and-files/uploading-assets.html">Uploading assets</a></li>
<li class="toctree-l1"><a class="reference internal" href="../assets-and-files/retrieving-assets.html">Retrieving assets</a></li>
<li class="toctree-l1"><a class="reference internal" href="../assets-and-files/folders.html">Folders</a></li>
</ul>
<p class="caption"><span class="caption-text">Counters &amp; Events</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../counters-and-events/events-and-counters.html">Counters &amp; events</a></li>
<li class="toctree-l1"><a class="reference internal" href="../counters-and-events/creating-and-incrementing-counters.html">Creating &amp; incrementing counters</a></li>
<li class="toctree-l1"><a class="reference internal" href="../counters-and-events/creating-and-incrementing-counters.html#decrementing-resetting-counters">Decrementing/resetting counters</a></li>
<li class="toctree-l1"><a class="reference internal" href="../counters-and-events/creating-and-incrementing-counters.html#using-counters-hierarchically">Using counters hierarchically</a></li>
<li class="toctree-l1"><a class="reference internal" href="../counters-and-events/retrieving-counters.html">Retrieving counters</a></li>
</ul>
<p class="caption"><span class="caption-text">Organizations &amp; Applications</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../orgs-and-apps/managing.html">Organization &amp; application management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../orgs-and-apps/organization.html">Organization</a></li>
<li class="toctree-l1"><a class="reference internal" href="../orgs-and-apps/application.html">Application</a></li>
<li class="toctree-l1"><a class="reference internal" href="../orgs-and-apps/admin-user.html">Admin user</a></li>
</ul>
<p class="caption"><span class="caption-text">API Reference</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../rest-endpoints/api-docs.html">Methods</a></li>
<li class="toctree-l1"><a class="reference internal" href="../rest-endpoints/api-docs.html#models">Models</a></li>
<li class="toctree-l1"><a class="reference internal" href="../rest-endpoints/api-docs.html#sub-types">Sub-Types</a></li>
</ul>
<p class="caption"><span class="caption-text">Client SDKs</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../sdks/tbd.html">COMING SOON...</a></li>
</ul>
<p class="caption"><span class="caption-text">Installing Usergrid</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../installation/deployment-guide.html">Usergrid 2.1.0 Deployment Guide</a></li>
</ul>
<p class="caption"><span class="caption-text">More about Usergrid</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../reference/presos-and-videos.html">Presentations &amp; Videos</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/contribute-code.html">How to Contribute Code &amp; Docs</a></li>
</ul>
</div>
&nbsp;
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">Apache Usergrid</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html">Docs</a> &raquo;</li>
<li>Usergrid Features</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/introduction/usergrid-features.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="usergrid-features">
<h1>Usergrid Features<a class="headerlink" href="#usergrid-features" title="Permalink to this headline"></a></h1>
<p>Usergrid provides developers with access to a flexible data store and
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>With Usergrid, developers can set up their own cloud-based data platform
in minutes instead of months – no server-side coding or back-end
development needed. This allows your developers to focus on developing
the rich features and user experience that truly differentiate your app,
rather than on the time-consuming details of implementing core back-end
services and infrastructure.</p>
<div class="section" id="data-storage-management">
<h2>Data storage &amp; management<a class="headerlink" href="#data-storage-management" title="Permalink to this headline"></a></h2>
<div class="section" id="application-data">
<h3>Application data<a class="headerlink" href="#application-data" title="Permalink to this headline"></a></h3>
<p>At the core of 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 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 class="reference external" href="data-model.html">Usergrid Data
model</a>.</p>
<p>For a complete list of the default data entities available, see
<a class="reference external" href="../rest-endpoint/api-docs.html#models">Models</a>.</p>
</div>
<div class="section" id="files-assets">
<h3>Files &amp; assets<a class="headerlink" href="#files-assets" title="Permalink to this headline"></a></h3>
<p>Images, video, and audio are key components of a great app experience.
With 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 class="reference external" href="../assets-and-files/uploading-assets.html">Uploading files and
assets</a>.</p>
</div>
</div>
<div class="section" id="flexible-data-querying">
<h2>Flexible data querying<a class="headerlink" href="#flexible-data-querying" title="Permalink to this headline"></a></h2>
<p>One of Usergrid&#8217; 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 class="reference external" href="../data-queries/querying-your-data.html">Data query
overview</a>.</p>
</div>
<div class="section" id="social">
<h2>Social<a class="headerlink" href="#social" title="Permalink to this headline"></a></h2>
<div class="section" id="entity-relationships">
<h3>Entity relationships<a class="headerlink" href="#entity-relationships" title="Permalink to this headline"></a></h3>
<p>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 class="reference external" href="../entity-connections/connecting-entities.html">Entity
connections</a>.</p>
</div>
<div class="section" id="activity-streams">
<h3>Activity streams<a class="headerlink" href="#activity-streams" title="Permalink to this headline"></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. 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 class="reference external" href="../user-management/activity.html">Activity
feeds</a>.</p>
</div>
</div>
<div class="section" id="user-management">
<h2>User management<a class="headerlink" href="#user-management" title="Permalink to this headline"></a></h2>
<div class="section" id="registration-and-login">
<h3>Registration and login<a class="headerlink" href="#registration-and-login" title="Permalink to this headline"></a></h3>
<p>You can easily 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 class="reference external" href="../user-management/user-management.html">User
Management</a>.</p>
<p>To learn more about authentication, see Authenticating users and
application clients.</p>
</div>
<div class="section" id="roles-permissions">
<h3>Roles &amp; permissions<a class="headerlink" href="#roles-permissions" title="Permalink to this headline"></a></h3>
<p>Applications often require the ability to configure fine-grain control
of user access to data, features and functionality. 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 class="reference external" href="../security-and-auth/securing-your-app.html">Using
Permissions</a>.</p>
</div>
<div class="section" id="groups">
<h3>Groups<a class="headerlink" href="#groups" title="Permalink to this headline"></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 class="reference external" href="../user-management/groups.html">Working with group
data</a>.</p>
</div>
<div class="section" id="third-party-authentication">
<h3>Third-party authentication<a class="headerlink" href="#third-party-authentication" title="Permalink to this headline"></a></h3>
<p>In addition to supporting user management and OAuth-based login for your
app, 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 class="reference external" href="../security-and-auth/facebook-sign.html">Facebook sign
in</a>.</p>
</div>
</div>
<div class="section" id="geolocation">
<h2>Geolocation<a class="headerlink" href="#geolocation" title="Permalink to this headline"></a></h2>
<p>The device entity allows you to capture geolocation data from your
users&#8217; 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 class="reference external" href="../geolocation/geolocation.html">Geolocation</a>.</p>
</div>
<div class="section" id="push-notifications">
<h2>Push notifications<a class="headerlink" href="#push-notifications" title="Permalink to this headline"></a></h2>
<p><strong>(Introduced in Usergrid 2)</strong> Push notifications are the most effective
way to engage your users with relevant content, and thanks to Usergrid,
implementing them can be done in minutes. Simply register your app and
your user&#8217;s devices with a notification provider, such as Apple Push
Notification Service or Google Cloud Messaging, then use the 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 class="reference external" href="../push-notifications/tbd.html">Push notifications
overview</a>.</p>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="data-model.html" class="btn btn-neutral float-right" title="Usergrid Data model" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="overview.html" class="btn btn-neutral" title="Getting Started" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2013-2015, Apache Usergrid.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'../',
VERSION:'2.x',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>