- 搭建 FastAPI、Redis、PostgreSQL、Nginx 与 Docker Compose 基础结构 - 实现反向代理、首用绑定、拦截告警、归档任务和管理接口 - 提供 Vue3 管理后台初版,以及 uv/requirements 双依赖配置
27 lines
1.2 KiB
SQL
27 lines
1.2 KiB
SQL
CREATE EXTENSION IF NOT EXISTS btree_gist;
|
|
|
|
CREATE TABLE token_bindings (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
token_hash VARCHAR(64) NOT NULL UNIQUE,
|
|
token_display VARCHAR(20) NOT NULL,
|
|
bound_ip CIDR NOT NULL,
|
|
status SMALLINT NOT NULL DEFAULT 1,
|
|
first_used_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
last_used_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
CREATE INDEX idx_token_bindings_hash ON token_bindings(token_hash);
|
|
CREATE INDEX idx_token_bindings_ip ON token_bindings USING GIST (bound_ip inet_ops);
|
|
|
|
CREATE TABLE intercept_logs (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
token_hash VARCHAR(64) NOT NULL,
|
|
token_display VARCHAR(20) NOT NULL,
|
|
bound_ip CIDR NOT NULL,
|
|
attempt_ip INET NOT NULL,
|
|
alerted BOOLEAN NOT NULL DEFAULT FALSE,
|
|
intercepted_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
CREATE INDEX idx_intercept_logs_hash ON intercept_logs(token_hash);
|
|
CREATE INDEX idx_intercept_logs_time ON intercept_logs(intercepted_at DESC);
|