models.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. import { Sequelize, DataTypes } from 'sequelize';
  2. export const sequelize = new Sequelize({
  3. dialect: 'sqlite',
  4. storage: './database/db.sqlite',
  5. logging: false,
  6. });
  7. export const User = sequelize.define('User', {
  8. id: {
  9. type: DataTypes.INTEGER,
  10. autoIncrement: true,
  11. primaryKey: true
  12. },
  13. name: {
  14. type: DataTypes.STRING
  15. },
  16. userID: {
  17. type: DataTypes.UUID,
  18. defaultValue: DataTypes.UUIDV4,
  19. },
  20. username: {
  21. type: DataTypes.STRING,
  22. allowNull: false
  23. },
  24. email: {
  25. type: DataTypes.STRING,
  26. allowNull: false
  27. },
  28. password: {
  29. type: DataTypes.STRING,
  30. allowNull: false
  31. },
  32. role: {
  33. type: DataTypes.STRING
  34. },
  35. group: {
  36. type: DataTypes.STRING
  37. },
  38. avatar: {
  39. type: DataTypes.STRING
  40. },
  41. lastLogin: {
  42. type: DataTypes.STRING
  43. }
  44. });
  45. export const Container = sequelize.define('Container', {
  46. id: {
  47. type: DataTypes.INTEGER,
  48. autoIncrement: true,
  49. primaryKey: true
  50. },
  51. name: {
  52. type: DataTypes.STRING,
  53. allowNull: false
  54. },
  55. visibility: {
  56. type: DataTypes.STRING
  57. },
  58. service: {
  59. type: DataTypes.STRING
  60. },
  61. state: {
  62. type: DataTypes.STRING
  63. },
  64. image: {
  65. type: DataTypes.STRING
  66. },
  67. external_port: {
  68. type: DataTypes.STRING
  69. },
  70. internal_port: {
  71. type: DataTypes.STRING
  72. },
  73. ports: {
  74. type: DataTypes.STRING
  75. },
  76. volumes: {
  77. type: DataTypes.STRING
  78. },
  79. environment_variables: {
  80. type: DataTypes.STRING
  81. },
  82. labels: {
  83. type: DataTypes.STRING
  84. },
  85. IPv4: {
  86. type: DataTypes.STRING
  87. },
  88. style: {
  89. type: DataTypes.STRING
  90. },
  91. cpu: {
  92. // stores the last 15 values from dockerContainerStats
  93. type: DataTypes.STRING
  94. },
  95. ram: {
  96. // stores the last 15 values from dockerContainerStats
  97. type: DataTypes.STRING
  98. },
  99. });
  100. export const Permission = sequelize.define('Permission', {
  101. id: {
  102. type: DataTypes.INTEGER,
  103. autoIncrement: true,
  104. primaryKey: true
  105. },
  106. containerName: {
  107. type: DataTypes.STRING,
  108. },
  109. containerID: {
  110. type: DataTypes.STRING,
  111. },
  112. username: {
  113. type: DataTypes.STRING,
  114. allowNull: false
  115. },
  116. userID: {
  117. type: DataTypes.STRING,
  118. allowNull: false
  119. },
  120. install: {
  121. type: DataTypes.STRING,
  122. defaultValue: false
  123. },
  124. uninstall: {
  125. type: DataTypes.STRING,
  126. defaultValue: false
  127. },
  128. edit: {
  129. type: DataTypes.STRING,
  130. defaultValue: false
  131. },
  132. upgrade: {
  133. type: DataTypes.STRING,
  134. defaultValue: false
  135. },
  136. start: {
  137. type: DataTypes.STRING,
  138. defaultValue: false
  139. },
  140. stop: {
  141. type: DataTypes.STRING,
  142. defaultValue: false
  143. },
  144. restart: {
  145. type: DataTypes.STRING,
  146. defaultValue: false
  147. },
  148. pause: {
  149. type: DataTypes.STRING,
  150. defaultValue: false
  151. },
  152. logs: {
  153. type: DataTypes.STRING,
  154. defaultValue: false
  155. },
  156. hide: {
  157. type: DataTypes.STRING,
  158. defaultValue: false
  159. },
  160. reset_view: {
  161. type: DataTypes.STRING,
  162. defaultValue: false
  163. },
  164. view: {
  165. type: DataTypes.STRING,
  166. defaultValue: false
  167. },
  168. });
  169. export const Syslog = sequelize.define('Syslog', {
  170. id: {
  171. type: DataTypes.INTEGER,
  172. autoIncrement: true,
  173. primaryKey: true
  174. },
  175. user: {
  176. type: DataTypes.STRING
  177. },
  178. email: {
  179. type: DataTypes.STRING
  180. },
  181. event: {
  182. type: DataTypes.STRING,
  183. allowNull: false
  184. },
  185. message: {
  186. type: DataTypes.STRING,
  187. allowNull: false
  188. },
  189. ip : {
  190. type: DataTypes.STRING
  191. },
  192. });
  193. export const Notification = sequelize.define('Notification', {
  194. id: {
  195. type: DataTypes.INTEGER,
  196. autoIncrement: true,
  197. primaryKey: true
  198. },
  199. title: {
  200. type: DataTypes.STRING
  201. },
  202. message: {
  203. type: DataTypes.STRING
  204. },
  205. icon: {
  206. type: DataTypes.STRING,
  207. },
  208. color: {
  209. type: DataTypes.STRING,
  210. },
  211. read: {
  212. type: DataTypes.STRING,
  213. },
  214. createdAt : {
  215. type: DataTypes.STRING
  216. },
  217. createdBy : {
  218. type: DataTypes.STRING
  219. },
  220. });
  221. export const ServerSettings = sequelize.define('ServerSettings', {
  222. id: {
  223. type: DataTypes.INTEGER,
  224. autoIncrement: true,
  225. primaryKey: true
  226. },
  227. key: {
  228. type: DataTypes.STRING,
  229. allowNull: false
  230. },
  231. value: {
  232. type: DataTypes.STRING,
  233. allowNull: true
  234. }
  235. });
  236. export const UserSettings = sequelize.define('UserSettings', {
  237. id: {
  238. type: DataTypes.INTEGER,
  239. autoIncrement: true,
  240. primaryKey: true
  241. },
  242. userID: {
  243. type: DataTypes.STRING,
  244. allowNull: false
  245. },
  246. key: {
  247. type: DataTypes.STRING,
  248. allowNull: false
  249. },
  250. value: {
  251. type: DataTypes.STRING,
  252. allowNull: false
  253. }
  254. });
  255. export const Variables = sequelize.define('Variables', {
  256. find: {
  257. type: DataTypes.STRING,
  258. },
  259. replace: {
  260. type: DataTypes.STRING,
  261. }
  262. });