Worker

async-store.js

Async-store contains all the functions representing the commands sent by outer. Its role is to manage the connection to the user account, load the sub-structures linked to this account (shared folders, profile, teams) and load all the modules that extend its use. It creates two main objects, named store and Store. The first one represents the memory of the worker and stores everything that has been loaded, the second one represents its "muscles" and contains all the functions that can be executed by the commands of outer. Many modules are loaded to perform specific tasks and are accessible via store.

“Store” commands

Commands that can be executed by async-store include:

  • Initialization

  • Loading user account (via listmap), shared folders and teams

  • Loading of the different modules in the worker

  • Initiating an authenticated session with the server (for registered users)

  • Authenticated server requests

  • Modify your "pin log", change a password, destroy an owned document, recover the remaining storage space for the account, execute administrator commands, etc.

  • Upload a static file to the user drive

  • The identity of the author is proved to the server with the signature key of the registered user

  • Unauthenticated server requests

  • Retrieve the total size of a document in the database (with its history)

  • Retrieve the metadata of a document (list of owners, access list, expiration date, etc.)

  • Actions on the user account

  • Storing or retrieving Settings

  • Commands to be performed in the drive

  • Shared folder management

  • Contacts management (add or delete contacts)

  • Actions on the different modules

  • Each module can receive its own commands, but these first pass through async-store which will redistribute it to the concerned modules

  • Collaborative documents

  • Join a collaborative document

  • Chainpad-netflux initialization

  • Send messages to this document's channel

  • Listen to events on this document's channel

  • Obtain a part of the document history

  • Change the password of a document

  • Manage document metadata (access list or owners)