> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lexq.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 의사결정 출처

> 의사결정 출처와 PII 열람 감사 원장을 프로그램으로 조회합니다. 감사 자동화와 로그 수집을 위해 설계됐습니다.

의사결정 출처 API는 [의사결정 출처(Decision Provenance)](/ko/guides/decision-provenance)의 기계 가독 표면입니다. 어떤 결정이든 봉인된 출처를 꺼내고, PII 열람 감사 원장을 스케줄로 수집합니다. 모든 엔드포인트는 API 키로 인증하며 표준 `{result, data}` envelope을 반환합니다.

```text theme={null}
Base URL: https://api.lexq.io/api/v1/partners
Header:   x-api-key: YOUR_API_KEY
```

## 의사결정 출처 조회

```text theme={null}
GET /provenance/{traceId}
```

권한: Admin, User, Viewer, API 클라이언트.

| 경로 파라미터   | 설명                                              |
| --------- | ----------------------------------------------- |
| `traceId` | 실행의 trace ID. Execution API 응답 또는 실행 이력 목록에서 확인 |

```bash theme={null}
curl "https://api.lexq.io/api/v1/partners/provenance/8f3c1a2e-1d44-4c1b-9a3e-0f5b7c2d9e10" \
  -H "x-api-key: YOUR_API_KEY"
```

응답 발췌입니다. PII로 지정된 팩트는 마스킹되어 도착하고, `maskedKeys`가 그 목록을 알려줍니다.

```json theme={null}
{
  "result": "SUCCESS",
  "data": {
    "traceId": "8f3c1a2e-1d44-4c1b-9a3e-0f5b7c2d9e10",
    "requestFacts": {
      "customer_segment": "••••••",
      "purchase_subtotal_usd": 129.9
    },
    "maskedKeys": ["customer_segment"],
    "lineage": {
      "authored":  { "name": "Jane Kim", "at": "2026-06-28T09:14:02Z" },
      "published": { "name": "Jane Kim", "at": "2026-06-30T11:40:55Z" },
      "deployed":  { "name": "Jane Kim", "at": "2026-07-01T08:02:19Z" }
    }
  }
}
```

전체 응답에는 이에 더해 결정 결과, 평가된 모든 룰의 결정적 사유, 룰 스냅샷 지문이 담깁니다.

| 에러       | 상태  | 의미                |
| -------- | --- | ----------------- |
| `AN-026` | 404 | 결정 trace를 찾을 수 없음 |

## PII 열람은 API 표면이 아닙니다

마스킹된 값의 열람은 의도적으로 **콘솔 전용**입니다(Admin·User 역할). API 키로 `POST /provenance/{traceId}/reveal`을 호출하면 `403`을 받습니다. 통합이나 에이전트가 PII 평문을 가져갈 방법은 없습니다. 콘솔의 모든 열람은 값이 보이기 전에 감사 행을 먼저 기록하며, PII로 지정되지 않은 팩트의 열람 시도는 `AN-027`로 실패합니다.

## 열람 감사 목록

```text theme={null}
GET /provenance/reveal-audits
```

권한: Admin, User, Viewer, API 클라이언트. 원장은 열람 권한보다 넓은 역할이 읽을 수 있습니다. 감시 범위를 행위 범위보다 넓게 둔 의도적 설계입니다.

| 쿼리 파라미터                | 매칭             | 설명                   |
| ---------------------- | -------------- | -------------------- |
| `page`, `size`         | -              | 0-기반 페이지 번호와 페이지 크기  |
| `traceId`              | 정확 일치          | trace로 필터            |
| `revealedBy`           | 정확 일치          | 열람자 ID로 필터           |
| `factKey`              | 부분 일치, 대소문자 무시 | 팩트 키로 필터             |
| `startDate`, `endDate` | tenant 타임존     | 날짜 범위 (`yyyy-MM-dd`) |

결과 정렬은 최신순으로 고정입니다.

```bash theme={null}
curl "https://api.lexq.io/api/v1/partners/provenance/reveal-audits?startDate=2026-07-01&factKey=customer&size=50" \
  -H "x-api-key: YOUR_API_KEY"
```

```json theme={null}
{
  "result": "SUCCESS",
  "data": {
    "content": [
      {
        "traceId": "8f3c1a2e-1d44-4c1b-9a3e-0f5b7c2d9e10",
        "factKey": "customer_segment",
        "revealedBy": "6a2f31c0-9b7d-4e2a-8c11-3d5e9f0a1b2c",
        "revealedByName": "Jane Kim",
        "revealedAt": "2026-07-06T14:23:11Z"
      }
    ],
    "pageNo": 0,
    "totalPages": 1,
    "totalElements": 7
  }
}
```

값은 어디에도 없습니다. 원장은 누가, 어느 trace의, 어떤 팩트를, 언제 열람했는지만 저장합니다. 값이 없으니 유출될 것도 없습니다.

<Info>
  **로그 수집 자동화**: 보안 로그 수집 시스템(SIEM)에서 API 키로 이 엔드포인트를 스케줄에 태우십시오(예: 매일 전날 날짜 범위). 규정이 요구하는 주기적 열람 기록 점검이 자동화되고, 응답 형태 그대로 점검 자료로 쓸 수 있습니다.
</Info>

## 보존 보증

출처가 항상 해석 가능한 이유는, 감사 보존이 자신이 참조하는 것의 삭제를 거부하기 때문입니다. 실행 기록이 있는 버전은 제거할 수 없고(`AN-028`), 감사 기록을 봉인할 수 없으면 그 작업 자체가 거부됩니다(`AN-029`). 전체 코드 표는 [에러 레퍼런스](/ko/api/errors)를 참조하십시오.
