Přeskočit na obsah

Changelog

Zde najdete změny, které ovlivňují veřejné API nebo SDK. Balíčky SDK dodržují sémantické verzování; jejich podrobné changelogy se zveřejňují s každým vydáním na npm.

Nevydáno – veřejná beta

Sekce “Nevydáno – veřejná beta”

Bezpečnostní zpřísnění: okraj veřejného API a klíče (září 2026)

Sekce “Bezpečnostní zpřísnění: okraj veřejného API a klíče (září 2026)”

Změny chování – zkontrolujte prosím svou integraci:

  • Požadavky bez Origin i Referer (servery, curl, nativní aplikace) s public key teď potřebují Povolit mobilní aplikace – i když máte seznam povolených webů prázdný. Dřív je prázdný seznam přijímal. Organizacím, které takové požadavky za posledních 30 dní posílaly, jsme přepínač zapnuli automaticky. Jinak: 403 origin_not_allowed (details.reason: "no_origin"). Na serveru použijte private key.
  • Private key z prohlížeče odmítáme: požadavek s private key (Authorization: Bearer nebo pole accessToken ve stylu EmailJS), který nese hlavičku Origin, dostane novou chybu 403 private_key_in_browser. Pro interní nástroje jde povolit v Zabezpečení → Povolit privátní klíč v prohlížeči.
  • CAPTCHA u požadavků bez Origin ověřujeme sdíleným mobilním widgetem Frontmailu jen tehdy, když je zapnuté Povolit mobilní aplikace. Testovací klíče Cloudflare v produkci odmítáme.
  • Zjišťování stavu: status token posílejte v hlavičce X-Frontmail-Status-Token; ?token= pro starší SDK dál funguje.
  • Rate limity: klienti s IPv6 sdílejí limit na IP adresu v rámci sítě /64. Limity na klíč a organizaci i detekce anomálií teď počítají jen požadavky, které prošly kontrolou šablony a CAPTCHA, takže záplava neplatných požadavků už vaše skutečné návštěvníky nezablokuje.
  • Přílohy: názvy souborů čistíme (neviditelné a bidi znaky, tečky na konci) a odmítáme víc nebezpečných typů (HTML, SVG, obrazy disků, OneNote, Office s makry, .url, .lnk, …). Nahrávání s public key (POST /v1/uploads) vyžaduje šablonu, která přílohy přijímá, a má denní limit objemu na organizaci.
  • template_id / service_id delší než 64 znaků v multipart formuláři → 400 invalid_body (dřív 500).
  • API, API dashboardu i přihlašování přijímají jen provoz, který jde přes CDN Frontmailu.
  • POST /v1/send, /v1/send-form, /v1/send-batch, /v1/uploads, GET /v1/messages/:id, GET /v1/history, GET /v1/templates a aliasy kompatibilní s EmailJS.
  • Jednotný formát chyb s docs_url; podpora Idempotency-Key (24 h).
  • Hold fronta se stavy held / held_service_error a režimy hold / reject.
  • Zámek obsahu pro odesílání veřejným klíčem do šablon s dynamickým příjemcem: povinná CAPTCHA (dynamic_recipient_requires_captcha), pevná pole odesílatele (dynamic_field_not_allowed), žádné HTML parametry a texty do 500 znaků, odkazy jen na povolené domény (link_not_allowed) a nejvýš 5 e-mailů na příjemce za den. Adresa odesílatele z parametrů se odmítne u každého odeslání veřejným klíčem. Uzamčené jsou i automatické odpovědi. Nová nastavení: security.allowedLinkDomains, security.recipientDailyLimit, u šablony enforceLinkAllowlist. Viz Povolené odkazy a zámek obsahu.
  • @frontmail/browser 0.x (ESM + UMD, připnutí verze se SRI), @frontmail/react, @frontmail/react-native, @frontmail/vue, @frontmail/svelte, @frontmail/node s CLI frontmail types, @frontmail/emailjs-compat.
  • Automatické opakování s exponenciálním backoffem a idempotenčními klíči; typované chyby.
  • Dvoufázové ověření se teď vyžaduje u každého způsobu přihlášení – včetně odkazu z e-mailu a Google / GitHub – a zapnout jde jen s ověřenou e-mailovou adresou.
  • Přihlašovací a ověřovací odkazy otevřené v jiném prohlížeči chtějí potvrzení (nebo tento prohlížeč nepřihlásí), takže vás cizí odkaz nepřihlásí do cizího účtu.
  • Změna přihlašovacího e-mailu vyžaduje heslo a schválení ze současné adresy.
  • Admini už nemůžou přidělit roli Fakturace; adminy a členy s rolí Fakturace spravuje jen vlastník.
  • URL webhooků poskytovatelů neuvidí čtenáři ani role Fakturace a jde vygenerovat nová (Vygenerovat novou webhook URL).
  • Vlastní SMTP server musí mít veřejnou adresu a port 25, 465, 587 nebo 2525.
  • Přílohy šablon můžou používat jen soubory nahrané stejnou organizací.
  • Pozvánky do týmu mají limity na příjemce i organizaci; název organizace nesmí obsahovat odkazy.
  • Data o kliknutích exportovaná do analytiky už neobsahují parametry URL (tokeny, e-maily).

Zabezpečení SDK (příští vydání SDK, 0.2.0)

Sekce “Zabezpečení SDK (příští vydání SDK, 0.2.0)”
  • Nekompatibilní změna: SDK pro prohlížeč (@frontmail/browser, React, Vue, Svelte, @frontmail/emailjs-compat) vyhodí private_key_in_browser, když se ve webovém prohlížeči použije soukromý klíč (privateKey, v compat accessToken); @frontmail/node v prohlížeči odmítne běžet. Vypnutí: dangerouslyAllowPrivateKeyInBrowser: true.
  • sendForm přeskočí pole s heslem, anti-CSRF pole a rezervované názvy; nová volba formFields: { include, exclude }.
  • getStatus posílá status token v hlavičce X-Frontmail-Status-Token místo ?token=.
  • <TurnstileWebView> v React Native je uzamčený na stránku widgetu (originy, navigace, zprávy).
  • CDN: vedle každého verzovaného bundlu je sri.json s hashi pro integrity; dokumentace používá URL s připnutou verzí a Subresource Integrity.
  • Editor HTML šablon s živým náhledem, typovanými parametry, kontrolami, verzemi a galerií (EN/CS).
  • Služby pro SMTP, Mailgun, Amazon SES, Postmark, SendGrid, Mailjet, Brevo, Resend, Gmail a Outlook / Microsoft 365, s failoverem a health-checky.
  • Kredity: tarify, kreditové balíčky, overdraft, auto top-up; statistiky spotřeby.

Fakturace a kredity (bezpečnostní opravy)

Sekce “Fakturace a kredity (bezpečnostní opravy)”
  • Roční tarify teď dostávají měsíční kvótu i rezervu pro přečerpání v každém měsíci období (dřív jen v prvním).
  • Overdraft využitý na ročním tarifu se vyúčtuje každý měsíc samostatnou fakturou; overdraft využitý před koncem předplatného (zrušení, smazání organizace) se vyúčtuje hned.
  • Přechod z měsíční na roční fakturaci převádí kredity vyčerpané v aktuálním měsíci.
  • Změna tarifu se odmítne, dokud má předplatné nezaplacenou fakturu (409 conflict, details.reason: "subscription_not_active").
  • Rozporované platby (chargeback) odeberou kredity, které koupily; pokud spor vyhrajete, vrátí se. Refundace se zpracovávají po jednotlivých refundech.
  • Novinka: hold fronta má limit na organizaci; nad ním dostanou požadavky 402 insufficient_credits s details.reason: "hold_queue_full".
  • Novinka: e-maily odeslané s veřejným klíčem nečerpají overdraft a nespouštějí automatické dobíjení, pokud to nezapnete ve Fakturace → Koupit kredity → Útrata za e-maily s veřejným klíčem (ve výchozím stavu vypnuto, i u stávajících organizací).
  • Vlastní SMTP servery: selhání až po přijetí zprávy serverem se už nevracejí; ochrana na úrovni organizace vracení kreditů zastaví, když selhání přibývá neobvykle často.
  • Webhooky poskytovatelů blokují jen skutečné příjemce zprávy; webhooky Amazon SES si zapamatují SNS téma první podepsané zprávy. Odeslat znovu odmítne šablony zmrazené po přechodu na nižší tarif.