blob: 4a240c820d3419c50f930ce4a0bf52447c46b9c5 [file] [log] [blame]
# TODO
Clean this up and/or break into separate files.
{"camliVersion": 1,
"camliType": "claim",
"camliSigner": "....",
"claimDate": "2010-07-10T17:20:03.9212Z", // redundant with data in ascii armored "camliSig",
// but required. more legible. takes precedence over
// any date inferred from camliSig
"permaNode": "dig-xxxxxxx", // what is being modified
"claimType": "set-attribute",
"attribute": "camliContent",
"value": "dig-yyyyyyy",
"camliSig": .........}
claimTypes:
-----------
* "add-attribute" (adds a value to a multi-valued attribute (e.g. "tag"))
* "set-attribute" (set a single-valued attribute. equivalent to "del-attribute"
of "attribute" and then add-attribute)
* "del-attribute" (deletes all values of "attribute", if no "value" given, or
just the provided "value" if multi-valued)
"multi".. atomically do multiple add/set/del from above on potentially different
permanodes. looks like:
{"camliVersion": 1,
"camliType": "claim",
"claimType": "multi",
"claimDate": "2013-02-24T17:20:03.9212Z",
"claims": [
{"claimType": "set-attribute",
"permanode": "dig-xxxxxx",
"attribute": "foo",
"value": "fooValue"},
{"claimType": "add-attribute",
"permanode": "dig-yyyyy",
"attribute": "tag",
"value": "funny"}
],
"camliSig": .........}
## Attribute names
camliContent: a permanode "becoming" something. value is pointer to what it is
now.
## Old notes from July 2010 doc
Claim types:
* permanode-become:
* implies either:
1. switching from typeless/lifeless virgin pnode into something (dynamic
set, filesystem tree, etc)
2. changing versions of that base metadata (new filesystem snapshot)
* 'permaNode' is the thing that is changing
* 'contents' is the current node that represents what permaNode changes to
* set-membership: add a blobref to a dynamic set
* "permaNode" is blobref of the dynamic set
* delete-claim: delete another claim (target is claim to delete)
* "contents" is the claim blobref youre deleting
* {set,add}-attribute:
* attach a piece of metadata to something.
* use set-attribute for single-valued attributes only: highest dated claim
wins (of trusted person) e.g. "title", "description"
* use add-attribute for multi-valued things. e.g. "tag"
Tagging something:
{"claimType": "add-attribute", //
"attribute": "tag", // utf-8, should have list of valid attributes names, preferrably not made up by us (open social spec?)
"value": "funny", // value that doesn’t have lasting value
"valueRef": "sha1-blobref", // hefty reference to a lasting value
"claimer?": "sha1-of-the-dude-who’s-signing",
"claimDate": "2010-07-10T17:20:03.9212Z",
"claimType", "permanode-become",
"permaNode": "sha1-pnode",
}
filesystem root claim:
{
"camliVersion": 1,
"camliType": "claim",
// Stuff for camliType "claim":
"claimDate": "2010-07-10T17:20:03.9212Z", // redundant with data in ascii armored "camliSig". TODO: resolve
"claimType", "permanode-become",
// Stuff for "permanode-become":
"permaNode": "sha1-pnode",
"contents": "sha1-fs-node"
,"camliSigner": "digalg-blobref-to-ascii-armor-public-key-of-signer",
"camliSig": "......"}