Commit Graph

10 Commits

Author SHA1 Message Date
SEAN
1ca4980293 improvement: 태그 관리 API 프론트엔드 연동 수정 (#267)
- TagSummaryDto에 tag_index 필드 추가 (서비스별 Id 순서 1-based 동적 계산)
- ServiceSummaryDto/ServiceResponseDto에 service_id 필드 추가
- ServiceCodeMiddleware OPTIONAL_FOR_ADMIN에 /v1/in/tag 경로 추가

Closes #267
2026-03-02 13:43:14 +09:00
SEAN
30c40d449d fix: 루트 경로 접근 시 X-Service-Code 미들웨어 차단 해제 (#255)
- /v1로 시작하지 않는 경로(루트, 정적파일 등)는 ServiceCodeMiddleware SKIP
- 프론트엔드 SPA(index.html) 정상 서빙 보장

Fixes #255
2026-02-26 15:03:53 +09:00
SEAN
011cb9b380 improvement: 메시지 목록 확장 (#224)
- ServiceCodeMiddleware: message/list를 OPTIONAL_FOR_ADMIN에 추가
- MessageListRequestDto: service_code, send_status 필터 필드 추가
- MessageSummaryDto: service_name, service_code, latest_send_status 추가
- IMessageRepository + MessageRepository: GetPagedForListAsync 구현
  (Service 조인 + PushSendLog 집계 한 번의 쿼리)
- IMessageService + MessageService: serviceId nullable 변경, DetermineSendStatus 헬퍼
- MessageController: GetServiceIdOrNull() 헬퍼 + Swagger 업데이트

Closes #224
2026-02-25 14:28:09 +09:00
SEAN
f04eb44fff improvement: 서비스 스코프 정책 고정 (#199)
- ErrorCodes.ServiceScopeRequired("133") 추가
- SpmsException.Forbidden 팩토리 추가
- ServiceCodeMiddleware 3-카테고리 라우팅 (SKIP/REQUIRED/OPTIONAL_FOR_ADMIN)
- Swagger 필터 stats/device-list X-Service-Code optional 표시
- StatsController/DeviceController GetOptionalServiceId() 적용
- IStatsService/IDeviceService/레포지토리 시그니처 long? serviceId 변경
- StatsService/DeviceService null serviceId 전체 서비스 모드 처리

Closes #199
2026-02-24 17:11:30 +09:00
SEAN
e9bcd5358f feat: 디바이스 CRUD + 목록 API 구현 (#94) 2026-02-10 14:44:16 +09:00
SEAN
f798b290ec fix: X-Service-Code 미들웨어 경로 제외 수정 (#59)
auth, account, public, service 경로를 X-Service-Code 검증 대상에서 제외.
device, message, push, stats, file 경로만 X-Service-Code 헤더 필요.
Swagger OperationFilter도 동일하게 수정.
2026-02-10 10:20:43 +09:00
SEAN
9185afd5e9 feat: Sandbox 모드 미들웨어 구현 (#34)
- SandboxMiddleware 추가: X-SPMS-TEST 헤더로 테스트 모드 감지
- HttpContext.Items["IsSandbox"] 플래그 설정
- 미들웨어 파이프라인 14번 위치에 등록

Closes #34
2026-02-09 17:32:04 +09:00
SEAN
df8a8e2e5b feat: X-Service-Code / X-API-KEY 서비스 식별 미들웨어 구현 (#32)
- ServiceRepository: IServiceRepository 구현 (GetByServiceCode, GetByApiKey)
- ServiceCodeMiddleware: X-Service-Code 헤더 검증, DB 조회, 서비스 상태 확인
- ApiKeyMiddleware: /v1/in/device/* 경로 X-API-KEY 검증
- ApplicationBuilderExtensions: 미들웨어 파이프라인 12~13번 등록
- DependencyInjection: IServiceRepository DI 등록

Closes #32
2026-02-09 17:25:19 +09:00
SEAN
d6b15c3cd8 feat: Serilog 구조적 로깅 설정 (#22)
- appsettings.json/Development.json에 Serilog 섹션 추가 (Console/File Sink, Rolling Daily)
- RequestIdMiddleware 구현 (X-Request-ID 헤더 발급/반환)
- Program.cs에 Serilog 호스트 빌더 + UseSerilogRequestLogging 등록
- 환경별 로그 레벨 분리 (Development: Debug, Production: Warning)
2026-02-09 15:10:17 +09:00
SEAN
a9f6a436c4 feat: SpmsException 및 글로벌 예외 처리 미들웨어 구현 (#16) 2026-02-09 14:33:37 +09:00