Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ A logging bot sees a lot, so Sentinel is designed to limit what a compromised co

- **Read-only Discord capability policy.** The bot process allows only REST reads, posting log messages, leaving a server and changing its own nickname and banner in a server (Brand plan; any other member field is rejected). Bans, kicks, timeouts, role/channel/message changes, webhooks and AutoMod changes are blocked in-process, regardless of the permissions given to the bot role. A build-time check (`policy:check`) rejects code that tries to bypass it.
- **Separated secrets.** The Discord token exists only in the bot container; the web container has no application secrets; secrets live in root-only files on the host.
- **Encryption at rest.** Message content, attachments, embeds, event details and summaries, and message authors are encrypted with AES-256-GCM; pre-deploy database backups are encrypted with age to a key kept off the server.
- **Encryption at rest.** Message content, attachments, embeds, event details and summaries, and message authors are encrypted with AES-256-GCM, also inside database backups. `sentinel-deploy` can additionally encrypt whole backups with age (see the deployment guide).
- **Data minimisation.** No online status, activities or typing are recorded. History expires with the plan's retention, and when the bot is removed from a server all of that server's data and settings are deleted 30 days later unless it is added back.
- **Least-privilege database.** Distinct PostgreSQL roles for API and bot; the bot cannot read sessions, panel audit or super-admin tables. CI verifies these grants on every change.
- **Isolation.** Segmented Docker networks, private authenticated Redis, read-only non-root containers with `cap_drop: ALL` and resource limits, no Docker socket, egress blocked towards host/LAN.
Expand Down
4 changes: 2 additions & 2 deletions apps/web/app/_components/LegalPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ const copy: Record<Locale, { kicker: string; title: string; intro: string; updat
]
] },
{ title: 'How we protect it', body: [
'Message content, attachments, embeds, event details and summaries, and the names of message authors are encrypted at rest with AES-256-GCM; database backups are encrypted with a key kept off the server. Session tokens are stored only as hashes. The bot cannot perform moderation actions, and each component has its own database permissions. The code is open source, so these measures can be verified on GitHub.'
'Message content, attachments, embeds, event details and summaries, and the names of message authors are encrypted at rest with AES-256-GCM, also inside database backups, which are readable only by the operator. Session tokens are stored only as hashes. The bot cannot perform moderation actions, and each component has its own database permissions. The code is open source, so these measures can be verified on GitHub.'
] },
{ title: 'Sharing', body: [
'We do not sell data and we do not use it for advertising or profiling, or to train artificial intelligence or machine-learning models. Data is shared only with the providers needed to run the service: Discord (the platform the bot works on), Cloudflare (network delivery and protection) and our hosting provider. Log messages are posted only in the channels configured by each server’s administrators.'
Expand Down Expand Up @@ -168,7 +168,7 @@ const copy: Record<Locale, { kicker: string; title: string; intro: string; updat
]
] },
{ title: 'Come li proteggiamo', body: [
'Contenuto dei messaggi, allegati, embed, dettagli e riepiloghi degli eventi e i nomi degli autori dei messaggi sono cifrati con AES-256-GCM; i backup del database sono cifrati con una chiave conservata fuori dal server. I token di sessione sono salvati solo come hash. Il bot non può eseguire azioni di moderazione e ogni componente ha permessi separati sul database. Il codice è open source, quindi queste misure sono verificabili su GitHub.'
'Contenuto dei messaggi, allegati, embed, dettagli e riepiloghi degli eventi e i nomi degli autori dei messaggi sono cifrati con AES-256-GCM, anche all’interno dei backup del database, accessibili solo al gestore. I token di sessione sono salvati solo come hash. Il bot non può eseguire azioni di moderazione e ogni componente ha permessi separati sul database. Il codice è open source, quindi queste misure sono verificabili su GitHub.'
] },
{ title: 'Condivisione', body: [
'Non vendiamo i dati e non li usiamo per pubblicità o profilazione, né per addestrare modelli di intelligenza artificiale o di apprendimento automatico. Li condividiamo solo con i fornitori necessari al servizio: Discord (la piattaforma su cui opera il bot), Cloudflare (distribuzione e protezione di rete) e il nostro fornitore di hosting. I messaggi di log vengono pubblicati solo nei canali configurati dagli amministratori di ciascun server.'
Expand Down
Loading