Torna ai progetti

Panoramica

Inizio del progetto: 2026

Microservizio CMS multi-tenant costruito con NestJS, Prisma e PostgreSQL. Gestisce articoli, commenti e utenti con isolamento completo per tenant, moderazione automatica tramite lista di parole vietate e soglie di segnalazione, consegna asincrona di webhook con pattern outbox e semantica exactly-once.

Funzionalità

Isolamento Multi-Tenant

Ogni tenant è completamente isolato tramite il campo tenantId su tutti i modelli. Ogni query è sempre filtrata per tenant garantendo sicurezza e separazione dei dati.

Moderazione Automatica

ModerationPolicy centralizza tutta la logica di moderazione: scansione di parole vietate per tenant, shadow ban automatico e transizioni di stato basate sulla macchina a stati dei contenuti.

Gestione Segnalazioni

Sistema di segnalazioni polimorfico per articoli, commenti e utenti. Al superamento della soglia configurata le segnalazioni attivano automaticamente la moderazione del contenuto.

Webhook con Pattern Outbox

Gli eventi webhook vengono salvati come record nel database e consegnati in modo asincrono con semantica exactly-once, tracciando tentativi, ritardi e firma HMAC per la validazione lato client.

Autenticazione API Key

TenantMiddleware estrae e verifica l'header x-api-key (hash SHA-256) ad ogni richiesta, escludendo solo gli endpoint pubblici come GET /health.

Ciclo di vita dei contenuti

Articoli e commenti attraversano stati definiti (DRAFT, PUBLISHED, UNDER_REVIEW, HIDDEN, BANNED) con transizioni validate da una macchina a stati centralizzata.

Progetti simili

Altri progetti con Nest.js

Tutti i progetti
© 2026 Andrea Tombolato – heyatom
Full-stack developer, freelance e volontario Protezione Civile.