Vai al contenuto

SafeOps MailHub Client

SafeOps integra MailHub tramite un client HTTP machine-to-machine, disabilitato di default.

Configurazione

  • MAILHUB_API_ENABLED: false di default. Deve essere true per effettuare chiamate reali.
  • MAILHUB_API_BASE_URL: default https://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, default 10.

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

  1. SafeOps costruisce external_id.
  2. PUT /clients/{external_id} crea o aggiorna l'account con password generata da MailHub.
  3. Se MailHub restituisce la password, SafeOps la salva subito cifrata con MAILOPS_CREDENTIALS_KEY.
  4. Se la risposta di creazione viene persa e il replay idempotente non contiene la password, SafeOps usa rotate-password.
  5. 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-ID se presente in g.request_id;
  • Idempotency-Key sulle 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/ora e 500/giorno.