Product changelog

The latest features, improvements, and bug fixes.

Search titles, descriptions, products, and versions.

Change type

All product updates

226 updates

Version 2.9.170

ImprovementRegistry

Registry Counts Images, Not Tags

The Container Registry now counts images by digest instead of counting every tag as an image, and explains its retention rule more clearly.

  • Repository lists, the registry summary and each repository page now count images by digest, not tags: six tags that point at three digests read as three images. Lists and repository pages show the tag count next to it, and the tag table is labelled Tags
  • The notice about images deployed by Rapids containers and the delete confirmations count images too: deleting selected tags says how many images go and lists the other tags that share their digest. Counts cover your project only and leave out repositories that are being deleted
Show 2 more changes
  • The retention wording now says what the rule does: it keeps the number of newest undeployed images you choose, plus every image a Rapids container is deployed from, and tags on one digest count once. The field is now called Undeployed images to keep; the rule itself is unchanged
  • The docs gain an Automatic image retention section with an example: a limit of 2 with one deployed image can keep three images. Changing the setting does not remove anything at once; the new rule applies on the next push to that repository
Read documentation (opens in a new tab)

Version 2.9.169

Bug fixManaged Apps

Managed Apps Fixes: Ghost Links, Stuck Status and n8n Emails

Managed Ghost uses your primary domain in its links, apps no longer get stranded in provisioning, and n8n memory problems send one email.

  • When you set a custom domain as a Ghost site's primary domain, Ghost's absolute links, canonical tags, sitemap and feeds now use that domain; they kept pointing at the built-in apps.danubedata.ro address before. Changing the primary domain restarts Ghost briefly and the console says so, and if you remove the primary domain with no active replacement, Ghost goes back to its built-in address
  • A managed app whose container restarted for about a second could be left showing Provisioning after it was ready again, and while it showed that you could not stop or delete the app. The platform now checks the app's live state before it records a change, one update at a time per app, and any later status update repairs an app that was already stuck
Show 1 more changes
  • When an n8n instance runs out of memory and its PostgreSQL or Redis companions restart because of it, you now get one email, n8n memory limit reached with the instance name, that links to the instance and suggests smaller workflow batches, a review of its parameters or a larger plan, instead of a separate container health email for each. Other failures, such as an image pull error, and crashes after the 30-minute incident window still get their own email

Version 2.9.168

ImprovementRapids

Rapids Events Are Kept After a Pod Is Replaced

The events endpoint now keeps the Pod events the platform has seen for seven days, so you can still read why a Pod was replaced or deleted.

  • GET /api/v1/serverless/{id}/events, and the serverless_events tool of the MCP server, now also returns the Pod events the platform observed for your container over the last seven days, merged with the live ones. Before, a replaced or deleted Pod took its events with it and the endpoint could show only the Pods that still existed.
  • Events are collected by a health scan every five minutes, so a short-lived Pod or event can be missing, a single answer holds at most 500 events, and nothing from before this change is recovered. An empty list does not prove that nothing happened.
Show 2 more changes
  • The meta of the response now says whether live events (live_available) and retained events (retained_available, with retained_reason when they could not be read) were available, plus retention_days and sampling_interval_minutes. When the live events cannot be read, the retained ones are still returned.
  • Only Pod events are retained; other platform events stay short-lived. The call still needs the serverless:diagnostics ability.

Version 2.9.167

FeatureRapids

Connect Databases, Caches and Queues to a Rapids Container

A new Connections tab adds a database, cache or queue from your project to a Rapids container as environment variables and deploys a new revision without rebuilding the image.

  • Open a Rapids container's new Connections tab, choose Connect service and pick a running database (PostgreSQL, MySQL or MariaDB), cache (Redis, Valkey or Dragonfly) or RabbitMQ queue from the same project, review the variables it will add, then choose Connect & deploy. A new revision is deployed with them, without rebuilding your image, and the tab shows your services as a map or a list.
  • Connection URL only adds just the URL. Without it, a database gets DATABASE_URL plus DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME and DB_PASSWORD (the database's admin user); a cache gets REDIS_URL plus REDIS_HOST, REDIS_PORT, REDIS_USERNAME and REDIS_PASSWORD; a queue gets AMQP_URL plus AMQP_HOST, AMQP_PORT, AMQP_USERNAME, AMQP_PASSWORD and AMQP_VHOST. They point at the service's private address inside your project.
Show 5 more changes
  • An optional prefix such as ANALYTICS_ lets one application use several services of the same type. A variable you added by hand is replaced only if you confirm it, a variable that belongs to another connection is never overwritten, and passwords and URLs stay masked in the preview and in the tab.
  • Choose Create new to provision the service from the same flow: you go through the normal create page, which shows the engine, plan, storage and price, return to the container, and the connection is filled in once both the service and the container image are ready; if that takes more than an hour, the connection shows an error and you disconnect and try again. A container deployed from Git or a ZIP file needs its first build to finish before an existing service can be connected.
  • Applied means the variables are in a confirmed active revision; on a stopped container they are saved and take effect at the next start. Disconnect service keeps the service and its data and removes only the variables you have not changed. A rotated password is not copied into an existing connection: disconnect and reconnect to pick it up.
  • If the service's firewall lists specific sources for its port, add the container under Sources, or its connections are refused.
  • Through the API, a container response now carries environment_snapshot. Send it back with environment_variables when you update the environment of a container that has a connected service: a missing or stale snapshot is refused with HTTP 422. Requests that leave out environment_variables are unaffected, and connections themselves are made in the console only. Clients that do not send it yet, including danube CLI 1.8, cannot change the variables of such a container: use the console or the API directly.
Read documentation (opens in a new tab)

Version 2.9.166

ImprovementDatabases

Download Your PostgreSQL CA and Verify Pooler Hostnames

Download the CA your managed PostgreSQL database presents right now, in the console or over the API, and verify the connection pooler's hostname with sslmode=verify-full.

  • In a managed PostgreSQL database's Connectivity tab, Download the CA certificate (PEM) now gives you the CA the database presents right now, read live from the database, and a new Certificate authority card shows the current CA's expiry date and SHA-256 fingerprint; a database still on the older setup keeps the ZIP download
  • The same certificate is available over the API: GET /api/v1/database/{id}/ca-certificate with a token that can read databases returns the PEM bundle, its expiry date and its SHA-256 fingerprint, and never a private key. A 503 means the CA could not be read for the moment, so try again; a database still on the older setup answers 404
Show 2 more changes
  • The Connection pooler's certificate now lists the pooler's own private service names on new databases, and on existing databases once their configuration is next applied, so sslmode=verify-full can verify the pooler at the private address its card shows
  • The default CA is valid for about 90 days. It renews itself with the same key, but a PEM file you already installed does not update itself, so download the CA again and refresh it in your clients before its expiry date
Read documentation (opens in a new tab)

Version 2.9.165

ImprovementPlatform

Account Deletion Requests Stay Open Until Done

If deleting your account can't be finished, your request is now kept and finished for you, and we email you when it is done.

  • If deleting your account fails, the page now says your request is saved and we have been alerted, instead of leaving you with an error. We finish the deletion and email you once it is done, so you don't need to ask again
  • When your account is deleted we email you what was deleted and what we keep, and if you didn't ask for it, the email tells you to write to support right away
Show 4 more changes
  • As soon as you ask to delete your account, we stop the product tips and reminders we send you
  • We keep invoices and payment records for as long as the law requires, typically 7 years. About 30 days after your account is deleted we erase any written feedback you left, your name, your email address and the account and project identifiers attached to your request; the reason options you chose stay
  • A member of a project who started a database or cache update there can now delete their own account. The deletion used to fail, and the update now stays in the project's history without saying who started it
  • If other people's projects are billed through one of yours, deleting your account now names that project and says its linked organizations must be unlinked first, instead of failing. Linked projects you own yourself are deleted with the account and no longer block you
Read documentation (opens in a new tab)

Version 2.9.164

ImprovementPlatform

DanubeData Emails Have a New Look, With Dark Mode

The emails we send now share one new layout with a dark mode, a width that fits a phone and clearer buttons.

  • Emails share one layout: a navy header with the DanubeData wordmark, one heading, rounded notices, facts shown as a tidy list, and pill-shaped buttons in the brand green instead of blue
  • In mail apps that follow your device's dark mode, emails switch to a dark theme, and text and button colors were checked against WCAG AA contrast in both themes
Show 4 more changes
  • The layout fits a phone screen: the card shrinks to the width, facts stack and buttons fill the line
  • The wording keeps its meaning, headings and buttons written in the email templates are in sentence case (subject lines and the titles and buttons of some notification emails still use title case), and the links and who receives each email are unchanged
  • The card-expiry email now links to the Payment methods tab of Billing; the link it had led to a page that did not exist
  • The failed cache and database emails now show the engine and version, which were blank
Read documentation (opens in a new tab)

Version 2.9.163

AnnouncementPlatform

Billing Emails Now Come From billing@danubedata.ro

Invoices, payment notices and other billing emails now come from DanubeData Billing at billing@danubedata.ro, with replies still reaching support.

  • Emails we send about invoices and payments, reminders and warnings about unpaid invoices, suspensions and terminations, expiring cards, credits and referral rewards, pricing changes and budget alerts now come from DanubeData Billing at billing@danubedata.ro; add it to your allowlist or mail rule if you file invoices into a folder or an accounting tool
  • Replies to those emails still reach support@danubedata.ro, and a digest email that holds only billing notifications uses the billing sender while a digest that mixes in other notifications keeps the usual one
Show 1 more changes
  • All other account mail keeps the usual sender: sign-in and verification emails, security notices, alerts, tickets and Terms of Service notices

Version 2.9.162

Bug fixRapids

Rapids Fixes: Image Checks, Rollbacks, Git Builds and Emails

Rapids now refuses malformed image references, reports a deployment as successful only when it is ready, rolls back a stuck one, and fixes Git builds, container names and repeated failure emails.

  • An incomplete image reference, such as cr.danubedata.ro/my-team/ with no image name, is now refused by the Create and Edit forms and by the API before anything is deployed. It used to pass the check, turn into an unusable :latest reference and fail later when the image was resolved
  • Checking a public image on ghcr.io, or on another registry that answers an anonymous request with a token challenge, no longer reports Registry requires authentication. A private or missing image with no credential attached still does
Show 5 more changes
  • A deployment now counts as successful only once its new revision is ready. Until then it stays in progress with no traffic, the previous deployment keeps serving, and the success is recorded in your audit log only when the revision is ready
  • A rollout that is still not ready after 30 minutes is abandoned and, when an earlier working configuration exists, the container goes back to it. That rollback used to fail on the container's sizes, so the container kept the broken configuration. The Startup deadline (seconds) setting, under Advanced in the Runtime section of the Edit page (30 to 1800), sets how long a new revision has to become ready before the rollout is marked failed
  • Building a container from Git with a stored access token or SSH key no longer fails from its second build on. The build stopped before it started with a 409 conflict error and the container was marked as errored
  • A container that recovers briefly between crashes no longer emails you at every crash: the first failure still emails you, later failures and health alerts about the same container share one cooldown, and a failure after 30 minutes of steady recovery emails again. In-app notifications continue as before
  • Two projects can now use the same container name, because a name only has to be unique within your project. Creating a container with a name another project uses used to fail, and a duplicate inside your project is refused with a clear message even when two requests race

Version 2.9.161

ImprovementBilling

Set Up Billing Without Leaving the Create Page

When a create page needs billing details or a card, you can add them in place and carry on with everything you entered still there.

  • The notice at the top of a create page that needs billing has a Set up billing button (Add a card once your billing details are saved); it opens a panel for your billing details if they are missing and then your card, and returns you to the same page with the form as you left it
  • It works on the create pages for VPS, databases, caches, queues, buckets, Rapids containers, apps and Storage Share, on the paid-plan page for static sites and on the dashboard of a new project; static sites on the Free plan need neither billing details nor a card
Show 4 more changes
  • Adding a card places a temporary hold that is released right away, so you are not charged, and your bank may show it as pending for a few days
  • A card that is refused shows its reason in place with a way to try again or try another card, and where the refusal needs our help (a country mismatch, for example) the message links to support in a new tab, so the form you are filling in survives
  • A project whose invoices are paid by another organization gets a See who pays button instead of a card form, and a suspended project is told to contact support
  • First-time setup and a new project's dashboard now say up front that everything except free static sites needs billing details and a card
Read documentation (opens in a new tab)

Version 2.9.160

ImprovementPlatform

Console Navigation, Notices and First-Time Setup

The sidebar is grouped by task, the header says Create, notices and dialogs behave the same everywhere, and new accounts are asked what to run first.

  • The sidebar groups destinations by task: Compute & hosting, Data services (Databases, Cache Instances, Queues and Parameter Groups), Storage (Storage Share included), Networking & security, and Observability (Logs, Uptime Checks, Resource Alerts and the Activity Log); Dashboard and Favorites stay at the top, Billing, Account limits, Support and Documentation sit in a footer, and pressing / jumps to the menu filter.
  • The header's Deploy button is now Create and offers the same services as the dashboard's Create menu, and the status chip opens your fleet with a count for each product that links to its list.
Show 5 more changes
  • In the notification bell the title and Mark all as read stay in view while the list scrolls, screen readers announce which notifications are unread, and a failed load offers Try again; What's new tags each update with its type in words.
  • Errors and messages that carry an action stay on screen until you dismiss them, while timed messages pause when you hover or focus them or switch to another tab.
  • System notices from us collapse into one bar that shows how many there are and the most serious one; open it to read them, dismiss the ones that can be dismissed one at a time or together with Dismiss N notices, and a dismissal carries over to your other open tabs.
  • Dialogs and drawers behave alike: Escape closes only the top-most one, focus stays inside and returns to where you were, a confirmation cannot be dismissed while its request is running, and a destructive confirmation starts with Cancel focused.
  • When you sign up and create your first project, one optional question asks what you want to run first (a static site, object storage, a VPS shown as Pod, a database, a Rapids container or an app) and takes you to the page where you create it (for an app, the app catalog); product links on danubedata.ro carry your choice through sign-up, including Google and GitHub sign-in, and accounts that already have a project are not asked.

Version 2.9.159

Bug fixPlatform

Console Fixes: Safari Rows, Dialogs, Notices and the Tour

Safari opens the row you click, dismissed notices stay hidden on reload, and the product tour restarts from the dashboard.

  • In Safari, clicking a row in a console list (for example Databases) opened the last row of that list instead of the one you clicked; each row now opens itself, and middle-click, Cmd-click and Copy Link work anywhere on the row
  • Closing a dialog and asking for it again within a fraction of a second (for example Cancel, then straight to Confirm it's you) no longer shuts it again moments later
Show 5 more changes
  • With your device set to reduce motion, dialogs now only fade in and out instead of also sliding and scaling
  • Dismissed system notices and the dashboard's testimonial request card no longer appear for a moment when the page reloads before disappearing
  • Restart product tour (in the Help menu and the account menu) and Take the tour again (on your Profile page) now take you to the dashboard and start at the welcome step; before, the tour opened on whatever page you were on, so the Dashboard and Create steps had nothing to point at
  • The product tour now follows your sidebar: it skips services that are not available to your project, adds steps for Logs, Uptime checks and the Activity log, keeps keyboard focus inside the tour, finishes even if you click a resource link on the last step, and shows a message with Close for now if saving your progress fails
  • On the changelog page, Subscribe to updates now opens the newsletter sign-up

Version 2.9.158

ImprovementPlatform

Custom Domains: Waiting for DNS and Clearer Certificate Errors

Custom domains now wait for their DNS record before requesting a certificate and say what is blocking one when it does not arrive.

  • Static Sites, Managed Apps and Storage Share: a verified domain whose DNS record is not published yet now shows Waiting for DNS. While your DNS provider's own nameservers say the record does not exist, the certificate is not requested, so it does not start while resolvers still answer not found. If we cannot get an answer from those nameservers, the domain is connected as before. We look again every minute on the first day and hourly after that, connect the domain ourselves, and you do not need to click Verify again. A domain still waiting after seven days is connected anyway
  • Static Sites, Managed Apps and Storage Share: if a first certificate takes longer than ten minutes because the domain does not resolve yet, the domain now says so and explains that resolvers can keep an earlier not-found answer for up to an hour. A failed DNS lookup is described in plain words instead of showing the resolver's raw message
Show 3 more changes
  • Rapids: a TXT record at _acme-challenge.your-domain, next to the CNAME the console shows as the certificate record, stops the certificate from being issued. Check this record in the domain drawer now names that TXT record and tells you to delete it and keep only the CNAME, the domain shows Waiting for DNS with the same message, and the certificate error names the record instead of asking you to check records that were right
  • After you fix the record, automatic certificate retries can still be up to 32 hours apart; contact support to have the certificate requested straight away
  • On a root domain whose public addresses match your product's hostname, the domain drawer now shows a neutral DNS addresses match note instead of asking you to replace a record. Public DNS cannot show whether your provider uses an ALIAS, ANAME or flattened CNAME, or fixed A and AAAA records, so check the record type at your provider. This applies to Static Sites, Rapids, Managed Apps and Storage Share domains
Read documentation (opens in a new tab)

Version 2.9.157

ImprovementPlatform

Rebuilt VPS, Cache, Database and Queue Pages

VPS, Cache, Database, Queue, Parameter Group and Networking pages now share one layout, with search across every page of a list, bulk start and stop, and tabs you can bookmark.

  • In the VPS list you can tick VPS and Start, Stop or Reboot them together: a confirmation says how many of your selection the action applies to and leaves the others as they are, and search (name, IPv4 or IPv6 address, image) and the status filter now cover every page of the list instead of only the rows on screen.
  • A VPS page leads with the one action that fits its state (Connect while it runs, Start when it is stopped) and keeps Stop, Reboot, Change plan, Reinstall and Delete under More; Delete is refused while the VPS still has volumes, in the console and in the API, so delete its volumes first.
Show 5 more changes
  • In the Cache list, search by name, version or engine and the status filter now cover every page; a cache's page has Connect, Nodes, Metrics, Backups, Updates, Access and Settings tabs, plus Parameters when the cache supports parameter groups, and Stop is no longer offered for operator-managed Redis and Valkey caches, which cannot be stopped (it used to mark them Stopped while they kept running).
  • In the Database list, search by name, database name or hostname and the status filter now cover every page, the figures above the list count your whole team, and you can tick databases to Start or Stop them together; on a database's page, Connect opens a drawer with the address, the password and connection string behind a reveal, and examples for psql, Node.js, Python, PHP and Go (PostgreSQL) or the mysql or mariadb client, Node.js, Python and PHP (MySQL and MariaDB) that never contain the password.
  • In the Queue list, a click opens the queue's details in a drawer with its connection details, lifecycle actions and an Open queue link; the queue page keeps its sections in pinned tabs and its actions under More, and on the Metrics tab Deliver rate, Messages unacknowledged and File descriptors used now show plain counts, where they were labelled in milliseconds or percent.
  • Parameter groups filter by type, engine and owner, sort by engine, owner, parameters or last update, and show how many of your instances use each group; a group's page has Parameters, Used by and Settings tabs, Compare with a group opens in a drawer, and a system group offers Clone to edit.
  • Networking has an Internal endpoints tab with a copy button for each address and a Peering tab that follows a peering until it is ready; on a private network's page each attached VPS has Detach, and one waiting for a restart also has Try again; creating a network or attaching a VPS happens in a drawer.

Version 2.9.156

FeatureAPI

Manage Projects, Members and Invitations From the API and MCP

API tokens and MCP agents can now create, rename and delete projects and invite and remove members, with a separate opt-in permission for each action.

  • List and read projects with GET /api/v1/projects, create one with POST /api/v1/projects, rename it with PATCH /api/v1/projects/{team} and invite someone by email with POST /api/v1/projects/{team}/invitations; the invitation goes through the usual email acceptance, and you get the same security email as when you invite from the console
  • GET /api/v1/projects/{team}/members lists the owner first and then the accepted members with their id, name, email and role, and DELETE /api/v1/projects/{team}/members/{user} removes one; the owner cannot be removed, and the removed member's tokens locked to this project are revoked
Show 5 more changes
  • DELETE /api/v1/projects/{team} deletes an empty project: it is refused for a personal project, while any resource or retained data remains (including stopped or deleting resources, retained backups, registry repositories and customer-managed secrets), and while linked billing organizations or unpaid or uninvoiced charges remain; the console's Delete project now makes the same checks and lists what is left
  • Each action has its own opt-in permission that existing tokens do not gain: project:read, project:create, project:write, project:invite, project:members:read, project:members:delete and project:delete; a token with all abilities, such as the one danube login creates, includes them
  • Creating a project needs an account-wide token; renaming, inviting, removing members and deleting need you to be the project owner; a token locked to one project reaches only that project; and every change needs a verified email and shares a limit of 10 requests a minute per user
  • The same operations are MCP tools in the account toolset: projects_list, projects_create, projects_get, projects_update, projects_invitations_create, projects_members_list, projects_members_delete and projects_delete
  • MCP agents are now told to call user_teams first and use a returned project ID instead of guessing one, and a call refused for project access says how to pick a valid project
Read documentation (opens in a new tab)

Version 2.9.155

FeatureManaged Apps

Send Managed Ghost Email Through Your Own SMTP Provider

Managed Ghost instances get an Email (SMTP) tab where you connect your own provider, so password resets and staff invitations are sent through it.

  • Open a Ghost instance and choose the new Email (SMTP) tab to connect your own provider for password resets and staff invitations, which could not be delivered before because Ghost tried to send through localhost. A project owner or administrator can manage it.
  • Turn on Enable SMTP and enter your provider's public SMTP hostname, username and password. Choose STARTTLS on port 587 or 2525, or TLS on port 465; unencrypted SMTP is not supported. Then enter a sender address verified with your provider and, if you like, a sender name.
Show 4 more changes
  • Save and apply restarts Ghost, so your site is briefly unavailable while the settings take effect. If applying fails, use Retry applying.
  • Once the settings are applied, Send test email sends a message to your DanubeData account's verified email address only. Provider acceptance does not guarantee inbox delivery, so check your spam folder too.
  • The password is stored securely and cannot be viewed; leave the field blank to keep it. Turning SMTP off stops Ghost from sending password resets and invitations until you enable it again.
  • This is for transactional email only: Ghost newsletters use a separate Mailgun integration that you configure in Ghost Admin.
Read documentation (opens in a new tab)

Version 2.9.154

AnnouncementRapids

Rapids Containers Moved to New IP Addresses

The addresses that receive traffic for Rapids containers changed on 15 October 2026; your danubedata.run hostname is the same, but anything pinned to a fixed IP needs a look.

  • Your container's danubedata.run hostname did not change, so nothing is needed if you use it directly. A custom domain with a CNAME to that hostname, or a root domain whose ALIAS, ANAME or flattened CNAME points at that hostname, follows the new addresses by itself
  • If your domain has fixed A or AAAA records, replace each with the new address of the same family: IPv4 178.63.243.56 (was 138.199.134.76) and IPv6 2a01:4f8:2b04:54d::1:0 (was 2a01:4f8:c011:462::1). Better still, switch to a CNAME, or an ALIAS on a root domain, so a future change needs nothing from you
Show 5 more changes
  • Also look for the previous addresses in CDN or proxy origin settings, reverse-proxy configurations, destination allowlists and clients that connect to a fixed IP. Check IPv4 and IPv6 separately
  • Existing containers moved between 07:22 and 09:06 UTC on 15 October, and every other danubedata.run hostname, including containers created since, followed at 09:24 UTC
  • The previous addresses still serve traffic for now, so clients that use them keep working; the docs page for this change is where their status is kept
  • DNS answers are cached, so for a few minutes some clients still used the previous addresses, and connections opened before the change stay on them until they reconnect. Make your application reconnect and retry failed requests safely
  • The page explains how to check each kind of setup in your DNS provider and with dig, and what to include in a support ticket if you are unsure how a fixed address is used
Read documentation (opens in a new tab)

Version 2.9.129

FeatureAPI

Connect Your AI Agent with the DanubeData MCP Server

Claude Code, Cursor, VS Code, Codex and OpenCode can now operate your infrastructure through typed tools: nearly every API operation, limited by the token you give the agent.

  • Add https://danubedata.ro/mcp to your MCP client with an API token, then ask your agent for what you need: it creates, inspects and fixes resources through tools such as database_create and vps_list
  • In Security, API tokens, the AI agents card creates a token for the agent, lets you choose the tools and writes the configuration for Claude Code, Cursor, VS Code, Codex or OpenCode
Show 5 more changes
  • The tools are generated from the same specification as the API reference, so a new API endpoint becomes a tool as soon as it ships
  • Each tool call is an API call made with the agent's token, so the agent can do exactly what that token can do. Add read_only=1 to the address to list only the tools that read
  • Name toolsets in the address, such as toolsets=vps,database, to give the agent only what the task needs
  • Every answer from the API carries the HTTP status and the API's own JSON, and a refused call says what to do next
  • The MCP server costs nothing on its own. Most tools need a payment method on file for the project, and what an agent creates is billed like anything you create yourself
Read documentation (opens in a new tab)

Version 2.9.153

Bug fixNetworking

Firewall API: Lossless Updates and Protected Default Firewalls

Reading a firewall through the API and writing its rules back now leaves it unchanged, and a VPS's default firewall can no longer be detached, deleted or stripped of its locked rules.

  • Listing a firewall (GET /api/v1/firewalls or GET /api/v1/firewalls/{id}) now returns each rule's port, an is_locked flag and its source_instance_ids as id and type pairs, so a rule you list and send back in PUT /api/v1/firewalls/{id} is the rule you had. Before, the listing left out the single port and the sources, and a rule written back without them applied to every port and admitted traffic from anywhere
  • A rule sent back with its id and without a port, source_ips or source_instance_ids field keeps what it had, while port or source_instance_ids set to null still means every port or no restriction. Rule ids are matched whatever their letter case
Show 3 more changes
  • Rules saved before sources carried a type are listed with the type they resolve to among your project's resources; one that matches no resource is listed with a null type and the update asks you to remove it. Writing a listed rule back stores the typed source, and from then on the firewall applies the rule as listed
  • Outbound ports 25 and 465 stay blocked on a VPS's default firewall, whatever you send through the API: an update no longer deletes those locked rules, and a rule that would allow them is refused with a 422 that names the rule
  • A VPS's default firewall can no longer be detached, deleted or attached to another instance through the API: each answers 422, as in the console

Version 2.9.128

ImprovementAPI

API Lists Say How to Page Through Them

Paged lists now document their page and page size, five more lists honour per_page, and GET /user/teams says which project a token is locked to.

  • Paged lists in the API reference document page, and the bounds of per_page: 1 to 200 on most lists, lower where a list says so
  • Firewalls, Rapids runs, webhook deliveries, parameter groups and block volumes now honour per_page
Show 2 more changes
  • GET /api/v1/user/teams always returns data as a list, sorted by name, and adds token_team_id: the project the token is locked to, or null for a token that works in all your projects
  • Adding an SSH key through the API honours is_default, and every SSH key says whether it is your default
Read documentation (opens in a new tab)

Version 2.9.127

ImprovementPlatform

danube CLI 1.8 Knows Where Your Token Works

The CLI now refuses a project your token would be refused in, offers your SSH keys when you create a VPS, and pages through Rapids runs.

  • danube login selects the project a project-only token works in, and danube whoami says where the token works
  • danube project ls marks the projects a token cannot be used in, and danube project select refuses them with a clear message instead of every later command failing with a 403
Show 3 more changes
  • Interactive danube vps create lists your SSH keys with your default key first, instead of asking for a key ID
  • danube rapids runs ls reaches older runs with --page, and shows up to 200 a page with --limit
  • Update with npm i -g @danubedata/cli@latest
Read documentation (opens in a new tab)

Version 2.9.152

FeatureAPI

API Tokens Can Open Support Tickets and Request Limit Increases

Scripts and AI agents can now open, follow and answer support tickets with an API token, and ask for higher account limits that wait for the project owner's approval.

  • Open, list, read, reply to and resolve support tickets with /api/v1/support-tickets using a token that has the support:read and support:write abilities; neither is on by default and tokens you made earlier do not have them, so tick them on the token under Security, API tokens (a token with all abilities, such as the one danube login creates, can use tickets too)
  • A ticket opened or a reply sent with a token is marked as coming from an API token and names it, and you get an email that names the token when it opens a ticket and a short one when it replies (at most once an hour for each ticket); before we change anything or share account data because of what a token sent, we verify the sender with your customer number, account email and support PIN, so set a support PIN first
Show 5 more changes
  • Each person can open 10 tickets and send 60 replies an hour through the API, an Idempotency-Key header makes a retry safe, files can be added in the console only, and tickets work even when your project has no card yet or a payment has failed
  • To ask for higher limits with a token, give it the account-limits:request ability and POST /api/v1/account-limits/increase-requests; nothing changes when the request arrives, because it waits for the project owner, who is emailed and decides it in the console, where approving asks them to confirm it's them
  • The agent polls GET /api/v1/approvals/{id} until the approval stops being pending; only one request can wait per project, a request nobody decides within 24 hours expires, and an approved one goes to our team for review like a request filed on the Account limits page
  • On the support ticket endpoints, a token that lacks support:read or support:write now gets a 403 that names the missing ability, such as: This token does not have the support:write ability
  • In the MCP server the same operations are the support_tickets_list, support_tickets_create, support_tickets_get, support_tickets_replies_create and support_tickets_resolve tools, plus account_limits_increase_requests_create and approvals_get
Read documentation (opens in a new tab)

Version 2.9.151

FeaturePlatform

Support by Email: Replies Land on Their Ticket

Reply to a ticket email from the address you wrote from and your answer joins the ticket, and an email to support@danubedata.ro now opens a ticket of its own.

  • Reply to an email about a ticket from the address you wrote from, your account's address or your project's billing email, and your answer joins that ticket, with up to 5 files of 10 MB each (pictures, PDFs, plain text and zips). A ticket that was waiting on you, or was resolved or closed, reopens
  • Write your answer above the line that says Reply above this line in our ticket emails; what your mail program quotes below it is left out of the ticket
Show 4 more changes
  • An email to support@danubedata.ro now opens a ticket, also if you have no account, and answers to a ticket without an account reach you by email. A message over 25 MB is not imported, so use a console ticket for large files
  • A reply finds its ticket when it answers one of our emails, or keeps the ticket number in its subject and our mail checks confirm the sender, so keep the number in the subject when you write a new message about a ticket. A reply from another address, or one that does neither, opens a ticket of its own
  • A ticket you start by email shows in your console and in the Support Tickets API once it belongs to your account: at once when it comes from your account's address and our mail checks confirm the sender, or after support confirms it's you on that ticket with your customer number, email address and PIN, which attaches it to your account under the project you gave
  • Our answers keep each ticket together as one conversation in your mail program, and when an answer comes with files, the email says how many are waiting on your ticket page, because the email itself carries none
Read documentation (opens in a new tab)

Version 2.9.150

Bug fixDatabases

PostgreSQL Fixes: Updates, Stops and Restores

PostgreSQL updates are no longer blocked or left unconfirmed, a stop shows Stopping until it finishes, and a restore to a quiet moment no longer waits for new writes.

  • The Updates tab of a managed PostgreSQL database no longer says A replica scaling operation is in progress forever. A finished scaling record was never closed, so no database could be updated to a newer version; it now closes within about a minute once the database's servers match the count you set, and the tab offers the newer versions again
  • A PostgreSQL version update is now recognised as finished once its new servers are ready. Before, it was never confirmed, so it ran into its time limit, which marks the update failed and the database Error although the new version was already serving
Show 5 more changes
  • When a database, cache or queue update fails, the Updates history now says what happened in plain words, for example that the backup before the update could not be taken and nothing was changed, instead of showing internal error text
  • Stopping a PostgreSQL database now shows Stopping until it has shut down. It used to flip back to Running and then Provisioning for about three minutes before showing Stopped, and a database with open connections can still take about three minutes to stop. A new or restored database also reads Running within seconds of becoming healthy, instead of up to a minute later
  • A point-in-time restore to a moment after a quiet database's last change no longer has to wait for the source to write again, as long as the source is running and SQL Studio has been opened in your project before. The restore first commits an empty transaction on the source, which changes no data, so recovery has a later commit to stop at, and the restore timeline says so; if the source cannot be prepared, for example because it is stopped or SQL Studio has not been opened in your project yet, the restore goes ahead as before. Before, such a restore could fail and retry for many minutes
  • Removing replicas gives the room back: a PostgreSQL database that had replicas and now has none is no longer refused a new one because of your account's replica limit
  • Two databases with the same name in different projects no longer take each other's server entries, which could leave one of them showing no server

Version 2.9.149

Bug fixBilling

Billing Fixes: Teammate Cards, Countries and the Projected Cost

A teammate can add a card your organization already holds, 17 more European countries can be billing countries, and the projected cost counts database replicas.

  • A teammate can now add a card that is already saved in another project with the same owner; before, it was refused as already associated with another account, because the check compared the card's holder with the person signed in instead of the project's owner, and a card held by a different customer is still refused
  • The billing form offers 17 more European countries and territories: Iceland, Liechtenstein, Andorra, San Marino, Vatican City, the Faroe Islands, Svalbard and Jan Mayen, Guernsey, the Isle of Man, Jersey, Gibraltar, Albania, Bosnia and Herzegovina, Montenegro, North Macedonia, Serbia and Moldova; before, a company there could not complete its billing details
Show 3 more changes
  • A country that was already saved on a project but missing from the list used to show a blank required field that could not be saved; it now stays selectable
  • The postal code lookup fills in the city for most of these countries and never replaces a city you typed or had saved; the postal data is refreshed every night, and where a country has none (Britain, Guernsey, Jersey, the Isle of Man, Bosnia and Herzegovina and Montenegro, among others) you type the city yourself
  • The Projected figure on the Billing page and on the dashboard now includes your database replicas; replicas were always billed hourly as servers of their own and only the projection left them out, so it showed less than the month would cost, and your invoices are unchanged

Version 2.9.148

Bug fixDatabases

MySQL Fixes: Ready Notices, Stops and Deletes

A new MySQL database now reports ready only once it can serve, a stopped one can be deleted, and stops and settings that need a restart finish instead of hanging.

  • A new MySQL database now stays Provisioning until it can serve connections. Before, it was marked Running and the ready notification went out minutes earlier, while it was still starting
  • While a MySQL database is being deleted it keeps showing Deleting, where it used to flip to Provisioning within a second, and a removal that fails now stays in Error so you can ask for it again from the console
Show 3 more changes
  • On MySQL databases created from 23 September 2026, deleting a stopped database now completes. Before, the removal could fail repeatedly and leave the database in Provisioning, where it could not be deleted, stopped or started
  • On those databases, stopping now finishes: the status moves to Stopped once its servers are down, instead of staying on Stopping
  • On those databases, changing a setting that needs a restart now completes once its servers are back and ready. Before, such a change could not be confirmed, so it could be marked failed after 30 minutes and the restarted database set to Error

Version 2.9.125

SecurityStorage

Expired Access Keys Are Now Revoked Automatically

A key with an expiry date is now revoked within five minutes after that date, so a temporary key stops working when you meant it to.

  • Set an expiry date when you create a key through the API, the danube CLI (--expires) or Terraform; the console form has no expiry field
  • Within five minutes after that date the key is revoked, whichever kind of key it is, and from then on it rejects every request, including access a bucket policy gave it
Show 2 more changes
  • Until now the date was only recorded: an expired key for all buckets, or one named in a bucket policy, kept working until it was revoked by hand
  • Statements in a bucket policy that name the key stay in place and grant nothing; the policy editor marks them as revoked
Read documentation (opens in a new tab)

Version 2.9.126

Bug fixAPI

API Fixes: Real Retry-After Values and Keys for Updating Buckets

A rate-limited request now tells you how long to wait, and an access key can be created or edited for a bucket whose policy is being applied.

  • A 429 response now carries the real number of seconds to wait, in the Retry-After header and in retry_after in the body. Both said 0 before, so a client that obeyed them retried at once and was refused again; a client that waits the stated time is now let in
  • Creating or editing an access key for a bucket that is being updated no longer fails. The API answered 422 saying the bucket does not belong to your team, a key could not be edited at all while one of its buckets was being updated, and the console's bucket picker left such a bucket out
Show 1 more changes
  • Saving a bucket policy leaves its bucket updating for a few seconds, so a script that gives a key a folder and then creates the next key for the same bucket ran into this
Read documentation (opens in a new tab)

Version 2.9.124

FeatureStorage

Give Every Workload Its Own Key, Limited to One Folder

Several workloads can now share one bucket, each with its own key that reaches only its own folder.

  • In Security, S3 credentials, choose By bucket policy when you create an access key: the key has no access of its own and reaches only what a bucket policy gives it
  • In a bucket's Access tab, click Edit policy and use Give a key access to a folder: pick the key, the folder or the whole bucket, and a level (read only, read and write, or full access), then save
Show 5 more changes
  • Saving a policy asks you to confirm it's you, and we email you whenever what you saved changed the policy
  • Keys created for chosen buckets or by bucket policy have an ARN of their own, shown when you create the key and in its details, so a policy can name one key and no other
  • The same works over the API (scope none for a key, and endpoints to read and replace a bucket's policy or add a folder grant) and in danube CLI 1.7 with danube storage keys create --scope none and danube storage policy get, set and grant
  • A key limited to a folder cannot list the top level of the bucket, so point your S3 client at the folder; about 30 folder grants fit in one bucket policy; a key that reaches a bucket only through its policy cannot be used for SFTP on it
  • Folder grants work on buckets hosted on the current high-durability storage endpoint, the buckets that have the policy editor
Read documentation (opens in a new tab)

Version 2.9.147

Bug fixVPS

VPS Fixes: Up-Front Capacity Checks and Accurate Power States

A VPS order is now accepted only when there is room for it, a stopped VPS stays stopped, and a failed deployment says why.

  • Ordering a VPS now reserves a server and, unless you chose IPv6 only, an IPv4 address before the order is accepted. When there is no room, the console and POST /api/v1/vps answer with a 422 on resource_profile and nothing is created, instead of accepting the order and leaving it in Creating with no explanation. Orders sent at the same moment wait up to 10 seconds for their turn, and are then told to try again shortly, and the create page and GET /api/v1/vps/plans now read the free IPv4 addresses live
  • An order for a plan that is currently sold out on the processor and datacenter you chose is refused up front, in the console and in POST /api/v1/vps, instead of being accepted and failing afterwards. The message says the plan is temporarily unavailable due to capacity, or that we are at capacity for new VPS servers in that datacenter when every plan or every IPv4 address is gone
Show 4 more changes
  • A VPS you stop stays Stopped. Before, a routine deployment status update could turn a stopped VPS back to Running a few seconds later, which also blocked deleting it; the status now follows the VM's real power state
  • Reboot now asks the VPS to restart in one step, instead of switching it off and on again through two configuration changes made back to back. A failed Start, Stop or Reboot leaves the VPS in the state it is really in and sends you a notification naming the action, and a firewall change that is still being applied stays Applying, with a retry hint if it cannot be confirmed, instead of showing Error
  • A volume now shows Attached only after the running VPS has the disk. A volume created while its VPS is still provisioning waits for it, checking every 30 seconds for up to 30 minutes before it shows Failed, where it could show Attached without the disk ever reaching the VPS. The button and the status now read Delete volume, Deleting and Deleted, because removing a volume has always deleted it and its data; the API keeps its detaching and detached status values
  • A VPS that fails to deploy now says why: status_details.error and GET /api/v1/vps/{id}/diagnose (the vps_diagnose tool in the MCP server) return the code vps.capacity_unavailable or vps.deployment_failed with a message that is safe to show, where they used to give an error status with no explanation. The events list stays empty until a VM exists, because it shows only real platform events

Version 2.9.146

ImprovementVPS

VPS Console Workspace: Earlier Output, Paste Review and Root Sign-In

The VPS console gets earlier output, a reviewed paste and a Sign in as root button that works through the guest agent instead of typing the root password.

  • The Console tab, the full-window console and the pop-out window now share one toolbar: a status pill, Sign in as root, a Keys menu (Ctrl+C, Ctrl+D, Ctrl+Z, Ctrl+L, Escape, Tab, Up, Down), Paste, a Power menu (Start, Reboot, Stop), Full screen, and a More menu to connect or disconnect, copy, download or search the output, change the text size, clear it or open the console in a new window. Only project owners and administrators can open the console
  • The terminal keeps its scrollback while you switch tabs or the VPS reboots. Connecting replaces any other terminal session, and the session that was replaced offers Take over. On a phone, the Console tab offers an Open console button that opens the console in its own window, with touch keys for Esc, Tab, Ctrl+C, Up and Down
Show 5 more changes
  • Open the Earlier output panel above the terminal to read recent output the VPS printed on its console before you connected: up to 5,000 lines, capped at 256 KiB. It is shown as plain text with terminal control codes removed
  • Paste opens a review drawer before anything is sent: you see exactly what will go to the VPS (up to 64 KiB, sent in small chunks), hidden control characters such as Backspace, Escape and DEL are removed and counted, and a note warns when the text has newlines (each can run a command at once) or tabs
  • Sign in as root signs you in through the VPS's guest agent, so the stored root password is no longer typed into the console, and connecting or disconnecting no longer sends credentials or a logout. It works on a running Linux VPS with systemd. When direct sign-in is not possible, such as on an Alpine VPS or where the guest agent does not allow it, the button then offers Sign in with password, which types the root password only once the console shows its password prompt
  • Each connection asks for its own one-use ticket, which expires after 60 seconds and is sent when the connection opens, so no console credential sits in the page or in the address. Opening a console (at most once every ten minutes for each person and VPS) and each root sign-in request are recorded in your project's Activity Log
  • Output appears as the VPS prints it. Right after the new workspace shipped, a screenful of fast output such as a boot log could take seconds to draw and a key you typed could echo seconds late; both are fixed
Read documentation (opens in a new tab)

Version 2.9.145

Bug fixPlatform

Pod Health Alerts End When Your Container Recovers

A restart or out-of-memory alert now ends once the container has settled, and one incident sends one notification instead of several.

  • A restart or out-of-memory alert on a database, cache, queue, managed app, VPS or Rapids container now ends by itself once the container has run for 30 minutes without another restart (longer, up to 2 hours, when its run before the last restart was itself long); before, it could stay open for as long as the container lived.
  • The High restart count alert now needs 5 or more restarts within the last 2 hours, instead of 5 restarts at any time since the container was created, so an old, quiet container no longer raises it.
Show 4 more changes
  • The banner on a database, cache, queue or managed app page now says how many times the container restarted in the last 2 hours and when it last restarted, and the High restart count email gives the same count, instead of a lifetime count with a Last seen time that moved on every check.
  • One incident now sends one notification: out of memory, crash loop and restart count on the same container are announced once, a replica failing alongside the first or the container that replaces a failing one is not announced again, an alert our team resolved by hand does not notify you a second time for the same problem, and a container killed for memory again within 6 hours of the last such alert is not announced again; a problem that gets worse, or a different problem, is still announced.
  • Alert emails and in-app notifications are now sent from a queue, one team member at a time, with up to two retries, so one address the mail provider refuses no longer stops the rest of your team from being told or cuts short the health check of your other resources.
  • A notification still waiting to be sent when its alert has ended or been handled by our team is dropped instead of arriving late.

Version 2.9.144

SecurityVPS

VPS Console and Root Password: Owners and Administrators Only

In the console, opening a VPS console or revealing its root password now needs the Owner or Administrator role; Editors can still manage the server.

  • In the console, only a project's owner and administrators can open a VPS console or reveal its root password. Editors and the demo account can no longer do either there
  • An Editor can still manage the VPS, for example start, stop, reboot and resize it. Where the console or the password would appear (the Console tab, the full-window console, the Connect drawer and the connection details), the page says that console access is for owners and administrators and tells them to ask one of them, or to ask the owner to change their role
Show 2 more changes
  • The email that tells your team a VPS is ready still goes to every member, but it prints the root password only for recipients who may read it. For a VPS that signs in with a password, the other members are told to ask the project's owner or an administrator to arrange SSH access
  • If an Editor relies on the console today, the project's owner can change their role under Project Settings, on the Members tab, or an owner or administrator can open the console instead
Read documentation (opens in a new tab)

Version 2.9.143

AnnouncementRapids

Rapids Request Timeout Now Covers Streaming Responses

A container's request timeout now limits the whole request, so a response that is still streaming when it runs out is cut off.

  • A container's request timeout (300 seconds by default, up to 3600, set as Request timeout (seconds) under Runtime on the container's Edit page) used to stop a request only while it had not started to answer. It now limits the whole request, including a response that is already streaming.
  • A stream without a Content-Length, such as Server-Sent Events or other chunked output, ends at the timeout: the status stays the one your app sent and the body ends with the text request timeout, so nothing in HTTP marks the stream as incomplete.
Show 3 more changes
  • A download with a Content-Length closes before all the bytes arrive, so the client reports an incomplete transfer. A request still waiting for its first byte gets 504 Gateway Timeout as before, and WebSocket connections were already closed at the timeout.
  • If your app streams or keeps connections open longer than its timeout, raise the request timeout on the Edit page (up to 3600 seconds) and have clients reconnect: a browser EventSource reconnects by itself, and WebSocket clients and download tools need their own retry.
  • If a client must be able to tell a complete stream from a cut one, send your own end marker as the last event and check for it.
Read documentation (opens in a new tab)

Version 2.9.142

ImprovementBilling

After a Failed Payment, the Whole Billing Page Stays Open

When a payment fails you can still see your invoices and pay the unpaid one from Billing, instead of being left with the Payment methods tab alone.

  • Every Billing tab stays open after a failed payment (such as Usage, Payment methods, Invoices, Credits, Budget, Billing information and Referrals); before, only Payment methods was
  • You can open and download your invoices and pay the unpaid one with a saved card from Invoices, Pay now; one banner says your last payment failed, and its View invoices button opens the Invoices tab
Show 5 more changes
  • Budget, promo codes, and reordering or removing payment methods work too, and so do notifications and replying to an abuse notice
  • The rest of the console and the API stay locked until the unpaid invoice is paid, from Billing or by the retry that runs when you replace your payment method: the dashboard, your resources and switching to a project that has no failed payment are refused, and the API answers 402 with a message that names both ways out
  • In the console, support, notifications and account verification stay reachable, and in the API the support ticket endpoints do
  • Changes that would move the unpaid invoice to another payer, such as billing through another organization or leaving a payer, stay shut until it is paid, and the page says when they come back
  • The Referrals tab opens on the first click; it used to need two

Version 2.9.123

FeatureDatabases

Choose Your PostgreSQL Recovery Window

When available to your account, choose how far back point-in-time recovery reaches from your PostgreSQL database's Backups tab, without changing its backup schedule or restarting it.

  • Keep the default window as long as your backups, choose a shorter window, or turn point-in-time recovery off
  • Shortening the window keeps your scheduled and manual backups; hourly cleanup removes only older write-ahead log no longer needed for recovery
Show 3 more changes
  • Turning point-in-time recovery off keeps restores to each backup and requires automated backups to stay on
  • Widening the window builds up recovery history again; it cannot bring back log that was already removed
  • Archiving continues with every setting, so an archiving failure can still fill the database volume; separate archiving and backup-storage quota alerts remain in place
Read documentation (opens in a new tab)

Version 2.9.141

ImprovementPlatform

Account Limits: In the Sidebar, With Usage Meters

The Account limits page now has its own sidebar entry, shows how much of each limit you use, and lets you ask for more in a side drawer.

  • Account limits is in the console sidebar, after Billing, and in the command palette; it used to be reachable only from the Request a limit increase links on a create page, after you had already hit a limit
  • A strip under the title shows one cell for each limit (Databases, Cache, VPS, Rapids and Storage Share) as 3 of 5 with what is left; the meter turns amber from 70 percent and red from 90, and At the limit is also said in words, so color is never the only signal
Show 3 more changes
  • Instance sizes lists the most one instance can have and which dedicated and shared sizes you can choose, each marked Available or Locked, and a limit your account has none for reads Not set instead of 0
  • Request an increase opens a drawer: give a reason of at least 50 characters and raise only the limits you need, and only the limits you change are sent; larger instance sizes are under Larger instances, and the page tells you when a request is waiting for review
  • When a limit stops you from creating something, the message now carries the page's full address, for example You have reached your VPS instance limit. Request a limit increase at https://console.danubedata.ro/account-limits, and the API (status 422), the danube CLI and Terraform show the same text
Read documentation (opens in a new tab)

Version 2.9.140

ImprovementAPI

API Tokens and Your Webhook Now Live Under Security

Create and manage API tokens and your project's webhook in one place, with a project and a permission choice for every token.

  • Open Security from the account menu, then the API tokens tab, to manage your tokens and your project's webhook. The API tokens entry in the account menu is gone, and the old API tokens address sends you to this tab
  • The token list shows the project each token reaches (the project's name, All your projects, or A project you have left, which the API refuses), a summary of its permissions such as Read only, 5 resources, and when it was last used
Show 4 more changes
  • Create token asks for a name and a Project access: This project only is the default, and All your projects makes an account-wide token. Existing tokens keep their account-wide access unless you recreate them
  • Permissions are a matrix with a row per resource and columns for read, write, delete, credentials and diagnostics, with Defaults, Select all and Clear shortcuts. Creating a token asks you to confirm it's you and shows the token once, so copy it before you close the drawer
  • Open a token to see which project it reaches, when it was last used and when it expires, and to change its permissions; Save permissions waits for a change. A token made by danube login holds every permission, so saving a change keeps only what is ticked
  • The Webhook card shows the address your events are sent to, its status (Sending events, Paused or Waiting for a secret) and whether a secret signs requests. The first save makes the signing secret and shows it once, and Regenerate secret asks you to confirm it's you
Read documentation (opens in a new tab)

Version 2.9.139

SecurityPlatform

A Second Step After Password, Google and GitHub Sign-In

Google and GitHub sign-in now ask for your two-factor code, a passkey works as the second step after your password, and accounts with no second factor get a reminder to add one.

  • If two-factor authentication is on, signing in with Google or GitHub now asks for the code from your authenticator app, or a recovery code, before you are signed in. It used to skip the code
  • If your account has a passkey and no authenticator app, a correct password or a Google or GitHub sign-in is no longer enough: we ask for one of your passkeys first. Signing in with a passkey on its own still needs no second step
Show 5 more changes
  • When your passkey is out of reach, choose Email me a code instead and we send a 6-digit code to the address on your account. It works once, in the browser that asked for it, for 10 minutes and five tries; after five wrong codes the emailed code is paused for 15 minutes and we email you to say so
  • An emailed code is weaker than a passkey or an authenticator app, because anyone who can read your email can use it, so add an authenticator app as well. With one, sign-in asks for its code or a recovery code as before and never offers the emailed code
  • Accounts created with Google or GitHub can now set a password, turn on two-factor authentication and sign out their other browser sessions. Each used to ask for a password those accounts never had, and now accepts the 6-digit code we email instead
  • If your account has neither two-factor authentication nor a passkey, the console shows a reminder to add one, and Profile > Sign-in and security says so too. Choose Remind me in a week to hide it for seven days; it comes back until you add one
  • The two-factor page now checks your authenticator code as soon as all 6 digits are in, with no need to press Verify. Recovery codes still need Verify
Read documentation (opens in a new tab)

Version 2.9.138

ImprovementPlatform

Project Settings Rebuilt Around Members and Invitations

Project settings now has General and Members tabs that list everyone in the project, owner first, with drawers for roles, removals and invitations.

  • Open Project Settings from the project menu: General holds the project name (only the owner can change it), your primary project, API access and, last, Delete project, and Members lists everyone who can reach the project
  • The Members tab lists the owner first and then every other member with their role and the date they joined; a project nobody else had joined used to say it had no members, because the owner was missing from the list
Show 4 more changes
  • Click a member to open a drawer: the owner can change their role or remove them, a member can leave from their own row, and changing a role asks you to confirm it's you
  • Invite member opens a drawer for the email address and a role (Administrator or Editor), and Pending invitations lists every invitation still waiting, each with Cancel behind a confirmation
  • A removal, leave or delete that is refused now says why in its dialog; before, the refusal was not shown
  • Delete project lists what stands in the way (resources to delete first, money owed, linked billing organizations, or a primary project) beside a disabled button, and asks you to type the project name before it deletes
Read documentation (opens in a new tab)

Version 2.9.137

SecurityPlatform

Verified Support Requests, Visible Support Actions

We now ask for a customer number and a support PIN before acting on a request that didn't come through the console, and what DanubeData Support changes on your account shows in your Activity Log.

  • Every project now has a customer number. Find it under Profile > Sign-in and security > Your customer numbers, at the top of Billing and in the project's settings; your invoices show the number of the project that pays them
  • Set a support PIN of 8 to 12 digits under Profile > Sign-in and security. It is yours, not a project's, so it works with the customer number of every project you belong to. We keep only a scrambled copy, setting it asks you to confirm it's you, and we email you whenever it is set, changed or removed
Show 4 more changes
  • When you contact us any way other than a console ticket, such as email or phone, we ask for your customer number, your support PIN and the email address of your account before we change anything or share any account data. A ticket opened from the console asks for nothing, because we already know it's you
  • If you haven't set a PIN, we can't act on a request that comes by email or phone, and we ask you to open a ticket from the console instead
  • We email you when our support team confirms it's you with your PIN, and when repeated wrong PINs lock verification for an hour, so a request that wasn't yours can't go unnoticed
  • What DanubeData Support changes on your account now appears in your project's Activity Log as DanubeData Support, with the name of the person and the request it was for, and the Support view lists only those entries. Each PIN check, including a failed one, and each time support signs in to your console for troubleshooting is recorded there too
Read documentation (opens in a new tab)

Version 2.9.136

SecurityPlatform

Confirm It's You Before Sensitive Account Changes

Sensitive changes now ask you to confirm it's you, and new ways into your account are emailed to you, so a session left signed in on a shared or lost device can't be used to add a way in unnoticed.

  • Even when you are already signed in, you are asked to confirm it's you before you add or remove a passkey, create or edit an API token, authorize the danube CLI, change your email address, set a password, turn two-factor authentication on or off, or view or regenerate your recovery codes
  • The same goes for creating an S3 access key or widening what one reaches, creating a container registry key, an SFTP user or an SSH key, inviting a team member or changing a member's role, saving your project's webhook address or regenerating its secret, rotating a database password, signing out a browser session, changing your session security settings, removing a linked Google or GitHub sign-in, and deleting your account
Show 5 more changes
  • Confirm with your password, a passkey you already added, a code from your authenticator app or, if you sign in with Google or GitHub and have no password, a 6-digit code we email you. A confirmation lasts 15 minutes, so several changes in a row ask once, and five wrong attempts pause confirming for 15 minutes
  • Adding, widening or removing a way in also emails your account's address, saying what changed, when, and from which IP address and browser: a passkey, an API token or the CLI, an S3 access key, a registry or SSH key, SFTP access, an invitation, a webhook address or secret, a database password rotation, two-factor authentication turned on or off, new recovery codes and a linked sign-in. You can't turn these emails off
  • A change of email address is reported to the old address and a password change sends an email too; five wrong current passwords pause changing it for 15 minutes
  • Changes made through the API with a token send the same email, for example when a script creates an S3 access key or an SSH key
  • Signing in with Google or GitHub links to an existing account only when the provider says it verified the address, and we email you whenever a sign-in is linked. Profile > Sign-in and security lists your linked sign-ins, and you can't remove the only way you can sign in
Read documentation (opens in a new tab)

Version 2.9.135

FeatureStorage Share

Use Your Own Domain on a Storage Share

A running Storage Share can now be reached at your own domain, such as files.example.com, with its own HTTPS certificate, next to its storage.danubedata.ro address.

  • Open a running Storage Share's page and choose Add a domain in the Custom domains section (the button reads Manage domains once you have a domain). The instance keeps answering at its storage.danubedata.ro address too, and each instance takes up to 10 domains on every plan
  • Create the two records the console shows for the domain: a TXT record named _danubedata-verify under it, which proves the domain is yours and can be deleted once it is verified, and a CNAME to your instance's storage.danubedata.ro address, which you keep
Show 4 more changes
  • We look for the records every 5 minutes for about the first 100 minutes, or you can press Check now at any time. Once the ownership record is found and the CNAME is published, the domain is connected and its HTTPS certificate is requested
  • Connecting or removing a domain restarts the instance, which takes about a minute, and a removed domain stops reaching it within a couple of minutes. Delete the domain's records at your DNS provider afterwards
  • A root domain such as example.com cannot take a CNAME: use your DNS provider's ALIAS, ANAME or CNAME flattening to the same address, or use a subdomain such as files.example.com
  • Once the domain shows Active, sign in at it in the browser, the desktop client or the mobile apps
Read documentation (opens in a new tab)

Version 2.9.134

Bug fixAPI

API Fixes: Names Stay Fixed, Caches Wait Out Migrations

Renaming a database or cache through the API is now refused instead of creating an empty copy, and a cache that is moving to the managed operator cannot be changed until the move is confirmed or rolled back.

  • PUT /api/v1/database/{id} with a new name is now refused with a 422 that explains a database keeps the name it was created with. Before, a new name could deploy a second, empty database and leave the original running unmanaged. Sending the current name alongside other changes still works
  • PUT /api/v1/cache/{id} refuses a new name the same way, with the message The name cannot be changed after the cache is created
Show 2 more changes
  • The danube CLI sends the same request from database update --name and cache update --name, so those options now get the same refusal
  • While a cache is moving to the managed operator, the API refuses to edit, delete, start, stop or force-stop it, with the sentence the console shows: an edit gets a 409 and the other actions a 422. Try again once the migration is confirmed or rolled back

Version 2.9.133

ImprovementDatabases

SQL Studio Catches More Destructive Statements

With Allow changes on, SQL Studio now reads every statement you run before deciding whether to ask, and it holds your browser's Back and Forward buttons while you have staged changes.

  • With Allow changes on, SQL Studio now checks every statement in what you run, not only how the text starts: a DROP, TRUNCATE, ALTER, GRANT or REVOKE asks first in any statement, including after a semicolon, inside a WITH query or run by EXPLAIN ANALYZE
  • A DELETE or UPDATE counts as having a WHERE only when it has one of its own, so a WHERE inside a string, a comment or a subquery no longer hides a statement that would change every row
Show 3 more changes
  • A MERGE that updates or deletes rows now asks first too, and so does a statement nested too deeply for SQL Studio to read
  • The check is a safety net, not a guarantee: SQL Studio does not read the inside of functions or DO blocks, and anything it does not flag runs without asking. The banner above the editor lists exactly what is checked, and read-only mode still refuses every change
  • In Chrome and other browsers that support the Navigation API, the Back and Forward buttons now ask before leaving SQL Studio while you have staged changes, and hold you on the page with a note while a commit is running; before, they left without asking and dropped the staged changes. Other browsers behave as they did
Read documentation (opens in a new tab)

Version 2.9.132

ImprovementNetworking

Firewall Editor Warnings for Deny Rules and Public Ports

The firewall editor now tells you when a deny rule overrides an allow rule, and when a rule is written for a public port that never matches.

  • When a deny rule takes away what an allow rule lets in, the firewall editor now shows a note under the deny rule as you edit it, and the read-only rules list on the firewall page and on each Security tab shows it too. On databases, caches, queues and containers a deny rule wins over every allow rule, and a deny rule with no sources blocks every connection to that port, including from your own resources
  • The note says who loses access, for example the address or resource that an allow rule lets in and the deny now blocks, and when an allow rule is open to anyone it says that the allow rule now lets nothing in, and how to close the port or block particular sources
Show 4 more changes
  • The note stays quiet when the firewall protects only servers, where allow rules are checked before deny rules, and for the default Deny all other inbound traffic rule
  • On a database, cache or queue with public access on, a rule written for the public port in your connection string instead of the service's own port, such as 5432 for PostgreSQL, now gets a note that it has no effect, because firewall rules use the service's own port for public connections too
  • That note also says when no rule allows the service port from a public address, because the public endpoint then refuses every connection. A rule that lists only resources or private ranges such as 10.0.0.0/8 does not let a public client in, so the note still appears for it
  • The note above the inbound rules now gives each service's own port: 5432 for PostgreSQL, 3306 for MySQL, 6379 for caches and 5672 for AMQP
Read documentation (opens in a new tab)

Version 2.9.131

Bug fixStorage Share

Storage Share Fixes: Placement and Snapshot Restore

New Storage Share instances are no longer limited to one server, and a snapshot restore now places its volumes where the snapshot lives.

  • New Storage Share instances, those created from 27 September 2026, are no longer limited to a single server: they can run on any eligible server. Before, a new instance could stay in Provisioning because that one server had no room left, even for the smallest plan
  • Instances created before 27 September stay where they are, because their data lives there
Show 1 more changes
  • Restoring a Storage Share from a snapshot used to wait for the new volumes to become ready, which could not happen while the instance was stopped, so the restore timed out and was marked failed. The restored volumes are now created on the server that holds the snapshot

Version 2.9.130

ImprovementPlatform

Support Tickets Rebuilt With Live Replies

Your support tickets now read in plain words, update as support answers, and link to the resource they are about.

  • Your tickets list reads in plain words (Awaiting support, In progress, Awaiting your reply, Resolved, Closed), shows unread replies and who spoke last, offers an Awaiting your reply filter with a banner when support is waiting on you, and runs search, status and sort over all your tickets instead of only the page on screen.
  • Replies and status changes from support appear on the list and on an open ticket as they happen, without reloading the page.
Show 4 more changes
  • The new ticket form lets you choose the kind of request from cards, link the ticket to a VPS, database, cache, queue, bucket, Rapids container, static site or app, attach files by picking or dropping them, and suggests up to three matching documentation articles as you type the subject; Contact support in the More menu of a VPS, database, cache, queue, bucket, static site or app page opens the form with that resource already chosen.
  • A ticket reads as a conversation, oldest first, with a New line above what support wrote since your last visit; images open in a side drawer, and Mark as resolved asks you to confirm first.
  • You can reply to a resolved or closed ticket, which reopens it; Ctrl + Enter (Cmd + Enter on a Mac) sends your reply, and what you have typed is kept in your browser until you send it, separately for each person who uses that browser.
  • Text you type between angle brackets, such as a placeholder in a configuration line, is now kept as typed in tickets, replies and rating comments; before, it was silently deleted.
Read documentation (opens in a new tab)

Version 2.9.122

ImprovementCLI

danube CLI 1.6: Static Site Deploys That Work End to End

Deploying a static site from CI or your terminal now works reliably, and the CLI tells you when a newer version is out.

  • DANUBE_SITE_ID now takes the site ID exactly as danube pages link prints it, so headless CI deploys work instead of failing with Not Found
  • Every pages command uses the project the site is linked to, whichever project you have selected
Show 4 more changes
  • pages deploy waits for its own build and returns only once your site's address serves the new version, and rollbacks wait for the new revision too
  • pages domains ls, add and verify work again: add prints the TXT record and the CNAME target, and verify waits for the result
  • With --json, a failed pages deploy now reports success as false with an error code
  • Every interactive run tells you when a newer version is available; update with danube upgrade
Read documentation (opens in a new tab)

Version 2.9.121

Bug fixPlatform

No More False Alarms on the Status Page

The status page no longer turns yellow when a single health check goes missing, and says so plainly when monitoring itself falls behind.

  • A single lost health check no longer puts up Some Systems Experiencing Issues on the status page
  • If health checks really stop reporting, the page shows Monitoring Status Unknown in grey instead of a degradation that is not happening
Show 2 more changes
  • The console header does the same, showing Unknown with Health checks have not reported recently instead of On course
  • The monitoring fault behind the brief false banners of the past week is fixed

Version 2.9.120

Bug fixAPI

API Examples Now Use the Right Address

Some API examples in our docs and the console pointed at an address that does not serve the API, so copied requests failed; they now use https://danubedata.ro/api/v1, and several paths are corrected.

  • The static site Deploy from the command line drawer and the Static Sites, Cache, Database, Rapids and VPS snapshot guides now call https://danubedata.ro/api/v1, the address the CLI and the API reference already use
  • VPS snapshot examples use the real endpoints under /api/v1/snapshots/vps, and the retention script walks every page and compares dates correctly
Show 2 more changes
  • Object Storage examples now create an access key limited to the bucket it is for; if you created a key from the old example, check its scope under Security, because it could reach every bucket
  • Bucket CORS and settings examples use PUT with the request shape the API accepts
Read documentation (opens in a new tab)

Version 2.9.119

Bug fixStatic Sites

Static Site Rollbacks Show the Commit They Restored

After you roll a Git-backed site back, its deployment history names the commit it is actually serving.

  • A rollback records the restored revision's commit, message, author and branch, instead of the newest build's
  • Changing a site setting after a rollback keeps showing the restored commit
Show 1 more changes
  • This applies to rollbacks from both the dashboard and the API

Version 2.9.118

Bug fixRapids

Rapids API Rejects Environment Variables Sent as a List

Sending a Rapids container's environment variables as a list of KEY=VALUE strings is now refused up front, instead of being accepted and then failing every rollout.

  • Creating or updating a container with environment_variables as a JSON list of KEY=VALUE strings now returns 422 with a message asking for name and value pairs; it used to return 200, and every later rollout then failed
  • Each variable name may use only letters, digits, underscores, hyphens and dots, or the request returns 422 for that variable; reserved names and the 100 KB limit are unchanged
Show 2 more changes
  • A container that already stored its variables as a list now fails its deploy with a message asking you to save them again as name and value pairs
  • A change that fails partway is now discarded completely, so it can no longer reach your running container later and take it down

Version 2.9.117

Bug fixPlatform

Fixes Found While Rebuilding the Console

Rebuilding these pages turned up bugs that could act on the wrong item or leave you without an answer, and they are now fixed.

  • In a bucket's file browser, a confirmed delete always removes the file you confirmed, and tags are saved to the file you are editing
  • Teams with more than 20 registry repositories can page through all of them, and deleting an image clears every tag that pointed at it from the list straight away
Show 5 more changes
  • Success and refusal messages now appear on the Registry, Uptime, Managed Apps and Static Sites pages, where a refused action used to fail silently
  • An uptime check's page refreshes the check itself, so a check that went down no longer reads Up beside a chart of failures
  • Automated snapshots chosen when you create a cache now take effect; if you created a cache with them switched on before 20 September, check its snapshot setting
  • In the parameter group editor, copying a value or removing a row no longer saves the group, and renaming a parameter onto an existing one is refused instead of overwriting it
  • Setting up billing for the first time now continues to adding a card once your billing details are saved

Version 2.9.116

ImprovementPlatform

Drawers, Shareable Links and Full-List Search Across the Console

Most console pages now work the same way: items open beside their list without losing your place, every view has a link you can share, and search covers the whole list.

  • Invoices, API tokens, access keys, registry images, bucket files, volumes, static site revisions and custom domains open in a side drawer with its own address, so back, bookmarks and shared links return to that exact item
  • An invoice link in our emails opens that invoice ready to pay
Show 5 more changes
  • Search and status filters on buckets, managed apps, static sites and registry repositories cover every page of the list, not just the rows on screen, and the Logs page keeps its filters in the address
  • A bucket file opens with its preview, share link, tags and versions in one place, and a Connect drawer gives ready-to-run examples for the command line, Python, JavaScript, PHP and Go
  • The uptime check form offers HEAD requests and a certificate expiry warning a chosen number of days ahead, and check pages refresh every minute with a bar per day for the last 90 days
  • Creating a cache, database, queue or managed app is one guided page with an itemised price in view, including each replica or standby, and edit pages end in a bar that says what saving will do, such as a restart
  • Plan pickers work from the keyboard, text and controls meet contrast requirements in light and dark mode, and menus, charts and long names fit screens down to 360 px wide

Version 2.9.115

SecurityNetworking

Database, Cache and Queue Firewalls Now Apply Inside Your Team

The inbound rules on a managed database, cache or queue now decide, port by port, which of your own resources can connect over the private network, not just who reaches the public endpoint.

  • A port with an allow rule that has no sources, or one from 0.0.0.0/0 or ::/0, stays open to your whole team
  • A port whose allow rules all list sources accepts only what they pick: Rapids containers and their runs, VPS instances, private networks, managed apps, and other databases, caches or queues
Show 5 more changes
  • A port that no allow rule covers is now closed to your own resources too, as on the public endpoint, so add an allow rule for everything your team uses, such as a queue's management port
  • IP addresses never match your team's resources, so a rule that lists only addresses keeps the port closed inside your team; pick your apps under Sources as well
  • Rules with sources never cut off the instance's own replicas, connection proxies, metrics, backups or SQL Studio
  • Teams you have peered with reach only the ports open to your whole team
  • Managed apps can now be picked as sources, a deleted source stays on the rule marked deleted until you remove it, and rules created through the API keep their port and picked sources
Read documentation (opens in a new tab)

Version 2.9.114

SecurityPlatform

Sign Out Your Other Sessions Without Losing Your Own

Signing out of your other sessions now keeps you signed in where you are, and a device you sign out stays signed out.

  • Sign out of all other sessions, under Profile, Sign-in and security, now keeps the browser you used signed in; before, it signed you out too
  • A device you sign out, whether one session or all the others, stays out, and Remember me can no longer sign it straight back in
Show 2 more changes
  • Your other devices need a fresh sign-in once their current session ends, while the browser you acted from keeps Remember me
  • Sessions idle for longer than your session timeout no longer appear in the list
Read documentation (opens in a new tab)

Version 2.9.113

ImprovementPlatform

A Dashboard That Starts With What Needs Your Attention

The dashboard now opens on what needs your attention, what you have spent and what your team did recently, and every resource's status updates live.

  • A summary line tells you in words how your resources stand and whether anything needs attention, next to a Create menu for everything your team can set up
  • A Needs attention card lists each unhealthy resource with a link straight to it, plus a reminder when your billing details are missing
Show 5 more changes
  • Headline figures show your resources, what needs attention, your spend so far this month and the month's projection compared with last month
  • Each service you use gets its own tile, and This month breaks your spend down by service, including any promotional credit you have left
  • Recent activity now fills in, showing who did what grouped by day, with links to each resource and to your full activity feed
  • Every resource appears as a chip, problems first, with filters that stay readable on a phone and statuses that change live
  • A new team gets a start page with three places to begin and their starting prices, plus a Get set up checklist

Version 2.9.112

ImprovementRapids

A Rebuilt Rapids Console With Live Traffic and Drawers

The container list and container page were rebuilt around what matters day to day: live traffic at a glance, builds and domains in drawers, and one form for create and edit.

  • Every row in the container list shows live replicas, requests, latency, errors and this month's cost, and search and the status filter cover all your containers, not only the page on screen
  • The list totals for containers, running replicas, requests a minute and this month's cost are now accurate; they used to read zero
Show 4 more changes
  • Each container page opens with a summary of its address, what is serving, replicas and live traffic, including requests a minute, p95 latency and error rate, refreshed every few seconds
  • Builds open in a drawer with a live log that jumps to the first error, and domains open in a drawer showing each domain's state, the next step and its exact DNS records
  • Create and Edit share one single-page form: errors point to the section to fix, a save bar says whether saving rolls out, rebuilds or switches source, and an image entered as nginx:1.27 deploys that tag instead of latest
  • Average latency is now recorded for every usage window, so it no longer shows blank in the list and the API
Read documentation (opens in a new tab)

Version 2.9.111

ImprovementRapids

Faster Rapids Builds, Plus an Optional Build Cache

Deploys start seconds after a build finishes, builds get more CPU headroom, and you can keep a build cache per container to speed up the next build.

  • A finished build now starts its deploy within seconds instead of waiting up to a minute
  • Builds get twice the CPU headroom, so toolchains that use every core, such as Next.js, finish sooner
Show 3 more changes
  • Dockerfile builds now run on a new builder, with no change needed on your side
  • Turn on Keep the build cache for a container that builds from a Dockerfile to reuse its image layers and cache mounts, so later builds finish faster; the API field is build_cache_enabled
  • The cache only ever saves time: if it is not available the build runs without it, and a cache unused for 14 days is removed
Read documentation (opens in a new tab)

Version 2.9.110

Bug fixDatabases

Replica, Failover and Lifecycle Fixes for Managed Databases

Standbys, planned changes, deletions and several database pages now behave the way you would expect.

  • Planned changes to a PostgreSQL database with a standby now switch over to it instead of restarting the primary, including when the standby was added after creation
  • Adding a standby or read replica to a PostgreSQL or MariaDB database no longer stalls before the new server can start
Show 5 more changes
  • Adding a replica, editing a database, saving its parameter group or expanding its storage no longer restarts an older PostgreSQL database as a side effect
  • The API's add and remove replica endpoints now actually scale managed PostgreSQL instead of answering success and changing nothing, and removing anything but the newest replica returns a clear error
  • A refused replica or scaling request shows its reason and the node list stays on screen, on database and cache pages
  • Turning on public access updates the host, port and connection string on the Connectivity tab without a reload, and a name that would clash with another engine's database in the same project is refused up front instead of getting stuck provisioning
  • Deleting a database no longer flips it to Error, with a notification to your team, before the deletion completes

Version 2.9.109

Bug fixManaged Apps

Managed n8n Handles Large Files Without Crashing Its Database

A large file in a workflow now fails only the execution that handled it, instead of running your n8n database out of memory.

  • The files your workflows store are capped at a size your plan's database can safely hold, and an oversized file fails its own execution with n8n's file-too-large error instead of crashing the database
  • The cap grows with your plan's database, so larger plans can store larger files
Show 2 more changes
  • n8n and its workers get a memory heap sized to their container, instead of topping out at about a quarter of it
  • This applies to every managed n8n instance automatically

Version 2.9.108

SecurityDatabases

Require TLS on Managed PostgreSQL and Choose Your TLS Floor

Refuse unencrypted connections to a PostgreSQL database with one switch, and decide whether older clients may still connect with TLS 1.2.

  • Turn on Require TLS in the database's Connectivity tab and connections without TLS are refused
  • It applies within about a minute while the database keeps running; set sslmode=require on every client before you switch it on
Show 3 more changes
  • It is off by default, so nothing changes until you turn it on, and you can turn it off again at any time
  • Managed PostgreSQL requires TLS 1.3 by default; set ssl_min_protocol_version to TLSv1.2 in the Parameters tab or a parameter group for clients that cannot negotiate TLS 1.3, such as Prisma on macOS and Windows
  • The TLS floor applies with a configuration reload, without a restart
Read documentation (opens in a new tab)

Version 2.9.107

AnnouncementDatabases

What New MySQL Databases Expect From Your Tables

New MySQL databases replicate every write, even on a single server, so they add a hidden primary key to tables without one, refuse storage engines that cannot be replicated and cap how much one transaction can change.

  • A table created without a primary key gets an invisible my_row_id key that SELECT * and your application never see, and one ALTER TABLE swaps it for your own key
  • Creating a MyISAM, BLACKHOLE, FEDERATED or ARCHIVE table fails with error 3161; leave out the ENGINE clause or use InnoDB
Show 5 more changes
  • Before you import a dump, convert its MyISAM tables to InnoDB at the source, or the import stops at their CREATE TABLE
  • Temporary MEMORY tables work, but writes to a permanent MEMORY table fail with error 3098, so keep permanent tables on InnoDB
  • One transaction's changes are capped at 2.5% of the plan's memory, between 16 MB and 150 MB; a bigger one is rolled back with error 3100, so split large imports, updates and deletes into batches
  • Restoring a backup fixes such tables in the new copy: other engines become InnoDB and tables without a key get the invisible one
  • Only new MySQL databases work this way; databases you created earlier keep their current behaviour
Read documentation (opens in a new tab)

Version 2.9.106

FeatureDatabases

MySQL Gains High Availability, Read Replicas and Daily Backups

New MySQL databases can run as a high-availability group with automatic failover you switch on or off at any time, add read replicas, and keep daily backups you restore into a new database.

  • Choose a single server or a high-availability group of three servers on separate hosts; if the primary fails, a standby takes over and the writer endpoint follows it automatically
  • Turn high availability on or off later from the Nodes tab or the API without recreating the database; your data and read replicas stay as they are, and each standby is billed at the same rate as the primary
Show 5 more changes
  • Add up to 5 read replicas by default, with or without high availability, behind a private reader endpoint that never sends reads to the primary; the Nodes tab and the API show each replica's status and lag
  • Automated backups run daily and are kept for 30 days unless your backup policy says otherwise; take a manual backup any time and restore any backup into a new database with your own accounts and grants
  • Change the plan with the servers restarting one at a time, grow storage online or with storage autoscaling, stop and start, and change timeouts and slow-query logging live from the Parameters tab
  • Pick MySQL 8.4 LTS, the default, or 9.7 when you create the database; firewalls, metrics and logs work as they do for your other databases
  • MySQL databases created before 23 September keep their current setup
Read documentation (opens in a new tab)

Version 2.9.105

Bug fixRapids

Rapids Fixes: Custom Domains, Rollbacks and Auto-Build

Custom domains no longer hold up your deploys, routing traffic back to an earlier revision really moves it, and turning auto-build off really stops push builds.

  • A custom domain whose certificate is still being issued no longer blocks every later deploy of its container
  • A domain shows as set up only once it really exists; while a change is being applied it stays pending and finishes on its own
Show 4 more changes
  • One inconsistent DNS answer no longer fails a domain, a failed domain is retried automatically after 15 minutes, and removing a domain after deleting its DNS record no longer leaves its certificate cleanup stuck
  • Route traffic here on an earlier revision now really sends all traffic to it without a rebuild, and the console shows it as current only once the switch has happened
  • With Auto-build on push turned off, pushes to your branch no longer start builds; manual and API builds still work
  • Status badges read Building, Deploying and Degraded instead of a generic Pending, and pressing Enter in an early field of the create form no longer submits it

Version 2.9.104

FeaturePlatform

Tune Engine Settings From a New Parameters Tab

Change supported settings on a single database, cache or queue from its own page, live where the engine allows it, and PostgreSQL parameter group changes now reach running databases when you save them.

  • A Parameters tab on PostgreSQL, MySQL and MariaDB databases, Redis, Valkey and Dragonfly caches and RabbitMQ queues shows the group in use, its saved values and the settings you can change
  • Settings the engine can reload apply to the running instance without a restart; where a setting needs one, you confirm a separate restart first
Show 5 more changes
  • Each save creates a parameter group for that instance only, so other instances on the same group keep their settings
  • Saving a PostgreSQL parameter group applies it to every running database that uses it when all changed settings can reload, touching only those settings; otherwise the save lists what waits for each database's next update
  • PostgreSQL groups list what can be set, what applies without a restart and what the platform manages, and a misspelled setting name is refused with a suggestion
  • PostgreSQL groups accept archive_timeout from 60 seconds to 1 hour, and write-ahead log settings are checked against their allowed ranges when you save
  • Supported RabbitMQ settings in a queue's parameter group now take effect, and the database Edit page tells you when switching groups keeps the database running
Read documentation (opens in a new tab)

Version 2.9.103

FeatureRapids

Rapids Runs: One-Off and Scheduled Jobs From Your Container's Image

Run your Rapids container's image exactly once, on demand or on a cron schedule, for a migration, backfill or maintenance script, without touching the replicas that serve your traffic.

  • Start a run from the new Runs tab on your container's page, from the API or with the danube CLI; it uses your container's image and environment, and you can add per-run environment variables, choose an image tag and set a timeout of up to an hour
  • Only one run is active per container at a time, apart from the replicas serving traffic, so a migration never runs twice or concurrently
Show 5 more changes
  • Schedule runs with a standard cron expression in your own timezone; a run that comes due while the previous one is still going is skipped and recorded, not stacked
  • Follow a run's log live in a drawer, and read the last lines of its output for 10 days after it finishes
  • The Command field splits arguments the way a shell does, so a quoted argument stays in one piece, and leaving it empty asks you to confirm before the image's own startup command runs
  • A run is billed like one of your container's replicas, at the same vCPU-second and GiB-second rates with the same monthly free tier, from the moment it starts until it exits, with no separate run charge
  • Get a webhook when a run succeeds or fails, and call your own container from a run through its internal URL
Read documentation (opens in a new tab)

Version 2.9.102

FeaturePlatform

Live Load and Node Rows on the Cache, Queue and VPS Lists

The cache, queue and VPS lists now show the load behind every instance at a glance, and cache and queue clusters get a row per node, as the database list already does.

  • Cache and queue lists show each instance followed by a row for each node and its role, with open health alerts marked on the cluster row
  • Cache and queue rows show live CPU, memory and connected clients or queued messages, and VPS rows show live CPU and, where the VM reports it, memory
Show 4 more changes
  • Every figure refreshes every 30 seconds while the page is open, comes from the same measurements as the instance's own charts, and memory shows what it is measured against, for example 14 MB of 384 MB
  • Collapse one instance's nodes or hide them all, sort by any sortable column and find an instance by one of its node names
  • If live figures cannot be read, the list still loads straight away and says so
  • A new Redis or Dragonfly cache shows Running, and sends its ready email, only once it is actually up, and its status changes on screen without a reload

Version 2.9.101

ImprovementVPS

A Rebuilt Create VPS Page With the Price Always in View

Creating a VPS is now one guided page: choices in the order you make them, a summary with the price that follows you, and errors that take you straight to the problem.

  • Choose the image, plan, location and network, access and options, then the name, which is pre-filled and explains its rules
  • A summary follows you down the page with every choice, a link back to each, the monthly price and why an order cannot be placed yet; on smaller screens a bottom bar carries the price and the order button
Show 4 more changes
  • Plans show vCPUs, RAM, disk and price on any screen, down to a phone
  • Problems are summarised by section and the first field at fault gets focus, including errors returned by the server
  • Automated snapshots switched on while creating a VPS are now saved; if you created a VPS with them switched on before 20 September, check its snapshot setting
  • A failed price quote no longer shows €0.0000/hour, and Add payment method opens the payment dialog
Read documentation (opens in a new tab)

Version 2.9.100

Bug fixDatabases

Database Backups: Accurate Status, Clearer Labels, Safer Upgrades

The Backups tab now reports PostgreSQL and MariaDB backups truthfully, and a database that reuses a deleted database's name backs up normally.

  • The daily backups switch on PostgreSQL and MariaDB databases now reads Active when nightly backups run; it could say Inactive while backups were being taken
  • PostgreSQL and MariaDB recovery points are labelled Object storage, because they are stored in object storage separate from the database server, instead of Local only
Show 2 more changes
  • A database created with the name of one you deleted now backs up normally, because every new PostgreSQL and MariaDB database gets its own backup location
  • A database engine upgrade now waits for a completed backup before it changes anything, and a PostgreSQL upgrade is reported done only after a fresh backup of the new version succeeds

Version 2.9.99

ImprovementRegistry

Images Your Rapids Containers Run Can't Be Deleted by Accident

Deleting an image one of your Rapids containers is deployed from is now refused, so a cleanup script can no longer take a live site down.

  • Deleting a tag, a batch of tags or a whole repository is refused while a Rapids container is deployed from it, in the dashboard, the API and the CLI, and the refusal names the container
  • Other tags that point at the same image are protected too
Show 3 more changes
  • To delete it anyway, pass force=true to the API or --delete-in-use to the CLI (1.2.1 or later)
  • Automatic retention never removes an image a container runs, and does not count it toward your keep-last limit
  • If a running container's image cannot be pulled, the container is marked Degraded and your team is emailed straight away
Read documentation (opens in a new tab)

Version 2.9.98

ImprovementRapids

Rapids Updates Always Land, and Startup Work Runs Once

Changes sent during a rollout are never dropped, a rollout only counts as done once its own revision is ready, and two new settings stop startup work such as migrations from running twice.

  • An update sent while a rollout is still running is queued and applied next instead of being silently dropped, and several quick changes roll out together
  • Your change reads as queued until its rollout starts, and a rollout counts as finished only once its own new revision is ready, so danube rapids update --wait (CLI 1.3.0 or later) returns only when your change is live
Show 4 more changes
  • A rollout whose new revision never appears now fails after 20 minutes with a clear message instead of staying in Deploying
  • Retrying a rollout no longer creates an extra revision, so startup work does not run again
  • New Initial scale and Scale-down delay settings, under Resources and scaling in the Advanced section and in the API and CLI, let a container that migrates on boot avoid doing that work on two revisions at once
  • Deployment history no longer marks healthy older revisions as failed, and health alerts skip retired revisions and name the image you actually deployed
Read documentation (opens in a new tab)

Version 2.9.97

FeatureDatabases

Rotate Managed PostgreSQL Passwords From the Dashboard or API

Replace the application or superuser password of a running managed PostgreSQL database in one step, from the database page or the API.

  • Rotate the application user's password from Connect to your database, or the postgres superuser password from Admin Credentials; each rotates on its own
  • Tick Disconnect existing sessions to close connections still using the old password; otherwise open connections stay up and new ones need the new password
Show 5 more changes
  • The new password is shown once the database confirms it, and if it cannot be confirmed the rotation is marked failed and the previous password keeps working
  • Team owners and admins are emailed, and the rotation is recorded in the activity log
  • Rotate through the API with POST /api/v1/database/{id}/credentials/rotate, setting role to superuser for the postgres password
  • SQL Studio refuses a password change on these two platform-managed roles, which would otherwise be silently undone, and points you to Rotate password
  • SQL Studio no longer keeps passwords typed into the editor: they are redacted from your query history and saved snippets, including entries saved earlier
Read documentation (opens in a new tab)

Version 2.9.96

ImprovementNetworking

Edit and Deploy Firewall Rules Right From the Security Tab

Change a firewall without leaving your database, cache, VPS, queue or Rapids container: edit, save and deploy its rules from the Security tab.

  • Each attached firewall appears as a card showing whether its rules are applied, deploying or failed on this instance, with the error when a deployment fails
  • Edit rules inline, then Save to keep a draft or Save and deploy to push them to every instance the firewall protects
Show 4 more changes
  • Attach an existing firewall, or create a new one already attached to this instance and deploy it in one step
  • Retry a failed deployment on just this instance from the card's menu, and watch the status update live
  • The Firewalls list, firewall page and create form are redesigned, and a delete that is blocked now tells you why
  • Editing a firewall no longer drops rules that have no port, and the Security tabs of queues and Rapids containers show their firewalls again
Read documentation (opens in a new tab)

Version 2.9.95

SecurityNetworking

Firewall Rules Now Control Public Database, Cache and Queue Access

The inbound rules of the firewall on a managed database, cache or queue now decide who can connect through its public hostname, so you can limit public access to addresses you trust.

  • An allow rule from specific addresses limits public connections to those addresses, while an allow from 0.0.0.0/0 keeps the endpoint open to everyone
  • Write rules for the service's standard port, not the public port in your connection string: 5432 for PostgreSQL, 3306 for MySQL and MariaDB, 6379 for Redis, Valkey and Dragonfly, and 5672 for AMQP
Show 4 more changes
  • Other queue protocols each need an allow rule for their own standard port: 1883 for MQTT, 8883 for MQTT over TLS, 5671 for AMQP over TLS, 61613 for STOMP and 61614 for STOMP over TLS
  • A deny rule wins over any allow, and a public endpoint that no allow rule covers rejects every connection
  • Clients running on DanubeData should use the private hostname: on a restricted endpoint, their connections through the public hostname are refused
  • Rule changes apply within about two minutes; open public connections are closed once when a rule changes, and allowed clients can reconnect straight away
Read documentation (opens in a new tab)

Version 2.9.94

Bug fixVPS

New VPS Instances: Reliable Private DNS and an Accurate Setup Status

A new VPS keeps resolving the private hostnames of your managed databases, caches and queues, and first-boot setup now waits for, and reports, what is really happening.

  • New VPS instances resolve names only through the platform DNS, so the private hostnames of your databases, caches and queues no longer start failing with host not found after a while
  • Docker containers on the VPS, including those on user-defined networks, resolve those private hostnames too
Show 4 more changes
  • cloud-init status --wait now waits for first-boot security hardening, so installing a package right after it no longer fails on a locked package manager
  • After a reboot the login banner no longer claims hardening is still running, and dd-hardening-status reports the real state
  • A freshly created VPS no longer reports cloud-init as degraded
  • These fixes apply to VPS instances created from 16 September onward; existing instances keep their original setup

Version 2.9.93

Bug fixNetworking

Private Network Attachments Now Say What They're Waiting For

When a VPS cannot join a private network live, the console now tells you why and what to do, and attachments that recover turn active on their own.

  • An attachment that needs a power cycle now shows Power cycle needed instead of a vague Pending, and one being removed shows Detaching
  • The reason an attachment is waiting appears under its status, on both the network page and the VPS page
Show 2 more changes
  • The guidance matches what works: power cycle the VPS from the panel with Stop and Start or Reboot, because a reboot from inside the operating system cannot add the interface
  • An attachment whose interface comes up is marked active automatically within minutes, with no need to press Retry

Version 2.9.92

ImprovementRapids

New Rapids Egress Address to Allowlist: 178.63.243.79

Rapids containers can now also connect out from 178.63.243.79, so add it wherever you allowlist our egress addresses.

  • 178.63.243.79 has joined the published list of IPv4 addresses Rapids containers connect out from
  • It started carrying traffic on 14 September as emergency capacity, the documented exception to our 14-day notice for new egress addresses
Show 3 more changes
  • If you allowlist Rapids by IP at a firewall, CDN, WAF or database, add it now, or requests leaving from it may be rejected
  • Scripts that read docs.danubedata.ro/rapids-egress-ips-v4.txt already have it
  • If you do not allowlist by IP address, there is nothing to do
Read documentation (opens in a new tab)

Version 2.9.91

FeatureDatabases

Database Performance Tab: Load, Top SQL and Lock Analysis

A new Performance tab on every managed PostgreSQL database shows what your sessions are waiting on, which statements and callers drive the load, and which sessions are blocking others.

  • Open the Performance tab on any managed PostgreSQL database to see load as average active sessions, sampled every 30 seconds and shown in one-minute steps by default
  • Slice the load by wait event, user, application, database, client host, session type or SQL statement, with your vCPU count drawn as a capacity line as load approaches it
Show 5 more changes
  • Top SQL ranks the statements that carried the most load over the range, with their share of it and the wait events behind them
  • Client hosts are named after the VPS, Rapids container, managed app or connection pooler they belong to, and a table under the chart ranks the top contributors of the current slice
  • Pick any range from 5 minutes to 15 days, including an exact start and end, and auto-refresh every 30 seconds, 1, 5 or 15 minutes, or not at all
  • Lock analysis lists the sessions blocked right now and the session holding the lock, with both queries
  • Read the same data from the API with GET /api/v1/database/{id}/load and GET /api/v1/database/{id}/queries, using a token with database:read
Read documentation (opens in a new tab)

Version 2.9.90

ImprovementDatabases

Database List With Cluster and Node Rows

The database list now shows the topology and live load you actually pay for: one row per database and one per node.

  • Each database shows its role summary (single node, or cluster with primary and replica counts), engine, size, pending engine update, public access and monthly cost
  • Node rows show the primary or replica role, readiness, replication lag, and live CPU and connections, refreshed every 30 seconds while the page is visible
Show 3 more changes
  • Pod health markers on the cluster row show how many alerts are open and their highest severity
  • Collapse nodes per cluster or hide them all, and sort by any sortable column; sorting used to do nothing
  • Rows carry only what the list needs: internal identifiers, host details and credentials no longer travel with the page
Read documentation (opens in a new tab)

Version 2.9.89

ImprovementBilling

Clearer Handling of Failed Automatic Payments

You are told about every failed automatic charge, and the dashboard walks you through fixing the card.

  • Every failed automatic charge and every failed automatic retry emails your billing recipients, including failures reported later by the payment provider
  • Duplicate emails are prevented, and a replayed payment event can no longer alter a later successful charge
Show 2 more changes
  • While an automatically charged invoice remains unpaid after a failure, the console, API and API-key access switch to a recovery mode limited to replacing the card; every invoice payable by the updated card is retried automatically once it is saved
  • Centrally billed child teams are recovered through their paying parent
Read documentation (opens in a new tab)

Version 2.9.88

Bug fixVPS

Disk Resize Points the VM at Its New Disk

A resize could leave the console showing starting for hours while the VM waited on a disk that no longer existed.

  • After a disk resize the running VM is pointed at the cloned, larger disk, and errors from the virtualisation layer are surfaced on the instance instead of being swallowed
  • The traffic page drop-reason breakdown now shows only the drops for the VPS you are viewing, not for the whole cluster

Version 2.9.87

Bug fixDatabases

SQL Studio, Log Explorer and Pooler Fixes

Fixes for large query results, slow log searches and the connection pooler toggle.

  • SQL Studio no longer runs out of memory on large result sets; the agent got more headroom and a restart now returns a clear 503 instead of an empty error
  • Log Explorer times out cleanly after 25 seconds with a retry hint instead of hanging on very large log volumes
Show 2 more changes
  • Turning the connection pooler off and on in quick succession now has a short cooldown, which stops it wedging in a half-deleted state
  • The default PostgreSQL parameter groups log only statements slower than two seconds instead of every write, which keeps logs readable and searches fast; your own parameter group settings are respected
Read documentation (opens in a new tab)

Version 2.9.86

Bug fixVPS

Firewall Rules Keep Their Ports and Protocols

Three firewall fixes found through support tickets.

  • Regenerating a firewall no longer turns a port-specific rule into an all-traffic rule, and stale rules are replaced correctly
  • Large port ranges are accepted again instead of being rejected by the policy engine
Show 2 more changes
  • A firewall named with spaces or capitals now deploys; the name is only used as a label
  • Attaching and detaching firewalls is safe to retry, detaching cleans up the generated policy, and removing an instance removes its policies too
Read documentation (opens in a new tab)

Version 2.9.85

ImprovementStorage

Bucket-Scoped Keys Work With Object Lock, and Versioned Buckets Delete Cleanly

Scoped access keys now do everything a backup tool expects, and bucket deletion finishes the job.

  • Bucket-scoped keys can use Object Lock: a scoped key can place a lock but never remove or bypass one
  • Scoped keys can read their own bucket ACL, policy, CORS and lifecycle configuration, which backup tools probe during setup and used to report as invalid credentials
Show 2 more changes
  • SFTP users are bound to a key that actually grants their bucket, so a per-bucket key setup no longer produces a login that authenticates and then fails on every path
  • Deleting a versioned bucket now removes every object version and delete marker first, so deletion completes instead of sitting in an error state
Read documentation (opens in a new tab)

Version 2.9.84

FeatureBilling

Replace a Card in One Step, and Pay With Link

The payment methods section was rebuilt around the flows people actually get stuck on.

  • Every card, primary or backup, has a Replace action that runs the full verified-card flow and hands the new card the old card role; the old card is detached only after the new one is attached
  • When adding a card, choose whether it becomes the primary or a backup instead of every new card silently becoming the default
Show 4 more changes
  • Link is accepted as a saved payment method and shown by its account email
  • An expiring, expired or recently failed primary card gets a prominent callout with a Replace button
  • If your billing profile is incomplete, the dashboard asks for the missing details first instead of showing an empty card form that fails on retry
  • The card form recovers from a failed load with a clear retry message, and redirect wallets such as Revolut Pay are kept out of the card verification step so they no longer leave a verification hold behind
Read documentation (opens in a new tab)

Version 2.9.83

Bug fixStatic Sites

Sites With Digit-Leading Names or Long Hostnames Serve Again

Two naming edge cases could leave a deployed site answering 404 or quietly serving a stale version.

  • A site whose name starts with a digit now gets a valid service name, so it serves instead of returning the default backend 404
  • Free-tier sites with long default hostnames no longer fail their web server configuration, which used to leave the previous version serving silently

Version 2.9.82

FeaturePlatform

Backups and Recovery, Rebuilt

One Backups and recovery page for every VPS, cache and database, a guided restore that creates a new resource by default, and backup policies you control.

  • The new Backups and recovery page in the sidebar lists every recovery point across your resources, filterable by product, state and origin, and each instance keeps the same view on its Backups tab
  • Restore creates a new resource by default: pick a point, name it, choose a plan, and review the server-side check of name, plan, storage and monthly cost before starting
Show 5 more changes
  • Managed PostgreSQL restores to any moment in time within its continuity window
  • Every restore is a durable operation with its own page, a timeline of stages, a plain reason if it fails and a retry when one is possible; it survives page reloads
  • Recovery points of VPS, caches and MySQL get a second copy in the platform backup store, re-verified every hour, with Local only, Second copy and Second copy failed labels
  • Backup policies replace the daily 2:00 AM UTC default per resource: pick the time and timezone, daily, weekdays or weekly, retention from 1 to 90 days and whether a second copy is required; protection health is checked hourly
  • Replacing an existing resource in place is opened per account as an advanced action, with a safety point first and a typed confirmation
Read documentation (opens in a new tab)

Version 2.9.81

Bug fixRapids

Resource Profiles Apply and Failed Builds Show Why

The profile you pick now sets the container CPU and memory it actually runs with, and a source build that fails no longer sits in Building forever.

  • Choosing a resource profile sets the container CPU and memory requests and limits accordingly; previously every container ran with the same defaults regardless of profile
  • The container page shows the CPU and memory it actually runs with, and the API exposes a metrics endpoint plus the same values on the container resource
Show 2 more changes
  • A source build whose checkout or build step fails is marked Build failed, with the reason, recovery guidance and a link to the failed build
  • Builds are reconciled against the build system, so a lost callback can no longer leave a container stuck
Read documentation (opens in a new tab)

Version 2.9.80

FeatureRegistry

Automatic Image Retention and Accurate Registry Usage

Keep only the images you can roll back to, and see how much space your repositories really use.

  • Set a keep-last-N retention per repository, with an account-wide default that every repository inherits unless it sets its own
  • Retention is enforced on every push: older tags beyond the limit are removed, the tag you just pushed is always kept, and layers still referenced by a kept tag are never deleted
Show 3 more changes
  • Repository sizes now reflect the real content of multi-architecture images, which used to be counted at a few kilobytes each
  • Deleting an image from the dashboard now reports a refused deletion instead of claiming success while the bytes stayed
  • The retention editor states plainly whether a repository inherits the default, keeps a number of tags or is unlimited
Read documentation (opens in a new tab)

Version 2.9.79

ImprovementPlatform

Faster, Truer Metrics Charts for Caches, Databases and Rapids

The metrics pipeline behind every chart was rebuilt for accuracy and speed, and the chart catalog grew in the process.

  • Charts now summarise every sample inside each step, so gauges keep their peaks and rates are averaged properly instead of showing one sample in thirty
  • Long ranges render again: 72-hour and 7-day database charts and the 7-day and 30-day Rapids tabs no longer come back empty
Show 4 more changes
  • The granularity picker is honoured end to end, results are cached briefly and per-node database queries no longer multiply with the node count, so pages load noticeably faster
  • Rapids grows from 6 to 10 charts, including response time p50/p95/p99, responses by status class, an error rate in percent, concurrency and network I/O
  • Caches grow from 5 to 14 charts with hit rate, evictions, key counts, command latency, fragmentation and replica lag, and CPU and memory now come from container metrics, which fixes Dragonfly CPU readings
  • Databases gain database size, blocked queries, backup archiving, connection pooler charts, and MySQL and MariaDB connection error and temp table charts
Read documentation (opens in a new tab)

Version 2.9.78

Bug fixDatabases

Real Backup Times, Stuck Removals and Name Validation

Three corrections to what the database pages tell you and do.

  • Managed PostgreSQL and MariaDB instances now show the actual time of their nightly backup instead of a fixed 2:00 AM UTC that never applied to them
  • A removal whose job died mid-flight, or whose deployment was already gone, no longer leaves the instance parked in a destroying state; it is completed or reported automatically
Show 1 more changes
  • Instance names are validated up front as lowercase labels that start with a letter and stay under 50 characters, in the create, edit, restore and clone forms and the API, so a name can no longer be accepted and then fail at deploy time

Version 2.9.77

ImprovementDatabases

Storage Autoscaling and Backups Keep Up With Fast Imports

A sustained bulk import used to outrun both the storage autoscaler and the backup archiver; both now scale to the load.

  • Storage autoscaling grows in 5 GiB steps by default instead of 80 GiB, so growth stays proportional to your plan
  • When usage climbs fast, the autoscaler adds enough space at once to restore a buffer and skips its cooldown at emergency utilisation
Show 3 more changes
  • PostgreSQL write-ahead log archiving got more CPU and a faster compressor, raising archive throughput up to seven times
  • Backup storage quotas for managed PostgreSQL are sized from the instance storage and grow with it, so archiving never stalls on a full backup bucket
  • A database left full while provisioning or in an error state can now recover through autoscaling as well
Read documentation (opens in a new tab)

Version 2.9.76

FeatureStorage Share

Nextcloud 34 for Storage Share

New Storage Share instances run Nextcloud 34 by default, and every offered version ships with its latest patched image.

  • Nextcloud 34 is available and is the default for new instances
  • Nextcloud 33 and 32 remain available for teams that prefer to upgrade on their own schedule
Show 1 more changes
  • All images were updated to the current patch releases (34.0.3, 33.0.8, 32.0.14), which also keep uploads working after the object storage security update
Read documentation (opens in a new tab)

Version 2.9.75

FeaturePlatform

Maintenance Windows on the Status Page

Planned maintenance is now scheduled, shown live and archived on the public status page instead of appearing as an unexplained gap.

  • Upcoming maintenance shows its title, description, scheduled start and end and the affected services
  • Maintenance in progress is shown live with its start time and expected completion, and covered services read as under maintenance rather than degraded
Show 2 more changes
  • Real incidents outrank maintenance, so partial maintenance can never hide an outage
  • A Past Maintenance section lists completed windows from the last 90 days next to past incidents

Version 2.9.74

SecurityStorage

Object Storage Security Update: Signed Content-Type Required

A security update to the storage layer (CVE-2026-54330) means the S3 endpoint now enforces the standard SigV4 rule that a Content-Type header, when sent, must be covered by the request signature.

  • Requests that send an unsigned Content-Type header are rejected with AccessDenied and an empty message; downloads and listings are unaffected
  • Presigned upload URLs that sign only host break when the uploading client adds a content type, which browsers always do; sign the content type when generating the URL
Show 3 more changes
  • Clients built on aws-sdk-php never sign that header; the documentation shows how to adjust each affected client, including Synology Hyper Backup
  • A temporary compatibility setting kept affected uploads working until 30 August 2026
  • Storage Share images were updated (Nextcloud 34.0.3, 33.0.8 and 32.0.14) so their own uploads keep working
Read documentation (opens in a new tab)

Version 2.9.73

FeatureBilling

Separate Domestic Tax IDs for EU Businesses

Billing settings now distinguish businesses from individuals and keep a domestic tax number apart from an EU VAT number.

  • Choose Business or Individual as your billing profile type
  • EU businesses can record a national company or tax registration number independently of their EU VAT number
Show 2 more changes
  • Both identifiers are stored with each invoice and printed on it exactly as they were at the time
  • Reverse-charge treatment is applied only where it actually applies, instead of being assumed for every business
Read documentation (opens in a new tab)

Version 2.9.72

ImprovementPlatform

The Activity Log Now Records Every Action

The Activity Log used to surface almost nothing beyond sign-ins; it now shows every resource you create, change or remove.

  • Creations, updates and deletions of VPS, databases, caches, static sites, Rapids containers, Storage Shares and more appear as their own entries
  • Each entry names the actual action, so a database creation no longer shows up as a firewall update
Show 2 more changes
  • Team membership changes, API key events and firewall changes are recorded with what changed
  • Actions from the previous 90 days are backfilled nightly, so the log fills in rather than starting empty

Version 2.9.71

ImprovementPlatform

A Refreshed Sign-In and Dashboard

The sign-in flow and the dashboard chrome now share the same design language as the rest of the site, with accessibility fixes throughout.

  • Every sign-in, registration, password reset, two-factor and email verification page moves onto a split-panel layout with a dark brand panel
  • The dashboard sidebar becomes a dark brand rail in both themes, the header slims down and primary actions use one consistent button style
Show 3 more changes
  • Favourites and rail-mode flyouts are reachable from the keyboard, the closed mobile drawer leaves the tab order, and the current-page indicator meets contrast requirements
  • Header labels and shortcuts meet WCAG AA contrast in light and dark mode, and the header reflows cleanly down to 320px wide
  • The managed apps plan grid adapts to small screens

Version 2.9.70

Bug fixPlatform

Fewer False Alerts and Smoother Multi-Project Navigation

A round of fixes to notifications and to pages opened from links, bookmarks and second tabs.

  • Pod health alerts now cover only your own workloads; internal maintenance jobs that share your namespace no longer trigger a Workload has failed email
  • Storage Share workloads are named correctly in alerts instead of showing an internal placeholder
Show 3 more changes
  • Opening an instance in a project other than the one currently selected, via a bookmark, an email link or another tab, now loads every panel instead of failing on the page requests
  • Email unsubscribe links work without signing in, including the one-click unsubscribe used by mail providers
  • A single domain that fails to resolve no longer interrupts the custom-domain DNS check for everyone else

Version 2.9.69

FeatureStorage

Get Notified Before a Bucket Fills Up

A bucket that reaches its size limit rejects every write while reads keep working, so you now hear about it before it happens.

  • Buckets with a size limit are checked every 15 minutes against their measured usage
  • Your team is emailed and notified in the dashboard once when a bucket passes 80% of its limit and once more when it reaches 100%
Show 2 more changes
  • No repeat messages while the bucket stays full, and recovery is silent; a bucket that empties and fills again triggers a fresh notice
  • Buckets whose usage measurement is missing or stale are never alerted on
Read documentation (opens in a new tab)

Version 2.9.68

FeatureDatabases

Public Hostname for the PostgreSQL Connection Pooler

The transaction-mode connection pooler can now be reached from outside the platform, which is what serverless functions and short-lived workers need.

  • Enable public access for the pooler separately from the direct connection; each keeps its own hostname and ports
  • One pooler hostname serves two ports: one for the writer and one that accepts any node
Show 2 more changes
  • Pooler ports come from their own ranges, so enabling them never competes with the direct connection ports
  • The reader pooler endpoint remains internal-only
Read documentation (opens in a new tab)

Version 2.9.67

SecurityStorage

New Buckets Are Encrypted by Default Again

Server-side encryption at rest is back on by default for every new bucket, now that server-side copies of encrypted objects work.

  • Buckets created in the dashboard and through the API both default to encryption at rest; previously only the API did
  • You can still opt out per bucket when you create it
Show 1 more changes
  • CopyObject now works on encrypted objects, so client-side move and rename operations succeed; multipart copies (UploadPartCopy) of encrypted objects remain partially supported
Read documentation (opens in a new tab)

Version 2.9.66

FeatureAPI

Block Volumes, Managed Apps, Uptime Checks, Metric Alerts and Registry in the API

Five more products are fully operable without the dashboard, so you can provision a working machine, watch it and clean up its images from a script.

  • Create, update and delete VPS block volumes with the existing vps abilities, and list every volume in a project
  • Stand up and manage WordPress, n8n, Ghost and the other managed apps: catalog, create, update, delete, metrics, credentials, logs, events and diagnose
Show 3 more changes
  • Create, toggle and test uptime checks and read their results and incidents, behind the new uptime abilities
  • Create metric alerts against any resource you own with the alerts abilities, with the same validation the dashboard applies
  • List and delete container registry repositories and tags and read your registry usage with the new registry abilities
Read documentation (opens in a new tab)

Version 2.9.65

FeatureAPI

Diagnostics and Events for Every Product via the API

Every managed product now answers the question why is this not working through the same status model, diagnose endpoint and event stream, so your scripts and agents can operate the platform end to end.

  • Call /diagnose on caches, databases, queues, static sites, VPS, object storage buckets and Rapids containers to get ranked findings, each with a stable code, a severity and whether a retry can help
  • Read recent cluster events for a resource with /events, and cursor-paged workload logs with /logs on managed workloads (a VPS exposes events only, since it runs your own operating system)
Show 4 more changes
  • Every show response carries status_details and capabilities, so you know which of logs, events and diagnose a resource supports before calling it, and whether the reading is stale
  • A bucket at its size limit now diagnoses as storage.quota_exceeded instead of silently rejecting writes
  • API tokens can now be scoped to queues and parameter groups
  • The published OpenAPI document is served from the committed contract and describes the real shape of status_details, capabilities, meta and diagnose findings
Read documentation (opens in a new tab)

Version 2.9.64

FeaturePlatform

Every Documentation Page Now Available as Markdown and JSON

Append .md or .json to any documentation URL to get the page as clean Markdown or structured JSON — built so coding agents, scripts and RAG pipelines can read our docs without scraping HTML.

  • Append .md to any docs URL for clean Markdown — https://docs.danubedata.ro/concepts.md
  • Append .json for structured JSON with the title, section, headings, breadcrumbs, word count, prev/next links and full content
Show 4 more changes
  • A single index at https://docs.danubedata.ro/index.json lists all 95 pages across every section
  • llms.txt and llms-full.txt give an AI assistant the whole platform in one fetch
  • Point Claude Code, Cursor or your own agent at the docs and let it answer from the current text rather than stale training data
  • No API key and no scraping — the same public URLs you already use, with a suffix
Read documentation (opens in a new tab)

Version 2.9.63

FeatureRapids

Deployment Diagnostics Built for the CLI and AI Agents

Rapids now reports a truthful, machine-readable deployment state with a typed reason, plus APIs for logs, revisions and events — so a script or coding agent can diagnose a failed deploy without opening the dashboard.

  • Deployment status is machine-readable, with typed detail explaining exactly what went wrong
  • New API endpoints for container logs, revisions and events
Show 4 more changes
  • Registry credentials are attached automatically when you deploy from your private registry
  • A registry context endpoint and push preflight tell you where to push and whether it will succeed
  • POST /serverless accepts an Idempotency-Key, so a retried create never produces a second container
  • A container in a degraded state can now be edited to fix it, instead of being stuck
Read documentation (opens in a new tab)

Version 2.9.62

Bug fixDatabases

Database Lifecycle Fixes: Names, Stop/Start and Destroy

Several database lifecycle issues are resolved — the database you name is created, stopping no longer wedges, and a destroy is only reported done once it really is.

  • The database name you supply is now created on PostgreSQL instances
  • Stopping an instance no longer wedges, and there is a force-stop recovery path
Show 3 more changes
  • The DNS endpoint shown after a stop/start cycle is now correct
  • A destroy is reported complete only once the underlying resources are actually gone
  • We are alerted when an instance's deployment sync gets stuck, instead of it sitting silently
Read documentation (opens in a new tab)

Version 2.9.59

ImprovementBilling

VAT Numbers That Validate as You Type — and Explain Themselves When Rejected

VAT entry now checks the format as you type, gives the specific reason a number was rejected, and VAT appears correctly on your invoices.

  • Inline format validation while you type your VAT number
  • A specific reason when a number is rejected, instead of a flat invalid
Show 4 more changes
  • A VAT number already registered on your account is no longer treated as a rejection
  • Your tax country is derived from your payment method when it was missing
  • VAT amounts now appear correctly on invoices, and affected past invoices have been corrected
  • A prompt to complete your billing details when something required for a valid invoice is missing
Read documentation (opens in a new tab)

Version 2.9.61

ImprovementRapids

Your Containers Now See the Real Visitor IP

The originating client address is preserved all the way to your container, so rate limiting, geolocation and IP allowlists work on real addresses.

  • X-Forwarded-For now carries the real client IP rather than an internal address
  • Rate limiting and abuse controls inside your app operate on genuine addresses
Show 3 more changes
  • Geolocation and analytics see the visitor rather than our load balancer
  • Works for both IPv4 and IPv6 visitors
  • Read the chain from the right and take the first public address — the docs show the exact snippet
Read documentation (opens in a new tab)

Version 2.9.60

ImprovementBilling

A Longer, Clearer Runway When a Payment Fails

The window between a failed payment and any impact on your services has been widened, and the banner now tells you exactly where you stand in it.

  • More time between a failed charge and any restriction on your account
  • The unpaid banner escalates as the deadline approaches — the urgency is never a surprise
Show 2 more changes
  • Every stage names the amount due and links straight to the payment page
  • Paying at any point clears the banner immediately
Read documentation (opens in a new tab)

Version 2.9.58

SecurityAPI

Project-Scoped API Tokens Now Stay Inside Their Project

An API token scoped to one project can no longer read or act on resources belonging to your other projects.

  • Project scope is enforced on every request, not only at token creation
  • A scoped token calling another project's resource is now rejected
Show 2 more changes
  • Nothing to change on your side — existing tokens keep working within their own project
  • Review your tokens and their scopes in Account Settings
Read documentation (opens in a new tab)

Version 2.9.57

FeatureRapids

Readiness Probes and a Startup Deadline for Your Containers

Tell us the HTTP path that means your container is ready, and how long it is allowed to take getting there.

  • Opt-in HTTP readiness probe — set the path, port and timing
  • Set a startup deadline so a slow-booting container is given the time it needs
Show 3 more changes
  • Traffic only reaches a revision once its readiness probe passes
  • A container that never becomes ready fails the deploy instead of quietly serving errors
  • Configurable on both the create and edit forms
Read documentation (opens in a new tab)

Version 2.9.56

ImprovementDatabases

Private and Public Connection Details, Side by Side

Database and cache instances now show their internal and external connection strings separately, each with the correct port, plus superuser credentials.

  • Private (in-cluster) and public (external) endpoints are listed separately
  • Each endpoint carries its own port — the external string no longer shows the internal one
Show 3 more changes
  • Superuser credentials are available alongside the application user
  • The same split is returned by the API on database and cache resources
  • Copy the string you actually need instead of editing it by hand
Read documentation (opens in a new tab)

Version 2.9.55

FeaturePlatform

Activity Feed — See Every Change Made in Your Project

A per-project timeline of who did what and when, with filters, operation detail and export.

  • Timeline of every operation in your project — creates, changes, deletions and access events
  • Filter by who acted, which resource type, and over what period
Show 3 more changes
  • Open any entry to see the detail behind the operation
  • Export the feed as CSV or JSON for your own records or an audit
  • Reachable from the dashboard and from your project navigation
Read documentation (opens in a new tab)

Version 2.9.54

FeaturePlatform

Know the Moment a Domain's TLS Certificate Needs Attention

We now surface the actual reason a certificate failed to issue and email you when a domain needs action — across Rapids, Static Sites and Managed Apps.

  • The certificate failure reason is shown directly in the domain table
  • Email notification when a domain needs your attention, with a cooldown so you are not spammed
Show 3 more changes
  • Hourly certificate health sweep across every custom domain on all three products
  • Expired certificates are flagged in the dashboard instead of failing quietly
  • Most failures come down to a DNS record — the message tells you which one
Read documentation (opens in a new tab)

Version 2.9.53

FeaturePlatform

Custom Domains: CNAME Setup and One-Click www

Point a custom domain at a DanubeData hostname with a CNAME or ALIAS record instead of a raw IP address, and add the www companion in a single click.

  • Subdomains use a CNAME; root domains use an ALIAS or ANAME record
  • Pointing at a hostname means your DNS keeps working when infrastructure moves — a pinned IP does not
Show 3 more changes
  • Adding a root domain now offers a one-click 'also add www' on Rapids, Static Sites and Managed Apps
  • Clearer, record-type-specific DNS guidance on the add-domain form
  • Fixed detection of domains still bound the old way, so the migration prompt is accurate
Read documentation (opens in a new tab)

Version 2.9.52

FeatureVPS

2026 Image Catalog — AlmaLinux 10, Rocky 10, Fedora 44 and Alpine 3.24

The VPS image catalog has been refreshed to current releases, every image pinned to a boot-verified build, with end-of-life images retired.

  • Added AlmaLinux 10, Rocky Linux 10, Fedora 44 and 43, Alpine 3.24 and 3.23
  • Every offered image is pinned to a build we have boot-tested
Show 2 more changes
  • Retired end-of-life images: Debian 11, AlmaLinux 8, Rocky Linux 8, Fedora 42 and 41, Alpine 3.21 and 3.20
  • Existing instances on a retired image keep running — only new instances are affected
Read documentation (opens in a new tab)

Version 2.9.51

SecurityVPS

Your Root Password No Longer Reaches the VPS Console Log

Cloud-init now receives a SHA-512 hash instead of your plaintext root password, and your own SSH settings are no longer overridden by ours.

  • The root password is embedded as a SHA-512 crypt hash, never as plaintext
  • Passwords you supply in custom cloud-init are hashed the same way
Show 3 more changes
  • Our sshd drop-in is ordered so that your own Port and authentication overrides win
  • ssh.socket is reloaded so a custom SSH port takes effect on socket-activated Ubuntu
  • Fixed password logins being refused on Ubuntu images
Read documentation (opens in a new tab)

Version 2.9.49

FeatureDatabases

MariaDB Gains Replicas, High Availability and Scheduled Backups

New MariaDB instances run on our managed operator, bringing read replicas, HA and scheduled physical backups to MariaDB.

  • MariaDB 11.6, 11.4 and 10.11 available on the managed operator
  • Add read replicas and run MariaDB in a high-availability configuration
Show 3 more changes
  • Scheduled physical backups, with restore and fork-to-a-new-instance
  • Root superuser credentials are shown on the instance page
  • The MySQL/MariaDB deprecation notice is gone from the create page — both remain fully supported
Read documentation (opens in a new tab)

Version 2.9.50

ImprovementVPS

Your VPS Reaches a Usable SSH Prompt Much Faster

First boot no longer blocks on package upgrades or fixed sleep timers, so a new VPS is ready to log into sooner.

  • Base package upgrades moved to a background job instead of blocking boot
  • Removed fixed sleep delays from network and SSH configuration
Show 2 more changes
  • IPv6 router advertisement is polled for rather than waited on for a flat three seconds
  • You get a working SSH prompt sooner — hardening still completes in the background
Read documentation (opens in a new tab)

Version 2.9.48

FeatureRapids

Allowlist Rapids: Published Egress IP Addresses

The public IPv4 addresses your Rapids containers make outbound connections from are now documented, so you can allowlist them on a third-party database or API.

  • Published list of the IPv4 addresses Rapids containers egress from
  • Machine-readable at docs.danubedata.ro/rapids-egress-ips-v4.txt for use in automation
Show 2 more changes
  • Allowlist Rapids on an external database, payment provider or partner API
  • We continuously check for drift and are alerted if traffic ever leaves from an undisclosed address
Read documentation (opens in a new tab)

Version 2.9.46

ImprovementPlatform

One Alert Email Per Incident — and Alerts That Actually Arrive

Failure notifications are now grouped per incident rather than sent by every detector, transient mail failures are retried, and links inside notifications take you to the right place.

  • A single email per incident, instead of one from each detector that noticed it
  • Transient mail delivery failures are retried rather than silently dropped
Show 2 more changes
  • Action links in notifications now open the resource they refer to
  • Container Registry is now health-checked on the public status page
Read documentation (opens in a new tab)

Version 2.9.47

ImprovementBilling

Find Out Exactly Why a Card Payment Was Declined

A declined card now shows the specific reason from your bank instead of a generic failure, and retrying no longer works against you.

  • The decline reason reported by your bank is shown, not a generic error
  • Guidance on what to do next for the most common decline reasons
Show 2 more changes
  • Retrying a payment no longer shortens the time you have to resolve it
  • A clear next step when the fix has to happen on your bank's side
Read documentation (opens in a new tab)

Version 2.9.45

ImprovementPlatform

Log Explorer Now Keeps 10 Days of History

Instance log retention went from 3 days to 10, so you can still investigate an incident that happened last week.

  • Retention raised from 3 days to 10 days across all instance types
  • New 7d and 10d presets in the Log Explorer time picker
Show 2 more changes
  • Enough history to connect a weekend incident to a Monday morning report
  • Nothing changes in how you search — the same filters simply reach further back
Read documentation (opens in a new tab)

Version 2.9.44

Bug fixPlatform

Firewall Rules Now Apply Exactly as You Ordered Them

Firewall rules are stored and enforced in the order you submit them, and edits to an existing rule now actually take effect.

  • Rules keep the order you set instead of being silently re-sorted
  • Editing an existing rule now applies the change, rather than leaving the old rule live
Show 2 more changes
  • Fixed rule serialization so port ranges and protocols round-trip correctly
  • Applies to firewalls on VPS instances, databases, caches and queues
Read documentation (opens in a new tab)

Version 2.9.43

FeatureDatabases

A Storage Tab That Shows Every Automatic Resize

Each database instance now has a Storage tab with current usage, the autoscaling policy in force, and the full history of every automatic resize.

  • New Storage tab on every database instance page
  • See current disk usage against the provisioned size at a glance
Show 3 more changes
  • Review the autoscaling policy in force — trigger threshold, growth step and ceiling
  • Full history of every automatic resize, with what triggered it and the resulting size
  • Confirm autoscaling did its job instead of inferring it from disk graphs
Read documentation (opens in a new tab)

Version 2.9.40

FeatureBilling

Central Billing — Pay for All Your Organizations from One Account

Own more than one team? Link them under a single payer so one payment method and one place to pay covers them all.

  • Nominate one of your teams as the payer and link your other teams to it, right from the Billing page
  • The payer's payment method covers every linked team — no need to add a card to each one
Show 3 more changes
  • Invoices for your linked teams are billed to the payer, and reminders list every open invoice in one place
  • Unlink at any time — a linked team can leave on its own, or the payer can remove it
  • Available to anyone who owns more than one team
Read documentation (opens in a new tab)

Version 2.9.42

Bug fixPlatform

A Stopped Instance Now Stays Stopped

Fixed a case where a manually stopped instance could be brought back to Running on its own by our internal health syncing.

  • Stopping an instance now sticks — it will not be restarted behind your back by internal health reconciliation
  • Applies to managed instances that report health through our deployment system

Version 2.9.41

SecurityPlatform

Stronger Protection for Sign-Up and Sign-In

We hardened account creation and login against automated abuse and account-guessing, and added a bot challenge to registration.

  • Registration is now protected by a Cloudflare Turnstile challenge to keep automated sign-ups out
  • Signing up always ends on a neutral check-your-email step, so the form never reveals whether an address already has an account
Show 4 more changes
  • Password-reset and sign-up responses no longer disclose whether an email is registered
  • Added rate limiting to registration, password-reset, and email-verification requests
  • Login now takes constant time, closing a subtle way to probe for valid emails
  • Your active sessions are re-validated when you change your email or two-factor settings

Version 2.9.39

Bug fixStorage

Fixed Re-Enabling an SFTP User After Its Key Was Revoked

Re-enabling an object-storage SFTP user whose access key had been revoked now restores access cleanly instead of leaving it stuck.

  • Re-enabling a disabled SFTP user reliably restores its access to your buckets
  • Recovers correctly even when the underlying access key had been revoked while the user was disabled

Version 2.9.38

ImprovementBilling

Add a Billing Email and Your Own References to Invoices

Send invoices to a dedicated inbox and stamp your own references — like a PO number or cost center — onto every invoice.

  • Set a dedicated billing email so invoices and receipts reach your accounts team directly
  • Add up to two custom references (for example a PO number or cost center) that appear on every invoice
Show 1 more changes
  • Manage both from your billing settings, anytime
Read documentation (opens in a new tab)

Version 2.9.37

ImprovementAPI

Paginate API List Endpoints and Query Pricing Plans

The API can now return your list results in pages, and expose current pricing plans directly — handy for scripting and the danube CLI.

  • Pass per_page (1-200) on the VPS and snapshot list endpoints to control how many results you get back per request
  • New endpoints list the available VPS, cache, and database plans with their live rates
Show 2 more changes
  • Plan and rate data comes straight from our pricing engine, so what you script against matches what you are billed
  • Powers the latest danube CLI release
Read documentation (opens in a new tab)

Version 2.9.35

ImprovementPlatform

A Smoother Dashboard Experience on Phones and Small Screens

We swept the entire dashboard — dialogs, tables, charts, and dozens of individual pages — to hold together cleanly on narrow screens, not just desktop.

  • Dialogs, wide tables, and charts now adapt to narrow screens instead of overflowing or getting clipped
  • Long values like access keys and connection strings wrap instead of spilling outside their container
Show 2 more changes
  • Page headers and tab bars stay usable on small screens, scrolling horizontally instead of breaking the layout
  • Applied across Databases, Cache, Queues, Serverless, Storage, Registry, Static Sites, Firewalls, Networking, Managed Apps, Billing, and account/team pages

Version 2.9.36

FeaturePlatform

Uptime Checks — Know the Moment Your Site Goes Down

Monitor any HTTP(S) endpoint from our platform and get emailed the moment it goes down — and again the moment it recovers.

  • Create a check in under 30 seconds from the new Uptime section in your sidebar
  • Choose a 1-minute or 5-minute check interval, and set the response you expect by status code, response body keyword, or both
Show 4 more changes
  • See uptime percentage over 24 hours, 7 days, and 30 days, plus a full history chart of every probe with incidents shaded
  • Get an email the moment a check goes down, and another when it recovers
  • TLS certificate expiry warnings for HTTPS checks
  • Included on every plan, with up to 5 checks per team
Read documentation (opens in a new tab)

Version 2.9.34

FeatureServerless

Change a Serverless Container's Source Without Recreating It

Started from a Docker image but want to switch to a Git repo, or the other way around? You can now change a Rapid's deployment source right from its Edit page.

  • Switch between Docker image, Git repository, and ZIP upload for an existing container from the Edit page
  • Your cost baseline and deployment history carry over cleanly across the switch
Show 1 more changes
  • Switching away from a Git-connected source automatically stops that repo's push-to-deploy webhook from triggering new builds
Read documentation (opens in a new tab)

Version 2.9.33

FeaturePlatform

Upgrade Your Cache, Database, or Queue's Engine Version — No Recreation Needed

Move to a newer Redis, MySQL, PostgreSQL, or RabbitMQ version right from the instance page — we handle the snapshot, the upgrade, and the rollback path.

  • Open the new Updates tab on any eligible Cache, Database, or Queue instance to see the versions you can upgrade to
  • Start an upgrade with one click — a snapshot is taken automatically first, so you can restore if anything looks wrong afterward
Show 3 more changes
  • Track progress live on the instance page as the upgrade runs, no refresh needed
  • Available today for Redis, Valkey, Dragonfly, MySQL, and PostgreSQL databases, and RabbitMQ queues
  • Your instance shows a clear Updating status across the dashboard while an upgrade is in progress

Version 2.9.32

Bug fixCache

Fixed the Cache Migration Tool Occasionally Issuing a New Password

Migrating a legacy Redis or Dragonfly cache to our managed operator could swap in a new password instead of carrying yours across. Migrations now preserve your existing password every time.

  • Migrating a legacy Redis or Dragonfly instance to the managed operator now always carries your existing password across, instead of occasionally generating a new one
  • The password shown on your cache instance page is accurate immediately after migration
Show 1 more changes
  • Dragonfly's pre-migration snapshot now reliably captures your latest data before cutover

Version 2.9.31

Bug fixPlatform

Status Page No Longer Flags a False VPS Outage

A monitoring hiccup that couldn't reach the cluster API was being reported as VPS pools being down. It's now reported accurately, as a monitoring issue rather than a platform outage.

  • The public status page distinguishes we can't currently check from your VPS pools are actually down
  • Removes a source of false-positive outage banners on the status page

Version 2.9.30

FeatureCache

Migrate Your Redis or Dragonfly Cache to Our New Managed Operator

Move an existing standalone Redis or Dragonfly cache onto our newer, operator-managed backend yourself, right from the instance page.

  • Open the actions menu on an eligible cache instance and choose Migrate to managed operator
  • Available today for standalone (non-replicated), running Redis and Dragonfly instances — Valkey support is on the way
Show 4 more changes
  • Track migration progress live on the instance page, from snapshot through cutover
  • A short downtime window applies during cutover; your password and existing data carry over unchanged
  • After cutover, you get a grace period to confirm you're happy or roll back — it auto-confirms if you don't act
  • New Redis and Dragonfly caches are created on the managed operator by default now too
Read documentation (opens in a new tab)

Version 2.9.29

FeatureDatabases

Database Storage Autoscaling — Never Get Caught Out by a Full Disk

Turn on autoscaling for any managed database and we'll grow its storage automatically before it ever fills up.

  • Enable Storage Autoscaling when creating a database, or turn it on anytime from the instance's edit page
  • Set your own trigger threshold (default 80% used) and growth increment (default 80 GiB) per instance
Show 4 more changes
  • Storage grows automatically once usage crosses your threshold, with a cooldown between scale-events so it won't run away on you
  • A maximum size keeps growth within your plan and account limits — set a lower cap yourself for tighter control
  • The instance page shows autoscaling status and the projected monthly cost of the next scale-up, billed at our standard per-GiB storage rate
  • Off by default on every database — nothing changes unless you opt in
Read documentation (opens in a new tab)

Version 2.9.28

FeaturePlatform

Get Notified the Moment a Resource's Container Runs Into Trouble

We now watch the health of your running containers around the clock and alert your whole team the moment something goes wrong.

  • Continuous health monitoring across Databases, Cache, Queues, Managed Apps, VPS instances, and Serverless Containers
  • The moment an alert opens, your whole team is notified by email and in the Notification Center — with the reason included (crash loop, out-of-memory, image-pull failure, and more)
Show 3 more changes
  • If you have a webhook configured, pod health alerts flow through it automatically
  • A warning banner appears directly on the affected Database, Cache, Queue, or Managed App page
  • Alerts clear themselves automatically once the container recovers
Read documentation (opens in a new tab)

Version 2.9.27

FeaturePlatform

Log Explorer — Search, Filter, and Live-Tail Every Resource's Logs

A brand-new Logs page brings every resource's logs into one place — searchable, filterable, and streaming in real time.

  • Find Logs under the new Observability section in your sidebar
  • Search and filter logs by level, keyword, or a regex pattern across any of your instances
Show 4 more changes
  • Watch logs stream live as they happen, with automatic reconnect if your connection drops
  • Drag to zoom into any time window on the volume chart to jump straight to the matching log lines
  • Jump directly into a resource's logs from its own instance page
  • Covers Databases, Cache, Queues, Managed Apps, and Serverless Containers
Read documentation (opens in a new tab)

Version 2.9.26

Bug fixDatabases

Fixed a Sticky Error After Schema Changes via the Connection Pooler

A schema change like adding a column, run through your PostgreSQL connection pooler, could leave it returning errors for up to an hour. That's fixed.

  • Managed PostgreSQL poolers now cap prepared statements at a safe limit on every instance
  • Running DDL (like ALTER TABLE) through the pooler endpoint no longer risks a lingering error on your app's existing connections

Version 2.9.25

FeatureBilling

Get an Email Receipt for Every Payment

Every successful invoice payment now lands a receipt straight in your inbox — no need to dig through the billing tab.

  • You receive an email receipt automatically the moment an invoice payment succeeds
  • The receipt shows the correct charge date and amount, matching what you see in your billing history
Show 1 more changes
  • Duplicate receipts are prevented, even if a payment is processed more than once
Read documentation (opens in a new tab)

Version 2.9.24

FeatureServerless

Alerts When a Serverless Deploy Fails

If a container's latest deploy fails, we catch it and let your team know — even after the first rollout.

  • We continuously watch your running containers and flag one as degraded if a new revision fails while your last healthy version keeps serving
  • Your team gets an email the moment a container runs into trouble, with the reason and a link to investigate
Show 2 more changes
  • A new serverless.build_failed webhook lets you feed build failures straight into your own tooling when webhooks are enabled
  • Containers that recover on their own clear automatically back to healthy
Read documentation (opens in a new tab)

Version 2.9.23

ImprovementServerless

Live Build Logs & Clearer Deploy Errors

Watch your container build in real time and understand at a glance why a deploy failed.

  • Build logs now stream live as your container builds and refresh on their own
  • The old 500-line log limit is gone — you get the full build output
Show 1 more changes
  • Failed deploys now show a plain-language reason — for example architecture mismatch, image or tag not found, out of memory, or startup timed out — each with a hint on how to fix it
Read documentation (opens in a new tab)

Version 2.9.22

ImprovementPlatform

A Clearer, More Accurate Status Page

Our public status page is now more precise about what is really happening — with fewer false alarms and coverage for Serverless Containers.

  • Added a Serverless Containers component covering the serverless platform and build pipeline
  • Brief, self-correcting blips no longer trip a false incident — a problem now has to persist before we report it
Show 2 more changes
  • Deleting a database or cache mid-setup no longer shows up as a phantom stuck deployment
  • Incident notes no longer expose raw internal error details

Version 2.9.21

FeaturePlatform

Scope API Tokens to a Single Project

Create API tokens that are locked to one project, so an integration only ever touches the resources you intend.

  • When creating a token, choose This project only or All my projects — new tokens are locked to the current project by default
  • Every token in your list shows its scope at a glance, with the project name on project-locked tokens
Show 2 more changes
  • A project-locked token is refused, with a clear message, if it is used against any other project
  • Your existing tokens keep working with account-wide access — nothing to change unless you want to tighten them
Read documentation (opens in a new tab)

Version 2.9.20

Bug fixNetworking

External Access Works the Moment You Enable DNS

Turning on public access for a managed database, cache, or queue now opens the connection immediately — with no extra steps.

  • Enabling public DNS on a database, cache, or queue now updates its firewall automatically so external clients can connect right away
  • Turning public access back off closes that path just as cleanly
Show 1 more changes
  • Instances that already had public access enabled have been brought in line

Version 2.9.19

ImprovementDatabases

Your Database Name, Front and Center

The name of the database we create for you now appears right next to your connection credentials.

  • The instance page now shows your ready-to-use database name in the credentials card
  • No more guessing which database to point your application at

Version 2.9.18

FeatureDatabases

Enable PostGIS in One Click

Turn a managed PostgreSQL database into a full geospatial database right from its instance page — no manual extension setup.

  • New Enable PostGIS card on the Connectivity tab of your PostgreSQL instance
  • One click sets up the PostGIS extension for geometry types, spatial indexes, and GIS functions
Show 2 more changes
  • Available on PostgreSQL 15 through 18
  • Your data and settings are preserved; single-node instances restart briefly while high-availability clusters roll with near-zero downtime
Read documentation (opens in a new tab)

Version 2.9.17

Bug fixServerless

Numeric Image Tags No Longer Stall Deploys

Deploying a container image whose tag is all digits — like a 7-character Git short commit — now works the first time.

  • Fixed a bug where an all-numeric image tag was misread, leaving the deploy stuck while your previous version kept serving
  • Deploys that use commit-based image tags now roll out normally

Version 2.9.16

ImprovementServerless

Clearer Free-Tier Usage & Billing

The Usage & Billing tab now shows exactly what's included free and what, if anything, you'll be charged — without misleading warnings.

  • See your included monthly allowances and a clear Used / Billable / Charge breakdown at a glance
  • Containers running within the free tier now clearly show a zero charge with an included-allowance badge
Show 2 more changes
  • Removed the incorrect warning that suggested a container stops serving traffic once a free allowance runs out — going over never suspends or throttles your container
  • Usage meters are there for visibility, not enforcement, and your free allowances reset on the 1st
Read documentation (opens in a new tab)

Version 2.9.15

FeaturePlatform

Support Ticket Drafts That Save Themselves

Start a support request, step away, and pick up right where you left off — your draft is saved automatically.

  • Your support ticket is saved automatically as you type, so you never lose a half-written request
  • Return to a saved draft any time — we'll offer to restore it with a single click
Show 2 more changes
  • If your session expires mid-write, your text is kept safe in your browser so you can log back in and recover it
  • Drafts clear themselves the moment your ticket is submitted

Version 2.9.14

Bug fixPlatform

Fixed Several Dashboard Errors

We squashed a batch of errors that could interrupt you while moving around the dashboard.

  • Signing out no longer triggers a stray error on resource list and detail pages
  • The "Add Payment Method" notice on the Serverless and Static Sites create pages no longer breaks the page
Show 3 more changes
  • The "Try Again" button on error pages now reloads reliably
  • The passkeys screen handles an empty passkey list without erroring
  • Quieter, more accurate error reporting so genuine issues surface faster

Version 2.9.13

Bug fixBilling

Reliable Payment-Method Removal

Fixed an error some accounts hit when removing their last saved card.

  • Removing your last payment method no longer fails with an error when your account still has active serverless containers
  • You now get the clear reminder to remove active resources first, instead of an unexpected error

Version 2.9.12

ImprovementServerless

Clearer DNS Setup for Custom Domains

Pointing a custom domain at your service is now harder to get wrong — the DNS instructions spell out exactly what belongs in your provider's Host field.

  • The verification record now shows the exact Host (record name) to enter, with a live preview as you type
  • A plain-language note explains that most DNS editors append your domain automatically, so you do not double it up by mistake
Show 1 more changes
  • Added a ready-to-copy command to check your verification record has resolved correctly
Read documentation (opens in a new tab)

Version 2.9.11

FeaturePlatform

Alerts When Your Sign-In Is Under Attack

Know the moment we block a burst of failed sign-in attempts on your account — so you can react fast if it was not you.

  • Get an email and in-app alert whenever we block repeated failed sign-in attempts on your account
  • Every alert names the IP address the attempts came from and confirms your account was not accessed
Show 2 more changes
  • A new Suspicious Activity toggle in Profile → Notification Preferences puts you in control of these alerts
  • Repeated attempts from the same source are grouped, so a sustained attack will not flood your inbox

Version 2.9.10

FeaturePlatform

Set Your Session Timeout

Decide how long you stay signed in when you step away — a long leash on trusted devices, a shorter one when you want extra security.

  • New idle-timeout setting in Profile → Session Security
  • Choose how long you stay signed in while idle: 24 hours (the default) or 3 hours
Show 3 more changes
  • Pick the shorter 3-hour window on shared or less-trusted devices for tighter security
  • Your session clock resets with every action — you are only signed out after genuine inactivity
  • Leave it on the default and nothing changes; your sessions behave exactly as before

Version 2.9.7

FeaturePlatform

New Sign-In Alerts

Stay on top of account access — get alerted when your account signs in from a new device, your way.

  • Get notified by email and in the app whenever your account signs in from a new device
  • Turn the email and in-app alerts on or off independently, anytime, from Notification Preferences
Show 1 more changes
  • Notification preferences now save reliably across every category, including Billing and Security

Version 2.9.6

ImprovementPlatform

Quality-of-Life Improvements

A handful of smaller upgrades across the platform.

  • Container Registry usage and cost now appear in Cost Insights, the usage breakdown, and your monthly estimate
  • More reliable Container Registry provisioning
Show 3 more changes
  • Rapids is out of beta
  • The firewall list is organized into solution tabs for easier navigation
  • Ghost blogs now open their own setup wizard instead of a managed-admin screen

Version 2.9.5

ImprovementServerless

Serverless — Redesigned Container Page & Steadier Deploys

A cleaner container detail page and a more dependable build-and-deploy pipeline.

  • Redesigned container page with a two-column layout, a sticky Live/Endpoint/Specs sidebar, and slide-over drawers
  • Builds and Deployments are now a single Activity tab
Show 2 more changes
  • Stuck rollouts time out and resolve on their own instead of hanging indefinitely
  • Build images updated to current Paketo (jammy) builders and Node 20+
Read documentation (opens in a new tab)

Version 2.9.4

FeatureNetworking

Connect to Queues over MQTT & STOMP

Managed RabbitMQ now speaks more than AMQP. Connect IoT and pub/sub clients over MQTT and STOMP, with TLS variants for both.

  • Connect to managed RabbitMQ over MQTT, MQTTS, STOMP, and STOMPS, alongside AMQP and AMQPS
  • Each protocol is exposed on its own dedicated external port, shown in the dashboard under Connect to your queue
Show 2 more changes
  • Turn it on by enabling external DNS for your queue
  • New step-by-step connection guide with code examples
Read documentation (opens in a new tab)

Version 2.9.3

ImprovementBilling

Internal Traffic No Longer Counts as Egress

Good news for your bill — traffic between your own resources on the private network is now free.

  • Traffic between your VPS, databases, and caches over the private network is no longer billed as egress
  • Only public-interface VPS egress counts toward your included traffic and overage
Show 1 more changes
  • Added Kazakhstan to the list of supported billing countries

Version 2.9.2

Bug fixPlatform

More Reliable Sign-In & Registration

A round of fixes to passkeys, social logins, and sign-up so getting into your account just works.

  • Fixed passkey registration and sign-in
  • Social logins now repair themselves automatically if an account link ever gets out of sync
Show 1 more changes
  • Sign-up consistently requires terms acceptance, eliminating rare silent registration failures

Version 2.9.1

FeatureBilling

Pay Invoices Instantly & Smarter Payment Methods

Settle an outstanding invoice yourself in a couple of clicks, keep several cards in a fallback order, and let DanubeData retry failed charges for you automatically.

  • Pay an unpaid invoice on demand from the dashboard, with 3-D Secure when your bank requires it
  • Unpaid-invoice banner across the dashboard so an overdue bill never goes unnoticed
Show 4 more changes
  • Add multiple cards and arrange them into a fallback order, each with a health badge
  • Unpaid invoices are retried automatically when you add or promote a card
  • Email reminder before a saved card expires
  • Remove any card except your last one — a backup is promoted to default automatically
Read documentation (opens in a new tab)

Version 2.9.0

FeatureDatabases

SQL Studio — A Database GUI in Your Browser

Browse, query, and edit your managed PostgreSQL data straight from the dashboard — no client to install and no credentials to copy. SQL Studio is included free with every PostgreSQL plan.

  • Browse schemas, tables, and rows with sorting, per-column filters, and pagination
  • Edit data with a staged, transactional buffer — multi-row edits, composite keys, and NULL/DEFAULT, all applied in a single commit
Show 5 more changes
  • SQL editor with saved snippets, query history, a read-only safe mode, and CSV/JSON export
  • Create, rename, duplicate, and drop tables, bulk-delete rows, and import from CSV
  • Browse functions, triggers, views, roles, extensions, and RLS policies
  • Visualize table relationships with interactive ER diagrams
  • Queries run inside an isolated agent in your own tenant, so your credentials never leave the platform
Read documentation (opens in a new tab)

Version 2.8.0

SecurityStorage

Bucket Access Policies — Restrict by IP

Lock storage buckets down to the networks you trust. A new bucket policy editor lets you allow access only from specific IP ranges — using either a guided visual builder or a raw JSON editor.

  • Restrict bucket access to specific source IP ranges (CIDR allow-lists)
  • Guided visual policy builder — set effect, actions, resources, and IP conditions without hand-writing JSON
Show 3 more changes
  • Raw JSON editor with live validation for advanced policies
  • Custom policies merge automatically with your public-access setting and scoped access keys
  • Built-in guardrails block any policy that would lock you out of managing your own bucket
Read documentation (opens in a new tab)

Version 2.7.0

FeatureStorage

Container Registry & per-bucket S3 access keys

Two new ways to control private artifacts on DanubeData: a managed Container Registry for your Docker images, and per-bucket scoped access keys so each application credential is restricted to exactly the buckets and permissions it needs.

  • Container Registry — push and pull private Docker/OCI images via cr.danubedata.ro with per-team isolation, no node setup required
  • Container Registry — create scoped access tokens for CI/CD pipelines, with separate push and pull credentials
Show 6 more changes
  • Container Registry — anti-abuse limits and quota tracking included; bundled storage in your team plan
  • S3 access keys — choose between Team-wide (default, full access to every bucket) and Specific buckets (per-bucket, per-level grants) when creating a key
  • S3 access keys — per-bucket permission levels: Read-only, Read-write, or Full (admin)
  • S3 access keys — scoped keys are enforced at the storage backend itself via bucket policies, not just in the dashboard, so the restriction holds wherever the key is used
  • S3 access keys — create directly from a bucket detail page to scope a key to that bucket, or from Account → Security → S3 Credentials to span multiple buckets
  • S3 access keys — Set an optional expiry date and the key will be auto-revoked after the date
Read documentation (opens in a new tab)

Version 2.6.1

FeatureDatabases

PostgreSQL 18 is now available

PostgreSQL 18 — with asynchronous I/O via io_uring, virtual generated columns, and native OAuth support — is now the default version when creating a new PostgreSQL instance.

  • PostgreSQL 18 (postgres:18-alpine) selectable as the default version on the database create page
  • New "PostgreSQL 18 General Purpose" parameter group enables asynchronous I/O (io_method=io_uring, io_workers=3) for lower-latency disk operations
Show 3 more changes
  • Virtual generated columns and other PostgreSQL 18 features available out of the box
  • Existing PostgreSQL 17 / 16 / 15 instances continue to run on their selected version; choose PostgreSQL 18 when creating a new instance
  • Parameter groups are now version-scoped — a PostgreSQL 17 system parameter group cannot be attached to a PostgreSQL 18 instance, and the dropdown filters to compatible groups automatically. Custom parameter groups remain compatible across versions.

Version 2.6.0

FeatureCache

Redis 8.0 is now available

Redis 8.0 — the latest stable release with vector sets, JSON, time series, and bloom filters bundled in core, plus I/O threading enabled by default — is now the default version when creating a new Redis instance.

  • Redis 8.0 (redis:8.0-alpine) selectable as the default version on the cache create page
  • New "Redis 8.0 General Purpose" parameter group ships with io-threads=4 and io-threads-do-reads=yes for higher throughput on multi-core profiles
Show 3 more changes
  • Vector sets, native JSON, time series, and bloom filters now ship with the core image — no module installation needed
  • Existing Redis 7.4 / 7.2 instances continue to run on their selected version; choose Redis 8.0 when creating a new instance
  • Parameter groups are now version-scoped — a Redis 7.4 system parameter group cannot be attached to a Redis 8.0 instance, and the dropdown filters to compatible groups automatically. Custom parameter groups remain compatible across versions.

Version 2.4.3

ImprovementRapids

Smarter ZIP uploads & editable build config

Several quality-of-life upgrades to Rapids ZIP-upload deployments — wrapper-folder zips just work, build settings are editable after creation, and the upload form now tells you what is happening.

  • Auto-unwrap single-folder ZIPs — no more "Dockerfile not found" when you used `zip -r foo.zip myproject/`
  • Friendlier build errors that point you to the wrapper-folder fix when manifest files are missing
Show 4 more changes
  • Edit build configuration after creation — switch between Buildpacks and Dockerfile, change the Dockerfile path, source directory, or buildpack builder. Saving rebuilds from your last upload
  • Post-upload "Follow build" + "Cancel build" buttons replace the upload form so it is clear a build is running
  • Reserved-port validation: friendly error if you pick a port already in use by the platform, with a documented reserved list
  • Uploaded ZIPs are now kept in object storage, so manual rebuilds and Retry no longer require re-uploading
Read documentation (opens in a new tab)

Version 2.5.1

ImprovementStorage

Redesigned Metrics Toolbar

The Metrics tab toolbar is redesigned to match the VPS and database performance pages: pill-group time-range picker, auto-period selection, and proper auto-refresh controls.

  • Time-range pill group with 8 ranges: 1h, 6h, 12h, 1d, 3d, 1w, 2w, 1M
  • Period picker with Auto mode plus 1m / 5m / 10m / 15m / 30m / 1h / 6h / 1d manual options
Show 4 more changes
  • Period options dynamically filter to sane choices per window — no more 43k-datapoint requests
  • Auto-refresh toggle with 30s / 1m / 5m intervals and manual Refresh button
  • Freshness badge moved inline with the controls card so data staleness is always visible
  • Single-point spikes (e.g. a brief error burst) now render as a visible dot instead of only showing on hover

Version 2.5.0

FeatureStorage

Per-Interval Bucket Metrics & Health

Storage metrics move from smoothed 24h rolling sums to true per-interval deltas, with first-class error-rate, latency, and bucket-health panels.

  • Per-interval request counts, egress bytes, and HTTP status breakdown (2xx / 4xx / 5xx) derived from Prometheus recording rules fed by an Alloy log-to-metric pipeline
  • Latency histograms with p50 / p95 / mean per bucket
Show 6 more changes
  • 4xx and 5xx rate charts split into separate series — 4xx surfaces client 404s/403s, 5xx surfaces real server-side incidents
  • Bucket Health card surfaces pending multipart uploads (reclaimable bytes) and deleted-version size via a sharded hourly probe against the Ceph RGW admin API
  • Freshness badge (fresh / lagging / stale) on the Metrics tab so you always know how recent the data is
  • New /metrics endpoint fields: requests_24h_by_status, error_rate_24h, latency_24h_ms, ingress_bytes_24h, freshness, source
  • New API endpoints: /metrics/trend, /metrics/top-objects, /metrics/health (session + API v1)
  • Hourly rollup table so 30-day trend queries scan ~720 rows per bucket instead of ~43k

Version 2.5.2

FeatureCLI

Storage Metrics in danube-cli

The danube CLI gains trend / top / health subcommands under storage buckets metrics, plus extended snapshot view.

  • danube storage buckets metrics <id>: extended with error rate, p50/p95 latency, ingress bytes, and a freshness badge
  • danube storage buckets metrics trend <id>: time-series view with sparkline (default), table, CSV, and JSON output formats
Show 3 more changes
  • danube storage buckets metrics top <id> --by size|egress|requests: top-N objects in a bucket
  • danube storage buckets metrics health <id>: pending multipart uploads, deleted-version size, last health-check time
  • Exit code 3 on stale data so scripts and agents can branch on freshness

Version 2.4.2

FeatureStorage

Per-Bucket Storage Metrics & Landing Redesign

Rich per-bucket metrics with 24h trends and a refreshed bento-mosaic landing page.

  • Per-bucket metrics: 24h requests, 24h egress, and request breakdown by method
  • Time-series trend charts (2×2 grid) per bucket
Show 4 more changes
  • New trend API endpoint for integrations
  • Cache and database metrics exposed over the public API
  • Parameter-group CRUD available via the public API
  • Refreshed landing and solution pages with a new bento-mosaic design
Read documentation (opens in a new tab)

Version 2.4.1

FeatureManaged Apps

Managed App Upgrades & Rollbacks

In-place version upgrades for every managed app, with a pre-upgrade snapshot and a 7-day rollback window.

  • One-click upgrade between managed-app versions
  • 7-day rollback window backed by automatic pre-upgrade snapshots
Show 2 more changes
  • Live upgrade/rollback status in the UI
  • Argentina added to the billing country list
Read documentation (opens in a new tab)

Version 2.4.0

FeatureManaged Apps

Managed Immich — Self-Hosted Photos

Launch Immich, the open-source Google Photos alternative, fully managed with AI/ML enabled by default.

  • Managed Immich with per-plan storage quotas
  • S3-backed photo storage with automatic bucket sizing
Show 4 more changes
  • Automated snapshots for Immich instances
  • Solution page with SEO, FAQ, and onboarding
  • Personal Storage sidebar group for Storage Share + Immich
  • Fedora and Alpine Linux added to the VPS image catalog
Read documentation (opens in a new tab)

Version 2.3.2

FeatureNetworking

Networking Overview Page

A dedicated networking overview page with firewall/VPS port sync and richer log filtering.

  • Networking overview page with firewall ↔ VPS port sync
  • Log-source filtering in the streaming logs viewer
Show 1 more changes
  • Network peering endpoints (preview)
Read documentation (opens in a new tab)

Version 2.3.1

ImprovementBilling

Billing UI Overhaul & Postal Code Autocomplete

A redesigned billing experience with team usage tracking, better invoice tooling, and postal-code lookup for EU addresses.

  • Redesigned billing management UI with usage tracking
  • Postal-code lookup and autocomplete in billing addresses
Show 2 more changes
  • ZIP upload deployment for serverless containers
  • List-Unsubscribe headers and one-click unsubscribe in emails

Version 2.3.0

FeatureStorage

Object Lock & Windows Server (BYOL)

WORM-compliant object lock for storage buckets and Windows Server VPS instances with bring-your-own-license.

  • Object Lock for S3 buckets with guardrails against permanent deletion
  • Windows Server VPS with BYOL and license validation
Show 3 more changes
  • Default system firewalls with improved management UI
  • IPv6 address display and copy buttons on the pods table
  • Fair accrued-usage settlement when you change plans mid-month
Read documentation (opens in a new tab)

Version 2.2.5

ImprovementBilling

More Reliable Monthly Invoicing

Monthly invoice generation and charging are now more resilient, with clearer email notifications.

  • More reliable monthly invoice generation and charging
  • Improved credit application on invoice line items
Show 1 more changes
  • Refreshed invoice-generated email template

Version 2.2.4

AnnouncementPlatform

CISPE Compliance & Auto-Close Tickets

Full CISPE compliance documentation published on our legal pages, plus automatic closure of resolved support tickets.

  • CISPE compliance suite: Incident Response, Risk Management, Security Program, Shared Responsibility, and Sub-Processors pages
  • Auto-close for resolved/stale support tickets
Show 3 more changes
  • Billing documents for contract-based customers
  • Automated snapshots now run only on running instances (no wasted backups on stopped ones)
  • More reliable offsite backup retries
Read documentation (opens in a new tab)

Version 2.2.3

FeatureBilling

Referral Program & Managed RabbitMQ

Earn credits by referring friends, and deploy managed RabbitMQ for your message-broker workloads.

  • Referral program with automatic credit attribution
  • Managed RabbitMQ (alpha) for message-broker workloads
Show 1 more changes
  • Bucket-encryption alerts for compliance-sensitive teams
Read documentation (opens in a new tab)

Version 2.2.2

SecurityVPS

Automatic DDoS Protection for VPS

Automated DDoS detection and blocking at the host level protects your VPS instances without any configuration required.

  • Automatic DDoS detection and mitigation for all VPS instances
  • Clean IP handoff on VPS deletion to prevent inherited blocks
Show 1 more changes
  • Support ticket attachments

Version 2.2.1

FeatureStorage

Direct S3 Upload Manager

New upload manager with progress, speed, ETA, and CORS-aware direct-to-bucket uploads.

  • Direct-to-S3 uploads with live progress, speed, and ETA
  • Platform-wide CORS enforcement for bucket origins
Show 2 more changes
  • SFTP user deletion with safe rollback on failure
  • Optimized asset delivery for faster dashboard loads
Read documentation (opens in a new tab)

Version 2.2.0

AnnouncementStorage

New High-Durability S3 Endpoint

A new Ceph-backed S3 endpoint for higher durability and better performance, with a seamless migration path for existing buckets.

  • New high-durability Ceph-backed S3 endpoint
  • Seamless migration tooling preserves access keys and permissions
Show 2 more changes
  • Server-side encryption (SSE-KMS) preserved across migration
  • Migration update emails keep you informed every step of the way
Read documentation (opens in a new tab)

Version 2.1.2

FeatureVPS

Custom Cloud-Init & Bulk File Operations

Fine-tune VPS provisioning with a custom cloud-init editor, catch errors before deploy, and manage S3 objects in bulk.

  • Custom Cloud-Init editor for VPS setup automation
  • Cloud-Init warning analyzer catches mistakes before reinstall
Show 2 more changes
  • Bulk delete for files and folders in S3 buckets
  • Storage usage metrics now with drift correction for accuracy
Read documentation (opens in a new tab)

Version 2.1.1

FeaturePlatform

Metric Alerts & Plan Minimums

Set thresholds on CPU, memory, and disk for any resource and receive email alerts when they are breached or resolved.

  • Metric alerts with configurable thresholds
  • Resolved-alert email notifications
Show 3 more changes
  • Enforced plan minimums on CPU and memory configurations
  • Restart action for managed app instances
  • App instance cloning from snapshots
Read documentation (opens in a new tab)

Version 2.1.0

FeatureVPS

VPS Snapshot Cloning & Architecture Diagrams

Clone any VPS snapshot into a new instance and explore your infrastructure visually with interactive architecture diagrams.

  • Clone VPS snapshots into new running instances
  • Interactive architecture-diagram feature across dashboards
Show 2 more changes
  • Expanded onboarding covers Rapids, Static Sites, Support, and Docs
  • Faster status-page load times from pre-aggregated daily uptime
Read documentation (opens in a new tab)

Version 2.0.1

FeatureBilling

Free Tier & Micro Plans

A genuinely free tier for experimentation and an ultra-cheap "micro" plan for hobby workloads.

  • "Free" resource profile with zero-cost billing
  • New "micro" plan for cost-sensitive workloads
Show 2 more changes
  • Auto-accept team invitations during registration
  • Cache-busting support for static site builds
Read documentation (opens in a new tab)

Version 2.0.0

AnnouncementServerless

Serverless Containers GA & Static Site Hosting

Major release: serverless containers with scale-to-zero, team-scoped static site hosting, and pay-per-use billing.

  • Serverless Containers with scale-to-zero
  • Deploy from Docker image, Git repository, or ZIP upload
Show 6 more changes
  • Static Site Hosting with custom domains and free TLS
  • Pay-per-use billing for serverless workloads
  • Real-time stats, logs, and metrics tabs per container
  • Custom domain management with A-record and TLS status checks
  • Cancel-build action for long-running deployments
  • Real-time log streaming in the browser
Read documentation (opens in a new tab)

Version 1.9.5

FeatureStatic Sites

Password-Protected Static Sites

Private static sites with shared-password protection, ZIP uploads, and full build pipelines.

  • Password protection for static sites
  • ZIP upload and rollback for static site builds
Show 3 more changes
  • Build progress tracking with live logs
  • Repository authentication for private Git sources
  • Static-site slugs with random suffixes for uniqueness
Read documentation (opens in a new tab)

Version 1.9.4

SecurityPlatform

Advanced Audit Log & Real-time Snapshot Status

Search and filter audit logs, real-time snapshot progress, and raw export format for disaster recovery.

  • Real-time snapshot status updates and advanced audit-log search
  • Raw export format for snapshots with live progress
Show 2 more changes
  • Hourly automatic IP allocation verification and self-repair
  • Cooldown on repeated failed card-verification attempts to protect your account

Version 1.9.3

FeatureManaged Apps

App Snapshots, Clones & Managed n8n

First-class managed app experience with automated snapshots, clone-from-snapshot, and Managed n8n hosting.

  • App Snapshots with automated backups and restore flow
  • Managed n8n hosting with scalable task runners
Show 3 more changes
  • Per-app usage breakdown and cost tracking
  • Real-time app status updates via WebSocket
  • Per-bucket CORS configuration
Read documentation (opens in a new tab)

Version 1.9.2

FeatureVPS

VPS Volumes & Custom Storage Sizes

Attach additional block volumes to any VPS with full billing integration and real-time status.

  • Attach and detach additional block volumes on VPS
  • Customizable storage size on VPS profiles
Show 3 more changes
  • Volumes appear in Infrastructure Health Map and cost insights
  • Real-time volume status updates
  • Estimated monthly cost shown on every resource page
Read documentation (opens in a new tab)

Version 1.9.1

FeatureManaged Apps

Marketplace Apps & Managed Nextcloud (Storage Share)

One-click application deployments on VPS through marketplace apps, and fully managed Nextcloud under the Storage Share brand.

  • Marketplace Apps for one-click VPS setup automation
  • Managed Nextcloud (Storage Share) with full lifecycle management
Show 3 more changes
  • Mobile-app connection workflow for Nextcloud
  • VPS instance recreation from the UI
  • Accurate CPU/memory reporting inside VMs (via LXCFS)
Read documentation (opens in a new tab)

Version 1.9.0

FeatureVPS

Traffic Visualizer & Automated Billing Reminders

A VPS traffic visualizer with flow-level insight plus automated payment reminders so you never miss an invoice.

  • Email reminders before suspension and termination for overdue invoices
  • VPS traffic visualizer with conntrack-based flow data
Show 2 more changes
  • Inbound traffic monitoring with source reputation enrichment
  • Pulumi solution page for IaC users

Version 1.8.5

ImprovementPlatform

Redeploy & Reseller Program

One-click redeploy for managed resources and a partner/reseller program with abuse-reporting tools.

  • Redeploy action with detailed logs
  • Partner / reseller support
Show 2 more changes
  • Abuse reporting flow for end users
  • Payment-method verification hardening

Version 1.8.4

FeatureBilling

Promo Credits & Sustainability

Refundable promo credits applied automatically, a sustainability commitment page, and invoice refund support.

  • Promo credits that apply automatically and can be refunded
  • Invoice refund flow
Show 2 more changes
  • Sustainability commitment page
  • Hardened fraud detection on signup and card verification

Version 1.8.3

FeatureAPI

Terraform Provider, CrowdSec & VPS Export

Infrastructure-as-Code via Terraform, network-layer threat protection powered by CrowdSec, and Velero-backed VPS export/import.

  • Official DanubeData Terraform provider
  • CrowdSec protection for public VPS IPs
Show 4 more changes
  • VPS export and restore via Velero with VMExport
  • Reinstall VPS via API
  • Database and Redis cloning from UI
  • Blog post search
Read documentation (opens in a new tab)

Version 1.8.2

SecurityPlatform

Audit Log & Key Management Service

Complete visibility into who did what across your team, with envelope encryption via KMS.

  • Full audit log across resource, billing, and security events
  • KMS (Key Management Service) for envelope encryption
Show 2 more changes
  • Richer FAQ content on every solution page
  • VPS deletion feedback survey
Read documentation (opens in a new tab)

Version 1.8.1

FeatureStorage

SFTP, Storage Quotas & Budget Alerts

Access your S3 buckets over SFTP, set storage quotas, and define monthly budgets with automated alerts.

  • SFTP access with granular per-key permissions
  • Storage bucket quota limits
Show 4 more changes
  • Monthly team budgets with progressive alerts
  • Fine-grained notification preferences per category
  • Email-change flow during verification
  • Object-storage billing info modal per bucket
Read documentation (opens in a new tab)

Version 1.8.0

FeatureStorage

File Sharing, Versioning & DPA

Share files from S3 buckets with signed preview links, browse and restore deleted object versions, and download the signed Data Processing Agreement.

  • File sharing and preview for S3 objects
  • "Deleted Files" tab for versioned buckets — browse, restore, permanently delete
Show 3 more changes
  • Data Processing Agreement (DPA) page with PDF download
  • Version history on individual S3 objects
  • Cloud-Config example snippets on the Create Pod page
Read documentation (opens in a new tab)

Version 1.7.4

FeaturePlatform

Onboarding Tutorial, GitHub Login & IPv6 for Existing VPS

New users get a guided tour, sign-in with GitHub, and any VPS — new or existing — can now get an IPv6 address.

  • Interactive onboarding tutorial with progress tracking
  • GitHub OAuth for sign-up and sign-in
Show 1 more changes
  • Retrofit IPv6 to existing VPS instances

Version 1.7.3

ImprovementDatabases

Parameter Groups UI & Account Deletion

A proper UI for database parameter groups and a safe account deletion flow with feedback capture.

  • Parameter Group management UI
  • Safe account deletion flow with deletion-blocker checks
Show 3 more changes
  • Email-threaded support ticket replies
  • Open support tickets directly from a storage bucket
  • Enriched code blocks in documentation pages
Read documentation (opens in a new tab)

Version 1.7.1

FeaturePlatform

Custom Domains & Shared VPS

Bring your own domain to DanubeData-hosted workloads and share VPS instances with teammates.

  • Custom domain support for platform-hosted resources
  • Share VPS instances across your team
Show 1 more changes
  • Accurate egress traffic accounting for predictable bandwidth billing

Version 1.7.0

FeatureStorage

S3 Object Storage — Launch

S3-compatible object storage with encryption, multipart upload, tagging, and transparent €3.99/month hybrid pricing.

  • S3 buckets with per-team isolation and access keys
  • Server-side encryption and object tagging
Show 3 more changes
  • Multipart upload support for large objects
  • CORS, versioning, and lifecycle rules
  • Hybrid billing model: 1 TB storage + 1 TB egress included
Read documentation (opens in a new tab)

Version 1.6.1

FeatureCache

Multi-threaded Dragonfly & 3-2-1 Backups

Dragonfly caches now scale with your CPU count, and a dedicated 3-2-1 backup indicator shows exactly where every copy lives.

  • Multi-threaded Dragonfly cache instances (up to 25× Redis throughput)
  • 3-2-1 backup indicator on every resource
Show 2 more changes
  • Redesigned mega-menu and Backup overview page
  • Promo-credit system with automatic application to invoices
Read documentation (opens in a new tab)

Version 1.6.0

FeatureVPS

Offsite VPS Backups & Dark Mode

Full offsite backups of VPS snapshots, plus first-class dark mode across every dashboard surface.

  • Offsite VPS snapshot storage with retention management
  • Snapshot deletion with proper cleanup processes
Show 4 more changes
  • Dark mode improvements across all components
  • Email preferences and one-click unsubscribe
  • Passkey (WebAuthn) and OAuth authentication
  • Resource setup reminder emails
Read documentation (opens in a new tab)

Version 1.5.1

ImprovementPlatform

Email Verification & Onboarding Polish

Mandatory email verification and polished marketing/legal pages.

  • Email verification required before resource creation
  • SEO + structured data on legal pages and comparison pages
Show 1 more changes
  • Automatic Stripe customer creation on team signup

Version 1.5.0

FeatureVPS

Custom VPS Configurations & Disk Resize

Dial in the exact CPU, memory, and disk size you need — and grow a running VPS without downtime.

  • Custom CPU and memory sizing on VPS create
  • Transparent custom pricing with live calculator
Show 3 more changes
  • Online disk resize with race-condition-safe scheduling
  • Hetzner Floating IP management for cache instances
  • Managed MariaDB solution and marketing page
Read documentation (opens in a new tab)

Version 1.4.3

FeaturePlatform

Newsletter & Support Tickets

Customer communication upgrades: newsletter subscriptions and a full in-dashboard support ticketing system.

  • Support ticket creation with attachments and reply threading
  • Email notifications on new tickets and replies
Show 2 more changes
  • Newsletter opt-in with double confirmation
  • Custom cloud-init scripts for VPS instances

Version 1.4.2

FeaturePlatform

Automated Snapshots & DNS Management

Scheduled snapshots for every resource type and integrated DNS management for cache and database hostnames.

  • Automated daily snapshots for Cache, Database, and VPS
  • Per-instance snapshot retention and scheduling controls
Show 2 more changes
  • DNS management for cache and database endpoints
  • Payment method verification before high-cost operations
Read documentation (opens in a new tab)

Version 1.4.1

FeatureAPI

Public API & Rate Limiting

A documented, token-authenticated API with webhook support, rate limiting, and granular permission scopes.

  • API-driven resource creation for every product line
  • Webhook management with signed payloads
Show 3 more changes
  • Rate limiting with monitoring and clear error responses
  • Granular API token permission scopes
  • Developer-friendly API documentation portal
Read documentation (opens in a new tab)

Version 1.4.0

SecurityDatabases

SSL/TLS for All Managed Databases

End-to-end encryption on every managed database connection, with downloadable certificates for CA pinning.

  • SSL/TLS on every MySQL, MariaDB, and PostgreSQL connection
  • TLS version selection on MySQL deployments
Show 2 more changes
  • One-click certificate download (CA, client cert, client key)
  • SSL on replica connections out of the box
Read documentation (opens in a new tab)

Version 1.3.1

ImprovementPlatform

7-Day History & Account Limits

Historical metric retention, redesigned resource dashboards, and centralized account limits across all product lines.

  • 7 days of historical metrics for every instance
  • Redesigned VPS and database detail panels
Show 1 more changes
  • Per-team account limits with clearer resource visibility

Version 1.3.0

FeaturePlatform

Transactional Emails & Status Page

A complete transactional email system, a public status page with real-time health checks, and dynamic replica scaling.

  • Branded transactional email templates (signup, invoice, alerts)
  • Public status page with component-level health and metrics
Show 2 more changes
  • Dynamic replica scale-up and scale-down from the UI
  • SSH key management with duplicate detection and validation
Read documentation (opens in a new tab)

Version 1.2.2

FeatureVPS

IPv6, Firewalls & Stripe Billing

Dual-stack networking, per-instance firewall management, and a real billing backend powered by Stripe.

  • Full IPv6 support for VPS instances
  • Per-instance firewalls attachable to VPS and Cache resources
Show 3 more changes
  • Password authentication option for VPS instances
  • Force-stop action for stuck instances
  • Stripe-powered billing for subscriptions, invoices, and one-off charges
Read documentation (opens in a new tab)

Version 1.2.1

ImprovementPlatform

Local NVMe Storage

Cache and database workloads now run on topology-aware local NVMe, dramatically reducing latency.

  • Local NVMe storage for cache and database workloads — dramatically lower latency
  • Local-NVMe-backed snapshots for faster backup and restore
Show 1 more changes
  • Predictable I/O performance with topology-aware placement

Version 1.2.0

FeatureDatabases

Managed Databases with Read Replicas

MySQL, PostgreSQL, and MariaDB arrive as fully managed services with read replicas and parameter groups.

  • Deploy MySQL 8, PostgreSQL 15–17, and MariaDB clusters
  • Add read replicas on demand with load-balanced reader endpoints
Show 4 more changes
  • Parameter groups for custom database configuration
  • Per-provider version selection at create time
  • Multi-node metric charts for primary + replicas
  • Start/stop controls to pause billing on idle databases
Read documentation (opens in a new tab)

Version 1.1.0

FeatureVPS

VPS Instances Arrive

Launch virtual machines on KubeVirt-backed Hetzner dedicated servers — true cloud VPS with predictable pricing and full root access.

  • Provision VPS instances from the dashboard in minutes
  • Hourly billing with per-instance usage tracking
Show 2 more changes
  • Network and throughput metrics for every instance
  • Fast, cached metrics dashboards
Read documentation (opens in a new tab)

Version 1.0.0

FeatureCache

Platform Launch — Managed Redis

DanubeData goes live with managed Redis. Deploy, monitor, and manage Redis clusters from a single dashboard.

  • One-click Redis instance provisioning with resource profiles
  • Real-time connection details and node-level status
Show 2 more changes
  • CPU, memory, connections, and operations metrics dashboard
  • Secure API key authentication for programmatic access
Read documentation (opens in a new tab)

Get notified of updates

Subscribe to receive notifications about new features, improvements, and important updates.