Equipes
As equipes permitem que várias pessoas sejam donas em conjunto de um conjunto de aplicações. Paridade com o Discord — os mesmos quatro papéis, o mesmo modelo de transferência em via única, mais uma lista de testadores que passa pela barreira público/privado em apps em desenvolvimento.
Papéis
| Papel | Pode editar o app | Pode gerenciar a equipe | Pode excluir o app |
|---|---|---|---|
| Proprietário | Sim | Sim (incl. transferir a propriedade) | Sim |
| Admin | Sim | Sim (integrantes, testadores) | Não |
| Desenvolvedor | Sim | Não | Não |
| Somente leitura | Não | Não | Não |
O papel efetivo em um app é o papel na equipe, a menos que quem faz a solicitação também seja o dono pessoal (origem da transferência) — nesse caso vale o acesso de nível Proprietário.
Convites
- Alguém com papel Admin ou acima envia um convite por e-mail para uma conta GameVox existente.
- Quem recebe vê um convite pendente na página inicial do portal e aceita ou recusa.
- Convites podem ser retirados a qualquer momento antes de serem aceitos.
- Para reenviar: retire e convide de novo. (Não há um botão específico de “reenviar”.)
Transferência de aplicação
Apps pessoais podem ser transferidos para uma equipe da qual você é dono ou admin. A caixa de transferência exige digitar o nome do app para confirmar. Após a transferência:
- A equipe passa a ser dona do registro do app.
owner_user_idé limpo;owner_team_idé definido. - Todos os tokens existentes (tokens de bot, segredos de cliente, tokens de webhook) continuam válidos — a transferência não os rotaciona.
- Os prefixos de armazenamento do ícone e da capa não mudam — os recursos seguem funcionando sem reenvio.
- A transferência é em via única (igual ao Discord). Para “desfazer”, crie um novo app pessoal e migre os dados manualmente.
Ícones de equipe
Enviados na aba Geral da equipe. O mesmo widget de envio dos ícones de app, com prefixo próprio no S3 (team-icons/{team_id}/). Aparece na lista de equipes, no cabeçalho de detalhe da equipe e como uma pequena sobreposição nos cartões das apps dessa equipe.
Testadores do app
A lista de testadores é por aplicação (não por equipe), então cada app de uma equipe tem a sua. Testadores podem instalar um app privado (com a chave de público desligada) usando a URL de instalação OAuth normal — quem não está na lista recebe uma página de não encontrado.
- 100 testadores por aplicação.
- Convida-se por ID de usuário do GameVox ou por e-mail. Convidar a si mesmo é aceito automaticamente (você já é de confiança).
- Testadores não recebem nenhum acesso à página da aplicação no portal — só a permissão de instalar.
- Remover um testador não revoga os tokens que ele já tenha obtido via OAuth; revogue-os separadamente.
Endpoints (portal)
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}