Directory Layer: Database Backend

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another member of the Core Development Team before making changes.

Summary

The Directory layer (or module) is involved in managing, storing and processing descriptive data about users and Workplaces on the system.

This Database backend provides access to a database sink which will store Directory data. It will have the ability to connect to a variety of Database Management Systems.

Scope

The scope of this specification is to provide a database storage mechanism for all user and Workplace details.

Design

The Database structure will be as follows (with sample data):

version table:

version
0.1

users table:

userID userName firstName lastName password email
1 jdeal John Deal p$bxKeN542883a2821df61576c926882908fcdfd jdeal@yahoo.com
2 bdeal Bill Deal LNhymMjc3d2fc3ada2ef0818504797c353e4f19b bdeal@yahoo.com
3699 ndeal Nancy Deal jHpWz3906e40db4be8dbe13258b8044b3e58011e ndeal@yahoo.com

The password field stores an MD5 hash of the user's password.

workplaces table:

workplaceID workplaceName workplaceDesc createdOn createdBy installedUtilities
1 jdeal_1 1stjdealworkplace. 1317559633 NULL Files

The createdOn field stores the time the Workplace was created in UNIX time. The installedUtilities field stores the unique identifier name of each Utility which the Workplace uses. This unique identifier name must be declared in each Utility's code.

subscriptions table:

subscriptionID userID workplaceID rolesID
1 1 1 NULL
2 2 1 NULL
3 3699 1 NULL

RoleTypes and roles tables will be implemented in future revisions.

RoleTypes will be Project Manager, Member, and Guest. RolePrivileges will be as follows:

  • Read
  • Write
  • Edit (i.e. the privilege to edit another person's data)
  • Delete (i.e. the privilege to delete another person's data)

Implementation

Support for multiple database storage systems will be added including SQLite and MySQL (Community Edition).

The SQLite implementation will be embedded in the Mira Server binary and will not require any special library support in the Linux environment.

The MySQL implementation will require a MySQL server installation of version 5.1 or greater. For Linux systems, it is highly recommended that the distribution's version is installed. The MySQL client is required for the initial creation of the Mira Groupware database. For Ubuntu 10.04, the required packages are (dependent packages are not listed):

  • mysql-server
  • mysql-client

This layer will form a core part of mira-server package.

 
development/blueprints/layers/directory/database.txt · Last modified: 2011/10/09 16:48 by j_k9
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki