|
| 1 | +-- migrate:up |
| 2 | + |
| 3 | +CREATE TABLE IF NOT EXISTS `jwt_keys` |
| 4 | +( |
| 5 | + `id` INT AUTO_INCREMENT PRIMARY KEY, |
| 6 | + `created_at` BIGINT NOT NULL DEFAULT 0, |
| 7 | + `updated_at` BIGINT NOT NULL DEFAULT 0, |
| 8 | + `is_deleted` INT NOT NULL DEFAULT 0, |
| 9 | + `public_key` TEXT NOT NULL, |
| 10 | + `private_key` TEXT NOT NULL |
| 11 | +); |
| 12 | + |
| 13 | +CREATE TABLE IF NOT EXISTS `user` |
| 14 | +( |
| 15 | + `id` INT AUTO_INCREMENT PRIMARY KEY, |
| 16 | + `created_at` BIGINT NOT NULL DEFAULT 0, |
| 17 | + `updated_at` BIGINT NOT NULL DEFAULT 0, |
| 18 | + `is_deleted` INT NOT NULL DEFAULT 0, |
| 19 | + `name` VARCHAR(50) NOT NULL, |
| 20 | + `nickname` VARCHAR(50) NOT NULL, |
| 21 | + `email` VARCHAR(255) NOT NULL, |
| 22 | + `is_system` INT NOT NULL DEFAULT 0, |
| 23 | + `is_disabled` INT NOT NULL DEFAULT 0 |
| 24 | +); |
| 25 | + |
| 26 | +CREATE TABLE IF NOT EXISTS `capability` |
| 27 | +( |
| 28 | + `name` VARCHAR(50) PRIMARY KEY, |
| 29 | + UNIQUE (`name`) |
| 30 | +); |
| 31 | + |
| 32 | +CREATE TABLE IF NOT EXISTS `user_has_capability` |
| 33 | +( |
| 34 | + `user_id` INT NOT NULL, |
| 35 | + `capability_name` VARCHAR(50) NOT NULL, |
| 36 | + UNIQUE (`user_id`, `capability_name`), |
| 37 | + FOREIGN KEY (`capability_name`) REFERENCES `capability`(`name`) |
| 38 | +); |
| 39 | + |
| 40 | +CREATE TABLE IF NOT EXISTS `auth` |
| 41 | +( |
| 42 | + `id` INT AUTO_INCREMENT PRIMARY KEY, |
| 43 | + `created_at` BIGINT NOT NULL DEFAULT 0, |
| 44 | + `updated_at` BIGINT NOT NULL DEFAULT 0, |
| 45 | + `is_deleted` INT NOT NULL DEFAULT 0, |
| 46 | + `user_id` INT NOT NULL, |
| 47 | + `type` VARCHAR(50) NOT NULL, |
| 48 | + `secret` VARCHAR(255) NOT NULL, |
| 49 | + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`), |
| 50 | + UNIQUE (`user_id`, `type`) |
| 51 | +); |
| 52 | + |
| 53 | +CREATE TABLE IF NOT EXISTS `setting` |
| 54 | +( |
| 55 | + `id` INT AUTO_INCREMENT PRIMARY KEY, |
| 56 | + `created_at` BIGINT NOT NULL DEFAULT 0, |
| 57 | + `updated_at` BIGINT NOT NULL DEFAULT 0, |
| 58 | + `is_deleted` INT NOT NULL DEFAULT 0, |
| 59 | + `name` VARCHAR(50) NOT NULL, |
| 60 | + `description` VARCHAR(255) NOT NULL DEFAULT '', |
| 61 | + `value` TEXT NOT NULL, |
| 62 | + UNIQUE (`name`) |
| 63 | +); |
| 64 | + |
| 65 | +CREATE TABLE IF NOT EXISTS `audit_log` |
| 66 | +( |
| 67 | + `id` INT AUTO_INCREMENT PRIMARY KEY, |
| 68 | + `created_at` BIGINT NOT NULL DEFAULT 0, |
| 69 | + `updated_at` BIGINT NOT NULL DEFAULT 0, |
| 70 | + `is_deleted` INT NOT NULL DEFAULT 0, |
| 71 | + `user_id` INT NOT NULL, |
| 72 | + `object_type` VARCHAR(50) NOT NULL, |
| 73 | + `object_id` INT NOT NULL, |
| 74 | + `action` VARCHAR(50) NOT NULL, |
| 75 | + `meta` TEXT NOT NULL, |
| 76 | + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) |
| 77 | +); |
| 78 | + |
| 79 | +CREATE TABLE IF NOT EXISTS `certificate_authority` |
| 80 | +( |
| 81 | + `id` INT AUTO_INCREMENT PRIMARY KEY, |
| 82 | + `created_at` BIGINT NOT NULL DEFAULT 0, |
| 83 | + `updated_at` BIGINT NOT NULL DEFAULT 0, |
| 84 | + `is_deleted` INT NOT NULL DEFAULT 0, |
| 85 | + `name` VARCHAR(50) NOT NULL, |
| 86 | + `acmesh_server` VARCHAR(255) NOT NULL DEFAULT '', |
| 87 | + `ca_bundle` VARCHAR(255) NOT NULL DEFAULT '', |
| 88 | + `is_wildcard_supported` INT NOT NULL DEFAULT 0, -- specific to each CA, acme v1 doesn't usually have wildcards |
| 89 | + `max_domains` INT NOT NULL DEFAULT 5, -- per request |
| 90 | + `is_readonly` INT NOT NULL DEFAULT 0 |
| 91 | +); |
| 92 | + |
| 93 | +CREATE TABLE IF NOT EXISTS `dns_provider` |
| 94 | +( |
| 95 | + `id` INT AUTO_INCREMENT PRIMARY KEY, |
| 96 | + `created_at` BIGINT NOT NULL DEFAULT 0, |
| 97 | + `updated_at` BIGINT NOT NULL DEFAULT 0, |
| 98 | + `is_deleted` INT NOT NULL DEFAULT 0, |
| 99 | + `user_id` INT NOT NULL, |
| 100 | + `name` VARCHAR(50) NOT NULL, |
| 101 | + `acmesh_name` VARCHAR(50) NOT NULL, |
| 102 | + `dns_sleep` INT NOT NULL DEFAULT 0, |
| 103 | + `meta` TEXT NOT NULL, |
| 104 | + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) |
| 105 | +); |
| 106 | + |
| 107 | +CREATE TABLE IF NOT EXISTS certificate |
| 108 | +( |
| 109 | + `id` INT AUTO_INCREMENT PRIMARY KEY, |
| 110 | + `created_at` BIGINT NOT NULL DEFAULT 0, |
| 111 | + `updated_at` BIGINT NOT NULL DEFAULT 0, |
| 112 | + `is_deleted` INT NOT NULL DEFAULT 0, |
| 113 | + `user_id` INT NOT NULL, |
| 114 | + `type` VARCHAR(50) NOT NULL, -- custom,dns,http |
| 115 | + `certificate_authority_id` INT, -- 0 for a custom cert |
| 116 | + `dns_provider_id` INT, -- 0, for a http or custom cert |
| 117 | + `name` VARCHAR(50) NOT NULL, |
| 118 | + `domain_names` TEXT NOT NULL, |
| 119 | + `expires_on` INT DEFAULT 0, |
| 120 | + `status` VARCHAR(50) NOT NULL, -- ready,requesting,failed,provided |
| 121 | + `error_message` TEXT NOT NULL, |
| 122 | + `meta` TEXT NOT NULL, |
| 123 | + `is_ecc` INT NOT NULL DEFAULT 0, |
| 124 | + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`), |
| 125 | + FOREIGN KEY (`certificate_authority_id`) REFERENCES `certificate_authority`(`id`), |
| 126 | + FOREIGN KEY (`dns_provider_id`) REFERENCES `dns_provider`(`id`) |
| 127 | +); |
| 128 | + |
| 129 | +CREATE TABLE IF NOT EXISTS `stream` |
| 130 | +( |
| 131 | + `id` INT AUTO_INCREMENT PRIMARY KEY, |
| 132 | + `created_at` BIGINT NOT NULL DEFAULT 0, |
| 133 | + `updated_at` BIGINT NOT NULL DEFAULT 0, |
| 134 | + `is_deleted` INT NOT NULL DEFAULT 0, |
| 135 | + `user_id` INT NOT NULL, |
| 136 | + `listen_interface` VARCHAR(50) NOT NULL, |
| 137 | + `incoming_port` INT NOT NULL, |
| 138 | + `tcp_forwarding` INT NOT NULL DEFAULT 0, |
| 139 | + `udp_forwarding` INT NOT NULL DEFAULT 0, |
| 140 | + `advanced_config` TEXT NOT NULL, |
| 141 | + `is_disabled` INT NOT NULL DEFAULT 0, |
| 142 | + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) |
| 143 | +); |
| 144 | + |
| 145 | +CREATE TABLE IF NOT EXISTS `nginx_template` |
| 146 | +( |
| 147 | + `id` INT AUTO_INCREMENT PRIMARY KEY, |
| 148 | + `created_at` BIGINT NOT NULL DEFAULT 0, |
| 149 | + `updated_at` BIGINT NOT NULL DEFAULT 0, |
| 150 | + `is_deleted` INT NOT NULL DEFAULT 0, |
| 151 | + `user_id` INT NOT NULL, |
| 152 | + `name` VARCHAR(50) NOT NULL, |
| 153 | + `type` VARCHAR(50) NOT NULL, |
| 154 | + `template` TEXT NOT NULL, |
| 155 | + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) |
| 156 | +); |
| 157 | + |
| 158 | +CREATE TABLE IF NOT EXISTS `upstream` |
| 159 | +( |
| 160 | + `id` INT AUTO_INCREMENT PRIMARY KEY, |
| 161 | + `created_at` BIGINT NOT NULL DEFAULT 0, |
| 162 | + `updated_at` BIGINT NOT NULL DEFAULT 0, |
| 163 | + `is_deleted` INT NOT NULL DEFAULT 0, |
| 164 | + `user_id` INT NOT NULL, |
| 165 | + `name` VARCHAR(50) NOT NULL, |
| 166 | + `nginx_template_id` INT NOT NULL, |
| 167 | + `ip_hash` INT NOT NULL DEFAULT 0, |
| 168 | + `ntlm` INT NOT NULL DEFAULT 0, |
| 169 | + `keepalive` INT NOT NULL DEFAULT 0, |
| 170 | + `keepalive_requests` INT NOT NULL DEFAULT 0, |
| 171 | + `keepalive_time` VARCHAR(50) NOT NULL DEFAULT '', |
| 172 | + `keepalive_timeout` VARCHAR(50) NOT NULL DEFAULT '', |
| 173 | + `advanced_config` TEXT NOT NULL, |
| 174 | + `status` VARCHAR(50) NOT NULL DEFAULT '', |
| 175 | + `error_message` TEXT NOT NULL, |
| 176 | + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`), |
| 177 | + FOREIGN KEY (`nginx_template_id`) REFERENCES `nginx_template`(`id`) |
| 178 | +); |
| 179 | + |
| 180 | +CREATE TABLE IF NOT EXISTS `upstream_server` |
| 181 | +( |
| 182 | + `id` INT AUTO_INCREMENT PRIMARY KEY, |
| 183 | + `created_at` BIGINT NOT NULL DEFAULT 0, |
| 184 | + `updated_at` BIGINT NOT NULL DEFAULT 0, |
| 185 | + `is_deleted` INT NOT NULL DEFAULT 0, |
| 186 | + `upstream_id` INT NOT NULL, |
| 187 | + `server` VARCHAR(50) NOT NULL, |
| 188 | + `weight` INT NOT NULL DEFAULT 0, |
| 189 | + `max_conns` INT NOT NULL DEFAULT 0, |
| 190 | + `max_fails` INT NOT NULL DEFAULT 0, |
| 191 | + `fail_timeout` INT NOT NULL DEFAULT 0, |
| 192 | + `is_backup` INT NOT NULL DEFAULT 0, |
| 193 | + FOREIGN KEY (`upstream_id`) REFERENCES `upstream`(`id`) |
| 194 | +); |
| 195 | + |
| 196 | +CREATE TABLE IF NOT EXISTS `access_list` |
| 197 | +( |
| 198 | + `id` INT AUTO_INCREMENT PRIMARY KEY, |
| 199 | + `created_at` BIGINT NOT NULL DEFAULT 0, |
| 200 | + `updated_at` BIGINT NOT NULL DEFAULT 0, |
| 201 | + `is_deleted` INT NOT NULL DEFAULT 0, |
| 202 | + `user_id` INT NOT NULL, |
| 203 | + `name` VARCHAR(50) NOT NULL, |
| 204 | + `meta` TEXT NOT NULL, |
| 205 | + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) |
| 206 | +); |
| 207 | + |
| 208 | +CREATE TABLE IF NOT EXISTS host |
| 209 | +( |
| 210 | + `id` INT AUTO_INCREMENT PRIMARY KEY, |
| 211 | + `created_at` BIGINT NOT NULL DEFAULT 0, |
| 212 | + `updated_at` BIGINT NOT NULL DEFAULT 0, |
| 213 | + `is_deleted` INT NOT NULL DEFAULT 0, |
| 214 | + `user_id` INT NOT NULL, |
| 215 | + `type` VARCHAR(50) NOT NULL, |
| 216 | + `nginx_template_id` INT NOT NULL, |
| 217 | + `listen_interface` VARCHAR(50) NOT NULL DEFAULT '', |
| 218 | + `domain_names` TEXT NOT NULL, |
| 219 | + `upstream_id` INT NOT NULL DEFAULT 0, |
| 220 | + `proxy_scheme` VARCHAR(50) NOT NULL DEFAULT '', |
| 221 | + `proxy_host` VARCHAR(50) NOT NULL DEFAULT '', |
| 222 | + `proxy_port` INT NOT NULL DEFAULT 0, |
| 223 | + `certificate_id` INT NOT NULL DEFAULT 0, |
| 224 | + `access_list_id` INT NOT NULL DEFAULT 0, |
| 225 | + `ssl_forced` INT NOT NULL DEFAULT 0, |
| 226 | + `caching_enabled` INT NOT NULL DEFAULT 0, |
| 227 | + `block_exploits` INT NOT NULL DEFAULT 0, |
| 228 | + `allow_websocket_upgrade` INT NOT NULL DEFAULT 0, |
| 229 | + `http2_support` INT NOT NULL DEFAULT 0, |
| 230 | + `hsts_enabled` INT NOT NULL DEFAULT 0, |
| 231 | + `hsts_subdomains` INT NOT NULL DEFAULT 0, |
| 232 | + `paths` TEXT NOT NULL, |
| 233 | + `advanced_config` TEXT NOT NULL, |
| 234 | + `status` VARCHAR(50) NOT NULL DEFAULT '', |
| 235 | + `error_message` TEXT NOT NULL, |
| 236 | + `is_disabled` INT NOT NULL DEFAULT 0, |
| 237 | + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`), |
| 238 | + FOREIGN KEY (`nginx_template_id`) REFERENCES `nginx_template`(`id`), |
| 239 | + FOREIGN KEY (`upstream_id`) REFERENCES `upstream`(`id`), |
| 240 | + FOREIGN KEY (`certificate_id`) REFERENCES `certificate`(`id`), |
| 241 | + FOREIGN KEY (`access_list_id`) REFERENCES `access_list`(`id`) |
| 242 | +); |
| 243 | + |
| 244 | +-- migrate:down |
| 245 | + |
| 246 | +-- Not allowed to go down from initial |
0 commit comments