--- test_env: dev test_profile: rag-data-plane-smoke domain: rag-data-plane verification_type: smoke last_rule_updated_at: 2026-07-18 --- # rag-data-plane-smoke dev 테스트 ## 읽기 조건 - retrieve·answer handler, release resolver, engine port, OpenAPI 또는 rag-api를 원격 환경에서 검증할 때 ## 적용 범위 - `apps/rag-api/`, `packages/go/rag/`, `api/openapi/` ## 분류 - domain: rag-data-plane - verification_type: smoke - scope: 원격 runner의 retrieve·answer 계약과 rag-api readiness 검증 ## 환경 - host: `ssh toki@toki-labs.com` - repo root: `/Users/toki/agent-work/rara-dev` - port: RAG API `127.0.0.1:18071`, PostgreSQL host publish 후보 `127.0.0.1:15470` - runtime: Go 1.26 - package manager: Go modules - docker: login shell의 Docker Desktop/Engine 27.4.0, 실행 전 daemon 재확인 - external service: readiness·실제 retrieve/answer에는 PostgreSQL과 승인된 integration 필요 - model endpoint: 기본값 없음 - credential: integration/database credential 원문은 문서와 출력에 남기지 않는다. ## 명령 - setup: `make setup` - lint: 변경한 Go 파일의 `gofmt` 상태와 diff 확인 - unit: `go test ./packages/go/rag/...` - smoke: `go build -o /tmp/rara-rag-api ./apps/rag-api/cmd/rag-api` - service: PostgreSQL 준비 후 `RARA_LISTEN=127.0.0.1:18071`과 주입된 `RARA_DATABASE_URL`로 binary를 실행하고 `/healthz`, `/readyz` 확인 - e2e: integration이 명시적으로 준비된 경우에만 `/v1/retrieve`, `/v1/answer` JSON·SSE 계약 확인 - model: 승인된 generation provider가 있을 때만 수행 - full-cycle: `make test && make build` ## 필수 검증 - 원격 checkout의 HEAD가 검증 대상 source와 일치한다. - RAG handler와 resolver 테스트가 통과하고 rag-api binary가 빌드된다. - 공개 요청·응답 변경 시 OpenAPI와 JSON/SSE 오류 의미가 일치한다. - PostgreSQL이 준비된 경우 `18071`에서 health와 readiness를 확인한다. ## 보조 검증 - `lsof -nP -iTCP:18071 -sTCP:LISTEN`으로 시작 전 충돌과 종료 후 반환을 확인한다. - 준비된 non-production integration이 있을 때 retrieve와 answer 실제 응답을 확인한다. ## 판정 기준 - source identity가 일치하고 테스트·빌드가 exit code 0으로 종료한다. - service smoke를 수행한 경우 health와 readiness가 성공한다. - 실제 integration이 없으면 handler 단위 테스트와 unavailable 동작까지만 통과로 보고한다. ## 기준 출력 예시 ```text ok git.toki-labs.com/toki/rara/packages/go/rag ``` ## 차단 기준 - 원격 checkout 부재·source 불일치, Go 1.26 부재, `18071` 점유 - readiness에 필요한 PostgreSQL 또는 실제 통합 smoke에 필요한 integration 부재 ## 보고 항목 - 원격 branch/HEAD: - 실행한 명령: - 성공한 검증: - 실패/차단된 검증: - 생략 사유: - 남은 위험: ## 금지 사항 - local test 결과나 unavailable engine을 실제 원격 retrieve·answer 성공으로 보고하지 않는다. - secret, token, 개인 endpoint 원문을 기록하지 않는다.