Module: Saro::Dat::ErrorCode
- Defined in:
- lib/saro/dat/error.rb
Overview
DAT 통합 오류 코드 (error.pre2.md).
코드 문자열은 모든 공식 클라이언트와 CMS 서버가 공유하는 공개 계약이다. 메시지는 자유롭게 바꿔도 되지만 코드는 바꾸지 않는다.
- 분류는 원인이다. "어느 함수에서 났는가"가 아니라 "무엇이 잘못됐는가"다.
- *_UNKNOWN 은 각 영역의 폴백 전용이다. "알 수 없는 X" 라는 뜻으로 쓰지 않는다.
- 하위 원인은 버리지 않고 #cause 로 보존한다.
Constant Summary collapse
- TOKEN_MALFORMED =
TOKEN : DAT 토큰 문자열
"DAT_TOKEN_MALFORMED"- TOKEN_EXPIRED =
"DAT_TOKEN_EXPIRED"- TOKEN_UNKNOWN =
"DAT_TOKEN_UNKNOWN"- CERT_MALFORMED =
CERT : 인증서
"DAT_CERT_MALFORMED"- CERT_EXPIRED =
"DAT_CERT_EXPIRED"- CERT_NOT_YET_ISSUABLE =
"DAT_CERT_NOT_YET_ISSUABLE"- CERT_ISSUANCE_ENDED =
"DAT_CERT_ISSUANCE_ENDED"- CERT_VERIFY_ONLY =
"DAT_CERT_VERIFY_ONLY"- CERT_NOT_FOUND =
"DAT_CERT_NOT_FOUND"- CERT_NOT_SYNCED =
"DAT_CERT_NOT_SYNCED"- CERT_DUPLICATE_CID =
"DAT_CERT_DUPLICATE_CID"- CERT_UNKNOWN =
"DAT_CERT_UNKNOWN"- SIG_MISMATCH =
SIG : 서명
"DAT_SIG_MISMATCH"- SIG_MALFORMED =
"DAT_SIG_MALFORMED"- SIG_KEY_MISSING =
"DAT_SIG_KEY_MISSING"- SIG_BACKEND =
"DAT_SIG_BACKEND"- SIG_UNKNOWN =
"DAT_SIG_UNKNOWN"- CRYPTO_TAG_MISMATCH =
CRYPTO : secure 페이로드
"DAT_CRYPTO_TAG_MISMATCH"- CRYPTO_DATA_INVALID =
"DAT_CRYPTO_DATA_INVALID"- CRYPTO_BACKEND =
"DAT_CRYPTO_BACKEND"- CRYPTO_UNKNOWN =
"DAT_CRYPTO_UNKNOWN"- KEY_INVALID =
KEY : 키 재료
"DAT_KEY_INVALID"- KEY_VERIFY_ONLY_UNSUPPORTED =
"DAT_KEY_VERIFY_ONLY_UNSUPPORTED"- KEY_UNKNOWN =
"DAT_KEY_UNKNOWN"- MANAGER_NO_CERTIFICATE =
MANAGER : 매니저 보유 상태
"DAT_MANAGER_NO_CERTIFICATE"- MANAGER_NO_ISSUABLE_CERTIFICATE =
"DAT_MANAGER_NO_ISSUABLE_CERTIFICATE"- MANAGER_DISPOSED =
"DAT_MANAGER_DISPOSED"- MANAGER_UNKNOWN =
"DAT_MANAGER_UNKNOWN"- CMS_UNREACHABLE =
CMS : 서버 응답·전송
"DAT_CMS_UNREACHABLE"- CMS_UNAUTHORIZED =
"DAT_CMS_UNAUTHORIZED"- CMS_FORBIDDEN =
"DAT_CMS_FORBIDDEN"- CMS_ENDPOINT_NOT_FOUND =
"DAT_CMS_ENDPOINT_NOT_FOUND"- CMS_SERVER_ERROR =
"DAT_CMS_SERVER_ERROR"- CMS_HTTP_STATUS =
"DAT_CMS_HTTP_STATUS"- CMS_MALFORMED =
"DAT_CMS_MALFORMED"- CMS_IMPORT_FAILED =
"DAT_CMS_IMPORT_FAILED"- CMS_VERSION_RESET =
"DAT_CMS_VERSION_RESET"- CMS_NOT_SYNCED =
"DAT_CMS_NOT_SYNCED"- CMS_SYNC_IN_PROGRESS =
"DAT_CMS_SYNC_IN_PROGRESS"- CMS_NOT_SUPPORTED =
"DAT_CMS_NOT_SUPPORTED"- CMS_UNKNOWN =
"DAT_CMS_UNKNOWN"- CONFIG_ALG_UNSUPPORTED =
CONFIG : 호출자가 넘긴 값
"DAT_CONFIG_ALG_UNSUPPORTED"- CONFIG_URI_INVALID =
"DAT_CONFIG_URI_INVALID"- CONFIG_ARGUMENT_INVALID =
"DAT_CONFIG_ARGUMENT_INVALID"- CONFIG_UNKNOWN =
"DAT_CONFIG_UNKNOWN"- INTERNAL_UNAVAILABLE =
INTERNAL : 실행 환경
"DAT_INTERNAL_UNAVAILABLE"- INTERNAL_UNKNOWN =
"DAT_INTERNAL_UNKNOWN"- TRANSIENT =
재시도 분류. 애매하면 :permanent 다 — 영구 오류에 대한 무한 재시도가 이 체계 이전의 실제 결함이었다.
[ CERT_NOT_YET_ISSUABLE, CERT_NOT_SYNCED, MANAGER_NO_CERTIFICATE, CMS_UNREACHABLE, CMS_SERVER_ERROR, CMS_NOT_SYNCED ].freeze
- STATE =
[CMS_VERSION_RESET, CMS_SYNC_IN_PROGRESS].freeze
- SECURITY =
위조·변조 시도의 직접 증거.
[SIG_MISMATCH, CRYPTO_TAG_MISMATCH].freeze