perkeep/doc/schema/TODO

100 lines
3.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 doesnt have lasting value
"valueRef": "sha1-blobref", // hefty reference to a lasting value
"claimer?": "sha1-of-the-dude-whos-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": "......"}