Skip to content

Commit f1b4cd0

Browse files
committed
feat: remove GUILD_PRESENCES intent and add PRIVACY.md
1 parent 4a9837c commit f1b4cd0

2 files changed

Lines changed: 90 additions & 2 deletions

File tree

‎PRIVACY.md‎

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# Politique de confidentialité — AsyncSupport (TicketBot)
2+
3+
**Dernière mise à jour : 15 juin 2026**
4+
5+
## 1. Introduction
6+
7+
AsyncSupport (le « Bot ») est un outil de gestion de tickets de modération pour le serveur Discord « Async - Community ». Cette politique de confidentialité décrit comment le Bot traite les données personnelles des utilisateurs.
8+
9+
## 2. Responsable du traitement
10+
11+
Le responsable du traitement est l'équipe de modération du serveur Discord « Async - Community ». Pour toute question relative à vos données, contactez la modération via le serveur : https://discord.gg/graven.
12+
13+
## 3. Données collectées
14+
15+
Le Bot collecte et traite les catégories de données suivantes :
16+
17+
| Catégorie | Données | Finalité |
18+
|---|---|---|
19+
| Identifiants Discord | ID utilisateur, nom d'utilisateur (username), tag (ex. `utilisateur#1234`), avatar URL | Création et gestion des tickets, identification dans les salons et rapports |
20+
| Contenu des messages | Texte des messages, pièces jointes, embeds, horodatages | Transmission des messages entre l'utilisateur et la modération, archivage des tickets |
21+
| Métadonnées de messages | Identifiants de messages, messages épinglés, réactions | Gestion des salons de ticket et accusés de réception |
22+
23+
## 4. Finalités du traitement
24+
25+
Les données sont traitées pour les seules finalités suivantes :
26+
27+
- **Ouverture et gestion des tickets** : permettre aux utilisateurs de contacter la modération et aux modérateurs de répondre.
28+
- **Transmission des messages** : relayer les messages entre l'utilisateur (en message privé) et le salon de ticket (via webhook Discord).
29+
- **Archivage des tickets** : à la fermeture d'un ticket, un rapport JSON contenant l'historique complet des échanges est envoyé dans un salon d'archives dédié.
30+
- **Rétablissement des tickets après redémarrage** : le Bot recharge les tickets existants en lisant les sujets des salons textuels de la catégorie tickets.
31+
32+
## 5. Base légale du traitement (RGPD)
33+
34+
Le traitement est fondé sur :
35+
36+
- **L'intérêt légitime** (Article 6.1.f RGPD) : permettre la modération et le support utilisateur sur le serveur Discord.
37+
- **Le consentement** (Article 6.1.a RGPD) : l'utilisateur initie volontairement l'ouverture d'un ticket via la commande `/ticket`.
38+
39+
## 6. Destinataires des données
40+
41+
Les données peuvent être transmises aux destinataires suivants :
42+
43+
- **Discord Inc.** : les messages transités par le Bot utilisent l'API Discord et les webhooks Discord. Consultez la [politique de confidentialité de Discord](https://discord.com/privacy).
44+
- **Équipe de modération du serveur** : les modérateurs ayant accès aux salons de tickets et aux salons d'archives peuvent consulter l'ensemble des données échangées.
45+
- **Service de visualisation de tickets (optionnel)** : si configuré, une URL vers le rapport JSON peut être générée via un service externe défini par `config.reader.base_url`.
46+
47+
## 7. Stockage et conservation
48+
49+
| Type de stockage | Durée de conservation |
50+
|---|---|
51+
| Mémoire vive (HashMap) | Durée de fonctionnement du Bot. Les tickets en cours sont perdus au redémarrage. |
52+
| Salons Discord (tickets) | Durée d'ouverture du ticket. Les salons sont supprimés à la fermeture. |
53+
| Rapports JSON (archives) | Durée indéterminée dans le salon d'archives Discord. La modération peut les supprimer manuellement. |
54+
| Fichiers joints ré-hébergés | Durée indéterminée dans le salon d'attachements. La modération peut les supprimer manuellement. |
55+
56+
**Aucune base de données externe** n'est utilisée. Les données n'existent que dans l'infrastructure Discord et la mémoire du Bot.
57+
58+
## 8. Sécurité
59+
60+
- Le token du Bot est stocké dans un fichier de configuration local (`config.yml`) et n'est jamais exposé.
61+
- Les messages sont transmis via l'API Discord chiffrée (TLS).
62+
- Le Bot n'écrit pas de journalisation contenant les données personnelles des utilisateurs.
63+
64+
## 9. Vos droits (RGPD)
65+
66+
Conformément au RGPD, vous disposez des droits suivants :
67+
68+
- **Droit d'accès** : demandez à la modération une copie des données vous concernant.
69+
- **Droit de rectification** : vos données Discord sont gérées via votre compte Discord.
70+
- **Droit à l'effacement** : fermez votre ticket ou demandez à la modération de supprimer les rapports d'archives.
71+
- **Droit à la limitation du traitement** : vous pouvez cesser d'utiliser le Bot en ne lançant pas la commande `/ticket`.
72+
- **Droit à la portabilité** : demandez une copie de vos données archivées à la modération.
73+
- **Droit d'opposition** : vous pouvez vous opposer au traitement en ne lançant pas la commande `/ticket`.
74+
75+
Pour exercer ces droits, contactez la modération du serveur Discord « Async - Community » : https://discord.gg/graven.
76+
77+
## 10. Transferts hors UE
78+
79+
Les données sont traitées via l'infrastructure Discord, qui peut impliquer des transferts de données hors de l'Union européenne. Discord s'appuie sur les clauses contractuelles types (CCT) de la Commission européenne pour ces transferts. Consultez la [politique de confidentialité de Discord](https://discord.com/privacy) pour plus d'informations.
80+
81+
## 11. Modifications de la politique
82+
83+
Cette politique peut être mise à jour à tout moment. La date de « Dernière mise à jour » en tête de document indique la version en vigueur.

‎src/main/java/yt/graven/gravensupport/configuration/BotConfig.java‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,13 @@ public JDA getJDAInstance() {
5555
throw new BotStartupException("No token provided!");
5656
}
5757

58-
EnumSet<GatewayIntent> allIntentsBecauseWhyNot = EnumSet.allOf(GatewayIntent.class);
59-
return JDABuilder.create(allIntentsBecauseWhyNot).setToken(token).build();
58+
EnumSet<GatewayIntent> intents = EnumSet.of(
59+
GatewayIntent.GUILD_MESSAGES,
60+
GatewayIntent.DIRECT_MESSAGES,
61+
GatewayIntent.GUILD_MEMBERS,
62+
GatewayIntent.MESSAGE_CONTENT
63+
);
64+
return JDABuilder.create(intents).setToken(token).build();
6065
}
6166

6267
private Path getDefaultConfigFromInsideJar() {

0 commit comments

Comments
 (0)