OmStore Cloud API Harshit Agarwal Sohil Habib About Us ● We are graduate students at CMU ● Currently at CMU Silicon Valley campus ● Working part time with the Omlet team since Fall 2014 Table of Contents • • • • • • • Project Motivation Features API Specifications Use Cases Potential Applications Future work Conclusion Project Motivation Users have started becoming more concerned about the following issues: ● Is the privacy of their data guaranteed? ● Are their conversations and other personal content in safe hands? ● Are closed networks monetizing their data? ● Should all the data be controlled by US based cloud providers for nonUS users? Project Motivation The integration with cloud providers has issues like: ● High number of cloud providers with different APIs makes it prohibitive to provide support for all cloud providers. ● A specification is needed to define an interface that cloud storage service providers can implement, to enable Omlet and OmStore powered applications’ users to use their cloud service seamlessly. Features ● Provides OmStore Cloud package that can be easily deployed by users on their PCs, AWS or any other virtual computing platform, thus giving them full ownership of their data. ● Registration service to allow OmStore compliant cloud service endpoints to be used with OmStore supported apps (like Omlet). ● An intuitive open RESTful API that can be easily used and extended to build applications and services over OmStore. ● Modular enough to allow integration with any DB or any File storage service. Features ASUS gallery powered by the Omlet application, with OmStore as one of the cloud providers. API Specification OAuth2 API ● ● /user ○ POST /register - Register an account and password via the web (admin) ○ POST /logout - Logout from a session ○ POST - Return a webpage with the authorization code as the title ○ GET - Return a webpage with a form for a user to log in /auth ○ GET /signin - Redirects to the login page ○ POST /code - Returns the access token, given correct authorization code API Specification Container API ● /container ○ GET /{account}/containers - Lists all the containers ○ DELETE /{account}/{container} - Recursively deletes a specific container ○ GET /{account}/{container}/share - Makes a container sharable and returns a shared authentication token for that container Container Files API Specification File API ● /file ○ PUT /{account}/{container}/{specifiedId} - Writes a file to specific container ○ GET /{account}/{container}/{specifiedId} - Reads a specified file ○ GET /{md5} - Reads a file with matching MD5 hash of the file content ○ GET /{account}/{container}/files - Lists all the files for a given container ○ DELETE /{account}/{container}/{specifiedId} - Deletes the specified file Use-Cases ● OmStore integration with Omlet. ● File browser for users to browse their Omlet chat media. Omlet Integration OmStore 1.Upload file 2.Get URL 4.Download file 3.Send Message Omlet Server 3.Receive Message Omlet Integration ● Messages uploaded to the cloud server. ● Metadata sent to Omlet server. This layer routes this metadata to the receiver. ● Receiver downloads message files from the sender cloud storage. ● After a certain period receiver stores sent messages on his own server. ● Allows sending large files without any bandwidth bottleneck. Omlet Integration Omlet Chat Media Browser ● Omlet users can browse and share their chat content present on the OmStore cloud. ● Users can share an entire chats’ media or a particular media entity with other (non-Omlet) users. Omlet Chat Media Browser OmStore Potential Applications ● Desktop client for OmStore, with drag and drop sync (like Dropbox and Google Drive applications for PC). ● An OmStore application for users to browse chat data on smartphones. ● Fitness apps, games or any other applications that require sync and cloud storage. Future Work ● HTTPS support for OmStore with ● S3 as file storage ● Message browsing in Media Browser ● Implementing a global and local search for message data ● Video streaming support Conclusion ● OmStore Open API is a great initiative for apps, as it provides a cloud backend service out of the box. ● It is clear how simple and easy to use the API is, after integrating it with Omlet and implementing the file browser using it. ● The sample use cases utilize all the APIs in OmStore therefore serving as good examples for other projects. Resources ● Omstore Repo: https://bitbucket.org/tpurtell/omstore ● Contacts: ○ Ben, ben@mobisocial.us ○ Harshit, hagarwal@andrew.cmu.edu ○ Sohil, snhabib@andrew.cmu.edu Any Questions?