Files
telegram-bot-workers/TODO.md
2026-01-27 14:31:42 +09:00

3.2 KiB

TODO - Anvil 트러블슈팅 강화

생성일: 2026-01-27 목표: Anvil 관리 도메인/서버에 대한 실제 진단 및 조치 기능 추가

태스크 목록

Phase 1: 기반 작업 (병렬 가능)

  • #1 Anvil 리소스 감지 로직 구현

    • user_domains 테이블에서 도메인 조회
    • Cloud Orchestrator API로 서버 목록 조회
    • 사용자 ID와 매칭하여 소유권 확인
    • 결과를 troubleshoot session에 저장
  • #7 Cloudflare API 인증 설정

    • Cloudflare API Token 발급 (Zone:Read, DNS:Edit, SSL:Read)
    • wrangler secret 설정 (CLOUDFLARE_API_TOKEN)
    • Zone ID 관리 방법 결정 (user_domains 테이블에 추가?)
    • API 래퍼 유틸리티 작성
  • #4 서버 진단 도구 구현 (Cloud Orchestrator)

    • 서버 상태 조회 (running/stopped/error)
    • 리소스 사용량 (CPU, 메모리, 디스크, 네트워크)
    • 최근 에러 로그 조회
    • 서비스 상태 확인 (nginx, node, mysql 등)
    • Cloud Orchestrator API 연동
    • 진단 결과를 구조화된 형식으로 반환

Phase 2: 진단 도구

  • #2 도메인 진단 도구 구현 (Cloudflare API) ← blocked by #7

    • DNS 레코드 조회 (A, CNAME, MX, TXT 등)
    • SSL 인증서 상태 확인 (만료일, 유효성)
    • DNS 전파 상태 확인 (여러 지역에서)
    • Cloudflare API 연동 필요
    • 진단 결과를 구조화된 형식으로 반환
  • #5 서버 조치 도구 구현 (Cloud Orchestrator) ← blocked by #4

    • 서버 재시작 (soft/hard)
    • 특정 서비스 재시작 (nginx, node, mysql 등)
    • 임시 스케일업 제안
    • 사용자 확인 후 실행 (인라인 버튼)
    • 조치 결과 알림

Phase 3: 조치 도구

  • #3 도메인 조치 도구 구현 (Cloudflare API) ← blocked by #2, #7
    • DNS 레코드 수정/추가/삭제
    • SSL 인증서 갱신 트리거
    • Cloudflare 캐시 퍼지
    • 사용자 확인 후 실행 (인라인 버튼)
    • 조치 결과 알림

Phase 4: 통합

  • #6 트러블슈팅 AI에 진단/조치 도구 통합 ← blocked by #1, #2, #3, #4, #5
    • Anvil 리소스 감지 시 자동 진단 실행
    • 진단 결과를 AI 컨텍스트에 포함
    • AI가 조치 필요 판단 시 버튼 제안
    • 버튼 클릭 핸들러 (callback_query) 구현
    • 조치 완료 후 재진단으로 확인

의존성 다이어그램

#7 Cloudflare API 인증 ─┬─→ #2 도메인 진단 ─→ #3 도메인 조치 ─┐
                       │                                    │
#1 리소스 감지 ─────────┼────────────────────────────────────┼─→ #6 통합
                       │                                    │
#4 서버 진단 ──────────┴─→ #5 서버 조치 ────────────────────┘

구현 원칙

  • 진단 (읽기): 자동 실행, 안전
  • 조치 (쓰기): 사용자 확인 후 실행 (인라인 버튼)

관련 파일

  • src/troubleshoot-agent.ts - 트러블슈팅 에이전트 메인
  • src/tools/troubleshoot-tool.ts - 도구 정의
  • src/tools/index.ts - 도구 레지스트리