배경
#84로 도입된 트리 질의 API는 NATS request/reply 표면에 한정된다. 외부 UI·운영 도구·브라우저 기반 대시보드는 HTTP를 기대하므로, NATS subject들을 read-only HTTP gateway로 노출한다.
본 이슈는 의도적으로 read-only PoC로 범위를 좁힌다. write 표면(자산 생성·관계 등록 등)은 인증·CORS·CSRF·OpenAPI 등 결정 폭이 커서 별도 이슈로 분리한다.
범위
-
HTTP 엔드포인트 (read-only)
GET /api/v1/assets — 자산 목록 (페이지네이션)
GET /api/v1/assets/{id} — 자산 상세
GET /api/v1/assets/{id}/ancestors?relation_types=&max_depth=
GET /api/v1/assets/{id}/descendants?...
GET /api/v1/assets/{id}/subtree?...
GET /api/v1/assets/{id}/connected?relation_type=
GET /api/v1/relations — 관계 목록 (필터링)
GET /api/v1/health — 헬스 체크
GET /api/v1/version — 버전 정보
-
라이브러리·서버 구성
- 라이브러리 선택 (net/http vs chi vs gin) → 디자인 섹션에서 결정
- 기존 EDG Core 프로세스와 같은 binary에 임베드 vs 별도 sidecar — Plan에서 결정
-
기본 인증·CORS
- 베어러 토큰 옵션 (환경 변수로 설정)
- CORS는 기본 비활성, 운영자가 명시적 허용
-
응답 스키마
- NATS subject 응답과 동일한 JSON 구조 유지 (1:1 매핑)
범위 외 (후속 이슈)
- write API (POST/PUT/DELETE 엔드포인트)
- 데이터 평면 HTTP (validated data를 HTTP로 노출)
- OAuth/OIDC 통합
- OpenAPI 자동 생성·문서 호스팅
- 레이트 리미팅·캐싱 헤더 고도화
의존성
핵심 설계 결정 (Plan에서 상세)
- HTTP 라이브러리 선택 (현재 의존성 0 → 표준 라이브러리 우선 검토)
- 동일 프로세스 임베드 vs sidecar 분리
- 인증 모델 (베어러 토큰 + 옵션 mTLS vs 더 확장적인 모델)
- 응답 페이지네이션 규약
계획 문서
상세 계획은 plan 파일로 별도 작성 예정.
배경
#84로 도입된 트리 질의 API는 NATS request/reply 표면에 한정된다. 외부 UI·운영 도구·브라우저 기반 대시보드는 HTTP를 기대하므로, NATS subject들을 read-only HTTP gateway로 노출한다.
본 이슈는 의도적으로 read-only PoC로 범위를 좁힌다. write 표면(자산 생성·관계 등록 등)은 인증·CORS·CSRF·OpenAPI 등 결정 폭이 커서 별도 이슈로 분리한다.
범위
HTTP 엔드포인트 (read-only)
GET /api/v1/assets— 자산 목록 (페이지네이션)GET /api/v1/assets/{id}— 자산 상세GET /api/v1/assets/{id}/ancestors?relation_types=&max_depth=GET /api/v1/assets/{id}/descendants?...GET /api/v1/assets/{id}/subtree?...GET /api/v1/assets/{id}/connected?relation_type=GET /api/v1/relations— 관계 목록 (필터링)GET /api/v1/health— 헬스 체크GET /api/v1/version— 버전 정보라이브러리·서버 구성
기본 인증·CORS
응답 스키마
범위 외 (후속 이슈)
의존성
핵심 설계 결정 (Plan에서 상세)
계획 문서
상세 계획은 plan 파일로 별도 작성 예정.