본문으로 건너뛰기

Lineage

데이터 리니지(계보)를 추적하는 API입니다. 테이블 간 데이터 흐름을 그래프로 시각화하고, 변경 영향도를 분석합니다.

엔드포인트

GET /api/v1/lineage/{catalog}/{schema}/{table}/graph

설명: 특정 테이블의 리니지 그래프를 반환합니다. 업스트림/다운스트림 테이블 관계를 포함합니다.

응답:

{
"nodes": [{"id": "catalog.schema.table", "type": "table"}],
"edges": [{"source": "...", "target": "...", "transform": "SQL"}]
}

GET /api/v1/lineage/{catalog}/{schema}/{table}/impact

설명: 테이블 변경 시 영향을 받는 다운스트림 테이블/뷰 목록을 반환합니다.

POST /api/v1/lineage/edges

설명: 리니지 엣지(데이터 흐름)를 수동 등록합니다.

요청 본문:

필드타입필수설명
sourcestringY소스 테이블 (catalog.schema.table)
targetstringY타겟 테이블
transform_sqlstringN변환 SQL

GET /api/v1/lineage/tables

설명: 리니지 엣지에 등록된 테이블 목록. 호출자의 SELECT grant 로 필터됩니다 (deny-by-default).

:::note admin 도 필터 대상입니다 (v1.2+) 목록과 상세는 같은 판정 함수(check_table_select)를 씁니다. realm role admin 만으로는 데이터평면 전체 열람이 되지 않으며, GEND_ADMIN_DATA_PLANE_MODE=enforce 에서는 break-glass 역할이 있어야 합니다 (ADR #2700 D2).

이전에는 목록만 is_admin 으로 전량 통과시켜, break-glass 없는 admin 에게 목록에는 보이는데 상세는 403 인 상태가 발생했습니다 — 다른 워크스페이스의 테이블 이름이 그대로 노출되는 경로였습니다 (#3093). :::

인증

JWT Bearer 토큰이 필요합니다.

에러 코드

코드설명
400잘못된 테이블 이름 형식
403대상 테이블에 SELECT grant 없음 (deny-by-default)
404테이블을 찾을 수 없음
500리니지 그래프 조회 실패