docs: 게임 취소 운영 경계 문서화

전용 권한, 선택 가능한 기록 정책, 유산 정산식, CANCELLED 상태와 실패·재시도 운영 절차를 관리자·릴리스 문서에 기록한다.
This commit is contained in:
2026-08-18 13:31:49 +00:00
parent 7bef2af23a
commit e2111b1168
3 changed files with 51 additions and 1 deletions
+22
View File
@@ -16,6 +16,7 @@ Gateway 관리자 콘솔은 `/gateway/admin`에서 시작합니다. 공개 로
| 서버 상태·설정 | `/gateway/admin/servers/:profileName` | 해당 profile의 공개 정보, 계정 정책, 실행 상태와 게임 운영 동작 |
| 버전 업데이트 | `/gateway/admin/servers/:profileName/version` | 현 DB를 보존하는 profile 코드·migration 배포 |
| 시나리오 초기화 | `/gateway/admin/servers/:profileName/scenario` | 현재 배포 버전 또는 새 버전으로 현 시즌 DB와 시나리오 교체 |
| 게임 취소 | `/gateway/admin/servers/:profileName/cancel` | 잘못 연 게임을 닫고 기록·유산 포인트를 취소 정책에 따라 원자적으로 정산 |
| Gateway 릴리스 | `/gateway/admin/releases` | Gateway control plane 배포와 rollback |
| 공지 · 접속 | `/gateway/admin/system` | 로비 공지와 관리자 세션 연결 |
| 감사 로그 | `/gateway/admin/audit` | 관리자 조치 결과, 대상과 사유 조회 |
@@ -45,6 +46,20 @@ Gateway 관리자 콘솔은 `/gateway/admin`에서 시작합니다. 공개 로
중단되어도 관리자 capability와 서버 메뉴를 함께 기다리게 하지 않습니다.
- `DEPLOY`는 현재 game DB를 유지하고 migration/build를 적용합니다. `RESET`
현재 시즌 데이터를 새 시나리오로 교체하며 장기 보존 자료를 유지합니다.
- `CANCEL_GAME``RESET`과 다른 비가역 운영 작업입니다. `PREOPEN`, `RUNNING`,
`PAUSED` 게임만 요청할 수 있고, migration 준비 후 profile process를 정지한
다음 한 DB transaction에서 기록과 유산 포인트를 정산합니다. 성공한 profile은
사용자 접근·턴 진행·운영자 재개가 모두 금지된 `CANCELLED`가 되며, 다시
사용하려면 새 시나리오 초기화가 필요합니다.
- 취소 화면에서 기수 이력은 `버려진 게임`으로 남기거나 `ng_games` 행을 실제
삭제할 수 있습니다. 플레이 장수의 `OldGeneral` 기록도 독립적으로 보존·삭제할
수 있습니다. 버려진 기록은 원래 season을 감사 자료에만 보관하고 과거 플레이
화면에서는 정식 기수 번호·왕조·승자 기록으로 표시하지 않습니다.
- 유산 포인트는 게임 오픈 시점(또는 기존 게임의 첫 활동 시점) 원금을 먼저
고정합니다. 취소 시 게임 중 지출과 현재 잔액에 의존하지 않고
`오픈 원금 + floor(게임 중 획득분 × 보전율 / 100)`으로 정산합니다. 따라서
지출분은 항상 전액 돌아오며 신규·복귀 지급과 게임 중 보상도 관리자가 고른
0~100% 보전율의 적용 대상입니다.
- 시나리오 초기화는 기본적으로 서버에 현재 게시된 commit을 사용하므로 Git
업데이트가 필요하지 않습니다. 새 branch/commit과 함께 초기화하려면 초기화
권한과 버전 배포 권한이 모두 필요합니다.
@@ -79,6 +94,7 @@ Gateway 관리자 콘솔은 `/gateway/admin`에서 시작합니다. 공개 로
| `admin.profiles.settings:<name>` | 표시 정보·리셋 기본 옵션·Kakao 미인증 접근/장수 생성 유예 |
| `admin.profiles.deploy:<name>` | DB를 유지하는 Git 버전 업데이트, 초기화와 새 버전 결합 |
| `admin.scenarios.reset:<name>` | 현재 배포 버전으로 시나리오 초기화 |
| `admin.games.cancel:<name>` | 진행 게임 취소, 기록 옵션과 유산 포인트 보전율 확정 |
| `admin.reset.schedule:<name>` | 허용된 시나리오 초기화를 미래 시각에 예약 |
| `admin.releases.manage` | profile과 분리된 Gateway control plane 배포·rollback |
@@ -86,6 +102,12 @@ Gateway 관리자 콘솔은 `/gateway/admin`에서 시작합니다. 공개 로
다른 metadata action이어서 제거했습니다. 초기화와 예약은 시나리오 초기화 탭의
`GatewayOperation(type=RESET)`만 사용합니다.
`admin.games.cancel``admin.profiles.runtime`, `admin.scenarios.reset`이나
기존 운영자 role에 포함되는 포괄 권한이 아닙니다. capability catalog의 별도
`CRITICAL` 권한이며 superuser 또는 명시적으로 범위를 받은 최고관리자만 사용합니다.
브라우저의 확인 입력과 confirm은 오조작 방지 UI이고, 실제 경계는 Gateway API의
capability 검사와 orchestrator의 상태·lease 검사입니다.
## Kakao 없는 특수 계정 접근
운영자 role(`superuser`, `admin`, `admin.*`)은 별도 grant 없이 모든 game