Today, we're thrilled to announce the official release of Appwrite 0.15, including one of our most anticipated features: Phone Authentication! 🥁
Besides Phone Authentication, Appwrite 0.15 also comes with some exciting features, including improved Metadata on all Resources, Webhook Signature, and multiple bug fixes.
Appwrite is an open-source back-end-as-a-service that abstracts all the complexity of building a modern application by providing you with a set of REST and Realtime APIs for your core back-end needs. Appwrite takes the heavy lifting for developers and handles user authentication and authorization, databases, file storage, cloud functions, webhooks, and much more!
With this release, we are introducing a feature, which has been one of our longest open issues on the Appwrite GitHub repository. Now you are able to authenticate Users, by sending them 6 digits to their phone and have them enter them in your application. Phone authentication will be the 6th authentication method that is now supported at Appwrite alongside email/password, anonymous login, magic links, team invites and JWT.
Initially there are 3 providers which can be used with Appwrite to send SMS verification codes:
The following Environment Variables have been added for configuring Phone Authentication:
Provider used for delivering SMS for Phone authentication. Use the following format:
phone://[USER]:[SECRET]@[PROVIDER]. Available providers are twilio, text-magic and telesign.
Phone number used for sending out messages. Must start with a leading '+' and maximum of 15 digits without spaces (like +123456789).
Once you have set up your environment variables with your favorite provider credentials, you can call the
createPhoneSession method, passing the phone number of the User. This method will send a six digit code to your user as an SMS message.
Once received by your user and submitted back to your application or website , you can verify your user’s code - which is valid for 15 minutes - using the
We have also added the
phoneVerified attributes to the User Object. These new attributes will help you know the user verification status and decide whether you want to force the user to verify his phone or not.
In summary, following endpoints have been added to the Account Service:
For initializing the phone authentication.
For completing the phone authentication.
For adding a phone number to your user’s account.
For initializing phone verification.
For completing phone verification.
Additionally the Users Service has these new endpoints:
For updating the use phone number.
For changing verification status.
Until now, each Appwrite project could only use a single database. Starting with version 0.15, this is no longer the case. We're happy to introduce a new database layer to allow you to have as many database instances as you want under a single Appwrite project. Currently, all your project databases still have to use the same database adapter under the hood as defined in your Appwrite's instance environment variables, but this is our first step towards adding support for multiple database adapters under the same Appwrite project.
In the next few months, we will continue to expand our database adapters support, and we can already share that besides existing support for MariaDB and MySQL, we are working on adding support for both MongoDB and Postgres. With the new database layer in place, we will allow you to have multiple adapters under the same project. This will allow you to micro-optimize your project's performance, choose the best technology for your specific use case, and give your team the flexibility and comfort to work with the tools and technologies you already love and trust. All of that is on top of the same Appwrite experience you are already familiar with.
They are finally here,
$updatedAt are now part of every Resource in Appwrite and contain a timestamp of the date of creation and the latest update. This comes in very handy, if the ordering of the resources is important or if you want to implement offline sync with your application. The new attributes are
Security is vital for everyone here at Appwrite, and we strive to give you easy-to-use tools to keep you and your users safe against web threats. This commitment to security is why with version 0.15, we have introduced the ability to validate webhooks with Appwrite. Webhooks now include a
x-appwrite-webhook-signature which can be used in combination with a unique Signature Key found in the Webhook to validate the Webhook is actually coming from Appwrite.
We introduced new OAuth providers for Dailymotion and Autodesk. These new adapters are taking our count to a total of 32(!) supported OAuth providers in Appwrite. On top of the new providers, the GitLab adapter has also been upgraded to support a custom hostname for those of you who are using a self-hosted edition of GitLab.
We still haven't covered everything! There's lots more bug fixes and other micro optimizations we made under the hood to make your experience with Appwrite better!
To get all the details on Appwrite 0.15, check out all the changes in the changelog on GitHub.
Appwrite 0.16 is not far away and we promise it's going to be even more exciting 🤩 We'll continue improving upon Appwrite's solid performance, flexibility and adding amazing new features.
Do you have ideas for an exciting new feature ? Open up a Github Discussion so you can get feedback from the core team, maintainers and our ever growing community.
You're welcomed to join us on Discord to get all the latest updates about new Appwrite versions and chat directly with the Appwrite team.