Operazioni quotidiane
Attività che gli operatori MSSP eseguono su un'installazione SocTalk attiva. Se non l'hai ancora fatto, leggi prima il Tour dell'interfaccia MSSP — cataloga tutte le pagine referenziate di seguito.
Coda delle indagini
Apri Investigations per vedere in un'unica vista i casi attivi di ogni tenant. Filtri: tenant, gravità. Fai clic su una riga per la timeline del caso, la conversazione e le proposte.

Coda di revisione delle proposte
Reviews è la coda cross-tenant delle proposte AI in attesa di un intervento umano. Approva / rifiuta / richiedi maggiori informazioni: ciascuna azione aggiorna la riga di revisione nel database (e nell'audit log). In V1 non esiste alcuna outbox — l'executor e la pipeline di notifica a valle sono in roadmap.

Tenant bloccato in stato provisioning
Sintomo: la riga del tenant di un nuovo cliente rimane nello stato provisioning per più di 15 minuti.
- Controlla lo stato della release Helm:bash
helm status tenant-<slug> -n tenant-<slug> - Controlla gli eventi dei pod:bash
kubectl -n tenant-<slug> get events --sort-by=.lastTimestamp | tail -30 - Cause comuni:
StorageClassmancante o provisioner non attivo → i PVC rimangono inPending. Effettua il provisioning dello storage;kubectl describe pvcmostra il motivo.- ResourceQuota troppo piccola per la richiesta dell'indexer Wazuh. Aumenta la ResourceQuota del tenant tramite
helm upgradecon i nuovi valori. - Fallimenti nel pull delle immagini → controlla l'autenticazione del registry e il firewall.
Se un tentativo di provisioning non riesce a recuperare, dismetti e riprova:
# Dall'interfaccia MSSP: dettaglio tenant → Decommission → force=true
# Oppure tramite API:
curl -X POST https://mssp.../api/mssp/tenants/<id>:decommission?force=trueTenant in stato degraded
Lo stato degraded viene impostato dal controller di provisioning in caso di fallimento del provisioning, oppure impostato esplicitamente tramite l'API. In questa release non esiste alcun ciclo di auto-degradazione basato sull'età dell'heartbeat dell'adapter; la metrica soctalk_tenant_adapter_heartbeat_age_seconds è a disposizione del tuo alerting.
- Controlla il pod dell'adapter:bash
kubectl -n tenant-<slug> logs deploy/soctalk-adapter --tail=200 - Controlla l'egress della NetworkPolicy (l'adapter deve raggiungere l'API
soctalk-system):bashhubble observe --from-pod tenant-<slug>/soctalk-adapter-<pod> - Riavvia l'adapter:bash
kubectl -n tenant-<slug> rollout restart deploy/soctalk-adapter
Se il data plane è integro ma l'adapter continua a non raggiungere soctalk-system, ispeziona la NetworkPolicy adapter-egress.
Ruotare la chiave LLM per tenant
- Admin MSSP → dettaglio cliente → Settings → LLM → incolla la nuova chiave → Save (oppure
PATCH /api/mssp/tenants/{id}/llm). - Lo store autoritativo di SocTalk è
IntegrationConfig.llm_api_key_plainin Postgres. Il controller di provisioning materializza tale valore inSecret/tenant-llm-keynel namespace del tenant (montato dal Deployment runs-worker) e, opzionalmente, replica un riferimento insoctalk-system/<tenant-id>-llma fini di audit. - SocTalk riavvia con logica best-effort il Deployment
soctalk-runs-workerintenant-<slug>in modo che la nuova chiave abbia effetto alla successiva presa in carico di un'indagine.
Ruotare i secret di bootstrap del data plane
In questa release non esiste alcun comando soctalk-cli rotate-* — quel percorso era documentato in bozze precedenti. Ad oggi:
- Password admin di Wazuh / TheHive / Cortex: applica una patch al Secret pertinente nel namespace del tenant, quindi riavvia il pod interessato. La riesecuzione del bootstrap del chart all'avvio del pod recupererà la nuova credenziale.
- Secret condiviso
authddi Wazuh: applica una patch aSecret/wazuh-authd-secretintenant-<slug>, riavvia il manager Wazuh. Tutti gli agenti esistenti devono ri-effettuare l'enrollment con il nuovo secret; distribuiscilo tramite il tuo normale canale sicuro.
Una CLI wrapper per queste rotazioni è in roadmap.
Analytics
Analytics aggrega il volume di triage, gli esiti delle proposte, l'MTTR e il consumo di budget per tenant. Usala per la pianificazione della capacità, la valutazione dei modelli e la revisione degli SLA.

Revisione dell'audit log
L'audit log a livello di MSSP si trova in UI → tab Audit. Filtra per tenant, attore, azione o timestamp. Per le esportazioni di conformità, usa l'API:
curl 'https://mssp.../api/audit?since=2026-01-01&tenant=<id>' > audit.json
Ripristino del database (disaster recovery)
I backup sono gestiti esternamente dall'MSSP (Velero, snapshot del cluster, pg_dump esterno). Per ripristinare:
- Ferma l'API SocTalk:bash(Il chart V1 integra l'orchestrator nel pod dell'API — nessun Deployment
kubectl -n soctalk-system scale deploy soctalk-system-api --replicas=0soctalk-system-orchestratorseparato.) - Ripristina i dati Postgres dal tuo backup.
- Riavvia l'API:
kubectl -n soctalk-system scale deploy soctalk-system-api --replicas=2(o il tuo normale conteggio di repliche).
I PVC del data plane del tenant seguono lo stesso schema: ripristina per singolo namespace, quindi esegui helm upgrade della release del tenant per ricollegarli.
Emergenza: disabilitare immediatamente un tenant
L'azione Suspend dell'interfaccia, in questa release, porta lo stato del tenant a suspended e impedisce all'orchestrator di pianificare nuove indagini — ma non scala i workload. Per un blocco effettivo, esegui i passaggi seguenti (scala tutti i deployment + applica una NetworkPolicy deny-all come ulteriore misura di sicurezza):
# 1. Scala a zero tutti i workload nel namespace del tenant. Questo è lo
# stop definitivo — i pod scompaiono.
kubectl -n tenant-<slug> get deploy,statefulset -o name \
| xargs -I {} kubectl -n tenant-<slug> scale {} --replicas=0
# 2. Deny-all come misura di sicurezza aggiuntiva, così tutto ciò che
# torna attivo (ad es. da un operatore bloccato in riconciliazione) è isolato.
kubectl -n tenant-<slug> apply -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata: { name: emergency-deny-all }
spec:
podSelector: {}
policyTypes: [Ingress, Egress]
EOFPer invertire, elimina la NetworkPolicy, riporta i workload ai conteggi di repliche originali e chiama Resume nell'interfaccia. Anche Resume, in questa release, aggiorna soltanto lo stato nel DB — non ripristinerà i conteggi di repliche al posto tuo.
Sospetto di data leak cross-tenant
Se sospetti un accesso cross-tenant:
- Controlla le esecuzioni recenti della suite di test RLS; passano in CI per ogni release.
- Sonda direttamente il DB:bash
kubectl -n soctalk-system exec -it statefulset/soctalk-system-postgres -- \ psql -U soctalk_app -d soctalk \ -c "SET app.current_tenant_id='<tenant-a>'; SELECT tenant_id FROM events LIMIT 5;" - Se un leak è confermato, apri un incidente P1. RLS insieme a
FORCE ROW LEVEL SECURITYè l'ultima linea di difesa; un leak non risolto indica un bug applicativo o una configurazione errata del ruolo Postgres.
Errori comuni
- Eseguire le migrazioni come
soctalk_app. Le migrazioni richiedono le credenzialisoctalk_admin; consoctalk_appfalliscono. - Modificare direttamente i valori
soctalk-tenantin Helm. Questo aggira lo stato del database di SocTalk; passa attraverso l'API. - Creare namespace
tenant-*a mano. Le label richieste non saranno presenti e SocTalk non riconoscerà il namespace. Usa il flusso di creazione del tenant.
