mmday-firebase/scripts/_bootstrap.ts
윤정민 40dcb41d99 Add debug endpoints and scripts to evaluate chat tools and models.
특정 uid로 실제 도구·모델 루프를 돌려 호출된 도구·토큰·속도·캐시 히트를
보고하는 /debug/chatToolsSheet, /debug/chatProbe(Sheet) 엔드포인트를 추가한다
(요청별 model 오버라이드로 A/B 가능). prod에 같은 검증을 돌리는
scripts/chat-tools-sheet.ts도 추가한다.

무인증 + 임의 uid의 개인 데이터를 노출하는 검수용 임시 엔드포인트다.
2026-06-16 16:52:21 +09:00

24 lines
1.0 KiB
TypeScript

/**
* prod Firebase Admin 부트스트랩(side-effect 모듈).
*
* 반드시 src/* 모듈보다 "먼저" import해야 한다 — 그래야 src/firebase의
* initializeApp()가 재실행되지 않고 여기서 만든 앱(projectId·databaseURL 지정)을
* 재사용한다. 자격증명은 ADC(applicationDefault)를 쓴다:
* gcloud auth application-default login
* 또는 GOOGLE_APPLICATION_CREDENTIALS=<서비스계정.json>
*
* 도구는 RTDB를 쓰지 않지만 src/firebase가 getDatabase()를 호출하므로
* databaseURL이 없으면 import 시점에 throw한다 — 그래서 형식상 URL을 채워준다.
*/
import { initializeApp, getApps } from "firebase-admin/app";
const projectId = process.env.FIREBASE_PROJECT ?? process.env.GCLOUD_PROJECT ?? "mmday-panit";
const databaseURL =
process.env.FIREBASE_DATABASE_URL ?? `https://${projectId}-default-rtdb.firebaseio.com`;
if (getApps().length === 0) {
initializeApp({ projectId, databaseURL });
}
export const BOOTSTRAP_PROJECT = projectId;