Labs/Weave/Developer

From MozillaWiki
< Labs‎ | Weave
Revision as of 23:38, 3 February 2010 by Mhanson (talk | contribs) (Created page with '= Mozilla Services: Developer Home = Mozilla Services are server-based, always-on services to enhance Firefox users' experience of the web. Our goal is to enable a consistent us…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Mozilla Services: Developer Home

Mozilla Services are server-based, always-on services to enhance Firefox users' experience of the web. Our goal is to enable a consistent user experience of the web, whenever our users use the web, while protecting user privacy and choice.

Mozilla has launched these services to Firefox users through the [addon].

Our services are open-source and have open APIs. Developers are welcome to integrate their software with our services, and anyone is welcome to download the source code for the server software and run their own services if they wish.

Available Services

  • The Weave Sync service maintains an indexed, encrypted data store that provides server storage for history, passwords, bookmarks, form history, preferences, and tabs exported from a web browser. Add-on developers can use a browser-level API to synchronize add-on data between browser instances. By using the Sync Server API, developers can write client software to access the sync data on any platform. Read more about Weave Sync.

The Weave Sync service is not intended to be a mechanism to share your browser history with other services. To learn more about the plans to enable secure private sharing of personal data, read our Secure Data Sharing plans.

Services Developer FAQ

  • What sort of applications can I build with Mozilla Services?

As an add-on developer, you can use the Weave Identity and Sync services to create a consistent experience for your users. Read about Labs/Weave/Developer/HowToWriteSyncAddonPrefs|how to synchronize add-on preferences here.]]

As a client software developer, you can use the Weave Identity and Sync services to access users' web experience data to create a consistent user experience between your software and Firefox. Read about how to access browser data in client software here.

  • What sort of applications shouldn't I build with these services?

Mozilla has made a strong effort to provide a user data storage system that protects our users' privacy. The current system does not store any decrypted data about the user on the server, besides the minimal set of data we need to log the user in and contact them if they lose their password.

Developers should not write applications that erode this privacy guarantee lightly. In particular, we believe that the users' password and passphrase, and the cryptographic resources accessed through those values, should never leave their personal computer. This means that you shouldn't write a server that stores these values and accesses the user's personal data from another server.

We have a plan to support [[Labs/Weave/Developer/SecureDataSharing|Secure Data Sharing] that empowers both users and service developers. We would welcome your input!

Also, the Mozilla Services web services are designed to support a relatively small amount of high-value user data. Users are restricted to a fairly small data quota. Applications should respect this restriction by using the Mozilla Services web services for relatively small amounts of data (in the neighborhood of tens of kilobytes).

  • Can I write commercial applications or closed-source software that uses these services?

Yes, you may. You must make certain that your terms of service and privacy policy are compatible with the [Terms of Service] and [Privacy Policy]. Note that crawling or otherwise attempting to bulk-extract data from the services is explicitly foribdden, as is trading or reselling any of the Mozilla Services.

Documentation

  • Introduction to Weave Identity
  • Introduction to Weave Sync
  • Design Pattern: How to Synchronize Add-on Preferences
  • Design Pattern: How to Access Browser Data in Client Software
  • Service API documentation
  • Crypto architecture documentation
  • Browser Object documentation
  • To suggest a new service or a chance to an existing one, please visit the

Weave Enhancement Proposal (WEP) page.

Libraries

  • The Javascript implementation is bundled into the Weave addon. A standalone version will be ready soon.
  • A Python implementation is available as weave.py.

Client Applications

  • Web-based Weave data viewer: A complete Weave data viewer implemented in Javascript. No server required; all password-based operations and crypto are performed on the client.
  • WebOS-based data viewer - by Les Orchard
  • iPhone data viewer: The AwesomeBar, bookmarks, history, and tabs, on your iPhone. Opens pages in Safari.
  • weave.py: Command-line application and library written in Python; search and display all sync data, with export to text, JSON, or XML.