BASE should be able to handle multiple simultaneous logins, sessions,
to a single user account. One session must not interfere with another
one.
[WEB CLIENT] The web client should be able to handle multiple logins
to the same account or to different accounts from the same browser on
a single workstation.
A client application should be able to store configuration settings
in BASE at three levels:
Session: the setting is only valid within the session. For example,
the sort order of a list of items. Once the session is finished all
session settings are lost.
User: the setting is valid for a specific user account. For example,
the font size on the web pages.
Default: the setting is valid for all user accounts that
doesn't override it with their own value.
BASE may define settings that can be of general interest for several
client applications. The meaning and use of such settings should be
specified in some documentation. A client application may choose to ignore
those settings.
[NOTE] We have decided to not specify
any settings of this type at the moment. However we reserve all names
starting with global. for future use for such settings.
All settings are read from the database at login time, and are kept in
memory until the session is finished (ie. the user logs out). Settings
that have changed are then saved to the database.
A setting is a string value identified by a name, which is also a
string. The name must be unique for each type of setting.
[QUESTION] Or, should we use numeric keys and define constants in
the core and applications?
[ANSWER] No, it would only be cumbersome to handle.
[QUESTION] Do we need more powerful structures for storing settings?
[ANSWER] No, not at the moment.