Our terminology is sometimes unclear and I think we could disambiguate it a bit. I think I understand the various terms as follows, and propose to make this consistent in code comments, function names, and the developer docs; please comment if you have other terms or better proposals:
- remoteStorage: can refer to the project, the protocol, or the spec
- remoteStorage version: refers to a spec version
- store (proposing this as a new term): either the local store or the remote store
- storage (maybe we should deprecate this term then): synonymous with remote store
- remote store: an account on a remoteStorage server, on GoogleDrive, or on Dropbox. In the code:
- backend: a type of remote store, i.e. remoteStorage (any spec version), GoogleDrive, or Dropbox
- local store: the ‘remotestorage’ database in IndexedDB, or its equivalent in localStorage or in-memory-storage. In the code:
- node: either a folder or a document in the local store.
- item: a subfolder or a document inside a folder.
- itemName: the name of the item, i.e. the node ‘/foo/bar’ is the item with itemName ‘bar’ inside the folder node ‘/foo/’.
- itemsMap: the list of items in a folder version. In the local store it contains a value
- revision: either the
ETagitself as a string, or the value of a folder’s itemsMap or a document’s body+contentType identified by it.
- version (newly proposing this one): given a node, one of
node.push. We can call these the “local version”, “push version” etcetera of a node.