Commit Graph

45 Commits

Author SHA1 Message Date
0ccef1e10f feat: Sandbox 모드 미들웨어 구현 (#34)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/35
2026-02-09 08:33:40 +00:00
SEAN
9185afd5e9 feat: Sandbox 모드 미들웨어 구현 (#34)
- SandboxMiddleware 추가: X-SPMS-TEST 헤더로 테스트 모드 감지
- HttpContext.Items["IsSandbox"] 플래그 설정
- 미들웨어 파이프라인 14번 위치에 등록

Closes #34
2026-02-09 17:32:04 +09:00
c49807c985 feat: X-Service-Code / X-API-KEY 서비스 식별 미들웨어 구현 (#32)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/33
2026-02-09 08:26:51 +00: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
4270e70f09 feat: API Rate Limiting 및 Swagger UI 구현 (#30)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/31
2026-02-09 08:13:30 +00:00
SEAN
58b94c6298 feat: API Rate Limiting 및 Swagger UI 구현 (#30)
- ASP.NET Core 내장 Rate Limiting (FixedWindow, IP 기반 분당 100회)
- 한도 초과 시 HTTP 429 + ApiResponse(에러코드 106) 반환
- Swashbuckle.AspNetCore 6.9.0 기반 Swagger UI 추가
- 도메인별 API 문서 그룹 (all, public, auth 등 10개)
- JWT Bearer 인증 UI (Authorize 버튼)
- X-Service-Code/X-API-KEY 커스텀 헤더 자동 표시 필터
- Microsoft.AspNetCore.OpenApi 제거 (Swashbuckle과 호환 충돌)

Closes #30
2026-02-09 17:11:46 +09:00
fb0da8669d feat: E2EE 암호화 유틸리티 구현 (#28)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/29
2026-02-09 07:36:55 +00:00
SEAN
27f33f809b feat: E2EE 암호화 유틸리티 구현 (#28)
- AesEncryption: AES-256-CBC 암호화/복호화
- RsaEncryption: RSA-2048 키 쌍 생성/암복호화
- E2EEService: 하이브리드 암복호화 (요청 복호화, 응답 암호화)
- TimestampValidator: 타임스탬프 검증 (±30초)
- SecureTransportAttribute: Action Filter (보안등급 3 엔드포인트용)
- DI 등록: IE2EEService → E2EEService (Singleton)

Closes #28
2026-02-09 16:33:38 +09:00
0070ae58b9 feat: DI 컨테이너 및 서비스 등록 구조화 (#26)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/27
2026-02-09 07:28:03 +00:00
SEAN
cd8270c5c0 feat: DI 컨테이너 및 서비스 등록 구조화 (#26)
- Infrastructure/DependencyInjection.cs: AddInfrastructure() 확장 메서드
- Application/DependencyInjection.cs: AddApplication() 확장 메서드
- API/Extensions/ApplicationBuilderExtensions.cs: UseMiddlewarePipeline() 확장 메서드
- Program.cs 정리 (DI/파이프라인 분리)

Closes #26
2026-02-09 16:25:44 +09:00
SEAN
3125726e2c fix: Development 환경에서 UseHttpsRedirection 비활성화 (#24)
All checks were successful
SPMS_API/pipeline/head This commit looks good
2026-02-09 15:33:56 +09:00
SEAN
65b4207f94 revert: Health Check GET 메서드 제거, POST만 유지 (#24)
All checks were successful
SPMS_API/pipeline/head This commit looks good
2026-02-09 15:28:04 +09:00
SEAN
9107726c3b fix: Health Check 엔드포인트에 GET 메서드 추가 (#24)
All checks were successful
SPMS_API/pipeline/head This commit looks good
2026-02-09 15:26:34 +09:00
3f439e4d4e feat: Health Check 엔드포인트 구현 (#24)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/25
2026-02-09 06:20:49 +00:00
SEAN
a9c944a27d feat: Health Check 엔드포인트 구현 (#24)
- PublicController 생성 (POST /v1/out/health)
- MariaDB 연결 확인 (SELECT 1)
- Redis, RabbitMQ 연결 확인 (Phase 2에서 구현 예정, not_configured 상태)
- 정상: HTTP 200 + ApiResponse.Success / 이상: HTTP 503 + 상세 상태
2026-02-09 15:17:45 +09:00
9bd39669f3 feat: Serilog 구조적 로깅 설정 (#22)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/23
2026-02-09 06:13:10 +00: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
f3714ff8fb feat: JWT 인증 모듈 구현 (#20)
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/21
2026-02-09 06:05:11 +00:00
SEAN
2d30aaf212 feat: JWT 인증 모듈 구현 (#20)
- IJwtService 인터페이스 (Application Layer)
- JwtSettings POCO (Options Pattern)
- JwtService 구현 (Access Token 생성/검증, Refresh Token 생성)
- AddJwtAuthentication/AddAuthorizationPolicies 확장 메서드
- Program.cs에 인증/인가 미들웨어 등록 (파이프라인 순서 10~11번)
- NuGet: System.IdentityModel.Tokens.Jwt, Microsoft.AspNetCore.Authentication.JwtBearer
2026-02-09 14:59:36 +09:00
24e1ccbfef feat: Generic Repository 및 UnitOfWork 패턴 구현 (#18)
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/19
2026-02-09 05:47:19 +00:00
SEAN
787190f512 feat: Generic Repository 및 UnitOfWork 패턴 구현 (#18)
- IRepository<T> 구현체: CRUD, 페이징, 조건 검색 지원
- IUnitOfWork 구현체: 트랜잭션 관리 (Begin/Commit/Rollback)
- Program.cs에 DI 등록 (AddScoped)

Closes #18
2026-02-09 14:44:31 +09:00
3293c38360 feat: SpmsException 및 글로벌 예외 처리 미들웨어 구현 (#16)
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/17
2026-02-09 05:37:59 +00:00
SEAN
a9f6a436c4 feat: SpmsException 및 글로벌 예외 처리 미들웨어 구현 (#16) 2026-02-09 14:33:37 +09:00
f380b348a9 feat: ApiResponse<T> 공통 응답 포맷 구현 (#14)
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/15
2026-02-09 05:27:31 +00:00
SEAN
4f0a4b9bf9 feat: ApiResponse<T> 공통 응답 포맷 구현 (#14) 2026-02-09 13:57:37 +09:00
5d8e30494e feat: Domain Interface 정의 — Repository, UnitOfWork (#12)
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/13
2026-02-09 04:51:52 +00:00
SEAN
da2001c79b feat: Domain Interface 정의 — Repository, UnitOfWork (#12)
IRepository<T> Generic CRUD, IUnitOfWork 트랜잭션,
도메인별 특화 Repository 인터페이스 7종 정의
(Service, Admin, Device, Message, PushLog, File, Stat)
2026-02-09 13:46:06 +09:00
c387aa4465 feat: Domain Enum 및 에러 코드 상수 정의 (#10)
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/11
2026-02-09 04:35:51 +00:00
SEAN
8b6fd84b98 feat: Domain Enum 및 에러 코드 상수 정의 (#10)
- 12개 Enum 추가 (Platform, ServiceStatus, SubTier, AdminRole, DeviceStatus, MessageStatus, PushResult, PaymentStatus, TargetType, LinkType, WebhookEvent, WebhookStatus)
- ErrorCodes 상수 클래스 추가 (Error_Codes.md 기반 3자리 코드)
- Entity byte 필드를 Enum 타입으로 변경 (Service, Admin, Device, PushSendLog, WebhookLog, Payment)
- WebhookLog.EventType 컬럼 타입 변경 (varchar→tinyint) 마이그레이션 적용
2026-02-09 13:31:50 +09:00
41c9667e5a feat: Domain Entity 정의 및 DB 스키마 구축 (#8)
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/9
2026-02-09 04:03:02 +00:00
SEAN
cfce5ca8b8 feat: Domain Entity 정의 및 DB 스키마 구축 (#8)
- 12개 Domain Entity 클래스 정의 (DB_Schema.md 기반)
- 12개 EF Core Fluent API Configuration 구현
- AppDbContext에 DbSet 12개 등록 및 Configuration 자동 적용
- Soft Delete 글로벌 쿼리 필터 적용 (Service, Admin, Message)
- DesignTimeDbContextFactory 추가 (EF Core CLI 지원)
- InitialCreate 마이그레이션 생성 및 spms_dev DB 적용 완료
- .gitignore에 Documents/, CLAUDE.md, TASKS.md, .mcp.json 추가

Closes #8
2026-02-09 11:46:33 +09:00
3d88bc6040 refactor: 클린 아키텍쳐 적용 및 프로젝트 분리, 문서 작성 (Closes #5)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/6
2026-01-21 08:17:46 +00:00
362b0b0c5c Merge branch 'develop' into refactor/#5-apply-architecture 2026-01-21 08:16:51 +00:00
SEAN
ad97150b30 refactor: 개발 문서 적용 (Close #5) 2026-01-21 17:12:50 +09:00
SEAN
f02a3884a2 refactor: 클린 아키텍쳐 적용 및 프로젝트 분리 (Resolves #5)
1. 프로젝트 이름 변경
2. 계층 추가
3. 설정 파일 수정
2026-01-19 16:37:50 +09:00
7ad5c54cfa chore: JenkinsFile 수정 (Close #2)
All checks were successful
SPMS_API/pipeline/head This commit looks good
2026-01-19 04:28:36 +00:00
SEAN
1245a84fca Merge remote-tracking branch 'origin/hotfix/#2-setup-staging' into hotfix/#2-setup-staging
All checks were successful
SPMS_API/pipeline/head This commit looks good
2026-01-19 13:04:07 +09:00
SEAN
d7b9ed032d chore: Jenkinsfile 수정 (#2) 2026-01-19 13:03:00 +09:00
SEAN
5f9b648557 chore: Jenkinsfile 수정 (#2)
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
2026-01-19 13:00:15 +09:00
SEAN
eddaf5e368 chore/changed-jenkinsfile
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
1. 젠킨스 파일 변경
2. 패키지 설치
2026-01-19 12:53:02 +09:00
SEAN
db999a53b8 [] Front 연결
All checks were successful
SPMS_API/pipeline/head This commit looks good
2025-12-03 15:04:17 +09:00
SEAN
b2e022a685 [] 새 프로젝트 생성
All checks were successful
SPMS_API/pipeline/head This commit looks good
2025-12-03 13:07:18 +09:00
SEAN
34a3c043e8 [📝] Jenkinsfile 수정
All checks were successful
SPMS_API/pipeline/head This commit looks good
2025-12-03 12:53:51 +09:00
SEAN
5cd2b86923 [📝] Jenkinsfile 수정
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
2025-12-03 12:18:12 +09:00
SEAN
9df3845327 [📝] GIT init
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
2025-12-03 12:12:45 +09:00