feat: 계정 Web Push 전달 기반과 사건 판정을 추가한다

게임 상태 변경과 같은 트랜잭션에 내구성 outbox를 기록하고 Gateway가 계정 설정과 기기 구독으로 fan-out하도록 한다. 전역 기본값은 비활성으로 유지하며 migration과 회귀 테스트를 함께 추가한다.
This commit is contained in:
2026-08-23 13:16:07 +00:00
parent f858806295
commit 7bc3213b03
34 changed files with 1964 additions and 9 deletions
+9
View File
@@ -36,6 +36,7 @@ GATEWAY_API_PORT=13000
GATEWAY_INTERNAL_API_URL=http://127.0.0.1:13000
# 실행 중 Game API가 누락된 관리자 아이콘 초기화를 Gateway 원장에서 다시 확인하는 주기입니다(최소 1000ms).
ACCOUNT_ICON_RESET_RECONCILE_INTERVAL_MS=30000
WEB_PUSH_OUTBOX_POLL_MS=1000
GATEWAY_PUBLIC_URL=http://localhost:13000
GATEWAY_REDIS_PREFIX=sammo:gateway
GATEWAY_DB_SCHEMA=public
@@ -64,6 +65,14 @@ KAKAO_REST_KEY=your-kakao-rest-key
KAKAO_ADMIN_KEY=your-kakao-admin-key
KAKAO_REDIRECT_URI=http://localhost:13000/oauth/kakao/callback
# Web Push is prepared but globally disabled by default. The private VAPID key is
# a server secret and must never be exposed through a VITE_* variable or committed.
WEB_PUSH_ENABLED=false
WEB_PUSH_POLL_INTERVAL_MS=1000
# WEB_PUSH_VAPID_SUBJECT=mailto:operator@example.invalid
# WEB_PUSH_VAPID_PUBLIC_KEY=replace-with-vapid-public-key
# WEB_PUSH_VAPID_PRIVATE_KEY_FILE=/run/secrets/web_push_vapid_private_key
# Game API
GAME_API_HOST=0.0.0.0
GAME_API_PORT=14000