This doctype is not persisted in CouchDB, it is only used to create a note, and
this note will be persisted as an io.cozy.files. Its attributes are:
title: {string} the initial title of the note (that will also be used for the file name)dir_id: {string} the id of the directory where the file will be created (optional)schema: {object} the schema used by prosemirror (withnotesandmarksserialized as arrays to preserve the order).
{
"data": {
"type": "io.cozy.notes.documents",
"attributes": {
"title": "My new note",
"dir_id": "f48d9370-e1ec-0137-8547-543d7eb8149c",
"schema": {
"nodes": [
["doc", { "content": "block+" }],
["paragraph", { "content": "inline*", "group": "block" }],
["blockquote", { "content": "block+", "group": "block" }],
["horizontal_rule", { "group": "block" }],
[
"heading",
{
"content": "inline*",
"group": "block",
"attrs": { "level": { "default": 1 } }
}
],
["code_block", { "content": "text*", "marks": "", "group": "block" }],
["text", { "group": "inline" }],
[
"image",
{
"group": "inline",
"inline": true,
"attrs": { "alt": {}, "src": {}, "title": {} }
}
],
["hard_break", { "group": "inline", "inline": true }],
[
"ordered_list",
{
"content": "list_item+",
"group": "block",
"attrs": { "order": { "default": 1 } }
}
],
["bullet_list", { "content": "list_item+", "group": "block" }],
["list_item", { "content": "paragraph block*" }]
],
"marks": [
["link", { "attrs": { "href": {}, "title": {} }, "inclusive": false }],
["em", {}],
["strong", {}],
["code", {}]
],
"topNode": "doc"
}
}
}
}This doctype is used for prosemirror steps. You can see them as a kind of patch on a note. It describes a small transformation on the note. Its attributes are:
timestamp: {int} a timestamp of the date when the server accepted the step (it should only be used by the server)sessionID: {string} a random string used to identify the user that made the changeversion: {int} the version of the note before the change (the step can only be applied to the note if the version matches, else it has to rebased by the client)stepType: {string} the type of the step, as defined by prosemirrorfrom,to,slice: data that can be interpreted by prosemirror in function of the step type.
{
"_id": "d9fc3726f254a0ccfb2ca30d9e00142a/00000001",
"_rev": "1-894d54b267404abad9a1cf08f1a8a663",
"from": 1,
"sessionID": "cozy.tools75:1576503622324.324.0.9928191162716804",
"slice": {
"content": [
{
"text": "H",
"type": "text"
}
]
},
"stepType": "replace",
"timestamp": 1576503628,
"to": 1,
"version": 1
}This doctype is not persisted, it is sent by the clients to the stack, and the stack send them to the other clients via the realtime websockets. Its attributes are:
sessionID: {string} a random string used to identify the user that made the changetype: {string} the type of the telepointer, as defined by prosemirroranchor,head: data that can be interpreted by prosemirror.
{
"data": {
"type": "io.cozy.notes.telepointers",
"id": "f48d9370-e1ec-0137-8547-543d7eb8149c",
"attributes": {
"sessionID": "543781490137",
"anchor": 7,
"head": 12,
"type": "textSelection"
}
}
}This doctype is only used for sending the events related to a note in the realtime websockets. The client subscribes to a note, and the server send events on this note, that can be a change on the note title, its content, or a telepointer update.
client > {"method": "SUBSCRIBE",
"payload": {"type": "io.cozy.notes.events",
"id": "f48d9370-e1ec-0137-8547-543d7eb8149c"}}
server > {"event": "UPDATED",
"payload": {"id": "f48d9370-e1ec-0137-8547-543d7eb8149c",
"type": "io.cozy.notes.events",
"doc": {"doctype": "io.cozy.notes.documents",
"sessionID": "543781490137",
"title": "this is the new title of this note"}}}
server > {"event": "CREATED",
"payload": {"id": "f48d9370-e1ec-0137-8547-543d7eb8149c",
"type": "io.cozy.notes.events",
"doc": {"doctype": "io.cozy.notes.steps",
"sessionID": "543781490137",
"version": 6,
"stepType": "replace",
"from": 1,
"to": 1,
"slice": {"content": [{"type": "text", "text": "H"}]}}}}
server > {"event": "UPDATED",
"payload": {"id": "f48d9370-e1ec-0137-8547-543d7eb8149c",
"type": "io.cozy.notes.events",
"doc": {"doctype": "io.cozy.notes.telepointers", "sessionID": "543781490137", "anchor": 7, "head": 12, "type": "textSelection"}}}