-
Notifications
You must be signed in to change notification settings - Fork 16
Database Schema
Koong Kyungmi edited this page Dec 31, 2015
·
1 revision
For Managing memberships and ACL
User accounts
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| user_id | PK | NN | VARCHAR | 32 | |
| UQ | VARCHAR | 255 | email address | ||
| password | VARCHAR | 255 | password for login (SHA-256) | ||
| name | VARCHAR | 128 | user name | ||
| company | VARCHAR | 128 | Deprecated: Not used | ||
| telephone | VARCHAR | 32 | Deprecated: Not used | ||
| department | VARCHAR | 128 | Deprecated: Not used | ||
| url | VARCHAR | 255 | Deprecated: Not used | ||
| location | TEXT | Deprecated: Not used | |||
| gravatar | VARCHAR | 255 | gravatar account email address, Deprecated: Not used | ||
| act_key | UQ | VARCHAR | 255 | account activation key | |
| status | TINYINT | 1 | 0=pending, 1=approved, 2=rejected, 3=password reset | ||
| type | TINYINT | 1 | 0=user, 1=admin | ||
| uid | UQ | INT UNSIGNED | Deprecated: replace with user_id | ||
| last_login_time | DATETIME | last login time | |||
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
Groups (Not used now)
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| group_id | PK | NN | VARCHAR | 32 | |
| name | VARCHAR | 255 | |||
| owner_id | FK | VARCHAR | 32 | owner user id (mem_user.user_id) | |
| user_data | TEXT | ||||
| gid | INT UNSIGNED | Deprecated: replace with group_id | |||
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
Relations with group and user (Not used now)
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| group_id | PK | NN | VARCHAR | 32 | |
| user_id | PK | NN | VARCHAR | 32 | |
| create_time | DATETIME | creation time |
Subjects for ACL
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| subject_id | PK | NN | VARCHAR | 32 | same with user_id or group_id |
| type | NN | CHAR | 1 | 'u'=user, 'g'=group | |
| uid | INT UNSIGNED | Deprecated: replace with user_id or group_id | |||
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
Policies for ACL
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| policy_id | PK | NN | VARCHAR | 32 | |
| name | VARCHAR | 255 | policy name | ||
| owner_id | FK | NN | VARCHAR | 32 | owner user id (mem_user.user_id) |
| effect | VARCHAR | 8 | 'allow' or 'deny' | ||
| action | TEXT | json to represent actions | |||
| resource | TEXT | json to represent target resources | |||
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
Relations with policy and subject
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| policy_id | PK | NN | VARCHAR | 32 | |
| subject_id | PK | NN | VARCHAR | 32 | |
| create_time | DATETIME | creation time |
Temporary key to modify password
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| key_id | PK | NN | VARCHAR | 32 | |
| user_id | FK | VARCHAR | 32 | ||
| key | VARCHAR | 255 | |||
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
For webida's extra features
Deployed app created by webida deploy service
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| app_id | PK | NN | VARCHAR | 32 | |
| key | VARCHAR | 255 | Deprecated: replace with app_id | ||
| name | NN | VARCHAR | 255 | ||
| domain | VARCHAR | 255 | sub domain or sub path to access to deployed app | ||
| type | VARCHAR | 8 | 'html' or 'nodejs' | ||
| process_id | INT | ||||
| port | INT | ||||
| desc | TEXT | description | |||
| owner_id | FK | VARCHAR | 32 | owner user id (mem_user.user_id) | |
| source_url | VARCHAR | 255 | url to source (e.g. git address - deployFromGit()) | ||
| is_deployed | TINYINT | 1 | 0=not deployed, 1=deployed | ||
| status | VARCHAR | 8 | 'running' or 'stop' | ||
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
Key store files that support mobile developement
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| key_store_id | PK | NN | VARCHAR | 32 | |
| wfs_id | FK | VARCHAR | 32 | wfs id (fs_wfs.wfs_id) | |
| user_id | FK | VARCHAR | 32 | owner user id (mem_user.user_id) | |
| alias | VARCHAR | 255 | |||
| file_name | VARCHAR | 255 | |||
| key_password | VARCHAR | 255 | |||
| key_store_password | VARCHAR | 255 | |||
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
GCM informations that supoort mobile development
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| gcm_info_id | PK | NN | VARCHAR | 32 | |
| user_id | FK | VARCHAR | 32 | owner user id (mem_user.user_id) | |
| reg_id | VARCHAR | 255 | registration id | ||
| info | VARCHAR | 255 | |||
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
For oauth feature
Clients for OAuth
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| client_id | PK | NN | VARCHAR | 32 | |
| name | VARCHAR | 255 | client name | ||
| oauth_client_id | VARCHAR | 255 | client id | ||
| oauth_client_secret | VARCHAR | 255 | client secret (Not used) | ||
| is_system | TINYINT | 1 | 0=client, 1=system client | ||
| redirect_url | VARCHAR | 255 | redirect url after authentication | ||
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
Codes for OAuth's code grant authentication (Not used now)
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| code_id | PK | NN | VARCHAR | 32 | |
| code | VARCHAR | 255 | code | ||
| oauth_client_id | VARCHAR | 255 | client id | ||
| redirect_url | VARCHAR | 255 | redirect url | ||
| user_id | FK | VARCHAR | 32 | owner user id (mem_user.user_id) | |
| expire_time | DATETIME | expiration time | |||
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
Tokens for OAuth
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| token_id | PK | NN | VARCHAR | 32 | |
| token | VARCHAR | 255 | token string | ||
| user_id | FK | VARCHAR | 32 | owner user id (mem_user.user_id) | |
| oauth_client_id | VARCHAR | 255 | Deprecated: Only write, no read | ||
| validity_period | INT | 0=infinite, n>0=period in sec | |||
| expire_time | DATETIME | expration time | |||
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
For webida's fs services
Short names for each paths to some directory
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| alias_id | PK | NN | VARCHAR | 32 | |
| key | NN | VARCHAR | 255 | alias name used in url (same with alias_id) | |
| url | VARCHAR | 255 | acccessable url | ||
| wfs_id | FK | VARCHAR | 32 | wfs id (fs_wfs.wfs_id) | |
| path | VARCHAR | 255 | path to source in wfs | ||
| owner_id | FK | VARCHAR | 32 | owner user id (mem_user.user_id) | |
| validity_period | INT | 0=infinite, n>0=period in sec | |||
| expire_time | DATETIME | expiration time | |||
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
Temporary link for downloading (only for UIP)
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| download_link_id | PK | NN | VARCHAR | 32 | |
| key | VARCHAR | 255 | |||
| wfs_id | FK | VARCHAR | 32 | wfs id (fs_wfs.wfs_id) | |
| path | VARCHAR | 255 | |||
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
File locks
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| lock_id | PK | NN | VARCHAR | 32 | |
| user_id | FK | VARCHAR | 32 | user id (mem_user.user_id) | |
| VARCHAR | 255 | user email address. | |||
| wfs_id | FK | VARCHAR | 32 | wfs id (fs_wfs.wfs_id) | |
| path | VARCHAR | 255 | path to the lock file | ||
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
Webida file systems information
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| wfs_id | PK | NN | VARCHAR | 32 | |
| key | VARCHAR | 255 | used by wfs root directory name (same with wfs_id) | ||
| owner_id | FK | VARCHAR | 32 | owner user id (mem_user.user_id) | |
| create_time | DATETIME | creation time | |||
| update_time | DATETIME | last modified time |
Webida file systems removed
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| wfs_id | PK | NN | VARCHAR | 32 | |
| key | VARCHAR | 255 | used by wfs root directory name (same with wfs_id) | ||
| owner_id | VARCHAR | 32 | owner user id (mem_user.user_id) - might be removed already | ||
| delete_time | DATETIME | deleted time |
Sequences ids for some tables
Currently, there are 3 spaces to be managed:
- guestid: for guest id (only used when guest mode is on)
- uid: for mem_user.uid or mem_group.gid (Deprecated)
- projectid: project id for XFS (only created when using XFS file system)
| Column | Key | Null | Type | Length | Description |
|---|---|---|---|---|---|
| space | PK | NN | VARCHAR | 32 | space name for detecting sequence type |
| current_seq | INT UNSIGNED | current sequence number | |||
| max_seq | INT UNSIGNED | max value of sequence number (default: 4294967295) | |||
| create_time | DATETIME | creation time |