Introduction
There are two types of tables: Tables for OpenSocial defined data and tables that contain data specific to how we extended OpenSocial for Profiles. The latter is the one that needs explaining, the former you can likely figure out by reading about OpenSocial and understanding what data it intrinsically deals with.
Potential TODO. Naming scheme to make obvious which tables are of whihch type.
Profiles Specific Tables
They are
- shindig_apps
- shindig_app_registry
- shindig_app_views
More to explain, for now an excerpt about two of the more critical and difficult to understand fields in shindig_app_views
viewer_req values and meaning
- R => gadget will only show up if a user is logged in (a.k.a. the viewer) AND that appId, personId=id_of_viewer combo is in shindig_app_registry. Use this for special gadgets that you only want a handful of people to see, and manually add rows to shindig_app_registry to grant them access to the gadget.
- U => gadget will only show up if a user (the viewer) is logged in. Anyone who logs in can see it, but anonymous (not logged in ) viewers of your web site will not see the gadget
- NULL => no viewer requirements. Viewer can be anyone, including anonymous (not logged in) user
owner_req values and meaning
First of all, not all pages have an 'owner'. Search.aspx and GadgetDetails.aspx are not user centric pages, so there is no owner. It would not make sense to have a non-null owner_req value for any view rendered on those pages.
- R => gadget will only show up if the appId, personId combo is in shindig_app_registry for personId=id_of_owner for that page(i.e. person who's profile you are looking at)
- NULL => no owner requirements. Shows up on anyones page
- Note that it would not make sense to have a U in this column because if you are looking a person centric page (ProfileDetials, ProfileEdit, CoAuthors, SimilarPeople, etc.) then clearly, the "owner" is a user in the system.