"comment":"Internal unique ID for the authentication server",
"type":"integer",
"options":{
"autoincrement":true,
"notnull":false
}
},
{
"name":"gu_name",
"comment":"Username.",
"type":"binary",
"options":{
"notnull":false,
"length":255
}
},
{
"name":"gu_enabled",
"comment":"Timestamp of creation of the global account (unused)",
"type":"binary",
"options":{
"notnull":true,
"length":14,
"default":"",
"fixed":true
}
},
{
"name":"gu_enabled_method",
"comment":"Method used to create the global account (unused)",
"type":"mwenum",
"options":{
"notnull":false,
"CustomSchemaOptions":{
"enum_values":[
"opt-in",
"batch",
"auto",
"admin"
]
}
}
},
{
"name":"gu_home_db",
"comment":"Local database name of the user's 'home' wiki. By default, the 'winner' of a migration check for old accounts or the account the user was first registered at for new ones. May be changed over time.",
"type":"binary",
"options":{
"notnull":false,
"length":255
}
},
{
"name":"gu_email",
"comment":"Registered email address, may be empty.",
"type":"binary",
"options":{
"notnull":false,
"length":255
}
},
{
"name":"gu_email_authenticated",
"comment":"Timestamp when the address was confirmed as belonging to the user. NULL if not confirmed.",
"type":"mwtimestamp",
"options":{
"notnull":false
}
},
{
"name":"gu_salt",
"comment":"Salt. For migrated passwords, the salt is the local user_id.",
"type":"binary",
"options":{
"notnull":false,
"length":16
}
},
{
"name":"gu_password",
"comment":"hashed password",
"type":"blob",
"options":{
"notnull":false,
"length":255
}
},
{
"name":"gu_locked",
"comment":"If true, this account cannot be used to log in on any wiki.",
"type":"mwtinyint",
"options":{
"notnull":true,
"length":1,
"default":0
}
},
{
"name":"gu_hidden",
"comment":"If true, this account should be hidden from most public user lists. Used for 'deleting' accounts without breaking referential integrity.",
"type":"binary",
"options":{
"notnull":true,
"length":255,
"default":""
}
},
{
"name":"gu_hidden_level",
"comment":"If true, this account should be hidden from most public user lists. Used for 'deleting' accounts without breaking referential integrity.",
"type":"integer",
"options":{
"notnull":true,
"default":0
}
},
{
"name":"gu_registration",
"comment":"Registration time",
"type":"mwtimestamp",
"options":{
"notnull":false
}
},
{
"name":"gu_password_reset_key",
"comment":"Random key for password resets",
"type":"blob",
"options":{
"notnull":false,
"length":255
}
},
{
"name":"gu_password_reset_expiration",
"type":"mwtimestamp",
"options":{
"notnull":false
}
},
{
"name":"gu_auth_token",
"comment":"Random key for crosswiki authentication tokens",
"type":"binary",
"options":{
"notnull":false,
"length":32
}
},
{
"name":"gu_cas_token",
"comment":"Value used for CAS operations",
"type":"integer",
"options":{
"notnull":true,
"unsigned":true,
"default":1
}
}
],
"indexes":[
{
"name":"gu_name",
"columns":[
"gu_name"
],
"unique":true
},
{
"name":"gu_email",
"columns":[
"gu_email"
],
"unique":false
},
{
"name":"gu_locked",
"columns":[
"gu_name",
"gu_locked"
],
"options":{
"lengths":[
255,
null
]
},
"unique":false
},
{
"name":"gu_hidden",
"columns":[
"gu_name",
"gu_hidden"
],
"options":{
"lengths":[
255,
255
]
},
"unique":false
},
{
"name":"gu_hidden_level",
"columns":[
"gu_name",
"gu_hidden_level"
],
"options":{
"lengths":[
255,
null
]
},
"unique":false
}
],
"pk":[
"gu_id"
]
},
"after":{
"name":"globaluser",
"comment":"Global account data.",
"columns":[
{
"name":"gu_id",
"comment":"Internal unique ID for the authentication server",
"type":"integer",
"options":{
"autoincrement":true,
"notnull":false
}
},
{
"name":"gu_name",
"comment":"Username.",
"type":"binary",
"options":{
"notnull":false,
"length":255
}
},
{
"name":"gu_home_db",
"comment":"Local database name of the user's 'home' wiki. By default, the 'winner' of a migration check for old accounts or the account the user was first registered at for new ones. May be changed over time.",
"type":"binary",
"options":{
"notnull":false,
"length":255
}
},
{
"name":"gu_email",
"comment":"Registered email address, may be empty.",
"type":"binary",
"options":{
"notnull":false,
"length":255
}
},
{
"name":"gu_email_authenticated",
"comment":"Timestamp when the address was confirmed as belonging to the user. NULL if not confirmed.",
"type":"mwtimestamp",
"options":{
"notnull":false
}
},
{
"name":"gu_salt",
"comment":"Salt. For migrated passwords, the salt is the local user_id.",
"type":"binary",
"options":{
"notnull":false,
"length":16
}
},
{
"name":"gu_password",
"comment":"hashed password",
"type":"blob",
"options":{
"notnull":false,
"length":255
}
},
{
"name":"gu_locked",
"comment":"If true, this account cannot be used to log in on any wiki.",
"type":"mwtinyint",
"options":{
"notnull":true,
"length":1,
"default":0
}
},
{
"name":"gu_hidden",
"comment":"If true, this account should be hidden from most public user lists. Used for 'deleting' accounts without breaking referential integrity.",
"type":"binary",
"options":{
"notnull":true,
"length":255,
"default":""
}
},
{
"name":"gu_hidden_level",
"comment":"If true, this account should be hidden from most public user lists. Used for 'deleting' accounts without breaking referential integrity.",
"type":"integer",
"options":{
"notnull":true,
"default":0
}
},
{
"name":"gu_registration",
"comment":"Registration time",
"type":"mwtimestamp",
"options":{
"notnull":false
}
},
{
"name":"gu_password_reset_key",
"comment":"Random key for password resets",
"type":"blob",
"options":{
"notnull":false,
"length":255
}
},
{
"name":"gu_password_reset_expiration",
"type":"mwtimestamp",
"options":{
"notnull":false
}
},
{
"name":"gu_auth_token",
"comment":"Random key for crosswiki authentication tokens",