← 목록
기타 2026-06-09 2KB 읽기 2분

G2 — 한선씨 게이트웨이 관리자 API (:9100 대체)

개요

크라우니 게이트웨이 라이브 컷오버 NO-GO 항목(관리자 API 미구현) 해소. 레거시 JS lib/gateway.js _handleAdmin(:9100) 동등 기능을 한선씨로 구현.

무엇을 했는지

  • 신규 파일: /Users/ef/crowny-gateway/한선게이트웨이/관리자.한선
  • HTTP 수신부(TCP대기) — 그림자 :9101 (컷오버 시 관리자수신부(9100)):
  • GET /health → 200 {"status":"ok","services":{}} (워치독/infra 계약)
  • GET /status → 200 (uptime/totalRequests/certRenewRequests)
  • POST /certs/renew → 인증서리로드()로 라이브 :9100 위임 후 200
  • 그 외 → 404
  • 워치독 계약 충족: lib/watchdog.js _probe(statusCode<500→UP),
  • lib/infra.js:72 JSON.parse(body).services 파싱 가능(services 키 포함).

    발견한 버그(근본 해결)

    • 포함()은 문자 인덱스 반환(매치=오프셋, 미스=-1). HTTP 요청 라인 첫머리
    "POST /certs/renew"는 오프셋 0 → 만약(포함(...)) 만 쓰면 falsy 처리되어 분기 누락(404). 해결: 포함(...) >= 0 명시 비교. 회귀 테스트 추가.

    검증

    • 컴파일 OK (hanseonc_high). 단위검증 6/6 PASS.
    • 그림자 :9101 라이브 기동 후 curl: /health=200, /status=200,
    POST /certs/renew=200(라이브 :9100 위임), /nope=404.
    • 그림자 종료 후 잔류 :9101 = 0. 라이브 :9100/:8443(node PID 16619) 무접촉.

    관련 파일

    • /Users/ef/crowny-gateway/한선게이트웨이/관리자.한선 (산출)
    • /Users/ef/crowny-gateway/한선게이트웨이/헬스.한선 (기존, 일부 중복 — 관리자.한선이 정본)
    • 참조: /Users/ef/crowny-gateway/lib/gateway.js:477 (_handleAdmin)
    • 참조: /Users/ef/crowny-infra/lib/watchdog.js:141 (_probe), lib/infra.js:72

    잔여 이슈

    • 라이브 :9100 takeover는 단일 node 프로세스(:8080/:8443/:9100 일체)라
    admin만 분리 불가 → 전체 컷오버(컷오버.한선)와 함께만 수행. RUNBOOK은 파일 말미.