Controllo accessi basato su ruoli
RBAC nativo: Role, RolePermission, join User-Role. I ruoli sono globali (a livello admin) o limitati per Customer (dipartimento, business unit, team regionale). I set di permessi sono granulari — creazione di campagne, export di lista, configurazione del sending server, gestione dei piani. I nuovi ruoli si definiscono dall'admin; non serve ricostruire il modello quando il tuo organigramma cambia.
Audit trail dell'activity log
Ogni azione lato customer e lato admin scrive una riga in activity_logs: chi ha fatto cosa, quando, su quale risorsa. Cambi di subscription, azioni dei customer, eventi di cambio piano, invii di campagna, modifiche manuali agli iscritti. Vista di audit per-customer per il log dello stesso customer; vista di audit a livello admin per il log del team di sicurezza. La retention dipende da te — le righe vivono nel tuo database, si applica la tua policy di archiviazione.
Quote ed entitlement basati sul piano
Ogni Plan porta con sé quattro set di limiti: crediti, quote, entitlement, rate-limit. Le quote regolano i conteggi statici di risorse (liste, iscritti, automation). Gli entitlement regolano le feature (consenti sending server custom, consenti accesso API programmatico). I rate limit regolano il volume di invio per finestra. Gating dipartimentale in un'installazione multi-tenant: Engineering su un piano a quote alte, Marketing sul piano bulk-promozionale, Customer Support su un piano solo-transazionale.
Cascade del diritto all'oblio GDPR
Quando un iscritto esercita il diritto all'oblio, parte il cascade: la riga dell'iscritto viene cancellata, le righe della cronologia di invio vengono anonimizzate, l'unsubscribe viene propagato a qualsiasi audience di piattaforma pubblicitaria connessa (Facebook, Google) così che l'email non venga ricreata a valle. La voce di audit log preserva l'azione (subject ID hashato) così che la cancellazione stessa sia documentata per il trail di compliance.
Sending server custom (SES privato, Postal, Exim)
Fai girare gli invii attraverso un'identità Amazon SES privata, un MTA Postal on-prem, un relay Exim interno o qualsiasi combinazione. I nuovi vendor di invio si distribuiscono come plugin sending-driver da una classe sola. Utile quando la policy aziendale richiede che tutta la posta in uscita passi attraverso un relay SMTP interno o quando la scansione DLP avviene sul path di egress.
Stack standard — Laravel, MySQL, Redis
PHP 8.2+, MySQL 5.7+ / MariaDB 10.3+, Redis (opzionale, per cache e queue). Server Linux standard. Il tuo team piattaforma già fa girare questo stack — nessun nuovo motore di database, nessun nuovo runtime, nessuna nuova orchestrazione di container da introdurre. Si applicano gli stessi playbook di backup, monitoring, scaling e patching. Undici docs per sviluppatori percorrono ogni superficie di estensione.