← 문서
팀
팀을 사용하면 여러 개발자가 여러 애플리케이션을 함께 소유할 수 있습니다. Discord와 동등하게 같은 네 가지 역할, 같은 단방향 이전 모델을 쓰며, 개발 중인 앱의 공개/비공개 제한을 우회하는 앱 테스터 목록이 추가됩니다.
역할
| 역할 | 앱 편집 가능 | 팀 관리 가능 | 앱 삭제 가능 |
|---|---|---|---|
| 소유자 | 예 | 예(소유권 이전 포함) | 예 |
| 관리자 | 예 | 예(구성원, 테스터) | 아니요 |
| 개발자 | 예 | 아니요 | 아니요 |
| 읽기 전용 | 아니요 | 아니요 | 아니요 |
앱에 대한 실제 역할은 팀에서의 역할입니다. 다만 요청한 사람이 개인 소유자(이전의 출발점)이기도 하다면 소유자 수준의 접근이 적용됩니다.
초대
- 관리자 이상이 기존 GameVox 사용자에게 이메일로 초대를 보냅니다.
- 초대받은 사람은 포털 홈에서 대기 중인 초대를 보고 수락하거나 거절합니다.
- 초대는 수락되기 전이라면 언제든 철회할 수 있습니다.
- 다시 보내려면 철회한 뒤 다시 초대하세요. (별도의 “다시 보내기” 버튼은 없습니다.)
애플리케이션 이전
개인 앱은 본인이 소유자이거나 관리자인 팀으로 이전할 수 있습니다. 이전 대화상자에서는 확인을 위해 앱 이름을 입력해야 합니다. 이전 후에는 다음과 같습니다.
- 앱 레코드를 팀이 소유합니다.
owner_user_id가 비워지고owner_team_id가 설정됩니다. - 기존 토큰(봇 토큰, 클라이언트 시크릿, 웹훅 토큰)은 모두 유효합니다. 이전으로 교체되지 않습니다.
- 앱 아이콘과 커버의 저장 경로 접두사는 그대로여서, 다시 업로드하지 않아도 계속 동작합니다.
- 이전은 단방향입니다(Discord와 같습니다). “되돌리려면” 새 개인 앱을 만들고 데이터를 직접 옮겨야 합니다.
팀 아이콘
팀의 “일반” 탭에서 업로드합니다. 앱 아이콘과 같은 이미지 업로드 위젯을 쓰지만 S3 접두사는 별도입니다(team-icons/{team_id}/). 팀 목록, 팀 상세 헤더, 그리고 그 팀이 소유한 앱 카드의 작은 오버레이에 표시됩니다.
앱 테스터
테스터 목록은 팀이 아니라 애플리케이션 단위이므로, 팀의 각 앱이 저마다 목록을 가집니다. 테스터는 일반 OAuth 설치 URL로 비공개 앱(공개 토글이 꺼진 앱)을 설치할 수 있으며, 목록에 없는 사람은 “찾을 수 없음” 페이지를 보게 됩니다.
- 애플리케이션당 테스터 100명.
- 초대는 GameVox 사용자 id나 이메일로 합니다. 자신을 초대하면 자동으로 수락됩니다(이미 신뢰하는 상대이기 때문입니다).
- 테스터에게는 애플리케이션의 포털 페이지 접근 권한이 주어지지 않습니다. 설치 권한만 부여됩니다.
- 테스터를 제거해도 그 사람이 OAuth로 이미 받은 토큰은 무효화되지 않습니다. 필요하면 따로 취소하세요.
엔드포인트(포털)
GET /developer-portal/teams
POST /developer-portal/teams
GET /developer-portal/teams/{id}
PATCH /developer-portal/teams/{id}
DELETE /developer-portal/teams/{id}
GET /developer-portal/teams/{id}/members
POST /developer-portal/teams/{id}/members {email, role}
PATCH /developer-portal/teams/{id}/members/{user_id} {role}
DELETE /developer-portal/teams/{id}/members/{user_id}
POST /developer-portal/applications/{id}/transfer {team_id, app_name}
GET /developer-portal/applications/{id}/testers
POST /developer-portal/applications/{id}/testers {email|user_id}
DELETE /developer-portal/applications/{id}/testers/{user_id}