mirror of
https://github.com/MizuchiLabs/mantrae.git
synced 2025-12-21 14:20:02 -06:00
new base
This commit is contained in:
@@ -1,15 +1,46 @@
|
|||||||
-- +goose Up
|
-- +goose Up
|
||||||
CREATE TABLE profiles (
|
CREATE TABLE dns_providers (
|
||||||
id INTEGER PRIMARY KEY,
|
id INTEGER PRIMARY KEY,
|
||||||
name TEXT NOT NULL UNIQUE,
|
name VARCHAR(255) NOT NULL UNIQUE,
|
||||||
description TEXT,
|
type VARCHAR(255) NOT NULL,
|
||||||
token TEXT NOT NULL,
|
config JSON NOT NULL,
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
is_default BOOLEAN NOT NULL DEFAULT FALSE
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "settings" (
|
||||||
|
key VARCHAR(255) PRIMARY KEY,
|
||||||
|
value TEXT NOT NULL,
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "agents" (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
profile_id INTEGER NOT NULL,
|
||||||
|
hostname TEXT,
|
||||||
|
public_ip TEXT,
|
||||||
|
containers JSONB,
|
||||||
|
active_ip TEXT,
|
||||||
|
token TEXT NOT NULL DEFAULT '',
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
private_ip TEXT,
|
||||||
|
FOREIGN KEY (profile_id) REFERENCES profiles (id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE errors (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
profile_id INTEGER NOT NULL,
|
||||||
|
category TEXT NOT NULL,
|
||||||
|
message TEXT NOT NULL,
|
||||||
|
details TEXT,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
FOREIGN KEY (profile_id) REFERENCES profiles (id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TABLE entry_points (
|
CREATE TABLE entry_points (
|
||||||
id INTEGER PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
profile_id INTEGER NOT NULL,
|
profile_id INTEGER NOT NULL,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
address TEXT,
|
address TEXT,
|
||||||
@@ -21,7 +52,7 @@ CREATE TABLE entry_points (
|
|||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE http_routers (
|
CREATE TABLE http_routers (
|
||||||
id INTEGER PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
profile_id INTEGER NOT NULL,
|
profile_id INTEGER NOT NULL,
|
||||||
agent_id TEXT,
|
agent_id TEXT,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
@@ -34,10 +65,8 @@ CREATE TABLE http_routers (
|
|||||||
UNIQUE (profile_id, name)
|
UNIQUE (profile_id, name)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_http_routers_profile_name ON http_routers (profile_id, name);
|
|
||||||
|
|
||||||
CREATE TABLE tcp_routers (
|
CREATE TABLE tcp_routers (
|
||||||
id INTEGER PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
profile_id INTEGER NOT NULL,
|
profile_id INTEGER NOT NULL,
|
||||||
agent_id TEXT,
|
agent_id TEXT,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
@@ -50,10 +79,8 @@ CREATE TABLE tcp_routers (
|
|||||||
UNIQUE (profile_id, name)
|
UNIQUE (profile_id, name)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_tcp_middlewares_profile_name ON tcp_middlewares (profile_id, name);
|
|
||||||
|
|
||||||
CREATE TABLE udp_routers (
|
CREATE TABLE udp_routers (
|
||||||
id INTEGER PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
profile_id INTEGER NOT NULL,
|
profile_id INTEGER NOT NULL,
|
||||||
agent_id TEXT,
|
agent_id TEXT,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
@@ -66,14 +93,13 @@ CREATE TABLE udp_routers (
|
|||||||
UNIQUE (profile_id, name)
|
UNIQUE (profile_id, name)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_udp_routers_profile_name ON udp_routers (profile_id, name);
|
|
||||||
|
|
||||||
CREATE TABLE http_services (
|
CREATE TABLE http_services (
|
||||||
id INTEGER PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
profile_id INTEGER NOT NULL,
|
profile_id INTEGER NOT NULL,
|
||||||
agent_id TEXT,
|
agent_id TEXT,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
config TEXT NOT NULL,
|
config TEXT NOT NULL,
|
||||||
|
enabled BOOLEAN NOT NULL DEFAULT TRUE,
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
FOREIGN KEY (profile_id) REFERENCES profiles (id) ON DELETE CASCADE,
|
FOREIGN KEY (profile_id) REFERENCES profiles (id) ON DELETE CASCADE,
|
||||||
@@ -81,14 +107,13 @@ CREATE TABLE http_services (
|
|||||||
UNIQUE (profile_id, name)
|
UNIQUE (profile_id, name)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_http_services_profile_name ON http_services (profile_id, name);
|
|
||||||
|
|
||||||
CREATE TABLE tcp_services (
|
CREATE TABLE tcp_services (
|
||||||
id INTEGER PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
profile_id INTEGER NOT NULL,
|
profile_id INTEGER NOT NULL,
|
||||||
agent_id TEXT,
|
agent_id TEXT,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
config TEXT NOT NULL,
|
config TEXT NOT NULL,
|
||||||
|
enabled BOOLEAN NOT NULL DEFAULT TRUE,
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
FOREIGN KEY (profile_id) REFERENCES profiles (id) ON DELETE CASCADE,
|
FOREIGN KEY (profile_id) REFERENCES profiles (id) ON DELETE CASCADE,
|
||||||
@@ -96,14 +121,13 @@ CREATE TABLE tcp_services (
|
|||||||
UNIQUE (profile_id, name)
|
UNIQUE (profile_id, name)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_tcp_services_profile_name ON tcp_services (profile_id, name);
|
|
||||||
|
|
||||||
CREATE TABLE udp_services (
|
CREATE TABLE udp_services (
|
||||||
id INTEGER PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
profile_id INTEGER NOT NULL,
|
profile_id INTEGER NOT NULL,
|
||||||
agent_id TEXT,
|
agent_id TEXT,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
config TEXT NOT NULL,
|
config TEXT NOT NULL,
|
||||||
|
enabled BOOLEAN NOT NULL DEFAULT TRUE,
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
FOREIGN KEY (profile_id) REFERENCES profiles (id) ON DELETE CASCADE,
|
FOREIGN KEY (profile_id) REFERENCES profiles (id) ON DELETE CASCADE,
|
||||||
@@ -111,10 +135,8 @@ CREATE TABLE udp_services (
|
|||||||
UNIQUE (profile_id, name)
|
UNIQUE (profile_id, name)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_udp_services_profile_name ON udp_services (profile_id, name);
|
|
||||||
|
|
||||||
CREATE TABLE http_middlewares (
|
CREATE TABLE http_middlewares (
|
||||||
id INTEGER PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
profile_id INTEGER NOT NULL,
|
profile_id INTEGER NOT NULL,
|
||||||
agent_id TEXT,
|
agent_id TEXT,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
@@ -128,10 +150,8 @@ CREATE TABLE http_middlewares (
|
|||||||
UNIQUE (profile_id, name)
|
UNIQUE (profile_id, name)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_http_middlewares_profile_name ON http_middlewares (profile_id, name);
|
|
||||||
|
|
||||||
CREATE TABLE tcp_middlewares (
|
CREATE TABLE tcp_middlewares (
|
||||||
id INTEGER PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
profile_id INTEGER NOT NULL,
|
profile_id INTEGER NOT NULL,
|
||||||
agent_id TEXT,
|
agent_id TEXT,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
@@ -145,10 +165,8 @@ CREATE TABLE tcp_middlewares (
|
|||||||
UNIQUE (profile_id, name)
|
UNIQUE (profile_id, name)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_tcp_middlewares_profile_name ON tcp_middlewares (profile_id, name);
|
|
||||||
|
|
||||||
CREATE TABLE http_servers_transports (
|
CREATE TABLE http_servers_transports (
|
||||||
id INTEGER PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
profile_id INTEGER NOT NULL,
|
profile_id INTEGER NOT NULL,
|
||||||
agent_id TEXT,
|
agent_id TEXT,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
@@ -161,10 +179,8 @@ CREATE TABLE http_servers_transports (
|
|||||||
UNIQUE (profile_id, name)
|
UNIQUE (profile_id, name)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_servers_transports_profile_name ON servers_transports (profile_id, name);
|
|
||||||
|
|
||||||
CREATE TABLE tcp_servers_transports (
|
CREATE TABLE tcp_servers_transports (
|
||||||
id INTEGER PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
profile_id INTEGER NOT NULL,
|
profile_id INTEGER NOT NULL,
|
||||||
agent_id TEXT,
|
agent_id TEXT,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
@@ -177,10 +193,8 @@ CREATE TABLE tcp_servers_transports (
|
|||||||
UNIQUE (profile_id, name)
|
UNIQUE (profile_id, name)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX idx_tcp_servers_transports_profile_name ON tcp_servers_transports (profile_id, name);
|
|
||||||
|
|
||||||
CREATE TABLE traefik_instances (
|
CREATE TABLE traefik_instances (
|
||||||
id INTEGER PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
profile_id INTEGER NOT NULL,
|
profile_id INTEGER NOT NULL,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
entrypoints TEXT,
|
entrypoints TEXT,
|
||||||
@@ -197,6 +211,26 @@ CREATE TABLE traefik_instances (
|
|||||||
UNIQUE (profile_id, name)
|
UNIQUE (profile_id, name)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE audit_logs (
|
||||||
|
id INTEGER PRIMARY KEY,
|
||||||
|
profile_id INTEGER,
|
||||||
|
user_id TEXT,
|
||||||
|
agent_id TEXT,
|
||||||
|
event TEXT NOT NULL,
|
||||||
|
details TEXT,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE profiles (
|
||||||
|
id INTEGER PRIMARY KEY,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
description TEXT,
|
||||||
|
token TEXT NOT NULL,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
FOREIGN KEY (id) REFERENCES profiles (id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TABLE users (
|
CREATE TABLE users (
|
||||||
id TEXT PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
username TEXT NOT NULL UNIQUE,
|
username TEXT NOT NULL UNIQUE,
|
||||||
@@ -209,48 +243,8 @@ CREATE TABLE users (
|
|||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE settings (
|
|
||||||
key TEXT PRIMARY KEY,
|
|
||||||
value TEXT NOT NULL,
|
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE errors (
|
|
||||||
id INTEGER PRIMARY KEY,
|
|
||||||
profile_id INTEGER NOT NULL,
|
|
||||||
category TEXT NOT NULL,
|
|
||||||
message TEXT NOT NULL,
|
|
||||||
details TEXT,
|
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
FOREIGN KEY (profile_id) REFERENCES profiles (id) ON DELETE CASCADE
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE agents (
|
|
||||||
id TEXT PRIMARY KEY,
|
|
||||||
profile_id INTEGER NOT NULL,
|
|
||||||
hostname TEXT,
|
|
||||||
public_ip TEXT,
|
|
||||||
private_ip TEXT,
|
|
||||||
containers TEXT,
|
|
||||||
active_ip TEXT,
|
|
||||||
token TEXT NOT NULL DEFAULT '',
|
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
FOREIGN KEY (profile_id) REFERENCES profiles (id) ON DELETE CASCADE
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE dns_providers (
|
|
||||||
id INTEGER PRIMARY KEY,
|
|
||||||
name TEXT NOT NULL UNIQUE,
|
|
||||||
type TEXT NOT NULL,
|
|
||||||
config TEXT NOT NULL,
|
|
||||||
is_default BOOLEAN NOT NULL DEFAULT FALSE,
|
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE http_router_dns_providers (
|
CREATE TABLE http_router_dns_providers (
|
||||||
http_router_id INTEGER NOT NULL,
|
http_router_id TEXT NOT NULL,
|
||||||
dns_provider_id INTEGER NOT NULL,
|
dns_provider_id INTEGER NOT NULL,
|
||||||
PRIMARY KEY (http_router_id, dns_provider_id),
|
PRIMARY KEY (http_router_id, dns_provider_id),
|
||||||
FOREIGN KEY (http_router_id) REFERENCES http_routers (id) ON DELETE CASCADE,
|
FOREIGN KEY (http_router_id) REFERENCES http_routers (id) ON DELETE CASCADE,
|
||||||
@@ -258,25 +252,41 @@ CREATE TABLE http_router_dns_providers (
|
|||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE tcp_router_dns_providers (
|
CREATE TABLE tcp_router_dns_providers (
|
||||||
tcp_router_id INTEGER NOT NULL,
|
tcp_router_id TEXT NOT NULL,
|
||||||
dns_provider_id INTEGER NOT NULL,
|
dns_provider_id INTEGER NOT NULL,
|
||||||
PRIMARY KEY (tcp_router_id, dns_provider_id),
|
PRIMARY KEY (tcp_router_id, dns_provider_id),
|
||||||
FOREIGN KEY (tcp_router_id) REFERENCES tcp_routers (id) ON DELETE CASCADE,
|
FOREIGN KEY (tcp_router_id) REFERENCES tcp_routers (id) ON DELETE CASCADE,
|
||||||
FOREIGN KEY (dns_provider_id) REFERENCES dns_providers (id) ON DELETE CASCADE
|
FOREIGN KEY (dns_provider_id) REFERENCES dns_providers (id) ON DELETE CASCADE
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE audit_logs (
|
CREATE INDEX idx_http_routers_profile_name ON http_routers (profile_id, name);
|
||||||
id INTEGER PRIMARY KEY,
|
|
||||||
profile_id INTEGER,
|
CREATE INDEX idx_tcp_routers_profile_name ON tcp_routers (profile_id, name);
|
||||||
user_id TEXT,
|
|
||||||
agent_id TEXT,
|
CREATE INDEX idx_udp_routers_profile_name ON udp_routers (profile_id, name);
|
||||||
event TEXT NOT NULL,
|
|
||||||
details TEXT,
|
CREATE INDEX idx_http_services_profile_name ON http_services (profile_id, name);
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
||||||
);
|
CREATE INDEX idx_tcp_services_profile_name ON tcp_services (profile_id, name);
|
||||||
|
|
||||||
|
CREATE INDEX idx_udp_services_profile_name ON udp_services (profile_id, name);
|
||||||
|
|
||||||
|
CREATE INDEX idx_http_middlewares_profile_name ON http_middlewares (profile_id, name);
|
||||||
|
|
||||||
|
CREATE INDEX idx_tcp_middlewares_profile_name ON tcp_middlewares (profile_id, name);
|
||||||
|
|
||||||
|
CREATE INDEX idx_http_servers_transports_profile_name ON http_servers_transports (profile_id, name);
|
||||||
|
|
||||||
|
CREATE INDEX idx_tcp_servers_transports_profile_name ON tcp_servers_transports (profile_id, name);
|
||||||
|
|
||||||
-- +goose Down
|
-- +goose Down
|
||||||
DROP TABLE IF EXISTS profiles;
|
DROP TABLE IF EXISTS dns_providers;
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS settings;
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS agents;
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS errors;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS entry_points;
|
DROP TABLE IF EXISTS entry_points;
|
||||||
|
|
||||||
@@ -296,20 +306,18 @@ DROP TABLE IF EXISTS http_middlewares;
|
|||||||
|
|
||||||
DROP TABLE IF EXISTS tcp_middlewares;
|
DROP TABLE IF EXISTS tcp_middlewares;
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS http_servers_transports;
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS tcp_servers_transports;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS traefik_instances;
|
DROP TABLE IF EXISTS traefik_instances;
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS audit_logs;
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS profiles;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS users;
|
DROP TABLE IF EXISTS users;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS settings;
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS errors;
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS agents;
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS dns_providers;
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS http_router_dns_providers;
|
DROP TABLE IF EXISTS http_router_dns_providers;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS tcp_router_dns_providers;
|
DROP TABLE IF EXISTS tcp_router_dns_providers;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS udp_router_dns_providers;
|
|
||||||
|
|||||||
Reference in New Issue
Block a user