System and method for implicitly resolving query scope in a multi-client and multi-tenant datastore
AssigneeVolusion, Inc.
InventorsJason Wallis, Jonathan Gill, Gregory Murray, Rob Hayes
Life of this patent
Estimating the term…
Abstract
An apparatus comprising a multi-tenant datastore and a processor coupled to the multi-tenant datastore, wherein the processor is configured to receive a request comprising one or more security tokens, wherein the one or more security tokens comprise identification information, and generate a query based on the request to access the multi-tenant datastore, wherein generating the query comprises deriving a query scope based on the one or more security tokens.
Claims11
An apparatus comprising:
- a multi-tenant datastore;
- and
- a hardware processor coupled to the multi-tenant datastore, wherein the processor is configured to:
- receive a request comprising an application token, a user token, and a tenant identifier, wherein the application token identifies one of multiple applications hosted by the multi-tenant datastore, wherein the user token identifies one of multiple users of the multi-tenant datastore, and wherein the tenant identifier identifies one of multiple tenants hosted by the multi-tenant datastore;
- generate a query based on the request to access the multi-tenant datastore, wherein generating the query comprises deriving a query scope based on the request, and wherein the query scope is limited to data in the multi-tenant datastore that is associated with the one of the multiple applications, the one of the multiple users, and the one of the multiple tenants;
- update the application token and the user token after a predetermined interval of time has passed to generate an updated application token and an updated user token;
- and
- generate a second query to access the multi-tenant datastore, wherein the second query is based on the updated application token, the updated user token, and the tenant identifier,
- wherein the request is sent from a third party application and received by the hardware processor via an application programming interface (API),
- wherein the application token comprises information of an application identification (ID),
- wherein the multi-tenant datastore comprises a plurality of tables divided into groups,
- wherein each group of tables is assigned to one of the multiple tenants, and
- wherein each one of the multiple tenants is limited to only be able to access the group of tables assigned to the one of the multiple tenants.
A method of accessing a multi-tenant datastore comprising:
- receiving a request comprising an application token, a user token, and a tenant identifier, wherein the application token identifies one of multiple applications hosted by the multi-tenant datastore, wherein the user token identifies one of multiple users of the multi-tenant datastore, and wherein the tenant identifier identifies one of multiple tenants hosted by the multi-tenant datastore;
- generating with a computer hardware processor a query based on the request to access the multi-tenant datastore, wherein generating the query comprises deriving a query scope based on the request, and wherein the query scope is limited to data in the multi-tenant datastore that is associated with the one of the multiple applications, the one of the multiple users, and the one of the multiple tenants;
- receiving an updated application token and an updated user token after a predetermined interval of time has passed;
- and
- generating a second query to access the multi-tenant datastore, wherein the second query is based on the updated application token, the updated user token, and the tenant identifier,
- wherein the multi-tenant datastore supports a plurality of third party applications,
- wherein the third party applications comprise a product recommendation engine and a shipping label printing application, and
- wherein functions within the product recommendation engine and the shipping label printing application that are available to a user are determined based upon the query scope.
An apparatus comprising:
- a multi-tenant datastore;
- and
- a web server comprising a hardware processor coupled to the multi-tenant datastore, wherein the web server is configured to:
- receive a request comprising an application token, a user token, and a tenant identifier, wherein the application token identifies one of multiple applications hosted by the multi-tenant datastore, wherein the user token identifies one of multiple users of the multi-tenant datastore, and wherein the tenant identifier identifies one of multiple tenants hosted by the multi-tenant datastore;
- determine validity of the application token and the user token;
- generate a query based on the request to access the multi-tenant datastore when the application token and the user token are valid, wherein generating the query comprises deriving a query scope based on the request, and wherein the query scope is limited to data in the multi-tenant datastore that is associated with the one of the multiple applications, the one of the multiple users, and the one of the multiple tenants;
- generate an error message when one or both of the application token and the user token are invalid;
- receive an updated application token and an updated user token after a predetermined interval of time has passed;
- and
- generate a second query to access the multi-tenant datastore, wherein the second query is based on the updated application token, the updated user token, and the tenant identifier,
- wherein the multi-tenant datastore supports a plurality of third party applications,
- wherein the request is sent from one of the plurality of third party applications and received by a computer hardware processor via an application programming interface (API),
- wherein the application token comprises encrypted information of an application identification (ID), and
- wherein the third party applications determine functions available to a user based on a role of the user specified by the user token.
An apparatus comprising:
- a multi-tenant datastore;
- and
- a web server comprising a hardware processor coupled to the multi-tenant datastore, wherein the web server is configured to:
- receive a request comprising an application token, a user token, and a tenant identifier, wherein the application token identifies one of multiple applications hosted by the multi-tenant datastore, wherein the user token identifies one of multiple users of the multi-tenant datastore, and wherein the tenant identifier identifies one of multiple tenants hosted by the multi-tenant datastore;
- determine validity of the application token and the user token;
- generate a query based on the request to access the multi-tenant datastore when the application token and the user token are valid, wherein generating the query comprises deriving a query scope based on the request, and wherein the query scope is limited to data in the multi-tenant datastore that is associated with the one of the multiple applications, the one of the multiple users, and the one of the multiple tenants;
- generate an error message when one or both of the application token and the user token are invalid;
- receive an updated application token and an updated user token after a predetermined interval of time has passed;
- and
- generate a second query to access the multi-tenant datastore, wherein the second query is based on the updated application token, the updated user token, and the tenant identifier,
- wherein the request further comprises a uniform resource locator (URL),
- wherein deriving the query scope comprises determining the tenant identifier based on the URL,
- wherein the application token comprises an application identification (ID), and
- wherein the application ID is negotiated between a third party application associated with the application token and a hosting system.
Dependencies are inferred from the claim text.