DAT CMS
DAT CMS는 인증서를 생성·보관하고 클라이언트 매니저에 전달하는 선택형 서비스입니다. 이 문서는 클라이언트와 서버 사이의 동기화 계약을 설명합니다. 설치와 운영은 DAT CMS 서비스 가이드를 참고합니다.
역할별 엔드포인트
| 역할 | 경로 | 용도 |
|---|---|---|
| 전체 인증서 조회 | GET /v1/certs?version=<n> | DAT를 발급하는 서비스 |
| 검증 전용 인증서 조회 | GET /v1/certs/verify-only?version=<n> | 검증과 복호화만 하는 서비스 |
| 인증서 등록 | POST /v1/cert/{signature}/{crypto}/{propagation}/{issuance}/{ttl} | 운영자 또는 인증서 생성 작업 |
전체 조회와 검증 전용 조회는 서로 다른 토큰 역할로 보호할 수 있습니다. 검증 전용 서비스가 전체 인증서를 요청하지 않도록 클라이언트 매니저의 verifyOnly 옵션을 설정합니다.
버전 커서
클라이언트는 마지막으로 반영한 버전을 서버에 전달합니다. 서버 상태가 같으면 인증서를 다시 내려보내지 않아도 됩니다. 새로운 상태가 있으면 첫 줄에 버전을, 다음 줄부터 인증서를 반환합니다.
성공 응답에 버전만 있고 인증서가 없다면 기존 인증서와 발급자를 보존합니다. 서버 버전이 클라이언트보다 낮아진 응답은 상태를 되돌리지 않고 오류로 처리합니다.
인증서 반영 규칙
- 응답 안에 같은
cid가 반복되면 응답 전체를 거부합니다. - 이미 보유한
cid와 새 응답의cid가 같으면 기존 인증서를 유지합니다. - 모든 인증서를 파싱하고 검증한 뒤 한 번에 상태를 반영합니다.
- 일부 인증서만 성공한 상태로 남기지 않습니다.
- 현재 시각에 발급 가능한 인증서 중 적절한 인증서를 발급자로 선택합니다.
초기 동기화와 수동 동기화
클라이언트 매니저 생성 시 첫 동기화는 대체로 best-effort입니다. 실패해도 매니저를 만들고 구체적인 마지막 오류를 보관합니다. 애플리케이션 시작을 실패시켜야 한다면 각 라이브러리의 즉시 동기화 API를 호출해 오류를 호출자에게 전달합니다.
자동 동기화를 사용하지 않는 환경은 interval을 끄고 필요한 시점에 직접 동기화할 수 있습니다. 자동 동기화를 사용한다면 애플리케이션 종료 시 매니저를 닫거나 중지합니다.
네트워크와 오류
연결 및 전체 요청 타임아웃을 운영 환경에 맞게 설정합니다. 리디렉션 정책은 런타임마다 다르므로 라이브러리 문서를 확인합니다. 비-2xx CMS 응답은 현재 클라이언트에서 HTTP 상태에 해당하는 DAT_CMS_* 오류로 분류하며, 서버 JSON의 세부 오류 코드를 그대로 보존하지 않습니다.
일시적인 저장소 장애는 서버가 마지막으로 성공한 인증서 스냅샷을 제공할 수 있습니다. 아직 성공한 스냅샷이 없다면 DAT_STORE_UNAVAILABLE로 응답합니다.
서비스 문서
배포, 데이터베이스, 접근 토큰과 실행 구성은 DAT CMS 서비스 가이드에서 이어집니다.