Équipes
Les équipes permettent à plusieurs personnes de co-détenir un ensemble d’applications. Parité Discord : les mêmes quatre rôles, le même modèle de transfert à sens unique, plus une liste de testeurs qui contourne la barrière public/privé pour les apps en développement.
Rôles
| Rôle | Peut modifier l’app | Peut gérer l’équipe | Peut supprimer l’app |
|---|---|---|---|
| Propriétaire | Oui | Oui (y c. transfert de propriété) | Oui |
| Admin | Oui | Oui (membres, testeurs) | Non |
| Développeur | Oui | Non | Non |
| Lecture seule | Non | Non | Non |
Le rôle effectif sur une app correspond au rôle dans l’équipe, sauf si la personne qui fait la demande en est aussi propriétaire à titre personnel (source du transfert) — auquel cas l’accès de niveau Propriétaire s’applique.
Invitations
- Une personne Admin ou au-dessus envoie une invitation par e-mail à un compte GameVox existant.
- La personne invitée voit une invitation en attente sur l’accueil de son portail et l’accepte ou la refuse.
- Les invitations peuvent être retirées à tout moment avant acceptation.
- Pour renvoyer : retirez puis réinvitez. (Il n’y a pas de bouton « renvoyer » dédié.)
Transfert d’application
Les apps personnelles peuvent être transférées vers une équipe dont vous êtes propriétaire ou admin. La boîte de dialogue de transfert demande de saisir le nom de l’app pour confirmer. Après le transfert :
- L’équipe détient l’enregistrement de l’app.
owner_user_idest vidé ;owner_team_idest renseigné. - Tous les jetons existants (jetons de bot, secrets client, jetons de webhook) restent valides — le transfert ne les renouvelle pas.
- Les préfixes de stockage de l’icône et de la couverture restent inchangés — les ressources continuent de fonctionner sans nouveau téléversement.
- Le transfert est à sens unique (comme sur Discord). Pour « revenir en arrière », créez une nouvelle app personnelle et migrez les données à la main.
Icônes d’équipe
Téléversées depuis l’onglet Général de l’équipe. Même widget de téléversement que pour les icônes d’app, avec un préfixe S3 distinct (team-icons/{team_id}/). S’affiche sur la liste des équipes, dans l’en-tête du détail d’équipe, et en petite superposition sur les cartes des apps de cette équipe.
Testeurs de l’app
La liste de testeurs est par application (pas par équipe), donc chaque app d’une équipe a la sienne. Les testeurs peuvent installer une app privée (interrupteur public désactivé) via l’URL d’installation OAuth habituelle — les personnes absentes de la liste obtiennent une page introuvable.
- 100 testeurs par application.
- On invite par ID utilisateur GameVox ou par e-mail. Vous inviter vous-même est accepté automatiquement (vous êtes déjà de confiance).
- Les testeurs n’obtiennent aucun accès à la page de l’application dans le portail — seulement la permission de l’installer.
- Retirer un testeur ne révoque pas les jetons qu’il aurait déjà obtenus via OAuth ; révoquez-les séparément.
Endpoints (portail)
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}