models.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. import { Sequelize, DataTypes } from 'sequelize';
  2. // let SQLITE_PASS = process.env.SQLITE_PASS || 'some_long_elaborate_password';
  3. // export const sequelize = new Sequelize('dweebui', 'dweebui', SQLITE_PASS, {
  4. // dialect: 'sqlite',
  5. // dialectModulePath: '@journeyapps/sqlcipher',
  6. // storage: './database/database.sqlite',
  7. // logging: false,
  8. // });
  9. export const sequelize = new Sequelize({
  10. dialect: 'sqlite',
  11. storage: './database/database.sqlite',
  12. logging: false,
  13. });
  14. export const User = sequelize.define('User', {
  15. id: {
  16. type: DataTypes.INTEGER,
  17. autoIncrement: true,
  18. primaryKey: true
  19. },
  20. name: {
  21. type: DataTypes.STRING
  22. },
  23. username: {
  24. type: DataTypes.STRING,
  25. allowNull: false
  26. },
  27. email: {
  28. type: DataTypes.STRING,
  29. allowNull: false
  30. },
  31. password: {
  32. type: DataTypes.STRING,
  33. allowNull: false
  34. },
  35. role: {
  36. type: DataTypes.STRING
  37. },
  38. group: {
  39. type: DataTypes.STRING
  40. },
  41. avatar: {
  42. type: DataTypes.STRING
  43. },
  44. lastLogin: {
  45. type: DataTypes.STRING
  46. },
  47. UUID: {
  48. type: DataTypes.UUID,
  49. defaultValue: DataTypes.UUIDV4,
  50. }
  51. });
  52. export const Container = sequelize.define('Container', {
  53. id: {
  54. type: DataTypes.INTEGER,
  55. autoIncrement: true,
  56. primaryKey: true
  57. },
  58. name: {
  59. type: DataTypes.STRING,
  60. allowNull: false
  61. },
  62. visibility: {
  63. type: DataTypes.STRING
  64. },
  65. size: {
  66. type: DataTypes.STRING
  67. },
  68. group: {
  69. type: DataTypes.STRING
  70. }
  71. });
  72. export const Permission = sequelize.define('Permission', {
  73. id: {
  74. type: DataTypes.INTEGER,
  75. autoIncrement: true,
  76. primaryKey: true
  77. },
  78. containerName: {
  79. type: DataTypes.STRING,
  80. allowNull: false
  81. },
  82. containerID: {
  83. type: DataTypes.STRING,
  84. allowNull: false
  85. },
  86. user: {
  87. type: DataTypes.STRING,
  88. allowNull: false
  89. },
  90. userID: {
  91. type: DataTypes.STRING,
  92. allowNull: false
  93. },
  94. install: {
  95. type: DataTypes.STRING,
  96. },
  97. uninstall: {
  98. type: DataTypes.STRING
  99. },
  100. edit: {
  101. type: DataTypes.STRING
  102. },
  103. upgrade: {
  104. type: DataTypes.STRING
  105. },
  106. start: {
  107. type: DataTypes.STRING
  108. },
  109. stop: {
  110. type: DataTypes.STRING
  111. },
  112. restart: {
  113. type: DataTypes.STRING
  114. },
  115. pause: {
  116. type: DataTypes.STRING
  117. },
  118. logs: {
  119. type: DataTypes.STRING
  120. },
  121. hide: {
  122. type: DataTypes.STRING
  123. },
  124. view: {
  125. type: DataTypes.STRING
  126. },
  127. reset_view: {
  128. type: DataTypes.STRING
  129. },
  130. });
  131. export const Syslog = sequelize.define('Syslog', {
  132. id: {
  133. type: DataTypes.INTEGER,
  134. autoIncrement: true,
  135. primaryKey: true
  136. },
  137. user: {
  138. type: DataTypes.STRING
  139. },
  140. email: {
  141. type: DataTypes.STRING
  142. },
  143. event: {
  144. type: DataTypes.STRING,
  145. allowNull: false
  146. },
  147. message: {
  148. type: DataTypes.STRING,
  149. allowNull: false
  150. },
  151. ip : {
  152. type: DataTypes.STRING
  153. },
  154. });