@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,13 @@
1
+ CREATE TABLE "personal_access_token_grant" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "token_id" text NOT NULL,
4
+ "resource_type" text NOT NULL,
5
+ "resource_id" text NOT NULL,
6
+ "permissions_json" text DEFAULT '[]' NOT NULL,
7
+ "created_at" timestamp DEFAULT now() NOT NULL
8
+ );
9
+ --> statement-breakpoint
10
+ ALTER TABLE "personal_access_token" ADD COLUMN "scoped" boolean DEFAULT false NOT NULL;--> statement-breakpoint
11
+ ALTER TABLE "personal_access_token_grant" ADD CONSTRAINT "personal_access_token_grant_token_id_personal_access_token_id_fk" FOREIGN KEY ("token_id") REFERENCES "public"."personal_access_token"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
12
+ CREATE UNIQUE INDEX "pat_grant_unique" ON "personal_access_token_grant" USING btree ("token_id","resource_type","resource_id");--> statement-breakpoint
13
+ CREATE INDEX "pat_grant_token_idx" ON "personal_access_token_grant" USING btree ("token_id");
@@ -0,0 +1,51 @@
1
+ CREATE TABLE "oauth_access_token" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "access_token" text NOT NULL,
4
+ "refresh_token" text,
5
+ "access_token_expires_at" timestamp NOT NULL,
6
+ "refresh_token_expires_at" timestamp,
7
+ "client_id" text NOT NULL,
8
+ "user_id" text,
9
+ "scopes" text NOT NULL,
10
+ "created_at" timestamp DEFAULT now() NOT NULL,
11
+ "updated_at" timestamp DEFAULT now() NOT NULL,
12
+ CONSTRAINT "oauth_access_token_access_token_unique" UNIQUE("access_token"),
13
+ CONSTRAINT "oauth_access_token_refresh_token_unique" UNIQUE("refresh_token")
14
+ );
15
+ --> statement-breakpoint
16
+ CREATE TABLE "oauth_application" (
17
+ "id" text PRIMARY KEY NOT NULL,
18
+ "name" text NOT NULL,
19
+ "icon" text,
20
+ "metadata" text,
21
+ "client_id" text NOT NULL,
22
+ "client_secret" text,
23
+ "redirect_urls" text NOT NULL,
24
+ "type" text NOT NULL,
25
+ "disabled" boolean DEFAULT false NOT NULL,
26
+ "user_id" text,
27
+ "created_at" timestamp DEFAULT now() NOT NULL,
28
+ "updated_at" timestamp DEFAULT now() NOT NULL,
29
+ CONSTRAINT "oauth_application_client_id_unique" UNIQUE("client_id")
30
+ );
31
+ --> statement-breakpoint
32
+ CREATE TABLE "oauth_consent" (
33
+ "id" text PRIMARY KEY NOT NULL,
34
+ "client_id" text NOT NULL,
35
+ "user_id" text NOT NULL,
36
+ "scopes" text NOT NULL,
37
+ "consent_given" boolean NOT NULL,
38
+ "created_at" timestamp DEFAULT now() NOT NULL,
39
+ "updated_at" timestamp DEFAULT now() NOT NULL
40
+ );
41
+ --> statement-breakpoint
42
+ ALTER TABLE "oauth_access_token" ADD CONSTRAINT "oauth_access_token_client_id_oauth_application_client_id_fk" FOREIGN KEY ("client_id") REFERENCES "public"."oauth_application"("client_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
43
+ ALTER TABLE "oauth_access_token" ADD CONSTRAINT "oauth_access_token_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
44
+ ALTER TABLE "oauth_application" ADD CONSTRAINT "oauth_application_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
45
+ ALTER TABLE "oauth_consent" ADD CONSTRAINT "oauth_consent_client_id_oauth_application_client_id_fk" FOREIGN KEY ("client_id") REFERENCES "public"."oauth_application"("client_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
46
+ ALTER TABLE "oauth_consent" ADD CONSTRAINT "oauth_consent_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
47
+ CREATE INDEX "oauth_access_token_client_idx" ON "oauth_access_token" USING btree ("client_id");--> statement-breakpoint
48
+ CREATE INDEX "oauth_access_token_user_idx" ON "oauth_access_token" USING btree ("user_id");--> statement-breakpoint
49
+ CREATE INDEX "oauth_application_user_idx" ON "oauth_application" USING btree ("user_id");--> statement-breakpoint
50
+ CREATE INDEX "oauth_consent_client_idx" ON "oauth_consent" USING btree ("client_id");--> statement-breakpoint
51
+ CREATE INDEX "oauth_consent_user_idx" ON "oauth_consent" USING btree ("user_id");
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "personal_access_token" ADD COLUMN "oauth_client_id" text;--> statement-breakpoint
2
+ CREATE UNIQUE INDEX "personal_access_token_oauth_binding_idx" ON "personal_access_token" USING btree ("user_id","oauth_client_id");
@@ -0,0 +1 @@
1
+ ALTER TABLE "project" ADD COLUMN "routing_config" jsonb;
@@ -0,0 +1 @@
1
+ ALTER TABLE "domain" ADD COLUMN "external_ingress" boolean DEFAULT false NOT NULL;
@@ -0,0 +1,17 @@
1
+ CREATE TABLE "route_rule" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "organization_id" text NOT NULL,
4
+ "project_id" text NOT NULL,
5
+ "domain_id" text,
6
+ "path_prefix" text,
7
+ "spec" jsonb DEFAULT '{}'::jsonb NOT NULL,
8
+ "enabled" boolean DEFAULT true NOT NULL,
9
+ "created_at" timestamp DEFAULT now() NOT NULL,
10
+ "updated_at" timestamp DEFAULT now() NOT NULL
11
+ );
12
+ --> statement-breakpoint
13
+ ALTER TABLE "route_rule" ADD CONSTRAINT "route_rule_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
14
+ ALTER TABLE "route_rule" ADD CONSTRAINT "route_rule_project_id_project_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."project"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
15
+ ALTER TABLE "route_rule" ADD CONSTRAINT "route_rule_domain_id_domain_id_fk" FOREIGN KEY ("domain_id") REFERENCES "public"."domain"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
16
+ CREATE INDEX "idx_route_rule_project" ON "route_rule" USING btree ("project_id");--> statement-breakpoint
17
+ CREATE INDEX "idx_route_rule_domain" ON "route_rule" USING btree ("domain_id");
@@ -0,0 +1,28 @@
1
+ CREATE TABLE "docker_migration_run" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "organization_id" text NOT NULL,
4
+ "source_server_id" text,
5
+ "target_server_id" text,
6
+ "project_id" text,
7
+ "project_name" text NOT NULL,
8
+ "service_names" jsonb DEFAULT '[]'::jsonb NOT NULL,
9
+ "status" text DEFAULT 'queued' NOT NULL,
10
+ "mode" text DEFAULT 'cross_server' NOT NULL,
11
+ "deployment_id" text,
12
+ "kill_originals" boolean DEFAULT false NOT NULL,
13
+ "confirmation_token" text,
14
+ "volume_plan" jsonb DEFAULT '[]'::jsonb,
15
+ "scanned_container_ids" jsonb DEFAULT '{}'::jsonb,
16
+ "bytes_moved" bigint,
17
+ "error_message" text,
18
+ "started_at" timestamp DEFAULT now() NOT NULL,
19
+ "finished_at" timestamp,
20
+ "last_event_at" timestamp DEFAULT now() NOT NULL
21
+ );
22
+ --> statement-breakpoint
23
+ ALTER TABLE "docker_migration_run" ADD CONSTRAINT "docker_migration_run_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
24
+ ALTER TABLE "docker_migration_run" ADD CONSTRAINT "docker_migration_run_source_server_id_servers_id_fk" FOREIGN KEY ("source_server_id") REFERENCES "public"."servers"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
25
+ ALTER TABLE "docker_migration_run" ADD CONSTRAINT "docker_migration_run_target_server_id_servers_id_fk" FOREIGN KEY ("target_server_id") REFERENCES "public"."servers"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
26
+ ALTER TABLE "docker_migration_run" ADD CONSTRAINT "docker_migration_run_project_id_project_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."project"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
27
+ CREATE INDEX "idx_docker_migration_run_org_started" ON "docker_migration_run" USING btree ("organization_id","started_at");--> statement-breakpoint
28
+ CREATE INDEX "idx_docker_migration_run_in_flight" ON "docker_migration_run" USING btree ("status") WHERE "docker_migration_run"."status" IN ('queued','adopting','moving_data','deploying','verifying','awaiting_cutover','cutover');
@@ -0,0 +1 @@
1
+ ALTER TABLE "domain" ADD COLUMN "manual_ssl" boolean DEFAULT false NOT NULL;
@@ -0,0 +1,15 @@
1
+ CREATE TABLE "job_run" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "job_id" text NOT NULL,
4
+ "kind" text DEFAULT 'system' NOT NULL,
5
+ "trigger" text DEFAULT 'schedule' NOT NULL,
6
+ "status" text NOT NULL,
7
+ "started_at" timestamp DEFAULT now() NOT NULL,
8
+ "finished_at" timestamp,
9
+ "duration_ms" integer,
10
+ "summary" jsonb,
11
+ "error" text,
12
+ "created_at" timestamp DEFAULT now() NOT NULL
13
+ );
14
+ --> statement-breakpoint
15
+ CREATE INDEX "job_run_job_started_idx" ON "job_run" USING btree ("job_id","started_at");
@@ -0,0 +1,16 @@
1
+ CREATE TABLE "job" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "key" text NOT NULL,
4
+ "kind" text DEFAULT 'system' NOT NULL,
5
+ "label" text NOT NULL,
6
+ "cron_expression" text NOT NULL,
7
+ "enabled" boolean DEFAULT true NOT NULL,
8
+ "action_type" text DEFAULT 'builtin' NOT NULL,
9
+ "action_config" jsonb,
10
+ "created_by" text,
11
+ "created_at" timestamp DEFAULT now() NOT NULL,
12
+ "updated_at" timestamp DEFAULT now() NOT NULL,
13
+ CONSTRAINT "job_key_unique" UNIQUE("key")
14
+ );
15
+ --> statement-breakpoint
16
+ CREATE INDEX "job_kind_idx" ON "job" USING btree ("kind");
@@ -0,0 +1,4 @@
1
+ ALTER TABLE "project" ADD COLUMN "is_app" boolean DEFAULT false NOT NULL;--> statement-breakpoint
2
+ ALTER TABLE "project" ADD COLUMN "app_template_id" text;--> statement-breakpoint
3
+ -- Backfill: existing webmail projects are managed apps → move them to the Apps tab.
4
+ UPDATE "project" SET "is_app" = true, "app_template_id" = 'mail-webmail' WHERE "framework" = 'webmail';
@@ -0,0 +1 @@
1
+ ALTER TABLE "job_run" ADD COLUMN "output" text;
@@ -0,0 +1,15 @@
1
+ CREATE TABLE "system_notice" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "severity" text DEFAULT 'info' NOT NULL,
4
+ "title" text NOT NULL,
5
+ "message" text NOT NULL,
6
+ "action_label" text,
7
+ "action_url" text,
8
+ "active" boolean DEFAULT true NOT NULL,
9
+ "starts_at" timestamp,
10
+ "ends_at" timestamp,
11
+ "created_at" timestamp DEFAULT now() NOT NULL,
12
+ "updated_at" timestamp DEFAULT now() NOT NULL
13
+ );
14
+ --> statement-breakpoint
15
+ CREATE INDEX "idx_system_notice_active" ON "system_notice" USING btree ("active");
@@ -0,0 +1,8 @@
1
+ ALTER TABLE "job" ALTER COLUMN "cron_expression" DROP NOT NULL;--> statement-breakpoint
2
+ ALTER TABLE "job" ADD COLUMN "schedule_type" text DEFAULT 'recurring' NOT NULL;--> statement-breakpoint
3
+ ALTER TABLE "job" ADD COLUMN "run_at" timestamp;--> statement-breakpoint
4
+ ALTER TABLE "job" ADD COLUMN "depends_on" text[];--> statement-breakpoint
5
+ ALTER TABLE "job" ADD COLUMN "trigger_events" text[];--> statement-breakpoint
6
+ ALTER TABLE "job" ADD COLUMN "notify_config" jsonb;--> statement-breakpoint
7
+ ALTER TABLE "job_run" ADD COLUMN "server_id" text;--> statement-breakpoint
8
+ ALTER TABLE "job_run" ADD COLUMN "attempt" integer DEFAULT 1 NOT NULL;
@@ -0,0 +1 @@
1
+ ALTER TABLE "service" ADD COLUMN "public_endpoints" jsonb DEFAULT '[]'::jsonb;
@@ -0,0 +1,35 @@
1
+ CREATE TABLE "github_deploy_key" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "server_id" text NOT NULL,
4
+ "organization_id" text NOT NULL,
5
+ "owner" text NOT NULL,
6
+ "repo" text NOT NULL,
7
+ "github_key_id" integer,
8
+ "private_key_encrypted" text NOT NULL,
9
+ "public_key" text NOT NULL,
10
+ "read_only" boolean DEFAULT true NOT NULL,
11
+ "created_at" timestamp DEFAULT now() NOT NULL
12
+ );
13
+ --> statement-breakpoint
14
+ CREATE TABLE "server_github_auth" (
15
+ "id" text PRIMARY KEY NOT NULL,
16
+ "server_id" text NOT NULL,
17
+ "organization_id" text NOT NULL,
18
+ "mode" text NOT NULL,
19
+ "token_encrypted" text,
20
+ "token_source" text,
21
+ "token_login" text,
22
+ "server_key_private_encrypted" text,
23
+ "server_key_public" text,
24
+ "created_at" timestamp DEFAULT now() NOT NULL,
25
+ "updated_at" timestamp DEFAULT now() NOT NULL
26
+ );
27
+ --> statement-breakpoint
28
+ ALTER TABLE "github_deploy_key" ADD CONSTRAINT "github_deploy_key_server_id_servers_id_fk" FOREIGN KEY ("server_id") REFERENCES "public"."servers"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
29
+ ALTER TABLE "github_deploy_key" ADD CONSTRAINT "github_deploy_key_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
30
+ ALTER TABLE "server_github_auth" ADD CONSTRAINT "server_github_auth_server_id_servers_id_fk" FOREIGN KEY ("server_id") REFERENCES "public"."servers"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
31
+ ALTER TABLE "server_github_auth" ADD CONSTRAINT "server_github_auth_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
32
+ CREATE UNIQUE INDEX "uq_github_deploy_key_server_repo" ON "github_deploy_key" USING btree ("server_id","owner","repo");--> statement-breakpoint
33
+ CREATE INDEX "idx_github_deploy_key_org_server" ON "github_deploy_key" USING btree ("organization_id","server_id");--> statement-breakpoint
34
+ CREATE UNIQUE INDEX "uq_server_github_auth_server" ON "server_github_auth" USING btree ("server_id");--> statement-breakpoint
35
+ CREATE INDEX "idx_server_github_auth_org" ON "server_github_auth" USING btree ("organization_id");
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "deployment" ADD COLUMN "release_version" text;--> statement-breakpoint
2
+ ALTER TABLE "project" ADD COLUMN "release_source" jsonb;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "user_settings" ADD COLUMN "transfer_mode" text DEFAULT 'auto' NOT NULL;--> statement-breakpoint
2
+ ALTER TABLE "user_settings" ADD COLUMN "transfer_compression" text DEFAULT 'auto' NOT NULL;
@@ -0,0 +1,3 @@
1
+ ALTER TABLE "domain" ADD COLUMN "verify_attempts" integer DEFAULT 0 NOT NULL;--> statement-breakpoint
2
+ ALTER TABLE "domain" ADD COLUMN "last_verify_error" text;--> statement-breakpoint
3
+ ALTER TABLE "domain" ADD COLUMN "last_checked_at" timestamp;
@@ -0,0 +1 @@
1
+ ALTER TABLE "service_deployment" ADD COLUMN "image_digest" text;
@@ -0,0 +1,19 @@
1
+ CREATE TABLE "update_status" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "organization_id" text NOT NULL,
4
+ "project_id" text NOT NULL,
5
+ "kind" text NOT NULL,
6
+ "behind" boolean DEFAULT false NOT NULL,
7
+ "latest_in_progress" boolean DEFAULT false NOT NULL,
8
+ "current_label" text,
9
+ "latest_label" text,
10
+ "detail" jsonb,
11
+ "checked_at" timestamp DEFAULT now() NOT NULL,
12
+ "created_at" timestamp DEFAULT now() NOT NULL,
13
+ "updated_at" timestamp DEFAULT now() NOT NULL
14
+ );
15
+ --> statement-breakpoint
16
+ ALTER TABLE "update_status" ADD CONSTRAINT "update_status_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
17
+ ALTER TABLE "update_status" ADD CONSTRAINT "update_status_project_id_project_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."project"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
18
+ CREATE UNIQUE INDEX "uq_update_status_project" ON "update_status" USING btree ("project_id");--> statement-breakpoint
19
+ CREATE INDEX "idx_update_status_org_behind" ON "update_status" USING btree ("organization_id","behind");
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "system_notice" ADD COLUMN "target_type" text;--> statement-breakpoint
2
+ ALTER TABLE "system_notice" ADD COLUMN "target_id" text;
@@ -0,0 +1,14 @@
1
+ CREATE TABLE "billing_usage_snapshot" (
2
+ "organization_id" text PRIMARY KEY NOT NULL,
3
+ "balance" double precision,
4
+ "credits_used" double precision,
5
+ "cpu_time_minutes" double precision,
6
+ "memory_gb_minutes" double precision,
7
+ "disk_io_gb" double precision,
8
+ "network_gb" double precision,
9
+ "period_start" timestamp,
10
+ "period_end" timestamp,
11
+ "updated_at" timestamp DEFAULT now() NOT NULL
12
+ );
13
+ --> statement-breakpoint
14
+ ALTER TABLE "billing_usage_snapshot" ADD CONSTRAINT "billing_usage_snapshot_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;
@@ -0,0 +1,5 @@
1
+ ALTER TABLE "instance_settings" ADD COLUMN "smtp_host" text;--> statement-breakpoint
2
+ ALTER TABLE "instance_settings" ADD COLUMN "smtp_port" integer;--> statement-breakpoint
3
+ ALTER TABLE "instance_settings" ADD COLUMN "smtp_user" text;--> statement-breakpoint
4
+ ALTER TABLE "instance_settings" ADD COLUMN "smtp_password_encrypted" text;--> statement-breakpoint
5
+ ALTER TABLE "instance_settings" ADD COLUMN "smtp_from" text;
@@ -0,0 +1,22 @@
1
+ CREATE TABLE "server_module_status" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "organization_id" text,
4
+ "server_id" text NOT NULL,
5
+ "module_name" text NOT NULL,
6
+ "installed_version" text,
7
+ "migration_version" text,
8
+ "available_version" text,
9
+ "behind" boolean DEFAULT false NOT NULL,
10
+ "latest_in_progress" boolean DEFAULT false NOT NULL,
11
+ "current_label" text,
12
+ "latest_label" text,
13
+ "detail" jsonb,
14
+ "checked_at" timestamp DEFAULT now() NOT NULL,
15
+ "created_at" timestamp DEFAULT now() NOT NULL,
16
+ "updated_at" timestamp DEFAULT now() NOT NULL
17
+ );
18
+ --> statement-breakpoint
19
+ ALTER TABLE "server_module_status" ADD CONSTRAINT "server_module_status_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
20
+ ALTER TABLE "server_module_status" ADD CONSTRAINT "server_module_status_server_id_servers_id_fk" FOREIGN KEY ("server_id") REFERENCES "public"."servers"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
21
+ CREATE UNIQUE INDEX "uq_server_module_status" ON "server_module_status" USING btree ("server_id","module_name");--> statement-breakpoint
22
+ CREATE INDEX "idx_server_module_status_org_behind" ON "server_module_status" USING btree ("organization_id","behind");
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "cloud_handoff_code" ADD COLUMN "state" text;--> statement-breakpoint
2
+ CREATE INDEX "cloud_handoff_code_state_idx" ON "cloud_handoff_code" USING btree ("state");
@@ -0,0 +1,18 @@
1
+ CREATE TABLE "webhook_source" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "organization_id" text NOT NULL,
4
+ "kind" text NOT NULL,
5
+ "label" text NOT NULL,
6
+ "secret" text NOT NULL,
7
+ "enabled" boolean DEFAULT true NOT NULL,
8
+ "created_at" timestamp DEFAULT now() NOT NULL,
9
+ "updated_at" timestamp DEFAULT now() NOT NULL
10
+ );
11
+ --> statement-breakpoint
12
+ ALTER TABLE "domain" ALTER COLUMN "project_id" DROP NOT NULL;--> statement-breakpoint
13
+ ALTER TABLE "domain" ADD COLUMN "owner_type" text DEFAULT 'project' NOT NULL;--> statement-breakpoint
14
+ ALTER TABLE "domain" ADD COLUMN "webhook_source_id" text;--> statement-breakpoint
15
+ ALTER TABLE "webhook_source" ADD CONSTRAINT "webhook_source_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
16
+ CREATE INDEX "idx_webhook_source_org" ON "webhook_source" USING btree ("organization_id");--> statement-breakpoint
17
+ ALTER TABLE "domain" ADD CONSTRAINT "domain_webhook_source_id_webhook_source_id_fk" FOREIGN KEY ("webhook_source_id") REFERENCES "public"."webhook_source"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
18
+ CREATE INDEX "idx_domain_webhook_source" ON "domain" USING btree ("webhook_source_id");
@@ -0,0 +1 @@
1
+ ALTER TABLE "servers" ADD COLUMN "is_local" boolean DEFAULT false NOT NULL;
@@ -0,0 +1,18 @@
1
+ CREATE TABLE "project_connection" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "organization_id" text NOT NULL,
4
+ "source_project_id" text NOT NULL,
5
+ "target_project_id" text NOT NULL,
6
+ "output_id" text NOT NULL,
7
+ "env_key" text NOT NULL,
8
+ "mode" text DEFAULT 'public' NOT NULL,
9
+ "created_at" timestamp DEFAULT now() NOT NULL,
10
+ "updated_at" timestamp DEFAULT now() NOT NULL
11
+ );
12
+ --> statement-breakpoint
13
+ ALTER TABLE "project_connection" ADD CONSTRAINT "project_connection_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
14
+ ALTER TABLE "project_connection" ADD CONSTRAINT "project_connection_source_project_id_project_id_fk" FOREIGN KEY ("source_project_id") REFERENCES "public"."project"("id") ON DELETE restrict ON UPDATE no action;--> statement-breakpoint
15
+ ALTER TABLE "project_connection" ADD CONSTRAINT "project_connection_target_project_id_project_id_fk" FOREIGN KEY ("target_project_id") REFERENCES "public"."project"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
16
+ CREATE UNIQUE INDEX "uq_project_connection_target_env" ON "project_connection" USING btree ("target_project_id","env_key");--> statement-breakpoint
17
+ CREATE INDEX "idx_project_connection_target" ON "project_connection" USING btree ("target_project_id");--> statement-breakpoint
18
+ CREATE INDEX "idx_project_connection_source" ON "project_connection" USING btree ("source_project_id");
@@ -0,0 +1,3 @@
1
+ ALTER TABLE "project" ADD COLUMN "host_port" integer;--> statement-breakpoint
2
+ ALTER TABLE "project" ADD COLUMN "route_strategy" text DEFAULT 'auto';--> statement-breakpoint
3
+ ALTER TABLE "user_settings" ADD COLUMN "route_strategy" text DEFAULT 'auto' NOT NULL;
@@ -0,0 +1,3 @@
1
+ ALTER TABLE "notification_default" ADD COLUMN "default_channel_kinds" jsonb DEFAULT '["email"]'::jsonb NOT NULL;--> statement-breakpoint
2
+ UPDATE "notification_default" SET "default_channel_kinds" = jsonb_build_array("default_channel_kind");--> statement-breakpoint
3
+ ALTER TABLE "notification_default" DROP COLUMN "default_channel_kind";
@@ -0,0 +1,21 @@
1
+ CREATE TABLE "incoming_webhook" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "organization_id" text NOT NULL,
4
+ "project_id" text NOT NULL,
5
+ "name" text NOT NULL,
6
+ "enabled" boolean DEFAULT true NOT NULL,
7
+ "action_type" text NOT NULL,
8
+ "action_config" jsonb DEFAULT '{}'::jsonb NOT NULL,
9
+ "auth_mode" text DEFAULT 'token' NOT NULL,
10
+ "token_encrypted" text,
11
+ "hmac_secret_encrypted" text,
12
+ "created_by" text,
13
+ "last_fired_at" timestamp,
14
+ "created_at" timestamp DEFAULT now() NOT NULL,
15
+ "updated_at" timestamp DEFAULT now() NOT NULL
16
+ );
17
+ --> statement-breakpoint
18
+ ALTER TABLE "incoming_webhook" ADD CONSTRAINT "incoming_webhook_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
19
+ ALTER TABLE "incoming_webhook" ADD CONSTRAINT "incoming_webhook_project_id_project_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."project"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
20
+ CREATE INDEX "idx_incoming_webhook_project" ON "incoming_webhook" USING btree ("project_id");--> statement-breakpoint
21
+ CREATE INDEX "idx_incoming_webhook_org" ON "incoming_webhook" USING btree ("organization_id");
@@ -0,0 +1 @@
1
+ ALTER TABLE "docker_migration_run" ADD COLUMN "logs" text;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "docker_migration_run" ADD COLUMN IF NOT EXISTS "pending_items" jsonb DEFAULT '[]'::jsonb;--> statement-breakpoint
2
+ ALTER TABLE "docker_migration_run" ADD COLUMN IF NOT EXISTS "input_snapshot" jsonb;
@@ -0,0 +1,14 @@
1
+ CREATE TABLE "custom_app_template" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "organization_id" text NOT NULL,
4
+ "app_id" text NOT NULL,
5
+ "template" jsonb NOT NULL,
6
+ "created_by_user_id" text,
7
+ "created_at" timestamp DEFAULT now() NOT NULL,
8
+ "updated_at" timestamp DEFAULT now() NOT NULL
9
+ );
10
+ --> statement-breakpoint
11
+ ALTER TABLE "custom_app_template" ADD CONSTRAINT "custom_app_template_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
12
+ ALTER TABLE "custom_app_template" ADD CONSTRAINT "custom_app_template_created_by_user_id_user_id_fk" FOREIGN KEY ("created_by_user_id") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
13
+ CREATE UNIQUE INDEX "uq_custom_app_template_org_app" ON "custom_app_template" USING btree ("organization_id","app_id");--> statement-breakpoint
14
+ CREATE INDEX "idx_custom_app_template_org" ON "custom_app_template" USING btree ("organization_id");
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "docker_migration_run" ADD COLUMN IF NOT EXISTS "pending_items" jsonb DEFAULT '[]'::jsonb;--> statement-breakpoint
2
+ ALTER TABLE "docker_migration_run" ADD COLUMN IF NOT EXISTS "input_snapshot" jsonb;
@@ -0,0 +1,28 @@
1
+ CREATE TABLE "webhook_delivery" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "organization_id" text,
4
+ "project_id" text,
5
+ "source" text NOT NULL,
6
+ "hook_id" text,
7
+ "delivery_id" text,
8
+ "event" text NOT NULL,
9
+ "auth_result" text,
10
+ "outcome" text NOT NULL,
11
+ "action_ref" text,
12
+ "status_code" integer,
13
+ "error" text,
14
+ "summary" jsonb,
15
+ "client_ip" text,
16
+ "user_agent" text,
17
+ "duration_ms" integer,
18
+ "received_at" timestamp DEFAULT now() NOT NULL,
19
+ "processed_at" timestamp
20
+ );
21
+ --> statement-breakpoint
22
+ DROP TABLE IF EXISTS "github_webhook_event";--> statement-breakpoint
23
+ ALTER TABLE "webhook_delivery" ADD CONSTRAINT "webhook_delivery_organization_id_organization_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organization"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
24
+ ALTER TABLE "webhook_delivery" ADD CONSTRAINT "webhook_delivery_project_id_project_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."project"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
25
+ CREATE UNIQUE INDEX "uq_webhook_delivery_github_delivery" ON "webhook_delivery" USING btree ("source","delivery_id") WHERE "webhook_delivery"."source" = 'github' AND "webhook_delivery"."delivery_id" IS NOT NULL;--> statement-breakpoint
26
+ CREATE INDEX "idx_webhook_delivery_project" ON "webhook_delivery" USING btree ("project_id","received_at");--> statement-breakpoint
27
+ CREATE INDEX "idx_webhook_delivery_org" ON "webhook_delivery" USING btree ("organization_id","received_at");--> statement-breakpoint
28
+ CREATE INDEX "idx_webhook_delivery_hook" ON "webhook_delivery" USING btree ("hook_id","received_at");
@@ -0,0 +1 @@
1
+ ALTER TABLE "docker_migration_run" ADD COLUMN IF NOT EXISTS "target_volumes" jsonb DEFAULT '[]'::jsonb;
@@ -0,0 +1 @@
1
+ ALTER TABLE "project" ADD COLUMN IF NOT EXISTS "composite_routes" jsonb;
@@ -0,0 +1 @@
1
+ ALTER TABLE "user_settings" ADD COLUMN IF NOT EXISTS "forward_git_to_server" boolean DEFAULT false NOT NULL;
@@ -0,0 +1,3 @@
1
+ ALTER TABLE "instance_settings" ADD COLUMN IF NOT EXISTS "gh_device_token_encrypted" text;
2
+ --> statement-breakpoint
3
+ ALTER TABLE "instance_settings" ADD COLUMN IF NOT EXISTS "gh_device_token_set_at" timestamp;
@@ -0,0 +1 @@
1
+ ALTER TABLE "instance_settings" ADD COLUMN IF NOT EXISTS "gh_device_token_method" text;
@@ -0,0 +1,3 @@
1
+ ALTER TABLE "project" ADD COLUMN IF NOT EXISTS "volumes" jsonb;
2
+ --> statement-breakpoint
3
+ ALTER TABLE "project" ADD COLUMN IF NOT EXISTS "object_storage" jsonb;
@@ -0,0 +1 @@
1
+ ALTER TABLE "project" ADD COLUMN IF NOT EXISTS "compose_path" text;
@@ -0,0 +1 @@
1
+ ALTER TABLE "service" ADD COLUMN IF NOT EXISTS "command_argv" jsonb;
@@ -0,0 +1,17 @@
1
+ -- Rollback retention: auto-sized window inputs on the project, and the removal
2
+ -- of a per-service artifact flag that was never written or read.
3
+ --
4
+ -- `rollback_window` keeps its existing meaning with one addition: NULL now means
5
+ -- "auto" — resolve to `rollback_window_computed` (measured from the deploy host's
6
+ -- free disk and this project's average snapshot size), falling back to
7
+ -- instance_settings.default_rollback_window when nothing was measured yet. A
8
+ -- non-null `rollback_window` is still an explicit operator override.
9
+ ALTER TABLE "project" ADD COLUMN IF NOT EXISTS "snapshot_size_bytes" bigint;
10
+ --> statement-breakpoint
11
+ ALTER TABLE "project" ADD COLUMN IF NOT EXISTS "rollback_window_computed" integer;
12
+ --> statement-breakpoint
13
+ ALTER TABLE "project" ADD COLUMN IF NOT EXISTS "capacity_measured_at" timestamp;
14
+ --> statement-breakpoint
15
+ -- Dead since it was introduced: the deployment-level `artifact_retained_at` is
16
+ -- the only retention flag any code path writes or reads.
17
+ ALTER TABLE "service_deployment" DROP COLUMN IF EXISTS "artifact_retained_at";
@@ -0,0 +1,13 @@
1
+ -- Per-domain canonical redirect: this hostname answers with a redirect to another
2
+ -- of the project's hostnames instead of serving the app.
3
+ --
4
+ -- Lives on `domain` rather than in a routing blob because the domain table IS the
5
+ -- store for a project's public endpoints (deriveProjectRouteState builds
6
+ -- publicEndpoints FROM these rows), and a redirect is a property of one hostname.
7
+ --
8
+ -- `redirect_to` NULL = serve the app (every existing row, unchanged).
9
+ -- `redirect_status` NULL = 301. Kept nullable rather than DEFAULT 301 so "no
10
+ -- redirect" is one state, not a status attached to a row that doesn't redirect.
11
+ ALTER TABLE "domain" ADD COLUMN IF NOT EXISTS "redirect_to" text;
12
+ --> statement-breakpoint
13
+ ALTER TABLE "domain" ADD COLUMN IF NOT EXISTS "redirect_status" integer;
@@ -0,0 +1,30 @@
1
+ -- Per-repo source access scope on every grant-bearing table.
2
+ --
3
+ -- A grant already carries a VERB in `permissions_json` (read / write / admin).
4
+ -- This column adds the SURFACE: may the holder read file CONTENT, and under which
5
+ -- paths. The two do not overlap, and the absence of a scope is meaningful:
6
+ --
7
+ -- read + scope_json NULL -> metadata only (branches,
8
+ -- detect, deploy). THE DEFAULT.
9
+ -- read + {"v":1,"read":{"paths":["src/**"]}} -> file content under src only
10
+ -- write + {"v":1,"write":{"paths":[...]}} -> content writes under those paths
11
+ --
12
+ -- So a repo grant no longer implies the right to crawl the repository. NULL is the
13
+ -- restrictive state, which is why this is nullable with no default and no backfill:
14
+ -- every existing row correctly reads as metadata-only.
15
+ --
16
+ -- Encoded as JSON text (not jsonb, not text[]) to match `permissions_json` — the
17
+ -- column types have to behave identically across PGlite and Postgres without
18
+ -- driver-specific casting, and the repos already own (de)serialisation.
19
+ --
20
+ -- Shape + matching semantics: packages/core/src/source-access.ts. Malformed JSON,
21
+ -- an unknown "v", or an unparseable pattern all resolve to NO access rather than
22
+ -- unrestricted access.
23
+ ALTER TABLE "resource_grant" ADD COLUMN IF NOT EXISTS "scope_json" text;
24
+ --> statement-breakpoint
25
+ ALTER TABLE "personal_access_token_grant" ADD COLUMN IF NOT EXISTS "scope_json" text;
26
+ --> statement-breakpoint
27
+ -- Pending invite grants carry the scope through acceptance; without it, a
28
+ -- restricted invitee would materialise into a metadata-only grant and silently
29
+ -- lose the content access the inviter picked.
30
+ ALTER TABLE "invitation_pending_grant" ADD COLUMN IF NOT EXISTS "scope_json" text;
@@ -0,0 +1,18 @@
1
+ -- Deploy-time readiness gate, per project.
2
+ --
3
+ -- Named `readiness`, NOT `health_check`, on purpose: a compose service already
4
+ -- carries a `healthcheck` (the Docker HEALTHCHECK directive, stored in
5
+ -- `service.advanced`) which the daemon runs and which has nothing to do with
6
+ -- whether a DEPLOY is allowed to finish. Two fields one capital letter apart in
7
+ -- the same kraft.json would be a footgun.
8
+ --
9
+ -- Nullable with NO default, and no backfill: NULL means "off", so every existing
10
+ -- project moves to the new off-by-default behaviour. Previously the 15s
11
+ -- stabilization watch and the 45s TCP probe were hardcoded on every deploy and
12
+ -- could fail (and then force-remove) a container that was running fine. Opting
13
+ -- in is now explicit.
14
+ --
15
+ -- Shape (all fields optional, all defaults off) — see KraftReadiness:
16
+ -- { enabled, path, port, timeoutSeconds,
17
+ -- stabilization, stabilizationSeconds, onFailure: "warn" | "fail" }
18
+ ALTER TABLE "project" ADD COLUMN IF NOT EXISTS "readiness" jsonb;