Skip to content

Releases: paperplanefactory/paperplane-mail-test

1.1.11

Choose a tag to compare

@paperplanefactory paperplanefactory released this 12 Oct 08:30
v1.1.11: versione e changelog

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

1.1.10

Choose a tag to compare

@paperplanefactory paperplanefactory released this 11 Oct 21:06
v1.1.10: richieste firmate (HMAC), export cifrato con password

- Le richieste al child non contengono più la chiave: timestamp, nonce
  monouso e firma HMAC-SHA256 (pp_mm_signed_body); nonce nuovo a ogni
  tentativo. Richiede child >= 1.4.11
- Messaggi: orologi sfasati, replay, child precedente alla 1.4.11
- Export senza chiavi in chiaro: cifrate con password (AES-256-GCM,
  PBKDF2-SHA256 600.000 iterazioni, salt casuale, minimo 12 caratteri)
  oppure export senza chiavi
- Import: password richiesta per export protetti; password errata o file
  alterato → nessun sito importato; limite iterazioni anti-DoS; export
  precedenti in chiaro ancora importabili; siti senza chiave in KO con la
  causa e senza alert
- Traduzioni it_IT, README, changelog

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

1.1.8

Choose a tag to compare

@paperplanefactory paperplanefactory released this 11 Oct 08:58
v1.1.8: down management, cause dei KO, notifica di ripristino

- Cron: stato salvato dopo ogni sito (prima solo a fine run: un'interruzione
  per max_execution_time perdeva gli stati e ripeteva gli alert); limite di
  esecuzione rinnovato per sito; lock contro run sovrapposti
- Un nuovo tentativo dopo 5 s per errori di rete, timeout, HTTP 502/503/504
- Notifica di ripristino quando un sito torna OK (inizio e durata del KO)
- pp_mm_check_url(): motivo specifico del rifiuto (DNS, privato, credenziali,
  https), usato nel check e nei form Aggiungi/Modifica
- pp_mm_describe_http_error(): causa leggibile per 3xx/401/403/404/5xx,
  child non attivo (rest_no_route), chiave illeggibile sul child
  (pp_mt_key_unreadable); dettaglio tecnico (Server, estratto risposta)
- Chiave salvata non più decifrabile sul main (AUTH_KEY cambiata): causa
  esplicita invece di un generico 401
- Lista siti e alert: causa, dettagli e "KO dal"
- Traduzioni it_IT, README (siti down/in errore, rotazione chiave), changelog

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

1.1.7

Choose a tag to compare

@paperplanefactory paperplanefactory released this 11 Oct 08:20
v1.1.7: SSRF hardening (IP pinning, credenziali URL), fix import

- Il check si connette all'IP già validato (CURLOPT_RESOLVE tramite
  pp_mm_remote_post_pinned()): chiude DNS rebinding e connessioni IPv6 mai
  validate. Hostname, SNI e verifica certificato restano quelli dell'URL
- pp_mm_resolve_allowed_ip(): valida tutti gli IPv4 del dominio
  (gethostbynamel), rifiuta URL con credenziali (https://user:pass@host)
- Import JSON e form Aggiungi/Modifica: campi non stringa non causano più
  fatal error (trim() su array)
- README: rimosso il riferimento a PP_MAIL_TEST_SECRET del child

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

1.1.6

Choose a tag to compare

@paperplanefactory paperplanefactory released this 10 Oct 21:01
v1.1.6: zip di release con cartella a nome fisso

- GitHub Action (release-zip.yml): alla pubblicazione di una release crea
  paperplane-mail-test.zip con cartella paperplane-mail-test/ e lo allega alla release
  (avviabile anche a mano su un tag esistente)
- Plugin Update Checker: enableReleaseAssets() usa lo zip allegato; se
  manca ripiega sullo zip sorgente
- .gitattributes: .github, .gitattributes, .gitignore esclusi dallo zip
- README: installare da paperplane-mail-test.zip, non da "Source code (zip)" (la cartella
  con la versione nel nome fa vedere a MainWP plugin diversi)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

1.1.5

Choose a tag to compare

@paperplanefactory paperplanefactory released this 10 Oct 20:02
v1.1.5: modifica URL/chiave, "Salva e verifica", "Aggiungi e verifica"

- Modifica sito: ora si possono cambiare anche URL (validato con
  pp_mm_is_url_allowed()) e chiave segreta (campo password vuoto = chiave
  invariata; la chiave attuale non viene mai mostrata)
- Al cambio di URL o chiave lo stato del sito viene azzerato, così un sito
  già in KO rimanda l'alert se la nuova configurazione è errata
- Nuovi pulsanti "Salva e verifica" (modifica) e "Aggiungi e verifica"
  (inserimento) che eseguono subito un check
- Estratta pp_mm_manual_check(), condivisa da "Controlla ora" e dai nuovi
  pulsanti
- Traduzioni it_IT, README e changelog aggiornati

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

1.1.4

Choose a tag to compare

@paperplanefactory paperplanefactory released this 10 Oct 13:02
v1.1.4: security hardening (SSRF, GET actions, encryption key)

- SSRF bypass via import: pp_mm_is_url_allowed() ora applicato nel loop
  dell'import (prima era assente, consentendo URL privati via JSON)
- SSRF TOCTOU: ri-validazione URL al momento della richiesta HTTP in
  pp_mm_check_site() per prevenire DNS rebinding
- Write actions leggibili da GET: rimosso fallback $_GET su $action;
  aggiunto sanitize_key()
- Encryption key fallback: rimosso get_option('siteurl') come fallback
  (pubblicamente noto); comportamento ora coerente col child plugin

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

1.1.3

Choose a tag to compare

@paperplanefactory paperplanefactory released this 10 Oct 12:20
Bump version to 1.1.3, update readme.txt changelog

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

1.1.2

Choose a tag to compare

@paperplanefactory paperplanefactory released this 10 Oct 05:35
Add inline edit for site name and frequency (v1.1.2)

Clicking "Edit" on a site row reveals an inline form to update the
label and check frequency without removing and re-adding the site.
Uses the existing _orig_idx pattern for correct index mapping.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

1.1.1

Choose a tag to compare

@paperplanefactory paperplanefactory released this 10 Oct 05:16
Update email subjects with consistent PaperPlane Mail Test prefix (v1…