Turbine and Torque

This document is for the DBSecurityService. If you look for documentation about the schema for the TorqueSecurityService or the Scheduler Service, please look at the Torque Report.

Turbine Schema

The naming scheme is that the Turbine specific tables are prefixed with "TURBINE_". This is to avoid name collisions with applications for common tables such as PERMISSION or ROLE and also to avoid name collisions with reserved keywords in differant databases.

  • TURBINE_PERMISSION
  • TURBINE_ROLE
  • TURBINE_GROUP
  • TURBINE_ROLE_PERMISSION
  • TURBINE_USER
  • TURBINE_USER_GROUP_ROLE
  • TURBINE_SCHEDULED_JOB
  • ID_TABLE

Relationships

TURBINE_USER  -|------o-< TURBINE_USER_GROUP_ROLE
TURBINE_ROLE  -|------o-< TURBINE_USER_GROUP_ROLE
TURBINE_GROUP -|------o-< TURBINE_USER_GROUP_ROLE
TURBINE_ROLE  -|------o-< TURBINE_ROLE_PERMISSION
TURBINE_PERMISSION -|------o-< TURBINE_ROLE_PERMISSION

Table Schemas

The data-types represented below are for the MySQL database. For other database specific data-types check the .sql scripts in the src/sql directory of the Turbine distribution.

ID_TABLE

Column NameKeyData TypeDefault ValueNullIndexedComment
ID_TABLE_IDPrimaryINTEGERNOT NULLYesAUTOINCREMENT
TABLE_NAMEUniqueVARCHAR(255)NOT NULLUNIQUE
NEXT_IDINTEGERNULL
QUANTITYINTEGERNULL

The ID_TABLE carries the information for the next ID number in the specified tables. This table is useful when the database being used has no data-type which carries out auto-increment operations.

TURBINE_PERMISSION

column namekeydata typedefault valuenullindexedcomment
PERMISSION_IDPRIMARYINTEGERAUTOINCREMENT
PERMISSION_NAMEVARCHAR(99)NOT NULLUNIQUE
OBJECTDATAMEDIUMBLOB

The TURBINE_PERMISSION table stores the lowest level of permissions allowed for a Turbine User.

TURBINE_ROLE

column namekeydata typedefault valuenullindexedcomment
ROLE_IDPRIMARYINTEGERAUTO_INCREMENT
ROLE_NAMEVARCHAR(99)NOT NULLUNIQUE
OBJECTDATAMEDIUMBLOB

The TURBINE_ROLE table links a Turbine User to a span of permissions. Potentially a Turbine User can have many roles within the system. In this case a role represents a descriptive word for a series of permissions or actions the Turbine User is able to undertake.

TURBINE_GROUP

column namekeydata typedefault valuenullindexedcomment
GROUP_IDPRIMARYINTEGERAUTOINCREMENT
GROUP_NAMEVARCHAR(99)NOT NULLUNIQUE
OBJECTDATAMEDIUMBLOB

The TURBINE_GROUP table allows for a series of roles and Turbine Users to be connected under a Group ID and hence Group Name. For instance there may be a group named Administrators with the necessary roles and permissions. There may also be many Administrators on the system. The Group table and it's relationship with the TURBINE_USER_GROUP_ROLE table maps this functionality.

TURBINE_ROLE_PERMISSION

column namekeydata typedefault valuenullindexedcomment
ROLE_IDPRIMARYINTEGERNOT NULLYes
PERMISSION_IDPRIMARYINTEGERNOT NULLYes

The TURBINE_ROLE_PERMISSION table is a bridging table between TURBINE_ROLE and TURBINE_PERMISSION that allows a several differant roles to make use of the same permission.

TURBINE_USER

column namekeydata typedefault valuenullindexedcomment
USER_IDPRIMARYINTEGER
LOGIN_NAMEVARCHAR(32)NOT NULLUNIQUE
PASSWORD_VALUEVARCHAR(32)NOT NULL
FIRST_NAMEVARCHAR(99)NOT NULL
LAST_NAMEVARCHAR(99)NOT NULL
EMAILVARCHAR(99)NOT NULL
CONFIRM_VALUEVARCHAR(32)NOT NULL
MODIFIEDTIMESTAMP
CREATEDDATETIME
LAST_LOGINTIMESTAMP
OBJECTDATAMEDIUMBLOB

The TURBINE_USER table describes the basic information on the user in the system.

TURBINE_USER_GROUP_ROLE

column namekeydata typedefault valuenullindexedcomment
USER_IDPRIMARYINTEGER
GROUP_IDPRIMARYINTEGER
ROLE_IDPRIMARYINTEGER

The TURBINE_USER_GROUP_ROLE describes what roles a given user has as a member of a given group.

TURBINE_SCHEDULED_JOB

column namekeydata typedefault valuenullindexedcomment
JOB_IDPRIMARYint(11)NOT NULLAUTO_INCREMENT
SECONDINTEGER-1NOT NULL
MINUTEINTEGER-1NOT NULL
HOURINTEGER-1NOT NULL
WEEK_DAYINTEGER-1NOT NULL
DAY_OF_MONTHINTEGER-1NOT NULL
TASKVARCHAR(99)NOT NULL
EMAILVARCHAR(99)NULL
PROPERTYVARBINARYNULL