This is a glimpse into what we're working on and what we're planning to work on.
Autoscaling for dedicated PostgreSQL clusters
Access and work in your own configurable PostgreSQL cluster, complete with autoscaling support.
Exposing PostgreSQL
Expose the PostgreSQL wire protocol to directly connect to the Xata PostgreSQL database and your favorite ORMs.
JSON column editor
Replacing the current text editor with a JSON editor that provides syntax highlighting, validation, and more.
Usage insights
Understand and analyze your Xata usage over time.
More zero-downtime schema migrations
Integrate the PostgreSQL tool pgroll (https://github.com/xataio/pgroll) into Xata and extend operation support for zero downtime migrations to include constraints, type changes and more.
Data privacy with custom filters for data copying
Users will have the option to apply custom filters and mark specific columns as private, when copying data from production to development branches.
Data copying on all branches
Currently, the ability to automatically copy data is limited to preview branches. We plan to expand this functionality to enable data copying across all branches.
Database-level access keys
Secure data at the database level, not just the workspace. This update allows you to assign unique access keys to each database, providing an easier way to manage user permissions and restrict access as needed.
Edge caching
Dramatically speed up repeated queries by caching them on the edge. Enable with a simple parameter passed to the API and get end-user response times as low as 15 milliseconds.
Enhanced OAuth 2.0 scopes
Xata’s OAuth 2.0 support will extend beyond admin:all to incorporate more granular scopes aligned with our permission model.
Query insights and optimization
Gain detailed observability into query performance with clear recommendations for optimization.
Self-service backup and restore options
Create daily backups and restore data, with the option for point-in-time recovery (PITR).
Real-time webhooks and triggers
Call a webhook in real-time or trigger a serverless function instantaneously when a record matching specified criteria is created, updated, or deleted.
A list of all the small and big changes we've made to the platform at a weekly clip.
File uploads from the browser! This was a highly requested feature for file attachments. The way it works is that you can create a new record without passing the file, you get back an uploadUrl that is safe to pass to the browser, then you upload the file to that URL. For more details, see the documentation for Upload URLs. This example demonstrate doing files uploads directly from the browser, in a sample Next.js application.
We've shipped a new onboarding workflow for creating and connecting to databases. The new workflow asks a few questions and then displays instructions that fit with your particular case.
Cloudflare launched a database integration for Xata. Please see the docs here, and there's also a demo on Cloudflare TV.
Lots of tables? You're going to enjoy this quality of life improvement where you get a search box on top of the list of tables.
Discover the latest enhancements and feature updates at Xata:
Take a look at the recent progress in our pgroll project:
OpSetReplicaIdentity operation led to issues with tables having case-sensitive names. PR #206ghcr.io with packaged results accessible at https://github.com/users/xiaoyao9184/packages/container/package/pgroll. PR #209omissis/go-jsonschema. PR #210Explore Xata's recent blog posts to stay informed. Subscribe to the blog to get the latest content delivered to your inbox. Here are some of our recently published posts:
Discover the latest enhancements and feature updates at Xata:
bigint parsing issued fixed: Addressed and resolved parsing errors encountered with invalid bigints in JSON handling.tslib package, which occurred with version 0.14.3 on Node v20.9.0. The issue is now fixed. PR #1245Take a look at the recent progress in our pgroll project:
REPLICA IDENTITY FULL, a second migration now automatically runs right after the create table migration. This is necessary because Postgres doesn't allow setting the replica identity during table creation.brew install pgroll or update an existing installation with brew upgrade pgroll.now(). Users now need to manually quote necessary default values. PR #200Explore Xata's recent blog posts to stay informed. Subscribe to the blog to get the latest content delivered to your inbox. Here are some of our recently published posts:
Discover the latest enhancements and feature updates at Xata:
https://xata.io/blog/tags). This enables you to find and browse blog posts relevant to your specific areas of interest. For example, you can access all Xata blog posts related to PostgreSQL using the following URL: https://xata.io/blog/tags/postgres, or filter by two tags using a URL like this: https://xata.io/blog/tags/community,announcements. In addition, tags will soon be accessible directly through the UI for even easier navigation.v0.27.0 introduces the totalCount field in search responses (including search, search.byTable, search.all, and vectorSearch) to report the total number of matching records. This is considered a minor breaking change as the response format is now an object, not an array. Adding the total hits to every search response makes it easier for the client to decide whether to fetch another page of results. ts-client#1232Take a look at the recent progress in our pgroll project:
SECURITY DEFINER attribute, the security model of the pgroll schema allows admins to restrict access while ensuring uninterrupted functionality pgroll#191. Thank you @jankatins for your contribution.previous_version function: Resolved an issue where the previous_version function did not correctly remove the previous version schema upon completing migrations applied in schemas other than public and enhanced testing to ensure that the --schema flag is properly respected pgroll#190Explore Xata's recent blog posts to stay informed. Subscribe to the blog to get the latest content delivered to your inbox. Here is our most recently published blog post:
Discover the latest enhancements and feature updates at Xata:
int, float, and bool. Previously, only fields with the data type string were supported for this aggregation method. This enhancement expands the applicable field types to include Keyword, Numeric, ip, boolean, or binary.Explore Xata's recent blog posts to stay informed. Subscribe to the blog to get the latest content delivered to your inbox. Here is our most recently published blog post:
Discover the latest enhancements and feature updates at Xata:
stmt_type now signifies the distinct SQL operation, such as select, insert, update, or delete. The record_count captures the number of processed and returned rows, while in insert and update actions, res_target_count enumerates the total values used.pgroll: pgroll is a dedicated open-source command-line tool tailored for streamlined schema migrations on Postgres databases. Designed to minimize downtime and offer instant rollbacks, it's now available for experimentation and feedback in our GitHub repository. Check out our recent blog post to learn more.
INSERT Statements : To offer better conflict management in data operations, we've enhanced the SQL proxy. Users can now leverage the ON CONFLICT clauses when using INSERT statements. This means when attempting to insert data that might cause a conflict, like a duplicate key, you now have more control over the response - you can ignore the conflict or update the conflicting record.Explore Xata's recent blog posts to stay informed. Subscribe to the blog to get the latest content delivered to your inbox. Here are some of our recently published posts:
Discover the latest enhancements and feature updates at Xata:
Xata Playground now supports Python: Python has been added to our web-based IDE, Xata Playground. Alongside TypeScript and SQL, you can now use Python to explore Xata's SDKs, rapidly test ideas, and easily transition back to your main IDE for full-scale development.
New gallery app example available: We've introduced a gallery app example built with Next.js and Chakra UI to demonstrate the File Attachments functionality as well as key Xata features such as pagination, form handling, search functionality, image transformation, and so much more. Check out our docs to learn more.
Design improvements: Visual layout and elements are now more consistent across all Xata pages, leading to improved accessibility and ease of navigation. These changes are all aimed at making experiences on the Xata platform as smooth as possible.
Updates to vectorSearch: The component has been updated for an improved user experience. It now returns full metadata, offering a more detailed view of your search results. This update was made in response to a request in our discord community.
Explore Xata's recent blog posts to stay informed. Subscribe to the blog to get the latest content delivered to your inbox. Here are some of our recently published posts:
Discover the latest enhancements and feature updates at Xata:
Explore Xata's recent blog posts to stay informed. Subscribe to the blog to get the latest content delivered to your inbox. Here are some of our recently published posts:
1.x version of our Python SDK: https://pypi.org/project/xata/1.0.0a3/xata initask endpoint that enables you to easily build ChatGPT experiences on your data is now conversational. With the latest update, you can now ask follow up questions to your data.New blog posts:
New Blog posts:
object type. We have published a plan for it and we have updated the docs with the available alternatives. A warning will show up in the UI as well if you try to add a column with dots. It is best to avoid this type from now on.createdAt, updatedAt, and version are now exposed in the UI, and usable in filters and sort conditions across the app. mew tables get these columns by default:createdAt and updatedAt fields to the search API responses metadata.table.id.: in their ID columns.updatedAt and version columns where other columns where edited.$includes in the search APIs (it is not supported).xata push error message if the target branch is ahead of the migration list.xata init CLI command, improving the
flow of setup questions, default values, clarifying the wording, and fixes. Make sure
you upgrade soon npm install -g @xata.io/cli@latest.pnpm and yarnxata dbs rename command to the CLI.xata dbs delete CLI command to allow for the interactive selection.createdAt and updatedAt columns are now available for filtering in the search
endpoints as well.New Blog posts:
New Videos:
createdAt and updatedAt meta-columns. From now on, you always know when
something was created and last updated. You get them with the record metadata,
as simple as that. This was a common feature request that makes developers
life easier, which is our favorite type of feature to
implement: https://feedback.xata.io/feature-requests/p/implement-createdat-updatedat-fields.
It is now also possible to filter by these meta-columns.failMissing option for deletes. If you set this flag to true,
and the delete operations affects zero records, the transaction will be failed.factor option to the free-text-search date booster. The factor
multiplies the boost, allowing you to better control the effect of the date booster.unique + notNull columns.We have launched the all new Xata Workflow: complete git-like workflow for your database. This includes:
Other fixes and improvements:
Blog posts:
' character in filters was producing an error in the Get Code Snippet.<a> elements so you can right-click and open in a new tab.insert, update and delete, but also get data by ID. An example looks like this:{
"operations": [
{"insert": {"table": "items", "record": {"id": "new-0", "name": "feed the fish"}, "createOnly": true}},
{"update": {"table": "items", "id": "new-0", "fields": {"name": "feed the goldfish"}, "ifVersion": 0}},
{"get": {"table": "items", "id": "new-0", "columns": ["id","name"]}},
{"delete": {"table": "items", "id": "new-0"}}
]
}PowerShell and cmd 🎉{
"sort": ["*:random"]
}And like this in the TypeScript SDK (pending release):
const users = await xata.db.Users
.sort("*", "random")
.getMany();too_many_nested_clauses ****exception on the search and ask endpoints. Also improved the error message to guide towards a correct solution.26/05/18 or tomorrow at 4pmxata schema edit command.Blog posts
gpt-3.5-turbo model. This has resulted in a pricing decrease and more questions included in the free tier.notNull: truenotNull and default value to an allowed value if it's unsupported.