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 different 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 Name Key Data Type Default Value Null Indexed Comment
ID_TABLE_ID Primary INTEGER NOT NULL Yes AUTOINCREMENT
TABLE_NAME Unique VARCHAR(255) NOT NULL UNIQUE
NEXT_ID INTEGER NULL
QUANTITY INTEGER NULL

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 name key data type default value null indexed comment
PERMISSION_ID PRIMARY INTEGER AUTOINCREMENT
PERMISSION_NAME VARCHAR(99) NOT NULL UNIQUE
OBJECTDATA MEDIUMBLOB

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

TURBINE_ROLE

column name key data type default value null indexed comment
ROLE_ID PRIMARY INTEGER AUTO_INCREMENT
ROLE_NAME VARCHAR(99) NOT NULL UNIQUE
OBJECTDATA MEDIUMBLOB

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 name key data type default value null indexed comment
GROUP_ID PRIMARY INTEGER AUTOINCREMENT
GROUP_NAME VARCHAR(99) NOT NULL UNIQUE
OBJECTDATA MEDIUMBLOB

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 name key data type default value null indexed comment
ROLE_ID PRIMARY INTEGER NOT NULL Yes
PERMISSION_ID PRIMARY INTEGER NOT NULL Yes

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

TURBINE_USER

column name key data type default value null indexed comment
USER_ID PRIMARY INTEGER
LOGIN_NAME VARCHAR(32) NOT NULL UNIQUE
PASSWORD_VALUE VARCHAR(32) NOT NULL
FIRST_NAME VARCHAR(99) NOT NULL
LAST_NAME VARCHAR(99) NOT NULL
EMAIL VARCHAR(99) NOT NULL
CONFIRM_VALUE VARCHAR(32) NOT NULL
MODIFIED TIMESTAMP
CREATED DATETIME
LAST_LOGIN TIMESTAMP
OBJECTDATA MEDIUMBLOB

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

TURBINE_USER_GROUP_ROLE

column name key data type default value null indexed comment
USER_ID PRIMARY INTEGER
GROUP_ID PRIMARY INTEGER
ROLE_ID PRIMARY INTEGER

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

TURBINE_SCHEDULED_JOB

column name key data type default value null indexed comment
JOB_ID PRIMARY int(11) NOT NULL AUTO_INCREMENT
SECOND INTEGER -1 NOT NULL
MINUTE INTEGER -1 NOT NULL
HOUR INTEGER -1 NOT NULL
WEEK_DAY INTEGER -1 NOT NULL
DAY_OF_MONTH INTEGER -1 NOT NULL
TASK VARCHAR(99) NOT NULL
EMAIL VARCHAR(99) NULL
PROPERTY VARBINARY NULL