@rakay-technology/kraft 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (504) hide show
  1. package/README.md +263 -0
  2. package/dist/bare-HL2GUYE2.js +27 -0
  3. package/dist/bowser-HNOTPGJO.js +2825 -0
  4. package/dist/chunk-3CJLKL6E.js +124 -0
  5. package/dist/chunk-3NQQXMDR.js +2098 -0
  6. package/dist/chunk-42WQABXM.js +439 -0
  7. package/dist/chunk-5GPXMTE4.js +25 -0
  8. package/dist/chunk-AJ4QZLZ2.js +1069 -0
  9. package/dist/chunk-AO252K7Z.js +137 -0
  10. package/dist/chunk-BQMFIXHI.js +975 -0
  11. package/dist/chunk-DM3PKWDC.js +2453 -0
  12. package/dist/chunk-DOD2BXHQ.js +1364 -0
  13. package/dist/chunk-DRK3MEDS.js +2870 -0
  14. package/dist/chunk-EW4PHKB2.js +13914 -0
  15. package/dist/chunk-HMJUFZK7.js +340 -0
  16. package/dist/chunk-I2TOOF2A.js +517 -0
  17. package/dist/chunk-I3DPMTSF.js +29 -0
  18. package/dist/chunk-JSCZT76F.js +2588 -0
  19. package/dist/chunk-MNV2QFHW.js +138 -0
  20. package/dist/chunk-MOLPYPVH.js +2529 -0
  21. package/dist/chunk-N4OALTFK.js +295 -0
  22. package/dist/chunk-OFXBNFNL.js +458 -0
  23. package/dist/chunk-ONKEYSMY.js +1388 -0
  24. package/dist/chunk-PDW4L3NV.js +17 -0
  25. package/dist/chunk-PNNXWA2A.js +1947 -0
  26. package/dist/chunk-PNRPKRJU.js +11105 -0
  27. package/dist/chunk-PVOWHIND.js +26781 -0
  28. package/dist/chunk-PXKCZB2I.js +46 -0
  29. package/dist/chunk-PZVKPCKE.js +475 -0
  30. package/dist/chunk-QWHBRY2K.js +4945 -0
  31. package/dist/chunk-RFOBMHQ7.js +338 -0
  32. package/dist/chunk-RHLNVZMS.js +28 -0
  33. package/dist/chunk-RVER2EOO.js +577 -0
  34. package/dist/chunk-S3QBGGVP.js +81 -0
  35. package/dist/chunk-TAML5WMA.js +198 -0
  36. package/dist/chunk-THTEUDBC.js +3188 -0
  37. package/dist/chunk-WYNM7L22.js +329 -0
  38. package/dist/chunk-XGCG4MD5.js +102 -0
  39. package/dist/chunk-XVKUFMIB.js +148 -0
  40. package/dist/chunk-XZYFZ6A5.js +50 -0
  41. package/dist/chunk-Y7PVJUXJ.js +2275 -0
  42. package/dist/chunk-YRSZPVMB.js +306 -0
  43. package/dist/chunk-YZUKHG3S.js +362 -0
  44. package/dist/chunk-ZVFS4LUA.js +116 -0
  45. package/dist/chunk-ZWLDLTJP.js +1417 -0
  46. package/dist/detect-676SNZK4.js +48 -0
  47. package/dist/dist-es-2YRDXMUU.js +73 -0
  48. package/dist/dist-es-CCVZEFRZ.js +91 -0
  49. package/dist/dist-es-EDUSMF6Q.js +488 -0
  50. package/dist/dist-es-IOH6G4GM.js +380 -0
  51. package/dist/dist-es-KWSMDPIP.js +26 -0
  52. package/dist/dist-es-UYDDOVZ3.js +173 -0
  53. package/dist/dist-es-XUOR4NQN.js +321 -0
  54. package/dist/docker-GOT3Q7DJ.js +41 -0
  55. package/dist/docker-edge-executor-VO6JHHW2.js +19 -0
  56. package/dist/edge-import-NFCHIW7G.js +50 -0
  57. package/dist/edge-preflight-QUJ757C6.js +45 -0
  58. package/dist/ensure-container-edge-Q7IZXHGM.js +38 -0
  59. package/dist/event-streams-TR4GAC53.js +46 -0
  60. package/dist/executor-GKXKN52K.js +42 -0
  61. package/dist/host-channel-preflight-Z6HYSPKO.js +48 -0
  62. package/dist/index.d.ts +2 -0
  63. package/dist/index.js +9469 -0
  64. package/dist/loadSso-UGF4JMRK.js +581 -0
  65. package/dist/local-executor-OMMDKXCM.js +13 -0
  66. package/dist/nginx-VITTWZZU.js +42 -0
  67. package/dist/node-bootstrap.js +277 -0
  68. package/dist/node-entry.js +55 -0
  69. package/dist/noop-CLLJHCPL.js +11 -0
  70. package/dist/openresty-lua-6I3Z6PEQ.js +90 -0
  71. package/dist/privilege-UQAI2HV4.js +20 -0
  72. package/dist/server/engine/ChangeLog +2289 -0
  73. package/dist/server/engine/Documentations +5 -0
  74. package/dist/server/engine/LICENSE +674 -0
  75. package/dist/server/engine/README.md +34 -0
  76. package/dist/server/engine/conf/amavisd +150 -0
  77. package/dist/server/engine/conf/clamav +71 -0
  78. package/dist/server/engine/conf/core +632 -0
  79. package/dist/server/engine/conf/dovecot +151 -0
  80. package/dist/server/engine/conf/fail2ban +72 -0
  81. package/dist/server/engine/conf/global +698 -0
  82. package/dist/server/engine/conf/iredapd +52 -0
  83. package/dist/server/engine/conf/logwatch +28 -0
  84. package/dist/server/engine/conf/postfix +97 -0
  85. package/dist/server/engine/conf/postgresql +93 -0
  86. package/dist/server/engine/conf/spamassassin +39 -0
  87. package/dist/server/engine/dialog/config_via_dialog.sh +258 -0
  88. package/dist/server/engine/dialog/optional_components.sh +122 -0
  89. package/dist/server/engine/dialog/pgsql_config.sh +52 -0
  90. package/dist/server/engine/dialog/virtual_domain_config.sh +94 -0
  91. package/dist/server/engine/functions/amavisd.sh +267 -0
  92. package/dist/server/engine/functions/backend.sh +85 -0
  93. package/dist/server/engine/functions/clamav.sh +100 -0
  94. package/dist/server/engine/functions/cleanup.sh +393 -0
  95. package/dist/server/engine/functions/dovecot.sh +583 -0
  96. package/dist/server/engine/functions/fail2ban.sh +209 -0
  97. package/dist/server/engine/functions/iredapd.sh +356 -0
  98. package/dist/server/engine/functions/optional_components.sh +24 -0
  99. package/dist/server/engine/functions/packages.sh +522 -0
  100. package/dist/server/engine/functions/packages_freebsd.sh +179 -0
  101. package/dist/server/engine/functions/postfix.sh +457 -0
  102. package/dist/server/engine/functions/postgresql.sh +239 -0
  103. package/dist/server/engine/functions/spamassassin.sh +49 -0
  104. package/dist/server/engine/functions/system_accounts.sh +128 -0
  105. package/dist/server/engine/iRedMail.sh +144 -0
  106. package/dist/server/engine/pkgs/get_all.sh +338 -0
  107. package/dist/server/engine/pkgs/pkgs.freebsd.sha256 +3 -0
  108. package/dist/server/engine/pkgs/pkgs.openbsd.sha256 +6 -0
  109. package/dist/server/engine/pkgs/pkgs.sha256 +1 -0
  110. package/dist/server/engine/samples/amavisd/amavisd.conf +702 -0
  111. package/dist/server/engine/samples/amavisd/amavisd.mysql +278 -0
  112. package/dist/server/engine/samples/amavisd/amavisd.pgsql +253 -0
  113. package/dist/server/engine/samples/amavisd/amavisd.schema +942 -0
  114. package/dist/server/engine/samples/amavisd/default_spam_policy.sql +46 -0
  115. package/dist/server/engine/samples/dovecot/dovecot-2.4-mariadb.conf +758 -0
  116. package/dist/server/engine/samples/dovecot/dovecot-2.4-openldap.conf +767 -0
  117. package/dist/server/engine/samples/dovecot/dovecot-2.4-pgsql.conf +762 -0
  118. package/dist/server/engine/samples/dovecot/dovecot-last-login.conf +50 -0
  119. package/dist/server/engine/samples/dovecot/dovecot-ldap.conf +21 -0
  120. package/dist/server/engine/samples/dovecot/dovecot-share-folder.conf +22 -0
  121. package/dist/server/engine/samples/dovecot/dovecot-sql.conf +28 -0
  122. package/dist/server/engine/samples/dovecot/dovecot-used-quota.conf +13 -0
  123. package/dist/server/engine/samples/dovecot/dovecot.conf +484 -0
  124. package/dist/server/engine/samples/dovecot/dovecot.sieve +7 -0
  125. package/dist/server/engine/samples/dovecot/dovecot2-quota-warning.sh +38 -0
  126. package/dist/server/engine/samples/dovecot/sql/imap_share_folder.mysql +16 -0
  127. package/dist/server/engine/samples/dovecot/sql/last_login.mysql +12 -0
  128. package/dist/server/engine/samples/dovecot/sql/used_quota.mysql +26 -0
  129. package/dist/server/engine/samples/dovecot/systemd/override.conf +3 -0
  130. package/dist/server/engine/samples/fail2ban/action.d/banned_db.conf +9 -0
  131. package/dist/server/engine/samples/fail2ban/bin/fail2ban_banned_db +268 -0
  132. package/dist/server/engine/samples/fail2ban/fail2ban.local +17 -0
  133. package/dist/server/engine/samples/fail2ban/filter.d/dovecot.iredmail.conf +5 -0
  134. package/dist/server/engine/samples/fail2ban/filter.d/postfix-pregreet.iredmail.conf +16 -0
  135. package/dist/server/engine/samples/fail2ban/filter.d/postfix.iredmail.conf +18 -0
  136. package/dist/server/engine/samples/fail2ban/filter.d/roundcube.iredmail.conf +9 -0
  137. package/dist/server/engine/samples/fail2ban/jail.d/dovecot.local +8 -0
  138. package/dist/server/engine/samples/fail2ban/jail.d/nginx-http-auth.local +8 -0
  139. package/dist/server/engine/samples/fail2ban/jail.d/postfix-pregreet.local +9 -0
  140. package/dist/server/engine/samples/fail2ban/jail.d/postfix.local +8 -0
  141. package/dist/server/engine/samples/fail2ban/jail.d/roundcube.local +9 -0
  142. package/dist/server/engine/samples/fail2ban/jail.d/sogo.local +8 -0
  143. package/dist/server/engine/samples/fail2ban/jail.d/sshd.local +11 -0
  144. package/dist/server/engine/samples/fail2ban/jail.local +6 -0
  145. package/dist/server/engine/samples/fail2ban/openbsd/rc +27 -0
  146. package/dist/server/engine/samples/fail2ban/sql/fail2ban.mysql +49 -0
  147. package/dist/server/engine/samples/fail2ban/sql/fail2ban.pgsql +48 -0
  148. package/dist/server/engine/samples/firewall/firewalld/services/ssh.xml +6 -0
  149. package/dist/server/engine/samples/firewall/firewalld/zones/iredmail.xml +15 -0
  150. package/dist/server/engine/samples/firewall/iptables/ip6tables.init.debian +362 -0
  151. package/dist/server/engine/samples/firewall/iptables/ip6tables.rules +53 -0
  152. package/dist/server/engine/samples/firewall/iptables/iptables.init.debian +363 -0
  153. package/dist/server/engine/samples/firewall/iptables/iptables.rules +54 -0
  154. package/dist/server/engine/samples/firewall/nftables.conf +58 -0
  155. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/dovecot.conf +3 -0
  156. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/iredapd.conf +1 -0
  157. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/mlmmjadmin.conf +1 -0
  158. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/php-fpm.conf +2 -0
  159. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/slapd.conf +1 -0
  160. package/dist/server/engine/samples/freebsd/syslog.d/dovecot.conf +2 -0
  161. package/dist/server/engine/samples/freebsd/syslog.d/fail2ban.conf +2 -0
  162. package/dist/server/engine/samples/freebsd/syslog.d/iredapd.conf +2 -0
  163. package/dist/server/engine/samples/freebsd/syslog.d/mlmmjadmin.conf +2 -0
  164. package/dist/server/engine/samples/freebsd/syslog.d/php-fpm.conf +2 -0
  165. package/dist/server/engine/samples/freebsd/syslog.d/slapd.conf +2 -0
  166. package/dist/server/engine/samples/iredmail/iredmail.mysql +491 -0
  167. package/dist/server/engine/samples/iredmail/iredmail.pgsql +465 -0
  168. package/dist/server/engine/samples/iredmail/iredmail.schema +456 -0
  169. package/dist/server/engine/samples/iredmail/used_quota_triggers_dovecot_2.3.pgsql +40 -0
  170. package/dist/server/engine/samples/iredmail/used_quota_triggers_dovecot_2.4.pgsql +18 -0
  171. package/dist/server/engine/samples/logrotate/dovecot +13 -0
  172. package/dist/server/engine/samples/logrotate/iredapd +13 -0
  173. package/dist/server/engine/samples/logrotate/mlmmjadmin +13 -0
  174. package/dist/server/engine/samples/logrotate/openldap +19 -0
  175. package/dist/server/engine/samples/logrotate/php-fpm +13 -0
  176. package/dist/server/engine/samples/openbsd/ldapd.conf +58 -0
  177. package/dist/server/engine/samples/openbsd/pf.conf +28 -0
  178. package/dist/server/engine/samples/postfix/command_filter.pcre +3 -0
  179. package/dist/server/engine/samples/postfix/freebsd/mailer.conf +9 -0
  180. package/dist/server/engine/samples/postfix/helo_access.pcre +180 -0
  181. package/dist/server/engine/samples/postfix/ldap/catchall_maps.cf +11 -0
  182. package/dist/server/engine/samples/postfix/ldap/recipient_bcc_maps_domain.cf +11 -0
  183. package/dist/server/engine/samples/postfix/ldap/recipient_bcc_maps_user.cf +11 -0
  184. package/dist/server/engine/samples/postfix/ldap/relay_domains.cf +11 -0
  185. package/dist/server/engine/samples/postfix/ldap/sender_bcc_maps_domain.cf +11 -0
  186. package/dist/server/engine/samples/postfix/ldap/sender_bcc_maps_user.cf +11 -0
  187. package/dist/server/engine/samples/postfix/ldap/sender_dependent_relayhost_maps_domain.cf +11 -0
  188. package/dist/server/engine/samples/postfix/ldap/sender_dependent_relayhost_maps_user.cf +11 -0
  189. package/dist/server/engine/samples/postfix/ldap/sender_login_maps.cf +11 -0
  190. package/dist/server/engine/samples/postfix/ldap/transport_maps_domain.cf +11 -0
  191. package/dist/server/engine/samples/postfix/ldap/transport_maps_user.cf +11 -0
  192. package/dist/server/engine/samples/postfix/ldap/virtual_alias_maps.cf +11 -0
  193. package/dist/server/engine/samples/postfix/ldap/virtual_group_maps.cf +11 -0
  194. package/dist/server/engine/samples/postfix/ldap/virtual_group_members_maps.cf +11 -0
  195. package/dist/server/engine/samples/postfix/ldap/virtual_mailbox_domains.cf +11 -0
  196. package/dist/server/engine/samples/postfix/ldap/virtual_mailbox_maps.cf +12 -0
  197. package/dist/server/engine/samples/postfix/main.cf +282 -0
  198. package/dist/server/engine/samples/postfix/main.cf.amavisd +7 -0
  199. package/dist/server/engine/samples/postfix/main.cf.dovecot +8 -0
  200. package/dist/server/engine/samples/postfix/main.cf.ldap +39 -0
  201. package/dist/server/engine/samples/postfix/main.cf.mlmmj +5 -0
  202. package/dist/server/engine/samples/postfix/main.cf.mysql +39 -0
  203. package/dist/server/engine/samples/postfix/main.cf.pgsql +39 -0
  204. package/dist/server/engine/samples/postfix/main.cf.postscreen +30 -0
  205. package/dist/server/engine/samples/postfix/master.cf +101 -0
  206. package/dist/server/engine/samples/postfix/mysql/catchall_maps.cf +5 -0
  207. package/dist/server/engine/samples/postfix/mysql/domain_alias_catchall_maps.cf +5 -0
  208. package/dist/server/engine/samples/postfix/mysql/domain_alias_maps.cf +5 -0
  209. package/dist/server/engine/samples/postfix/mysql/recipient_bcc_maps_domain.cf +5 -0
  210. package/dist/server/engine/samples/postfix/mysql/recipient_bcc_maps_user.cf +5 -0
  211. package/dist/server/engine/samples/postfix/mysql/relay_domains.cf +5 -0
  212. package/dist/server/engine/samples/postfix/mysql/sender_bcc_maps_domain.cf +5 -0
  213. package/dist/server/engine/samples/postfix/mysql/sender_bcc_maps_user.cf +5 -0
  214. package/dist/server/engine/samples/postfix/mysql/sender_dependent_relayhost_maps.cf +6 -0
  215. package/dist/server/engine/samples/postfix/mysql/sender_login_maps.cf +5 -0
  216. package/dist/server/engine/samples/postfix/mysql/transport_maps_domain.cf +5 -0
  217. package/dist/server/engine/samples/postfix/mysql/transport_maps_maillist.cf +5 -0
  218. package/dist/server/engine/samples/postfix/mysql/transport_maps_user.cf +5 -0
  219. package/dist/server/engine/samples/postfix/mysql/virtual_alias_maps.cf +5 -0
  220. package/dist/server/engine/samples/postfix/mysql/virtual_mailbox_domains.cf +5 -0
  221. package/dist/server/engine/samples/postfix/mysql/virtual_mailbox_maps.cf +5 -0
  222. package/dist/server/engine/samples/postfix/pgsql/catchall_maps.cf +5 -0
  223. package/dist/server/engine/samples/postfix/pgsql/domain_alias_catchall_maps.cf +5 -0
  224. package/dist/server/engine/samples/postfix/pgsql/domain_alias_maps.cf +5 -0
  225. package/dist/server/engine/samples/postfix/pgsql/recipient_bcc_maps_domain.cf +5 -0
  226. package/dist/server/engine/samples/postfix/pgsql/recipient_bcc_maps_user.cf +5 -0
  227. package/dist/server/engine/samples/postfix/pgsql/relay_domains.cf +5 -0
  228. package/dist/server/engine/samples/postfix/pgsql/sender_bcc_maps_domain.cf +5 -0
  229. package/dist/server/engine/samples/postfix/pgsql/sender_bcc_maps_user.cf +5 -0
  230. package/dist/server/engine/samples/postfix/pgsql/sender_dependent_relayhost_maps.cf +6 -0
  231. package/dist/server/engine/samples/postfix/pgsql/sender_login_maps.cf +5 -0
  232. package/dist/server/engine/samples/postfix/pgsql/transport_maps_domain.cf +5 -0
  233. package/dist/server/engine/samples/postfix/pgsql/transport_maps_maillist.cf +5 -0
  234. package/dist/server/engine/samples/postfix/pgsql/transport_maps_user.cf +5 -0
  235. package/dist/server/engine/samples/postfix/pgsql/virtual_alias_maps.cf +5 -0
  236. package/dist/server/engine/samples/postfix/pgsql/virtual_mailbox_domains.cf +5 -0
  237. package/dist/server/engine/samples/postfix/pgsql/virtual_mailbox_maps.cf +5 -0
  238. package/dist/server/engine/samples/postfix/postscreen_access.cidr +6 -0
  239. package/dist/server/engine/samples/postgresql/sql/add_first_domain_and_user.sql +34 -0
  240. package/dist/server/engine/samples/postgresql/sql/grant_permissions.sql +14 -0
  241. package/dist/server/engine/samples/postgresql/sql/init_vmail_db.sql +15 -0
  242. package/dist/server/engine/samples/rsyslog.d/1-iredmail-dovecot.conf +23 -0
  243. package/dist/server/engine/samples/rsyslog.d/1-iredmail-fail2ban.conf +2 -0
  244. package/dist/server/engine/samples/rsyslog.d/1-iredmail-iredapd.conf +12 -0
  245. package/dist/server/engine/samples/rsyslog.d/1-iredmail-mlmmjadmin.conf +12 -0
  246. package/dist/server/engine/samples/rsyslog.d/1-iredmail-openldap.conf +2 -0
  247. package/dist/server/engine/samples/rsyslog.d/1-iredmail-phpfpm.conf +3 -0
  248. package/dist/server/engine/samples/spamassassin/local.cf +186 -0
  249. package/dist/server/engine/samples/spamassassin/razor.conf +1 -0
  250. package/dist/server/engine/samples/systemd/clamd.service.d/override.conf +2 -0
  251. package/dist/server/engine/samples/systemd/mariadb.service.d/override.conf +3 -0
  252. package/dist/server/engine/samples/systemd/slapd.service.d/override.conf +6 -0
  253. package/dist/server/engine/samples/yum/CentOS-Linux-AppStream.repo +6 -0
  254. package/dist/server/engine/samples/yum/CentOS-Linux-PowerTools.repo +6 -0
  255. package/dist/server/engine/samples/yum/CentOS-Stream-AppStream.repo +7 -0
  256. package/dist/server/engine/samples/yum/CentOS-Stream-PowerTools.repo +7 -0
  257. package/dist/server/engine/samples/yum/symas-openldap.repo +6 -0
  258. package/dist/server/engine/tools/add_enabled_service.py +60 -0
  259. package/dist/server/engine/tools/backup_mysql.sh +238 -0
  260. package/dist/server/engine/tools/backup_openldap.sh +230 -0
  261. package/dist/server/engine/tools/backup_pgsql.sh +217 -0
  262. package/dist/server/engine/tools/backup_sogo.sh +156 -0
  263. package/dist/server/engine/tools/create_mail_user_OpenLDAP.py +335 -0
  264. package/dist/server/engine/tools/create_mail_user_OpenLDAP.sh +287 -0
  265. package/dist/server/engine/tools/create_mail_user_SQL.sh +127 -0
  266. package/dist/server/engine/tools/enable_postscreen.sh +144 -0
  267. package/dist/server/engine/tools/fail2ban_unban_ip.sh +39 -0
  268. package/dist/server/engine/tools/find_sasl_login_ip.sh +20 -0
  269. package/dist/server/engine/tools/find_top_sasl_usernames.sh +28 -0
  270. package/dist/server/engine/tools/generate_ssl_keys.sh +85 -0
  271. package/dist/server/engine/tools/kill_high_cpu_sogo_process.sh +32 -0
  272. package/dist/server/engine/tools/ldap_assign_user_to_groups.py +151 -0
  273. package/dist/server/engine/tools/ldap_move_members_to_another_group.py +129 -0
  274. package/dist/server/engine/tools/migrate_sql_alias_table.py +177 -0
  275. package/dist/server/engine/update/0.9.8/amavisd.mysql +29 -0
  276. package/dist/server/engine/update/0.9.8/amavisd.pgsql +39 -0
  277. package/dist/server/engine/update/0.9.8/iredmail.mysql +53 -0
  278. package/dist/server/engine/update/0.9.8/iredmail.pgsql +61 -0
  279. package/dist/server/engine/update/0.9.9/iredmail.mysql +2 -0
  280. package/dist/server/engine/update/0.9.9/iredmail.pgsql +2 -0
  281. package/dist/server/engine/update/1.0/iredmail.mysql +2 -0
  282. package/dist/server/engine/update/1.0/iredmail.pgsql +2 -0
  283. package/dist/server/engine/update/1.2/last_login.mysql +16 -0
  284. package/dist/server/engine/update/1.4.0/iredmail.mysql +22 -0
  285. package/dist/server/engine/update/1.4.0/iredmail.pgsql +20 -0
  286. package/dist/server/engine/update/1.4.1/iredmail.mysql +3 -0
  287. package/dist/server/engine/update/1.4.1/iredmail.pgsql +3 -0
  288. package/dist/server/engine/update/1.4.1/sogo.mysql +11 -0
  289. package/dist/server/engine/update/1.4.1/sogo.pgsql +30 -0
  290. package/dist/server/engine/update/1.4.1/update-ldap.py +66 -0
  291. package/dist/server/engine/update/1.4.2/iredmail.mysql +9 -0
  292. package/dist/server/engine/update/1.4.2/iredmail.pgsql +9 -0
  293. package/dist/server/engine/update/1.4.2/sogo.pgsql +30 -0
  294. package/dist/server/engine/update/1.6.0/sogo_view.pgsql +27 -0
  295. package/dist/server/engine/update/1.6.3/iredmail.mysql +1 -0
  296. package/dist/server/engine/update/1.7.0/fail2ban.mysql +11 -0
  297. package/dist/server/engine/update/1.7.0/fail2ban.pgsql +12 -0
  298. package/dist/server/engine/update/1.7.1/amavisd.mysql +1 -0
  299. package/dist/server/engine/update/1.7.2/vmail.mysql +30 -0
  300. package/dist/server/engine/update/1.7.3/deleted_mailboxes.mysql +43 -0
  301. package/dist/server/engine/update/1.7.3/iredadmin.mysql +26 -0
  302. package/dist/server/engine/update/1.7.3/vmail.mysql +79 -0
  303. package/dist/server/engine/update/1.7.3/vmail.pgsql +9 -0
  304. package/dist/server/engine/update/README.md +1 -0
  305. package/dist/server/engine/update/ldap/README.md +39 -0
  306. package/dist/server/engine/update/ldap/update-ldap-dovecot-2.3.py +69 -0
  307. package/dist/server/index.js +349016 -0
  308. package/dist/server/lua/geo_country.lua +127 -0
  309. package/dist/server/lua/maxminddb.lua +403 -0
  310. package/dist/server/lua/mgmt_api.lua +654 -0
  311. package/dist/server/lua/pipe_stream.lua +103 -0
  312. package/dist/server/lua/rules_guard.lua +132 -0
  313. package/dist/server/lua/rules_lib.lua +176 -0
  314. package/dist/server/lua/site_logger.lua +405 -0
  315. package/dist/server/lua/webhook_handler.lua +126 -0
  316. package/dist/server/migrations/0000_init.sql +666 -0
  317. package/dist/server/migrations/0001_brief_tomorrow_man.sql +47 -0
  318. package/dist/server/migrations/0002_funny_dazzler.sql +2 -0
  319. package/dist/server/migrations/0003_third_killer_shrike.sql +1 -0
  320. package/dist/server/migrations/0004_session_active_org_not_null.sql +10 -0
  321. package/dist/server/migrations/0005_warm_amazoness.sql +3 -0
  322. package/dist/server/migrations/0006_lumpy_joystick.sql +1 -0
  323. package/dist/server/migrations/0007_outgoing_maginty.sql +2 -0
  324. package/dist/server/migrations/0008_frozen_cutover.sql +3 -0
  325. package/dist/server/migrations/0009_credits_billing.sql +142 -0
  326. package/dist/server/migrations/0010_credit_grant_dedupe.sql +14 -0
  327. package/dist/server/migrations/0011_remove_credit_ledger.sql +23 -0
  328. package/dist/server/migrations/0012_smart_deploys_and_git_rollback.sql +81 -0
  329. package/dist/server/migrations/0013_fix_check_run_rollup_unique.sql +38 -0
  330. package/dist/server/migrations/0014_default_rollback_git.sql +9 -0
  331. package/dist/server/migrations/0015_billing_idempotency_grants.sql +41 -0
  332. package/dist/server/migrations/0016_github_auth_high_findings.sql +30 -0
  333. package/dist/server/migrations/0017_spooky_rumiko_fujikawa.sql +6 -0
  334. package/dist/server/migrations/0018_calm_shatterstar.sql +1 -0
  335. package/dist/server/migrations/0019_rename_workspace_install_to_prepare.sql +1 -0
  336. package/dist/server/migrations/0020_uneven_the_renegades.sql +13 -0
  337. package/dist/server/migrations/0021_shiny_firestar.sql +2 -0
  338. package/dist/server/migrations/0022_version_on_success_backfill.sql +6 -0
  339. package/dist/server/migrations/0023_productive_gorilla_man.sql +17 -0
  340. package/dist/server/migrations/0024_sleepy_peter_quill.sql +2 -0
  341. package/dist/server/migrations/0025_smooth_blue_shield.sql +1 -0
  342. package/dist/server/migrations/0026_mail_backup_source.sql +11 -0
  343. package/dist/server/migrations/0027_opposite_anthem.sql +6 -0
  344. package/dist/server/migrations/0028_stale_rogue.sql +18 -0
  345. package/dist/server/migrations/0029_bouncy_loners.sql +16 -0
  346. package/dist/server/migrations/0030_bright_darkstar.sql +6 -0
  347. package/dist/server/migrations/0031_conscious_catseye.sql +13 -0
  348. package/dist/server/migrations/0032_wet_mimic.sql +51 -0
  349. package/dist/server/migrations/0033_eminent_molly_hayes.sql +2 -0
  350. package/dist/server/migrations/0034_nervous_surge.sql +1 -0
  351. package/dist/server/migrations/0035_thankful_morgan_stark.sql +1 -0
  352. package/dist/server/migrations/0036_gorgeous_scalphunter.sql +17 -0
  353. package/dist/server/migrations/0037_clever_makkari.sql +28 -0
  354. package/dist/server/migrations/0038_young_magneto.sql +1 -0
  355. package/dist/server/migrations/0039_secret_lady_ursula.sql +15 -0
  356. package/dist/server/migrations/0040_sharp_red_wolf.sql +16 -0
  357. package/dist/server/migrations/0041_round_spyke.sql +4 -0
  358. package/dist/server/migrations/0042_dapper_havok.sql +1 -0
  359. package/dist/server/migrations/0043_fast_sharon_ventura.sql +15 -0
  360. package/dist/server/migrations/0044_amused_shape.sql +8 -0
  361. package/dist/server/migrations/0045_amusing_korath.sql +1 -0
  362. package/dist/server/migrations/0046_white_harrier.sql +35 -0
  363. package/dist/server/migrations/0047_sloppy_strong_guy.sql +2 -0
  364. package/dist/server/migrations/0048_funny_emma_frost.sql +2 -0
  365. package/dist/server/migrations/0049_nappy_piledriver.sql +3 -0
  366. package/dist/server/migrations/0050_add_service_deployment_image_digest.sql +1 -0
  367. package/dist/server/migrations/0051_add_update_status.sql +19 -0
  368. package/dist/server/migrations/0052_add_notice_target.sql +2 -0
  369. package/dist/server/migrations/0053_colossal_sandman.sql +14 -0
  370. package/dist/server/migrations/0054_add_instance_smtp.sql +5 -0
  371. package/dist/server/migrations/0055_rainy_klaw.sql +22 -0
  372. package/dist/server/migrations/0056_moaning_daredevil.sql +2 -0
  373. package/dist/server/migrations/0057_complete_prism.sql +18 -0
  374. package/dist/server/migrations/0058_add_server_is_local.sql +1 -0
  375. package/dist/server/migrations/0059_legal_fixer.sql +18 -0
  376. package/dist/server/migrations/0060_add_route_strategy_host_port.sql +3 -0
  377. package/dist/server/migrations/0061_notification_default_multi_kind.sql +3 -0
  378. package/dist/server/migrations/0062_add_incoming_webhook.sql +21 -0
  379. package/dist/server/migrations/0063_add_migration_logs.sql +1 -0
  380. package/dist/server/migrations/0064_add_migration_partial.sql +2 -0
  381. package/dist/server/migrations/0065_custom_app_template.sql +14 -0
  382. package/dist/server/migrations/0066_ensure_migration_partial_columns.sql +2 -0
  383. package/dist/server/migrations/0067_webhook_delivery.sql +28 -0
  384. package/dist/server/migrations/0068_add_migration_target_volumes.sql +1 -0
  385. package/dist/server/migrations/0069_add_project_composite_routes.sql +1 -0
  386. package/dist/server/migrations/0070_forward_git_to_server.sql +1 -0
  387. package/dist/server/migrations/0071_gh_device_token.sql +3 -0
  388. package/dist/server/migrations/0072_gh_device_token_method.sql +1 -0
  389. package/dist/server/migrations/0073_project_volumes_object_storage.sql +3 -0
  390. package/dist/server/migrations/0074_project_compose_path.sql +1 -0
  391. package/dist/server/migrations/0075_service_command_argv.sql +1 -0
  392. package/dist/server/migrations/0076_rollback_retention.sql +17 -0
  393. package/dist/server/migrations/0077_domain_redirect.sql +13 -0
  394. package/dist/server/migrations/0078_grant_source_scope.sql +30 -0
  395. package/dist/server/migrations/0079_project_readiness.sql +18 -0
  396. package/dist/server/migrations/0080_deployment_error_classification.sql +26 -0
  397. package/dist/server/migrations/0081_project_readiness_repair.sql +34 -0
  398. package/dist/server/migrations/0082_edge_target_verification.sql +39 -0
  399. package/dist/server/migrations/0083_service_incident.sql +84 -0
  400. package/dist/server/migrations/0084_analytics_daily_rollup.sql +72 -0
  401. package/dist/server/migrations/0085_resource_usage.sql +68 -0
  402. package/dist/server/migrations/0086_remote_infra_updates.sql +41 -0
  403. package/dist/server/migrations/0087_server_container_version_columns.sql +17 -0
  404. package/dist/server/migrations/0088_audit_source_and_settings.sql +27 -0
  405. package/dist/server/migrations/0089_auto_scan_infra.sql +7 -0
  406. package/dist/server/migrations/0090_project_collect_paths.sql +18 -0
  407. package/dist/server/migrations/0091_project_server_id.sql +26 -0
  408. package/dist/server/migrations/0092_project_internal_alias.sql +13 -0
  409. package/dist/server/migrations/0093_service_incident_org_index.sql +13 -0
  410. package/dist/server/migrations/0094_backup_restore_meta.sql +15 -0
  411. package/dist/server/migrations/0095_backup_restore_cancel.sql +19 -0
  412. package/dist/server/migrations/0096_backup_policy_retention_defaults.sql +20 -0
  413. package/dist/server/migrations/0097_update_status_upstream_only.sql +35 -0
  414. package/dist/server/migrations/0098_instance_product_mode.sql +12 -0
  415. package/dist/server/migrations/0099_mail_webmail_project.sql +24 -0
  416. package/dist/server/migrations/0100_server_ssh_private_key.sql +11 -0
  417. package/dist/server/migrations/0101_mail_resume_step.sql +12 -0
  418. package/dist/server/migrations/0102_project_workload_axes.sql +19 -0
  419. package/dist/server/migrations/0103_dns_credential.sql +41 -0
  420. package/dist/server/migrations/0104_instance_host_control.sql +15 -0
  421. package/dist/server/migrations/0105_mail_inbound_rules.sql +80 -0
  422. package/dist/server/migrations/0106_mcp_call_tracking.sql +23 -0
  423. package/dist/server/migrations/0107_build_minute_metering_indexes.sql +20 -0
  424. package/dist/server/migrations/0108_credential.sql +68 -0
  425. package/dist/server/migrations/0109_service_build_args.sql +9 -0
  426. package/dist/server/migrations/0110_service_deployment_host_ports.sql +18 -0
  427. package/dist/server/migrations/0111_host_port_claim.sql +381 -0
  428. package/dist/server/migrations/0112_backup_run_execution_lease.sql +12 -0
  429. package/dist/server/migrations/0113_docker_migration_execution_lease.sql +11 -0
  430. package/dist/server/migrations/0114_build_session_execution_lease_index.sql +6 -0
  431. package/dist/server/migrations/0115_orphan_target_key.sql +3 -0
  432. package/dist/server/migrations/0116_domain_ssl_challenge.sql +2 -0
  433. package/dist/server/migrations/0117_github_installation_workspace_scope.sql +24 -0
  434. package/dist/server/migrations/0118_git_sources.sql +66 -0
  435. package/dist/server/migrations/0119_backup_run_batch.sql +8 -0
  436. package/dist/server/migrations/0120_domain_primary_unique.sql +24 -0
  437. package/dist/server/migrations/0121_host_port_claim_overlap.sql +14 -0
  438. package/dist/server/migrations/0122_data_transfer_staging.sql +45 -0
  439. package/dist/server/migrations/0123_drop_cloud_infra.sql +7 -0
  440. package/dist/server/migrations/0124_mail_dmarc_report.sql +23 -0
  441. package/dist/server/migrations/0125_server_security_snapshot.sql +22 -0
  442. package/dist/server/migrations/meta/0000_snapshot.json +4848 -0
  443. package/dist/server/migrations/meta/0001_snapshot.json +4991 -0
  444. package/dist/server/migrations/meta/0002_snapshot.json +5013 -0
  445. package/dist/server/migrations/meta/0003_snapshot.json +5020 -0
  446. package/dist/server/migrations/meta/0004_snapshot.json +5020 -0
  447. package/dist/server/migrations/meta/0005_snapshot.json +5039 -0
  448. package/dist/server/migrations/meta/0006_snapshot.json +5045 -0
  449. package/dist/server/migrations/meta/0007_snapshot.json +5057 -0
  450. package/dist/server/migrations/meta/0016_snapshot.json +6053 -0
  451. package/dist/server/migrations/meta/0017_snapshot.json +6091 -0
  452. package/dist/server/migrations/meta/0018_snapshot.json +6098 -0
  453. package/dist/server/migrations/meta/0019_snapshot.json +6098 -0
  454. package/dist/server/migrations/meta/0020_snapshot.json +6201 -0
  455. package/dist/server/migrations/meta/0021_snapshot.json +6213 -0
  456. package/dist/server/migrations/meta/0022_snapshot.json +6213 -0
  457. package/dist/server/migrations/meta/0023_snapshot.json +6331 -0
  458. package/dist/server/migrations/meta/0024_snapshot.json +6343 -0
  459. package/dist/server/migrations/meta/0025_snapshot.json +6350 -0
  460. package/dist/server/migrations/meta/0026_snapshot.json +6440 -0
  461. package/dist/server/migrations/meta/0027_snapshot.json +6447 -0
  462. package/dist/server/migrations/meta/0028_snapshot.json +6581 -0
  463. package/dist/server/migrations/meta/0029_snapshot.json +6710 -0
  464. package/dist/server/migrations/meta/0030_snapshot.json +6748 -0
  465. package/dist/server/migrations/meta/0031_snapshot.json +6859 -0
  466. package/dist/server/migrations/meta/0032_snapshot.json +7222 -0
  467. package/dist/server/migrations/meta/0033_snapshot.json +7249 -0
  468. package/dist/server/migrations/meta/0034_snapshot.json +7255 -0
  469. package/dist/server/migrations/meta/0035_snapshot.json +7262 -0
  470. package/dist/server/migrations/meta/0036_snapshot.json +7392 -0
  471. package/dist/server/migrations/meta/0037_snapshot.json +7602 -0
  472. package/dist/server/migrations/meta/0038_snapshot.json +7609 -0
  473. package/dist/server/migrations/meta/0039_snapshot.json +7714 -0
  474. package/dist/server/migrations/meta/0040_snapshot.json +7820 -0
  475. package/dist/server/migrations/meta/0041_snapshot.json +7833 -0
  476. package/dist/server/migrations/meta/0042_snapshot.json +7839 -0
  477. package/dist/server/migrations/meta/0043_snapshot.json +7938 -0
  478. package/dist/server/migrations/meta/0044_snapshot.json +7982 -0
  479. package/dist/server/migrations/meta/0045_snapshot.json +7989 -0
  480. package/dist/server/migrations/meta/0046_snapshot.json +8263 -0
  481. package/dist/server/migrations/meta/0047_snapshot.json +8275 -0
  482. package/dist/server/migrations/meta/0048_snapshot.json +8289 -0
  483. package/dist/server/migrations/meta/0049_snapshot.json +8308 -0
  484. package/dist/server/migrations/meta/0050_snapshot.json +8314 -0
  485. package/dist/server/migrations/meta/0051_snapshot.json +8460 -0
  486. package/dist/server/migrations/meta/0052_snapshot.json +8472 -0
  487. package/dist/server/migrations/meta/0053_snapshot.json +8556 -0
  488. package/dist/server/migrations/meta/0054_snapshot.json +8586 -0
  489. package/dist/server/migrations/meta/0055_snapshot.json +8756 -0
  490. package/dist/server/migrations/meta/0056_snapshot.json +8777 -0
  491. package/dist/server/migrations/meta/0057_snapshot.json +8904 -0
  492. package/dist/server/migrations/meta/0058_snapshot.json +8911 -0
  493. package/dist/server/migrations/meta/0059_snapshot.json +9061 -0
  494. package/dist/server/migrations/meta/0060_snapshot.json +9081 -0
  495. package/dist/server/migrations/meta/_journal.json +888 -0
  496. package/dist/server/pglite/pglite.data +0 -0
  497. package/dist/server/pglite/pglite.wasm +0 -0
  498. package/dist/setup-JWKZIECM.js +25 -0
  499. package/dist/signin-3M3UPB6K.js +667 -0
  500. package/dist/ssh-client-NWQVRCV7.js +29 -0
  501. package/dist/sso-oidc-3VDIYOEJ.js +834 -0
  502. package/dist/sts-B3WIYLXR.js +1426 -0
  503. package/dist/up-P5DMQ5YO.js +55 -0
  504. package/package.json +58 -0
@@ -0,0 +1,4848 @@
1
+ {
2
+ "id": "fdb51bb6-09e8-415e-98bc-c80018d0fd50",
3
+ "prevId": "00000000-0000-0000-0000-000000000000",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.account": {
8
+ "name": "account",
9
+ "schema": "",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "text",
14
+ "primaryKey": true,
15
+ "notNull": true
16
+ },
17
+ "account_id": {
18
+ "name": "account_id",
19
+ "type": "text",
20
+ "primaryKey": false,
21
+ "notNull": true
22
+ },
23
+ "provider_id": {
24
+ "name": "provider_id",
25
+ "type": "text",
26
+ "primaryKey": false,
27
+ "notNull": true
28
+ },
29
+ "user_id": {
30
+ "name": "user_id",
31
+ "type": "text",
32
+ "primaryKey": false,
33
+ "notNull": true
34
+ },
35
+ "access_token": {
36
+ "name": "access_token",
37
+ "type": "text",
38
+ "primaryKey": false,
39
+ "notNull": false
40
+ },
41
+ "refresh_token": {
42
+ "name": "refresh_token",
43
+ "type": "text",
44
+ "primaryKey": false,
45
+ "notNull": false
46
+ },
47
+ "id_token": {
48
+ "name": "id_token",
49
+ "type": "text",
50
+ "primaryKey": false,
51
+ "notNull": false
52
+ },
53
+ "access_token_expires_at": {
54
+ "name": "access_token_expires_at",
55
+ "type": "timestamp",
56
+ "primaryKey": false,
57
+ "notNull": false
58
+ },
59
+ "refresh_token_expires_at": {
60
+ "name": "refresh_token_expires_at",
61
+ "type": "timestamp",
62
+ "primaryKey": false,
63
+ "notNull": false
64
+ },
65
+ "scope": {
66
+ "name": "scope",
67
+ "type": "text",
68
+ "primaryKey": false,
69
+ "notNull": false
70
+ },
71
+ "password": {
72
+ "name": "password",
73
+ "type": "text",
74
+ "primaryKey": false,
75
+ "notNull": false
76
+ },
77
+ "created_at": {
78
+ "name": "created_at",
79
+ "type": "timestamp",
80
+ "primaryKey": false,
81
+ "notNull": true,
82
+ "default": "now()"
83
+ },
84
+ "updated_at": {
85
+ "name": "updated_at",
86
+ "type": "timestamp",
87
+ "primaryKey": false,
88
+ "notNull": true,
89
+ "default": "now()"
90
+ }
91
+ },
92
+ "indexes": {},
93
+ "foreignKeys": {
94
+ "account_user_id_user_id_fk": {
95
+ "name": "account_user_id_user_id_fk",
96
+ "tableFrom": "account",
97
+ "tableTo": "user",
98
+ "columnsFrom": ["user_id"],
99
+ "columnsTo": ["id"],
100
+ "onDelete": "cascade",
101
+ "onUpdate": "no action"
102
+ }
103
+ },
104
+ "compositePrimaryKeys": {},
105
+ "uniqueConstraints": {},
106
+ "policies": {},
107
+ "checkConstraints": {},
108
+ "isRLSEnabled": false
109
+ },
110
+ "public.audit_event": {
111
+ "name": "audit_event",
112
+ "schema": "",
113
+ "columns": {
114
+ "id": {
115
+ "name": "id",
116
+ "type": "text",
117
+ "primaryKey": true,
118
+ "notNull": true
119
+ },
120
+ "organization_id": {
121
+ "name": "organization_id",
122
+ "type": "text",
123
+ "primaryKey": false,
124
+ "notNull": true
125
+ },
126
+ "actor_user_id": {
127
+ "name": "actor_user_id",
128
+ "type": "text",
129
+ "primaryKey": false,
130
+ "notNull": false
131
+ },
132
+ "event_type": {
133
+ "name": "event_type",
134
+ "type": "text",
135
+ "primaryKey": false,
136
+ "notNull": true
137
+ },
138
+ "resource_type": {
139
+ "name": "resource_type",
140
+ "type": "text",
141
+ "primaryKey": false,
142
+ "notNull": false
143
+ },
144
+ "resource_id": {
145
+ "name": "resource_id",
146
+ "type": "text",
147
+ "primaryKey": false,
148
+ "notNull": false
149
+ },
150
+ "before": {
151
+ "name": "before",
152
+ "type": "jsonb",
153
+ "primaryKey": false,
154
+ "notNull": false
155
+ },
156
+ "after": {
157
+ "name": "after",
158
+ "type": "jsonb",
159
+ "primaryKey": false,
160
+ "notNull": false
161
+ },
162
+ "ip_address": {
163
+ "name": "ip_address",
164
+ "type": "text",
165
+ "primaryKey": false,
166
+ "notNull": false
167
+ },
168
+ "user_agent": {
169
+ "name": "user_agent",
170
+ "type": "text",
171
+ "primaryKey": false,
172
+ "notNull": false
173
+ },
174
+ "created_at": {
175
+ "name": "created_at",
176
+ "type": "timestamp",
177
+ "primaryKey": false,
178
+ "notNull": true,
179
+ "default": "now()"
180
+ }
181
+ },
182
+ "indexes": {
183
+ "audit_event_org_created_idx": {
184
+ "name": "audit_event_org_created_idx",
185
+ "columns": [
186
+ {
187
+ "expression": "organization_id",
188
+ "isExpression": false,
189
+ "asc": true,
190
+ "nulls": "last"
191
+ },
192
+ {
193
+ "expression": "created_at",
194
+ "isExpression": false,
195
+ "asc": true,
196
+ "nulls": "last"
197
+ }
198
+ ],
199
+ "isUnique": false,
200
+ "concurrently": false,
201
+ "method": "btree",
202
+ "with": {}
203
+ },
204
+ "audit_event_org_type_idx": {
205
+ "name": "audit_event_org_type_idx",
206
+ "columns": [
207
+ {
208
+ "expression": "organization_id",
209
+ "isExpression": false,
210
+ "asc": true,
211
+ "nulls": "last"
212
+ },
213
+ {
214
+ "expression": "event_type",
215
+ "isExpression": false,
216
+ "asc": true,
217
+ "nulls": "last"
218
+ }
219
+ ],
220
+ "isUnique": false,
221
+ "concurrently": false,
222
+ "method": "btree",
223
+ "with": {}
224
+ },
225
+ "audit_event_org_actor_idx": {
226
+ "name": "audit_event_org_actor_idx",
227
+ "columns": [
228
+ {
229
+ "expression": "organization_id",
230
+ "isExpression": false,
231
+ "asc": true,
232
+ "nulls": "last"
233
+ },
234
+ {
235
+ "expression": "actor_user_id",
236
+ "isExpression": false,
237
+ "asc": true,
238
+ "nulls": "last"
239
+ }
240
+ ],
241
+ "isUnique": false,
242
+ "concurrently": false,
243
+ "method": "btree",
244
+ "with": {}
245
+ },
246
+ "audit_event_resource_idx": {
247
+ "name": "audit_event_resource_idx",
248
+ "columns": [
249
+ {
250
+ "expression": "resource_type",
251
+ "isExpression": false,
252
+ "asc": true,
253
+ "nulls": "last"
254
+ },
255
+ {
256
+ "expression": "resource_id",
257
+ "isExpression": false,
258
+ "asc": true,
259
+ "nulls": "last"
260
+ }
261
+ ],
262
+ "isUnique": false,
263
+ "concurrently": false,
264
+ "method": "btree",
265
+ "with": {}
266
+ }
267
+ },
268
+ "foreignKeys": {
269
+ "audit_event_organization_id_organization_id_fk": {
270
+ "name": "audit_event_organization_id_organization_id_fk",
271
+ "tableFrom": "audit_event",
272
+ "tableTo": "organization",
273
+ "columnsFrom": ["organization_id"],
274
+ "columnsTo": ["id"],
275
+ "onDelete": "cascade",
276
+ "onUpdate": "no action"
277
+ },
278
+ "audit_event_actor_user_id_user_id_fk": {
279
+ "name": "audit_event_actor_user_id_user_id_fk",
280
+ "tableFrom": "audit_event",
281
+ "tableTo": "user",
282
+ "columnsFrom": ["actor_user_id"],
283
+ "columnsTo": ["id"],
284
+ "onDelete": "set null",
285
+ "onUpdate": "no action"
286
+ }
287
+ },
288
+ "compositePrimaryKeys": {},
289
+ "uniqueConstraints": {},
290
+ "policies": {},
291
+ "checkConstraints": {},
292
+ "isRLSEnabled": false
293
+ },
294
+ "public.backup_destination": {
295
+ "name": "backup_destination",
296
+ "schema": "",
297
+ "columns": {
298
+ "id": {
299
+ "name": "id",
300
+ "type": "text",
301
+ "primaryKey": true,
302
+ "notNull": true
303
+ },
304
+ "organization_id": {
305
+ "name": "organization_id",
306
+ "type": "text",
307
+ "primaryKey": false,
308
+ "notNull": true
309
+ },
310
+ "name": {
311
+ "name": "name",
312
+ "type": "text",
313
+ "primaryKey": false,
314
+ "notNull": true
315
+ },
316
+ "kind": {
317
+ "name": "kind",
318
+ "type": "text",
319
+ "primaryKey": false,
320
+ "notNull": true
321
+ },
322
+ "server_id": {
323
+ "name": "server_id",
324
+ "type": "text",
325
+ "primaryKey": false,
326
+ "notNull": false
327
+ },
328
+ "endpoint": {
329
+ "name": "endpoint",
330
+ "type": "text",
331
+ "primaryKey": false,
332
+ "notNull": false
333
+ },
334
+ "region": {
335
+ "name": "region",
336
+ "type": "text",
337
+ "primaryKey": false,
338
+ "notNull": false
339
+ },
340
+ "bucket": {
341
+ "name": "bucket",
342
+ "type": "text",
343
+ "primaryKey": false,
344
+ "notNull": false
345
+ },
346
+ "path_prefix": {
347
+ "name": "path_prefix",
348
+ "type": "text",
349
+ "primaryKey": false,
350
+ "notNull": false
351
+ },
352
+ "ssh_host": {
353
+ "name": "ssh_host",
354
+ "type": "text",
355
+ "primaryKey": false,
356
+ "notNull": false
357
+ },
358
+ "ssh_port": {
359
+ "name": "ssh_port",
360
+ "type": "integer",
361
+ "primaryKey": false,
362
+ "notNull": false
363
+ },
364
+ "ssh_user": {
365
+ "name": "ssh_user",
366
+ "type": "text",
367
+ "primaryKey": false,
368
+ "notNull": false
369
+ },
370
+ "access_key_id_enc": {
371
+ "name": "access_key_id_enc",
372
+ "type": "text",
373
+ "primaryKey": false,
374
+ "notNull": false
375
+ },
376
+ "secret_access_key_enc": {
377
+ "name": "secret_access_key_enc",
378
+ "type": "text",
379
+ "primaryKey": false,
380
+ "notNull": false
381
+ },
382
+ "sftp_password_enc": {
383
+ "name": "sftp_password_enc",
384
+ "type": "text",
385
+ "primaryKey": false,
386
+ "notNull": false
387
+ },
388
+ "sftp_private_key_enc": {
389
+ "name": "sftp_private_key_enc",
390
+ "type": "text",
391
+ "primaryKey": false,
392
+ "notNull": false
393
+ },
394
+ "sftp_key_passphrase_enc": {
395
+ "name": "sftp_key_passphrase_enc",
396
+ "type": "text",
397
+ "primaryKey": false,
398
+ "notNull": false
399
+ },
400
+ "last_verified_at": {
401
+ "name": "last_verified_at",
402
+ "type": "timestamp",
403
+ "primaryKey": false,
404
+ "notNull": false
405
+ },
406
+ "last_verify_error": {
407
+ "name": "last_verify_error",
408
+ "type": "text",
409
+ "primaryKey": false,
410
+ "notNull": false
411
+ },
412
+ "is_default": {
413
+ "name": "is_default",
414
+ "type": "boolean",
415
+ "primaryKey": false,
416
+ "notNull": true,
417
+ "default": false
418
+ },
419
+ "deleted_at": {
420
+ "name": "deleted_at",
421
+ "type": "timestamp",
422
+ "primaryKey": false,
423
+ "notNull": false
424
+ },
425
+ "created_at": {
426
+ "name": "created_at",
427
+ "type": "timestamp",
428
+ "primaryKey": false,
429
+ "notNull": true,
430
+ "default": "now()"
431
+ },
432
+ "updated_at": {
433
+ "name": "updated_at",
434
+ "type": "timestamp",
435
+ "primaryKey": false,
436
+ "notNull": true,
437
+ "default": "now()"
438
+ }
439
+ },
440
+ "indexes": {
441
+ "uq_backup_destination_org_name_active": {
442
+ "name": "uq_backup_destination_org_name_active",
443
+ "columns": [
444
+ {
445
+ "expression": "organization_id",
446
+ "isExpression": false,
447
+ "asc": true,
448
+ "nulls": "last"
449
+ },
450
+ {
451
+ "expression": "name",
452
+ "isExpression": false,
453
+ "asc": true,
454
+ "nulls": "last"
455
+ }
456
+ ],
457
+ "isUnique": true,
458
+ "where": "\"backup_destination\".\"deleted_at\" IS NULL",
459
+ "concurrently": false,
460
+ "method": "btree",
461
+ "with": {}
462
+ },
463
+ "idx_backup_destination_org": {
464
+ "name": "idx_backup_destination_org",
465
+ "columns": [
466
+ {
467
+ "expression": "organization_id",
468
+ "isExpression": false,
469
+ "asc": true,
470
+ "nulls": "last"
471
+ }
472
+ ],
473
+ "isUnique": false,
474
+ "concurrently": false,
475
+ "method": "btree",
476
+ "with": {}
477
+ }
478
+ },
479
+ "foreignKeys": {
480
+ "backup_destination_organization_id_organization_id_fk": {
481
+ "name": "backup_destination_organization_id_organization_id_fk",
482
+ "tableFrom": "backup_destination",
483
+ "tableTo": "organization",
484
+ "columnsFrom": ["organization_id"],
485
+ "columnsTo": ["id"],
486
+ "onDelete": "cascade",
487
+ "onUpdate": "no action"
488
+ },
489
+ "backup_destination_server_id_servers_id_fk": {
490
+ "name": "backup_destination_server_id_servers_id_fk",
491
+ "tableFrom": "backup_destination",
492
+ "tableTo": "servers",
493
+ "columnsFrom": ["server_id"],
494
+ "columnsTo": ["id"],
495
+ "onDelete": "set null",
496
+ "onUpdate": "no action"
497
+ }
498
+ },
499
+ "compositePrimaryKeys": {},
500
+ "uniqueConstraints": {},
501
+ "policies": {},
502
+ "checkConstraints": {},
503
+ "isRLSEnabled": false
504
+ },
505
+ "public.backup_policy": {
506
+ "name": "backup_policy",
507
+ "schema": "",
508
+ "columns": {
509
+ "id": {
510
+ "name": "id",
511
+ "type": "text",
512
+ "primaryKey": true,
513
+ "notNull": true
514
+ },
515
+ "project_id": {
516
+ "name": "project_id",
517
+ "type": "text",
518
+ "primaryKey": false,
519
+ "notNull": true
520
+ },
521
+ "service_id": {
522
+ "name": "service_id",
523
+ "type": "text",
524
+ "primaryKey": false,
525
+ "notNull": false
526
+ },
527
+ "destination_id": {
528
+ "name": "destination_id",
529
+ "type": "text",
530
+ "primaryKey": false,
531
+ "notNull": true
532
+ },
533
+ "enabled": {
534
+ "name": "enabled",
535
+ "type": "boolean",
536
+ "primaryKey": false,
537
+ "notNull": true,
538
+ "default": true
539
+ },
540
+ "cron_expression": {
541
+ "name": "cron_expression",
542
+ "type": "text",
543
+ "primaryKey": false,
544
+ "notNull": false
545
+ },
546
+ "trigger_on_pre_deploy": {
547
+ "name": "trigger_on_pre_deploy",
548
+ "type": "boolean",
549
+ "primaryKey": false,
550
+ "notNull": true,
551
+ "default": false
552
+ },
553
+ "webhook_token": {
554
+ "name": "webhook_token",
555
+ "type": "text",
556
+ "primaryKey": false,
557
+ "notNull": false
558
+ },
559
+ "webhook_last_fired_at": {
560
+ "name": "webhook_last_fired_at",
561
+ "type": "timestamp",
562
+ "primaryKey": false,
563
+ "notNull": false
564
+ },
565
+ "retain_count": {
566
+ "name": "retain_count",
567
+ "type": "integer",
568
+ "primaryKey": false,
569
+ "notNull": false
570
+ },
571
+ "retain_days": {
572
+ "name": "retain_days",
573
+ "type": "integer",
574
+ "primaryKey": false,
575
+ "notNull": false
576
+ },
577
+ "payload_kind": {
578
+ "name": "payload_kind",
579
+ "type": "text",
580
+ "primaryKey": false,
581
+ "notNull": true,
582
+ "default": "'auto'"
583
+ },
584
+ "payload_config": {
585
+ "name": "payload_config",
586
+ "type": "jsonb",
587
+ "primaryKey": false,
588
+ "notNull": false,
589
+ "default": "'{}'::jsonb"
590
+ },
591
+ "pre_hook": {
592
+ "name": "pre_hook",
593
+ "type": "text",
594
+ "primaryKey": false,
595
+ "notNull": false
596
+ },
597
+ "post_hook": {
598
+ "name": "post_hook",
599
+ "type": "text",
600
+ "primaryKey": false,
601
+ "notNull": false
602
+ },
603
+ "hook_timeout_seconds": {
604
+ "name": "hook_timeout_seconds",
605
+ "type": "integer",
606
+ "primaryKey": false,
607
+ "notNull": true,
608
+ "default": 300
609
+ },
610
+ "compression_algo": {
611
+ "name": "compression_algo",
612
+ "type": "text",
613
+ "primaryKey": false,
614
+ "notNull": true,
615
+ "default": "'zstd'"
616
+ },
617
+ "encryption_at_rest": {
618
+ "name": "encryption_at_rest",
619
+ "type": "boolean",
620
+ "primaryKey": false,
621
+ "notNull": true,
622
+ "default": false
623
+ },
624
+ "created_by": {
625
+ "name": "created_by",
626
+ "type": "text",
627
+ "primaryKey": false,
628
+ "notNull": false
629
+ },
630
+ "deleted_at": {
631
+ "name": "deleted_at",
632
+ "type": "timestamp",
633
+ "primaryKey": false,
634
+ "notNull": false
635
+ },
636
+ "created_at": {
637
+ "name": "created_at",
638
+ "type": "timestamp",
639
+ "primaryKey": false,
640
+ "notNull": true,
641
+ "default": "now()"
642
+ },
643
+ "updated_at": {
644
+ "name": "updated_at",
645
+ "type": "timestamp",
646
+ "primaryKey": false,
647
+ "notNull": true,
648
+ "default": "now()"
649
+ }
650
+ },
651
+ "indexes": {
652
+ "uq_backup_policy_project_service": {
653
+ "name": "uq_backup_policy_project_service",
654
+ "columns": [
655
+ {
656
+ "expression": "project_id",
657
+ "isExpression": false,
658
+ "asc": true,
659
+ "nulls": "last"
660
+ },
661
+ {
662
+ "expression": "service_id",
663
+ "isExpression": false,
664
+ "asc": true,
665
+ "nulls": "last"
666
+ }
667
+ ],
668
+ "isUnique": true,
669
+ "where": "\"backup_policy\".\"deleted_at\" IS NULL",
670
+ "concurrently": false,
671
+ "method": "btree",
672
+ "with": {}
673
+ },
674
+ "uq_backup_policy_webhook_token": {
675
+ "name": "uq_backup_policy_webhook_token",
676
+ "columns": [
677
+ {
678
+ "expression": "webhook_token",
679
+ "isExpression": false,
680
+ "asc": true,
681
+ "nulls": "last"
682
+ }
683
+ ],
684
+ "isUnique": true,
685
+ "where": "\"backup_policy\".\"webhook_token\" IS NOT NULL",
686
+ "concurrently": false,
687
+ "method": "btree",
688
+ "with": {}
689
+ },
690
+ "idx_backup_policy_project": {
691
+ "name": "idx_backup_policy_project",
692
+ "columns": [
693
+ {
694
+ "expression": "project_id",
695
+ "isExpression": false,
696
+ "asc": true,
697
+ "nulls": "last"
698
+ }
699
+ ],
700
+ "isUnique": false,
701
+ "concurrently": false,
702
+ "method": "btree",
703
+ "with": {}
704
+ },
705
+ "idx_backup_policy_destination": {
706
+ "name": "idx_backup_policy_destination",
707
+ "columns": [
708
+ {
709
+ "expression": "destination_id",
710
+ "isExpression": false,
711
+ "asc": true,
712
+ "nulls": "last"
713
+ }
714
+ ],
715
+ "isUnique": false,
716
+ "concurrently": false,
717
+ "method": "btree",
718
+ "with": {}
719
+ }
720
+ },
721
+ "foreignKeys": {
722
+ "backup_policy_project_id_project_id_fk": {
723
+ "name": "backup_policy_project_id_project_id_fk",
724
+ "tableFrom": "backup_policy",
725
+ "tableTo": "project",
726
+ "columnsFrom": ["project_id"],
727
+ "columnsTo": ["id"],
728
+ "onDelete": "cascade",
729
+ "onUpdate": "no action"
730
+ },
731
+ "backup_policy_service_id_service_id_fk": {
732
+ "name": "backup_policy_service_id_service_id_fk",
733
+ "tableFrom": "backup_policy",
734
+ "tableTo": "service",
735
+ "columnsFrom": ["service_id"],
736
+ "columnsTo": ["id"],
737
+ "onDelete": "cascade",
738
+ "onUpdate": "no action"
739
+ },
740
+ "backup_policy_destination_id_backup_destination_id_fk": {
741
+ "name": "backup_policy_destination_id_backup_destination_id_fk",
742
+ "tableFrom": "backup_policy",
743
+ "tableTo": "backup_destination",
744
+ "columnsFrom": ["destination_id"],
745
+ "columnsTo": ["id"],
746
+ "onDelete": "restrict",
747
+ "onUpdate": "no action"
748
+ },
749
+ "backup_policy_created_by_user_id_fk": {
750
+ "name": "backup_policy_created_by_user_id_fk",
751
+ "tableFrom": "backup_policy",
752
+ "tableTo": "user",
753
+ "columnsFrom": ["created_by"],
754
+ "columnsTo": ["id"],
755
+ "onDelete": "no action",
756
+ "onUpdate": "no action"
757
+ }
758
+ },
759
+ "compositePrimaryKeys": {},
760
+ "uniqueConstraints": {},
761
+ "policies": {},
762
+ "checkConstraints": {},
763
+ "isRLSEnabled": false
764
+ },
765
+ "public.backup_restore": {
766
+ "name": "backup_restore",
767
+ "schema": "",
768
+ "columns": {
769
+ "id": {
770
+ "name": "id",
771
+ "type": "text",
772
+ "primaryKey": true,
773
+ "notNull": true
774
+ },
775
+ "run_id": {
776
+ "name": "run_id",
777
+ "type": "text",
778
+ "primaryKey": false,
779
+ "notNull": true
780
+ },
781
+ "destination_id": {
782
+ "name": "destination_id",
783
+ "type": "text",
784
+ "primaryKey": false,
785
+ "notNull": true
786
+ },
787
+ "project_id": {
788
+ "name": "project_id",
789
+ "type": "text",
790
+ "primaryKey": false,
791
+ "notNull": false
792
+ },
793
+ "service_id": {
794
+ "name": "service_id",
795
+ "type": "text",
796
+ "primaryKey": false,
797
+ "notNull": false
798
+ },
799
+ "organization_id": {
800
+ "name": "organization_id",
801
+ "type": "text",
802
+ "primaryKey": false,
803
+ "notNull": true
804
+ },
805
+ "status": {
806
+ "name": "status",
807
+ "type": "text",
808
+ "primaryKey": false,
809
+ "notNull": true,
810
+ "default": "'queued'"
811
+ },
812
+ "mode": {
813
+ "name": "mode",
814
+ "type": "text",
815
+ "primaryKey": false,
816
+ "notNull": true,
817
+ "default": "'in_place'"
818
+ },
819
+ "fork_service_id": {
820
+ "name": "fork_service_id",
821
+ "type": "text",
822
+ "primaryKey": false,
823
+ "notNull": false
824
+ },
825
+ "started_at": {
826
+ "name": "started_at",
827
+ "type": "timestamp",
828
+ "primaryKey": false,
829
+ "notNull": true,
830
+ "default": "now()"
831
+ },
832
+ "finished_at": {
833
+ "name": "finished_at",
834
+ "type": "timestamp",
835
+ "primaryKey": false,
836
+ "notNull": false
837
+ },
838
+ "last_event_at": {
839
+ "name": "last_event_at",
840
+ "type": "timestamp",
841
+ "primaryKey": false,
842
+ "notNull": true,
843
+ "default": "now()"
844
+ },
845
+ "bytes_restored": {
846
+ "name": "bytes_restored",
847
+ "type": "bigint",
848
+ "primaryKey": false,
849
+ "notNull": false
850
+ },
851
+ "error_message": {
852
+ "name": "error_message",
853
+ "type": "text",
854
+ "primaryKey": false,
855
+ "notNull": false
856
+ },
857
+ "client_ip": {
858
+ "name": "client_ip",
859
+ "type": "text",
860
+ "primaryKey": false,
861
+ "notNull": false
862
+ },
863
+ "confirmation_token": {
864
+ "name": "confirmation_token",
865
+ "type": "text",
866
+ "primaryKey": false,
867
+ "notNull": false
868
+ }
869
+ },
870
+ "indexes": {
871
+ "idx_backup_restore_org_started": {
872
+ "name": "idx_backup_restore_org_started",
873
+ "columns": [
874
+ {
875
+ "expression": "organization_id",
876
+ "isExpression": false,
877
+ "asc": true,
878
+ "nulls": "last"
879
+ },
880
+ {
881
+ "expression": "started_at",
882
+ "isExpression": false,
883
+ "asc": true,
884
+ "nulls": "last"
885
+ }
886
+ ],
887
+ "isUnique": false,
888
+ "concurrently": false,
889
+ "method": "btree",
890
+ "with": {}
891
+ },
892
+ "idx_backup_restore_run": {
893
+ "name": "idx_backup_restore_run",
894
+ "columns": [
895
+ {
896
+ "expression": "run_id",
897
+ "isExpression": false,
898
+ "asc": true,
899
+ "nulls": "last"
900
+ }
901
+ ],
902
+ "isUnique": false,
903
+ "concurrently": false,
904
+ "method": "btree",
905
+ "with": {}
906
+ }
907
+ },
908
+ "foreignKeys": {
909
+ "backup_restore_run_id_backup_run_id_fk": {
910
+ "name": "backup_restore_run_id_backup_run_id_fk",
911
+ "tableFrom": "backup_restore",
912
+ "tableTo": "backup_run",
913
+ "columnsFrom": ["run_id"],
914
+ "columnsTo": ["id"],
915
+ "onDelete": "restrict",
916
+ "onUpdate": "no action"
917
+ },
918
+ "backup_restore_destination_id_backup_destination_id_fk": {
919
+ "name": "backup_restore_destination_id_backup_destination_id_fk",
920
+ "tableFrom": "backup_restore",
921
+ "tableTo": "backup_destination",
922
+ "columnsFrom": ["destination_id"],
923
+ "columnsTo": ["id"],
924
+ "onDelete": "restrict",
925
+ "onUpdate": "no action"
926
+ },
927
+ "backup_restore_project_id_project_id_fk": {
928
+ "name": "backup_restore_project_id_project_id_fk",
929
+ "tableFrom": "backup_restore",
930
+ "tableTo": "project",
931
+ "columnsFrom": ["project_id"],
932
+ "columnsTo": ["id"],
933
+ "onDelete": "set null",
934
+ "onUpdate": "no action"
935
+ },
936
+ "backup_restore_service_id_service_id_fk": {
937
+ "name": "backup_restore_service_id_service_id_fk",
938
+ "tableFrom": "backup_restore",
939
+ "tableTo": "service",
940
+ "columnsFrom": ["service_id"],
941
+ "columnsTo": ["id"],
942
+ "onDelete": "set null",
943
+ "onUpdate": "no action"
944
+ },
945
+ "backup_restore_organization_id_organization_id_fk": {
946
+ "name": "backup_restore_organization_id_organization_id_fk",
947
+ "tableFrom": "backup_restore",
948
+ "tableTo": "organization",
949
+ "columnsFrom": ["organization_id"],
950
+ "columnsTo": ["id"],
951
+ "onDelete": "cascade",
952
+ "onUpdate": "no action"
953
+ },
954
+ "backup_restore_fork_service_id_service_id_fk": {
955
+ "name": "backup_restore_fork_service_id_service_id_fk",
956
+ "tableFrom": "backup_restore",
957
+ "tableTo": "service",
958
+ "columnsFrom": ["fork_service_id"],
959
+ "columnsTo": ["id"],
960
+ "onDelete": "set null",
961
+ "onUpdate": "no action"
962
+ }
963
+ },
964
+ "compositePrimaryKeys": {},
965
+ "uniqueConstraints": {},
966
+ "policies": {},
967
+ "checkConstraints": {},
968
+ "isRLSEnabled": false
969
+ },
970
+ "public.backup_run": {
971
+ "name": "backup_run",
972
+ "schema": "",
973
+ "columns": {
974
+ "id": {
975
+ "name": "id",
976
+ "type": "text",
977
+ "primaryKey": true,
978
+ "notNull": true
979
+ },
980
+ "policy_id": {
981
+ "name": "policy_id",
982
+ "type": "text",
983
+ "primaryKey": false,
984
+ "notNull": false
985
+ },
986
+ "destination_id": {
987
+ "name": "destination_id",
988
+ "type": "text",
989
+ "primaryKey": false,
990
+ "notNull": false
991
+ },
992
+ "project_id": {
993
+ "name": "project_id",
994
+ "type": "text",
995
+ "primaryKey": false,
996
+ "notNull": false
997
+ },
998
+ "service_id": {
999
+ "name": "service_id",
1000
+ "type": "text",
1001
+ "primaryKey": false,
1002
+ "notNull": false
1003
+ },
1004
+ "organization_id": {
1005
+ "name": "organization_id",
1006
+ "type": "text",
1007
+ "primaryKey": false,
1008
+ "notNull": true
1009
+ },
1010
+ "status": {
1011
+ "name": "status",
1012
+ "type": "text",
1013
+ "primaryKey": false,
1014
+ "notNull": true,
1015
+ "default": "'queued'"
1016
+ },
1017
+ "triggered_by": {
1018
+ "name": "triggered_by",
1019
+ "type": "text",
1020
+ "primaryKey": false,
1021
+ "notNull": true
1022
+ },
1023
+ "triggered_by_user_id": {
1024
+ "name": "triggered_by_user_id",
1025
+ "type": "text",
1026
+ "primaryKey": false,
1027
+ "notNull": false
1028
+ },
1029
+ "client_ip": {
1030
+ "name": "client_ip",
1031
+ "type": "text",
1032
+ "primaryKey": false,
1033
+ "notNull": false
1034
+ },
1035
+ "started_at": {
1036
+ "name": "started_at",
1037
+ "type": "timestamp",
1038
+ "primaryKey": false,
1039
+ "notNull": true,
1040
+ "default": "now()"
1041
+ },
1042
+ "finished_at": {
1043
+ "name": "finished_at",
1044
+ "type": "timestamp",
1045
+ "primaryKey": false,
1046
+ "notNull": false
1047
+ },
1048
+ "last_event_at": {
1049
+ "name": "last_event_at",
1050
+ "type": "timestamp",
1051
+ "primaryKey": false,
1052
+ "notNull": true,
1053
+ "default": "now()"
1054
+ },
1055
+ "object_key_prefix": {
1056
+ "name": "object_key_prefix",
1057
+ "type": "text",
1058
+ "primaryKey": false,
1059
+ "notNull": false
1060
+ },
1061
+ "manifest_key": {
1062
+ "name": "manifest_key",
1063
+ "type": "text",
1064
+ "primaryKey": false,
1065
+ "notNull": false
1066
+ },
1067
+ "bytes_transferred": {
1068
+ "name": "bytes_transferred",
1069
+ "type": "bigint",
1070
+ "primaryKey": false,
1071
+ "notNull": false
1072
+ },
1073
+ "artifacts": {
1074
+ "name": "artifacts",
1075
+ "type": "jsonb",
1076
+ "primaryKey": false,
1077
+ "notNull": false,
1078
+ "default": "'[]'::jsonb"
1079
+ },
1080
+ "error_message": {
1081
+ "name": "error_message",
1082
+ "type": "text",
1083
+ "primaryKey": false,
1084
+ "notNull": false
1085
+ },
1086
+ "hook_log": {
1087
+ "name": "hook_log",
1088
+ "type": "text",
1089
+ "primaryKey": false,
1090
+ "notNull": false
1091
+ },
1092
+ "retention_locked_until": {
1093
+ "name": "retention_locked_until",
1094
+ "type": "timestamp",
1095
+ "primaryKey": false,
1096
+ "notNull": false
1097
+ },
1098
+ "deleted_at": {
1099
+ "name": "deleted_at",
1100
+ "type": "timestamp",
1101
+ "primaryKey": false,
1102
+ "notNull": false
1103
+ }
1104
+ },
1105
+ "indexes": {
1106
+ "idx_backup_run_org_started": {
1107
+ "name": "idx_backup_run_org_started",
1108
+ "columns": [
1109
+ {
1110
+ "expression": "organization_id",
1111
+ "isExpression": false,
1112
+ "asc": true,
1113
+ "nulls": "last"
1114
+ },
1115
+ {
1116
+ "expression": "started_at",
1117
+ "isExpression": false,
1118
+ "asc": true,
1119
+ "nulls": "last"
1120
+ }
1121
+ ],
1122
+ "isUnique": false,
1123
+ "concurrently": false,
1124
+ "method": "btree",
1125
+ "with": {}
1126
+ },
1127
+ "idx_backup_run_destination_started": {
1128
+ "name": "idx_backup_run_destination_started",
1129
+ "columns": [
1130
+ {
1131
+ "expression": "destination_id",
1132
+ "isExpression": false,
1133
+ "asc": true,
1134
+ "nulls": "last"
1135
+ },
1136
+ {
1137
+ "expression": "started_at",
1138
+ "isExpression": false,
1139
+ "asc": true,
1140
+ "nulls": "last"
1141
+ }
1142
+ ],
1143
+ "isUnique": false,
1144
+ "concurrently": false,
1145
+ "method": "btree",
1146
+ "with": {}
1147
+ },
1148
+ "idx_backup_run_project_started": {
1149
+ "name": "idx_backup_run_project_started",
1150
+ "columns": [
1151
+ {
1152
+ "expression": "project_id",
1153
+ "isExpression": false,
1154
+ "asc": true,
1155
+ "nulls": "last"
1156
+ },
1157
+ {
1158
+ "expression": "started_at",
1159
+ "isExpression": false,
1160
+ "asc": true,
1161
+ "nulls": "last"
1162
+ }
1163
+ ],
1164
+ "isUnique": false,
1165
+ "concurrently": false,
1166
+ "method": "btree",
1167
+ "with": {}
1168
+ },
1169
+ "idx_backup_run_in_flight": {
1170
+ "name": "idx_backup_run_in_flight",
1171
+ "columns": [
1172
+ {
1173
+ "expression": "status",
1174
+ "isExpression": false,
1175
+ "asc": true,
1176
+ "nulls": "last"
1177
+ }
1178
+ ],
1179
+ "isUnique": false,
1180
+ "where": "\"backup_run\".\"status\" IN ('queued','preparing','snapshotting','uploading','verifying')",
1181
+ "concurrently": false,
1182
+ "method": "btree",
1183
+ "with": {}
1184
+ }
1185
+ },
1186
+ "foreignKeys": {
1187
+ "backup_run_policy_id_backup_policy_id_fk": {
1188
+ "name": "backup_run_policy_id_backup_policy_id_fk",
1189
+ "tableFrom": "backup_run",
1190
+ "tableTo": "backup_policy",
1191
+ "columnsFrom": ["policy_id"],
1192
+ "columnsTo": ["id"],
1193
+ "onDelete": "set null",
1194
+ "onUpdate": "no action"
1195
+ },
1196
+ "backup_run_destination_id_backup_destination_id_fk": {
1197
+ "name": "backup_run_destination_id_backup_destination_id_fk",
1198
+ "tableFrom": "backup_run",
1199
+ "tableTo": "backup_destination",
1200
+ "columnsFrom": ["destination_id"],
1201
+ "columnsTo": ["id"],
1202
+ "onDelete": "set null",
1203
+ "onUpdate": "no action"
1204
+ },
1205
+ "backup_run_project_id_project_id_fk": {
1206
+ "name": "backup_run_project_id_project_id_fk",
1207
+ "tableFrom": "backup_run",
1208
+ "tableTo": "project",
1209
+ "columnsFrom": ["project_id"],
1210
+ "columnsTo": ["id"],
1211
+ "onDelete": "set null",
1212
+ "onUpdate": "no action"
1213
+ },
1214
+ "backup_run_service_id_service_id_fk": {
1215
+ "name": "backup_run_service_id_service_id_fk",
1216
+ "tableFrom": "backup_run",
1217
+ "tableTo": "service",
1218
+ "columnsFrom": ["service_id"],
1219
+ "columnsTo": ["id"],
1220
+ "onDelete": "set null",
1221
+ "onUpdate": "no action"
1222
+ },
1223
+ "backup_run_organization_id_organization_id_fk": {
1224
+ "name": "backup_run_organization_id_organization_id_fk",
1225
+ "tableFrom": "backup_run",
1226
+ "tableTo": "organization",
1227
+ "columnsFrom": ["organization_id"],
1228
+ "columnsTo": ["id"],
1229
+ "onDelete": "cascade",
1230
+ "onUpdate": "no action"
1231
+ },
1232
+ "backup_run_triggered_by_user_id_user_id_fk": {
1233
+ "name": "backup_run_triggered_by_user_id_user_id_fk",
1234
+ "tableFrom": "backup_run",
1235
+ "tableTo": "user",
1236
+ "columnsFrom": ["triggered_by_user_id"],
1237
+ "columnsTo": ["id"],
1238
+ "onDelete": "no action",
1239
+ "onUpdate": "no action"
1240
+ }
1241
+ },
1242
+ "compositePrimaryKeys": {},
1243
+ "uniqueConstraints": {},
1244
+ "policies": {},
1245
+ "checkConstraints": {},
1246
+ "isRLSEnabled": false
1247
+ },
1248
+ "public.build_session": {
1249
+ "name": "build_session",
1250
+ "schema": "",
1251
+ "columns": {
1252
+ "id": {
1253
+ "name": "id",
1254
+ "type": "text",
1255
+ "primaryKey": true,
1256
+ "notNull": true
1257
+ },
1258
+ "deployment_id": {
1259
+ "name": "deployment_id",
1260
+ "type": "text",
1261
+ "primaryKey": false,
1262
+ "notNull": true
1263
+ },
1264
+ "project_id": {
1265
+ "name": "project_id",
1266
+ "type": "text",
1267
+ "primaryKey": false,
1268
+ "notNull": true
1269
+ },
1270
+ "status": {
1271
+ "name": "status",
1272
+ "type": "text",
1273
+ "primaryKey": false,
1274
+ "notNull": true,
1275
+ "default": "'queued'"
1276
+ },
1277
+ "logs": {
1278
+ "name": "logs",
1279
+ "type": "jsonb",
1280
+ "primaryKey": false,
1281
+ "notNull": false
1282
+ },
1283
+ "duration_ms": {
1284
+ "name": "duration_ms",
1285
+ "type": "integer",
1286
+ "primaryKey": false,
1287
+ "notNull": false
1288
+ },
1289
+ "started_at": {
1290
+ "name": "started_at",
1291
+ "type": "timestamp",
1292
+ "primaryKey": false,
1293
+ "notNull": false
1294
+ },
1295
+ "finished_at": {
1296
+ "name": "finished_at",
1297
+ "type": "timestamp",
1298
+ "primaryKey": false,
1299
+ "notNull": false
1300
+ },
1301
+ "created_at": {
1302
+ "name": "created_at",
1303
+ "type": "timestamp",
1304
+ "primaryKey": false,
1305
+ "notNull": true,
1306
+ "default": "now()"
1307
+ }
1308
+ },
1309
+ "indexes": {},
1310
+ "foreignKeys": {
1311
+ "build_session_deployment_id_deployment_id_fk": {
1312
+ "name": "build_session_deployment_id_deployment_id_fk",
1313
+ "tableFrom": "build_session",
1314
+ "tableTo": "deployment",
1315
+ "columnsFrom": ["deployment_id"],
1316
+ "columnsTo": ["id"],
1317
+ "onDelete": "cascade",
1318
+ "onUpdate": "no action"
1319
+ },
1320
+ "build_session_project_id_project_id_fk": {
1321
+ "name": "build_session_project_id_project_id_fk",
1322
+ "tableFrom": "build_session",
1323
+ "tableTo": "project",
1324
+ "columnsFrom": ["project_id"],
1325
+ "columnsTo": ["id"],
1326
+ "onDelete": "cascade",
1327
+ "onUpdate": "no action"
1328
+ }
1329
+ },
1330
+ "compositePrimaryKeys": {},
1331
+ "uniqueConstraints": {},
1332
+ "policies": {},
1333
+ "checkConstraints": {},
1334
+ "isRLSEnabled": false
1335
+ },
1336
+ "public.cloud_handoff_code": {
1337
+ "name": "cloud_handoff_code",
1338
+ "schema": "",
1339
+ "columns": {
1340
+ "code": {
1341
+ "name": "code",
1342
+ "type": "text",
1343
+ "primaryKey": true,
1344
+ "notNull": true
1345
+ },
1346
+ "user_data": {
1347
+ "name": "user_data",
1348
+ "type": "jsonb",
1349
+ "primaryKey": false,
1350
+ "notNull": true
1351
+ },
1352
+ "session_token": {
1353
+ "name": "session_token",
1354
+ "type": "text",
1355
+ "primaryKey": false,
1356
+ "notNull": true
1357
+ },
1358
+ "code_challenge": {
1359
+ "name": "code_challenge",
1360
+ "type": "text",
1361
+ "primaryKey": false,
1362
+ "notNull": false
1363
+ },
1364
+ "expires_at": {
1365
+ "name": "expires_at",
1366
+ "type": "timestamp",
1367
+ "primaryKey": false,
1368
+ "notNull": true
1369
+ },
1370
+ "created_at": {
1371
+ "name": "created_at",
1372
+ "type": "timestamp",
1373
+ "primaryKey": false,
1374
+ "notNull": true,
1375
+ "default": "now()"
1376
+ }
1377
+ },
1378
+ "indexes": {
1379
+ "cloud_handoff_code_expires_idx": {
1380
+ "name": "cloud_handoff_code_expires_idx",
1381
+ "columns": [
1382
+ {
1383
+ "expression": "expires_at",
1384
+ "isExpression": false,
1385
+ "asc": true,
1386
+ "nulls": "last"
1387
+ }
1388
+ ],
1389
+ "isUnique": false,
1390
+ "concurrently": false,
1391
+ "method": "btree",
1392
+ "with": {}
1393
+ }
1394
+ },
1395
+ "foreignKeys": {},
1396
+ "compositePrimaryKeys": {},
1397
+ "uniqueConstraints": {},
1398
+ "policies": {},
1399
+ "checkConstraints": {},
1400
+ "isRLSEnabled": false
1401
+ },
1402
+ "public.deployment": {
1403
+ "name": "deployment",
1404
+ "schema": "",
1405
+ "columns": {
1406
+ "id": {
1407
+ "name": "id",
1408
+ "type": "text",
1409
+ "primaryKey": true,
1410
+ "notNull": true
1411
+ },
1412
+ "project_id": {
1413
+ "name": "project_id",
1414
+ "type": "text",
1415
+ "primaryKey": false,
1416
+ "notNull": true
1417
+ },
1418
+ "organization_id": {
1419
+ "name": "organization_id",
1420
+ "type": "text",
1421
+ "primaryKey": false,
1422
+ "notNull": true
1423
+ },
1424
+ "branch": {
1425
+ "name": "branch",
1426
+ "type": "text",
1427
+ "primaryKey": false,
1428
+ "notNull": true
1429
+ },
1430
+ "commit_sha": {
1431
+ "name": "commit_sha",
1432
+ "type": "text",
1433
+ "primaryKey": false,
1434
+ "notNull": false
1435
+ },
1436
+ "commit_message": {
1437
+ "name": "commit_message",
1438
+ "type": "text",
1439
+ "primaryKey": false,
1440
+ "notNull": false
1441
+ },
1442
+ "trigger": {
1443
+ "name": "trigger",
1444
+ "type": "text",
1445
+ "primaryKey": false,
1446
+ "notNull": true,
1447
+ "default": "'manual'"
1448
+ },
1449
+ "environment": {
1450
+ "name": "environment",
1451
+ "type": "text",
1452
+ "primaryKey": false,
1453
+ "notNull": true,
1454
+ "default": "'production'"
1455
+ },
1456
+ "framework": {
1457
+ "name": "framework",
1458
+ "type": "text",
1459
+ "primaryKey": false,
1460
+ "notNull": false
1461
+ },
1462
+ "status": {
1463
+ "name": "status",
1464
+ "type": "text",
1465
+ "primaryKey": false,
1466
+ "notNull": true,
1467
+ "default": "'queued'"
1468
+ },
1469
+ "image_ref": {
1470
+ "name": "image_ref",
1471
+ "type": "text",
1472
+ "primaryKey": false,
1473
+ "notNull": false
1474
+ },
1475
+ "build_duration_ms": {
1476
+ "name": "build_duration_ms",
1477
+ "type": "integer",
1478
+ "primaryKey": false,
1479
+ "notNull": false
1480
+ },
1481
+ "container_id": {
1482
+ "name": "container_id",
1483
+ "type": "text",
1484
+ "primaryKey": false,
1485
+ "notNull": false
1486
+ },
1487
+ "url": {
1488
+ "name": "url",
1489
+ "type": "text",
1490
+ "primaryKey": false,
1491
+ "notNull": false
1492
+ },
1493
+ "meta": {
1494
+ "name": "meta",
1495
+ "type": "jsonb",
1496
+ "primaryKey": false,
1497
+ "notNull": false
1498
+ },
1499
+ "env_vars": {
1500
+ "name": "env_vars",
1501
+ "type": "jsonb",
1502
+ "primaryKey": false,
1503
+ "notNull": false
1504
+ },
1505
+ "error_message": {
1506
+ "name": "error_message",
1507
+ "type": "text",
1508
+ "primaryKey": false,
1509
+ "notNull": false
1510
+ },
1511
+ "artifact_retained_at": {
1512
+ "name": "artifact_retained_at",
1513
+ "type": "timestamp",
1514
+ "primaryKey": false,
1515
+ "notNull": false
1516
+ },
1517
+ "pinned": {
1518
+ "name": "pinned",
1519
+ "type": "boolean",
1520
+ "primaryKey": false,
1521
+ "notNull": true,
1522
+ "default": false
1523
+ },
1524
+ "created_at": {
1525
+ "name": "created_at",
1526
+ "type": "timestamp",
1527
+ "primaryKey": false,
1528
+ "notNull": true,
1529
+ "default": "now()"
1530
+ },
1531
+ "updated_at": {
1532
+ "name": "updated_at",
1533
+ "type": "timestamp",
1534
+ "primaryKey": false,
1535
+ "notNull": true,
1536
+ "default": "now()"
1537
+ }
1538
+ },
1539
+ "indexes": {},
1540
+ "foreignKeys": {
1541
+ "deployment_project_id_project_id_fk": {
1542
+ "name": "deployment_project_id_project_id_fk",
1543
+ "tableFrom": "deployment",
1544
+ "tableTo": "project",
1545
+ "columnsFrom": ["project_id"],
1546
+ "columnsTo": ["id"],
1547
+ "onDelete": "cascade",
1548
+ "onUpdate": "no action"
1549
+ },
1550
+ "deployment_organization_id_organization_id_fk": {
1551
+ "name": "deployment_organization_id_organization_id_fk",
1552
+ "tableFrom": "deployment",
1553
+ "tableTo": "organization",
1554
+ "columnsFrom": ["organization_id"],
1555
+ "columnsTo": ["id"],
1556
+ "onDelete": "cascade",
1557
+ "onUpdate": "no action"
1558
+ }
1559
+ },
1560
+ "compositePrimaryKeys": {},
1561
+ "uniqueConstraints": {},
1562
+ "policies": {},
1563
+ "checkConstraints": {},
1564
+ "isRLSEnabled": false
1565
+ },
1566
+ "public.domain": {
1567
+ "name": "domain",
1568
+ "schema": "",
1569
+ "columns": {
1570
+ "id": {
1571
+ "name": "id",
1572
+ "type": "text",
1573
+ "primaryKey": true,
1574
+ "notNull": true
1575
+ },
1576
+ "project_id": {
1577
+ "name": "project_id",
1578
+ "type": "text",
1579
+ "primaryKey": false,
1580
+ "notNull": true
1581
+ },
1582
+ "service_id": {
1583
+ "name": "service_id",
1584
+ "type": "text",
1585
+ "primaryKey": false,
1586
+ "notNull": false
1587
+ },
1588
+ "hostname": {
1589
+ "name": "hostname",
1590
+ "type": "text",
1591
+ "primaryKey": false,
1592
+ "notNull": true
1593
+ },
1594
+ "target_port": {
1595
+ "name": "target_port",
1596
+ "type": "integer",
1597
+ "primaryKey": false,
1598
+ "notNull": false
1599
+ },
1600
+ "target_path": {
1601
+ "name": "target_path",
1602
+ "type": "text",
1603
+ "primaryKey": false,
1604
+ "notNull": false
1605
+ },
1606
+ "domain_type": {
1607
+ "name": "domain_type",
1608
+ "type": "text",
1609
+ "primaryKey": false,
1610
+ "notNull": false
1611
+ },
1612
+ "is_primary": {
1613
+ "name": "is_primary",
1614
+ "type": "boolean",
1615
+ "primaryKey": false,
1616
+ "notNull": true,
1617
+ "default": false
1618
+ },
1619
+ "status": {
1620
+ "name": "status",
1621
+ "type": "text",
1622
+ "primaryKey": false,
1623
+ "notNull": true,
1624
+ "default": "'pending'"
1625
+ },
1626
+ "verification_token": {
1627
+ "name": "verification_token",
1628
+ "type": "text",
1629
+ "primaryKey": false,
1630
+ "notNull": false
1631
+ },
1632
+ "verified": {
1633
+ "name": "verified",
1634
+ "type": "boolean",
1635
+ "primaryKey": false,
1636
+ "notNull": true,
1637
+ "default": false
1638
+ },
1639
+ "verified_at": {
1640
+ "name": "verified_at",
1641
+ "type": "timestamp",
1642
+ "primaryKey": false,
1643
+ "notNull": false
1644
+ },
1645
+ "ssl_status": {
1646
+ "name": "ssl_status",
1647
+ "type": "text",
1648
+ "primaryKey": false,
1649
+ "notNull": true,
1650
+ "default": "'none'"
1651
+ },
1652
+ "ssl_issuer": {
1653
+ "name": "ssl_issuer",
1654
+ "type": "text",
1655
+ "primaryKey": false,
1656
+ "notNull": false
1657
+ },
1658
+ "ssl_expires_at": {
1659
+ "name": "ssl_expires_at",
1660
+ "type": "timestamp",
1661
+ "primaryKey": false,
1662
+ "notNull": false
1663
+ },
1664
+ "created_at": {
1665
+ "name": "created_at",
1666
+ "type": "timestamp",
1667
+ "primaryKey": false,
1668
+ "notNull": true,
1669
+ "default": "now()"
1670
+ },
1671
+ "updated_at": {
1672
+ "name": "updated_at",
1673
+ "type": "timestamp",
1674
+ "primaryKey": false,
1675
+ "notNull": true,
1676
+ "default": "now()"
1677
+ }
1678
+ },
1679
+ "indexes": {},
1680
+ "foreignKeys": {
1681
+ "domain_project_id_project_id_fk": {
1682
+ "name": "domain_project_id_project_id_fk",
1683
+ "tableFrom": "domain",
1684
+ "tableTo": "project",
1685
+ "columnsFrom": ["project_id"],
1686
+ "columnsTo": ["id"],
1687
+ "onDelete": "cascade",
1688
+ "onUpdate": "no action"
1689
+ }
1690
+ },
1691
+ "compositePrimaryKeys": {},
1692
+ "uniqueConstraints": {
1693
+ "domain_hostname_unique": {
1694
+ "name": "domain_hostname_unique",
1695
+ "nullsNotDistinct": false,
1696
+ "columns": ["hostname"]
1697
+ }
1698
+ },
1699
+ "policies": {},
1700
+ "checkConstraints": {},
1701
+ "isRLSEnabled": false
1702
+ },
1703
+ "public.env_var": {
1704
+ "name": "env_var",
1705
+ "schema": "",
1706
+ "columns": {
1707
+ "id": {
1708
+ "name": "id",
1709
+ "type": "text",
1710
+ "primaryKey": true,
1711
+ "notNull": true
1712
+ },
1713
+ "project_id": {
1714
+ "name": "project_id",
1715
+ "type": "text",
1716
+ "primaryKey": false,
1717
+ "notNull": true
1718
+ },
1719
+ "service_id": {
1720
+ "name": "service_id",
1721
+ "type": "text",
1722
+ "primaryKey": false,
1723
+ "notNull": false
1724
+ },
1725
+ "key": {
1726
+ "name": "key",
1727
+ "type": "text",
1728
+ "primaryKey": false,
1729
+ "notNull": true
1730
+ },
1731
+ "value": {
1732
+ "name": "value",
1733
+ "type": "text",
1734
+ "primaryKey": false,
1735
+ "notNull": true
1736
+ },
1737
+ "environment": {
1738
+ "name": "environment",
1739
+ "type": "text",
1740
+ "primaryKey": false,
1741
+ "notNull": true,
1742
+ "default": "'production'"
1743
+ },
1744
+ "is_secret": {
1745
+ "name": "is_secret",
1746
+ "type": "boolean",
1747
+ "primaryKey": false,
1748
+ "notNull": true,
1749
+ "default": false
1750
+ },
1751
+ "created_at": {
1752
+ "name": "created_at",
1753
+ "type": "timestamp",
1754
+ "primaryKey": false,
1755
+ "notNull": true,
1756
+ "default": "now()"
1757
+ },
1758
+ "updated_at": {
1759
+ "name": "updated_at",
1760
+ "type": "timestamp",
1761
+ "primaryKey": false,
1762
+ "notNull": true,
1763
+ "default": "now()"
1764
+ }
1765
+ },
1766
+ "indexes": {},
1767
+ "foreignKeys": {
1768
+ "env_var_project_id_project_id_fk": {
1769
+ "name": "env_var_project_id_project_id_fk",
1770
+ "tableFrom": "env_var",
1771
+ "tableTo": "project",
1772
+ "columnsFrom": ["project_id"],
1773
+ "columnsTo": ["id"],
1774
+ "onDelete": "cascade",
1775
+ "onUpdate": "no action"
1776
+ }
1777
+ },
1778
+ "compositePrimaryKeys": {},
1779
+ "uniqueConstraints": {},
1780
+ "policies": {},
1781
+ "checkConstraints": {},
1782
+ "isRLSEnabled": false
1783
+ },
1784
+ "public.git_installation": {
1785
+ "name": "git_installation",
1786
+ "schema": "",
1787
+ "columns": {
1788
+ "id": {
1789
+ "name": "id",
1790
+ "type": "text",
1791
+ "primaryKey": true,
1792
+ "notNull": true
1793
+ },
1794
+ "user_id": {
1795
+ "name": "user_id",
1796
+ "type": "text",
1797
+ "primaryKey": false,
1798
+ "notNull": true
1799
+ },
1800
+ "organization_id": {
1801
+ "name": "organization_id",
1802
+ "type": "text",
1803
+ "primaryKey": false,
1804
+ "notNull": true
1805
+ },
1806
+ "provider": {
1807
+ "name": "provider",
1808
+ "type": "text",
1809
+ "primaryKey": false,
1810
+ "notNull": true,
1811
+ "default": "'github'"
1812
+ },
1813
+ "installation_id": {
1814
+ "name": "installation_id",
1815
+ "type": "integer",
1816
+ "primaryKey": false,
1817
+ "notNull": true
1818
+ },
1819
+ "owner": {
1820
+ "name": "owner",
1821
+ "type": "text",
1822
+ "primaryKey": false,
1823
+ "notNull": true
1824
+ },
1825
+ "owner_type": {
1826
+ "name": "owner_type",
1827
+ "type": "text",
1828
+ "primaryKey": false,
1829
+ "notNull": true,
1830
+ "default": "'User'"
1831
+ },
1832
+ "provider_user_id": {
1833
+ "name": "provider_user_id",
1834
+ "type": "text",
1835
+ "primaryKey": false,
1836
+ "notNull": false
1837
+ },
1838
+ "provider_owner_id": {
1839
+ "name": "provider_owner_id",
1840
+ "type": "text",
1841
+ "primaryKey": false,
1842
+ "notNull": false
1843
+ },
1844
+ "is_org": {
1845
+ "name": "is_org",
1846
+ "type": "boolean",
1847
+ "primaryKey": false,
1848
+ "notNull": true,
1849
+ "default": false
1850
+ },
1851
+ "created_at": {
1852
+ "name": "created_at",
1853
+ "type": "timestamp",
1854
+ "primaryKey": false,
1855
+ "notNull": true,
1856
+ "default": "now()"
1857
+ },
1858
+ "updated_at": {
1859
+ "name": "updated_at",
1860
+ "type": "timestamp",
1861
+ "primaryKey": false,
1862
+ "notNull": true,
1863
+ "default": "now()"
1864
+ }
1865
+ },
1866
+ "indexes": {},
1867
+ "foreignKeys": {
1868
+ "git_installation_user_id_user_id_fk": {
1869
+ "name": "git_installation_user_id_user_id_fk",
1870
+ "tableFrom": "git_installation",
1871
+ "tableTo": "user",
1872
+ "columnsFrom": ["user_id"],
1873
+ "columnsTo": ["id"],
1874
+ "onDelete": "cascade",
1875
+ "onUpdate": "no action"
1876
+ },
1877
+ "git_installation_organization_id_organization_id_fk": {
1878
+ "name": "git_installation_organization_id_organization_id_fk",
1879
+ "tableFrom": "git_installation",
1880
+ "tableTo": "organization",
1881
+ "columnsFrom": ["organization_id"],
1882
+ "columnsTo": ["id"],
1883
+ "onDelete": "cascade",
1884
+ "onUpdate": "no action"
1885
+ }
1886
+ },
1887
+ "compositePrimaryKeys": {},
1888
+ "uniqueConstraints": {},
1889
+ "policies": {},
1890
+ "checkConstraints": {},
1891
+ "isRLSEnabled": false
1892
+ },
1893
+ "public.instance_settings": {
1894
+ "name": "instance_settings",
1895
+ "schema": "",
1896
+ "columns": {
1897
+ "id": {
1898
+ "name": "id",
1899
+ "type": "text",
1900
+ "primaryKey": true,
1901
+ "notNull": true,
1902
+ "default": "'default'"
1903
+ },
1904
+ "tunnel_provider": {
1905
+ "name": "tunnel_provider",
1906
+ "type": "text",
1907
+ "primaryKey": false,
1908
+ "notNull": false
1909
+ },
1910
+ "tunnel_token": {
1911
+ "name": "tunnel_token",
1912
+ "type": "text",
1913
+ "primaryKey": false,
1914
+ "notNull": false
1915
+ },
1916
+ "auth_mode": {
1917
+ "name": "auth_mode",
1918
+ "type": "text",
1919
+ "primaryKey": false,
1920
+ "notNull": true,
1921
+ "default": "'none'"
1922
+ },
1923
+ "default_build_mode": {
1924
+ "name": "default_build_mode",
1925
+ "type": "text",
1926
+ "primaryKey": false,
1927
+ "notNull": true,
1928
+ "default": "'auto'"
1929
+ },
1930
+ "default_rollback_window": {
1931
+ "name": "default_rollback_window",
1932
+ "type": "integer",
1933
+ "primaryKey": false,
1934
+ "notNull": true,
1935
+ "default": 5
1936
+ },
1937
+ "created_at": {
1938
+ "name": "created_at",
1939
+ "type": "timestamp",
1940
+ "primaryKey": false,
1941
+ "notNull": true,
1942
+ "default": "now()"
1943
+ },
1944
+ "updated_at": {
1945
+ "name": "updated_at",
1946
+ "type": "timestamp",
1947
+ "primaryKey": false,
1948
+ "notNull": true,
1949
+ "default": "now()"
1950
+ }
1951
+ },
1952
+ "indexes": {},
1953
+ "foreignKeys": {},
1954
+ "compositePrimaryKeys": {},
1955
+ "uniqueConstraints": {},
1956
+ "policies": {},
1957
+ "checkConstraints": {},
1958
+ "isRLSEnabled": false
1959
+ },
1960
+ "public.invitation": {
1961
+ "name": "invitation",
1962
+ "schema": "",
1963
+ "columns": {
1964
+ "id": {
1965
+ "name": "id",
1966
+ "type": "text",
1967
+ "primaryKey": true,
1968
+ "notNull": true
1969
+ },
1970
+ "organization_id": {
1971
+ "name": "organization_id",
1972
+ "type": "text",
1973
+ "primaryKey": false,
1974
+ "notNull": true
1975
+ },
1976
+ "email": {
1977
+ "name": "email",
1978
+ "type": "text",
1979
+ "primaryKey": false,
1980
+ "notNull": true
1981
+ },
1982
+ "role": {
1983
+ "name": "role",
1984
+ "type": "text",
1985
+ "primaryKey": false,
1986
+ "notNull": true,
1987
+ "default": "'member'"
1988
+ },
1989
+ "status": {
1990
+ "name": "status",
1991
+ "type": "text",
1992
+ "primaryKey": false,
1993
+ "notNull": true,
1994
+ "default": "'pending'"
1995
+ },
1996
+ "inviter_id": {
1997
+ "name": "inviter_id",
1998
+ "type": "text",
1999
+ "primaryKey": false,
2000
+ "notNull": true
2001
+ },
2002
+ "expires_at": {
2003
+ "name": "expires_at",
2004
+ "type": "timestamp",
2005
+ "primaryKey": false,
2006
+ "notNull": true
2007
+ },
2008
+ "created_at": {
2009
+ "name": "created_at",
2010
+ "type": "timestamp",
2011
+ "primaryKey": false,
2012
+ "notNull": true,
2013
+ "default": "now()"
2014
+ }
2015
+ },
2016
+ "indexes": {
2017
+ "invitation_org_idx": {
2018
+ "name": "invitation_org_idx",
2019
+ "columns": [
2020
+ {
2021
+ "expression": "organization_id",
2022
+ "isExpression": false,
2023
+ "asc": true,
2024
+ "nulls": "last"
2025
+ }
2026
+ ],
2027
+ "isUnique": false,
2028
+ "concurrently": false,
2029
+ "method": "btree",
2030
+ "with": {}
2031
+ },
2032
+ "invitation_email_idx": {
2033
+ "name": "invitation_email_idx",
2034
+ "columns": [
2035
+ {
2036
+ "expression": "email",
2037
+ "isExpression": false,
2038
+ "asc": true,
2039
+ "nulls": "last"
2040
+ }
2041
+ ],
2042
+ "isUnique": false,
2043
+ "concurrently": false,
2044
+ "method": "btree",
2045
+ "with": {}
2046
+ }
2047
+ },
2048
+ "foreignKeys": {
2049
+ "invitation_organization_id_organization_id_fk": {
2050
+ "name": "invitation_organization_id_organization_id_fk",
2051
+ "tableFrom": "invitation",
2052
+ "tableTo": "organization",
2053
+ "columnsFrom": ["organization_id"],
2054
+ "columnsTo": ["id"],
2055
+ "onDelete": "cascade",
2056
+ "onUpdate": "no action"
2057
+ },
2058
+ "invitation_inviter_id_user_id_fk": {
2059
+ "name": "invitation_inviter_id_user_id_fk",
2060
+ "tableFrom": "invitation",
2061
+ "tableTo": "user",
2062
+ "columnsFrom": ["inviter_id"],
2063
+ "columnsTo": ["id"],
2064
+ "onDelete": "cascade",
2065
+ "onUpdate": "no action"
2066
+ }
2067
+ },
2068
+ "compositePrimaryKeys": {},
2069
+ "uniqueConstraints": {},
2070
+ "policies": {},
2071
+ "checkConstraints": {},
2072
+ "isRLSEnabled": false
2073
+ },
2074
+ "public.invitation_pending_grant": {
2075
+ "name": "invitation_pending_grant",
2076
+ "schema": "",
2077
+ "columns": {
2078
+ "id": {
2079
+ "name": "id",
2080
+ "type": "text",
2081
+ "primaryKey": true,
2082
+ "notNull": true
2083
+ },
2084
+ "invitation_id": {
2085
+ "name": "invitation_id",
2086
+ "type": "text",
2087
+ "primaryKey": false,
2088
+ "notNull": true
2089
+ },
2090
+ "resource_type": {
2091
+ "name": "resource_type",
2092
+ "type": "text",
2093
+ "primaryKey": false,
2094
+ "notNull": true
2095
+ },
2096
+ "resource_id": {
2097
+ "name": "resource_id",
2098
+ "type": "text",
2099
+ "primaryKey": false,
2100
+ "notNull": true
2101
+ },
2102
+ "permissions_json": {
2103
+ "name": "permissions_json",
2104
+ "type": "text",
2105
+ "primaryKey": false,
2106
+ "notNull": true,
2107
+ "default": "'[]'"
2108
+ },
2109
+ "created_at": {
2110
+ "name": "created_at",
2111
+ "type": "timestamp",
2112
+ "primaryKey": false,
2113
+ "notNull": true,
2114
+ "default": "now()"
2115
+ }
2116
+ },
2117
+ "indexes": {
2118
+ "invitation_pending_grant_invitation_idx": {
2119
+ "name": "invitation_pending_grant_invitation_idx",
2120
+ "columns": [
2121
+ {
2122
+ "expression": "invitation_id",
2123
+ "isExpression": false,
2124
+ "asc": true,
2125
+ "nulls": "last"
2126
+ }
2127
+ ],
2128
+ "isUnique": false,
2129
+ "concurrently": false,
2130
+ "method": "btree",
2131
+ "with": {}
2132
+ }
2133
+ },
2134
+ "foreignKeys": {
2135
+ "invitation_pending_grant_invitation_id_invitation_id_fk": {
2136
+ "name": "invitation_pending_grant_invitation_id_invitation_id_fk",
2137
+ "tableFrom": "invitation_pending_grant",
2138
+ "tableTo": "invitation",
2139
+ "columnsFrom": ["invitation_id"],
2140
+ "columnsTo": ["id"],
2141
+ "onDelete": "cascade",
2142
+ "onUpdate": "no action"
2143
+ }
2144
+ },
2145
+ "compositePrimaryKeys": {},
2146
+ "uniqueConstraints": {},
2147
+ "policies": {},
2148
+ "checkConstraints": {},
2149
+ "isRLSEnabled": false
2150
+ },
2151
+ "public.mail_servers": {
2152
+ "name": "mail_servers",
2153
+ "schema": "",
2154
+ "columns": {
2155
+ "server_id": {
2156
+ "name": "server_id",
2157
+ "type": "text",
2158
+ "primaryKey": true,
2159
+ "notNull": true
2160
+ },
2161
+ "domain": {
2162
+ "name": "domain",
2163
+ "type": "text",
2164
+ "primaryKey": false,
2165
+ "notNull": true
2166
+ },
2167
+ "installed_at": {
2168
+ "name": "installed_at",
2169
+ "type": "timestamp",
2170
+ "primaryKey": false,
2171
+ "notNull": false
2172
+ },
2173
+ "created_at": {
2174
+ "name": "created_at",
2175
+ "type": "timestamp",
2176
+ "primaryKey": false,
2177
+ "notNull": true,
2178
+ "default": "now()"
2179
+ },
2180
+ "updated_at": {
2181
+ "name": "updated_at",
2182
+ "type": "timestamp",
2183
+ "primaryKey": false,
2184
+ "notNull": true,
2185
+ "default": "now()"
2186
+ }
2187
+ },
2188
+ "indexes": {},
2189
+ "foreignKeys": {
2190
+ "mail_servers_server_id_servers_id_fk": {
2191
+ "name": "mail_servers_server_id_servers_id_fk",
2192
+ "tableFrom": "mail_servers",
2193
+ "tableTo": "servers",
2194
+ "columnsFrom": ["server_id"],
2195
+ "columnsTo": ["id"],
2196
+ "onDelete": "cascade",
2197
+ "onUpdate": "no action"
2198
+ }
2199
+ },
2200
+ "compositePrimaryKeys": {},
2201
+ "uniqueConstraints": {},
2202
+ "policies": {},
2203
+ "checkConstraints": {},
2204
+ "isRLSEnabled": false
2205
+ },
2206
+ "public.member": {
2207
+ "name": "member",
2208
+ "schema": "",
2209
+ "columns": {
2210
+ "id": {
2211
+ "name": "id",
2212
+ "type": "text",
2213
+ "primaryKey": true,
2214
+ "notNull": true
2215
+ },
2216
+ "organization_id": {
2217
+ "name": "organization_id",
2218
+ "type": "text",
2219
+ "primaryKey": false,
2220
+ "notNull": true
2221
+ },
2222
+ "user_id": {
2223
+ "name": "user_id",
2224
+ "type": "text",
2225
+ "primaryKey": false,
2226
+ "notNull": true
2227
+ },
2228
+ "role": {
2229
+ "name": "role",
2230
+ "type": "text",
2231
+ "primaryKey": false,
2232
+ "notNull": true,
2233
+ "default": "'member'"
2234
+ },
2235
+ "created_at": {
2236
+ "name": "created_at",
2237
+ "type": "timestamp",
2238
+ "primaryKey": false,
2239
+ "notNull": true,
2240
+ "default": "now()"
2241
+ }
2242
+ },
2243
+ "indexes": {
2244
+ "member_org_user_unique": {
2245
+ "name": "member_org_user_unique",
2246
+ "columns": [
2247
+ {
2248
+ "expression": "organization_id",
2249
+ "isExpression": false,
2250
+ "asc": true,
2251
+ "nulls": "last"
2252
+ },
2253
+ {
2254
+ "expression": "user_id",
2255
+ "isExpression": false,
2256
+ "asc": true,
2257
+ "nulls": "last"
2258
+ }
2259
+ ],
2260
+ "isUnique": true,
2261
+ "concurrently": false,
2262
+ "method": "btree",
2263
+ "with": {}
2264
+ },
2265
+ "member_org_idx": {
2266
+ "name": "member_org_idx",
2267
+ "columns": [
2268
+ {
2269
+ "expression": "organization_id",
2270
+ "isExpression": false,
2271
+ "asc": true,
2272
+ "nulls": "last"
2273
+ }
2274
+ ],
2275
+ "isUnique": false,
2276
+ "concurrently": false,
2277
+ "method": "btree",
2278
+ "with": {}
2279
+ },
2280
+ "member_user_idx": {
2281
+ "name": "member_user_idx",
2282
+ "columns": [
2283
+ {
2284
+ "expression": "user_id",
2285
+ "isExpression": false,
2286
+ "asc": true,
2287
+ "nulls": "last"
2288
+ }
2289
+ ],
2290
+ "isUnique": false,
2291
+ "concurrently": false,
2292
+ "method": "btree",
2293
+ "with": {}
2294
+ }
2295
+ },
2296
+ "foreignKeys": {
2297
+ "member_organization_id_organization_id_fk": {
2298
+ "name": "member_organization_id_organization_id_fk",
2299
+ "tableFrom": "member",
2300
+ "tableTo": "organization",
2301
+ "columnsFrom": ["organization_id"],
2302
+ "columnsTo": ["id"],
2303
+ "onDelete": "cascade",
2304
+ "onUpdate": "no action"
2305
+ },
2306
+ "member_user_id_user_id_fk": {
2307
+ "name": "member_user_id_user_id_fk",
2308
+ "tableFrom": "member",
2309
+ "tableTo": "user",
2310
+ "columnsFrom": ["user_id"],
2311
+ "columnsTo": ["id"],
2312
+ "onDelete": "cascade",
2313
+ "onUpdate": "no action"
2314
+ }
2315
+ },
2316
+ "compositePrimaryKeys": {},
2317
+ "uniqueConstraints": {},
2318
+ "policies": {},
2319
+ "checkConstraints": {},
2320
+ "isRLSEnabled": false
2321
+ },
2322
+ "public.notification_channel": {
2323
+ "name": "notification_channel",
2324
+ "schema": "",
2325
+ "columns": {
2326
+ "id": {
2327
+ "name": "id",
2328
+ "type": "text",
2329
+ "primaryKey": true,
2330
+ "notNull": true
2331
+ },
2332
+ "user_id": {
2333
+ "name": "user_id",
2334
+ "type": "text",
2335
+ "primaryKey": false,
2336
+ "notNull": true
2337
+ },
2338
+ "kind": {
2339
+ "name": "kind",
2340
+ "type": "text",
2341
+ "primaryKey": false,
2342
+ "notNull": true
2343
+ },
2344
+ "label": {
2345
+ "name": "label",
2346
+ "type": "text",
2347
+ "primaryKey": false,
2348
+ "notNull": true
2349
+ },
2350
+ "config": {
2351
+ "name": "config",
2352
+ "type": "jsonb",
2353
+ "primaryKey": false,
2354
+ "notNull": true,
2355
+ "default": "'{}'::jsonb"
2356
+ },
2357
+ "verified": {
2358
+ "name": "verified",
2359
+ "type": "boolean",
2360
+ "primaryKey": false,
2361
+ "notNull": true,
2362
+ "default": false
2363
+ },
2364
+ "enabled": {
2365
+ "name": "enabled",
2366
+ "type": "boolean",
2367
+ "primaryKey": false,
2368
+ "notNull": true,
2369
+ "default": true
2370
+ },
2371
+ "last_delivered_at": {
2372
+ "name": "last_delivered_at",
2373
+ "type": "timestamp",
2374
+ "primaryKey": false,
2375
+ "notNull": false
2376
+ },
2377
+ "created_at": {
2378
+ "name": "created_at",
2379
+ "type": "timestamp",
2380
+ "primaryKey": false,
2381
+ "notNull": true,
2382
+ "default": "now()"
2383
+ },
2384
+ "updated_at": {
2385
+ "name": "updated_at",
2386
+ "type": "timestamp",
2387
+ "primaryKey": false,
2388
+ "notNull": true,
2389
+ "default": "now()"
2390
+ }
2391
+ },
2392
+ "indexes": {
2393
+ "idx_notification_channel_user": {
2394
+ "name": "idx_notification_channel_user",
2395
+ "columns": [
2396
+ {
2397
+ "expression": "user_id",
2398
+ "isExpression": false,
2399
+ "asc": true,
2400
+ "nulls": "last"
2401
+ }
2402
+ ],
2403
+ "isUnique": false,
2404
+ "concurrently": false,
2405
+ "method": "btree",
2406
+ "with": {}
2407
+ }
2408
+ },
2409
+ "foreignKeys": {
2410
+ "notification_channel_user_id_user_id_fk": {
2411
+ "name": "notification_channel_user_id_user_id_fk",
2412
+ "tableFrom": "notification_channel",
2413
+ "tableTo": "user",
2414
+ "columnsFrom": ["user_id"],
2415
+ "columnsTo": ["id"],
2416
+ "onDelete": "cascade",
2417
+ "onUpdate": "no action"
2418
+ }
2419
+ },
2420
+ "compositePrimaryKeys": {},
2421
+ "uniqueConstraints": {},
2422
+ "policies": {},
2423
+ "checkConstraints": {},
2424
+ "isRLSEnabled": false
2425
+ },
2426
+ "public.notification_default": {
2427
+ "name": "notification_default",
2428
+ "schema": "",
2429
+ "columns": {
2430
+ "organization_id": {
2431
+ "name": "organization_id",
2432
+ "type": "text",
2433
+ "primaryKey": false,
2434
+ "notNull": true
2435
+ },
2436
+ "category": {
2437
+ "name": "category",
2438
+ "type": "text",
2439
+ "primaryKey": false,
2440
+ "notNull": true
2441
+ },
2442
+ "default_enabled": {
2443
+ "name": "default_enabled",
2444
+ "type": "boolean",
2445
+ "primaryKey": false,
2446
+ "notNull": true,
2447
+ "default": true
2448
+ },
2449
+ "default_channel_kind": {
2450
+ "name": "default_channel_kind",
2451
+ "type": "text",
2452
+ "primaryKey": false,
2453
+ "notNull": true,
2454
+ "default": "'email'"
2455
+ },
2456
+ "created_at": {
2457
+ "name": "created_at",
2458
+ "type": "timestamp",
2459
+ "primaryKey": false,
2460
+ "notNull": true,
2461
+ "default": "now()"
2462
+ },
2463
+ "updated_at": {
2464
+ "name": "updated_at",
2465
+ "type": "timestamp",
2466
+ "primaryKey": false,
2467
+ "notNull": true,
2468
+ "default": "now()"
2469
+ }
2470
+ },
2471
+ "indexes": {
2472
+ "uq_notification_default_org_category": {
2473
+ "name": "uq_notification_default_org_category",
2474
+ "columns": [
2475
+ {
2476
+ "expression": "organization_id",
2477
+ "isExpression": false,
2478
+ "asc": true,
2479
+ "nulls": "last"
2480
+ },
2481
+ {
2482
+ "expression": "category",
2483
+ "isExpression": false,
2484
+ "asc": true,
2485
+ "nulls": "last"
2486
+ }
2487
+ ],
2488
+ "isUnique": true,
2489
+ "concurrently": false,
2490
+ "method": "btree",
2491
+ "with": {}
2492
+ }
2493
+ },
2494
+ "foreignKeys": {
2495
+ "notification_default_organization_id_organization_id_fk": {
2496
+ "name": "notification_default_organization_id_organization_id_fk",
2497
+ "tableFrom": "notification_default",
2498
+ "tableTo": "organization",
2499
+ "columnsFrom": ["organization_id"],
2500
+ "columnsTo": ["id"],
2501
+ "onDelete": "cascade",
2502
+ "onUpdate": "no action"
2503
+ }
2504
+ },
2505
+ "compositePrimaryKeys": {},
2506
+ "uniqueConstraints": {},
2507
+ "policies": {},
2508
+ "checkConstraints": {},
2509
+ "isRLSEnabled": false
2510
+ },
2511
+ "public.notification_delivery": {
2512
+ "name": "notification_delivery",
2513
+ "schema": "",
2514
+ "columns": {
2515
+ "id": {
2516
+ "name": "id",
2517
+ "type": "text",
2518
+ "primaryKey": true,
2519
+ "notNull": true
2520
+ },
2521
+ "user_id": {
2522
+ "name": "user_id",
2523
+ "type": "text",
2524
+ "primaryKey": false,
2525
+ "notNull": true
2526
+ },
2527
+ "organization_id": {
2528
+ "name": "organization_id",
2529
+ "type": "text",
2530
+ "primaryKey": false,
2531
+ "notNull": true
2532
+ },
2533
+ "audit_event_id": {
2534
+ "name": "audit_event_id",
2535
+ "type": "text",
2536
+ "primaryKey": false,
2537
+ "notNull": false
2538
+ },
2539
+ "category": {
2540
+ "name": "category",
2541
+ "type": "text",
2542
+ "primaryKey": false,
2543
+ "notNull": true
2544
+ },
2545
+ "channel_id": {
2546
+ "name": "channel_id",
2547
+ "type": "text",
2548
+ "primaryKey": false,
2549
+ "notNull": false
2550
+ },
2551
+ "channel_kind": {
2552
+ "name": "channel_kind",
2553
+ "type": "text",
2554
+ "primaryKey": false,
2555
+ "notNull": true
2556
+ },
2557
+ "status": {
2558
+ "name": "status",
2559
+ "type": "text",
2560
+ "primaryKey": false,
2561
+ "notNull": true,
2562
+ "default": "'queued'"
2563
+ },
2564
+ "attempts": {
2565
+ "name": "attempts",
2566
+ "type": "integer",
2567
+ "primaryKey": false,
2568
+ "notNull": true,
2569
+ "default": 0
2570
+ },
2571
+ "payload": {
2572
+ "name": "payload",
2573
+ "type": "jsonb",
2574
+ "primaryKey": false,
2575
+ "notNull": true,
2576
+ "default": "'{}'::jsonb"
2577
+ },
2578
+ "last_error": {
2579
+ "name": "last_error",
2580
+ "type": "text",
2581
+ "primaryKey": false,
2582
+ "notNull": false
2583
+ },
2584
+ "created_at": {
2585
+ "name": "created_at",
2586
+ "type": "timestamp",
2587
+ "primaryKey": false,
2588
+ "notNull": true,
2589
+ "default": "now()"
2590
+ },
2591
+ "sent_at": {
2592
+ "name": "sent_at",
2593
+ "type": "timestamp",
2594
+ "primaryKey": false,
2595
+ "notNull": false
2596
+ },
2597
+ "seen_at": {
2598
+ "name": "seen_at",
2599
+ "type": "timestamp",
2600
+ "primaryKey": false,
2601
+ "notNull": false
2602
+ }
2603
+ },
2604
+ "indexes": {
2605
+ "idx_notification_delivery_user_created": {
2606
+ "name": "idx_notification_delivery_user_created",
2607
+ "columns": [
2608
+ {
2609
+ "expression": "user_id",
2610
+ "isExpression": false,
2611
+ "asc": true,
2612
+ "nulls": "last"
2613
+ },
2614
+ {
2615
+ "expression": "created_at",
2616
+ "isExpression": false,
2617
+ "asc": true,
2618
+ "nulls": "last"
2619
+ }
2620
+ ],
2621
+ "isUnique": false,
2622
+ "concurrently": false,
2623
+ "method": "btree",
2624
+ "with": {}
2625
+ },
2626
+ "idx_notification_delivery_queued": {
2627
+ "name": "idx_notification_delivery_queued",
2628
+ "columns": [
2629
+ {
2630
+ "expression": "status",
2631
+ "isExpression": false,
2632
+ "asc": true,
2633
+ "nulls": "last"
2634
+ },
2635
+ {
2636
+ "expression": "created_at",
2637
+ "isExpression": false,
2638
+ "asc": true,
2639
+ "nulls": "last"
2640
+ }
2641
+ ],
2642
+ "isUnique": false,
2643
+ "concurrently": false,
2644
+ "method": "btree",
2645
+ "with": {}
2646
+ },
2647
+ "idx_notification_delivery_org_created": {
2648
+ "name": "idx_notification_delivery_org_created",
2649
+ "columns": [
2650
+ {
2651
+ "expression": "organization_id",
2652
+ "isExpression": false,
2653
+ "asc": true,
2654
+ "nulls": "last"
2655
+ },
2656
+ {
2657
+ "expression": "created_at",
2658
+ "isExpression": false,
2659
+ "asc": true,
2660
+ "nulls": "last"
2661
+ }
2662
+ ],
2663
+ "isUnique": false,
2664
+ "concurrently": false,
2665
+ "method": "btree",
2666
+ "with": {}
2667
+ }
2668
+ },
2669
+ "foreignKeys": {
2670
+ "notification_delivery_user_id_user_id_fk": {
2671
+ "name": "notification_delivery_user_id_user_id_fk",
2672
+ "tableFrom": "notification_delivery",
2673
+ "tableTo": "user",
2674
+ "columnsFrom": ["user_id"],
2675
+ "columnsTo": ["id"],
2676
+ "onDelete": "cascade",
2677
+ "onUpdate": "no action"
2678
+ },
2679
+ "notification_delivery_organization_id_organization_id_fk": {
2680
+ "name": "notification_delivery_organization_id_organization_id_fk",
2681
+ "tableFrom": "notification_delivery",
2682
+ "tableTo": "organization",
2683
+ "columnsFrom": ["organization_id"],
2684
+ "columnsTo": ["id"],
2685
+ "onDelete": "cascade",
2686
+ "onUpdate": "no action"
2687
+ },
2688
+ "notification_delivery_audit_event_id_audit_event_id_fk": {
2689
+ "name": "notification_delivery_audit_event_id_audit_event_id_fk",
2690
+ "tableFrom": "notification_delivery",
2691
+ "tableTo": "audit_event",
2692
+ "columnsFrom": ["audit_event_id"],
2693
+ "columnsTo": ["id"],
2694
+ "onDelete": "set null",
2695
+ "onUpdate": "no action"
2696
+ },
2697
+ "notification_delivery_channel_id_notification_channel_id_fk": {
2698
+ "name": "notification_delivery_channel_id_notification_channel_id_fk",
2699
+ "tableFrom": "notification_delivery",
2700
+ "tableTo": "notification_channel",
2701
+ "columnsFrom": ["channel_id"],
2702
+ "columnsTo": ["id"],
2703
+ "onDelete": "set null",
2704
+ "onUpdate": "no action"
2705
+ }
2706
+ },
2707
+ "compositePrimaryKeys": {},
2708
+ "uniqueConstraints": {},
2709
+ "policies": {},
2710
+ "checkConstraints": {},
2711
+ "isRLSEnabled": false
2712
+ },
2713
+ "public.notification_subscription": {
2714
+ "name": "notification_subscription",
2715
+ "schema": "",
2716
+ "columns": {
2717
+ "id": {
2718
+ "name": "id",
2719
+ "type": "text",
2720
+ "primaryKey": true,
2721
+ "notNull": true
2722
+ },
2723
+ "user_id": {
2724
+ "name": "user_id",
2725
+ "type": "text",
2726
+ "primaryKey": false,
2727
+ "notNull": true
2728
+ },
2729
+ "organization_id": {
2730
+ "name": "organization_id",
2731
+ "type": "text",
2732
+ "primaryKey": false,
2733
+ "notNull": true
2734
+ },
2735
+ "category": {
2736
+ "name": "category",
2737
+ "type": "text",
2738
+ "primaryKey": false,
2739
+ "notNull": true
2740
+ },
2741
+ "channel_id": {
2742
+ "name": "channel_id",
2743
+ "type": "text",
2744
+ "primaryKey": false,
2745
+ "notNull": true
2746
+ },
2747
+ "enabled": {
2748
+ "name": "enabled",
2749
+ "type": "boolean",
2750
+ "primaryKey": false,
2751
+ "notNull": true,
2752
+ "default": true
2753
+ },
2754
+ "created_at": {
2755
+ "name": "created_at",
2756
+ "type": "timestamp",
2757
+ "primaryKey": false,
2758
+ "notNull": true,
2759
+ "default": "now()"
2760
+ },
2761
+ "updated_at": {
2762
+ "name": "updated_at",
2763
+ "type": "timestamp",
2764
+ "primaryKey": false,
2765
+ "notNull": true,
2766
+ "default": "now()"
2767
+ }
2768
+ },
2769
+ "indexes": {
2770
+ "uq_notification_subscription_unique": {
2771
+ "name": "uq_notification_subscription_unique",
2772
+ "columns": [
2773
+ {
2774
+ "expression": "user_id",
2775
+ "isExpression": false,
2776
+ "asc": true,
2777
+ "nulls": "last"
2778
+ },
2779
+ {
2780
+ "expression": "organization_id",
2781
+ "isExpression": false,
2782
+ "asc": true,
2783
+ "nulls": "last"
2784
+ },
2785
+ {
2786
+ "expression": "category",
2787
+ "isExpression": false,
2788
+ "asc": true,
2789
+ "nulls": "last"
2790
+ },
2791
+ {
2792
+ "expression": "channel_id",
2793
+ "isExpression": false,
2794
+ "asc": true,
2795
+ "nulls": "last"
2796
+ }
2797
+ ],
2798
+ "isUnique": true,
2799
+ "concurrently": false,
2800
+ "method": "btree",
2801
+ "with": {}
2802
+ },
2803
+ "idx_notification_subscription_dispatch": {
2804
+ "name": "idx_notification_subscription_dispatch",
2805
+ "columns": [
2806
+ {
2807
+ "expression": "organization_id",
2808
+ "isExpression": false,
2809
+ "asc": true,
2810
+ "nulls": "last"
2811
+ },
2812
+ {
2813
+ "expression": "category",
2814
+ "isExpression": false,
2815
+ "asc": true,
2816
+ "nulls": "last"
2817
+ },
2818
+ {
2819
+ "expression": "enabled",
2820
+ "isExpression": false,
2821
+ "asc": true,
2822
+ "nulls": "last"
2823
+ }
2824
+ ],
2825
+ "isUnique": false,
2826
+ "concurrently": false,
2827
+ "method": "btree",
2828
+ "with": {}
2829
+ }
2830
+ },
2831
+ "foreignKeys": {
2832
+ "notification_subscription_user_id_user_id_fk": {
2833
+ "name": "notification_subscription_user_id_user_id_fk",
2834
+ "tableFrom": "notification_subscription",
2835
+ "tableTo": "user",
2836
+ "columnsFrom": ["user_id"],
2837
+ "columnsTo": ["id"],
2838
+ "onDelete": "cascade",
2839
+ "onUpdate": "no action"
2840
+ },
2841
+ "notification_subscription_organization_id_organization_id_fk": {
2842
+ "name": "notification_subscription_organization_id_organization_id_fk",
2843
+ "tableFrom": "notification_subscription",
2844
+ "tableTo": "organization",
2845
+ "columnsFrom": ["organization_id"],
2846
+ "columnsTo": ["id"],
2847
+ "onDelete": "cascade",
2848
+ "onUpdate": "no action"
2849
+ },
2850
+ "notification_subscription_channel_id_notification_channel_id_fk": {
2851
+ "name": "notification_subscription_channel_id_notification_channel_id_fk",
2852
+ "tableFrom": "notification_subscription",
2853
+ "tableTo": "notification_channel",
2854
+ "columnsFrom": ["channel_id"],
2855
+ "columnsTo": ["id"],
2856
+ "onDelete": "cascade",
2857
+ "onUpdate": "no action"
2858
+ }
2859
+ },
2860
+ "compositePrimaryKeys": {},
2861
+ "uniqueConstraints": {},
2862
+ "policies": {},
2863
+ "checkConstraints": {},
2864
+ "isRLSEnabled": false
2865
+ },
2866
+ "public.organization": {
2867
+ "name": "organization",
2868
+ "schema": "",
2869
+ "columns": {
2870
+ "id": {
2871
+ "name": "id",
2872
+ "type": "text",
2873
+ "primaryKey": true,
2874
+ "notNull": true
2875
+ },
2876
+ "name": {
2877
+ "name": "name",
2878
+ "type": "text",
2879
+ "primaryKey": false,
2880
+ "notNull": true
2881
+ },
2882
+ "slug": {
2883
+ "name": "slug",
2884
+ "type": "text",
2885
+ "primaryKey": false,
2886
+ "notNull": false
2887
+ },
2888
+ "logo": {
2889
+ "name": "logo",
2890
+ "type": "text",
2891
+ "primaryKey": false,
2892
+ "notNull": false
2893
+ },
2894
+ "metadata": {
2895
+ "name": "metadata",
2896
+ "type": "text",
2897
+ "primaryKey": false,
2898
+ "notNull": false
2899
+ },
2900
+ "created_at": {
2901
+ "name": "created_at",
2902
+ "type": "timestamp",
2903
+ "primaryKey": false,
2904
+ "notNull": true,
2905
+ "default": "now()"
2906
+ }
2907
+ },
2908
+ "indexes": {},
2909
+ "foreignKeys": {},
2910
+ "compositePrimaryKeys": {},
2911
+ "uniqueConstraints": {
2912
+ "organization_slug_unique": {
2913
+ "name": "organization_slug_unique",
2914
+ "nullsNotDistinct": false,
2915
+ "columns": ["slug"]
2916
+ }
2917
+ },
2918
+ "policies": {},
2919
+ "checkConstraints": {},
2920
+ "isRLSEnabled": false
2921
+ },
2922
+ "public.organization_meta": {
2923
+ "name": "organization_meta",
2924
+ "schema": "",
2925
+ "columns": {
2926
+ "organization_id": {
2927
+ "name": "organization_id",
2928
+ "type": "text",
2929
+ "primaryKey": true,
2930
+ "notNull": true
2931
+ },
2932
+ "is_team": {
2933
+ "name": "is_team",
2934
+ "type": "boolean",
2935
+ "primaryKey": false,
2936
+ "notNull": true,
2937
+ "default": false
2938
+ },
2939
+ "created_at": {
2940
+ "name": "created_at",
2941
+ "type": "timestamp",
2942
+ "primaryKey": false,
2943
+ "notNull": true,
2944
+ "default": "now()"
2945
+ },
2946
+ "updated_at": {
2947
+ "name": "updated_at",
2948
+ "type": "timestamp",
2949
+ "primaryKey": false,
2950
+ "notNull": true,
2951
+ "default": "now()"
2952
+ }
2953
+ },
2954
+ "indexes": {},
2955
+ "foreignKeys": {
2956
+ "organization_meta_organization_id_organization_id_fk": {
2957
+ "name": "organization_meta_organization_id_organization_id_fk",
2958
+ "tableFrom": "organization_meta",
2959
+ "tableTo": "organization",
2960
+ "columnsFrom": ["organization_id"],
2961
+ "columnsTo": ["id"],
2962
+ "onDelete": "cascade",
2963
+ "onUpdate": "no action"
2964
+ }
2965
+ },
2966
+ "compositePrimaryKeys": {},
2967
+ "uniqueConstraints": {},
2968
+ "policies": {},
2969
+ "checkConstraints": {},
2970
+ "isRLSEnabled": false
2971
+ },
2972
+ "public.project": {
2973
+ "name": "project",
2974
+ "schema": "",
2975
+ "columns": {
2976
+ "id": {
2977
+ "name": "id",
2978
+ "type": "text",
2979
+ "primaryKey": true,
2980
+ "notNull": true
2981
+ },
2982
+ "organization_id": {
2983
+ "name": "organization_id",
2984
+ "type": "text",
2985
+ "primaryKey": false,
2986
+ "notNull": true
2987
+ },
2988
+ "app_id": {
2989
+ "name": "app_id",
2990
+ "type": "text",
2991
+ "primaryKey": false,
2992
+ "notNull": true
2993
+ },
2994
+ "name": {
2995
+ "name": "name",
2996
+ "type": "text",
2997
+ "primaryKey": false,
2998
+ "notNull": true
2999
+ },
3000
+ "slug": {
3001
+ "name": "slug",
3002
+ "type": "text",
3003
+ "primaryKey": false,
3004
+ "notNull": true
3005
+ },
3006
+ "environment_name": {
3007
+ "name": "environment_name",
3008
+ "type": "text",
3009
+ "primaryKey": false,
3010
+ "notNull": true,
3011
+ "default": "'Production'"
3012
+ },
3013
+ "environment_slug": {
3014
+ "name": "environment_slug",
3015
+ "type": "text",
3016
+ "primaryKey": false,
3017
+ "notNull": true,
3018
+ "default": "'production'"
3019
+ },
3020
+ "environment_type": {
3021
+ "name": "environment_type",
3022
+ "type": "text",
3023
+ "primaryKey": false,
3024
+ "notNull": true,
3025
+ "default": "'production'"
3026
+ },
3027
+ "local_path": {
3028
+ "name": "local_path",
3029
+ "type": "text",
3030
+ "primaryKey": false,
3031
+ "notNull": false
3032
+ },
3033
+ "git_provider": {
3034
+ "name": "git_provider",
3035
+ "type": "text",
3036
+ "primaryKey": false,
3037
+ "notNull": false,
3038
+ "default": "'github'"
3039
+ },
3040
+ "git_owner": {
3041
+ "name": "git_owner",
3042
+ "type": "text",
3043
+ "primaryKey": false,
3044
+ "notNull": false
3045
+ },
3046
+ "git_repo": {
3047
+ "name": "git_repo",
3048
+ "type": "text",
3049
+ "primaryKey": false,
3050
+ "notNull": false
3051
+ },
3052
+ "git_branch": {
3053
+ "name": "git_branch",
3054
+ "type": "text",
3055
+ "primaryKey": false,
3056
+ "notNull": false,
3057
+ "default": "'main'"
3058
+ },
3059
+ "git_url": {
3060
+ "name": "git_url",
3061
+ "type": "text",
3062
+ "primaryKey": false,
3063
+ "notNull": false
3064
+ },
3065
+ "installation_id": {
3066
+ "name": "installation_id",
3067
+ "type": "integer",
3068
+ "primaryKey": false,
3069
+ "notNull": false
3070
+ },
3071
+ "clone_token_encrypted": {
3072
+ "name": "clone_token_encrypted",
3073
+ "type": "text",
3074
+ "primaryKey": false,
3075
+ "notNull": false
3076
+ },
3077
+ "clone_token_set_at": {
3078
+ "name": "clone_token_set_at",
3079
+ "type": "timestamp",
3080
+ "primaryKey": false,
3081
+ "notNull": false
3082
+ },
3083
+ "framework": {
3084
+ "name": "framework",
3085
+ "type": "text",
3086
+ "primaryKey": false,
3087
+ "notNull": false,
3088
+ "default": "'unknown'"
3089
+ },
3090
+ "package_manager": {
3091
+ "name": "package_manager",
3092
+ "type": "text",
3093
+ "primaryKey": false,
3094
+ "notNull": false,
3095
+ "default": "'npm'"
3096
+ },
3097
+ "install_command": {
3098
+ "name": "install_command",
3099
+ "type": "text",
3100
+ "primaryKey": false,
3101
+ "notNull": false
3102
+ },
3103
+ "build_command": {
3104
+ "name": "build_command",
3105
+ "type": "text",
3106
+ "primaryKey": false,
3107
+ "notNull": false
3108
+ },
3109
+ "output_directory": {
3110
+ "name": "output_directory",
3111
+ "type": "text",
3112
+ "primaryKey": false,
3113
+ "notNull": false
3114
+ },
3115
+ "production_paths": {
3116
+ "name": "production_paths",
3117
+ "type": "text",
3118
+ "primaryKey": false,
3119
+ "notNull": false
3120
+ },
3121
+ "root_directory": {
3122
+ "name": "root_directory",
3123
+ "type": "text",
3124
+ "primaryKey": false,
3125
+ "notNull": false
3126
+ },
3127
+ "start_command": {
3128
+ "name": "start_command",
3129
+ "type": "text",
3130
+ "primaryKey": false,
3131
+ "notNull": false
3132
+ },
3133
+ "build_image": {
3134
+ "name": "build_image",
3135
+ "type": "text",
3136
+ "primaryKey": false,
3137
+ "notNull": false
3138
+ },
3139
+ "production_mode": {
3140
+ "name": "production_mode",
3141
+ "type": "text",
3142
+ "primaryKey": false,
3143
+ "notNull": false,
3144
+ "default": "'host'"
3145
+ },
3146
+ "port": {
3147
+ "name": "port",
3148
+ "type": "integer",
3149
+ "primaryKey": false,
3150
+ "notNull": false,
3151
+ "default": 3000
3152
+ },
3153
+ "has_server": {
3154
+ "name": "has_server",
3155
+ "type": "boolean",
3156
+ "primaryKey": false,
3157
+ "notNull": true,
3158
+ "default": true
3159
+ },
3160
+ "has_build": {
3161
+ "name": "has_build",
3162
+ "type": "boolean",
3163
+ "primaryKey": false,
3164
+ "notNull": true,
3165
+ "default": true
3166
+ },
3167
+ "workspace_install_command": {
3168
+ "name": "workspace_install_command",
3169
+ "type": "text",
3170
+ "primaryKey": false,
3171
+ "notNull": false
3172
+ },
3173
+ "resources": {
3174
+ "name": "resources",
3175
+ "type": "jsonb",
3176
+ "primaryKey": false,
3177
+ "notNull": false
3178
+ },
3179
+ "build_resources": {
3180
+ "name": "build_resources",
3181
+ "type": "jsonb",
3182
+ "primaryKey": false,
3183
+ "notNull": false
3184
+ },
3185
+ "sleep_mode": {
3186
+ "name": "sleep_mode",
3187
+ "type": "text",
3188
+ "primaryKey": false,
3189
+ "notNull": false,
3190
+ "default": "'auto_sleep'"
3191
+ },
3192
+ "rollback_window": {
3193
+ "name": "rollback_window",
3194
+ "type": "integer",
3195
+ "primaryKey": false,
3196
+ "notNull": false
3197
+ },
3198
+ "cloud_archive_strategy": {
3199
+ "name": "cloud_archive_strategy",
3200
+ "type": "text",
3201
+ "primaryKey": false,
3202
+ "notNull": true,
3203
+ "default": "'inplace'"
3204
+ },
3205
+ "active_deployment_id": {
3206
+ "name": "active_deployment_id",
3207
+ "type": "text",
3208
+ "primaryKey": false,
3209
+ "notNull": false
3210
+ },
3211
+ "webhook_id": {
3212
+ "name": "webhook_id",
3213
+ "type": "integer",
3214
+ "primaryKey": false,
3215
+ "notNull": false
3216
+ },
3217
+ "webhook_domain": {
3218
+ "name": "webhook_domain",
3219
+ "type": "text",
3220
+ "primaryKey": false,
3221
+ "notNull": false
3222
+ },
3223
+ "auto_deploy": {
3224
+ "name": "auto_deploy",
3225
+ "type": "boolean",
3226
+ "primaryKey": false,
3227
+ "notNull": true,
3228
+ "default": false
3229
+ },
3230
+ "favicon": {
3231
+ "name": "favicon",
3232
+ "type": "text",
3233
+ "primaryKey": false,
3234
+ "notNull": false
3235
+ },
3236
+ "favicon_checked_at": {
3237
+ "name": "favicon_checked_at",
3238
+ "type": "timestamp",
3239
+ "primaryKey": false,
3240
+ "notNull": false
3241
+ },
3242
+ "deleted_at": {
3243
+ "name": "deleted_at",
3244
+ "type": "timestamp",
3245
+ "primaryKey": false,
3246
+ "notNull": false
3247
+ },
3248
+ "created_at": {
3249
+ "name": "created_at",
3250
+ "type": "timestamp",
3251
+ "primaryKey": false,
3252
+ "notNull": true,
3253
+ "default": "now()"
3254
+ },
3255
+ "updated_at": {
3256
+ "name": "updated_at",
3257
+ "type": "timestamp",
3258
+ "primaryKey": false,
3259
+ "notNull": true,
3260
+ "default": "now()"
3261
+ }
3262
+ },
3263
+ "indexes": {
3264
+ "uq_project_app_environment_slug_active": {
3265
+ "name": "uq_project_app_environment_slug_active",
3266
+ "columns": [
3267
+ {
3268
+ "expression": "app_id",
3269
+ "isExpression": false,
3270
+ "asc": true,
3271
+ "nulls": "last"
3272
+ },
3273
+ {
3274
+ "expression": "environment_slug",
3275
+ "isExpression": false,
3276
+ "asc": true,
3277
+ "nulls": "last"
3278
+ }
3279
+ ],
3280
+ "isUnique": true,
3281
+ "where": "\"project\".\"deleted_at\" IS NULL",
3282
+ "concurrently": false,
3283
+ "method": "btree",
3284
+ "with": {}
3285
+ }
3286
+ },
3287
+ "foreignKeys": {
3288
+ "project_organization_id_organization_id_fk": {
3289
+ "name": "project_organization_id_organization_id_fk",
3290
+ "tableFrom": "project",
3291
+ "tableTo": "organization",
3292
+ "columnsFrom": ["organization_id"],
3293
+ "columnsTo": ["id"],
3294
+ "onDelete": "cascade",
3295
+ "onUpdate": "no action"
3296
+ },
3297
+ "project_app_id_project_app_id_fk": {
3298
+ "name": "project_app_id_project_app_id_fk",
3299
+ "tableFrom": "project",
3300
+ "tableTo": "project_app",
3301
+ "columnsFrom": ["app_id"],
3302
+ "columnsTo": ["id"],
3303
+ "onDelete": "cascade",
3304
+ "onUpdate": "no action"
3305
+ }
3306
+ },
3307
+ "compositePrimaryKeys": {},
3308
+ "uniqueConstraints": {},
3309
+ "policies": {},
3310
+ "checkConstraints": {},
3311
+ "isRLSEnabled": false
3312
+ },
3313
+ "public.project_app": {
3314
+ "name": "project_app",
3315
+ "schema": "",
3316
+ "columns": {
3317
+ "id": {
3318
+ "name": "id",
3319
+ "type": "text",
3320
+ "primaryKey": true,
3321
+ "notNull": true
3322
+ },
3323
+ "organization_id": {
3324
+ "name": "organization_id",
3325
+ "type": "text",
3326
+ "primaryKey": false,
3327
+ "notNull": true
3328
+ },
3329
+ "name": {
3330
+ "name": "name",
3331
+ "type": "text",
3332
+ "primaryKey": false,
3333
+ "notNull": true
3334
+ },
3335
+ "slug": {
3336
+ "name": "slug",
3337
+ "type": "text",
3338
+ "primaryKey": false,
3339
+ "notNull": true
3340
+ },
3341
+ "git_provider": {
3342
+ "name": "git_provider",
3343
+ "type": "text",
3344
+ "primaryKey": false,
3345
+ "notNull": false,
3346
+ "default": "'github'"
3347
+ },
3348
+ "git_owner": {
3349
+ "name": "git_owner",
3350
+ "type": "text",
3351
+ "primaryKey": false,
3352
+ "notNull": false
3353
+ },
3354
+ "git_repo": {
3355
+ "name": "git_repo",
3356
+ "type": "text",
3357
+ "primaryKey": false,
3358
+ "notNull": false
3359
+ },
3360
+ "git_url": {
3361
+ "name": "git_url",
3362
+ "type": "text",
3363
+ "primaryKey": false,
3364
+ "notNull": false
3365
+ },
3366
+ "installation_id": {
3367
+ "name": "installation_id",
3368
+ "type": "integer",
3369
+ "primaryKey": false,
3370
+ "notNull": false
3371
+ },
3372
+ "favicon": {
3373
+ "name": "favicon",
3374
+ "type": "text",
3375
+ "primaryKey": false,
3376
+ "notNull": false
3377
+ },
3378
+ "favicon_checked_at": {
3379
+ "name": "favicon_checked_at",
3380
+ "type": "timestamp",
3381
+ "primaryKey": false,
3382
+ "notNull": false
3383
+ },
3384
+ "deleted_at": {
3385
+ "name": "deleted_at",
3386
+ "type": "timestamp",
3387
+ "primaryKey": false,
3388
+ "notNull": false
3389
+ },
3390
+ "created_at": {
3391
+ "name": "created_at",
3392
+ "type": "timestamp",
3393
+ "primaryKey": false,
3394
+ "notNull": true,
3395
+ "default": "now()"
3396
+ },
3397
+ "updated_at": {
3398
+ "name": "updated_at",
3399
+ "type": "timestamp",
3400
+ "primaryKey": false,
3401
+ "notNull": true,
3402
+ "default": "now()"
3403
+ }
3404
+ },
3405
+ "indexes": {},
3406
+ "foreignKeys": {
3407
+ "project_app_organization_id_organization_id_fk": {
3408
+ "name": "project_app_organization_id_organization_id_fk",
3409
+ "tableFrom": "project_app",
3410
+ "tableTo": "organization",
3411
+ "columnsFrom": ["organization_id"],
3412
+ "columnsTo": ["id"],
3413
+ "onDelete": "cascade",
3414
+ "onUpdate": "no action"
3415
+ }
3416
+ },
3417
+ "compositePrimaryKeys": {},
3418
+ "uniqueConstraints": {},
3419
+ "policies": {},
3420
+ "checkConstraints": {},
3421
+ "isRLSEnabled": false
3422
+ },
3423
+ "public.resource_grant": {
3424
+ "name": "resource_grant",
3425
+ "schema": "",
3426
+ "columns": {
3427
+ "id": {
3428
+ "name": "id",
3429
+ "type": "text",
3430
+ "primaryKey": true,
3431
+ "notNull": true
3432
+ },
3433
+ "organization_id": {
3434
+ "name": "organization_id",
3435
+ "type": "text",
3436
+ "primaryKey": false,
3437
+ "notNull": true
3438
+ },
3439
+ "user_id": {
3440
+ "name": "user_id",
3441
+ "type": "text",
3442
+ "primaryKey": false,
3443
+ "notNull": true
3444
+ },
3445
+ "resource_type": {
3446
+ "name": "resource_type",
3447
+ "type": "text",
3448
+ "primaryKey": false,
3449
+ "notNull": true
3450
+ },
3451
+ "resource_id": {
3452
+ "name": "resource_id",
3453
+ "type": "text",
3454
+ "primaryKey": false,
3455
+ "notNull": true
3456
+ },
3457
+ "permissions_json": {
3458
+ "name": "permissions_json",
3459
+ "type": "text",
3460
+ "primaryKey": false,
3461
+ "notNull": true,
3462
+ "default": "'[]'"
3463
+ },
3464
+ "granted_by_user_id": {
3465
+ "name": "granted_by_user_id",
3466
+ "type": "text",
3467
+ "primaryKey": false,
3468
+ "notNull": false
3469
+ },
3470
+ "created_at": {
3471
+ "name": "created_at",
3472
+ "type": "timestamp",
3473
+ "primaryKey": false,
3474
+ "notNull": true,
3475
+ "default": "now()"
3476
+ }
3477
+ },
3478
+ "indexes": {
3479
+ "resource_grant_unique": {
3480
+ "name": "resource_grant_unique",
3481
+ "columns": [
3482
+ {
3483
+ "expression": "organization_id",
3484
+ "isExpression": false,
3485
+ "asc": true,
3486
+ "nulls": "last"
3487
+ },
3488
+ {
3489
+ "expression": "user_id",
3490
+ "isExpression": false,
3491
+ "asc": true,
3492
+ "nulls": "last"
3493
+ },
3494
+ {
3495
+ "expression": "resource_type",
3496
+ "isExpression": false,
3497
+ "asc": true,
3498
+ "nulls": "last"
3499
+ },
3500
+ {
3501
+ "expression": "resource_id",
3502
+ "isExpression": false,
3503
+ "asc": true,
3504
+ "nulls": "last"
3505
+ }
3506
+ ],
3507
+ "isUnique": true,
3508
+ "concurrently": false,
3509
+ "method": "btree",
3510
+ "with": {}
3511
+ },
3512
+ "resource_grant_member_idx": {
3513
+ "name": "resource_grant_member_idx",
3514
+ "columns": [
3515
+ {
3516
+ "expression": "organization_id",
3517
+ "isExpression": false,
3518
+ "asc": true,
3519
+ "nulls": "last"
3520
+ },
3521
+ {
3522
+ "expression": "user_id",
3523
+ "isExpression": false,
3524
+ "asc": true,
3525
+ "nulls": "last"
3526
+ }
3527
+ ],
3528
+ "isUnique": false,
3529
+ "concurrently": false,
3530
+ "method": "btree",
3531
+ "with": {}
3532
+ },
3533
+ "resource_grant_resource_idx": {
3534
+ "name": "resource_grant_resource_idx",
3535
+ "columns": [
3536
+ {
3537
+ "expression": "organization_id",
3538
+ "isExpression": false,
3539
+ "asc": true,
3540
+ "nulls": "last"
3541
+ },
3542
+ {
3543
+ "expression": "resource_type",
3544
+ "isExpression": false,
3545
+ "asc": true,
3546
+ "nulls": "last"
3547
+ },
3548
+ {
3549
+ "expression": "resource_id",
3550
+ "isExpression": false,
3551
+ "asc": true,
3552
+ "nulls": "last"
3553
+ }
3554
+ ],
3555
+ "isUnique": false,
3556
+ "concurrently": false,
3557
+ "method": "btree",
3558
+ "with": {}
3559
+ }
3560
+ },
3561
+ "foreignKeys": {
3562
+ "resource_grant_organization_id_organization_id_fk": {
3563
+ "name": "resource_grant_organization_id_organization_id_fk",
3564
+ "tableFrom": "resource_grant",
3565
+ "tableTo": "organization",
3566
+ "columnsFrom": ["organization_id"],
3567
+ "columnsTo": ["id"],
3568
+ "onDelete": "cascade",
3569
+ "onUpdate": "no action"
3570
+ },
3571
+ "resource_grant_user_id_user_id_fk": {
3572
+ "name": "resource_grant_user_id_user_id_fk",
3573
+ "tableFrom": "resource_grant",
3574
+ "tableTo": "user",
3575
+ "columnsFrom": ["user_id"],
3576
+ "columnsTo": ["id"],
3577
+ "onDelete": "cascade",
3578
+ "onUpdate": "no action"
3579
+ },
3580
+ "resource_grant_granted_by_user_id_user_id_fk": {
3581
+ "name": "resource_grant_granted_by_user_id_user_id_fk",
3582
+ "tableFrom": "resource_grant",
3583
+ "tableTo": "user",
3584
+ "columnsFrom": ["granted_by_user_id"],
3585
+ "columnsTo": ["id"],
3586
+ "onDelete": "set null",
3587
+ "onUpdate": "no action"
3588
+ }
3589
+ },
3590
+ "compositePrimaryKeys": {},
3591
+ "uniqueConstraints": {},
3592
+ "policies": {},
3593
+ "checkConstraints": {},
3594
+ "isRLSEnabled": false
3595
+ },
3596
+ "public.server_analytics": {
3597
+ "name": "server_analytics",
3598
+ "schema": "",
3599
+ "columns": {
3600
+ "id": {
3601
+ "name": "id",
3602
+ "type": "text",
3603
+ "primaryKey": true,
3604
+ "notNull": true
3605
+ },
3606
+ "server_id": {
3607
+ "name": "server_id",
3608
+ "type": "text",
3609
+ "primaryKey": false,
3610
+ "notNull": true
3611
+ },
3612
+ "domain": {
3613
+ "name": "domain",
3614
+ "type": "text",
3615
+ "primaryKey": false,
3616
+ "notNull": true
3617
+ },
3618
+ "minute": {
3619
+ "name": "minute",
3620
+ "type": "integer",
3621
+ "primaryKey": false,
3622
+ "notNull": true
3623
+ },
3624
+ "requests": {
3625
+ "name": "requests",
3626
+ "type": "integer",
3627
+ "primaryKey": false,
3628
+ "notNull": true,
3629
+ "default": 0
3630
+ },
3631
+ "unique_requests": {
3632
+ "name": "unique_requests",
3633
+ "type": "integer",
3634
+ "primaryKey": false,
3635
+ "notNull": true,
3636
+ "default": 0
3637
+ },
3638
+ "bandwidth_in": {
3639
+ "name": "bandwidth_in",
3640
+ "type": "integer",
3641
+ "primaryKey": false,
3642
+ "notNull": true,
3643
+ "default": 0
3644
+ },
3645
+ "bandwidth_out": {
3646
+ "name": "bandwidth_out",
3647
+ "type": "integer",
3648
+ "primaryKey": false,
3649
+ "notNull": true,
3650
+ "default": 0
3651
+ },
3652
+ "response_time": {
3653
+ "name": "response_time",
3654
+ "type": "real",
3655
+ "primaryKey": false,
3656
+ "notNull": true,
3657
+ "default": 0
3658
+ },
3659
+ "countries": {
3660
+ "name": "countries",
3661
+ "type": "jsonb",
3662
+ "primaryKey": false,
3663
+ "notNull": false
3664
+ },
3665
+ "created_at": {
3666
+ "name": "created_at",
3667
+ "type": "timestamp",
3668
+ "primaryKey": false,
3669
+ "notNull": true,
3670
+ "default": "now()"
3671
+ }
3672
+ },
3673
+ "indexes": {
3674
+ "uq_analytics_server_domain_minute": {
3675
+ "name": "uq_analytics_server_domain_minute",
3676
+ "columns": [
3677
+ {
3678
+ "expression": "server_id",
3679
+ "isExpression": false,
3680
+ "asc": true,
3681
+ "nulls": "last"
3682
+ },
3683
+ {
3684
+ "expression": "domain",
3685
+ "isExpression": false,
3686
+ "asc": true,
3687
+ "nulls": "last"
3688
+ },
3689
+ {
3690
+ "expression": "minute",
3691
+ "isExpression": false,
3692
+ "asc": true,
3693
+ "nulls": "last"
3694
+ }
3695
+ ],
3696
+ "isUnique": true,
3697
+ "concurrently": false,
3698
+ "method": "btree",
3699
+ "with": {}
3700
+ },
3701
+ "idx_analytics_domain_minute": {
3702
+ "name": "idx_analytics_domain_minute",
3703
+ "columns": [
3704
+ {
3705
+ "expression": "domain",
3706
+ "isExpression": false,
3707
+ "asc": true,
3708
+ "nulls": "last"
3709
+ },
3710
+ {
3711
+ "expression": "minute",
3712
+ "isExpression": false,
3713
+ "asc": true,
3714
+ "nulls": "last"
3715
+ }
3716
+ ],
3717
+ "isUnique": false,
3718
+ "concurrently": false,
3719
+ "method": "btree",
3720
+ "with": {}
3721
+ }
3722
+ },
3723
+ "foreignKeys": {
3724
+ "server_analytics_server_id_servers_id_fk": {
3725
+ "name": "server_analytics_server_id_servers_id_fk",
3726
+ "tableFrom": "server_analytics",
3727
+ "tableTo": "servers",
3728
+ "columnsFrom": ["server_id"],
3729
+ "columnsTo": ["id"],
3730
+ "onDelete": "cascade",
3731
+ "onUpdate": "no action"
3732
+ }
3733
+ },
3734
+ "compositePrimaryKeys": {},
3735
+ "uniqueConstraints": {},
3736
+ "policies": {},
3737
+ "checkConstraints": {},
3738
+ "isRLSEnabled": false
3739
+ },
3740
+ "public.server_analytics_geo": {
3741
+ "name": "server_analytics_geo",
3742
+ "schema": "",
3743
+ "columns": {
3744
+ "id": {
3745
+ "name": "id",
3746
+ "type": "text",
3747
+ "primaryKey": true,
3748
+ "notNull": true
3749
+ },
3750
+ "server_id": {
3751
+ "name": "server_id",
3752
+ "type": "text",
3753
+ "primaryKey": false,
3754
+ "notNull": true
3755
+ },
3756
+ "domain": {
3757
+ "name": "domain",
3758
+ "type": "text",
3759
+ "primaryKey": false,
3760
+ "notNull": true
3761
+ },
3762
+ "day": {
3763
+ "name": "day",
3764
+ "type": "text",
3765
+ "primaryKey": false,
3766
+ "notNull": true
3767
+ },
3768
+ "countries": {
3769
+ "name": "countries",
3770
+ "type": "jsonb",
3771
+ "primaryKey": false,
3772
+ "notNull": true
3773
+ },
3774
+ "created_at": {
3775
+ "name": "created_at",
3776
+ "type": "timestamp",
3777
+ "primaryKey": false,
3778
+ "notNull": true,
3779
+ "default": "now()"
3780
+ }
3781
+ },
3782
+ "indexes": {
3783
+ "uq_analytics_geo_server_domain_day": {
3784
+ "name": "uq_analytics_geo_server_domain_day",
3785
+ "columns": [
3786
+ {
3787
+ "expression": "server_id",
3788
+ "isExpression": false,
3789
+ "asc": true,
3790
+ "nulls": "last"
3791
+ },
3792
+ {
3793
+ "expression": "domain",
3794
+ "isExpression": false,
3795
+ "asc": true,
3796
+ "nulls": "last"
3797
+ },
3798
+ {
3799
+ "expression": "day",
3800
+ "isExpression": false,
3801
+ "asc": true,
3802
+ "nulls": "last"
3803
+ }
3804
+ ],
3805
+ "isUnique": true,
3806
+ "concurrently": false,
3807
+ "method": "btree",
3808
+ "with": {}
3809
+ }
3810
+ },
3811
+ "foreignKeys": {
3812
+ "server_analytics_geo_server_id_servers_id_fk": {
3813
+ "name": "server_analytics_geo_server_id_servers_id_fk",
3814
+ "tableFrom": "server_analytics_geo",
3815
+ "tableTo": "servers",
3816
+ "columnsFrom": ["server_id"],
3817
+ "columnsTo": ["id"],
3818
+ "onDelete": "cascade",
3819
+ "onUpdate": "no action"
3820
+ }
3821
+ },
3822
+ "compositePrimaryKeys": {},
3823
+ "uniqueConstraints": {},
3824
+ "policies": {},
3825
+ "checkConstraints": {},
3826
+ "isRLSEnabled": false
3827
+ },
3828
+ "public.servers": {
3829
+ "name": "servers",
3830
+ "schema": "",
3831
+ "columns": {
3832
+ "id": {
3833
+ "name": "id",
3834
+ "type": "text",
3835
+ "primaryKey": true,
3836
+ "notNull": true
3837
+ },
3838
+ "organization_id": {
3839
+ "name": "organization_id",
3840
+ "type": "text",
3841
+ "primaryKey": false,
3842
+ "notNull": false
3843
+ },
3844
+ "name": {
3845
+ "name": "name",
3846
+ "type": "text",
3847
+ "primaryKey": false,
3848
+ "notNull": false
3849
+ },
3850
+ "ssh_host": {
3851
+ "name": "ssh_host",
3852
+ "type": "text",
3853
+ "primaryKey": false,
3854
+ "notNull": true
3855
+ },
3856
+ "ssh_port": {
3857
+ "name": "ssh_port",
3858
+ "type": "integer",
3859
+ "primaryKey": false,
3860
+ "notNull": false,
3861
+ "default": 22
3862
+ },
3863
+ "ssh_user": {
3864
+ "name": "ssh_user",
3865
+ "type": "text",
3866
+ "primaryKey": false,
3867
+ "notNull": false,
3868
+ "default": "'root'"
3869
+ },
3870
+ "ssh_auth_method": {
3871
+ "name": "ssh_auth_method",
3872
+ "type": "text",
3873
+ "primaryKey": false,
3874
+ "notNull": false
3875
+ },
3876
+ "ssh_password": {
3877
+ "name": "ssh_password",
3878
+ "type": "text",
3879
+ "primaryKey": false,
3880
+ "notNull": false
3881
+ },
3882
+ "ssh_key_path": {
3883
+ "name": "ssh_key_path",
3884
+ "type": "text",
3885
+ "primaryKey": false,
3886
+ "notNull": false
3887
+ },
3888
+ "ssh_key_passphrase": {
3889
+ "name": "ssh_key_passphrase",
3890
+ "type": "text",
3891
+ "primaryKey": false,
3892
+ "notNull": false
3893
+ },
3894
+ "ssh_jump_host": {
3895
+ "name": "ssh_jump_host",
3896
+ "type": "text",
3897
+ "primaryKey": false,
3898
+ "notNull": false
3899
+ },
3900
+ "ssh_args": {
3901
+ "name": "ssh_args",
3902
+ "type": "text",
3903
+ "primaryKey": false,
3904
+ "notNull": false
3905
+ },
3906
+ "created_at": {
3907
+ "name": "created_at",
3908
+ "type": "timestamp",
3909
+ "primaryKey": false,
3910
+ "notNull": true,
3911
+ "default": "now()"
3912
+ },
3913
+ "updated_at": {
3914
+ "name": "updated_at",
3915
+ "type": "timestamp",
3916
+ "primaryKey": false,
3917
+ "notNull": true,
3918
+ "default": "now()"
3919
+ }
3920
+ },
3921
+ "indexes": {},
3922
+ "foreignKeys": {
3923
+ "servers_organization_id_organization_id_fk": {
3924
+ "name": "servers_organization_id_organization_id_fk",
3925
+ "tableFrom": "servers",
3926
+ "tableTo": "organization",
3927
+ "columnsFrom": ["organization_id"],
3928
+ "columnsTo": ["id"],
3929
+ "onDelete": "cascade",
3930
+ "onUpdate": "no action"
3931
+ }
3932
+ },
3933
+ "compositePrimaryKeys": {},
3934
+ "uniqueConstraints": {},
3935
+ "policies": {},
3936
+ "checkConstraints": {},
3937
+ "isRLSEnabled": false
3938
+ },
3939
+ "public.service": {
3940
+ "name": "service",
3941
+ "schema": "",
3942
+ "columns": {
3943
+ "id": {
3944
+ "name": "id",
3945
+ "type": "text",
3946
+ "primaryKey": true,
3947
+ "notNull": true
3948
+ },
3949
+ "project_id": {
3950
+ "name": "project_id",
3951
+ "type": "text",
3952
+ "primaryKey": false,
3953
+ "notNull": true
3954
+ },
3955
+ "kind": {
3956
+ "name": "kind",
3957
+ "type": "text",
3958
+ "primaryKey": false,
3959
+ "notNull": true,
3960
+ "default": "'compose'"
3961
+ },
3962
+ "name": {
3963
+ "name": "name",
3964
+ "type": "text",
3965
+ "primaryKey": false,
3966
+ "notNull": true
3967
+ },
3968
+ "image": {
3969
+ "name": "image",
3970
+ "type": "text",
3971
+ "primaryKey": false,
3972
+ "notNull": false
3973
+ },
3974
+ "build": {
3975
+ "name": "build",
3976
+ "type": "text",
3977
+ "primaryKey": false,
3978
+ "notNull": false
3979
+ },
3980
+ "dockerfile": {
3981
+ "name": "dockerfile",
3982
+ "type": "text",
3983
+ "primaryKey": false,
3984
+ "notNull": false
3985
+ },
3986
+ "ports": {
3987
+ "name": "ports",
3988
+ "type": "jsonb",
3989
+ "primaryKey": false,
3990
+ "notNull": false,
3991
+ "default": "'[]'::jsonb"
3992
+ },
3993
+ "depends_on": {
3994
+ "name": "depends_on",
3995
+ "type": "jsonb",
3996
+ "primaryKey": false,
3997
+ "notNull": false,
3998
+ "default": "'[]'::jsonb"
3999
+ },
4000
+ "environment": {
4001
+ "name": "environment",
4002
+ "type": "jsonb",
4003
+ "primaryKey": false,
4004
+ "notNull": false,
4005
+ "default": "'{}'::jsonb"
4006
+ },
4007
+ "volumes": {
4008
+ "name": "volumes",
4009
+ "type": "jsonb",
4010
+ "primaryKey": false,
4011
+ "notNull": false,
4012
+ "default": "'[]'::jsonb"
4013
+ },
4014
+ "command": {
4015
+ "name": "command",
4016
+ "type": "text",
4017
+ "primaryKey": false,
4018
+ "notNull": false
4019
+ },
4020
+ "restart": {
4021
+ "name": "restart",
4022
+ "type": "text",
4023
+ "primaryKey": false,
4024
+ "notNull": false,
4025
+ "default": "'unless-stopped'"
4026
+ },
4027
+ "exposed": {
4028
+ "name": "exposed",
4029
+ "type": "boolean",
4030
+ "primaryKey": false,
4031
+ "notNull": true,
4032
+ "default": false
4033
+ },
4034
+ "exposed_port": {
4035
+ "name": "exposed_port",
4036
+ "type": "text",
4037
+ "primaryKey": false,
4038
+ "notNull": false
4039
+ },
4040
+ "domain": {
4041
+ "name": "domain",
4042
+ "type": "text",
4043
+ "primaryKey": false,
4044
+ "notNull": false
4045
+ },
4046
+ "custom_domain": {
4047
+ "name": "custom_domain",
4048
+ "type": "text",
4049
+ "primaryKey": false,
4050
+ "notNull": false
4051
+ },
4052
+ "domain_type": {
4053
+ "name": "domain_type",
4054
+ "type": "text",
4055
+ "primaryKey": false,
4056
+ "notNull": false,
4057
+ "default": "'free'"
4058
+ },
4059
+ "root_directory": {
4060
+ "name": "root_directory",
4061
+ "type": "text",
4062
+ "primaryKey": false,
4063
+ "notNull": false
4064
+ },
4065
+ "install_command": {
4066
+ "name": "install_command",
4067
+ "type": "text",
4068
+ "primaryKey": false,
4069
+ "notNull": false
4070
+ },
4071
+ "build_command": {
4072
+ "name": "build_command",
4073
+ "type": "text",
4074
+ "primaryKey": false,
4075
+ "notNull": false
4076
+ },
4077
+ "start_command": {
4078
+ "name": "start_command",
4079
+ "type": "text",
4080
+ "primaryKey": false,
4081
+ "notNull": false
4082
+ },
4083
+ "output_directory": {
4084
+ "name": "output_directory",
4085
+ "type": "text",
4086
+ "primaryKey": false,
4087
+ "notNull": false
4088
+ },
4089
+ "framework": {
4090
+ "name": "framework",
4091
+ "type": "text",
4092
+ "primaryKey": false,
4093
+ "notNull": false
4094
+ },
4095
+ "package_manager": {
4096
+ "name": "package_manager",
4097
+ "type": "text",
4098
+ "primaryKey": false,
4099
+ "notNull": false
4100
+ },
4101
+ "build_image": {
4102
+ "name": "build_image",
4103
+ "type": "text",
4104
+ "primaryKey": false,
4105
+ "notNull": false
4106
+ },
4107
+ "enabled": {
4108
+ "name": "enabled",
4109
+ "type": "boolean",
4110
+ "primaryKey": false,
4111
+ "notNull": true,
4112
+ "default": true
4113
+ },
4114
+ "sort_order": {
4115
+ "name": "sort_order",
4116
+ "type": "integer",
4117
+ "primaryKey": false,
4118
+ "notNull": true,
4119
+ "default": 0
4120
+ },
4121
+ "created_at": {
4122
+ "name": "created_at",
4123
+ "type": "timestamp",
4124
+ "primaryKey": false,
4125
+ "notNull": true,
4126
+ "default": "now()"
4127
+ },
4128
+ "updated_at": {
4129
+ "name": "updated_at",
4130
+ "type": "timestamp",
4131
+ "primaryKey": false,
4132
+ "notNull": true,
4133
+ "default": "now()"
4134
+ }
4135
+ },
4136
+ "indexes": {},
4137
+ "foreignKeys": {
4138
+ "service_project_id_project_id_fk": {
4139
+ "name": "service_project_id_project_id_fk",
4140
+ "tableFrom": "service",
4141
+ "tableTo": "project",
4142
+ "columnsFrom": ["project_id"],
4143
+ "columnsTo": ["id"],
4144
+ "onDelete": "cascade",
4145
+ "onUpdate": "no action"
4146
+ }
4147
+ },
4148
+ "compositePrimaryKeys": {},
4149
+ "uniqueConstraints": {},
4150
+ "policies": {},
4151
+ "checkConstraints": {},
4152
+ "isRLSEnabled": false
4153
+ },
4154
+ "public.service_deployment": {
4155
+ "name": "service_deployment",
4156
+ "schema": "",
4157
+ "columns": {
4158
+ "id": {
4159
+ "name": "id",
4160
+ "type": "text",
4161
+ "primaryKey": true,
4162
+ "notNull": true
4163
+ },
4164
+ "deployment_id": {
4165
+ "name": "deployment_id",
4166
+ "type": "text",
4167
+ "primaryKey": false,
4168
+ "notNull": true
4169
+ },
4170
+ "service_id": {
4171
+ "name": "service_id",
4172
+ "type": "text",
4173
+ "primaryKey": false,
4174
+ "notNull": true
4175
+ },
4176
+ "container_id": {
4177
+ "name": "container_id",
4178
+ "type": "text",
4179
+ "primaryKey": false,
4180
+ "notNull": false
4181
+ },
4182
+ "status": {
4183
+ "name": "status",
4184
+ "type": "text",
4185
+ "primaryKey": false,
4186
+ "notNull": true,
4187
+ "default": "'pending'"
4188
+ },
4189
+ "image_ref": {
4190
+ "name": "image_ref",
4191
+ "type": "text",
4192
+ "primaryKey": false,
4193
+ "notNull": false
4194
+ },
4195
+ "host_port": {
4196
+ "name": "host_port",
4197
+ "type": "integer",
4198
+ "primaryKey": false,
4199
+ "notNull": false
4200
+ },
4201
+ "ip": {
4202
+ "name": "ip",
4203
+ "type": "text",
4204
+ "primaryKey": false,
4205
+ "notNull": false
4206
+ },
4207
+ "created_at": {
4208
+ "name": "created_at",
4209
+ "type": "timestamp",
4210
+ "primaryKey": false,
4211
+ "notNull": true,
4212
+ "default": "now()"
4213
+ },
4214
+ "updated_at": {
4215
+ "name": "updated_at",
4216
+ "type": "timestamp",
4217
+ "primaryKey": false,
4218
+ "notNull": true,
4219
+ "default": "now()"
4220
+ }
4221
+ },
4222
+ "indexes": {},
4223
+ "foreignKeys": {
4224
+ "service_deployment_deployment_id_deployment_id_fk": {
4225
+ "name": "service_deployment_deployment_id_deployment_id_fk",
4226
+ "tableFrom": "service_deployment",
4227
+ "tableTo": "deployment",
4228
+ "columnsFrom": ["deployment_id"],
4229
+ "columnsTo": ["id"],
4230
+ "onDelete": "cascade",
4231
+ "onUpdate": "no action"
4232
+ },
4233
+ "service_deployment_service_id_service_id_fk": {
4234
+ "name": "service_deployment_service_id_service_id_fk",
4235
+ "tableFrom": "service_deployment",
4236
+ "tableTo": "service",
4237
+ "columnsFrom": ["service_id"],
4238
+ "columnsTo": ["id"],
4239
+ "onDelete": "cascade",
4240
+ "onUpdate": "no action"
4241
+ }
4242
+ },
4243
+ "compositePrimaryKeys": {},
4244
+ "uniqueConstraints": {},
4245
+ "policies": {},
4246
+ "checkConstraints": {},
4247
+ "isRLSEnabled": false
4248
+ },
4249
+ "public.service_terminal_sessions": {
4250
+ "name": "service_terminal_sessions",
4251
+ "schema": "",
4252
+ "columns": {
4253
+ "id": {
4254
+ "name": "id",
4255
+ "type": "text",
4256
+ "primaryKey": true,
4257
+ "notNull": true
4258
+ },
4259
+ "user_id": {
4260
+ "name": "user_id",
4261
+ "type": "text",
4262
+ "primaryKey": false,
4263
+ "notNull": true
4264
+ },
4265
+ "service_id": {
4266
+ "name": "service_id",
4267
+ "type": "text",
4268
+ "primaryKey": false,
4269
+ "notNull": true
4270
+ },
4271
+ "started_at": {
4272
+ "name": "started_at",
4273
+ "type": "timestamp",
4274
+ "primaryKey": false,
4275
+ "notNull": true,
4276
+ "default": "now()"
4277
+ },
4278
+ "ended_at": {
4279
+ "name": "ended_at",
4280
+ "type": "timestamp",
4281
+ "primaryKey": false,
4282
+ "notNull": false
4283
+ },
4284
+ "exit_code": {
4285
+ "name": "exit_code",
4286
+ "type": "integer",
4287
+ "primaryKey": false,
4288
+ "notNull": false
4289
+ },
4290
+ "exit_reason": {
4291
+ "name": "exit_reason",
4292
+ "type": "text",
4293
+ "primaryKey": false,
4294
+ "notNull": false
4295
+ },
4296
+ "client_ip": {
4297
+ "name": "client_ip",
4298
+ "type": "text",
4299
+ "primaryKey": false,
4300
+ "notNull": false
4301
+ },
4302
+ "user_agent": {
4303
+ "name": "user_agent",
4304
+ "type": "text",
4305
+ "primaryKey": false,
4306
+ "notNull": false
4307
+ }
4308
+ },
4309
+ "indexes": {
4310
+ "service_terminal_sessions_user_idx": {
4311
+ "name": "service_terminal_sessions_user_idx",
4312
+ "columns": [
4313
+ {
4314
+ "expression": "user_id",
4315
+ "isExpression": false,
4316
+ "asc": true,
4317
+ "nulls": "last"
4318
+ },
4319
+ {
4320
+ "expression": "started_at",
4321
+ "isExpression": false,
4322
+ "asc": true,
4323
+ "nulls": "last"
4324
+ }
4325
+ ],
4326
+ "isUnique": false,
4327
+ "concurrently": false,
4328
+ "method": "btree",
4329
+ "with": {}
4330
+ },
4331
+ "service_terminal_sessions_service_idx": {
4332
+ "name": "service_terminal_sessions_service_idx",
4333
+ "columns": [
4334
+ {
4335
+ "expression": "service_id",
4336
+ "isExpression": false,
4337
+ "asc": true,
4338
+ "nulls": "last"
4339
+ },
4340
+ {
4341
+ "expression": "started_at",
4342
+ "isExpression": false,
4343
+ "asc": true,
4344
+ "nulls": "last"
4345
+ }
4346
+ ],
4347
+ "isUnique": false,
4348
+ "concurrently": false,
4349
+ "method": "btree",
4350
+ "with": {}
4351
+ }
4352
+ },
4353
+ "foreignKeys": {
4354
+ "service_terminal_sessions_user_id_user_id_fk": {
4355
+ "name": "service_terminal_sessions_user_id_user_id_fk",
4356
+ "tableFrom": "service_terminal_sessions",
4357
+ "tableTo": "user",
4358
+ "columnsFrom": ["user_id"],
4359
+ "columnsTo": ["id"],
4360
+ "onDelete": "cascade",
4361
+ "onUpdate": "no action"
4362
+ },
4363
+ "service_terminal_sessions_service_id_service_id_fk": {
4364
+ "name": "service_terminal_sessions_service_id_service_id_fk",
4365
+ "tableFrom": "service_terminal_sessions",
4366
+ "tableTo": "service",
4367
+ "columnsFrom": ["service_id"],
4368
+ "columnsTo": ["id"],
4369
+ "onDelete": "cascade",
4370
+ "onUpdate": "no action"
4371
+ }
4372
+ },
4373
+ "compositePrimaryKeys": {},
4374
+ "uniqueConstraints": {},
4375
+ "policies": {},
4376
+ "checkConstraints": {},
4377
+ "isRLSEnabled": false
4378
+ },
4379
+ "public.session": {
4380
+ "name": "session",
4381
+ "schema": "",
4382
+ "columns": {
4383
+ "id": {
4384
+ "name": "id",
4385
+ "type": "text",
4386
+ "primaryKey": true,
4387
+ "notNull": true
4388
+ },
4389
+ "expires_at": {
4390
+ "name": "expires_at",
4391
+ "type": "timestamp",
4392
+ "primaryKey": false,
4393
+ "notNull": true
4394
+ },
4395
+ "token": {
4396
+ "name": "token",
4397
+ "type": "text",
4398
+ "primaryKey": false,
4399
+ "notNull": true
4400
+ },
4401
+ "created_at": {
4402
+ "name": "created_at",
4403
+ "type": "timestamp",
4404
+ "primaryKey": false,
4405
+ "notNull": true,
4406
+ "default": "now()"
4407
+ },
4408
+ "updated_at": {
4409
+ "name": "updated_at",
4410
+ "type": "timestamp",
4411
+ "primaryKey": false,
4412
+ "notNull": true,
4413
+ "default": "now()"
4414
+ },
4415
+ "ip_address": {
4416
+ "name": "ip_address",
4417
+ "type": "text",
4418
+ "primaryKey": false,
4419
+ "notNull": false
4420
+ },
4421
+ "user_agent": {
4422
+ "name": "user_agent",
4423
+ "type": "text",
4424
+ "primaryKey": false,
4425
+ "notNull": false
4426
+ },
4427
+ "user_id": {
4428
+ "name": "user_id",
4429
+ "type": "text",
4430
+ "primaryKey": false,
4431
+ "notNull": true
4432
+ },
4433
+ "active_organization_id": {
4434
+ "name": "active_organization_id",
4435
+ "type": "text",
4436
+ "primaryKey": false,
4437
+ "notNull": false
4438
+ }
4439
+ },
4440
+ "indexes": {},
4441
+ "foreignKeys": {
4442
+ "session_user_id_user_id_fk": {
4443
+ "name": "session_user_id_user_id_fk",
4444
+ "tableFrom": "session",
4445
+ "tableTo": "user",
4446
+ "columnsFrom": ["user_id"],
4447
+ "columnsTo": ["id"],
4448
+ "onDelete": "cascade",
4449
+ "onUpdate": "no action"
4450
+ }
4451
+ },
4452
+ "compositePrimaryKeys": {},
4453
+ "uniqueConstraints": {
4454
+ "session_token_unique": {
4455
+ "name": "session_token_unique",
4456
+ "nullsNotDistinct": false,
4457
+ "columns": ["token"]
4458
+ }
4459
+ },
4460
+ "policies": {},
4461
+ "checkConstraints": {},
4462
+ "isRLSEnabled": false
4463
+ },
4464
+ "public.terminal_sessions": {
4465
+ "name": "terminal_sessions",
4466
+ "schema": "",
4467
+ "columns": {
4468
+ "id": {
4469
+ "name": "id",
4470
+ "type": "text",
4471
+ "primaryKey": true,
4472
+ "notNull": true
4473
+ },
4474
+ "user_id": {
4475
+ "name": "user_id",
4476
+ "type": "text",
4477
+ "primaryKey": false,
4478
+ "notNull": true
4479
+ },
4480
+ "server_id": {
4481
+ "name": "server_id",
4482
+ "type": "text",
4483
+ "primaryKey": false,
4484
+ "notNull": true
4485
+ },
4486
+ "started_at": {
4487
+ "name": "started_at",
4488
+ "type": "timestamp",
4489
+ "primaryKey": false,
4490
+ "notNull": true,
4491
+ "default": "now()"
4492
+ },
4493
+ "ended_at": {
4494
+ "name": "ended_at",
4495
+ "type": "timestamp",
4496
+ "primaryKey": false,
4497
+ "notNull": false
4498
+ },
4499
+ "exit_code": {
4500
+ "name": "exit_code",
4501
+ "type": "integer",
4502
+ "primaryKey": false,
4503
+ "notNull": false
4504
+ },
4505
+ "exit_reason": {
4506
+ "name": "exit_reason",
4507
+ "type": "text",
4508
+ "primaryKey": false,
4509
+ "notNull": false
4510
+ },
4511
+ "client_ip": {
4512
+ "name": "client_ip",
4513
+ "type": "text",
4514
+ "primaryKey": false,
4515
+ "notNull": false
4516
+ },
4517
+ "user_agent": {
4518
+ "name": "user_agent",
4519
+ "type": "text",
4520
+ "primaryKey": false,
4521
+ "notNull": false
4522
+ }
4523
+ },
4524
+ "indexes": {
4525
+ "terminal_sessions_user_idx": {
4526
+ "name": "terminal_sessions_user_idx",
4527
+ "columns": [
4528
+ {
4529
+ "expression": "user_id",
4530
+ "isExpression": false,
4531
+ "asc": true,
4532
+ "nulls": "last"
4533
+ },
4534
+ {
4535
+ "expression": "started_at",
4536
+ "isExpression": false,
4537
+ "asc": true,
4538
+ "nulls": "last"
4539
+ }
4540
+ ],
4541
+ "isUnique": false,
4542
+ "concurrently": false,
4543
+ "method": "btree",
4544
+ "with": {}
4545
+ },
4546
+ "terminal_sessions_server_idx": {
4547
+ "name": "terminal_sessions_server_idx",
4548
+ "columns": [
4549
+ {
4550
+ "expression": "server_id",
4551
+ "isExpression": false,
4552
+ "asc": true,
4553
+ "nulls": "last"
4554
+ },
4555
+ {
4556
+ "expression": "started_at",
4557
+ "isExpression": false,
4558
+ "asc": true,
4559
+ "nulls": "last"
4560
+ }
4561
+ ],
4562
+ "isUnique": false,
4563
+ "concurrently": false,
4564
+ "method": "btree",
4565
+ "with": {}
4566
+ }
4567
+ },
4568
+ "foreignKeys": {
4569
+ "terminal_sessions_user_id_user_id_fk": {
4570
+ "name": "terminal_sessions_user_id_user_id_fk",
4571
+ "tableFrom": "terminal_sessions",
4572
+ "tableTo": "user",
4573
+ "columnsFrom": ["user_id"],
4574
+ "columnsTo": ["id"],
4575
+ "onDelete": "cascade",
4576
+ "onUpdate": "no action"
4577
+ },
4578
+ "terminal_sessions_server_id_servers_id_fk": {
4579
+ "name": "terminal_sessions_server_id_servers_id_fk",
4580
+ "tableFrom": "terminal_sessions",
4581
+ "tableTo": "servers",
4582
+ "columnsFrom": ["server_id"],
4583
+ "columnsTo": ["id"],
4584
+ "onDelete": "cascade",
4585
+ "onUpdate": "no action"
4586
+ }
4587
+ },
4588
+ "compositePrimaryKeys": {},
4589
+ "uniqueConstraints": {},
4590
+ "policies": {},
4591
+ "checkConstraints": {},
4592
+ "isRLSEnabled": false
4593
+ },
4594
+ "public.user": {
4595
+ "name": "user",
4596
+ "schema": "",
4597
+ "columns": {
4598
+ "id": {
4599
+ "name": "id",
4600
+ "type": "text",
4601
+ "primaryKey": true,
4602
+ "notNull": true
4603
+ },
4604
+ "name": {
4605
+ "name": "name",
4606
+ "type": "text",
4607
+ "primaryKey": false,
4608
+ "notNull": true
4609
+ },
4610
+ "email": {
4611
+ "name": "email",
4612
+ "type": "text",
4613
+ "primaryKey": false,
4614
+ "notNull": true
4615
+ },
4616
+ "email_verified": {
4617
+ "name": "email_verified",
4618
+ "type": "boolean",
4619
+ "primaryKey": false,
4620
+ "notNull": true,
4621
+ "default": false
4622
+ },
4623
+ "image": {
4624
+ "name": "image",
4625
+ "type": "text",
4626
+ "primaryKey": false,
4627
+ "notNull": false
4628
+ },
4629
+ "role": {
4630
+ "name": "role",
4631
+ "type": "text",
4632
+ "primaryKey": false,
4633
+ "notNull": true,
4634
+ "default": "'user'"
4635
+ },
4636
+ "auto_provisioned": {
4637
+ "name": "auto_provisioned",
4638
+ "type": "boolean",
4639
+ "primaryKey": false,
4640
+ "notNull": true,
4641
+ "default": false
4642
+ },
4643
+ "created_at": {
4644
+ "name": "created_at",
4645
+ "type": "timestamp",
4646
+ "primaryKey": false,
4647
+ "notNull": true,
4648
+ "default": "now()"
4649
+ },
4650
+ "updated_at": {
4651
+ "name": "updated_at",
4652
+ "type": "timestamp",
4653
+ "primaryKey": false,
4654
+ "notNull": true,
4655
+ "default": "now()"
4656
+ }
4657
+ },
4658
+ "indexes": {},
4659
+ "foreignKeys": {},
4660
+ "compositePrimaryKeys": {},
4661
+ "uniqueConstraints": {
4662
+ "user_email_unique": {
4663
+ "name": "user_email_unique",
4664
+ "nullsNotDistinct": false,
4665
+ "columns": ["email"]
4666
+ }
4667
+ },
4668
+ "policies": {},
4669
+ "checkConstraints": {},
4670
+ "isRLSEnabled": false
4671
+ },
4672
+ "public.user_settings": {
4673
+ "name": "user_settings",
4674
+ "schema": "",
4675
+ "columns": {
4676
+ "id": {
4677
+ "name": "id",
4678
+ "type": "text",
4679
+ "primaryKey": true,
4680
+ "notNull": true
4681
+ },
4682
+ "user_id": {
4683
+ "name": "user_id",
4684
+ "type": "text",
4685
+ "primaryKey": false,
4686
+ "notNull": true
4687
+ },
4688
+ "build_mode": {
4689
+ "name": "build_mode",
4690
+ "type": "text",
4691
+ "primaryKey": false,
4692
+ "notNull": true,
4693
+ "default": "'auto'"
4694
+ },
4695
+ "cloud_session_token": {
4696
+ "name": "cloud_session_token",
4697
+ "type": "text",
4698
+ "primaryKey": false,
4699
+ "notNull": false
4700
+ },
4701
+ "default_deploy_target": {
4702
+ "name": "default_deploy_target",
4703
+ "type": "text",
4704
+ "primaryKey": false,
4705
+ "notNull": false
4706
+ },
4707
+ "default_server_id": {
4708
+ "name": "default_server_id",
4709
+ "type": "text",
4710
+ "primaryKey": false,
4711
+ "notNull": false
4712
+ },
4713
+ "clone_token_encrypted": {
4714
+ "name": "clone_token_encrypted",
4715
+ "type": "text",
4716
+ "primaryKey": false,
4717
+ "notNull": false
4718
+ },
4719
+ "clone_token_set_at": {
4720
+ "name": "clone_token_set_at",
4721
+ "type": "timestamp",
4722
+ "primaryKey": false,
4723
+ "notNull": false
4724
+ },
4725
+ "clone_token_as_default": {
4726
+ "name": "clone_token_as_default",
4727
+ "type": "boolean",
4728
+ "primaryKey": false,
4729
+ "notNull": true,
4730
+ "default": false
4731
+ },
4732
+ "clone_strategy_preference": {
4733
+ "name": "clone_strategy_preference",
4734
+ "type": "text",
4735
+ "primaryKey": false,
4736
+ "notNull": true,
4737
+ "default": "'prompt'"
4738
+ },
4739
+ "github_cli_disabled": {
4740
+ "name": "github_cli_disabled",
4741
+ "type": "boolean",
4742
+ "primaryKey": false,
4743
+ "notNull": true,
4744
+ "default": false
4745
+ },
4746
+ "created_at": {
4747
+ "name": "created_at",
4748
+ "type": "timestamp",
4749
+ "primaryKey": false,
4750
+ "notNull": true,
4751
+ "default": "now()"
4752
+ },
4753
+ "updated_at": {
4754
+ "name": "updated_at",
4755
+ "type": "timestamp",
4756
+ "primaryKey": false,
4757
+ "notNull": true,
4758
+ "default": "now()"
4759
+ }
4760
+ },
4761
+ "indexes": {},
4762
+ "foreignKeys": {
4763
+ "user_settings_user_id_user_id_fk": {
4764
+ "name": "user_settings_user_id_user_id_fk",
4765
+ "tableFrom": "user_settings",
4766
+ "tableTo": "user",
4767
+ "columnsFrom": ["user_id"],
4768
+ "columnsTo": ["id"],
4769
+ "onDelete": "cascade",
4770
+ "onUpdate": "no action"
4771
+ }
4772
+ },
4773
+ "compositePrimaryKeys": {},
4774
+ "uniqueConstraints": {
4775
+ "user_settings_user_id_unique": {
4776
+ "name": "user_settings_user_id_unique",
4777
+ "nullsNotDistinct": false,
4778
+ "columns": ["user_id"]
4779
+ }
4780
+ },
4781
+ "policies": {},
4782
+ "checkConstraints": {},
4783
+ "isRLSEnabled": false
4784
+ },
4785
+ "public.verification": {
4786
+ "name": "verification",
4787
+ "schema": "",
4788
+ "columns": {
4789
+ "id": {
4790
+ "name": "id",
4791
+ "type": "text",
4792
+ "primaryKey": true,
4793
+ "notNull": true
4794
+ },
4795
+ "identifier": {
4796
+ "name": "identifier",
4797
+ "type": "text",
4798
+ "primaryKey": false,
4799
+ "notNull": true
4800
+ },
4801
+ "value": {
4802
+ "name": "value",
4803
+ "type": "text",
4804
+ "primaryKey": false,
4805
+ "notNull": true
4806
+ },
4807
+ "expires_at": {
4808
+ "name": "expires_at",
4809
+ "type": "timestamp",
4810
+ "primaryKey": false,
4811
+ "notNull": true
4812
+ },
4813
+ "created_at": {
4814
+ "name": "created_at",
4815
+ "type": "timestamp",
4816
+ "primaryKey": false,
4817
+ "notNull": false,
4818
+ "default": "now()"
4819
+ },
4820
+ "updated_at": {
4821
+ "name": "updated_at",
4822
+ "type": "timestamp",
4823
+ "primaryKey": false,
4824
+ "notNull": false,
4825
+ "default": "now()"
4826
+ }
4827
+ },
4828
+ "indexes": {},
4829
+ "foreignKeys": {},
4830
+ "compositePrimaryKeys": {},
4831
+ "uniqueConstraints": {},
4832
+ "policies": {},
4833
+ "checkConstraints": {},
4834
+ "isRLSEnabled": false
4835
+ }
4836
+ },
4837
+ "enums": {},
4838
+ "schemas": {},
4839
+ "sequences": {},
4840
+ "roles": {},
4841
+ "policies": {},
4842
+ "views": {},
4843
+ "_meta": {
4844
+ "columns": {},
4845
+ "schemas": {},
4846
+ "tables": {}
4847
+ }
4848
+ }