perkeep/doc
mpl 4fc061e8a2 pkg/server/app: refresh cached domain blobs on 403
To decide whether a search submitted to the app search proxy is allowed,
we compare its results to the domain blobs, result of the master query,
that we cache when the master query is set.

However, since the results of the master query are liable to change when
new blobs arrive (e.g. a new camliMember is added to the set that is
published), that cache may need to be invalidated. Otherwise, we might
reply with a 403 to search query that is actually allowed.

Therefore, this CL adds a refresh of the cache on two instances:

-When the app handler gets a search query that seems to be forbidden.
Before replying with a 403, we refresh the cache with the master query,
and recheck whether the search query is allowed.

-When the publisher gets a request for a "members" page, or the "file"
page, it preemptively asks the app handler to refresh. Now that a lot of
the client workflow has been moved to javascript/the browser, these
kinds of requests should not happen too often, so it seems a reasonable
place to ask for a refresh. But this might change, so we should of
course be careful not to flood the app handler with refresh requests in
the future.

In any case, the app handler is suppressing the refresh requests, so
that it does not perform refreshes at more that one per minute.

As a smarter approach, we could later imagine a way for the app handler
to be aware of when new blobs get to the blobserver (akin to the blob
hub that the sync handler uses?), so that it only ever refreshes when
needed.

Fixes #851

Change-Id: Idc14cce5018053deac01ec454e5c936ed93e5a05
2016-09-02 18:40:42 +02:00
..
example-blobs Some example blobs 2011-02-02 13:30:01 -08:00
json-signing website: update misc docs to markdown 2016-04-26 18:10:58 -07:00
protocol convert protocol docs to markdown 2016-04-26 09:37:01 -07:00
publishing pkg/server/app: improve app handling 2016-07-04 22:21:16 +02:00
release website: feature monthly releases 2016-07-06 16:41:15 +02:00
schema doc/schema: add missing link to bytes.md 2016-05-12 00:17:24 +02:00
todo website: update misc docs to markdown 2016-04-26 18:10:58 -07:00
README.md Remove /doc/contributing.md 2016-06-03 14:42:05 -07:00
app-environment.md pkg/server/app: refresh cached domain blobs on 403 2016-09-02 18:40:42 +02:00
arch.md website: serve /doc/ URLs from top-level doc dir 2016-04-25 22:13:09 -07:00
client-config.md website: serve /doc/ URLs from top-level doc dir 2016-04-25 22:13:09 -07:00
environment-vars.md website: update misc docs to markdown 2016-04-26 18:10:58 -07:00
overview.md website: fix remaining old links to /docs/ 2016-05-02 06:26:45 -07:00
overview.txt website: fix remaining old links to /docs/ 2016-05-02 06:26:45 -07:00
principles.md website: serve /doc/ URLs from top-level doc dir 2016-04-25 22:13:09 -07:00
prior-art.md website: fix wikipedia links on prior-art page 2016-04-27 08:11:30 -07:00
release.txt doc/release.txt: fix monthly doc 2016-05-10 15:08:13 +02:00
search-ui.md website: update misc docs to markdown 2016-04-26 18:10:58 -07:00
search-ui.txt website: restore search-ui.txt with link to new page 2016-04-26 22:28:05 -07:00
server-config.md pkg/server/app: improve app handling 2016-07-04 22:21:16 +02:00
sharing.md website: fix remaining old links to /docs/ 2016-05-02 06:26:45 -07:00
status.md website: fix remaining old links to /docs/ 2016-05-02 06:26:45 -07:00
terms.md website: fix remaining old links to /docs/ 2016-05-02 06:26:45 -07:00
uses.md website: fix remaining old links to /docs/ 2016-05-02 06:26:45 -07:00
web-ui-styleguide.md website: serve /doc/ URLs from top-level doc dir 2016-04-25 22:13:09 -07:00

README.md

Documentation

  • Overview: The original motivation and background for why Camlistore exists and what one might use it for.

For Users

If you're just looking to set up a Camlistore server and use it yourself, check out our getting started guide. The documents below go into more detail on customizing the high level configuration for use such as alternative blob storage or synchronization to cloud storage.

  • Command-line tools
  • Server Config: Details for configuring server storage and access, including synchronization to other Camlistore servers or backup to cloud storage providers
  • Client config: Clients need this configuration file to securely connect to your Camlistore server(s)

For Developers

If you want to help the development of Camlistore or just want to know more about the how and why behind Camlistore, these docs are the going to help you get started. Something we didn't cover here that you're interested in? Ask on the mailing list.

Concepts

Technical Docs

Presentations

Video tutorials