Locally stored Settings and Information
Abstract
Information and configuration settings stored on each client.
Data Types
The types and format of data which is exchanged or can be exported and imported are defined as follows:
Data type | Definition |
---|---|
BOOL | Boolean value |
INT | 32-bit signed two’s complement integer |
LONG | 64-bit signed two’s complement integer |
STR | UTF-8 encoded and (if applicable) null terminated |
KEY | Hex-String with ASCII encoding. Every byte of data is converted into the corresponding 2-digit hex representation. The returned bytes object is therefore twice as long as the length of data. |
URL | ASCII encoded URIs according to RFC 3986), for Drop URL see here |
UUID | 128 bit random number ASCII encoded Universally Unique IDentifier, see this definition |
Local settings
The preferences are a collection of settings which describe some common settings for the library, the UI and for the communication with the Qabel servers.
default: true
- poll_interval: default polling interval
- drop_last_update: time of last drop message request; time stamp of the received drop message is used
Summary
preferences = "{"
'poll_interval' : INT,
'drop_last_update' : STR,
"}"
Client Data
A device stores two types of settings and information regarding the user:
- accounts
- identities
Summary
Settings = "{"
'accounts' : accounts,
'identities' : identities
"}"
It also stores information on the users contacts.
Accounts
Accounts are meant for paid service accounting. These credentials can be used to gain write access to S3.
The item accounts
includes an array of account settings structures
Summary
accounts = "["
account*
"]"
Account
account = "{"
'username': STR,
'email': STR,
'password': STR,
"}"
Identities
The item identities
includes an array of identity settings structures
Summary
identities = "["
identity*
"]"
Identity
Key | Description |
---|---|
alias | Textual, user-defined label identifying this identity (also to other users) |
Email address of the user owning this identity (optional) | |
phone | Phone number of the user owning this identity (optional) |
private_key | Private, secret part of the key pair |
prefixes | List of prefixes this identity owns |
drop_urls | List of urls of the drops where the identity expects to receive messages |
Summary
identity = "{"
'alias' : STR,
'email': STR,
'phone': STR,
'private_key' : KEY,
'prefixes': [STR],
'drop_urls' : [URL]
"}"
Export
The name of an exported identity file is “identity-[identityName].qid” where [identityName] is replaced by the name of the respective identity.
Contact Data
Additionally to the data on the user itself information on its contacts can be stored on the device.
Summary
Contacts = "{"
'contacts' : contacts
"}"
Contacts
The item “contacts” includes an array of “contact”s
Summary
contacts = "["
contact*
"]"
Contact
The following items define a contact item:
Key | Description |
---|---|
alias | Alias for the contact |
Email address for the contact (optional) | |
phone | Phone number for the contact (optional) |
public_key | Public key of the contact |
drop_urls | Array of drop Urls |
Summary
contact = "{"
'alias': STR,
'email': STR,
'phone': STR,
'public_key' : KEY,
'drop_urls' : [URL],
"}"
Example
{
"alias": "Alice",
"email": "alice@example.org",
"phone": "+49123456789012",
"public_key" : "feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308",
"drop_urls" : ["example.org/jkl"],
}
Export
The name of an exported contact file is “contact-[contactName].qco” where [contactName] is replaced by the name of the respective contact.