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

1""" 

2HTTP 헤더 및 환경 변수 표준 상수 

3 

4이 모듈은 mysingle 마이크로서비스 전체에서 사용되는 표준 상수를 정의합니다. 

5모든 서비스는 이 상수를 import하여 사용해야 하며, 하드코딩된 문자열 사용을 금지합니다. 

6 

7Usage: 

8 from mysingle.constants import HEADER_USER_ID, HEADER_AUTHORIZATION 

9 

10 headers = { 

11 HEADER_AUTHORIZATION: f"Bearer {token}", 

12 HEADER_USER_ID: user_id, 

13 } 

14""" 

15 

16# ============================================================================= 

17# Kong Gateway 헤더 (원본) 

18# ============================================================================= 

19# Kong Gateway에서 JWT 플러그인을 통해 주입하는 헤더 

20# 이 헤더들은 게이트웨이 레이어에서만 생성되며, 서비스가 직접 설정하지 않음 

21 

22# JWT의 sub 클레임 값 (사용자 고유 ID) 

23# Note: 현재 Kong 구성에서는 실제로 주입되지 않음 (향후 확장 대비 유지) 

24HEADER_KONG_USER_ID = "X-Consumer-Custom-ID" 

25 

26# 요청 추적을 위한 상관관계 ID (Kong에서 생성 또는 클라이언트에서 전달) 

27HEADER_CORRELATION_ID = "X-Correlation-Id" 

28 

29# Kong 내부 요청 ID 

30HEADER_KONG_REQUEST_ID = "X-Kong-Request-Id" 

31 

32 

33# ============================================================================= 

34# 서비스 간 전파용 헤더 

35# ============================================================================= 

36# 다운스트림 서비스로 전파되어야 하는 헤더 

37# Kong Gateway에서 받은 정보를 내부 서비스 간 통신에 사용 

38 

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" 

42 

43# JWT Bearer Token 

44HEADER_AUTHORIZATION = "Authorization" 

45 

46# 원본 클라이언트 IP (프록시를 거치는 경우) 

47HEADER_FORWARDED_FOR = "X-Forwarded-For" 

48 

49# 원본 요청 호스트 

50HEADER_FORWARDED_HOST = "X-Forwarded-Host" 

51 

52# 원본 요청 프로토콜 

53HEADER_FORWARDED_PROTO = "X-Forwarded-Proto" 

54 

55 

56# ============================================================================= 

57# gRPC 메타데이터 키 

58# ============================================================================= 

59# gRPC 호출 시 메타데이터로 전달되는 키 이름 

60# HTTP 헤더와 동일한 정보를 gRPC context에 전달 

61# ⚠️ gRPC 메타데이터 키는 소문자와 하이픈(-)을 사용해야 함 (HTTP/2 표준) 

62 

63# 사용자 ID 

64GRPC_METADATA_USER_ID = "user-id" 

65 

66# JWT 토큰 

67GRPC_METADATA_AUTHORIZATION = "authorization" 

68 

69# 상관관계 ID 

70GRPC_METADATA_CORRELATION_ID = "correlation-id" 

71 

72# 요청 ID 

73GRPC_METADATA_REQUEST_ID = "request-id" 

74 

75 

76# ============================================================================= 

77# 환경 변수 네이밍 패턴 

78# ============================================================================= 

79# 서비스별 gRPC 사용 여부 플래그 

80# 패턴: USE_GRPC_FOR_<SERVICE_NAME> 

81# 예: USE_GRPC_FOR_STRATEGY, USE_GRPC_FOR_INDICATOR 

82 

83# 서비스별 gRPC 호스트/포트 

84# 패턴: <SERVICE_NAME>_GRPC_HOST, <SERVICE_NAME>_GRPC_PORT 

85# 예: STRATEGY_GRPC_HOST, STRATEGY_GRPC_PORT 

86 

87 

88# ============================================================================= 

89# HTTP 클라이언트 표준 환경 변수 (CommonSettings에서 사용) 

90# ============================================================================= 

91# 최대 연결 수 

92HTTP_CLIENT_MAX_CONNECTIONS = "HTTP_CLIENT_MAX_CONNECTIONS" 

93 

94# Keep-Alive 최대 연결 수 

95HTTP_CLIENT_MAX_KEEPALIVE = "HTTP_CLIENT_MAX_KEEPALIVE_CONNECTIONS" 

96 

97# 타임아웃 (초) 

98HTTP_CLIENT_TIMEOUT = "HTTP_CLIENT_TIMEOUT" 

99 

100 

101# ============================================================================= 

102# 테스트 환경 전용 플래그 

103# ============================================================================= 

104# 간편 인증 허용 (개발/테스트 환경 전용) 

105# ⚠️ 프로덕션 환경에서는 절대 사용 금지 

106ENV_TEST_ALLOW_SIMPLE_USER = "TEST_ALLOW_SIMPLE_USER" 

107 

108 

109# ============================================================================= 

110# 환경 구분 

111# ============================================================================= 

112ENV_DEVELOPMENT = "development" 

113ENV_TESTING = "testing" 

114ENV_STAGING = "staging" 

115ENV_PRODUCTION = "production"