perkeep/doc/schema
mpl 794ed25819 website: keep doc/schema flat
It looks better than the half-organization we had so far, and it will
actually make it easier for editorial changes to come. Also keeps us
more honest about doing it sooner rather than later.

Change-Id: I6303325f6d75389c7e8ca908f3740cf92af3836a
2016-04-26 17:34:47 -07:00
..
README.md website: keep doc/schema flat 2016-04-26 17:34:47 -07:00
TODO website: keep doc/schema flat 2016-04-26 17:34:47 -07:00
attributes.md website: keep doc/schema flat 2016-04-26 17:34:47 -07:00
blob-magic.md website: convert schema docs to markdown 2016-04-26 16:32:38 -07:00
bytes.md website: convert schema docs to markdown 2016-04-26 16:32:38 -07:00
common.md website: keep doc/schema flat 2016-04-26 17:34:47 -07:00
delete.md website: keep doc/schema flat 2016-04-26 17:34:47 -07:00
directory.md website: keep doc/schema flat 2016-04-26 17:34:47 -07:00
fifo.md website: keep doc/schema flat 2016-04-26 17:34:47 -07:00
file.md website: keep doc/schema flat 2016-04-26 17:34:47 -07:00
inode.md website: keep doc/schema flat 2016-04-26 17:34:47 -07:00
keep.md website: keep doc/schema flat 2016-04-26 17:34:47 -07:00
permanode.md website: convert schema docs to markdown 2016-04-26 16:32:38 -07:00
share.md website: keep doc/schema flat 2016-04-26 17:34:47 -07:00
socket.md website: keep doc/schema flat 2016-04-26 17:34:47 -07:00
static-set.md website: keep doc/schema flat 2016-04-26 17:34:47 -07:00
symlink.md website: keep doc/schema flat 2016-04-26 17:34:47 -07:00

README.md

Schema

At the lowest layer, Camlistore doesn't care what you put in it (everything is just dumb bytes) and you're free to adopt your own data model. However, the upper layers of Camlistore standardize on a common schema to represent various classes of data.

Schema blobs are JSON objects with at least two attributes always set: camliVersion, which is always 1, and camliType, which tells you the type of metadata the blob contains.

Here are some of the data types we've started to formalize a JSON schema for:

  • Common Attributes

  • Delete Claim

  • Directory

  • FIFO

  • Files: traditional filesystems. Files, directories, inodes, symlinks, etc. Uses the file, directory, symlink, and inode camliTypes.

  • Inode

  • "Keep" claims: Normally, any object that isn't referenced by a permanode could theoretically be garbage collected. Keep claims prevent that from happening. Indicated by the keep camliType.

  • Permanodes: the immutable root "anchor" of mutable Camlistore objects (see terminology). Users create signed claim schema blobs which reference a permanode and define some mutation for the permanode.

    Permanodes are used to model many kinds of mutable data, including mutable files, dynamic directories, and more.

    Uses the permanode and claim camliTypes.

  • Permanode Attributes

  • Share Claim

  • Socket

  • Static Sets: Immutable lists of other blobs by their refs. Indicated by the static-set camliType.

  • Symlink