Procedura Sync Aziende — Database di Lavoro (Ambiente)

Guida operativa alla gestione multi-workspace: selezione, attivazione, riserve SuperAdmin e sincronizzazione dati fra ambienti.

Indice
  1. Architettura multi-workspace
  2. Selezione dell'ambiente attivo
  3. Ambienti accessibili dall'utente
  4. Riserve SuperAdmin
  5. Sincronizzazione fra ambienti
  6. Cosa viene sincronizzato
  7. Motivazioni operative, legali, fiscali e privacy

1. Architettura multi-workspace

NOX gestisce più aziende contemporaneamente tramite un modello database-per-workspace: ogni workspace (azienda, studio, ramo operativo) possiede un proprio database PostgreSQL fisicamente separato. Il database principale mantiene unicamente l'anagrafica utenti, i permessi e l'elenco dei workspace con i relativi parametri di collegamento.

Isolamento dei dati
Ogni azienda ha i propri documenti, soggetti, catalogo, scadenzario, SDI, parametri. Non esiste mescolamento implicito: ciò che è sincronizzato viene copiato esplicitamente.

Ruoli coinvolti

RuoloCapacità
SUPERADMINCrea/elimina workspace, configura riserve, definisce i target di sincronizzazione, accede a workspace riservati.
ADMINAssegna workspace agli utenti (esclusi quelli riservati), modifica dati all'interno dei workspace accessibili.
UTENTELavora negli ambienti assegnati dall'amministratore, senza accesso alla configurazione multi-workspace.

2. Selezione dell'ambiente attivo

Il campo "Ambiente attualmente in uso" definisce su quale database l'utente sta lavorando in questa sessione. Il cambio di ambiente avviene tramite il menu a tendina in alto e si riflette immediatamente su tutte le sezioni (Documenti, Soggetti, Catalogo, SDI, Scadenzario, ...).

TopBar → switch workspace │ ▼ GET /api/auth/switch-workspace/:id │ ▼ Backend aggiorna JWT.workspaceId │ ▼ Middleware apre la PrismaClient del workspace scelto │ ▼ Tutte le API successive colpiscono quel database
Attenzione
Il cambio di ambiente non sposta dati. Sposta il contesto di lavoro: quello che si vede, si legge e si salva proviene dal database dell'ambiente attivo.

3. Ambienti accessibili dall'utente

La lista "Ambienti accessibili dall'utente" definisce quali database compaiono nel menu di switch della TopBar per lo specifico utente selezionato. Ogni riga mostra:

Flusso di assegnazione

1. SuperAdmin o Admin seleziona un utente dal menu "Seleziona utente" 2. Il sistema carica l'elenco workspace e i workspace già assegnati 3. L'amministratore spunta/toglie i workspace che l'utente può vedere 4. Salvando, viene eseguito PUT /api/utenti/:id/workspaces con l'elenco degli ID 5. Alla successiva login l'utente trova i workspace assegnati nella TopBar
Principio di minimo privilegio
L'utente non deve vedere aziende che non lo riguardano: ogni ambiente assegnato apre l'accesso completo al relativo database, quindi le spunte vanno messe solo dove serve.

4. Riserve SuperAdmin

Un workspace può essere marcato come riservato al SuperAdmin tramite l'icona a scudo. Quando la riserva è attiva:

Casi d'uso tipici delle riserve

ScenarioMotivo della riserva
Workspace di test, collaudo, stagingEvita che operatori scrivano per errore in ambienti non fiscali.
Ambiente di un'azienda dismessa o in liquidazioneConservazione dei dati senza esposizione operativa.
Copie di backup consultabiliGarantisce integrità: solo lettura sorvegliata.
Workspace con dati particolarmente sensibiliLimita la platea di chi può accedere ai dati personali o sanitari.

5. Sincronizzazione fra ambienti

Accanto ad ogni workspace, il SuperAdmin può impostare un sync target (icona 🔗): quando un documento/fattura viene emesso in quel workspace, una copia viene automaticamente scritta nel workspace target.

Configurazione

  1. Nella riga del workspace sorgente, il SuperAdmin clicca l'etichetta 🔗;
  2. Appare un select con l'elenco dei possibili target (sé stesso escluso);
  3. Alla selezione viene inviata PATCH /api/workspaces/:id/sync-target con syncTargetWorkspaceId;
  4. Il backend aggiorna il record Workspace.syncTargetWorkspaceId sul database principale;
  5. Selezionando "Nessun sync" la sincronizzazione viene disattivata.
Documento emesso su workspace A │ ├─► syncTargetWorkspaceId letto da GET /api/workspaces/sync-info │ ├─► POST /api/documenti/:id/sync-to-workspace { targetWorkspaceId: B } │ └─► Backend apre PrismaClient del workspace B e crea copia completa
Sincronizzazione a senso unico
Il sync è unidirezionale A → B. Se serve la replica anche in senso inverso, va configurato un secondo sync target su B.

6. Cosa viene sincronizzato

EntitàQuandoCampi copiati
Documenti (fatture, ricevute, note) Alla creazione/emissione con stato non BOZZA Tipo, numero, serie, data, stato, soggetto (creato se mancante), righe complete, imponibile/IVA/lordo, valuta, cassa previdenza, bollo, causale.
Soggetti (clienti/fornitori) Quando referenziati da un documento sincronizzato Match per codice o codiceFiscale; se non presenti, il soggetto viene creato sul target con i dati anagrafici e fiscali.
Fatture SDI Ad ogni cambio stato (IN_ATTESA, CONSEGNATA, SCARTATA, ACCETTATA, ...) Stato, nome file XML, progressivo invio, IdSdI, messaggio errore, data invio, tipo/formato trasmissione, codice destinatario.
Catalogo (articoli/prestazioni) Su richiesta esplicita (pulsante sincronizza) Codice, descrizione, unità di misura, prezzo, aliquota IVA, natura IVA, conto di ricavo.

Controllo duplicati

Il backend verifica la presenza del documento sul target tramite numero + anno + tipoDocumento. Se esiste già, la sincronizzazione risponde skipped: true senza creare duplicati.

Cosa NON viene sincronizzato

7. Motivazioni operative, legali, fiscali e privacy

Operative

Legali e fiscali

Conservazione documenti fiscali
L'art. 39 del DPR 633/72 richiede la conservazione delle fatture emesse per almeno 10 anni. La sincronizzazione consente di mantenere una copia integrale nel workspace destinato alla conservazione, in aggiunta al backup periodico (art. 2220 c.c.).

Privacy — GDPR (Reg. UE 2016/679)

Minimizzazione e limitazione della finalità
L'art. 5 GDPR impone che i dati personali siano trattati solo per finalità determinate e nei limiti strettamente necessari. L'architettura multi-workspace e la lista "Ambienti accessibili" sono lo strumento tecnico con cui NOX applica questo principio.
Best practice operative

Riferimenti normativi: DPR 633/72 (artt. 21, 39) · Cod. Civ. art. 2220 · Provv. Ag. Entrate 30/04/2018 · Legge 4/2013 · Regolamento UE 2016/679 (artt. 4, 5, 9, 17, 30, 32).