✂️ Quick cut, copy and paste comes to your function stacks!
One of our most requested features arrives today! Super easy copy + paste in your function stacks. Just select the function(s) you want to copy, and use Cmd/Ctrl+C and Cmd/Ctrl+V to paste them. You can quickly copy and paste in the same stack, or a totally different one, enabling you to more quickly build and iterate on similar functionality.
✅ One-click Test Generation: Detect problems before they are pushed to production
We're excited to introduce one-click unit tests to Xano. Creating tests has never been easier!
Think of unit tests as your own personal assistant for making sure no breaking changes are pushed to your app. If you're a traditional developer reading this, you know how painful building unit tests can be, and Xano simplifies creating unit tests by providing one-click test generation. Quickly add tests to your function stacks and run them as you make changes, ensuring your core functionality remains intact.
Use our dedicated test center to check coverage of your tests and run them all at once, giving you workspace-wide visibility into everything at once.
With Xano's one-click unit tests, you can be confident your app will retain its expected behavior, no matter what changes you make.
🪢 Run crucial business logic in parallel with async functions!
An asynchronous function can be easily described as "let this thing run while other things happen." It's like ordering food at a restaurant - you place your order and then continue chatting with friends while your meal is being prepared in the kitchen.
In Xano, your custom functions can now be run async with nothing more than an extra click, meaning they can execute in the background using their own dedicated resources while the rest of your main program continues to run. This allows different parts of your application to work simultaneously, much like how multiple chefs can prepare different dishes in a kitchen at the same time.
Async functions expand on the benefits introduced with our Post Process function, offering even more flexibility by running multiple functions in parallel as well as the ability to wait until processing is done if your app needs it.
Using async functions gives you ultimate control over when things happen and opens new opportunities for more efficient execution of your mission-critical functions. It's a critical part of most applications and helps provide the seamless experience your users expect.
For our Enterprise users, async functions can have dedicated resources that scale infinitely -- this means achieving true concurrency 10x, 100x, 1000x, and higher concurrency possibilities.
📄 Documentation
🩹 Make database operations easier with new Patch and Bulk functions!
Patch Record
Our new Patch statement removes one of the biggest pain points when getting started with Xano -- editing a record. We'll spare you the technical details, but it's not as simple as it sounds! This is why the flow has always been Get Record -> Update Variable -> Edit Record.
With the new Patch Record statement, you can selectively update fields in a single step.
Bulk Patch, Update, & Delete
We've added additional bulk statements to make sweeping changes in your database even easier. You can now Bulk Patch (selectively edit fields), Bulk Update (replace records), and Bulk Delete (remove records).
🧐 Find more things faster with boosted Workspace Search and Statement Explorer!
Workspace Search by Variable
When using the universal search, you can now search for variable names!
Statement Explorer
Use the new Statement Explorer, accessible via your workspace dashboard, to quickly find all uses of specific function(s).
Need to know every single place you're using Query All Records? Easy.
Trying to find every API that uses both Query All Records and a Lambda function? 🪄 Done!
The statement explorer is also sticky, which means that you can quickly thumb through every found result for the one you need.
Other Improvements & Bug Fixes
We've added a P95 request time to history in your APIs and custom functions, giving greater visibility into the overall state of your live function stacks.