Coverage for src / mysingle / constants.py: 0%
20 statements
« prev ^ index » next coverage.py v7.12.0, created at 2025-12-02 00:58 +0900
« prev ^ index » next coverage.py v7.12.0, created at 2025-12-02 00:58 +0900
1"""
2HTTP 헤더 및 환경 변수 표준 상수
4이 모듈은 mysingle 마이크로서비스 전체에서 사용되는 표준 상수를 정의합니다.
5모든 서비스는 이 상수를 import하여 사용해야 하며, 하드코딩된 문자열 사용을 금지합니다.
7Usage:
8 from mysingle.constants import HEADER_USER_ID, HEADER_AUTHORIZATION
10 headers = {
11 HEADER_AUTHORIZATION: f"Bearer {token}",
12 HEADER_USER_ID: user_id,
13 }
14"""
16# =============================================================================
17# Kong Gateway 헤더 (원본)
18# =============================================================================
19# Kong Gateway에서 JWT 플러그인을 통해 주입하는 헤더
20# 이 헤더들은 게이트웨이 레이어에서만 생성되며, 서비스가 직접 설정하지 않음
22# JWT의 sub 클레임 값 (사용자 고유 ID)
23# Note: 현재 Kong 구성에서는 실제로 주입되지 않음 (향후 확장 대비 유지)
24HEADER_KONG_USER_ID = "X-Consumer-Custom-ID"
26# 요청 추적을 위한 상관관계 ID (Kong에서 생성 또는 클라이언트에서 전달)
27HEADER_CORRELATION_ID = "X-Correlation-Id"
29# Kong 내부 요청 ID
30HEADER_KONG_REQUEST_ID = "X-Kong-Request-Id"
33# =============================================================================
34# 서비스 간 전파용 헤더
35# =============================================================================
36# 다운스트림 서비스로 전파되어야 하는 헤더
37# Kong Gateway에서 받은 정보를 내부 서비스 간 통신에 사용
39# 사용자 ID (Kong의 X-Consumer-Custom-ID를 X-User-Id로 변환하여 전파)
40# ⚠️ 대소문자 주의: X-User-Id (O), X-User-ID (X)
41HEADER_USER_ID = "X-User-Id"
43# JWT Bearer Token
44HEADER_AUTHORIZATION = "Authorization"
46# 원본 클라이언트 IP (프록시를 거치는 경우)
47HEADER_FORWARDED_FOR = "X-Forwarded-For"
49# 원본 요청 호스트
50HEADER_FORWARDED_HOST = "X-Forwarded-Host"
52# 원본 요청 프로토콜
53HEADER_FORWARDED_PROTO = "X-Forwarded-Proto"
56# =============================================================================
57# gRPC 메타데이터 키
58# =============================================================================
59# gRPC 호출 시 메타데이터로 전달되는 키 이름
60# HTTP 헤더와 동일한 정보를 gRPC context에 전달
61# ⚠️ gRPC 메타데이터 키는 소문자와 하이픈(-)을 사용해야 함 (HTTP/2 표준)
63# 사용자 ID
64GRPC_METADATA_USER_ID = "user-id"
66# JWT 토큰
67GRPC_METADATA_AUTHORIZATION = "authorization"
69# 상관관계 ID
70GRPC_METADATA_CORRELATION_ID = "correlation-id"
72# 요청 ID
73GRPC_METADATA_REQUEST_ID = "request-id"
76# =============================================================================
77# 환경 변수 네이밍 패턴
78# =============================================================================
79# 서비스별 gRPC 사용 여부 플래그
80# 패턴: USE_GRPC_FOR_<SERVICE_NAME>
81# 예: USE_GRPC_FOR_STRATEGY, USE_GRPC_FOR_INDICATOR
83# 서비스별 gRPC 호스트/포트
84# 패턴: <SERVICE_NAME>_GRPC_HOST, <SERVICE_NAME>_GRPC_PORT
85# 예: STRATEGY_GRPC_HOST, STRATEGY_GRPC_PORT
88# =============================================================================
89# HTTP 클라이언트 표준 환경 변수 (CommonSettings에서 사용)
90# =============================================================================
91# 최대 연결 수
92HTTP_CLIENT_MAX_CONNECTIONS = "HTTP_CLIENT_MAX_CONNECTIONS"
94# Keep-Alive 최대 연결 수
95HTTP_CLIENT_MAX_KEEPALIVE = "HTTP_CLIENT_MAX_KEEPALIVE_CONNECTIONS"
97# 타임아웃 (초)
98HTTP_CLIENT_TIMEOUT = "HTTP_CLIENT_TIMEOUT"
101# =============================================================================
102# 테스트 환경 전용 플래그
103# =============================================================================
104# 간편 인증 허용 (개발/테스트 환경 전용)
105# ⚠️ 프로덕션 환경에서는 절대 사용 금지
106ENV_TEST_ALLOW_SIMPLE_USER = "TEST_ALLOW_SIMPLE_USER"
109# =============================================================================
110# 환경 구분
111# =============================================================================
112ENV_DEVELOPMENT = "development"
113ENV_TESTING = "testing"
114ENV_STAGING = "staging"
115ENV_PRODUCTION = "production"