feat(core): 初始化 Key-IP Sentinel 服务与部署骨架
- 搭建 FastAPI、Redis、PostgreSQL、Nginx 与 Docker Compose 基础结构 - 实现反向代理、首用绑定、拦截告警、归档任务和管理接口 - 提供 Vue3 管理后台初版,以及 uv/requirements 双依赖配置
This commit is contained in:
26
db/init.sql
Normal file
26
db/init.sql
Normal file
@@ -0,0 +1,26 @@
|
||||
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);
|
||||
Reference in New Issue
Block a user