GrillBot je aplikace s vyhrazenými právy. Zdrojový kód aplikace je veřejný ke čtení a je umožněno do něj přispívat bez omezení. Použití částí kódu z aplikace je umožněno za podmínky uvedení autora u zdrojového kódu.
Administrátor discord serveru je oprávněn přidat běžící instanci aplikace až po písemném povolení vlastníkem aplikace. Současně také spuštění vlastní instance za jiným účelem, než vývoj aplikace je možné až po písemném povolení vlastníkem.
Vlastníkem aplikace je skupina osob, kteří jsou členy organizace GrillBot v GitHub. Tyto osoby mohou udělit povolení k užívání aplikace.
Uživatel, který se připojí na Discord server, kde se také nachází bot automaticky souhlasí se sběrem dat popsaných na této stránce.

Sběr a uchovávání dat

Za účelem správného chodu GrillBot musí uchovávat v databázi informace o uživatelích na discord serveru, záznamy (logy) a další.

Data jsou v databázi uchovávany na základě jejich potřeby po různou dobu.

Administrátor serveru je oprávněn provádět pravidelné zálohy celé databáze (kromě výše uvedené automatizované archivace) za účelem zajištění provozuschopnosti služby. Administrátor serveru na kterém běží instance aplikace sám rozhodne, jak dlouho bude držet zálohy.

Unverify (dočasné odebrání přístupu)

Unverify uchovává k uživateli jeho aktuální stav, pokud má uživatel zrovna odebraný přístup. Aktuální stav unverify je po jeho skončení automaticky fyzicky smazán. K aktuálnímu stavu jsou uchovány následující data:

Logování unverify

Kromě aktuálního stavu unverify je také uchováván log provedených operací nad unverify. Tyto záznamy jsou uchovávány v databázi k tomu určené tabulce. Uchovávají se tyto typy záznamů:

Každý záznam bez ohledu na jeho typ (z výše uvedených) obsahuje následující data: Mezi konkrétní data se řadí následující: K záznamům o odebrání přístupu je možné přistoupit pomocí rozhraní REST API, případně pomocí uživatelského rozhraní, které využívá tohoto REST API. Uživatelé mají přístup k těm záznamům, které ukazují provedení nad jeho účtem. Oprávněné osoby mohou vidět všechny záznamy.

Obecné informace o uživateli

GrillBot v databázi o samotném uživateli eviduje následující:

Každý uživatel má přístup ke svým informacím pomocí příkazu /me, nebo pomocí veřejné administrace. Oprávněné osoby mají přístup ke všem údajům o uživatelích a to pomocí příkazu /user info, nebo pomocí privátní webové administrace.

Statistika používání emotikonů

Statistika o používání různých emotikonů. Vytváří se statistika pouze k emotikonům, ke kterým má bot přístup. Tato statistika se sbírá ze zpráv i reakcí. Neuchovávají se unicode emoji. U každé statistiky je uchováno:

O správu statistisk emotikonů se stará služba EmoteService

Upozorňování

Aby bylo možné provádět upozornění uživatele k určitému datu za pomocí feature "Remind", pak musí bot ukládat následující:

O upozorňování se stará služba RemindService

Informace o serveru

K zajištění konzistence dat je zapotřebí pro každý discord server uchovávat:

Informace o uživateli na serveru

Pro každého uživatele na serveru je nutné evidovat (kromě výše uvedených informací o uživateli jako takovém):

Přezdívky

Provádí se evidence každé přezdívky, kterou kdy uživatel měl na serveru. Eviduje se:

Duplicitní přezdívky se nezapisují, tudíž z těchto dat nelze vyčíst, kdy uživatel měl kterou přezdívku. To lze pouze s pomocí audit logu.

Body

Aktivita za kterou uživatel dostává body se ukládá formou transakcí. 1 transakce reprezentuje zprávu nebo reakci za kterou uživatel obdržel body.
Na body se vztahuje expirace, která je nyní určena na dobu 1 roku od data a času přiřazení bodů. Všechny transakce starší než 1.5 roku budou sloučeny do jedné velké transakce. Sloučené transakce se zohledňují pouze v leaderboardu ve veřejné administraci.
Oprávněné osoby mají možnost si zobrazit transakce v privátní administraci (běžné i sloučené). Oprávněné osoby mají také možnost provést servisní úkony s body. Mohou uživateli "darovat" body, převést body od jiného uživatele a v případě nutnosti také transakce mazat. O správu bodů se stará služba PointsService

Kanály

Pro každý textový kanál, který se nachází na serveru a byla na něm provedena nějaká aktivita se ukládá:

Za každého uživatele jsou pak u kanálu uloženy následující data:

Pozvánky

Když se uživatel připojí na server, tak se automaticky provede detekce, kterou pozvánku použil. Tato pozvánka je poté uložena v databázi. K této pozvánce se uchovává:

Pokud se uživatel připojí pomocí tzv. Vanity url (speciální pozvánky s vlastním (negenerovaným) kódem), pak se u takové pozvánky neukládá kdo takovou pozvánku založil a kdy ji založil.

Logování provozu

Logování provozu se provádí za účelem zabezpečení bezproblémového chodu serveru a případného dohledávání nepovolených aktivit. Logování probíhá formou událostí různých typů. O správu logování provozu se stará služba AuditLogService. Tyto události jsou:

Typ Popis
Info Textová zpráva informačního charakteru. Zapisuje se zde například informace o načtených pozvánek při startu.
Warning Varování, že došlo k nějaké události, které by měla být věnována pozornost, ale nemá fatální charakter.
Error Při běhu aplikace došlo k chybě.
ChannelCreated, ChannelDeleted, ChannelUpdated Vytvoření/Smazání/Úprava kanálu
EmojiDeleted Smazání emotikonu ze serveru.
OverwriteCreated, OverwriteDeleted, OverwriteUpdated Vytvoření/Smazání/Úprava přístupové výjimky do kanálu
Unban Odblokování uživatele a umožnění se připojit na server.
MemberUpdated Uživatel aktualizován (přezdívka, nebo umlčení v hlasovém kanálu, nebo vlastnosti v databázi)
MemberRoleUpdated Role uživatele byly aktualizovány
GuildUpdated Vlastnosti serveru byly upraveny
UserLeft Uživatel opustil server
MessageEdited Obsah zprávy byl upraven
MessageDeleted Zpráva byla na serveru smazána
InteractionCommand Provedení integrovaného příkazu (Slash command, Message command, User command)
ThreadDeleted, ThreadUpdated Smazání a úpravy vlákna
JobCompleted Dokončení automaticky naplánované úlohy
API Požadavek na REST API
RoleDeleted Role byla na serveru smazána.
U všech událostí se evidují tyto společné vlastnosti:

Popis jednotlivých událostí

Většina událostí obsahuje v záznamu také data specifické k určitému typu události. Ve většině případů se jedná o JSON data.

Zpřístupnění

Ke všem výše uvedeným informacím mají přístup pouze oprávněné osoby. Všechny informace jsou čitelné pomocí webové administrace. Oprávněná osoba může provést smazání záznamu pokud k tomu má patřičný důvod.
Uživatel má nárok k výmazu pouze informací o sobě samém. K výmazu dojde formou anonymizace. Z technických důvodů není možné provést ostré smazání dat. Smazání všech informací může provést pouze oprávněná osoba a na základě písemné žádosti.