summaryrefslogtreecommitdiff
path: root/src/routers/vault/models/vault
diff options
context:
space:
mode:
Diffstat (limited to 'src/routers/vault/models/vault')
-rw-r--r--src/routers/vault/models/vault/account_log.js49
-rw-r--r--src/routers/vault/models/vault/claimed_game_accounts.js22
-rw-r--r--src/routers/vault/models/vault/claimed_legacy_accounts.js22
-rw-r--r--src/routers/vault/models/vault/identity.js36
-rw-r--r--src/routers/vault/models/vault/identity_log.js47
-rw-r--r--src/routers/vault/models/vault/login.js31
-rw-r--r--src/routers/vault/models/vault/login_log.js45
-rw-r--r--src/routers/vault/models/vault/migration_log.js35
8 files changed, 287 insertions, 0 deletions
diff --git a/src/routers/vault/models/vault/account_log.js b/src/routers/vault/models/vault/account_log.js
new file mode 100644
index 0000000..1f8b05b
--- /dev/null
+++ b/src/routers/vault/models/vault/account_log.js
@@ -0,0 +1,49 @@
+const Sequelize = require("sequelize"); // from npm registry
+
+module.exports = {
+ fields: {
+ id: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ primaryKey: true,
+ autoIncrement: true,
+ allowNull: false,
+ },
+ vaultId: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ allowNull: false,
+ },
+ accountType: {
+ type: Sequelize.ENUM("EVOL", "LEGACY", "FORUMS", "WIKI"),
+ allowNull: false,
+ },
+ accountId: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ allowNull: false,
+ },
+ actionType: {
+ type: Sequelize.ENUM("CREATE", "DELETE", "LINK", "UNLINK", "UPDATE"),
+ allowNull: false,
+ defaultValue: "CREATE",
+ },
+ details: {
+ type: Sequelize.STRING,
+ allowNull: true,
+ },
+ ip: {
+ type: "VARBINARY(16)",
+ allowNull: false,
+ },
+ date: {
+ type: Sequelize.DATE,
+ allowNull: false,
+ defaultValue: Sequelize.NOW,
+ },
+ },
+ options: {
+ indexes: [
+ { fields: ["vault_id"] },
+ { fields: ["account_id"] },
+ { fields: ["ip"] },
+ ]
+ }
+};
diff --git a/src/routers/vault/models/vault/claimed_game_accounts.js b/src/routers/vault/models/vault/claimed_game_accounts.js
new file mode 100644
index 0000000..743376d
--- /dev/null
+++ b/src/routers/vault/models/vault/claimed_game_accounts.js
@@ -0,0 +1,22 @@
+const Sequelize = require("sequelize"); // from npm registry
+
+module.exports = {
+ fields: {
+ accountId: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ allowNull: false,
+ primaryKey: true,
+ },
+ vaultId: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ allowNull: false,
+ },
+ },
+ options: {
+ indexes: [
+ {
+ fields: ["vault_id"], // BUG: {underscored: true} does not work on indexes
+ },
+ ]
+ }
+};
diff --git a/src/routers/vault/models/vault/claimed_legacy_accounts.js b/src/routers/vault/models/vault/claimed_legacy_accounts.js
new file mode 100644
index 0000000..743376d
--- /dev/null
+++ b/src/routers/vault/models/vault/claimed_legacy_accounts.js
@@ -0,0 +1,22 @@
+const Sequelize = require("sequelize"); // from npm registry
+
+module.exports = {
+ fields: {
+ accountId: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ allowNull: false,
+ primaryKey: true,
+ },
+ vaultId: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ allowNull: false,
+ },
+ },
+ options: {
+ indexes: [
+ {
+ fields: ["vault_id"], // BUG: {underscored: true} does not work on indexes
+ },
+ ]
+ }
+};
diff --git a/src/routers/vault/models/vault/identity.js b/src/routers/vault/models/vault/identity.js
new file mode 100644
index 0000000..e10970f
--- /dev/null
+++ b/src/routers/vault/models/vault/identity.js
@@ -0,0 +1,36 @@
+const Sequelize = require("sequelize"); // from npm registry
+
+module.exports = {
+ fields: {
+ id: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ primaryKey: true,
+ autoIncrement: true,
+ allowNull: false,
+ },
+ userId: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ allowNull: false,
+ },
+ email: {
+ type: Sequelize.STRING(320),
+ allowNull: false,
+ },
+ addedDate: {
+ type: Sequelize.DATE,
+ allowNull: false,
+ defaultValue: Sequelize.NOW,
+ },
+ },
+ options: {
+ indexes: [
+ {
+ fields: ["user_id"], // BUG: table option {underscored: true} does not work on indexes
+ },
+ {
+ fields: ["email"],
+ unique: true,
+ }
+ ]
+ }
+};
diff --git a/src/routers/vault/models/vault/identity_log.js b/src/routers/vault/models/vault/identity_log.js
new file mode 100644
index 0000000..4e881f1
--- /dev/null
+++ b/src/routers/vault/models/vault/identity_log.js
@@ -0,0 +1,47 @@
+const Sequelize = require("sequelize"); // from npm registry
+
+module.exports = {
+ fields: {
+ id: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ primaryKey: true,
+ autoIncrement: true,
+ allowNull: false,
+ },
+ userId: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ allowNull: false,
+ },
+ identityId: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ allowNull: false,
+ },
+ action: {
+ type: Sequelize.ENUM("ADD", "REMOVE"),
+ allowNull: false,
+ defaultValue: "ADD",
+ },
+ ip: {
+ type: "VARBINARY(16)",
+ allowNull: false,
+ },
+ date: {
+ type: Sequelize.DATE,
+ allowNull: false,
+ defaultValue: Sequelize.NOW,
+ },
+ },
+ options: {
+ indexes: [
+ {
+ fields: ["user_id"], // BUG: {underscored: true} does not work on indexes
+ },
+ {
+ fields: ["identity_id"], // BUG: {underscored: true} does not work on indexes
+ },
+ {
+ fields: ["ip"],
+ }
+ ]
+ }
+};
diff --git a/src/routers/vault/models/vault/login.js b/src/routers/vault/models/vault/login.js
new file mode 100644
index 0000000..1c9c51e
--- /dev/null
+++ b/src/routers/vault/models/vault/login.js
@@ -0,0 +1,31 @@
+const Sequelize = require("sequelize"); // from npm registry
+
+module.exports = {
+ fields: {
+ id: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ primaryKey: true,
+ autoIncrement: true,
+ allowNull: false,
+ },
+ primaryIdentity: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ allowNull: true,
+ },
+ allowNonPrimary: {
+ type: Sequelize.BOOLEAN,
+ defaultValue: true,
+ allowNull: false,
+ },
+ creationDate: {
+ type: Sequelize.DATE,
+ allowNull: false,
+ defaultValue: Sequelize.NOW,
+ },
+ state: {
+ type: Sequelize.ENUM("OK", "BANNED"),
+ allowNull: false,
+ defaultValue: "OK",
+ },
+ }
+};
diff --git a/src/routers/vault/models/vault/login_log.js b/src/routers/vault/models/vault/login_log.js
new file mode 100644
index 0000000..5f42469
--- /dev/null
+++ b/src/routers/vault/models/vault/login_log.js
@@ -0,0 +1,45 @@
+const Sequelize = require("sequelize"); // from npm registry
+
+// NOTE: to get the ip, use something like
+// select *, INET6_NTOA(ip) as ip_ from vault.login_log;
+// and to search by ip use something like
+// select * from vault.login_log where ip = INET6_ATON("ip addr");
+
+module.exports = {
+ fields: {
+ id: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ primaryKey: true,
+ autoIncrement: true,
+ allowNull: false,
+ },
+ userId: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ allowNull: false,
+ },
+ action: {
+ type: Sequelize.ENUM("LOGIN", "LOGOUT", "CREATE"),
+ allowNull: false,
+ defaultValue: "LOGIN",
+ },
+ ip: {
+ type: "VARBINARY(16)",
+ allowNull: false,
+ },
+ date: {
+ type: Sequelize.DATE,
+ allowNull: false,
+ defaultValue: Sequelize.NOW,
+ },
+ },
+ options: {
+ indexes: [
+ {
+ fields: ["user_id"], // BUG: {underscored: true} does not work on indexes
+ },
+ {
+ fields: ["ip"],
+ }
+ ]
+ }
+};
diff --git a/src/routers/vault/models/vault/migration_log.js b/src/routers/vault/models/vault/migration_log.js
new file mode 100644
index 0000000..5b2e651
--- /dev/null
+++ b/src/routers/vault/models/vault/migration_log.js
@@ -0,0 +1,35 @@
+const Sequelize = require("sequelize"); // from npm registry
+
+module.exports = {
+ fields: {
+ legacyId: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ primaryKey: true,
+ allowNull: false,
+ },
+ accountId: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ allowNull: false,
+ },
+ vaultId: {
+ type: Sequelize.INTEGER.UNSIGNED,
+ allowNull: false,
+ },
+ ip: {
+ type: "VARBINARY(16)",
+ allowNull: false,
+ },
+ date: {
+ type: Sequelize.DATE,
+ allowNull: false,
+ defaultValue: Sequelize.NOW,
+ },
+ },
+ options: {
+ indexes: [
+ { fields: ["vault_id"] },
+ { fields: ["account_id"] },
+ { fields: ["ip"] },
+ ]
+ }
+};