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