1. A method for sharing content items among a plurality of users, the method comprising: defining a first user token and a first content token, the first user token and the first content token each representing a first visibility policy for determining which of the plurality of users are granted access to content items posted by a first one of the plurality of users, wherein the first user token and the first content token are matching tokens; associating the first user token with each user who is granted access to content items according to the first visibility policy; receiving a visibility instruction for a first content item from the first user, the visibility instruction indicating that the first content item should be shared according to the first visibility policy; and in response to the visibility instruction, associating the first content token with the first content item in an index of content items, wherein when one of the plurality of users requests access to the first content item, the request is granted or denied based on whether the first content token matches a user token associated with the requesting user.
5. The method of claim 1 further comprising: receiving a query from a querying one of the plurality of users; and in response to the query, selecting one or more content items from the index to return as search hits, wherein the first content item is not selected as a search hit unless the querying user is associated with a user token that matches the first content token.