SafeOps MailHub Client¶
SafeOps integra MailHub tramite un client HTTP machine-to-machine, disabilitato di default.
Configurazione¶
MAILHUB_API_ENABLED:falsedi default. Deve esseretrueper effettuare chiamate reali.MAILHUB_API_BASE_URL: defaulthttps://mailhub-api.nxt-sense.it/api/v1/smtp.MAILHUB_API_TOKEN: Bearer token dedicato, da conservare in variabile ambiente o secret manager.MAILHUB_API_TIMEOUT: timeout in secondi, default10.
Il token non deve essere salvato in TenantIntegrationConfig.secret_json se non cifrato.
External ID¶
Un client MailHub rappresenta un singolo account SMTP SafeOps.
Formato:
safeops__{tenant_key}__{account_code}
tenant_key e account_code vengono normalizzati in minuscolo, con spazi e trattini convertiti in _; sono ammessi solo a-z, 0-9 e _.
Flusso operativo¶
- SafeOps costruisce
external_id. PUT /clients/{external_id}crea o aggiorna l'account con password generata da MailHub.- Se MailHub restituisce la password, SafeOps la salva subito cifrata con
MAILOPS_CREDENTIALS_KEY. - Se la risposta di creazione viene persa e il replay idempotente non contiene la password, SafeOps usa
rotate-password. - Enable, disable, PUT e rotate usano
Idempotency-Key.
Le statistiche MailHub sono trattate come dati osservati: non viene usato daily_remaining e non viene mostrata una quota residua garantita.
Retry¶
Il client effettua al massimo 3 tentativi solo per:
- timeout;
- connection error;
- HTTP
429,502,503,504.
Gli altri errori 4xx non vengono ritentati automaticamente.
Sicurezza¶
Il client invia:
Authorization: Bearer ...;Accept: application/json;Content-Type: application/json;X-Request-IDse presente ing.request_id;Idempotency-Keysulle operazioni idempotenti.
Token e password vengono sanitizzati dai messaggi di errore e non devono essere loggati in chiaro.
Decisioni infrastrutturali residue¶
- IP interno di NethSecurity che raggiungerĂ MailHub
8090. - IP/CIDR dal quale SafeOps si collegherĂ alla porta SMTP
587. - Policy operativa per i limiti massimi oltre il default MVP
100/orae500/giorno.