Line 4: |
Line 4: |
| | | |
| The singular program requires only Python, and obvious dependencies like coreutils, to allow all its services to function properly. It provides basic sugar related services, and uses one CLI tool to manage all its functionality. | | The singular program requires only Python, and obvious dependencies like coreutils, to allow all its services to function properly. It provides basic sugar related services, and uses one CLI tool to manage all its functionality. |
| + | |
| + | == Functionality == |
| + | |
| + | === Registry === |
| + | |
| + | During the sugar-server work, all its components have access to a registry, an analog of database to keep information about registered users or activated machines. The registry is file based, i.e., every item is being kept in one file (in JSON notation) in {{Code|registry-dir}} directory. |
| + | |
| + | There are two subdirectories, i.e., "tables": |
| + | |
| + | * {{Code|users}}, for registered users, and |
| + | * {{Code|machines}}, for machines that requested activation leases on bootstrap. |
| + | |
| + | Registry items might contains following keys: |
| + | |
| + | * {{Code|uuid}}, unique identity of [[#UUID per Sugar user|particular Sugar user]]; |
| + | * {{Code|serial}}, serial number of hardware Sugar user is running on, e.g., serial number of a XO laptop; |
| + | * {{Code|pubkey}}, SSH public key, this is the exact line that needs to be placed as-is to {{Code|~/.ssh/authorized_keys}} file; note that OLPC XS operates with striped version of public keys. |
| + | |
| + | === UUID per Sugar user === |
| + | |
| + | Sugar-server treats UUID values as unique identities of particular Sugar users, i.e., not unique identities of particular hardware that Sugar users run on (like OLPC XS does). If people need to keep access to their personal data, uploaded to the server, they need to keep private key, from {{Code|~/.sugar/default/owner.key}} file, and the UUID value, they got after registration on a server, as a an id or registration. |
| | | |
| == Services == | | == Services == |
Line 19: |
Line 40: |
| * {{Code|success: ERR}}; | | * {{Code|success: ERR}}; |
| * {{Code|error}}, error message. | | * {{Code|error}}, error message. |
− |
| |
− | Service interfaces will operate with the following parameters:
| |
− |
| |
− | * {{Code|uuid}}, unique identity of the particular Sugar user, i.e., this id should be created for every Sugar profile; but on XOs, where reflashing might occur, XO UUID will be reused;
| |
− | * {{Code|serial}}, serial number of hardware Sugar user is running on, e.g., serial number of a XO laptop;
| |
− | * {{Code|pubkey}}, SSH public key, this is the exact line that needs to be placed as-is to {{Code|~/.ssh/authorized_keys}} file; note that OLPC XS operates with striped version of public keys.
| |
| | | |
| === id === | | === id === |