Neon integration on Vercel: Create a branch for every Preview DeploymentLearn More

Release notes

The latest product updates from Neon

What's New

  • Added a Billing page describing Neon paid plans, pricing, and related topics.

  • Added instructions for using the Neon Serverless driver on Vercel Edge Functions and Cloudflare Workers. The driver is a drop-in replacement for node-postgres that allows you to query data from environments that support WebSockets but not TCP sockets.

  • Added an SDK reference page, which provides links to community-created SDKs for interacting with the Neon API. Community-created SDKs include:

    Thanks to Dmitry Kisler and Ganesh Prasannah for the contributions.

  • Updated the Neon Docs landing page. The new landing page provides a visual interface for navigating the Neon documentation site.

  • Added an RSS feed for the Neon Release notes.

  • Redirected old Neon API reference links to the new Neon API reference.

  • Updated various Neon API reference style elements to align styles with the Neon Docs site.

  • Updated the query example in the Neon Console onboarding banner and in the Query with Neon's SQL Editor topic in the documentation. The CREATE TABLE statement did not include a primary key, which prevented the data from being edited when accessed from pgAdmin.

What's new

  • UI: In addition to the Free Tier, Neon now offers the following paid plans:

    • Pro: A usage-based plan, ideal for small-to-medium teams. With the Pro plan, you get up to 20 projects, unlimited branches, unlimited compute time, up to 200 GB of storage, and access to paid plan features such as project sharing, autoscaling (coming soon), and configurable auto-suspend compute (coming soon).
    • Enterprise: A volume-based plan for medium-to-large teams and database fleets. Includes all Pro plan features plus customized limits and potential for volume discounts.
    • Platform Partnership: A volume-based plan for large teams, database fleets, and resale. Includes all Enterprise plan features plus resale support.

    You can learn more about Neon's paid plans and pricing on the Neon Pricing page.

What's new

  • API: Removed the physical_size property from the Branch response body in the Neon API.
  • UI: Changed the User label on the Connection Details widget to Roles. Database users are now referred to as Roles in Neon.
  • UI: Added descriptive text and a documentation link to the Integrations page in the Neon Console.
  • UI: Added support for sharing projects with other Neon users. Project sharing is performed from the Settings page in the Neon Console. The project sharing feature is available only to Neon paid plan users, but projects can be shared with any Neon user, including Free Tier users. For instructions, see Manage projects.
  • UI: Added an Upgrade to Pro option to the Neon Console to enable upgrading from Free Tier to Neon's Pro plan. For information about Neon's paid plans, please refer to Billing.

Bug Fixes

  • Control Plane: Addressed a memory leak that affected Neon Console performance. A memory limit was put in place prevent similar issues.
  • UI: Fixed the connection examples accessible from the Connection Details widget on the Neon Dashboard. Examples other than the psql example had an extra project name in the connection hostname.
  • UI: Fixed the "Manage" link on the Branches widget on the Neon Dashboard. The link did not work.

What's new

  • Compute: Released a new pg_tiktoken PostgreSQL extension, created by the Neon engineering team. The extension is a wrapper for OpenAI’s tokenizer. It provides fast and efficient tokenization of data stored in a PostgreSQL database. The extension supports two functions:

    • The tiktoken_encode function takes text input and returns tokenized output, making it easier to analyze and process text data.
    • The tiktoken_count function returns the number of tokens in a text, which is useful for checking text length limits, such as those imposed by OpenAI’s language models.

    For more information about the pg_tiktoken extension, refer to the blog post: Announcing pg_tiktoken: A Postgres Extension for Fast BPE Tokenization. The pg_tiktoken code is available on GitHub.

  • Compute: Added support for the PostgreSQL prefix, hll and plpgsql_check extensions. For more information about PostgreSQL extensions supported by Neon, see PostgreSQL extensions.

  • Compute, Pageserver, Safekeeper: Added support for RS384 and RS512 JWT tokens, used to securely transmit information as JSON objects.

  • Pageserver: Removed the block cursor cache, which provided little performance benefit and would hold page references that caused deadlocks.

  • Autoscaling: Added support for scaling Neon's local file cache size when scaling a virtual machine.

What's New

  • Released a new version of the Neon serverless driver (v0.2.6), which allows you to query data from Cloudflare Workers, Vercel Edge Functions, and other environments that support WebSockets. The updated driver offers:

    • Automatic import of the ws (WebSocket library) package if required, which makes the driver easier to use on StackBlitz and with Zapatos, for example.
    • More helpful error messages when connection details are not provided. For example, a more informative error message is reported if you forget to set an environment variable for the database connection or forget to include a password in your database connection string.
  • Added three new example application repositories to help you get started with the Neon serverless driver on Vercel Edge Functions. The example application generates a JSON listing of the 10 nearest UNESCO World Heritage sites using IP geolocation (data copyright © 1992 – 2022 UNESCO/World Heritage Centre).

    UNESCO World Heritage sites app

    • The neondatabase/neon-vercel-rawsql example demonstrates using raw SQL with Neon's serverless driver on Vercel Edge Functions.
    • The neondatabase/neon-vercel-zapatos example demonstrates using Zapatos with Neon's serverless driver on Vercel Edge Functions. Zapatos offers zero-abstraction Postgres for TypeScript.
    • The neondatabase/neon-vercel-kysely example demonstrates using kysely and kysely-codegen with Neon's serverless driver on Vercel Edge Functions. Kysely is a type-safe and autocompletion-friendly typescript SQL query builder. kysely-codegen generates Kysely type definitions from your database.

    The UNESCO World Heritage sites example is also available for the Neon serverless driver on Cloudflare Workers. See neondatabase/serverless-cfworker-demo.

Bug Fixes

  • Pageserver: Added logic to handle unexpected Write-Ahead Log (WAL) redo process failures, which could cause a Broken pipe error on the Pageserver. In case of a failure, the WAL redo process is now restarted, and requests to apply redo records are retried automatically.
  • Pageserver: Added timeout logic for the copy operation that occurs when downloading a data layer. The timeout logic prevents a deadlock state if a data layer download is blocked.
  • Safekeeper: Addressed Failed to open WAL file warnings that appeared in the Safekeeper log files. The warnings were due to an outdated truncate_lsn value on the Safekeeper, which caused the walproposer (the Postgres compute node) to download WAL records starting from a Log Sequence Number (LSN) that was older than the backup_lsn. This resulted in unnecessary WAL record downloads from cold storage.

What's new

  • UI: Updated the the labels, links, and units shown on the Project limits widget on the Neon Dashboard.

Bug Fixes

  • API: Adjusted the tags in the Neon API specification that assign endpoints to categories. The new Neon API reference displays one endpoint per page. Multiple tags assigned to an endpoint resulted in endpoints not being listed under their primary category.
  • UI: Fixed the vertical alignment of buttons on authorization dialogs.
  • UI: Removed a newline character from the connection string in the connection details dialog that is displayed after creating a new project.

What's new

  • Compute: Added support for the PostgreSQL rum and pgTAP extensions. For more information about PostgreSQL extensions supported by Neon, see PostgreSQL extensions.

Bug Fixes

  • Pageserver: A system metric that monitors physical data size overflowed when a garbage collection operation was performed on an evicted data layer.
  • Pageserver: An index upload was skipped when a compaction operation did not perform an on-demand download from storage. With no on-demand downloads, the compaction function would exit before scheduling the index upload.

What's New

  • Added Neon API Operation endpoint examples and a topic describing how to poll operation status. When working with the Neon API programmatically, it may be necessary to poll operations to ensure that currently running API requests are finished before proceeding with the next request.

  • Introduced a new Neon API documentation user interface. The new UI is more user-friendly, easier to navigate, and offers a more intuitive design, making it easier for developers to find what they need and get started with our APIs quickly. The UI can be viewed in light or dark mode and includes a Try it feature that allows you execute API requests from your browser.

    Neon API documentation

What's new

  • API: A new cpu_used_sec property was added to the Project response body in the Neon API. This property shows the number of CPU seconds used by a branch's compute endpoints. The value resets to zero at the beginning of each billing period.
  • Control Plane: By default, Neon suspends a compute endpoint after five minutes of inactivity. A custom configuration option was added to enable configuring or disabling the suspension threshold for compute endpoints. Disabling the threshold allows a compute endpoint to remain active indefinitely, which avoids latencies associated with restarting idle compute endpoints. This feature is not yet generally available. You can expect it to be introduced with Neon paid tiers.
  • UI: New Neon projects now store role passwords in a secure storage vault associated with the project, allowing passwords to be retrieved from the Connection Details widget on the Neon Dashboard. Secure password storage reduces the need for password resets and facilitates the use of Neon features that require a password. The stored passwords feature is not yet available for existing Neon projects.
  • UI: New Neon projects no longer include the system-managed web_access role. This role was used by the Neon SQL Editor and passwordless connect feature. With the introduction of stored passwords, the web_access role is no longer required. Removal of the web_access role also addresses permission issues encountered when attempting to perform actions as the web_access role on objects owned by other roles or vice versa.

What's new

  • Compute: Added support for the following PostgreSQL extensions:
    • pg_graphql
    • pg_jsonschema
    • pg_hashids
    • pgrouting
    • hypopg
    • Server Programming Interface (SPI) extensions:
      • autoinc
      • insert_username
      • moddatetime
      • refint
    For more information about PostgreSQL extensions supported by Neon, see PostgreSQL extensions.
  • Compute: Updated supported PostgreSQL versions to 14.7 and 15.2, respectively.
  • Pageserver: Optimized the log-structured merge-tree (LSM tree) implementation to reduce write amplification.

What's New

What's new

  • API: The connection_uris property in the Create branch response is no longer a required property, meaning that the field is not included in the response if the value is empty. The connection_uris property is now returned only in cases where a branch has only a single database and role.
  • API: Added property descriptions for Project, Branch, Endpoint, Database, Role, and Operation endpoints.
  • Control Plane: A compute endpoint now remains in an active state after resetting a password, creating a role, or creating a database. Previously, a compute endpoint was suspended following those actions. This behavior caused unnecessary latency when accessing the compute endpoint immediately afterward. The latency was due to the few seconds required to restart the compute endpoint.
  • UI: With the introduction of pooled connections strings (see Enable pooling), enabling pooling for a compute endpoint is deprecated. With this change, the Pooler enabled toggle on the Edit Compute Endpoint dialog is now disabled and will be removed in a future release.
  • UI: Changed a column heading in the table on the Operations page from ID to Action. The items listed in the column are operation actions rather than IDs.
  • UI: Renamed the Users page in the Neon Console to Roles. This change aligns Neon's terminology with PostgreSQL, which uses the concept of "roles" to refer to database users. (See Database roles, in the PostgreSQL documentation.) All UI elements in the Neon Console were updated to reflect this change.
  • Integrations: Improved text and fixed a documentation link in the Neon Vercel integration UI.

What's new

  • Compute: Added support for the PostgreSQL xml2 and pgjwt extensions. For more information about PostgreSQL extensions supported by Neon, see PostgreSQL extensions.

  • Compute: Updated the versions for the following PostgreSQL extensions:

    • Updated the address_standardizer, address_standardizer_data_us, postgis, postgis_raster, postgis_tiger_geocoder, postgis_topology extensions to version 3.3.2.
    • Updated the plv8, plls, plcoffee extensions to 3.1.5.
    • Updated the h3_pg extension to 4.1.2.

    Updating an extension version requires running an ALTER EXTENSION <extension_name> UPDATE TO <new_version> statement. For example, to update the postgis_topology extension to the newly supported version, run this statement:

    ALTER EXTENSION postgis_topology UPDATE TO '3.3.2';
  • Pageserver: Corrected the storage size metrics calculation to ensure that only active branches are counted.

  • Proxy: Enabled OpenTelemetry tracing to capture all incoming requests. This change enables Neon to perform an end-to-end trace when a new connection is established.

What's new

  • Control Plane: Increased the PgBouncer maximum client connection setting from 1000 to 10000, enabling Neon to support up to 10000 simultaneous connections. For more information about connection pooling in Neon, see Connection pooling.
  • Control Plane: Added an internal retry mechanism for connections to the Neon proxy, which improves the success rate for connection attempts. The Neon proxy is a service that accepts and handles connections from clients that use the PostgreSQL protocol.
  • UI: Added Content-Security-Policy (CSP) HTTP response headers to enhance Neon Console security. CSP headers provide an additional layer of security for web pages by allowing a website to control what resources (such as scripts, stylesheets, and images) can be loaded and executed on its pages.

Bug fixes

  • API: The Neon API specification now shows the default (10) and maximum (100) pagination values for the List projects API endpoint. These settings were enforced previously but were not included in the Neon API specification.
  • API: Updating a project name resulted in the loss of values defined in default_endpoint_settings property, which defines custom settings for project's compute endpoints.
  • Control Plane: A chain of operations failed to run in the expected order due to a lock related issue. In addition to operations running out of sequence, some operations were executed more than once.

What's new

  • Compute: Added support for the the PostgreSQL pgvector, plls and plcoffee extensions. For more information about PostgreSQL extensions supported by Neon, see PostgreSQL extensions.
  • Proxy: Significantly reduced network latencies for WebSocket and pooled connections by implementing caching mechanism for compute node connection information and enabling the TCP_NODELAY protocol option. The TCP_NODELAY option causes segments to be sent as soon as possible, even if there is only a small amount of data. For more information, refer to the TCP protocol man page.
  • Pageserver: Added an experimental feature that automatically evicts layer files from Pageservers to optimize local storage space usage. When enabled for a project, Pageservers periodically check the access timestamps of the project's layer files. If the most recent layer file access is further in the past than a configurable threshold, the Pageserver removes the layer file from local storage. The authoritative copy of the layer file remains in S3. A Pageserver can download a layer file from S3 on-demand if it is needed again, to reconstruct a page version for a client request, for example.

What's new

  • API: Added a quota_reset_at property to the Project response schema in the Neon API. This property displays a future date indicating when a resource consumption quota will be reset. For example, the Neon Free Tier offers 100 compute hours per month. The quota_reset_at property shows when that quota will be set back to 100 hours.
  • API: Added a compute_seconds_limit property to the CurrentUserInfoResponse schema in the Neon API. This property defines the monthly compute limit in terms of compute seconds.

Bug fixes

  • Integrations: The Neon integration with Vercel did not create branches for preview deployments when the Vercel user ID differed from the one specified when adding the Neon integration to Vercel. This issue was encountered when using the Neon integration from a Vercel Teams account.

What's new

  • UI: Updated various UI elements in the Neon Console to rename Endpoints to Compute endpoints. The term Endpoint was not specific enough to accurately reflect the resource being referred to. A Compute endpoint in Neon refers the compute instance that runs PostgreSQL.
  • UI: Added a PRIMARY badge to identify the primary branch of a Neon project. The badge is visible on the Branches page in the Neon Console and in other UI elements that show a project's branches.
  • API: The default_endpoint_settings property in the Project schema was split into default_endpoint_settings and settings. The default_endpoint_settings property is now used exclusively for PostgreSQL specific settings applied to a project's compute endpoints. The settings property is used for general project settings such as the compute quota. If you have been using createProject or updateProject API requests in your code, you may need to update those requests to account for this change.

What's new

  • Compute: Added support for the the PostgreSQL postgis-sfcgal extension. For more information about PostgreSQL extensions supported by Neon, see PostgreSQL extensions.

  • Compute: Added support for International Components for Unicode (ICU), which permits defining collation objects that use ICU as the collation provider. For example:

    CREATE COLLATION german (provider = icu, locale = 'de');

What's new

  • Integrations: You can now integrate Neon with your Vercel project directly from your Vercel account. The new integration, which is currently in Beta, is available from the Vercel Integration Marketplace. The integration allows you to connect your Vercel project to a new or existing Neon project. It also enables creating a database branch for each Vercel preview deployment and for your Vercel development environment. For more information about the Neon-Vercel integration, see Connect Vercel and Neon.

  • Control Plane: You can now enable connection pooling in Neon for individual connections. Pooling is enabled by adding a -pooler suffix to the endpoint ID in the Neon hostname. For example:

    postgres://sally@ep-square-sea-260584-pooler.us-east-2.aws.neon.tech/neondb

    Connections that do not specify the -pooler suffix connect to the database directly. The ability to enable pooling for individual connections supports workflows that require both pooled and non-pooled connections to the same database. For example, serverless applications that use Prisma Client require a pooled connection, while Prisma Migrate requires a direct connection to the database. For more information, see Enable connection pooling.

    The previous method of enabling connection pooling for a compute endpoint is deprecated. When switching to the new per-connection method, be sure to disable connection pooling at the compute endpoint. You can do so by editing the compute endpoint.

  • UI: The Neon Free Tier now includes a compute endpoint with each branch. Previously, there was a limit of 3 endpoints per project. This limit was removed based on user feedback indicating that it was not conducive to developer workflows that create a branch for each preview deployment.

    Instead of limiting the number of endpoint computes in the Neon Free Tier, there is now a limit of 100 compute hours per month. Currently, the compute hour limit applies to newly created projects only. The limit does not yet apply to existing projects. We expect to apply the limit to all projects later this quarter. Regardless of the compute hour limit, you are always able to connect to the compute endpoint associated with the primary branch of your Neon project. For more information, see Technical Preview Free Tier.

    If you have any questions about how this change to Neon's Free Tier Limits might impact your existing project, please contact us at support@neon.tech.

  • UI: With the removal of the endpoint limit, endpoints no longer appear in the Project limits widget on the Neon Dashboard.

Bug fixes

  • Console: Added validation to ensure that emails are provided in the expected format when creating a Neon account.
  • Control Plane: Added validation for the Log Sequence Number (LSN) provided when creating a branch from a particular LSN value to prevent the possibility of creating a branch from an unrelated parent branch. An appropriate error is now reported when an invalid LSN value is provided.

What's new

  • API: The response body for projects, branches, and endpoints now exposes a creation_source property. Currently, the creation_source property identifies the console as the creation source in all cases but will eventually identify other sources, such as the Neon API.
  • API: Listing projects with the Neon API now supports cursor-based pagination. Pagination enables limiting the number of responses displayed at one time, which is useful when a response includes a large number of projects. By default, the first 10 projects are returned. You can set the limit parameter to request up to 100 projects.
  • Control Plane: Added support for OpenTelemetry for a number of operations. OpenTelemetry is an observability framework that assists in generating and capturing telemetry data from cloud-native software.
  • Control Plane: Removed the stop_compute operation, which is no longer used. It was replaced by suspend_compute.
  • UI: Revised the layout of the Neon Console to improve navigation. The following enhancements were implemented:
    • A new sidebar with icons replaces the navigation bar that was located at the top of the console.
    • Operations, Databases, and Users pages, previously accessed from the Settings page, are now directly accessible from the sidebar.
    • Links to Community, Feedback, Docs, Release notes, and Support, previously located in a Help menu in the navigation bar, were moved to the sidebar for easier access.
    • The Neon account avatar was moved from the top right corner of the console to the sidebar.

Bug fixes

  • API: Fixed a race condition that occurred when creating a project and attempting to fetch information about branch in the same project.
  • Control Plane: Fixed a cannot execute GRANT in a read-only error that occurred when a database owner enabled the default_transaction_read_only setting, preventing the Control Plane from configuring the compute instance.
  • UI: Fixed the positioning of selection menus in the console to avoid scrolling outside intended boundaries.

Features

  • Compute: Added support for the the PostgreSQL unit extension. For more information about PostgreSQL extensions supported by Neon, see PostgreSQL extensions.
  • Compute: Removed logic that updated roles each time a Neon compute instance was restarted. Roles were updated on each restart to address a password-related backward compatibility issue that is no longer relevant.
  • Pageserver: Reimplemented the layer map used to track the data layers in a branch. The layer map now uses an immutable binary search tree (BST) data structure, which improves data layer lookup performance over the previous R-tree implementation. The data required to reconstruct page versions is stored as data layers in Neon Pageservers.
  • Pageserver: Changed the garbage collection (gc) interval from 100 seconds to 60 minutes. This change reduces the frequency of layer map locks.
  • Pageserver: Implemented an asynchronous pipe for communication with the Write Ahead Log (WAL) redo process, which helps improves OLAP query performance.

Bug Fixes

  • Compute: Fixed a compute instance restart error. When a compute instance was restarted after a role was deleted in the console, the restart operation failed with a "role does not exist" error while attempting to reassign the objects owned by the deleted role.

What's new

  • Compute: Added support for several PostgreSQL extensions. Newly supported extensions include:
    • bloom
    • pgrowlocks
    • intagg
    • pgstattuple
    • earthdistance
    • address_standardizer
    • address_standardizer_data_us
    For more information about PostgreSQL extensions supported by Neon, see PostgreSQL extensions.
  • Compute: Updated the list of PostgreSQL client libraries and runtimes that Neon tests for connection support. The pg8000 Python PostgreSQL driver, version 1.29.3 and higher, now supports connecting to Neon.
  • Compute: Added statistics to EXPLAIN that show prefetch hits and misses for sequential scans.
  • Proxy: Updated the error message that is reported when attempting to connect from a client or driver that does not support Server Name Indication (SNI). For more information about the SNI requirement, see Connect from old clients. Previously, the error message indicated that the "Project ID" is not specified. The error message now states that the "Endpoint ID" is not specified. Connecting to Neon with a Project ID remains supported for backward compatibility, but connecting with an Endpoint ID is now the recommended connection method. For general information about connecting to Neon, see Connect from any application.

What's new

  • Pageserver: Added support for on-demand download of layer files from cold storage. Layer files contain the data required reconstruct any version of a data page. On-demand download enables Neon to quickly distribute data across Pageservers and recover from local Pageserver failures. This feature augments Neon's storage capability by allowing data to be transferred efficiently from cold storage to Pageservers whenever the data is needed.

What's New

  • UI: Added a Pooler enabled toggle control to the Edit endpoint dialog to permit enabling or disabling connection pooling for endpoint compute instances. The same control is available on the Create endpoint dialog. Previously, connection pooling was enabled or disabled for a project, and the control was located in Settings > General. Connection pooling is disabled by default. For more information about Neon's connection pooling feature, see Connection pooling.
  • UI: Completed the migration of the Neon Console from Neon API v1 to Neon API v2. The Neon API v1 is deprecated.
  • UI: Added a Region column to the Projects dialog in the Neon Console to show the region where a Neon project resides.
  • UI: Improved WebSockets integration with the Neon Console, and added Websocket support for endpoint updates.
  • API: Added a branch_logical_size_limit attribute to the Neon API Project response body, which shows the logical data size limit for project branches. This attribute replaces the logical_size_limit attribute, which was shown in the Branch response body. The Neon Free Tier limits the logical data size of a branch to 3072MB (3GB).
  • API: Added the ability to delete or reassign the endpoint associated with a project's root branch. Previously, these actions could not be performed on the endpoint associated with a project's root branch. You can edit or delete an endpoint by selecting Edit or Delete from the kebab menu in the table on the Endpoints page.
  • API: Updated descriptions and examples in the Neon API v2 reference.
  • Control Plane: Migrated older branches that were created using the Neon API v1 to their parent project. Branches created with Neon API v1 existed as separate Neon projects. After the migration, the branches exist as Neon API v2 branch and endpoint objects that belong to a parent project. Connection strings for migrated branches, which use the old project_id in the hostname, are no longer valid. Instead of the project_id, an endpoint_id must be specified in the hostname. For information about constructing a valid connection string, see Connect from any application. An email with migration instructions was sent to affected users.

Bug Fixes

  • UI: Passwords are now temporarily displayed in the Connection Details widget on the project Dashboard after project creation and password reset operations. The password is displayed until you navigate away from the Neon Console or refresh the browser.
  • API: Added validation to ensure that the name specified when creating a role does not exceed 63 bytes. Role names longer than 63 bytes caused compute startup issues.

What's New

  • Control Plane: Neon now attempts to deploy compute resources in the same availability zone as the Pageserver.
  • API: The request body for the create branch API is now optional. Previously, a request body with branch or endpoints attributes was required. Without a request body, the default behavior is to create a branch from the project's root branch (main) without an endpoint, and the branch name is auto-generated.

Bug Fixes

  • UI: Removed the password from the connection string that is displayed in the Connection Details widget on the Neon Dashboard after project creation. A connection string and .env file with the password are provided in a pop-up dialog after creating a project.
  • UI: Neon's passwordless connect feature no longer requires selecting an endpoint for projects with a single endpoint.

What's new

  • Compute: Added support for sequential scan prefetch, which reduces round trips between Computes and Pageservers. Sequential scan prefetch allows fetching numerous pages at once instead of one by one, improving I/O performance for operations such as table scans.
  • Compute: Added support for the pg_prewarm PostgreSQL extension, which utilizes the above-mentioned sequential scan prefetch feature. The pg_prewarm extension provides a convenient way to load data into the PostgreSQL buffer cache after a cold start. For information about PostgreSQL extensions supported by Neon, see PostgreSQL extensions.
  • Compute: Updated supported PostgreSQL versions to 14.6 and 15.1, respectively.
  • Pageserver: Updated the storage_sync operation to make it more robust and reliable while syncing files between Pageservers and S3.
  • Safekeeper: Replaced etcd subscriptions with a custom Neon storage broker. The storage broker allows Safekeepers and Pageservers to learn which storage node holds a timeline and the status of a timeline while avoiding too many connections between nodes.

What's new

  • API: Added request and response body examples to the Neon API v2 specification.
  • API: Disabled deleting or changing the endpoint compute instance associated with a project's root branch.
  • API: Added a logical_size_limit attribute to the branch schema, which shows the data size limit for a branch.
  • API: Renamed the max_project_size attribute in Neon API v1 specification to branch_logical_size_limit.
  • API: Removed the max_project_size attribute from Neon v2 API schema.
  • Control Plane: Implemented a forced suspension of endpoints that are unresponsive for more than 2 hours.
  • UI: Removed the Neon invite gate. An invitation is no longer required to try Neon. It is available to everyone. For more information, refer to the Neon is Live! blog post.
  • UI: Released the Neon database branching feature. Branching is now available to all users. For more information, refer to the Database Branching for Postgres with Neon blog post.
  • UI: Added new and improved popup dialogs for project, branch, and role creation.
  • UI: Added an Endpoints page to the Neon Console for creating and managing endpoints, which are the compute resources in your Neon project. For more information about endpoints, see Endpoints.
  • UI: Enabled creating branches with data up to a specified Log Sequence Number (LSN).
  • UI: Updated the passwordless connect feature to show the branch name on the browser page that is displayed during authentication.
  • UI: Updated the Create branch page to display the local timezone when selecting the Time option during branch creation.
  • UI: Removed branches without endpoints from the branch selector in Neon SQL Editor. To query a branch, the branch must have an associated endpoint through which a connection can be established.
  • UI: Added a Free tier widget to the Neon Dashboard, which shows how many branches and endpoints you have created and the status of your free tier limits. The widget also shows the data size limit per branch, which is 3GB. For information about Free Tier limits, see Neon Technical Preview Free Tier.

Bug fixes

  • API: Fixed a project duplication issue in the list projects method in the Neon API v1.
  • Control Plane: Improved the reliability of the passwordless connect feature.
  • Control Plane: Fixed an issue that caused an endpoint to be created in a region other than the project's region.
  • UI: Enabled reset password functionality for non-root branches.

What's new

  • API: Creating branches using the Neon API v1 is now deprecated.
  • API: Added support for cursor pagination when listing operations.
  • API: Added validation for empty names to branch and project endpoints.
  • API: Added LSN validation to the create branch endpoint.
  • API: Made the parent_id and name attributes optional when creating a branch.
  • API: Added a complete endpoint hostname value in the endpoint response body.
  • API: Added support for changing the branch of an endpoint.
  • API: Added an allow_connections flag for endpoints to permit disabling connections to the endpoint.
  • API: Added support for creating a branch without an endpoint, which is now the default if the endpoints attribute is not specified. Creating a branch without an endpoint supports backup uses cases and useful in scenarios where the number of branches exceeds the number of available endpoints due to endpoint limits.
  • API: Added response examples to the API specification.
  • API: Create project and create endpoints now treat the region_id parameter as region.id. The attribute was previously treated as region.handle. Code that uses these endpoints may need to be updated.
  • Control Plane: Renamed the default database created in the root branch of a Neon project from main to neondb.
  • Control Plane: Added new autoscaling limits.
  • Control Plane: Added a project maintenance flag.
  • Control Plane: Added a region maintenance and testing flag.
  • UI: Added a branch ID value and Create branch button to the branch details page in the console.
  • UI: Updated the Neon Free Tier limits. See Technical Preview Free Tier for details. The new Neon Free Tier limits apply to both new and existing projects, but the previous 10GB storage limit will be honored for existing projects that currently have more than 3GB of data.
  • UI: Added a Delete endpoint button to the Endpoints page.
  • UI: Updated the Neon passwordless connect feature to select an endpoint to connect to instead of a project.

Bug fixes

  • API: Fixed the ordering of operations and projects.
  • API: Corrected the error reported when a duplicate branch name is used.
  • Control Plane: Added handling for ID collisions when creating a branch or endpoint.
  • UI: Fixed an endpoint polling issue.
  • UI: Stopped polling when deleting a project.
  • UI: Added handling for errors that occur when polling endpoint status.
  • UI: Removed visibility of internal service roles.
  • UI: Added handling for sign-in during passwordless connect.
  • UI: Fixed the NodeJS connection string example in the Connection Details widget on the Dashboard.

What's new

  • UI: Postgres 15 is now the default version when creating a Neon project.
  • UI: Added support for renaming branches. To rename a branch, select the branch on the Branches page in the Neon Console and click Rename branch.
  • UI: Added TIME and LSN fields to the branch details page for child branches. The TIME field shows the time value selected when creating a branch with data up to a specified point in time. The LSN field shows a Log Sequence Number (LSN), indicating that the branch was created with data up to that LSN.
  • UI: Added a branch icon to the branch selection menu on the Databases and Users pages in the Neon Console.
  • UI: Added badges for various elements on the branch details page in the Neon Console.
  • Control Plane: Introduced a maintenance mode for Neon projects. When a project is placed into maintenance mode, its endpoints are forcibly suspended and modifications are not permitted until maintenance is completed.
  • Control Plane: Added support for Cross-Origin Resource Sharing (CORS) to the Neon API v1 and v2.
  • Control Plane: Added descriptions for endpoint categories to the Neon API v2, and changed the ApiKey tag to API Key.
  • Control Plane: Added the ability to fetch all endpoints for a specified branch to the Neon API v2. Thank you to our Neon community member for the feature request.
  • Control Plane: Added the ability to create endpoints without specifying an instance ID to the Neon API v2.
  • Control Plane: Added the ability to retrieve information about the current user to the Neon API v2. User details such as login, email, and other parameters specified in the OpenAPI specification can now be retrieved.

Bug fixes

  • UI: Fixed an issue that prevented project and endpoint statuses from being updated when making changes.
  • Control Plane: Added a "Content-Type" header with an "application/json" value to Neon API v2 error responses.
  • Control Plane: Fixed a memory leak that occurred when handling SQL requests.
  • Control Plane: Improved diagnostic information by extracting error messages from Pageserver responses during project creation.
  • Control Plane: Stopped manually rolling back the current transaction when the user cancels the context. The Go driver ConnBeginTx interface performs this operation automatically.

What's new

  • Pageserver, Safekeeper, Compute, and Proxy: Reduced the size of Neon storage binaries by 50% by removing dependency debug symbols from the release build.
  • Pageserver: Moved the Write-Ahead Log (WAL) redo process code from Neon's postgres repository to the neon repository and created a separate wal_redo binary in order to reduce the amount of change in the postgres repository codebase.
  • Compute: Updated prefetching support to store requests and responses in a ring buffer instead of a queue, which enables using prefetches from many relations concurrently.
  • Pageserver and Safekeeper: Removed support for the --daemonize option from the CLI process that starts the Pageserver and Safekeeper storage components. The required library is no longer being maintained and the option was only used in our test environment.
  • Pageserver: Added a tenant sizing model and an endpoint for retrieving the tenant size.

What's new

  • UI: Added support for the US East (Ohio), Europe (Frankfurt), and Asia Pacific (Singapore) regions, allowing you to create Neon projects closer to your application servers. For more information about Neon's region support, see Regions.

  • UI: Updated Neon's branching capabilities. The following enhancements were introduced:

    • Added a Branches page to the Neon Console for creating and managing branches.
    • Each project now has a root branch called main.
    • Branches now belong to a project. You can create a branch from your project's root branch (main) or from another branch in the project.
    • You can now define the data to include in a branch. You can include all data up to the current point in time or up to a past point in time.
    • Each branch is now created with a named endpoint, which is the compute instance associated with a branch. Connecting to a branch requires connecting to the branch's endpoint. You can obtain a connection string for a branch endpoint from the Connection Details widget on the Neon Dashboard.

    For more information about Neon's branching capabilities, see Branching, and Get started with branching.

    Neon Branching capabilities are not yet publicly available. If you would like to try this feature, contact us at iwantbranching@neon.tech, describing your use case and requesting that Neon enable branching for your account.

  • UI: With the addition of support for new regions and updates to Neon's branching capabilities, changes were made to the hostname in Neon connection strings. Previously, a hostname had this format: <project_id>.cloud.neon.tech. With the introduction of new regions, a <region_slug> and <platform> value were added to the hostname for projects created in newly supported regions. With the update to branching capabilities, <project_id> was replaced by <endpoint_id>. As a result of these changes:

    • Projects created in the original Neon region, US West (Oregon), have this hostname format: <endpoint_id>.cloud.neon.tech.
    • Projects created in the newly supported regions, have this hostname format: <endpoint_id>.<region_slug>.<platform>.neon.tech.

    The old hostname format continues to be supported for projects created before these changes were introduced.

  • UI: Added highlighting support for PostgreSQL 15 SQL Keywords to Neon's SQL Editor. Keywords are highlighted when entered in the SQL Editor.

  • UI: Added the ability to display the navigation bar at the top of the Neon Console as a side drawer menu on small screens.

Bug fixes

  • UI: Fixed an issue in the SQL Editor that prevented errors from being reported when rerunning multi-statement queries.
  • UI: Updated the .pgpass configuration instructions provided after creating a project or resetting a password. The instructions did not include the required PostgreSQL port number.
  • Control Plane: Improved handling of OAuth consent challenges. A user is now directed to the destination URL to complete the login or consent request instead of receiving a 410 Gone error when resubmitting an OAuth consent challenge.
  • Control Plane: Fixed memory leaks that could occur for background operations started in a context that does not expire. An operation failure could have resulted in resources not being cleaned up.

What's new

  • Compute: Added support for PostgreSQL 15.0 and its PostgreSQL extensions. For information about supported extensions, see Available PostgreSQL extensions.
  • Compute: Disabled the wal_log_hints parameter, which is the default PostgreSQL setting. The Pageserver-related issue that required enabling wal_log_hints has been addressed, and enabling wal_log_hints is no longer necessary.
  • Pageserver: Added a timeline state field to the TimelineInfo struct that is returned by the timelines internal management API endpoint. Timeline state information improves observability and communication between Pageserver modules.

What's new

  • Compute: Fixed an issue that prevented creating a database when the specified database name included trailing spaces.
  • Pageserver: Fixed an INSERT ... ON CONFLICT handling issue for speculative Write-Ahead Log (WAL) record inserts. Under certain load conditions, records added with INSERT ... ON CONFLICT could be replayed incorrectly.
  • Pageserver: Fixed a Free Space Map (FSM) and Visibility Map (VM) page reconstruction issue that caused compute nodes to start slowly under certain workloads.
  • Pageserver: Fixed a garbage collection (GC) issue that could lead to a database failure under high load.
  • Pageserver: Improved query performance for larger databases by improving R-tree layer map search. The envelope for each layer is now remembered so that it does not have to be reconstructed for each call.

What's new

  • Pageserver: Increased the default compaction_period setting to 20 seconds to reduce the frequency of polling that is performed to determine if compaction is required. The frequency of polling with the previous setting of 1 could result in excessive CPU consumption when there are numerous tenants and projects.
  • Pageserver: Added initial support for online tenant relocation.
  • Pageserver: Added support for multiple PostgreSQL versions.
  • Compute: Added support for the h3_pg and plv8 PostgreSQL extensions. For information about PostgreSQL extensions supported by Neon, see Available PostgreSQL extensions.
  • Compute: Added support for a future implementation of sequential scan prefetch, which improves I/O performance for operations such as table scans.
  • Compute: Moved the backpressure throttling algorithm to the Neon extension to minimize changes to the Neon PostgreSQL core code, and added a backpressure_throttling_time function that returns the total time spent throttling since the system was started.
  • Proxy: Improved error messages and logging.

What's new

  • Integrations: Added OAuth support for Hasura users, enabling seamless authentication with Neon from Hasura Cloud. To learn more about connecting from Hasura Cloud to Neon, see Connect from Hasura Cloud to Neon.

Bug fixes

  • UI: The Database drop-down menu in the Connection Details widget on the Dashboard and in the Neon SQL Editor now permits selecting any created database.
  • Control Plane: The availability checker now waits for the project operations queue to clear before starting.
  • Control Plane: Operations for redo are now selected based on the correct status.
  • Control Plane: The V2 branch creation endpoint is now accessible using an OAuth token.

What's new

  • Integrations: Added read, update, delete project access scopes for OAuth applications.
  • Integrations: Added the ability to select access scopes and projects on the OAuth consent page.
  • API: Added a protected: boolean flag to the roles public API response.
  • API: Changed region and platform ids from serial numbers to strings in the public API.
  • API: Changed the operations id from a serial number to a UUID type in the public API.
  • Control Plane: Added an internal mechanism for relocating projects between Pageservers.
  • Control Plane: Stopped sending metrics to Grafana Cloud.
  • Control Plane: Removed usage of the obsolete zenith_ctl binary.
  • Control Plane: Split the monolithic project object into project, branches, and endpoints in the internal database schema.

Bug fixes

  • UI: Fixed a failure that occurred after receiving an empty response in the SQL Editor.
  • UI: Fixed an issue to ensure that table names are reset when switching between schemas on the Tables page in the Neon Console.
  • Control Plane: Fixed a passwordless connection issue that occurred when creating a new project using the project selection interface.

What's new

  • UI: Added functionality that enables providing an OAuth app name to a client.

Bug fixes

  • UI: Fixed the title on the 'Sign in' page.
  • UI: Changed the PostgreSQL version displayed on the project dashboard to 14.5.
  • Control Plane: Fixed authentication of concurrent proxy connections to an idle compute node. Previously, one of the concurrent proxy connection attempts would fail with a Failed to connect to the compute node error.

What's new

  • Compute: Updated the PostgreSQL version to 14.5.
  • Compute: Added support for the PostGIS extension, version 3.3.0. For information about PostgreSQL extensions supported by Neon, see Available PostgreSQL extensions.
  • Proxy: Added support for forwarding the options, application_name, and replication connection parameters to compute nodes.

What's new

  • Control Plane: Implemented OAuth backend support and OAuth consent screens, which enable granting OAuth applications permission to create projects on behalf of users. Services interested in OAuth integration with Neon should contact partnerships@neon.tech.

Bug fixes

  • UI: Fixed the syntax highlighting for Golang snippets.
  • UI: Fixed styles for smaller screens.

What's new

  • UI: Added a Submit Feedback feedback form to the Neon Console. The form is accessible from the Help menu.

Bug fixes

  • UI: Fixed a CORS error for API requests in the Swagger UI. The error occurred when using the 'Try it out' feature.

What's new

  • UI: Added a Tables page to the Neon Console for viewing database schemas and tables. Drop-down menus permit navigating between project databases. Table data can be viewed by selecting the table from the sidebar.
  • UI: Added a Help menu to the Neon Console which provides links to various user assistance resources.
  • Control Plane: Added the ability to select Safekeepers from different availability zones for new projects.

Bug fixes

  • UI: Fixed the .pgpass password file instructions that are presented when resetting a password #1825.
  • UI: Added validation messages to the Project Creation dialog.
  • UI: Fixed broken links in the Neon onboarding section of the Neon Console.
  • UI: Updated the email addresses presented in the UI for requesting branching capabilities and support. The email address for requesting access to branching is iwantbranching@neon.tech. The email address to request support is support@neon.tech.

What's new

  • UI: The Neon SQL Editor now maintains a history of previously executed queries and permits saving queries. For more information about these capabilities, see Query with Neon's SQL Editor.
  • UI: Added token-based authorization to the Swagger UI for Neon's public API.
  • UI: Changed the display status of operations waiting in the queue from In progress to Scheduling.
  • UI: Disabled controls that incorrectly remained enabled while the Neon project was in a transitive state.
  • Control Plane: Set max_replication_write_lag to 15 MB to tune the backpressure mechanism and improve PostgresSQL responsiveness under load.
  • Control Plane: Improved the ability to investigate performance issues by collecting and saving more detailed compute node startup time metrics.

Bug fixes

  • UI: Fixed incorrect encoding when switching between code samples in the Connection Details widget on the project Dashboard, and added descriptions to connection string examples.
  • UI: Fixed various typos and errors.

Bug fixes

  • UI: Fixed an issue that prevented project status updates from being communicated to the Neon Console. Prior to this fix, the previous project status was reflected in the Neon Console until the page was reloaded.

What's new

  • UI: Added validation to ensure that the API key Name field is not left blank when creating a new API Key on the Developer Settings page. For information about API keys, see Using API keys.
  • UI: Added a Create branch button to the project Dashboard for selected users. To request early access to Neon branching capabilities, send an email to iwantbranching@neon.tech.
  • UI: Added a detailed error message to the Neon SQL Editor for failed queries.
  • Control Plane: Added a new version of the operations executor that includes various stability and observability improvements.
  • Control Plane: Compute node logs are now dumped if the startup process fails.
  • Control Plane: Added support for deleting timeline data from all storage nodes (Safekeepers and Pageserver) after project deletion.

What's new

  • Compute: Installed the uuid-ossp extension binaries, which provide functions for generating universally unique identifiers (UUIDs). CREATE EXTENSION "uuid-ossp" is now supported. For information about extensions supported by Neon, see Available PostgreSQL extensions.
  • Compute: Added logging for compute node initialization failure during the 'basebackup' stage.
  • Pageserver: Avoided busy looping when deletion from cloud storage is skipped due to failed upload tasks.
  • Pageserver: Merged the 'wal_receiver' endpoint with 'timeline_detail', in the internal management API.
  • Pageserver: Added reporting of the physical size with the tenant status, in the internal management API.

What's new

  • UI: Added an Enable pooling toggle to the project General setting page, which permits enabling or disabling connection pooling for a project. For more information about Neon connection pooling support, see Connection pooling.
  • Control plane: Implemented the usage of several instances for serving the public API and web UI to enable zero-downtime deployments.
  • API: Changed the error reported when a concurrent operation on a project prevents acquiring a project lock. Error 423 Locked is now reported instead of 409 Conflict.

What's new

  • Safekeeper: Added support for backing up Write-Ahead Logs (WAL) to S3 storage for disaster recovery.
  • Safekeeper: Added support for downloading WAL from S3 storage on demand.
  • Safekeeper: Switched to etcd subscriptions to keep Pageservers up to date with the Safekeeper status.
  • Safekeeper: Implemented JSON Web Token (JWT) authentication in the Safekeeper HTTP API.
  • Proxy: Added support for propagating SASL/SCRAM PostgreSQL authentication errors to clients.
  • Compute: Updated the PostgreSQL version to 14.4.
  • Compute: Renamed the following custom configuration parameters:
    • zenith.page_server_connstring to neon.pageserver_connstring
    • zenith.zenith_tenant to neon.tenant_id
    • zenith.zenith_timeline to neon.timeline_id
    • zenith.max_cluster_size to neon.max_cluster_size
    • wal_acceptors to safekeepers
  • Control Plane: Renamed zenith_admin role to cloud_admin.
  • Pageserver: Implemented a page service fullbackup endpoint that works like basebackup but also sends relational files.
  • Pageserver: Added support for importing a base backup taken from a standalone PostgreSQL instance or another Pageserver using psql copy.
  • Pageserver: Fixed the database size calculation to count Visibility Maps (VMs) and Free Space Maps (FSMs) in addition to the main fork of the relation.
  • Pageserver: Updated the timeline size reported when DROP DATABASE is executed.
  • Pageserver: Decreased the number of threads by running gc and compaction in a blocking tokio thread pool.
  • Pageserver: Switched to per-tenant attach/detach. Download operations of all timelines for one tenant are now grouped together so that branches can be used safely with attach/detach.

Bug fixes

  • Compute: Enabled the use of the CREATE EXTENSION statement for users that are not database owners.
  • Safekeeper: Fixed the walreceiver connection selection mechanism:
    • Reconnecting to a Safekeeper immediately after it fails is now avoided by limiting candidates to those with the fewest connection attempts.
    • Increased the max_lsn_wal_lag default setting to avoid constant reconnections during normal work.
    • Fixed wal_connection_attempts maintenance, preventing busy reconnection loops.

What's new

  • Control Plane: Implemented connection pooling support for Neon projects, allowing Neon to support a greater number of connections. For information about enabling connection pooling for a Neon project, see Connection pooling.
  • API: Added a pooler_enabled property to the project update API call to indicate whether or not connection pooling is enabled.

Bug fixes

  • API: Fixed several bugs that could cause intermittent 409 responses, which indicate a request conflict with the current state of the target resource.

What's new

  • UI: The Neon Technical Preview invite code is now requested only at the first login.
  • UI: Added a cover to password fields to protect passwords from view. Passwords are presented to users after performing actions such as creating a project, creating a user, or resetting a password.
  • API: Changed the user_id type from int64 to uuid.
  • API: Implemented a unified JSON error response where possible, in the format of { "message": "error text" }.
  • API: Made platform, region, and instance_type ids optional during new project creation.

Bug fixes

  • Control Plane: Fixed an issue that allowed the web_access system role to be modified or deleted, which could affect the functioning of the Neon SQL Editor.
Edit this page
Was this page helpful?