{ "version": "6", "dialect": "sqlite", "id": "27881e49-47c6-4fe5-898d-a4f095273605", "prevId": "b14592c5-88b2-43bd-910e-bd39d63b6923", "tables": { "access_list_entries": { "name": "access_list_entries", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "access_list_id": { "name": "access_list_id", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "username": { "name": "username", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "password_hash": { "name": "password_hash", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "created_at": { "name": "created_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "updated_at": { "name": "updated_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": { "access_list_entries_list_idx": { "name": "access_list_entries_list_idx", "columns": [ "access_list_id" ], "isUnique": false } }, "foreignKeys": { "access_list_entries_access_list_id_access_lists_id_fk": { "name": "access_list_entries_access_list_id_access_lists_id_fk", "tableFrom": "access_list_entries", "tableTo": "access_lists", "columnsFrom": [ "access_list_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "access_lists": { "name": "access_lists", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "description": { "name": "description", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_by": { "name": "created_by", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "updated_at": { "name": "updated_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": {}, "foreignKeys": { "access_lists_created_by_users_id_fk": { "name": "access_lists_created_by_users_id_fk", "tableFrom": "access_lists", "tableTo": "users", "columnsFrom": [ "created_by" ], "columnsTo": [ "id" ], "onDelete": "set null", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "api_tokens": { "name": "api_tokens", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "token_hash": { "name": "token_hash", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "created_by": { "name": "created_by", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "created_at": { "name": "created_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "last_used_at": { "name": "last_used_at", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "expires_at": { "name": "expires_at", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false } }, "indexes": { "api_tokens_token_hash_unique": { "name": "api_tokens_token_hash_unique", "columns": [ "token_hash" ], "isUnique": true } }, "foreignKeys": { "api_tokens_created_by_users_id_fk": { "name": "api_tokens_created_by_users_id_fk", "tableFrom": "api_tokens", "tableTo": "users", "columnsFrom": [ "created_by" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "audit_events": { "name": "audit_events", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "user_id": { "name": "user_id", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "action": { "name": "action", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "entity_type": { "name": "entity_type", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "entity_id": { "name": "entity_id", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "summary": { "name": "summary", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "data": { "name": "data", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": {}, "foreignKeys": { "audit_events_user_id_users_id_fk": { "name": "audit_events_user_id_users_id_fk", "tableFrom": "audit_events", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "set null", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "certificates": { "name": "certificates", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "type": { "name": "type", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "domain_names": { "name": "domain_names", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "auto_renew": { "name": "auto_renew", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": true }, "provider_options": { "name": "provider_options", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "certificate_pem": { "name": "certificate_pem", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "private_key_pem": { "name": "private_key_pem", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_by": { "name": "created_by", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "updated_at": { "name": "updated_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": {}, "foreignKeys": { "certificates_created_by_users_id_fk": { "name": "certificates_created_by_users_id_fk", "tableFrom": "certificates", "tableTo": "users", "columnsFrom": [ "created_by" ], "columnsTo": [ "id" ], "onDelete": "set null", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "dead_hosts": { "name": "dead_hosts", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "domains": { "name": "domains", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "status_code": { "name": "status_code", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 503 }, "response_body": { "name": "response_body", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "enabled": { "name": "enabled", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": true }, "created_by": { "name": "created_by", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "updated_at": { "name": "updated_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": {}, "foreignKeys": { "dead_hosts_created_by_users_id_fk": { "name": "dead_hosts_created_by_users_id_fk", "tableFrom": "dead_hosts", "tableTo": "users", "columnsFrom": [ "created_by" ], "columnsTo": [ "id" ], "onDelete": "set null", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "oauth_states": { "name": "oauth_states", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "state": { "name": "state", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "code_verifier": { "name": "code_verifier", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "redirect_to": { "name": "redirect_to", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "expires_at": { "name": "expires_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": { "oauth_state_unique": { "name": "oauth_state_unique", "columns": [ "state" ], "isUnique": true } }, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "pending_oauth_links": { "name": "pending_oauth_links", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "user_id": { "name": "user_id", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "provider": { "name": "provider", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "created_at": { "name": "created_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "expires_at": { "name": "expires_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": {}, "foreignKeys": { "pending_oauth_links_user_id_users_id_fk": { "name": "pending_oauth_links_user_id_users_id_fk", "tableFrom": "pending_oauth_links", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "proxy_hosts": { "name": "proxy_hosts", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "domains": { "name": "domains", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "upstreams": { "name": "upstreams", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "certificate_id": { "name": "certificate_id", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "access_list_id": { "name": "access_list_id", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "owner_user_id": { "name": "owner_user_id", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "ssl_forced": { "name": "ssl_forced", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": true }, "hsts_enabled": { "name": "hsts_enabled", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": true }, "hsts_subdomains": { "name": "hsts_subdomains", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": false }, "allow_websocket": { "name": "allow_websocket", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": true }, "preserve_host_header": { "name": "preserve_host_header", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": true }, "meta": { "name": "meta", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "enabled": { "name": "enabled", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": true }, "created_at": { "name": "created_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "updated_at": { "name": "updated_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "skip_https_hostname_validation": { "name": "skip_https_hostname_validation", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": false } }, "indexes": {}, "foreignKeys": { "proxy_hosts_certificate_id_certificates_id_fk": { "name": "proxy_hosts_certificate_id_certificates_id_fk", "tableFrom": "proxy_hosts", "tableTo": "certificates", "columnsFrom": [ "certificate_id" ], "columnsTo": [ "id" ], "onDelete": "set null", "onUpdate": "no action" }, "proxy_hosts_access_list_id_access_lists_id_fk": { "name": "proxy_hosts_access_list_id_access_lists_id_fk", "tableFrom": "proxy_hosts", "tableTo": "access_lists", "columnsFrom": [ "access_list_id" ], "columnsTo": [ "id" ], "onDelete": "set null", "onUpdate": "no action" }, "proxy_hosts_owner_user_id_users_id_fk": { "name": "proxy_hosts_owner_user_id_users_id_fk", "tableFrom": "proxy_hosts", "tableTo": "users", "columnsFrom": [ "owner_user_id" ], "columnsTo": [ "id" ], "onDelete": "set null", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "redirect_hosts": { "name": "redirect_hosts", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "domains": { "name": "domains", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "destination": { "name": "destination", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "status_code": { "name": "status_code", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": 302 }, "preserve_query": { "name": "preserve_query", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": true }, "enabled": { "name": "enabled", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false, "default": true }, "created_by": { "name": "created_by", "type": "integer", "primaryKey": false, "notNull": false, "autoincrement": false }, "created_at": { "name": "created_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "updated_at": { "name": "updated_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": {}, "foreignKeys": { "redirect_hosts_created_by_users_id_fk": { "name": "redirect_hosts_created_by_users_id_fk", "tableFrom": "redirect_hosts", "tableTo": "users", "columnsFrom": [ "created_by" ], "columnsTo": [ "id" ], "onDelete": "set null", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "sessions": { "name": "sessions", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "user_id": { "name": "user_id", "type": "integer", "primaryKey": false, "notNull": true, "autoincrement": false }, "token": { "name": "token", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "expires_at": { "name": "expires_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "created_at": { "name": "created_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": { "sessions_token_unique": { "name": "sessions_token_unique", "columns": [ "token" ], "isUnique": true } }, "foreignKeys": { "sessions_user_id_users_id_fk": { "name": "sessions_user_id_users_id_fk", "tableFrom": "sessions", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "settings": { "name": "settings", "columns": { "key": { "name": "key", "type": "text", "primaryKey": true, "notNull": true, "autoincrement": false }, "value": { "name": "value", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "updated_at": { "name": "updated_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} }, "users": { "name": "users", "columns": { "id": { "name": "id", "type": "integer", "primaryKey": true, "notNull": true, "autoincrement": true }, "email": { "name": "email", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "name": { "name": "name", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "password_hash": { "name": "password_hash", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "role": { "name": "role", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'user'" }, "provider": { "name": "provider", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "subject": { "name": "subject", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "avatar_url": { "name": "avatar_url", "type": "text", "primaryKey": false, "notNull": false, "autoincrement": false }, "status": { "name": "status", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false, "default": "'active'" }, "created_at": { "name": "created_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false }, "updated_at": { "name": "updated_at", "type": "text", "primaryKey": false, "notNull": true, "autoincrement": false } }, "indexes": { "users_email_unique": { "name": "users_email_unique", "columns": [ "email" ], "isUnique": true }, "users_provider_subject_idx": { "name": "users_provider_subject_idx", "columns": [ "provider", "subject" ], "isUnique": false } }, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "checkConstraints": {} } }, "views": {}, "enums": {}, "_meta": { "schemas": {}, "tables": {}, "columns": {} }, "internal": { "indexes": {} } }