FIX-01: TrajectoryRecorderMiddleware 注册到 create_middleware_chain() (@650优先级) FIX-02: industryStore 接入 ButlerPanel 行业专长展示 + 自动拉取 FIX-03: 桌面端知识库搜索 saas-knowledge mixin + VikingPanel SaaS KB UI FIX-04: webhook 迁移标注 deprecated + 添加 down migration 注释 FIX-05: Admin Knowledge 添加结构化数据 Tab (CRUD + 行浏览) FIX-06: PersistentMemoryStore 精化 dead_code 标注 (完整迁移留后续) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
40 lines
1.8 KiB
SQL
40 lines
1.8 KiB
SQL
-- NOTE: DEPRECATED — These tables are defined but NOT consumed by any Rust code.
|
|
-- Kept for schema compatibility. Will be removed in a future cleanup pass.
|
|
-- See: V13 audit FIX-04
|
|
|
|
-- Webhook subscriptions: external endpoints that receive event notifications
|
|
CREATE TABLE IF NOT EXISTS webhook_subscriptions (
|
|
id TEXT PRIMARY KEY,
|
|
account_id TEXT NOT NULL REFERENCES accounts(id) ON DELETE CASCADE,
|
|
url TEXT NOT NULL,
|
|
secret TEXT NOT NULL, -- HMAC-SHA256 signing secret (hex-encoded)
|
|
events TEXT[] NOT NULL DEFAULT '{}', -- e.g. '{billing.payment.completed,agent.task.finished}'
|
|
enabled BOOLEAN NOT NULL DEFAULT true,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
|
|
-- Webhook delivery log: tracks each delivery attempt
|
|
CREATE TABLE IF NOT EXISTS webhook_deliveries (
|
|
id TEXT PRIMARY KEY,
|
|
subscription_id TEXT NOT NULL REFERENCES webhook_subscriptions(id) ON DELETE CASCADE,
|
|
event TEXT NOT NULL,
|
|
payload JSONB NOT NULL DEFAULT '{}',
|
|
response_status INTEGER,
|
|
response_body TEXT,
|
|
attempts INTEGER NOT NULL DEFAULT 0,
|
|
delivered_at TIMESTAMPTZ,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_webhook_subscriptions_account ON webhook_subscriptions(account_id);
|
|
CREATE INDEX IF NOT EXISTS idx_webhook_subscriptions_events ON webhook_subscriptions USING gin(events);
|
|
CREATE INDEX IF NOT EXISTS idx_webhook_deliveries_pending ON webhook_deliveries(subscription_id) WHERE delivered_at IS NULL;
|
|
|
|
-- === DOWN MIGRATION ===
|
|
-- DROP INDEX IF EXISTS idx_webhook_deliveries_pending;
|
|
-- DROP INDEX IF EXISTS idx_webhook_subscriptions_events;
|
|
-- DROP INDEX IF EXISTS idx_webhook_subscriptions_account;
|
|
-- DROP TABLE IF EXISTS webhook_deliveries;
|
|
-- DROP TABLE IF EXISTS webhook_subscriptions;
|