2026-05-05 18:27:36 +08:00
|
|
|
-- Generated by aether-data-schema from schema/logical/*.toml.
|
|
|
|
|
-- Do not edit generated files directly; edit logical schema or explicit overrides instead.
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS public.proxy_nodes (
|
|
|
|
|
id character varying(64) NOT NULL,
|
|
|
|
|
name character varying(255) NOT NULL,
|
|
|
|
|
ip character varying(512) NOT NULL,
|
|
|
|
|
port integer NOT NULL,
|
|
|
|
|
region character varying(100),
|
|
|
|
|
status character varying(32) DEFAULT 'online' NOT NULL,
|
|
|
|
|
registered_by character varying(64),
|
|
|
|
|
last_heartbeat_at bigint,
|
|
|
|
|
heartbeat_interval integer DEFAULT 30 NOT NULL,
|
|
|
|
|
active_connections integer DEFAULT 0 NOT NULL,
|
|
|
|
|
total_requests bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
avg_latency_ms double precision,
|
|
|
|
|
is_manual boolean DEFAULT false NOT NULL,
|
|
|
|
|
proxy_url character varying(500),
|
|
|
|
|
proxy_username character varying(255),
|
|
|
|
|
proxy_password character varying(500),
|
|
|
|
|
created_at bigint NOT NULL,
|
|
|
|
|
updated_at bigint NOT NULL,
|
|
|
|
|
remote_config jsonb,
|
|
|
|
|
config_version integer DEFAULT 0 NOT NULL,
|
|
|
|
|
hardware_info jsonb,
|
|
|
|
|
estimated_max_concurrency integer,
|
|
|
|
|
tunnel_mode boolean DEFAULT false NOT NULL,
|
|
|
|
|
tunnel_connected boolean DEFAULT false NOT NULL,
|
|
|
|
|
tunnel_connected_at bigint,
|
|
|
|
|
failed_requests bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
dns_failures bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
stream_errors bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
proxy_metadata jsonb
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
ALTER TABLE ONLY public.proxy_nodes ADD CONSTRAINT proxy_nodes_pkey PRIMARY KEY (id);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS public.proxy_node_events (
|
|
|
|
|
id bigserial NOT NULL,
|
|
|
|
|
node_id character varying(64) NOT NULL,
|
|
|
|
|
event_type character varying(64) NOT NULL,
|
|
|
|
|
detail character varying(500),
|
2026-05-08 22:03:17 +08:00
|
|
|
event_metadata jsonb,
|
2026-05-05 18:27:36 +08:00
|
|
|
created_at bigint NOT NULL
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
ALTER TABLE ONLY public.proxy_node_events ADD CONSTRAINT proxy_node_events_pkey PRIMARY KEY (id);
|
|
|
|
|
|
2026-05-08 22:03:17 +08:00
|
|
|
CREATE TABLE IF NOT EXISTS public.proxy_node_metrics_1m (
|
|
|
|
|
node_id character varying(64) NOT NULL,
|
|
|
|
|
bucket_start_unix_secs bigint NOT NULL,
|
|
|
|
|
samples bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
uptime_samples bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
active_connections_sum bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
active_connections_max bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
heartbeat_rtt_ms_sum bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
heartbeat_rtt_ms_max bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
connect_errors_delta bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
disconnects_delta bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
error_events_delta bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
ws_in_bytes_delta bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
ws_out_bytes_delta bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
ws_in_frames_delta bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
ws_out_frames_delta bigint DEFAULT 0 NOT NULL
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
ALTER TABLE ONLY public.proxy_node_metrics_1m ADD CONSTRAINT proxy_node_metrics_1m_pkey PRIMARY KEY (node_id, bucket_start_unix_secs);
|
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_proxy_node_metrics_1m_bucket_start ON public.proxy_node_metrics_1m USING btree (bucket_start_unix_secs);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS public.proxy_node_metrics_1h (
|
|
|
|
|
node_id character varying(64) NOT NULL,
|
|
|
|
|
bucket_start_unix_secs bigint NOT NULL,
|
|
|
|
|
samples bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
uptime_samples bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
active_connections_sum bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
active_connections_max bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
heartbeat_rtt_ms_sum bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
heartbeat_rtt_ms_max bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
connect_errors_delta bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
disconnects_delta bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
error_events_delta bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
ws_in_bytes_delta bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
ws_out_bytes_delta bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
ws_in_frames_delta bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
ws_out_frames_delta bigint DEFAULT 0 NOT NULL
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
ALTER TABLE ONLY public.proxy_node_metrics_1h ADD CONSTRAINT proxy_node_metrics_1h_pkey PRIMARY KEY (node_id, bucket_start_unix_secs);
|
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_proxy_node_metrics_1h_bucket_start ON public.proxy_node_metrics_1h USING btree (bucket_start_unix_secs);
|
|
|
|
|
|