Files
ewoooc/migrations/018_add_missing_indexes.sql
ogt 0099543c05
Some checks failed
CD Pipeline / deploy (push) Failing after 5m18s
fix(security): 全域健檢 — 40 項安全/Bug/品質修復
🔴 Critical
- auto_heal_service: 補 import re + sqlalchemy.text + 修正 orchestrator 變數名
  + autoheal_playbook→playbooks 表名 + _alert_and_store cooldown 修復
- aider_heal_executor: shell injection 改 shell=False + list 參數
- docker-compose: DISABLE_LOGIN 改 env var + 移除密碼 fallback + POSTGRES_HOST 修正
- app.py: /api/backup /api/run_task 等 6 個管理 API 加 @login_required
- config.py + pg_sync + e2e_test: 移除 wooo_pg_2026 hardcoded 密碼 fallback
- pg_backup.sh: 移除 TELEGRAM_TOKEN= 中間變數,直接用 $TELEGRAM_BOT_TOKEN
- migration 014: trigger_pattern→match_pattern + 補 error_type NOT NULL 欄位

🟡 High
- telegram_bot_service: str(e) 改通用訊息 + session try/finally + 移除 pa:/pr: 舊 callback
- run_scheduler: ElephantAlpha thread 死亡監控 + 自動重啟 + Telegram 告警
  + agent_context 03:30 TTL 定時清理任務
- openclaw_learning_service: build_rag_context 兩路徑加 .limit(200)
- hooks: commit-quality + momo-prod-guard 空 catch 改 stderr+exit(1)
- scripts/code_review: auto_yes 預設改 false
- db_backup_service: PGPASSWORD 透過 env dict 傳遞

📦 Migrations
- 013_autoheal: 修正建表順序 playbooks→incidents(外鍵前向引用)
- 018_add_missing_indexes: heal_logs/incidents 外鍵索引 + cleanup_expired_agent_context()

🟢 Infrastructure
- requirements.txt: 加版本下界 Flask>=2.3 SQLAlchemy>=1.4 等
- cd.yaml: 新增 run_scheduler.py + run_telegram_bot.py 監聽路徑
- .gitignore: insert_playbook_local.py 加入忽略

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 01:12:23 +08:00

19 lines
1.2 KiB
PL/PgSQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- Migration 018: 補缺失外鍵索引 + agent_context TTL 清理函數
-- 建立日期2026-04-22
-- 關聯 ADR: ADR-013 (AIOps AutoHeal)、ADR-017 (agent_context)
-- ─────────────────────────────────────────────────
-- 補缺失的外鍵索引heal_logs / incidents
-- ─────────────────────────────────────────────────
CREATE INDEX IF NOT EXISTS idx_incidents_playbook_id ON incidents(playbook_id);
CREATE INDEX IF NOT EXISTS idx_heal_logs_playbook_id ON heal_logs(playbook_id);
-- ─────────────────────────────────────────────────
-- agent_context TTL 清理函數(配合 scheduler 定時呼叫)
-- ─────────────────────────────────────────────────
CREATE OR REPLACE FUNCTION cleanup_expired_agent_context()
RETURNS void AS $$
DELETE FROM agent_context
WHERE created_at + (ttl_minutes * interval '1 minute') < NOW();
$$ LANGUAGE sql;