--- title: "Changelog" description: "Latest updates and improvements across bunny.net products." rss: true --- ## Runtime Insights for Edge Scripting Edge Scripting analytics now show how your scripts perform, not only how often they run. New performance metrics and dimensions let you break down usage by release and region. Compare two releases side by side to see within minutes whether a deploy is slower or heavier than the last one. See how often cold starts happen and how much wall time they add. Compare regions to verify a rollout or catch a spike as it happens. Subrequest analytics show the outbound connections your script makes and their average duration. ## Deploy from any OCI-compliant registry Magic Containers now accepts any OCI-compliant container registry as a private registry, including GitLab, Harbor, Quay, Azure Container Registry, Google Artifact Registry and self-hosted registries. Use the registry you already have, without mirroring images to Docker Hub. The registry must be reachable on a public address over HTTPS. If it rejects your credentials, the dashboard tells you why. Deploying is faster too. Paste a full image reference such as `ghcr.io/acme/api:v1`, and Magic Containers confirms the image and its digest before you deploy. Each connected registry shows whether the image is found, not found, unauthorized or unavailable, so an expired token no longer looks like a missing image. If the image isn't found, you get suggestions for similar tags or image names. If you leave out the tag, you pick one instead of the deploy failing on a missing `latest` tag. [Learn more](/docs/magic-containers/image-registries) ## Dashboard Load Balancer has new edge rule options, and origin groups now include an origin latency period setting. Each Bunny Shield event includes its request ID, so you can trace a blocked or challenged request back to its source. In Bunny Stream, re-encoding a video with **Keep Originals** turned off opens a confirmation modal that explains what happens to the source file. The Magic Containers overview page shows each piece of data once, pod details show updated logs, and log filters stay applied as you switch tabs. CDN settings explain the deprecated TLS version controls more clearly, and Storage zone names are limited to 63 characters. We've also fixed issues with MX records and TTL edits in Bunny DNS, the Bunny Database regions map, video status in Bunny Stream, and a handful of smaller dashboard bugs. ## S3 bulk deletes, object metadata and a new Storage Regions API Bunny Storage’s S3-compatible API now supports DeleteObjects for up to 1,000 keys per request, so AWS CLI, rclone and SDK bulk deletes work out of the box. You can also store custom x-amz-meta-\* fields and system headers like Cache-Control with your objects, preserved on copy and returned on every GET and HEAD. [Read the S3 docs](https://bunny.net/docs/storage/s3) Plus, the new [Get Storage Zone Regions API](https://bunny.net/docs/api-reference/core/storage-zone/get-storage-zone-regions) lists every region with its tier, pricing, S3 support and endpoints, so you never need to hardcode them. ## Expanded Bunny Shield protections for critical PHP vulnerabilities Following PHP's security release, we've updated our post on CVE-2026-109618 and CVE-2026-109619 with the confirmed vulnerability details and fixed versions. Bunny Shield has also added a managed WAF rule for multipart field names nested 20 or more levels. It joins our earlier rule for the default `PHP_SESSION_UPLOAD_PROGRESS` field. Matching requests are blocked only when your Shield Zone's WAF is in **blocking mode**. In **log-only mode**, the rules do not block traffic. Update PHP to **8.5.12, 8.4.27, 8.3.36 or 8.2.35** as soon as possible; these rules cover specific request patterns and do not replace the PHP fixes. [PHP security advisory](https://www.php.net/archive/2026.php). ## Bunny Shield rule for PHP CVE-2026-109618 and CVE-2026-109619 A managed WAF rule is now active for the multipart request pattern found in publicly circulating scripts associated with these vulnerabilities. For Shield Zones with the WAF in blocking mode, matching requests are blocked before they reach the origin. In log-only mode, the rule does not block requests. Bunny Shield respects each customer's configured mode. The rule covers the observed request pattern while PHP's technical details are pending. We'll review today's PHP security release and refine the rule as needed. Update PHP to a fixed release when available. ## React Native Mobile SDK and Expo support The Bunny Stream React Native Mobile SDK brings the native Bunny Stream players, uploads, and content management APIs to iOS and Android through one TypeScript interface. Use it in a React Native application or an Expo development build.[Learn more](/docs/stream/react-native-sdk) ## Redesigned Overview and settings We’ve redesigned the Overview and container settings pages in Magic Containers. The Overview has an activity panel that shows live CPU, memory and bandwidth usage against each resource limit. An application status block tells you whether your app is running, and if it isn’t, it links you straight to the logs. Container settings list every deployed container with its limits. You can set a startup command in a shell-style editor, connect Bunny Database or Bunny Storage with a single click, and see examples of the environment variables the Magic Containers runtime provides. [Learn more](/docs/magic-containers) ## `ping` support in containers The `ping` command now works inside Magic Containers. Use it to check that a host is reachable from your application. ## CDN Load Balancer Load Balancer distributes uncached Pull Zone requests across multiple origin servers. Configure origin groups with priority-based failover tiers, choose from routing methods like Round Robin, Weighted Random, Geo Location, and Lowest Average Latency, and enable active health checks to automatically remove failing origins from rotation. Sticky sessions pin returning visitors to the same origin using cookies, and per-origin statistics track traffic, latency, and failures. Each Load Balancer costs \$9.50/month and includes 50 million requests. [Learn more](/docs/cdn/load-balancer/index) ## Agent Readability (Public Preview) Agent Readability, a Bunny Optimizer feature, has been released in public preview. It makes your website easier and more efficient for AI systems to consume by serving clean, focused, token-efficient Markdown content and an llms.txt file, without changing the experience for human visitors. [Learn more](/docs/optimizer/agent-readability) ## Burrow Active Origin Probing (Public Preview) Burrow active origin probing has been released in public preview. Burrow periodically tests origin connection quality from the edge with lightweight checks, so it can map optimal paths even when a Pull Zone sees little traffic. [Learn more](/docs/optimizer/burrow-smart-routing#active-origin-probing) ## Burrow Smart Routing is now GA Burrow Smart Routing has been promoted to [General Availability](/docs/product-release-stages). The rebuilt routing engine adds optional Active Origin Probing to test alternative origin routes, adapts faster to network changes, and requires a meaningful measured improvement before rerouting traffic. [Read the announcement](https://bunny.net/blog/burrow-smart-routing-is-generally-available-a-faster-path-for-dynamic-traffic/). ## HTMLRewriter, Cache API, and Before cache execution for Edge Scripts are now GA Edge Scripting's HTMLRewriter, Cache API, and Before cache execution have been promoted to [General Availability](/docs/product-release-stages) and are no longer in preview. [Learn more](/docs/scripting/html-rewriter) ## Bunny Database Migrations in the CLI (Public Preview) The CLI now versions your Bunny Database schema as plain `.sql` files kept in your repository. Create a migration with `migrations create`, apply pending ones in filename order with `migrations apply`, and review what has run with `migrations list`. The CLI records every applied migration, so the same file never runs twice. [Read the announcement](https://bunny.net/blog/bunny-database-migrations-from-the-terminal-with-the-bunny-net-cli/) or [learn more](/docs/database/migrations). ## Bunny Database Client (Public Preview) `@bunny.net/database-client` is a dependency-free SQL client for Bunny Database. The same code runs on [Edge Scripting](/docs/scripting), Bun, and Node. It supports prepared statements, tagged-template queries, batched statements that roll back together, and row types inferred from each statement. [Read the announcement](https://bunny.net/blog/query-bunny-database-with-fetch-and-nothing-else/) or [learn more](/docs/database/tools/database-client). ## Server-Sent Events with Edge Scripting An Edge Script can answer a request with a stream of Server-Sent Events by returning a `Response` that holds a `ReadableStream`, and the edge delivers each event as the script writes it. Return the response before you await anything, write the first event as soon as the stream opens, and pass a promise to `waitUntil` that resolves when the stream ends so the isolate is not evicted mid-stream. [Learn more](/docs/scripting/server-sent-events) ## EEA Routing Filter for Pull Zones Pull Zones now support a European Economic Area (EEA) routing filter that routes all traffic exclusively through 26 PoPs across EU member states plus Iceland and Norway. Use this filter when you need GDPR-compliant data residency across the full EEA. [Learn more](/docs/cdn/performance/routing-filters) ## TLS Security Levels for Pull Zones Pull Zones now support Legacy, Compatible, and Modern only TLS security profiles, configurable per zone. Set the minimum cipher-suite strength to balance stronger security with the client compatibility each workload requires. [Learn more](/docs/cdn/security/ssl) ## S3 API compatibility improvements The S3 API now supports virtual hosted-style URLs alongside path-style URLs, adds `ETag` and conditional request support to `HeadObject` and `GetObject`, improves `CopyObject` with content-type preservation, metadata directives, and conditional copy headers, and returns a standard `SlowDown` (`503`) response with a `Retry-After` header when requests are rate limited. ## Bunny Stream Live - Closed Preview We've opened up bunny Stream customers to signup for our new live streaming preview. The signup banner can be found within your video library! Once approved you'll be able to live stream at scale globally to your audiences. All managed with the new dashboard control room & API. Features include: RTMP ingest & distribution, scheduling, countdown, DVR, VOD and more. ## Investigative Event Logs for Bunny Shield Bunny Shield Event Logs now support advanced filtering and grouping across Feature, Action, Rule ID, IP / Range, Country, ASN, JA4 Fingerprint, User-Agent, and URL. Combine multiple signals, such as IP, User-Agent, and JA4, to investigate related activity and uncover attack patterns across Shield features. You can also investigate events across multiple days within the 3-day retention window and export results as CSV for further analysis. [Learn more](/docs/api-reference/shield/event-logs/search-filter-and-group-event-logs-for-a-shield-zone) ## Connect a Bunny Database from the Edge Scripting creation flow You can now connect a Bunny Database directly from the Edge Scripting creation flow. Create a new database or pick an existing one, and we'll automatically add the connection credentials (`BUNNY_DATABASE_URL` and `BUNNY_DATABASE_AUTH_TOKEN`) as script secrets. There's also a new Database CRUD API script template available to get you started. ![Add Database](/docs/images/changelog/edge-scripting-add-database.png) ## Cloud sandbox environments via Bunny CLI `bunny sandbox` manages on-demand cloud sandbox environments backed by Bunny Magic Containers. Create sandboxes (`create`), connect via SSH (`ssh`), run commands (`exec`), copy files (`cp`), browse remote files (`files`), expose ports as public HTTPS endpoints (`url add`/`list`/`delete`), and manage persistent environment variables (`env set`/`list`/`delete`). Each sandbox is a fully isolated Ubuntu container with Node.js, Bun, Python, and Claude Code pre-installed, with a 10 GB persistent volume mounted at `/workplace`. [Read the announcement](https://bunny.net/blog/introducing-bunny-sandbox-a-disposable-room-where-ai-can-build/) or [learn more](/docs/cli/commands/sandbox). ## IP Family Policy for Pull Zones Pull Zones now support an IP Family Policy that controls which address families (IPv4, IPv6, or both) are advertised and which edge servers are eligible to serve the zone. Four policies are available: IPv4 Only, Dual Stack (default), Dual Stack Prefer IPv6, and IPv6 Only. Token authentication IP locking now also supports IPv6 addresses, binding at the client's `/64` prefix. Enabling Token IP Validation pins the zone to a single address family automatically. [Learn more](/docs/cdn/ip-family-policy) ## Read-only password support for S3 API Bunny Storage's S3-compatible API now supports read-only access keys. Use a dedicated read-only secret access key for S3 connections that should only have read permissions, adding an extra layer of access control to your storage zones. [Learn more](/docs/storage/s3) ## Verified bot customization for Shield Zones Bunny Shield now lets you control how verified bots are handled per Shield Zone: allow, block, or take no action, with per-bot and per-category overrides across seven categories: SEO, AI Scraper, AI Tool, Tool, Ads, Preview, and Social. Verification supports both reverse DNS and published IP range checks, and verified bot categories are exposed to the Rule Engine via the `VERIFIED_BOT_CATEGORY` variable for custom WAF rules. [Learn more](/docs/shield/verified-bots) ## Before cache execution for Edge Scripts (Public Preview) Edge Scripts can now run **before** the CDN cache layer, giving you full control over every request instead of only executing on cache misses. Enable it per Pull Zone under **General** > **Origin** > **Run script before cache**. Middleware scripts gain two new hooks: `onClientRequest` (intercept requests before the cache lookup) and `onClientResponse` (modify responses before they reach the client, including cached ones). Standalone scripts also support this mode, running on every request and deciding how responses are cached. [Read the announcement](https://bunny.net/blog/build-your-own-caching-rules-with-pre-cache-execution-and-cache-api-in-edge-scripting/) or [learn more](/docs/scripting/before-cache). ## Scriptable DNS commands and record presets in the Bunny CLI Bunny DNS can now be managed from the command line. `bunny dns scripts` brings [Scriptable DNS](/docs/dns/scriptable/introduction) to the CLI: `init` scaffolds a project from starter examples (geo, closest, weighted, failover, pullzone) with the [`@bunny.net/scriptable-dns-types`](https://github.com/BunnyWay/cli/tree/main/packages/scriptable-dns-types) package preconfigured for editor autocomplete, `deploy` uploads and publishes your entry file, and `attach` points a hostname at the script by adding a `SCRIPT` record to a zone. `bunny dns records preset` applies curated record sets for common providers and tasks (Google Workspace, Microsoft 365, DMARC, and more) in one step, and `bunny dns zones link` lets a directory resolve its zone without passing a domain. The DNS docs now include CLI examples alongside the dashboard steps. [Read the announcement](https://bunny.net/blog/manage-dns-from-the-terminal-with-bunny-net-cli/) or [learn more](/docs/cli/commands/dns). ## Bunny Player extended Chromecast support We've just updated the Bunny player with a rebuilt Chromecast experience. Casting now supports eDRM (Widevine-protected) videos, closing a long-standing gap versus the legacy player. The TV experience feels native, with the video title and thumbnail on screen and player colors and captions appearance (color, font, size, language) synced from the embed. Viewers keep full playback control while casting. audio track selection works before and during a session, and playback rate changes apply on the TV. Session handling is seamless too: playback continues from the current position when casting starts and transfers back on stop, with page reloads, replays after the video ends with a smoother experience overall. [Learn more](/docs/stream/player-settings) ## HTTP validation for Seamless Domain Migration Seamless Domain Migration now supports HTTP (file-based) validation alongside the existing DNS (TXT record) method for issuing SSL certificates before pointing your domain to bunny.net. Choose DNS if you control your domain's DNS records, or HTTP if you can place a challenge file on the server your domain currently points to. [Learn more](/docs/cdn/seamless-migration) ## Symbolic links, timestamps, and permissions in Edge Scripting The Edge Scripting Node.js file system module now supports symbolic links (`symlink()`, `readlink()`, `lstat()`), returns correct file timestamps (`atime`, `mtime`, `ctime`, `birthtime`), and enforces owner-level file and directory permissions (`chmod()`, `access()`, `Stats.mode`). [Learn more](/docs/scripting/node-fs) ## S3 API 'Public Preview' launched S3-Compatible API is now available for all! We have also added a new S3 Storage Zone region: Sydney (SYD) & Uploadpart now supports Content-MD5 validation. [Learn more](/docs/storage/s3) ## AVIF, HEIC and HEIF are now GA Support for AVIF, HEIC and HEIF as input formats, and AVIF as an output format, has been promoted to [General Availability](/docs/product-release-stages). [Learn more](/docs/optimizer/dynamic-images/formats) ## `waitUntil` New Runtime API reference page for Edge Scripting, documenting the `waitUntil` function that allows scripts to continue running after a request completes — useful for maintaining WebSocket connections and background tasks. The WebSocket guide has also been updated with a practical `waitUntil` example. [Learn more](/docs/scripting/runtime) ## Bunny DNS is now free Bunny DNS query fees are gone. DNS hosting is free for up to 500 domains per account, with no per-query charges and no usage-based billing, and smart records and health monitoring are included at no extra cost. Accounts remain subject to the standard \$1/month platform minimum. [Read the announcement](https://bunny.net/blog/were-making-bunny-dns-free/) or [learn more](/docs/dns). ## Custom Response Pages for Bunny Shield Customize the challenge, block, and rate limit pages shown to visitors when Bunny Shield takes action. Replace default response pages with fully branded HTML experiences that match your website, including custom styling, messaging, and support information. Available on Advanced and higher Shield plans. [Learn more](/docs/shield/custom-response-pages) ## Direct play URLs now support query parameters and documentation improvements Added direct play URL and embed URL examples with query parameters, documented the `-auto` captions flag, and improved cross-linking between Stream pages. Updated MP4 fallback documentation to reflect support for 240p, 360p, 720p & 1080p resolutions. [Learn more](/docs/stream/storage-structure) ## CDN Connectivity documentation New documentation covering IPv4 and IPv6 connectivity across the bunny.net CDN, including network tier support, origin connectivity, CDN Acceleration with dual-stack origins, and Origin Shield for guaranteed IPv6 connectivity. [Learn more](/docs/cdn/connectivity) ## Edge Scripting support now in CLI `bunny scripts` now covers the full Edge Scripts lifecycle: `create` a script without scaffolding, `deploy` and manage `deployments` (including rollbacks), `env` for environment variables and secrets, `domains` for custom domains with SSL, `stats` for usage statistics, and `delete`. The `init` command adds `--template-repo` for custom templates and `--github-actions` / `--no-github-actions` flags. [Read the announcement](https://bunny.net/blog/build-and-deploy-scripts-at-the-edge-with-the-bunny-net-cli/) or [learn more](/docs/cli/commands/scripts). ## DNS commands in the Bunny CLI (Public Preview) `bunny dns` adds CLI management for DNS zones and records. Create, list, update, and remove records, import and export BIND zone files, manage DNSSEC, view query statistics, and configure query logging with optional IP anonymization. This command is experimental and hidden from `--help` while it stabilizes. [Learn more](/docs/cli/commands/dns) ## Shell completion for the Bunny CLI Run `bunny completion` to generate a shell completion script for tab completion in your terminal. [Learn more](/docs/cli/configuration#shell-completion) ## Storage root directory deletion support The Storage Edge API DELETE endpoint now supports deleting the root directory (`/`) of a storage zone. By default, root deletion is blocked as a safety guard. Pass `allowRootDelete=true` as a query parameter or request header to bypass this protection. [Learn more](/docs/storage/http#deleting-the-root-directory) ## AVIF output area limit Bunny Optimizer now limits AVIF output to a maximum area of 4 megapixels. Larger images automatically fall back to another format (WebP, JPEG, or GIF) to keep latency low. A new `304` processing error code is returned when this limit is reached. [Learn more](/docs/optimizer/dynamic-images/formats) ## Vary Cache by Request Headers You can now vary cached content based on the value of one or more request headers, such as `Accept-Language`. Each unique header value combination creates a separate cache entry, enabling localized content, feature flags, and device-specific experiences without sacrificing CDN caching. [Learn more](/docs/cdn/vary-cache) ## WebSocket pay-as-you-go pricing WebSocket billing has moved to pay-as-you-go pricing based on connection-minutes, replacing the previous tiered monthly subscription model. Connection limits can now be configured from 100 to 25,000 concurrent connections per zone. [Learn more](/docs/cdn/websockets) ## Stream Transcribing supported languages reference The Transcribing documentation now includes a complete reference table of all 56 supported languages with their ISO 639-1 codes. [Learn more](/docs/stream/transcribing) ## CDN Logging API enhancements The CDN Logging API now supports exact request ID lookup and includes additional fields such as JA4 TLS client fingerprint, ASN, and ASN organization in the response. [Learn more](/docs/cdn/logging/index) ## Stream compact controls added to player settings Maximize screen real estate on the bunny player with Compact Controls. Ideal for mobile and embedded players. You can now enable compact controls on your video library via the 'Compact Controls' toggle within player settings. [Learn more](/docs/stream/player-settings) ## Stream Video storage size info API endpoint & Dashboard update We've created and extended the 'Get Video Storage Size Info' endpoint, giving customers a granular, per-video breakdown of your encoded videos storage consumption over API. [Learn more](/docs/api-reference/stream/manage-videos/get-video-storage-size-info) This feature has been added to the Stream dashboard for granular video storage usage breakdown via the (i) information icon - selectable within your video library or the video page. [Learn more](/docs/stream/encoding) ## CDN Logging API v2 The CDN Logging API v2 now returns structured JSON with filtering by status, cache status, country, IP, edge location, URL, User-Agent, and Referer. [Learn more](/docs/cdn/logging) ## S3 API (Closed Preview) Added support for 4 new S3 Storage Zone regions: London (UK), Stockholm (SE), Los Angeles (LA) and Johannesburg (JH). ## Bunny CLI (Public Preview) The new Bunny CLI lets you manage bunny.net resources from your terminal. The initial release supports Bunny Database: create databases, open an interactive SQL shell with `bunny db shell`, generate auth tokens, and browse data with `bunny db studio`. [Read the announcement](https://bunny.net/blog/introducing-the-bunny-net-cli/) or [learn more](/docs/cli). ## Per-request control for Request Coalescing You can now enable or disable Request Coalescing per request using Edge Rules, allowing more granular control over caching behavior. [Learn more](/docs/cdn/request-coalescing) ## Stream compact controls - bunny player feature Maximize screen real estate on the bunny player with Compact Controls. Ideal for mobile and embedded players. You can now enable compact controls on your video library via the 'update video library' API endpoint or by adding 'compactControls=true' to your player embed parameters. [Learn more](/docs/api-reference/core/stream-video-library/update-video-library#response-enable-compact-controls) ## Stream 'Add video library' API update The Stream 'Add video library' API endpoint can now pre-configure premium encoding, transcribing, video resolutions and more in a single API call.
[Learn more](/docs/api-reference/core/stream-video-library/add-video-library)
## AVIF support The Optimizer now supports AVIF as both an input and output format, offering better compression than WebP with excellent quality. [Learn more](/docs/optimizer/dynamic-images/formats) ## Image Upscaling Introduced the 'upscaling' parameter to allow images to be enlarged beyond their original dimensions using resampling. [Learn more](/docs/optimizer/dynamic-images/resizing) ## Seamless Domain Migration Introducing seamless domain migration with SSL certificate issuance via DNS verification, allowing zero-downtime transitions to bunny.net. [Learn more](/docs/cdn/seamless-migration) ## API Guardian Introducing API Guardian, a new feature in Bunny Shield that provides schema-aware protection for your APIs. It enforces your OpenAPI contract at the edge, ensuring requests and responses match your application's expectations, and stops invalid or abusive traffic before it reaches your origin. [Read the announcement](https://bunny.net/blog/introducing-bunny-shield-api-guardian-protection-that-understands-your-api/) or [learn more](/docs/shield/api-guardian). ## Bunny Player This release makes playback smoother and more reliable everywhere. We've upgraded media-chrome to 4.19.0, fixed Firefox H.265 seeking and referrer handling, tightened Chromecast sync, and cleaned up iOS fullscreen transitions. Early-play and JIT videos start has improved, heatmaps work on token-protected embeds, and we've refined French UI translations and expanded RUM monitoring to new regions. ## Stream API Upgraded Smart feature language model to v5.4 for higher quality generation. JIT watermarking is now more reliable, accurate, and consistent. Cleanup unconfigured resolutions endpoint now supports MP4 removal [Learn more](/docs/api-reference/stream/manage-videos/cleanup-unconfigured-resolutions#parameter-delete-mp4-files) ## S3 API (Closed Preview) CopyObject now handles source objects up to 5 GB and plays nicely with multipart uploads, CORS works across pre-signed URLS. ## Transcribing upgrade Transcribing language model has been upgraded to v1.2.0 for faster and higher quality transcriptions. [Learn more](/docs/stream/transcribing) ## Free encoding Increased capacity and performance improvements to Stream Free encoding for faster transcoding and shorter queue time. [Learn more](/docs/stream/encoding) ## S3 API 'Closed Preview' Added presigned URL support for S3 via the AWS CLI presign command. ## Language detection for transcribing Transcribing now includes language detection information, making it easier to manage multi-language video content. [Learn more](/docs/stream/transcribing) ## Vimeo2Bunny CLI A new command-line tool to migrate videos from Vimeo to Bunny Stream. Videos transfer directly from Vimeo via Fetch Video URL — nothing is downloaded to your machine. [Learn more](/docs/stream/vimeo2bunny) ## Edge Rule pattern matching Use Lua-based pattern matching in Edge Rule conditions to match structured request values such as URLs, headers, cookies, and query strings. [Learn more](/docs/cdn/edge-rules/pattern-matching) ## Database Shell The Bunny Database Shell (`bsql`) is a standalone, interactive SQL shell for querying and managing your database from the terminal. It supports dot-commands, multiple output formats, and persistent history. [Read the announcement](https://bunny.net/blog/introducing-the-interactive-bunny-database-shell/) or [learn more](/docs/database/connect/database-shell). ## Webhook signature validation Validate webhook signatures to verify that incoming notifications are genuinely from Bunny Stream and have not been tampered with. [Learn more](/docs/stream/webhooks) ## Player 2.0 The new Bunny Stream video player is here with a modern interface and improved performance. It's enabled by default for all new video libraries. [Learn more](/docs/stream/player) ## Templates Deploy pre-built application templates with just a few clicks. Each template includes a ready-to-run container image, and some include a sidecar database. [Read the announcement](https://bunny.net/blog/skip-the-setup-with-full-stack-templates-on-magic-containers/) or [learn more](/docs/magic-containers/templates). ## Quick Deploy A streamlined deployment flow that lets you go from zero to deployed in seconds, with everything presented in a single form. [Learn more](/docs/magic-containers/quick-deploy) ## JA4 fingerprinting JA4 TLS fingerprinting is now available on all pull zones. Identify clients based on their TLS handshake characteristics via the `CDN-JA4` request header. [Learn more](/docs/cdn/security/ja4-fingerprinting) ## Logging and Permanent Log Storage updates Logging documentation has been updated with improved details on log retention, and Permanent Log Storage now includes specifics on part rotation, file size limits, and GZip compression. [Learn more](/docs/cdn/logging/permanent-storage) ## Mobile SDK token authentication Token authentication is now available for the Stream Mobile SDKs, adding an extra layer of security for mobile video playback. [Learn more](/docs/stream/mobile-sdk-token-authentication) ## Node.js file system API A Node.js-compatible file system API is now available in Edge Scripts, allowing you to read and write files directly at the edge. [Learn more](/docs/scripting/node-fs) ## Bunny Database (Public Preview) Bunny Database is now available in [Public Preview](/docs/product-release-stages#stage-2-public-preview). A globally distributed, SQLite-compatible database service that handles scaling and replication automatically. [Read the announcement](https://bunny.net/blog/meet-bunny-database-the-sql-service-that-just-works/). ## Graceful Shutdown New applications now have a default grace period of 30 seconds (up from 1 second), giving your applications more time to clean up resources and complete in-flight requests during rolling updates and scaling events. [Learn more](/docs/magic-containers/graceful-shutdown) ## Smart Chapters Automatically generate chapters for your videos using AI. Smart Chapters analyzes your video's caption track to create chapter markers. [Learn more](/docs/stream/smart-chapters) ## SQL API Execute SQL queries against your Bunny Database over HTTP using the SQL API. [Learn more](/docs/database/connect/sql-api) ## WebSockets with Edge Scripting Call `request.upgradeWebSocket()` in an Edge Script to hold a two-way, low-latency connection open between your script and connected clients. Enable WebSockets on the Pull Zone first, then handle the `open`, `message`, and `close` events and send frames back with `socket.send()`. [Learn more](/docs/scripting/websockets) ## Database SDKs Connect to Bunny Database using official SDKs for TypeScript, Go, Rust, and .NET. [Learn more](/docs/database/connect/typescript)